Message ID | 1473323013-6886-1-git-send-email-Zubair.Kakakhel@imgtec.com |
---|---|
State | Accepted |
Commit | ba07984068dc96a2234371545df043495dcbeadd |
Delegated to: | Tom Rini |
Headers | show |
Hi, On 09/08/2016 09:23 AM, Zubair Lutfullah Kakakhel wrote: > This bug appears in b6396403 which makes u-boot unable to pass > arguments via bootm to a standalone application without this patch. > > Steps to reproduce. > > Compile a u-boot. Use mkimage to package the standalone hello_world.bin > file. > > e.g. For the MIPS Boston platform > > mkimage -n "hello" -A mips -O u-boot -C none -T standalone \ > -a 0xffffffff80200000 -d hello_world.bin \ > -ep 0xffffffff80200000 hello_out > > Then tftp hello_out and run it using > > boston # dhcp 192.168.154.45:hello_out > ... > boston # bootm $loadaddr 123 321 > > Without the patch the following output is observed. > > Example expects ABI version 8 > Actual U-Boot ABI version 8 > Hello World > argc = 0 > argv[0] = "0xffffffff88000000" > > With the patch, you see the following. > > boston # bootm $loadaddr 123 321 > Image Name: hello > Image Type: MIPS U-Boot Standalone Program (uncompressed) > Data Size: 1240 Bytes = 1.2 KiB > Load Address: 80200000 > Entry Point: 80200000 > Verifying Checksum ... OK > Loading Standalone Program ... OK > Example expects ABI version 8 > Actual U-Boot ABI version 8 > Hello World > argc = 0 argc = 3 > argv[0] = "0xffffffff88000000" argv[1] = 123 argv[2] = 321 Copy paste fluke in the git log. Sorry. The above appears in reality Regards, ZubairLK > Hit any key to exit ... > > The go command at the entry point seems to work. > > boston # go 0xffffffff80200000 123 321 > Example expects ABI version 8 > Actual U-Boot ABI version 8 > Hello World > argc = 3 > argv[0] = "0xffffffff80200000" > argv[1] = "123" > argv[2] = "321" > argv[3] = "<NULL>" > Hit any key to exit ... > > Signed-off-by: Zubair Lutfullah Kakakhel <Zubair.Kakakhel@imgtec.com> > > --- > > Tested on the MIPS Boston platform. > --- > common/bootm.c | 4 +--- > 1 file changed, 1 insertion(+), 3 deletions(-) > > diff --git a/common/bootm.c b/common/bootm.c > index a4d22a6..b2c0912 100644 > --- a/common/bootm.c > +++ b/common/bootm.c > @@ -619,10 +619,8 @@ int do_bootm_states(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[], > if (!ret && (states & BOOTM_STATE_FINDOS)) > ret = bootm_find_os(cmdtp, flag, argc, argv); > > - if (!ret && (states & BOOTM_STATE_FINDOTHER)) { > + if (!ret && (states & BOOTM_STATE_FINDOTHER)) > ret = bootm_find_other(cmdtp, flag, argc, argv); > - argc = 0; /* consume the args */ > - } > > /* Load the OS */ > if (!ret && (states & BOOTM_STATE_LOADOS)) { >
On Thu, Sep 08, 2016 at 10:24:44AM +0100, Zubair Lutfullah Kakakhel wrote: > Hi, > > On 09/08/2016 09:23 AM, Zubair Lutfullah Kakakhel wrote: > >This bug appears in b6396403 which makes u-boot unable to pass > >arguments via bootm to a standalone application without this patch. > > > >Steps to reproduce. > > > >Compile a u-boot. Use mkimage to package the standalone hello_world.bin > >file. > > > >e.g. For the MIPS Boston platform > > > >mkimage -n "hello" -A mips -O u-boot -C none -T standalone \ > > -a 0xffffffff80200000 -d hello_world.bin \ > > -ep 0xffffffff80200000 hello_out > > > >Then tftp hello_out and run it using > > > >boston # dhcp 192.168.154.45:hello_out > >... > >boston # bootm $loadaddr 123 321 > > > >Without the patch the following output is observed. > > > >Example expects ABI version 8 > >Actual U-Boot ABI version 8 > >Hello World > >argc = 0 > >argv[0] = "0xffffffff88000000" > > > >With the patch, you see the following. > > > >boston # bootm $loadaddr 123 321 > > Image Name: hello > > Image Type: MIPS U-Boot Standalone Program (uncompressed) > > Data Size: 1240 Bytes = 1.2 KiB > > Load Address: 80200000 > > Entry Point: 80200000 > > Verifying Checksum ... OK > > Loading Standalone Program ... OK > >Example expects ABI version 8 > >Actual U-Boot ABI version 8 > >Hello World > >argc = 0 > argc = 3 > >argv[0] = "0xffffffff88000000" > argv[1] = 123 > argv[2] = 321 > > Copy paste fluke in the git log. Sorry. > The above appears in reality > > Regards, > ZubairLK > > >Hit any key to exit ... > > > >The go command at the entry point seems to work. > > > >boston # go 0xffffffff80200000 123 321 > >Example expects ABI version 8 > >Actual U-Boot ABI version 8 > >Hello World > >argc = 3 > >argv[0] = "0xffffffff80200000" > >argv[1] = "123" > >argv[2] = "321" > >argv[3] = "<NULL>" > >Hit any key to exit ... > > > >Signed-off-by: Zubair Lutfullah Kakakhel <Zubair.Kakakhel@imgtec.com> > > > >--- > > > >Tested on the MIPS Boston platform. > >--- > > common/bootm.c | 4 +--- > > 1 file changed, 1 insertion(+), 3 deletions(-) > > > >diff --git a/common/bootm.c b/common/bootm.c > >index a4d22a6..b2c0912 100644 > >--- a/common/bootm.c > >+++ b/common/bootm.c > >@@ -619,10 +619,8 @@ int do_bootm_states(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[], > > if (!ret && (states & BOOTM_STATE_FINDOS)) > > ret = bootm_find_os(cmdtp, flag, argc, argv); > > > >- if (!ret && (states & BOOTM_STATE_FINDOTHER)) { > >+ if (!ret && (states & BOOTM_STATE_FINDOTHER)) > > ret = bootm_find_other(cmdtp, flag, argc, argv); > >- argc = 0; /* consume the args */ > >- } > > > > /* Load the OS */ > > if (!ret && (states & BOOTM_STATE_LOADOS)) { Can you re-send with a corrected commit log? Thanks.
diff --git a/common/bootm.c b/common/bootm.c index a4d22a6..b2c0912 100644 --- a/common/bootm.c +++ b/common/bootm.c @@ -619,10 +619,8 @@ int do_bootm_states(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[], if (!ret && (states & BOOTM_STATE_FINDOS)) ret = bootm_find_os(cmdtp, flag, argc, argv); - if (!ret && (states & BOOTM_STATE_FINDOTHER)) { + if (!ret && (states & BOOTM_STATE_FINDOTHER)) ret = bootm_find_other(cmdtp, flag, argc, argv); - argc = 0; /* consume the args */ - } /* Load the OS */ if (!ret && (states & BOOTM_STATE_LOADOS)) {
This bug appears in b6396403 which makes u-boot unable to pass arguments via bootm to a standalone application without this patch. Steps to reproduce. Compile a u-boot. Use mkimage to package the standalone hello_world.bin file. e.g. For the MIPS Boston platform mkimage -n "hello" -A mips -O u-boot -C none -T standalone \ -a 0xffffffff80200000 -d hello_world.bin \ -ep 0xffffffff80200000 hello_out Then tftp hello_out and run it using boston # dhcp 192.168.154.45:hello_out ... boston # bootm $loadaddr 123 321 Without the patch the following output is observed. Example expects ABI version 8 Actual U-Boot ABI version 8 Hello World argc = 0 argv[0] = "0xffffffff88000000" With the patch, you see the following. boston # bootm $loadaddr 123 321 Image Name: hello Image Type: MIPS U-Boot Standalone Program (uncompressed) Data Size: 1240 Bytes = 1.2 KiB Load Address: 80200000 Entry Point: 80200000 Verifying Checksum ... OK Loading Standalone Program ... OK Example expects ABI version 8 Actual U-Boot ABI version 8 Hello World argc = 0 argv[0] = "0xffffffff88000000" Hit any key to exit ... The go command at the entry point seems to work. boston # go 0xffffffff80200000 123 321 Example expects ABI version 8 Actual U-Boot ABI version 8 Hello World argc = 3 argv[0] = "0xffffffff80200000" argv[1] = "123" argv[2] = "321" argv[3] = "<NULL>" Hit any key to exit ... Signed-off-by: Zubair Lutfullah Kakakhel <Zubair.Kakakhel@imgtec.com> --- Tested on the MIPS Boston platform. --- common/bootm.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-)