-
Notifications
You must be signed in to change notification settings - Fork 7
dts: helios4: partition spi flash for U-Boot #2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: linux-marvell-4.4
Are you sure you want to change the base?
Conversation
Reserve first 0x110000 bytes of SPI flash for U-Boot. Binary of u-boot-2013.01-15t1-helios4 uses 0xD7528 bytes (03/01/2018); Environment is located at 0x100000, up to 0x110000. This means U-Boot needs at least the first 0x110000 bytes on SPI flash for itself. Signed-off-by: Josua Mayer <[email protected]>
Import of upstream commit fc7a906 ("gpio: mvebu: fix gpio bank registration when pwm is used"). If more than one gpio bank has the "pwm" property, only one will be registered successfully, all the others will fail with: mvebu-gpio: probe of f1018140.gpio failed with error -17 That's because in alloc_pwms(), the chip->base (aka "int pwm"), was not set (thus, ==0) ; and 0 is a meaningful start value in alloc_pwm(). What was intended is mvpwm->chip->base = -1. Like that, the numbering will be done auto-magically Moreover, as the region might be already occupied by another pwm, we shouldn't force: mvpwm->chip->base = 0 nor mvpwm->chip->base = id * MVEBU_MAX_GPIO_PER_BANK; Fixes: [ 0.670354] mvebu-gpio: probe of f1018140.gpio failed with error -17 and thus prevent a kernel panic later on: [ 2.459735] Unable to handle kernel paging request at virtual address 696c3e61 [ 2.466975] pgd = c0004000 [ 2.469686] [696c3e61] *pgd=00000000 [ 2.473282] Internal error: Oops: 5 [kobol-io#1] SMP THUMB2 [ 2.478171] Modules linked in: [ 2.481243] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 4.4.112-mvebu kobol-io#2 [ 2.487784] Hardware name: Marvell Armada 380/385 (Device Tree) [ 2.493717] task: ecce0040 ti: ecce2000 task.ti: ecce2000 [ 2.499131] PC is at gpiochip_add+0x7c/0x320 [ 2.503412] LR is at lock_acquired+0x19b/0x3a4 [ 2.507866] pc : [<c038ac14>] lr : [<c0158453>] psr: 900000b3 [ 2.507866] sp : ecce3c40 ip : c121cbe8 fp : ebfbe010 [ 2.519370] r10: ebfc0ae0 r9 : 00000000 r8 : ebfcdc20 [ 2.524606] r7 : ebfc0ae0 r6 : c0b6844c r5 : 00000010 r4 : a0000013 [ 2.531149] r3 : 696c3e2d r2 : 64657470 r1 : 64657460 r0 : 696c3e1d [ 2.537691] Flags: NzcV IRQs off FIQs on Mode SVC_32 ISA Thumb Segment none [ 2.545103] Control: 50c5387d Table: 0000404a DAC: 00000051 [ 2.550861] Process swapper/0 (pid: 1, stack limit = 0xecce2218) [ 2.556880] Stack: (0xecce3c40 to 0xecce4000) [ 2.561248] 3c40: ecce3c4e c015a01b ecce0630 c0b6844c c01566cb c015a291 ebfcdc00 c0b68424 [ 2.569446] 3c60: c077f9e4 ebd3ff00 ebfc0a10 ebfc0a10 00000000 00000000 ebfcdc00 ebfcdc20 [ 2.577645] 3c80: 00000000 ebfc0ae0 ebfbe010 c038e8bb 00000017 00000002 00000000 c04a86ad [ 2.585843] 3ca0: eedc6d1c ebfcdc20 0041d1ec c07a9f00 c0b68764 c060cc0c ebfcdc20 ebfcdc04 [ 2.594040] 3cc0: ebfcdc00 c038e6d9 00000000 c0b81650 ebfbe010 c047c4d7 ebfcdc20 c141d1d8 [ 2.602238] 3ce0: c141d1ec 00000000 c0b68764 c03d61db 00000000 00000001 00000000 ecce3d30 [ 2.610436] 3d00: c03d634d c141d194 00000000 c03d4f59 ecdd6ef4 ece1a11c 00000000 ebfcdc20 [ 2.618634] 3d20: ebfbe110 ebfcdc54 00000001 c03d607b ebfcdc20 00000001 c0364531 ebfcdc28 [ 2.626831] 3d40: ebfbe110 ebfcdc20 c0b81680 c03d58f3 00000000 ebfcdc28 ebfbe110 00000000 [ 2.635029] 3d60: ebfcdc20 c03d451d ebfbe010 c0153da1 ebfcdc20 c141d194 ebfcdc00 ecce3dc4 [ 2.643226] 3d80: ebfbe0c0 ebfcdc20 ebfcdc04 0000249f 0ee6b280 c047e1e3 eedc6d1c ebfbe0c0 [ 2.651424] 3da0: eedc6d1c ebfbe0c0 ebfbe110 00000008 ecd4d810 c047e52f 00000004 00000000 [ 2.659622] 3dc0: 00000000 39616370 00353535 00000000 00000000 00000000 00200000 00000000 [ 2.667820] 3de0: ecce3dbc eedc6d1c 00000000 00000000 ebfbe0c0 ebfbe0c0 eedc6d1c c047e7e7 [ 2.676017] 3e00: ebfbe010 00000000 ecd4d800 00000008 ecd4d810 c04800c9 c07aa900 ebfbe010 [ 2.684215] 3e20: c13a47cc 00061a80 00000000 eedc69a0 ecd4d810 ecd4d800 00061a80 000003e8 [ 2.692414] 3e40: ecce0040 ecd4d810 ecd4d810 c0b82350 fffffdfb c0b82350 00000000 00000007 [ 2.700611] 3e60: efffcc40 c03d7695 c03d765d ecd4d810 c141d1d8 c141d1ec 00000000 c03d61db [ 2.708810] 3e80: 00000000 ecd4d810 c0b82350 ecd4d844 c03d62f9 00000000 c0939860 c03d6339 [ 2.717007] 3ea0: 00000001 00000000 c0b82350 c03d4edf ecd61ebc ecd46998 60000013 c0b82350 [ 2.725205] 3ec0: ebfc67c0 00000000 c0b6ff78 c03d5a7b c07aa900 c0b82350 c0b06ca0 c0b82350 [ 2.733403] 3ee0: c0b06ca0 ebfc5640 c0925c39 c03d6afd 00000000 c0b06ca0 c0b06ca0 c01017f3 [ 2.741601] 3f00: c0b0f560 ecce05a0 00000001 00000000 c13a4700 c015c271 00000000 c0136329 [ 2.749799] 3f20: 00000008 efffccbf 000000a6 c0136329 c07a9360 c07f89f0 00000000 00000006 [ 2.757998] 3f40: 00000006 c073c084 c0961bbc 00000000 c0962150 c0ba4000 c0ba4000 c0939858 [ 2.766195] 3f60: 000000a6 00000007 efffcc40 c0900c17 00000006 00000006 00000000 c0900455 [ 2.774393] 3f80: ecce3f98 c0ba4000 c05c162d 00000000 00000000 00000000 00000000 00000000 [ 2.782591] 3fa0: 00000000 c05c1641 00000000 c01060dd 00000000 00000000 00000000 00000000 [ 2.790789] 3fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 [ 2.798986] 3fe0: 00000000 00000000 00000000 00000000 00000013 00000000 deadbeef deadbeef [ 2.807187] [<c038ac14>] (gpiochip_add) from [<c038e8bb>] (pca953x_probe+0x1e3/0x334) [ 2.815040] [<c038e8bb>] (pca953x_probe) from [<c047c4d7>] (i2c_device_probe+0x127/0x160) [ 2.823239] [<c047c4d7>] (i2c_device_probe) from [<c03d61db>] (driver_probe_device+0xe3/0x200) [ 2.831873] [<c03d61db>] (driver_probe_device) from [<c03d4f59>] (bus_for_each_drv+0x2d/0x60) [ 2.840420] [<c03d4f59>] (bus_for_each_drv) from [<c03d607b>] (__device_attach+0x67/0xb8) [ 2.848618] [<c03d607b>] (__device_attach) from [<c03d58f3>] (bus_probe_device+0x1f/0x64) [ 2.856815] [<c03d58f3>] (bus_probe_device) from [<c03d451d>] (device_add+0x2ad/0x404) [ 2.864753] [<c03d451d>] (device_add) from [<c047e1e3>] (i2c_new_device+0xf7/0x134) [ 2.872428] [<c047e1e3>] (i2c_new_device) from [<c047e52f>] (of_i2c_register_device+0xc7/0x128) [ 2.881149] [<c047e52f>] (of_i2c_register_device) from [<c047e7e7>] (i2c_register_adapter+0x1b7/0x284) [ 2.890479] [<c047e7e7>] (i2c_register_adapter) from [<c04800c9>] (mv64xxx_i2c_probe+0x345/0x404) [ 2.899375] [<c04800c9>] (mv64xxx_i2c_probe) from [<c03d7695>] (platform_drv_probe+0x39/0x7c) [ 2.907922] [<c03d7695>] (platform_drv_probe) from [<c03d61db>] (driver_probe_device+0xe3/0x200) [ 2.916729] [<c03d61db>] (driver_probe_device) from [<c03d6339>] (__driver_attach+0x41/0x54) [ 2.925188] [<c03d6339>] (__driver_attach) from [<c03d4edf>] (bus_for_each_dev+0x2f/0x64) [ 2.933386] [<c03d4edf>] (bus_for_each_dev) from [<c03d5a7b>] (bus_add_driver+0x8f/0x170) [ 2.941583] [<c03d5a7b>] (bus_add_driver) from [<c03d6afd>] (driver_register+0x5d/0x84) [ 2.949608] [<c03d6afd>] (driver_register) from [<c01017f3>] (do_one_initcall+0xdf/0x174) [ 2.957808] [<c01017f3>] (do_one_initcall) from [<c0900c17>] (kernel_init_freeable+0x1bb/0x228) [ 2.966531] [<c0900c17>] (kernel_init_freeable) from [<c05c1641>] (kernel_init+0x15/0xa8) [ 2.974730] [<c05c1641>] (kernel_init) from [<c01060dd>] (ret_from_fork+0x11/0x34) [ 2.982320] Code: bfb8 9e03 db06 e00b (6b5a) 8f1b
aprayoga
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi @Artox , does this changes related to freebsd support as you mentioned on separate email?
Because in Linux, even without defining the partition, SPI flash still accessible thru /dev/mtdblock0
|
@aprayoga No, not to FreeBSD. And I think it makes sense to actually reserve the area that U-Boot uses. |
|
ah i see, it is because I remove it on kobol-io/build@860efdc yes, i agree we should reserved the area. Probably it's better to create separate partition between u-boot code/binaries and u-boot env data so updating u-boot won't overwrite env data |
|
Sounds reasonable. But I don't know if there is a strong need. Seems to me purely like a design decision. |
Reserve first 0x110000 bytes of SPI flash for U-Boot.
Binary of u-boot-2013.01-15t1-helios4 uses 0xD7528 bytes (03/01/2018);
Environment is located at 0x100000, up to 0x110000.
This means U-Boot needs at least the first 0x110000 bytes on SPI flash for itself.
Signed-off-by: Josua Mayer [email protected]
This creates /dev/mtdblock0 so we can write U-Boot to it!