1. 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
  2. 24 10月, 2019 1 次提交
  3. 05 9月, 2019 1 次提交
  4. 12 8月, 2019 1 次提交
  5. 25 7月, 2019 1 次提交
  6. 15 7月, 2019 1 次提交
  7. 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
  8. 29 5月, 2019 1 次提交
  9. 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
  10. 12 4月, 2019 1 次提交
  11. 25 2月, 2019 2 次提交
  12. 20 2月, 2019 1 次提交
  13. 16 12月, 2018 1 次提交
  14. 05 12月, 2018 1 次提交
  15. 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
  16. 17 11月, 2018 1 次提交
  17. 15 11月, 2018 1 次提交
  18. 01 11月, 2018 1 次提交
  19. 03 10月, 2018 1 次提交
  20. 29 9月, 2018 2 次提交
  21. 26 9月, 2018 1 次提交
  22. 19 9月, 2018 1 次提交
  23. 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
  24. 20 8月, 2018 1 次提交
  25. 11 8月, 2018 1 次提交
  26. 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
  27. 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
  28. 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
  29. 24 5月, 2018 1 次提交
  30. 09 5月, 2018 1 次提交
  31. 08 5月, 2018 1 次提交
  32. 07 5月, 2018 1 次提交
    • T
      SPDX: Convert all of our single license tags to Linux Kernel style · 83d290c5
      Tom Rini 提交于
      When U-Boot started using SPDX tags we were among the early adopters and
      there weren't a lot of other examples to borrow from.  So we picked the
      area of the file that usually had a full license text and replaced it
      with an appropriate SPDX-License-Identifier: entry.  Since then, the
      Linux Kernel has adopted SPDX tags and they place it as the very first
      line in a file (except where shebangs are used, then it's second line)
      and with slightly different comment styles than us.
      
      In part due to community overlap, in part due to better tag visibility
      and in part for other minor reasons, switch over to that style.
      
      This commit changes all instances where we have a single declared
      license in the tag as both the before and after are identical in tag
      contents.  There's also a few places where I found we did not have a tag
      and have introduced one.
      Signed-off-by: NTom Rini <trini@konsulko.com>
      83d290c5
  33. 07 4月, 2018 1 次提交
    • M
      cmd: Add command for calculating binary operations · 55b25561
      Mario Six 提交于
      This patch adds a command that enables the calculation of bit operations
      (AND, OR, XOR) on binary data from the command line. Memory locations as
      well as the contents of environment variables are eligible as sources
      and destination of the binary data used in the operations.
      
      The possible applications are manifold: Setting specific bits in
      registers using the regular read-OR-write pattern, masking out bits in
      bit values, implementation of simple OTP encryption using the XOR
      operation, etc.
      Signed-off-by: NMario Six <mario.six@gdsys.cc>
      55b25561
  34. 06 2月, 2018 1 次提交
    • T
      cmd: Make CONFIG_CMD_FPGA depend on CONFIG_FPGA · a4fa8114
      Tuomas Tynkkynen 提交于
      cmd/Makefile has:
      
      ifdef CONFIG_FPGA
      obj-$(CONFIG_CMD_FPGA) += fpga.o
      endif
      
      which means that if CONFIG_FPGA is not set, CONFIG_CMD_FPGA silently
      does nothing. Let's remove that Makefile conditional and instead express
      this equivalent dependency in Kconfig, so a lot of redundant
      
       # CONFIG_CMD_FPGA is not set
      
      can be removed from board defconfigs that don't actually have an FPGA.
      Signed-off-by: NTuomas Tynkkynen <tuomas@tuxera.com>
      a4fa8114
  35. 20 1月, 2018 1 次提交
  36. 10 1月, 2018 1 次提交