19 Mar, 2018

1 commit

  • Porting the cadence USB3 (CDNS3) driver from kernel to u-boot. We only support
    the gadget (device mode), while the host mode is not supported. Users remains
    to use xhci-imx8 driver for host mode.

    Some changes in the CDNS3 driver porting:

    1. Add match_ep call back to usb_gadget_ops. The CDNS3 gadget driver replies
    on this operation to bind the usb_ep/usb_ss_ep with the endpoint descriptor
    when function layer uses usb_ep_autoconfig to add endpoint descriptors to gadget.
    So that CDNS3 driver can know the EP information and configure the EP once the
    set configuration request is received.

    2. U-boot does not have CMA, so it won't allocate uncached memory. Need to flush
    TRB and its DMA buffer before prime to usb controller and after complete transfer.

    3. In core.c, we add functions to hook with u-boot. It needs uplayer like
    to pass the register base address of each part of the USB controller.

    4. Force the CDNS3 gadget max speed to HS. The SuperSpeed is not supported by u-boot,
    so disable it in gadget driver. A configuration USB_CDNS3_GADGET_FORCE_HIGHSPEED is
    selected.

    5. Added gadget_is_cdns3 checking to provide bcdUSB value in device descriptor.

    6. Moved some new fields in usb_ep structure to usb_ss_ep, since u-boot does not have them.

    7. Remove host part codes as it is not supported by this driver.

    Signed-off-by: Ye Li
    Acked-by: Peter Chen

    Ye Li
     

03 Nov, 2017

3 commits

  • Some platforms require more complex U-Boot images than we can easily
    generate via the mkimage command line, for instance to load additional
    image files.
    Introduce a CONFIG_SPL_FIT_SOURCE and CONFIG_SPL_FIT_GENERATOR symbol,
    which can either hold an .its source file describing the image layout,
    or, in the second case, a generator tool (script) to create such
    a source file. This script gets passed the list of device tree files
    from the CONFIG_OF_LIST variable.
    A platform or board can define either of those in their defconfig file
    to allow an easy building of such an image.

    Signed-off-by: Andre Przywara
    Reviewed-by: Jagan Teki
    (cherry picked from commit 1a12fdc461421b5a385ab5d7926e5425d429d48e)

    Andre Przywara
     
  • Have changed to use imx-mkimage to package images, move the ARM trusted
    firmware bl31 image out of u-boot to imx-mkimage.

    Signed-off-by: Ye Li

    Ye Li
     
  • Bind ATF with u-boot-nodtb.bin together.
    Since now ATF's entry is 0x40001000, so when
    generating u-boot.img, we use 0x40001000
    as the load and entry address.

    Signed-off-by: Peng Fan

    Peng Fan
     

14 Mar, 2017

1 commit


10 Mar, 2017

1 commit

  • DTC 1.4.2 or later checks DT unit-address without reg property and
    vice-versa, and generates lots of warnings. Fixing DT files will
    take for a while. Until then, let's turn off the check unless
    building with W=*.

    Introduce a new helper dtc-option to check if the option is supported
    in order to suppress warnings on older versions.

    Signed-off-by: Masahiro Yamada
    Reviewed-by: Simon Glass
    Tested-by: Bin Meng

    Masahiro Yamada
     

28 Feb, 2017

1 commit


14 Feb, 2017

1 commit


09 Feb, 2017

