1. 11 1月, 2020 1 次提交
    • E
      dtimg/am57xx_evm_defconfig: Rename dtimg to adtimg · b84acf10
      Eugeniu Rosca 提交于
      Rename the existing 'dtimg' command to 'adtimg', in order to:
       - Suggest the Android origins and scope
       - Be consistent with the upcoming 'abootimg' command (naming
         suggested by Simon [*])
      
      The change in _not_ backward compatible, but its benefits outweigh its
      downsides, given that we don't expect active users of 'dtimg' today.
      
      Perform the rename in several steps:
       1. Rename *.c file and Kconfig symbol. This should allow
          'git log --follow' to properly track the history of 'adtimg.c'
       2. 's/dtimg/adtimg/g' in the internal namespace of 'adtimg.c'
      
      ELF comparison [**] before and after shows no functional change.
      
      [*] https://patchwork.ozlabs.org/patch/1182212/#2291600
      [**] diff -u <(objdump -d cmd/dtimg.o) <(objdump -d cmd/adtimg.o)
      
      Cc: Tom Rini <trini@konsulko.com>
      Signed-off-by: NEugeniu Rosca <erosca@de.adit-jv.com>
      Reviewed-by: Simon Glass<sjg@chromium.org>
      Reviewed-by: NSam Protsenko <semen.protsenko@linaro.org>
      b84acf10
  2. 08 1月, 2020 1 次提交
  3. 15 12月, 2019 1 次提交
  4. 09 12月, 2019 1 次提交
  5. 07 12月, 2019 2 次提交
  6. 05 12月, 2019 1 次提交
    • M
      cmd: nand/sf: isolate legacy code · eb446ef6
      Miquel Raynal 提交于
      The 'sf' command is not supposed to rely on the MTD stack, but both
      'sf' and 'nand' commands use helpers located in mtd_uboot.c. Despite
      their location, these functions do not depend at all on the MTD
      stack.
      
      This file (drivers/mtd/mtd_uboot.c) is only compiled if CONFIG_MTD is
      selected, which is inconsistent with the current situation. Solve this
      by moving these three functions (which are only used by the above two
      commands) out of mtd_uboot.c and put them in a C file only compiled
      with cmd/sf.c and cmd/nand.c.
      Signed-off-by: NMiquel Raynal <miquel.raynal@bootlin.com>
      [trini: Don't export get_part function now]
      Signed-off-by: NTom Rini <trini@konsulko.com>
      eb446ef6
  7. 03 12月, 2019 1 次提交
    • T
      blk: Make use of CONFIG_HAVE_BLOCK_DEVICE more · 4df23e58
      Tom Rini 提交于
      When we do not have CONFIG_BLK (or SPL/TPL) enabled there are very few
      cases where we need the blk_legacy code linked in. To catch these, build
      when we have CONFIG_HAVE_BLOCK_DEVICE set.  In addition, we only need
      cmd/blk_common.o to be linked in when we have CONFIG_HAVE_BLOCK_DEVICE
      set, so make use of that directly.
      Signed-off-by: NTom Rini <trini@konsulko.com>
      4df23e58
  8. 24 10月, 2019 1 次提交
  9. 05 9月, 2019 1 次提交
  10. 12 8月, 2019 1 次提交
  11. 25 7月, 2019 1 次提交
  12. 15 7月, 2019 1 次提交
  13. 12 7月, 2019 1 次提交
    • E
      cmd: Add 'bcb' command to read/modify/write BCB fields · db7b7a05
      Eugeniu Rosca 提交于
      'Bootloader Control Block' (BCB) is a well established term/acronym in
      the Android namespace which refers to a location in a dedicated raw
      (i.e. FS-unaware) flash (e.g. eMMC) partition, usually called "misc",
      which is used as media for exchanging messages between Android userspace
      (particularly recovery [1]) and an Android-capable bootloader.
      
      On higher level, this allows implementing a subset of Android Bootloader
      Requirements [2], amongst which is the Android-specific bootloader
      flow [3]. Regardless how the latter is implemented in U-Boot ([3] being
      the most memorable example), reading/writing/dumping the BCB fields in
      the development process from inside the U-Boot is a convenient feature.
      Hence, make it available to the users.
      
      Some usage examples of the new command recorded on R-Car H3ULCB-KF
      ('>>>' is an overlay on top of the original console output):
      
      => bcb
      bcb - Load/set/clear/test/dump/store Android BCB fields
      
      Usage:
      bcb load  <dev> <part>       - load  BCB from mmc <dev>:<part>
      bcb set   <field> <val>      - set   BCB <field> to <val>
      bcb clear [<field>]          - clear BCB <field> or all fields
      bcb test  <field> <op> <val> - test  BCB <field> against <val>
      bcb dump  <field>            - dump  BCB <field>
      bcb store                    - store BCB back to mmc
      
      Legend:
      <dev>   - MMC device index containing the BCB partition
      <part>  - MMC partition index or name containing the BCB
      <field> - one of {command,status,recovery,stage,reserved}
      <op>    - the binary operator used in 'bcb test':
                '=' returns true if <val> matches the string stored in <field>
                '~' returns true if <val> matches a subset of <field>'s string
      <val>   - string/text provided as input to bcb {set,test}
                NOTE: any ':' character in <val> will be replaced by line feed
                during 'bcb set' and used as separator by upper layers
      
      => bcb dump command
      Error: Please, load BCB first!
       >>> Users must specify mmc device and partition before any other call
      
      => bcb load 1 misc
      => bcb load 1 1
       >>> The two calls are equivalent (assuming "misc" has index 1)
      
      => bcb dump command
      00000000: 62 6f 6f 74 6f 6e 63 65 2d 73 68 65 6c 6c 00 72    bootonce-shell.r
      00000010: 79 00 72 00 00 00 00 00 00 00 00 00 00 00 00 00    y.r.............
       >>> The output is in binary/string format for convenience
       >>> The output size matches the size of inspected BCB field
       >>> (32 bytes in case of 'command')
      
      => bcb test command = bootonce-shell && echo true
      true
      => bcb test command = bootonce-shell- && echo true
      => bcb test command = bootonce-shel && echo true
       >>> The '=' operator returns 'true' on perfect match
      
      => bcb test command ~ bootonce-shel && echo true
      true
      => bcb test command ~ bootonce-shell && echo true
      true
       >>> The '~' operator returns 'true' on substring match
      
      => bcb set command recovery
      => bcb dump command
      00000000: 72 65 63 6f 76 65 72 79 00 73 68 65 6c 6c 00 72    recovery.shell.r
      00000010: 79 00 72 00 00 00 00 00 00 00 00 00 00 00 00 00    y.r.............
       >>> The new value is NULL-terminated and stored in the BCB field
      
      => bcb set recovery "msg1:msg2:msg3"
      => bcb dump recovery
      00000040: 6d 73 67 31 0a 6d 73 67 32 0a 6d 73 67 33 00 00    msg1.msg2.msg3..
      00000050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
      00000060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
       >>> --- snip ---
       >>> Every ':' is replaced by line-feed '\n' (0xA). The latter is used
       >>> as separator between individual commands by Android userspace
      
      => bcb store
       >>> Flush/store the BCB structure to MMC
      
      [1] https://android.googlesource.com/platform/bootable/recovery
      [2] https://source.android.com/devices/bootloader
      [3] https://patchwork.ozlabs.org/patch/746835/
          ("[U-Boot,5/6] Initial support for the Android Bootloader flow")
      Signed-off-by: NEugeniu Rosca <erosca@de.adit-jv.com>
      db7b7a05
  14. 29 5月, 2019 1 次提交
  15. 23 4月, 2019 1 次提交
    • H
      cmd: add exception command · dab8788a
      Heinrich Schuchardt 提交于
      The 'exception' command allows to test exception handling.
      
      This implementation supports ARM, x86, RISC-V and the following exceptions:
      * 'breakpoint' - prefetch abort exception (ARM 32bit only)
      * 'unaligned'  - data abort exception (ARM only)
      * 'undefined'  - undefined instruction exception
      Signed-off-by: NHeinrich Schuchardt <xypron.glpk@gmx.de>
      dab8788a
  16. 12 4月, 2019 1 次提交
  17. 25 2月, 2019 2 次提交
  18. 20 2月, 2019 1 次提交
  19. 16 12月, 2018 1 次提交
  20. 05 12月, 2018 1 次提交
  21. 26 11月, 2018 1 次提交
    • S
      sandbox: Add a new 'sb' command · d66ddafa
      Simon Glass 提交于
      The old 'sb' command was deprecated in 2015 and replaced with 'host'. It
      is useful to be able to access some internal sandbox state, particularly
      for testing.
      
      Resurrect the old command and provide a way to print some basic state
      information (currently just the arguments to sandbox).
      Signed-off-by: NSimon Glass <sjg@chromium.org>
      d66ddafa
  22. 17 11月, 2018 1 次提交
  23. 15 11月, 2018 1 次提交
  24. 01 11月, 2018 1 次提交
  25. 03 10月, 2018 1 次提交
  26. 29 9月, 2018 2 次提交
  27. 26 9月, 2018 1 次提交
  28. 19 9月, 2018 1 次提交
  29. 21 8月, 2018 1 次提交
    • J
      cmd: Add bind/unbind commands to bind a device to a driver from the command line · 49c752c9
      Jean-Jacques Hiblot 提交于
      In some cases it can be useful to be able to bind a device to a driver from
      the command line.
      The obvious example is for versatile devices such as USB gadget.
      Another use case is when the devices are not yet ready at startup and
      require some setup before the drivers are bound (ex: FPGA which bitsream is
      fetched from a mass storage or ethernet)
      
      usage example:
      
      bind usb_dev_generic 0 usb_ether
      unbind usb_dev_generic 0 usb_ether
      or
      unbind eth 1
      
      bind /ocp/omap_dwc3@48380000/usb@48390000 usb_ether
      unbind /ocp/omap_dwc3@48380000/usb@48390000
      Signed-off-by: NJean-Jacques Hiblot <jjhiblot@ti.com>
      49c752c9
  30. 20 8月, 2018 1 次提交
  31. 11 8月, 2018 1 次提交
  32. 03 7月, 2018 1 次提交
    • L
      net: Add new wol command - Wake on LAN · d8970dae
      Lothar Felten 提交于
      Add a new command 'wol': Wait for an incoming Wake-on-LAN packet or
      time out if no WoL packed is received.
      If the WoL packet contains a password, it is saved in the environment
      variable 'wolpassword' using the etherwake format (dot or colon
      separated decimals).
      
      Intended use case: a networked device should boot an alternate image.
      It's attached to a network on a client site, modifying the DHCP server
      configuration or setup of a tftp server is not allowed.
      After power on the device waits a few seconds for a WoL packet. If a
      packet is received, the device boots the alternate image. Otherwise
      it boots the default image.
      
      This method is a simple way to interact with a system via network even
      if only the MAC address is known. Tools to send WoL packets are
      available on all common platforms.
      
      Some Ethernet drivers seem to pad the incoming packet. The additional
      padding bytes might be recognized as Wake-on-LAN password bytes.
      
      By default enabled in pengwyn_defconfig.
      Signed-off-by: NLothar Felten <lothar.felten@gmail.com>
      Acked-by: NJoe Hershberger <joe.hershberger@ni.com>
      d8970dae
  33. 19 6月, 2018 1 次提交
    • I
      cmd: avb2.0: avb command for performing verification · 60b2f9e7
      Igor Opaniuk 提交于
      Enable a "avb" command to execute Android Verified
      Boot 2.0 operations. It includes such subcommands:
        avb init - initialize avb2 subsystem
        avb read_rb - read rollback index
        avb write_rb - write rollback index
        avb is_unlocked - check device lock state
        avb get_uuid - read and print uuid of a partition
        avb read_part - read data from partition
        avb read_part_hex - read data from partition and output to stdout
        avb write_part - write data to partition
        avb verify - run full verification chain
      Signed-off-by: NIgor Opaniuk <igor.opaniuk@linaro.org>
      60b2f9e7
  34. 26 5月, 2018 3 次提交
    • M
      tpm: prepare support for TPMv2.x commands · ff32245b
      Miquel Raynal 提交于
      Choice between v1 and v2 compliant functions is done with the
      configuration.
      
      Create the various files that will receive TPMv2-only code on the same
      scheme as for the TPMv1 code.
      Signed-off-by: NMiquel Raynal <miquel.raynal@bootlin.com>
      Reviewed-by: NSimon Glass <sjg@chromium.org>
      Reviewed-by: NTom Rini <trini@konsulko.com>
      ff32245b
    • M
      tpm: disociate TPMv1.x specific and generic code · d677bfe2
      Miquel Raynal 提交于
      There are no changes in this commit but a new organization of the code
      as follow.
      
      * cmd/ directory:
              > move existing code from cmd/tpm.c in cmd/tpm-common.c
      	> move specific code in cmd/tpm-v1.c
      	> create a specific header file with generic definitions for
      	  commands only called cmd/tpm-user-utils.h
      
      * lib/ directory:
              > move existing code from lib/tpm.c in lib/tpm-common.c
      	> move specific code in lib/tpm-v1.c
      	> create a specific header file with generic definitions for
      	  the library itself called lib/tpm-utils.h
      
      * include/ directory:
              > move existing code from include/tpm.h in include/tpm-common.h
      	> move specific code in include/tpm-v1.h
      
      Code designated as 'common' is compiled if TPM are used. Code designated
      as 'specific' is compiled only if the right specification has been
      selected.
      
      All files include tpm-common.h.
      Files in cmd/ include tpm-user-utils.h.
      Files in lib/ include tpm-utils.h.
      Depending on the specification, files may include either (not both)
      tpm-v1.h or tpm-v2.h.
      Signed-off-by: NMiquel Raynal <miquel.raynal@bootlin.com>
      Reviewed-by: NTom Rini <trini@konsulko.com>
      [trini: Fix a few more cases of tpm.h -> tpm-v1.h, some Kconfig logic]
      Signed-off-by: NTom Rini <trini@konsulko.com>
      d677bfe2
    • M
      tpm: prepare introduction of TPMv2.x support in Kconfig · 9f9ce3c3
      Miquel Raynal 提交于
      Because both major revisions are not compatible at all, let's make them
      mutually exclusive in Kconfig. This way we will be sure, when using a
      command or a library function that it is supported by the right
      revision.
      
      Current drivers are currently prefixed by "tpm_", we will prefix TPMv2.x
      files by "tpm2_" to make the distinction without moving everything.
      
      The Kconfig menu about TPM drivers is now divided into two sections, one
      for each specification. Compliant drivers with one specification will
      only show up if this specification _only_ has been selected, otherwise a
      comment is displayed.
      
      Once a driver is selected by the user, it selects automatically a
      boolean value, that is needed in order to activate the TPM commands.
      Selecting the TPM commands will automatically select the right
      command/library files.
      Signed-off-by: NMiquel Raynal <miquel.raynal@bootlin.com>
      Reviewed-by: NSimon Glass <sjg@chromium.org>
      Reviewed-by: NTom Rini <trini@konsulko.com>
      [trini: Rework deps as TPM_V1 and TPM_V2 depend on TPM,
              drop TPM_DRIVER_SELECTED]
      Signed-off-by: NTom Rini <trini@konsulko.com>
      9f9ce3c3
  35. 24 5月, 2018 1 次提交