
On Wed, Jul 3, 2013 at 9:46 AM, Robert Nelson robertcnelson@gmail.com wrote:
On Wed, Jul 3, 2013 at 9:12 AM, Simon Glass sjg@chromium.org wrote:
In the recent bootm refactor, the PREP stage was missing in the bootz command. This causes unpredictable behaviour on platforms which need this stage to operate correctly (e.g. ARM).
Signed-off-by: Simon Glass sjg@chromium.org
common/cmd_bootm.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/common/cmd_bootm.c b/common/cmd_bootm.c index 401055d..26ed7d8 100644 --- a/common/cmd_bootm.c +++ b/common/cmd_bootm.c @@ -1794,7 +1794,8 @@ int do_bootz(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) bootm_disable_interrupts();
ret = do_bootm_states(cmdtp, flag, argc, argv,
BOOTM_STATE_OS_FAKE_GO | BOOTM_STATE_OS_GO,
BOOTM_STATE_OS_PREP | BOOTM_STATE_OS_FAKE_GO |
BOOTM_STATE_OS_GO, &images, 1); return ret;
-- 1.8.3
Still no dice.. v2013.07-rc2 + these 3 + Tom's "cmd_bootm.c: Correct check/return for unsupported sub-command"
Tested with the Panda/Wand..
Panda: bootz test: load mmc ${mmcdev}:${mmcpart} ${loadaddr} zImage run mmcargs bootz ${loadaddr}
Panda: bootm test: (this still works fine..) load mmc ${mmcdev}:${mmcpart} ${loadaddr} uImage run mmcargs bootm ${loadaddr}
U-Boot SPL 2013.07-rc2-00004-gb3e6fff-dirty (Jul 03 2013 - 09:33:36) OMAP4430 ES2.1 OMAP SD/MMC: 0 reading u-boot.img reading u-boot.img
U-Boot 2013.07-rc2-00004-gb3e6fff-dirty (Jul 03 2013 - 09:33:36)
CPU : OMAP4430 ES2.1 Board: OMAP4 Panda I2C: ready DRAM: 1 GiB MMC: OMAP SD/MMC: 0 Using default environment
In: serial Out: serial Err: serial Net: No ethernet found. Hit any key to stop autoboot: 0 Panda # load mmc ${mmcdev}:${mmcpart} ${loadaddr} zImage reading zImage 3413152 bytes read in 160 ms (20.3 MiB/s) Panda # run mmcargs Panda # bootz ${loadaddr} prefetch abort pc : [<10da7a5c>] lr : [<bff813f1>] sp : bfefdba0 ip : 7fe00fa8 fp : 00000000 r10: bfefe6a0 r9 : 00000002 r8 : bfefdf38 r7 : 80000000 r6 : 00000700 r5 : 10da7a5a r4 : bfefdc18 r3 : bfefdc18 r2 : bfefe6a0 r1 : 00000002 r0 : 00000100 Flags: NzCv IRQs off FIQs off Mode SVC_32 Resetting CPU ...
resetting ...
Okay, so my quick hack from yesterday now works on top of these 3 patches for the Panda case:
U-Boot SPL 2013.07-rc2-00005-g8d900ea-dirty (Jul 03 2013 - 09:52:08) OMAP4430 ES2.1 OMAP SD/MMC: 0 reading u-boot.img reading u-boot.img
U-Boot 2013.07-rc2-00005-g8d900ea-dirty (Jul 03 2013 - 09:52:08)
CPU : OMAP4430 ES2.1 Board: OMAP4 Panda I2C: ready DRAM: 1 GiB MMC: OMAP SD/MMC: 0 Using default environment
In: serial Out: serial Err: serial Net: No ethernet found. Hit any key to stop autoboot: 0 Panda # load mmc ${mmcdev}:${mmcpart} ${loadaddr} zImage reading zImage 3413152 bytes read in 159 ms (20.5 MiB/s) Panda # run mmcargs Panda # bootz ${loadaddr}
Starting kernel ...
Uncompressing Linux... done, booting the kernel. [ 0.000000] Booting Linux on physical CPU 0 [ 0.000000] Initializing cgroup subsys cpuset [ 0.000000] Initializing cgroup subsys cpu [ 0.000000] Linux version 3.7.10-x12 (root@imx6q-sabrelite-1gb-0) (gcc version 4.6.3 (Debian 4.6.3-14) ) #1 SMP Sun Jun 9 03:19:23 UTC 2013
diff --git a/common/cmd_bootm.c b/common/cmd_bootm.c index 7b3e459..5749057 100644 --- a/common/cmd_bootm.c +++ b/common/cmd_bootm.c @@ -1758,6 +1758,10 @@ static int bootz_start(cmd_tbl_t *cmdtp, int flag, int argc, int ret; void *zi_start, *zi_end;
+ memset(images, 0, sizeof(bootm_headers_t)); + boot_start_lmb(images); + images->os.os = IH_OS_LINUX; + ret = do_bootm_states(cmdtp, flag, argc, argv, BOOTM_STATE_START, images, 1);
So I'm going to quickly re-test the wand, which is a device tree: 'bootz zImage - ftd" boot...
Regards,