3 commits

  • Use the kbuild style log.

    Prior to this commit:

    ./scripts/check-config.sh u-boot.cfg \
    ./scripts/config_whitelist.txt . 1>&2

    With this commit:

    CFGCHK u-boot.cfg

    Signed-off-by: Masahiro Yamada
    Reviewed-by: Simon Glass

    Masahiro Yamada
     
  • The previous commit ("add a new command to show .config contents")
    improves the basic infrastructure of "embed a compressed file into
    the U-Boot image, and print it by a command". The same pattern for
    the "license" command.

    This commit reworks the command to improve the following:

    [1] Improve log style

    Kbuild style log

    GZIP cmd/license_data.gz
    CHK cmd/license_data_gz.h
    UPD cmd/license_data_gz.h
    CHK cmd/license_data_size.h
    UPD cmd/license_data_size.h

    instead of the bare Make log:

    cat ./Licenses/gpl-2.0.txt | gzip -9 -c | \
    tools/bin2header license_gzip > ./include/license.h

    [2] Collect related code into the "cmd" directory

    Prior to this commit, the license.h was created by tools/Makefile,
    placed under the "include" directory, included from cmd/license.c,
    and deleted by the top-level Makefile. It is not a good idea to
    scatter related code.

    [3] Drop the fixed-malloc size LICENSE_MAX

    Just allocate the minimum required size of buffer because we know
    the size of the original gpl-2.0.txt.

    [4] Fix more issues

    Terminate the buffer with zero to prevent puts() from over-running.
    Add "static" to do_license.

    Signed-off-by: Masahiro Yamada
    Reviewed-by: Simon Glass

    Masahiro Yamada
     
  • This feature is inspired by /proc/config.gz of Linux. In Linux,
    if CONFIG_IKCONFIG is enabled, the ".config" file contents are
    embedded in the kernel image. If CONFIG_IKCONFIG_PROC is also
    enabled, the ".config" contents are exposed to /proc/config.gz.
    Users can do "zcat /proc/config.gz" to check which config options
    are enabled on the running kernel image.

    The idea is almost the same here; if CONFIG_CMD_CONFIG is enabled,
    the ".config" contents are compressed and saved in the U-Boot image,
    then printed by the new command "config".

    The usage is quite simple. Enable CONFIG_CMD_CONFIG, then run
    > config
    from the command line interface. The ".config" contents will be
    printed on the console.

    This feature increases the U-Boot image size by about 4KB (this is
    mostly due to the gzip-compressed .config file). By default, it is
    enabled only for Sandbox because we do not care about the memory
    footprint on it. Of course, this feature is architecture agnostic,
    so you can enable it on any board if the image size increase is
    acceptable for you.

    Signed-off-by: Masahiro Yamada
    Reviewed-by: Simon Glass

    Masahiro Yamada
     

06 Feb, 2017

1 commit


01 Feb, 2017

1 commit

  • The patch implements secure booting for the mvebu architecture.

    This includes:
    - The addition of secure headers and all needed signatures and keys in
    mkimage
    - Commands capable of writing the board's efuses to both write the
    needed cryptographic data and enable the secure booting mechanism
    - The creation of convenience text files containing the necessary
    commands to write the efuses

    The KAK and CSK keys are expected to reside in the files kwb_kak.key and
    kwb_csk.key (OpenSSL 2048 bit private keys) in the top-level directory.

    Signed-off-by: Reinhard Pfau
    Signed-off-by: Mario Six
    Reviewed-by: Stefan Roese
    Reviewed-by: Simon Glass
    Signed-off-by: Stefan Roese

    Mario Six
     

31 Jan, 2017

1 commit


10 Jan, 2017

1 commit


03 Jan, 2017

3 commits

  • Signed-off-by: Tom Rini

    Tom Rini
     
  • To being able to sign created binaries, we need to know the HAB Blocks
    for that image. Especially for the imximage type the HAB Blocks are
    only available during creation of the image. We want to preserve the
    information until we get to sign the files.
    In the verbose case we still get them printed out instead of writing
    to log files.

    Cc: sbabic@denx.de

    v2-Changes:
    - No usage of MKIMAGEOUTPUT_$(@F) macro.
    - Predefine default value /dev/null in every involved Makefile.

    Signed-off-by: Sven Ebenfeld
    Reviewed-by: George McCollister
    Tested-by: George McCollister

    Sven Ebenfeld
     
  • When we want to use Secure Boot with HAB from SPL over U-Boot.img,
    we need to append the IVT to the image and leave space for the CSF.
    Images generated as firmware_ivt can directly be signed using the
    Freescale code signing tool. For creation of a CSF, mkimage outputs
    the correct HAB Blocks for the image.
    The changes to the usual firmware image class are quite small,
    that is why I implemented that directly into the default_image.

    Cc: sbabic@denx.de

    v2-Changes: None

    Signed-off-by: Sven Ebenfeld
    Reviewed-by: George McCollister
    Tested-by: George McCollister

    Sven Ebenfeld
     

