Skip to content
Snippets Groups Projects
Select Git revision
  • master default protected
  • early-display
  • variant-emmc-nvme-boot
  • 2023-01-25
  • v3
  • variant-emmc-nvme-boot
  • 2020-06-01
7 results

bootm.c

Blame
  • Forked from Reform / reform-boundary-uboot
    Source project has a limited visibility.
    • Zubair Lutfullah Kakakhel's avatar
      ba079840
      bootm: fix passing argc to standalone apps · ba079840
      Zubair Lutfullah Kakakhel authored
      
      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.
      
      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"
      
      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 = 3
      argv[0] = "0xffffffff88000000"
      argv[1] = "123"
      argv[2] = "321"
      argv[3] = "<NULL>"
      
      Without the patch, 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: default avatarZubair Lutfullah Kakakhel <Zubair.Kakakhel@imgtec.com>
      Reviewed-by: default avatarSimon Glass <sjg@chromium.org>
      ba079840
      History
      bootm: fix passing argc to standalone apps
      Zubair Lutfullah Kakakhel authored
      
      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.
      
      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"
      
      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 = 3
      argv[0] = "0xffffffff88000000"
      argv[1] = "123"
      argv[2] = "321"
      argv[3] = "<NULL>"
      
      Without the patch, 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: default avatarZubair Lutfullah Kakakhel <Zubair.Kakakhel@imgtec.com>
      Reviewed-by: default avatarSimon Glass <sjg@chromium.org>