28 Sep, 2016

2 commits

  • The cmd_dfu functionality is been used by both SPL and
    u-boot, saperating the core dfu functionality moving
    it to common/dfu.c.

    Signed-off-by: Ravi Babu
    Reviewed-by: Tom Rini

    B, Ravi
     
  • Traditionally the DFU support is available only
    as part 2nd stage boot loader(u-boot) and DFU
    is not supported in SPL.

    The SPL-DFU feature is useful for boards which
    does not have MMC/SD, ethernet boot mechanism
    to boot the board and only has USB inteface.

    This patch add DFU support in SPL with RAM
    memory device support to load and execute u-boot.
    And then leverage full functionality DFU in
    u-boot to flash boot inital binary images to
    factory or bare-metal boards to memory devices
    like SPI, eMMC, MMC/SD card using USB interface.

    This SPL-DFU support can be enabled through
    Menuconfig->Boot Images->Enable SPL-DFU support

    Signed-off-by: Ravi Babu
    Reviewed-by: Tom Rini

    B, Ravi
     

17 Sep, 2016

1 commit

  • At present TPL uses the same options as SPL support. In a few cases the board
    config enables or disables the SPL options depending on whether
    CONFIG_TPL_BUILD is defined.

    With the move to Kconfig, options are determined for the whole build and
    (without a hack like an #undef in a header file) cannot be controlled in this
    way.

    Create new TPL options for these and update users. This will allow Kconfig
    conversion to proceed for these boards.

    Signed-off-by: Simon Glass

    Simon Glass
     

20 Aug, 2016

1 commit

  • The bootz and booti commands rely on common functionality that is found
    in common/bootm.c and common/bootm_os.c. They do not however rely on
    the rest of cmd/bootm.c to be implemented so split them into their own
    files. Have various Makefiles include the required infrastructure for
    CONFIG_CMD_BOOT[IZ] as well as CONFIG_CMD_BOOTM. Move the declaration
    of 'images' over to common/bootm.c.

    Cc: Masahiro Yamada
    Signed-off-by: Tom Rini

    Tom Rini
     

25 Jun, 2016

1 commit


20 Jun, 2016

1 commit

  • Since commit bb597c0eeb7e ("common: bootdelay: move CONFIG_BOOTDELAY
    into a Kconfig option"), CONFIG_BOOTDELAY is defined for all boards.

    Prior to that commit, it was allowed to unset CONFIG_BOOTDELAY to
    not compile common/autoboot.c, as described in common/Makefile:

    # This option is not just y/n - it can have a numeric value
    ifdef CONFIG_BOOTDELAY
    obj-y += autoboot.o
    endif

    It was a bit odd to enable/disable code with an integer type option,
    but it was how this option worked before that commit, and several
    boards actually unset it to opt out of the autoboot feature.

    This commit adds a new bool option, CONFIG_AUTOBOOT, and makes
    CONFIG_BOOTDELAY depend on it.

    I chose "default y" for this option because most boards use the
    autoboot. I added "# CONFIG_AUTOBOOT is not set" for the boards that
    had not set CONFIG_BOOTDELAY prior to the bad commit.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     

13 Jun, 2016

1 commit

  • This allows a board to configure verified boot within the SPL using
    a FIT or FIT with external data. It also allows the SPL to perform
    signature verification without needing relocation.

    The board configuration will need to add the following feature defines:
    CONFIG_SPL_CRYPTO_SUPPORT
    CONFIG_SPL_HASH_SUPPORT
    CONFIG_SPL_SHA256

    In this example, SHA256 is the only selected hashing algorithm.

    And the following booleans:
    CONFIG_SPL=y
    CONFIG_SPL_DM=y
    CONFIG_SPL_LOAD_FIT=y
    CONFIG_SPL_FIT=y
    CONFIG_SPL_OF_CONTROL=y
    CONFIG_SPL_OF_LIBFDT=y
    CONFIG_SPL_FIT_SIGNATURE=y

    Signed-off-by: Teddy Reed
    Acked-by: Simon Glass
    Acked-by: Andreas Dannenberg
    Acked-by: Sumit Garg

    Teddy Reed
     

28 May, 2016

1 commit


21 May, 2016

1 commit

  • Introduce the (optional) eeprom print and eeprom update commands.

    These commands are eeprom layout aware:
    * The eeprom print command prints the contents of the eeprom in a human
    readable way (eeprom layout fields, and data formatted to be fit for human
    consumption).
    * The eeprom update command allows user to update eeprom fields by specifying
    the field name, and providing the new data in a human readable format (same
    format as displayed by the eeprom print command).
    * Both commands can either auto detect the layout, or be told which layout to
    use.

    New CONFIG options:
    CONFIG_CMD_EEPROM_LAYOUT - enables commands.
    CONFIG_EEPROM_LAYOUT_HELP_STRING - tells user what layout names are supported

    Feature API:
    __weak int parse_layout_version(char *str)
    - override to provide your own layout name parsing
    __weak void __eeprom_layout_assign(struct eeprom_layout *layout, int layout_version);
    - override to setup the layout metadata based on the version
    __weak int eeprom_layout_detect(unsigned char *data)
    - override to provide your own algorithm for detecting layout version
    eeprom_field.c
    - contains various printing and updating functions for common types of
    eeprom fields. Can be used for defining custom layouts.

    Cc: Heiko Schocher
    Cc: Marek Vasut
    Cc: Simon Glass
    Cc: Igor Grinberg
    Cc: Tom Rini
    Signed-off-by: Nikita Kiryanov

    Nikita Kiryanov
     

17 May, 2016

3 commits

  • At present the SATA command code includes both the command-processing code
    and the core SATA functions and data structures.

    Separate the latter into its own file, adding functions as needed to avoid
    the command code accessing data structures directly.

    With this commit:
    - All CONFIG option are referenced from the non-command code
    - The concept of a 'current SATA device' is confined to the command code

    This will make it easier to convert this code to driver model.

    Signed-off-by: Simon Glass

    Simon Glass
     
  • At present the IDE command code includes both the command-processing code
    and the core IDE functions and data structures.

    Separate the latter into its own file, adding functions as needed to avoid
    the command code accessing data structures directly.

    With this commit:
    - Most CONFIG option are referenced from the non-command code
    - The concept of a 'current IDE device' is confined to the command code

    This will make it easier to convert this code to driver model.

    Signed-off-by: Simon Glass

    Simon Glass
     
  • At present the SCSI command code includes both the command-processing code
    and the core SCSI functions and data structures.

    Separate the latter into its own file, adding functions as needed to avoid
    the command code accessing data structures directly. This functions use the
    new legacy block functions.

    With this commit:
    - There is no CONFIG option referenced from the command code
    - The concept of a 'current SCSI device' is confined to the command code

    This will make it easier to convert this code to driver model.

    Signed-off-by: Simon Glass

    Simon Glass
     

19 Apr, 2016

1 commit

  • Introduce env support for sata device.
    1. Implement write_env/read_env/env_relocate_spec/saveenv/sata_get_env_dev
    2. If want to enable this feature, define CONFIG_ENV_IS_IN_SATA, and
    define CONFIG_SYS_SATA_ENV_DEV or implement your own sata_get_ev_dev.

    Signed-off-by: Peng Fan
    Cc: Simon Glass
    Cc: Joe Hershberger
    Cc: Bin Meng
    Cc: Stefan Roese
    Cc: Heiko Schocher
    Cc: Stuart Longland
    Cc: Maxime Ripard
    Cc: Tom Rini
    Reviewed-by: Tom Rini

    Peng Fan
     

23 Mar, 2016

1 commit


15 Mar, 2016

3 commits

  • Add an option to enable libfdt in SPL. This can be useful when decoding
    FIT files in SPL.

    We need to make sure this option is not enabled in SPL by this change.
    Also this option needs to be enabled in host builds. Si add a new
    IMAGE_USE_LIBFDT #define which can be used in files that are built on the
    host but must also build for U-Boot and SPL.

    Signed-off-by: Simon Glass

    Simon Glass
     
  • There are already two FIT options in Kconfig but the CONFIG options are
    still in the header files. We need to do a proper move to fix this.

    Move these options to Kconfig and tidy up board configuration:

    CONFIG_FIT
    CONFIG_OF_BOARD_SETUP
    CONFIG_OF_SYSTEM_SETUP
    CONFIG_FIT_SIGNATURE
    CONFIG_FIT_BEST_MATCH
    CONFIG_FIT_VERBOSE
    CONFIG_OF_STDOUT_VIA_ALIAS
    CONFIG_RSA

    Unfortunately the first one is a little complicated. We need to make sure
    this option is not enabled in SPL by this change. Also this option is
    enabled automatically in the host builds by defining CONFIG_FIT in the
    image.h file. To solve this, add a new IMAGE_USE_FIT #define which can
    be used in files that are built on the host but must also build for U-Boot
    and SPL.

    Note: Masahiro's moveconfig.py script is amazing.

    Signed-off-by: Simon Glass
    [trini: Add microblaze change, various configs/ re-applies]
    Signed-off-by: Tom Rini

    Simon Glass
     
  • This is an enhancement that permits storing the environment file on an
    EXT4 partition such as the root filesystem. It is based on the existing
    FAT environment file code.

    Stuart Longland
     

08 Feb, 2016

1 commit


25 Jan, 2016

1 commit

  • There are a lot of unrelated files in common, including all of the commands.
    Moving them into their own directory makes them easier to find and is more
    logical.

    Some commands include non-command code, such as cmd_scsi.c. This should be
    sorted out at some point so that the function can be enabled with or without
    the associated command.

    Unfortunately, with m68k I get this error:

    m68k: + M5329AFEE
    +arch/m68k/cpu/mcf532x/start.o: In function `_start':
    +arch/m68k/cpu/mcf532x/start.S:159:(.text+0x452): relocation truncated to fit: R_68K_PC16 against symbol `board_init_f' defined in .text.board_init_f section in common/built-in.o

    I hope someone can shed some light on what this means. I hope it isn't
    depending on the position of code in the image.

    Signed-off-by: Simon Glass
    Reviewed-by: Bin Meng
    Reviewed-by: Heiko Schocher
    Acked-by: Stefan Roese
    Acked-by: Przemyslaw Marczak

    Simon Glass
     

21 Jan, 2016

1 commit


06 Dec, 2015

1 commit


13 Nov, 2015

2 commits

  • The Android sparse image format is currently supported through a file
    called aboot, which isn't really such a great name, since the sparse image
    format is only used for transferring data with fastboot.

    Rename the file and header to a file called "sparse", which also makes it
    consistent with the header defining the image structures.

    Signed-off-by: Maxime Ripard
    Reviewed-by: Tom Rini

    Maxime Ripard
     
  • So far the fastboot code was only supporting MMC-backed devices for its
    flashing operations (flash and erase).

    Add a storage backend for NAND-backed devices.

    Signed-off-by: Maxime Ripard

    Maxime Ripard
     

25 Oct, 2015

1 commit

  • This function will be used by both SPL and U-Boot proper. So move it into
    a common place. Also change the #ifdef so that the early malloc() area is
    not set up in SPL if CONFIG_SYS_SPL_MALLOC_START is defined. In that case
    it would never actually be used, and just chews up stack space.

    Signed-off-by: Simon Glass

    Simon Glass
     

23 Oct, 2015

1 commit

  • Many System on Chip(SoC) solutions are complex with multiple processors
    on the same die dedicated to either general purpose of specialized
    functions. Many examples do exist in today's SoCs from various vendors.
    Typical examples are micro controllers such as an ARM M3/M0 doing a
    offload of specific function such as event integration or power
    management or controlling camera etc.

    Traditionally, the responsibility of loading up such a processor with a
    firmware and communication has been with a High Level Operating
    System(HLOS) such as Linux. However, there exists classes of products
    where Linux would need to expect services from such a processor or the
    delay of Linux and operating system being able to load up such a
    firmware is unacceptable.

    To address these needs, we need some minimal capability to load such a
    system and ensure it is started prior to an Operating System(Linux or
    any other) is started up.

    NOTE: This is NOT meant to be a solve-all solution, instead, it tries to
    address certain class of SoCs and products that need such a solution.

    A very simple model is introduced here as part of the initial support
    that supports microcontrollers with internal memory (no MMU, no
    execution from external memory, or specific image format needs). This
    basic framework can then (hopefully) be extensible to other complex SoC
    processor support as need be.

    Reviewed-by: Simon Glass
    Signed-off-by: Nishanth Menon
    Acked-by: Simon Glass

    Nishanth Menon
     

21 Sep, 2015

1 commit

  • This patch creates a flexible parser for Ethernet Switch
    configurations that should support complex commands.
    The parser searches for predefined keywords in the command
    and calls the proper function when a match is found.
    Also, the parser allows for optional keywords, such as
    "port", to apply the command on a port
    or on all ports. For now, the defined commands are:
    ethsw [port ] { enable | disable | show }

    Signed-off-by: Codrin Ciubotariu
    Reviewed-by: York Sun

    Codrin Ciubotariu
     

07 Sep, 2015

1 commit

  • This code allows using DFU defined mediums for storing data received via
    TFTP protocol.

    It reuses and preserves functionality of legacy code at common/update.c.

    The update_tftp() function now accepts parameters - namely medium device
    name and its number (e.g. mmc 1).

    Without this information passed old behavior is preserved.

    Signed-off-by: Lukasz Majewski
    Acked-by: Joe Hershberger

    Lukasz Majewski
     

31 Aug, 2015

1 commit

  • These tests come from Chrome OS code. They are not particularly tidy but can
    be useful for checking that the TPM is behaving correctly. Some knowledge of
    TPM operation is required to use these.

    Signed-off-by: Simon Glass
    Acked-by: Christophe Ricard
    Reviewed-by: Heiko Schocher

    Simon Glass
     

13 Aug, 2015

1 commit


05 Aug, 2015

1 commit


15 May, 2015

2 commits

  • This command is based on driver model regulator's API.
    The user interface provides:
    - list UCLASS regulator devices
    - show or [set] operating regulator device
    - print constraints info
    - print operating status
    - print/[set] voltage value [uV] (force)
    - print/[set] current value [uA]
    - print/[set] operating mode id
    - enable the regulator output
    - disable the regulator output

    The 'force' option can be used for setting the value which exceeds
    the constraints min/max limits.

    Signed-off-by: Przemyslaw Marczak
    Acked-by: Simon Glass

    Przemyslaw Marczak
     
  • This is new command for the PMIC devices based on driver model PMIC API.
    Command features are unchanged:
    - list UCLASS pmic devices
    - show or [set] operating pmic device (NEW)
    - dump registers
    - read byte of register at address
    - write byte to register at address

    The only one change for this command is 'dev' subcommand.

    Signed-off-by: Przemyslaw Marczak
    Acked-by: Simon Glass

    Przemyslaw Marczak
     

30 Apr, 2015

1 commit


20 Apr, 2015

2 commits


18 Apr, 2015

1 commit

  • Sometimes, for example if the display is mounted in portrait mode or even if it
    is mounted landscape but rotated by 180 degrees, we need to rotate our content
    of the display respectively the framebuffer, so that user can read the messages
    which are printed out.

    For this we introduce the feature called "CONFIG_LCD_ROTATION", this may be
    defined in the board-configuration if needed. After this the lcd_console will
    be initialized with a given rotation from "vl_rot" out of "vidinfo_t" which is
    provided by the board specific code.

    If CONFIG_LCD_ROTATION is not defined, the console will be initialized with
    0 degrees rotation.

    Signed-off-by: Hannes Petermaier
    Signed-off-by: Hannes Petermaier
    Acked-by: Nikita Kiryanov
    [agust: fixed 'struct vidinfo' has no member named 'vl_rot' errors]
    Signed-off-by: Anatolij Gustschin

    Hannes Petermaier
     

10 Apr, 2015

1 commit

  • The ARM reference designs all use a special flash image format
    that stores a footer (two versions exist) at the end of the last
    erase block of the image in flash memory.

    Version one of the footer is indicated by the magic number
    0xA0FFFF9F at 12 bytes before the end of the flash block and
    version two is indicated by the magic number 0x464F4F54 0x464C5348
    (ASCII for "FLSHFOOT") in the very last 8 bytes of the erase block.

    This command driver implements support for both versions of the
    AFS images (the name comes from the Linux driver in drivers/mtd/afs.c)
    and makes it possible to list images and load an image by name into
    the memory with these commands:

    afs - lists flash contents
    afs load - loads image to address indicated in the image
    afs load - loads image to a specified address

    This image scheme is used on the ARM Integrator family, ARM
    Versatile family, ARM RealView family (not yet supported in U-Boot)
    and ARM Versatile Express family up to and including the new
    Juno board for 64 bit development.

    Reviewed-by: Tom Rini
    Signed-off-by: Linus Walleij

    Linus Walleij
     

10 Feb, 2015

3 commits