20 Dec, 2016

5 commits


06 Dec, 2016

1 commit


03 Dec, 2016

1 commit

  • A common requirement when converting CONFIG options to Kconfig is to check
    that the effective configuration has not changed due to the conversion. Add
    a target which creates this configuration (in the form of u-boot.cfg) but
    does not build U-Boot. This speeds up the checking.

    Signed-off-by: Simon Glass

    Simon Glass
     

15 Nov, 2016

3 commits


01 Nov, 2016

1 commit


30 Oct, 2016

1 commit


18 Oct, 2016

1 commit


08 Oct, 2016

1 commit


07 Oct, 2016

2 commits

  • Our build system still parses ad-hoc CONFIG options in header files
    and generates include/autoconf.mk so that Makefiles can reference
    them. This gimmick was introduced in the pre-Kconfig days and will
    be kept until Kconfig migration is completed.

    The include/autoconf.mk is generated like follows:

    [1] Preprocess include/common.h with -DDO_DEPS_ONLY and
    retrieve macros into include/autoconf.mk.tmp
    [2] Reformat include/autoconf.mk.dep into include/autoconf.mk
    with tools/scripts/define2mk.sed script
    [3] Remove include/autoconf.mk.tmp

    Here, include/autoconf.mk.tmp is similar to u-boot.cfg, which is
    also generated by preprocessing include/config.h with -DDO_DEPS_ONLY.
    In other words, there is much overlap among include/autoconf.mk and
    u-boot.cfg build rules.

    So, the idea is to split the build rule of include/autoconf.mk
    into two stages. The first preprocesses headers into u-boot.cfg.
    The second parses the u-boot.cfg into include/autoconf.mk. The
    build rules of u-boot.cfg in Makefile and spl/Makefile will be gone.

    Signed-off-by: Masahiro Yamada
    Reviewed-by: Simon Glass

    Masahiro Yamada
     
  • I am going to move the build rule of u-boot.cfg. Before that,
    no_new_adhoc_configs_check must be tweaked to not depend on it.

    The ad-hoc option check can be done at the end of build, along
    with other checks.

    Signed-off-by: Masahiro Yamada
    Reviewed-by: Simon Glass

    Masahiro Yamada
     

06 Oct, 2016

1 commit


03 Oct, 2016

1 commit


27 Sep, 2016

1 commit


22 Sep, 2016

2 commits

  • Prior to the previous patch, a freshly created .u-boot.cfg.cmd may not
    correctly represent all dependencies for u-boot.cfg. The previous change
    only solved this issue for fresh builds; when performing an incremental
    build, the deficient .u-boot.cfg.cmd is already present, so u-boot.cfg
    is not rebuilt, and hence .u-boot.cfg.cmd is not rebuilt with the correct
    content.

    Solve this by explicitly detecting when the dependency file .u-boot.cfg.d
    has not been integrated into .u-boot.cfg.cmd, and force u-boot.cfg to be
    rebuilt in this case by deleting it first. This is possible since
    if_changed_dep will always delete .u-boot.cfg.d when it executes
    successfully, so its presence means either that the previous build was
    made by a source tree that contained a Makefile that didn't include the
    previous patch, or that the build failed part way through executing
    if_changed_dep for u-boot.cfg. Forcing a rebuild of u-boot.cfg is required
    in the former case, and will cause no additional work in the latter case,
    since the file would be rebuilt anyway for the same reason it was being
    rebuilt by the previous build.

    Signed-off-by: Stephen Warren

    Stephen Warren
     
  • cmd_cpp_cfg generates a dependency output, but because it's invoked using
    if_changed rather than if_changed_dep, that dependency file is ignored.
    This results in Kbuild not knowing about which files u-boot.cfg depends
    on, so it may not be rebuilt when required.

    A practical result of this is that u-boot.cfg may continue to reference
    CONFIG_ options that no longer exist in the source tree, and this can
    cause the adhoc config options check to fail.

    This change modifies Makefile to use if_changed_dep, which in turn causes
    all dependencies to be known to the next make invocation.

    Signed-off-by: Stephen Warren

    Stephen Warren
     

17 Sep, 2016

1 commit