platform/kernel/u-boot.git
4 years agoscripts/kernel-doc: fix parsing of function pointers
Heinrich Schuchardt [Sun, 14 Jul 2019 09:30:23 +0000 (11:30 +0200)]
scripts/kernel-doc: fix parsing of function pointers

kernel-doc fails to parse function definitions like the one below

efi_status_t efi_create_event(uint32_t type, efi_uintn_t notify_tpl,
      void (EFIAPI *notify_function) (
struct efi_event *event,
void *context),
      void *notify_context, efi_guid_t *group,
      struct efi_event **event)
{

due to the "EFIAPI" attribute preceding the function name.

cf. https://lkml.org/lkml/2018/9/3/1185

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
4 years agoscripts/kernel-doc: update script from Linux 5.2
Heinrich Schuchardt [Sun, 14 Jul 2019 09:30:22 +0000 (11:30 +0200)]
scripts/kernel-doc: update script from Linux 5.2

Update the script from Linux 5.2 to avoid some warnings.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
4 years agodoc: Cope with Sphinx logging deprecations
Jonathan Corbet [Sun, 14 Jul 2019 08:35:45 +0000 (10:35 +0200)]
doc: Cope with Sphinx logging deprecations

Recent versions of sphinx will emit messages like:

  doc/sphinx/kerneldoc.py:103:
     RemovedInSphinx20Warning: app.warning() is now deprecated.
     Use sphinx.util.logging instead.

Switch to sphinx.util.logging to make this unsightly message go away.
Alas, that interface was only added in version 1.6, so we have to add a
version check to keep things working with older sphinxes.

Signed-off-by: Jonathan Corbet <corbet@lwn.net>
Rebased for U-Boot
Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
4 years agoenv: am57xx: Implement A/B boot process
Ruslan Trofymenko [Fri, 5 Jul 2019 12:37:36 +0000 (15:37 +0300)]
env: am57xx: Implement A/B boot process

Add support for A/B boot process on AM57xx based boards:

  1. Define 'slot_suffix' variable (using 'ab_select' command)
  2. Extend 'emmc_android_boot' boot command (add commands for A/B boot
     process)

'ab_select' command is used to decide which slot should be used for
booting up. A/B metadata resides in 'misc' partition.

To activate the A/B boot process, the following config options must be
set:

    CONFIG_ANDROID_AB=y
    CONFIG_CMD_AB_SELECT=y

For successful A/B boot, the corresponding A/B infrastructure must be
involved on Android side [1] (including mounting system as root), and
disk must be partitioned accordingly.

When A/B boot is enabled, there are some known limitations currently
exist (not related to A/B patches, need to be implemented later):

  1. The 'Verified Boot' sequence is not supported
  2. dev path to system partition (system_a or system_b) is passed via
     'bootargs' as 'root=' argument like 'root=/dev/mmcblk1p12', but
     further we'll need to rework it with respect to dm-verity
     requirements [2]

In case when A/B partitions are not present in system (and A/B boot is
enabled), boot up process will be terminated and next message will be
shown:

    "boot_a(b) partition not found"

[1] https://source.android.com/devices/tech/ota/ab
[2] https://source.android.com/devices/tech/ota/ab/ab_implement#kernel

Signed-off-by: Ruslan Trofymenko <ruslan.trofymenko@linaro.org>
Signed-off-by: Igor Opaniuk <igor.opaniuk@gmail.com>
Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
Reviewed-by: Alistair Strachan <astrachan@google.com>
Reviewed-by: Sam Protsenko <semen.protsenko@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
4 years agodoc: android: Add simple guide for A/B updates
Ruslan Trofymenko [Fri, 5 Jul 2019 12:37:35 +0000 (15:37 +0300)]
doc: android: Add simple guide for A/B updates

Add a short documentation for A/B enablement and 'ab_select' command
usage.

Signed-off-by: Ruslan Trofymenko <ruslan.trofymenko@linaro.org>
Signed-off-by: Igor Opaniuk <igor.opaniuk@gmail.com>
Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
Reviewed-by: Alistair Strachan <astrachan@google.com>
Reviewed-by: Sam Protsenko <semen.protsenko@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
4 years agotest/py: Add base test case for A/B updates
Ruslan Trofymenko [Fri, 5 Jul 2019 12:37:34 +0000 (15:37 +0300)]
test/py: Add base test case for A/B updates

Add sandbox test for 'ab_select' command.

Test: ./test/py/test.py --bd sandbox --build -k test_ab

Signed-off-by: Ruslan Trofymenko <ruslan.trofymenko@linaro.org>
Signed-off-by: Igor Opaniuk <igor.opaniuk@gmail.com>
Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
Reviewed-by: Alistair Strachan <astrachan@google.com>
Reviewed-by: Sam Protsenko <semen.protsenko@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
4 years agocmd: Add 'ab_select' command
Ruslan Trofymenko [Fri, 5 Jul 2019 12:37:33 +0000 (15:37 +0300)]
cmd: Add 'ab_select' command

For A/B system update support the Android boot process requires to send
'androidboot.slot_suffix' parameter as a command line argument. This
patch implementes 'ab_select' command which allows us to obtain current
slot by processing the A/B metadata.

The patch was extracted from commit [1] with one modification: the
separator for specifying the name of metadata partition was changed
from ';' to '#', because ';' is used for commands separation.

[1] https://android-review.googlesource.com/c/platform/external/u-boot/+/729880/2

Signed-off-by: Ruslan Trofymenko <ruslan.trofymenko@linaro.org>
Signed-off-by: Igor Opaniuk <igor.opaniuk@gmail.com>
Reviewed-by: Alistair Strachan <astrachan@google.com>
Reviewed-by: Sam Protsenko <semen.protsenko@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
4 years agocommon: Implement A/B metadata
Ruslan Trofymenko [Fri, 5 Jul 2019 12:37:32 +0000 (15:37 +0300)]
common: Implement A/B metadata

This patch determines the A/B-specific bootloader message structure
that is the basis for implementation of recovery and A/B update
functions. A/B metadata is stored in this structure and used to decide
which slot should we use to boot the device. Also some basic functions
for A/B metadata manipulation are implemented (like slot selection).

The patch was extracted from commits [1], [2] with some coding style
fixes.

[1] https://android-review.googlesource.com/c/platform/external/u-boot/+/729878/2
[2] https://android-review.googlesource.com/c/platform/external/u-boot/+/729880/2

Signed-off-by: Ruslan Trofymenko <ruslan.trofymenko@linaro.org>
Signed-off-by: Igor Opaniuk <igor.opaniuk@gmail.com>
Reviewed-by: Sam Protsenko <semen.protsenko@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
4 years agodisk: part: Extend API to get partition info
Ruslan Trofymenko [Fri, 5 Jul 2019 12:37:31 +0000 (15:37 +0300)]
disk: part: Extend API to get partition info

This patch adds part_get_info_by_dev_and_name_or_num() function which
allows us to get partition info from its number or name. Partition of
interest is specified by string like "device_num:partition_number" or
"device_num#partition_name".

The patch was extracted from [1].

[1] https://android-review.googlesource.com/c/platform/external/u-boot/+/729880/2

Signed-off-by: Ruslan Trofymenko <ruslan.trofymenko@linaro.org>
Signed-off-by: Igor Opaniuk <igor.opaniuk@gmail.com>
Reviewed-by: Alistair Strachan <astrachan@google.com>
Reviewed-by: Sam Protsenko <semen.protsenko@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
4 years agocmd: bcb: Apply non-functional refinements
Eugeniu Rosca [Fri, 19 Jul 2019 21:26:14 +0000 (23:26 +0200)]
cmd: bcb: Apply non-functional refinements

These have been reported by Simon in [1] and fixed in [2].
However, since [1] has already been pushed to u-boot/master, the
improvements incorporated in [2] are now extracted and resubmitted.

The changes are in the area of coding style and best practices:
* s/field/fieldp/, s/size/sizep/, to convey that the variables return
  an output to the caller
* s/err_1/err_read_fail/, s/err_2/err_too_small/, to be more descriptive
* Made sure 'static int do_bcb_load' appears on the same line
* Placed a `/*` on top of multi-line comment

[1] https://patchwork.ozlabs.org/patch/1104244/#2200259
[2] https://patchwork.ozlabs.org/cover/1128661/
   ("[v4,0/4] Add 'bcb' command to read/modify/write Android BCB")

Fixes: db7b7a05b267 ("cmd: Add 'bcb' command to read/modify/write BCB fields")
Reported-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Eugeniu Rosca <erosca@de.adit-jv.com>
Reviewed-by: Sam Protsenko <semen.protsenko@linaro.org>
4 years agocmd: bcb: Use strcmp() instead of strncmp() for string literals
Eugeniu Rosca [Fri, 19 Jul 2019 21:26:13 +0000 (23:26 +0200)]
cmd: bcb: Use strcmp() instead of strncmp() for string literals

Quote from https://patchwork.ozlabs.org/patch/1104244/#2210814:

 ----------8<-----------
strncmp() is chosen for the sake of paranoid/defensive programming.
Indeed, strncmp() is not really needed when comparing a variable
with a string literal. We expect strcmp() to behave safely even if the
string variable is not NUL-terminated.

In the same scenario, Linux v5.2-rc7 uses both strcmp() and strncmp(),
but the frequency of strcmp() is higher:

$ git --version
git version 2.22.0
$ (Linux 5.2-rc7) git grep -En 'strncmp\([^"]*"[[:alnum:]]+"' | wc -l
1066
$ (Linux 5.2-rc7) git grep -En 'strcmp\([^"]*"[[:alnum:]]+"' | wc -l
1968

A quick "strcmp vs strncmp" object size test shows that strcmp()
generates smaller memory footprint (gcc-8, x86_64):

$ (U-Boot) size cmd/bcb-strncmp.o cmd/bcb-strcmp.o
   text    data     bss     dec     hex filename
   3373     400    2048    5821    16bd cmd/bcb-strncmp.o
   3314     400    2048    5762    1682 cmd/bcb-strcmp.o

So, overall, I agree to use strcmp() whenever variables are compared
with string literals.
 ----------8<-----------

Fixes: db7b7a05b267 ("cmd: Add 'bcb' command to read/modify/write BCB fields")
Reported-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Eugeniu Rosca <erosca@de.adit-jv.com>
Reviewed-by: Sam Protsenko <semen.protsenko@linaro.org>
Reviewed-by: Igor Opaniuk <igor.opaniuk@gmail.com>
4 years agocmd: bcb: Fix duplicated handling in two case-branches
Eugeniu Rosca [Fri, 19 Jul 2019 21:26:12 +0000 (23:26 +0200)]
cmd: bcb: Fix duplicated handling in two case-branches

Fix warning V1037 reported by PVS-Studio Static Analyzer:
Two or more case-branches perform the same actions. Check lines: 49, 53

Fixes: db7b7a05b267 ("cmd: Add 'bcb' command to read/modify/write BCB fields")
Signed-off-by: Eugeniu Rosca <erosca@de.adit-jv.com>
Reviewed-by: Igor Opaniuk <igor.opaniuk@gmail.com>
Reviewed-by: Sam Protsenko <semen.protsenko@linaro.org>
4 years agotreewide: Fix stale references of Android docs
Eugeniu Rosca [Fri, 19 Jul 2019 21:26:11 +0000 (23:26 +0200)]
treewide: Fix stale references of Android docs

Commit 9bdf0e8fef86 ("doc: relocate/rename Android README and add BCB
overview") left some obsolete references of Android documents/paths.

This has been pointed out by Sam (thanks!) in:
https://patchwork.ozlabs.org/patch/1104245/#2208134

Fixes: 9bdf0e8fef86 ("doc: relocate/rename Android README and add BCB overview")
Reported-by: Sam Protsenko <semen.protsenko@linaro.org>
Suggested-by: Sam Protsenko <semen.protsenko@linaro.org>
Signed-off-by: Eugeniu Rosca <erosca@de.adit-jv.com>
Reviewed-by: Igor Opaniuk <igor.opaniuk@gmail.com>
Reviewed-by: Sam Protsenko <semen.protsenko@linaro.org>
4 years agoimage: android: allow to wrap uImage into the Android boot image
Roman Stratiienko [Mon, 3 Jun 2019 12:38:13 +0000 (15:38 +0300)]
image: android: allow to wrap uImage into the Android boot image

This allows to use any available compression format with Android boot image

Since not all available compression formats have a magic number we should
explicitly specify type of compression.

For this purpose using uImage format becomes very useful, as this format is
well-known by the community and mkimage tool is already available.

Usage example:
mkimage -A ARM64 -T kernel -C lzma -d Image.lzma out/kernel

At this moment only -C option is handled, but specifying -A and -T options
are recommended for compatibility reasons in the future.

Kernel that compressed with LZ4 can be already used without wrapping into
the uImage, but I recommend wrapping it into the uImage in order to avoid
situations when by some mistake legacy LZ4 is used, that is interpreted as
raw Image and causes CPU to enter Exception Handler without providing any
meaningful explanation to the user.

Signed-off-by: Roman Stratiienko <roman.stratiienko@globallogic.com>
4 years agomenu: don't bother going interactive with just one menu item
Leon Yu [Fri, 21 Jun 2019 04:12:39 +0000 (12:12 +0800)]
menu: don't bother going interactive with just one menu item

If there is only one menu item available, prompting user to enter
choice makes little sense and just causes unnecessary boot delay. This
change makes menu_get_choice return the only one item when there is no
other choices.

Signed-off-by: Leon Yu <leoyu@nvidia.com>
Cc: Tom Warren <twarren@nvidia.com>
Cc: Stephen Warren <swarren@nvidia.com>
Cc: Thierry Reding <treding@nvidia.com>
4 years agocmd: part: Add 'number' sub-command
Ruslan Trofymenko [Fri, 14 Jun 2019 14:01:26 +0000 (17:01 +0300)]
cmd: part: Add 'number' sub-command

This sub-command serves for getting the partition index from
partition name. Also it can be used to test the existence of specified
partition.

Use case:
For example, in most CI environments this U-Boot command for automatic
testing of Linux rootfs is used:

    => setenv bootpart 1:f

where 0xf is "userdata" partition. But the number of "userdata"
partition can be changed any time, when partition table is changed.

So it would be nice to get rid of that 0xf magic number and use
partition name instead, like this:

    => part number mmc 1 userdata part_num
    => setenv bootpart 1:${part_num}

Signed-off-by: Ruslan Trofymenko <ruslan.trofymenko@linaro.org>
Signed-off-by: Igor Opaniuk <igor.opaniuk@gmail.com>
Reviewed-by: Alistair Strachan <astrachan@google.com>
Reviewed-by: Sam Protsenko <semen.protsenko@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Sam Protsenko <semen.protsenko@linaro.org>
4 years agoMerge branch '2019-07-24-doc-html-cleanup'
Tom Rini [Wed, 24 Jul 2019 17:15:19 +0000 (13:15 -0400)]
Merge branch '2019-07-24-doc-html-cleanup'

- Convert our docs to Sphinx

4 years agodoc: Remove README.blackfin
Bin Meng [Thu, 18 Jul 2019 07:34:35 +0000 (00:34 -0700)]
doc: Remove README.blackfin

U-Boot no longer supports blackfin architecture. Remove the doc.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
4 years agodoc: arch: Convert README.xtensa to reST
Bin Meng [Thu, 18 Jul 2019 07:34:34 +0000 (00:34 -0700)]
doc: arch: Convert README.xtensa to reST

Convert plain text documentation to reStructuredText format and add
it to Sphinx TOC tree. No essential content change.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
4 years agodoc: arch: Convert README.sandbox to reST
Bin Meng [Thu, 18 Jul 2019 07:34:33 +0000 (00:34 -0700)]
doc: arch: Convert README.sandbox to reST

Convert plain text documentation to reStructuredText format and add
it to Sphinx TOC tree. No essential content change.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
4 years agodoc: arch: Convert README.sh to reST
Bin Meng [Thu, 18 Jul 2019 07:34:32 +0000 (00:34 -0700)]
doc: arch: Convert README.sh to reST

Convert plain text documentation to reStructuredText format and add
it to Sphinx TOC tree. No essential content change.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
4 years agodoc: arch: Convert README.m68k to reST
Bin Meng [Thu, 18 Jul 2019 07:34:31 +0000 (00:34 -0700)]
doc: arch: Convert README.m68k to reST

Convert plain text documentation to reStructuredText format and add
it to Sphinx TOC tree. No essential content change.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
4 years agodoc: arch: Convert README.ARC to reST
Bin Meng [Thu, 18 Jul 2019 07:34:30 +0000 (00:34 -0700)]
doc: arch: Convert README.ARC to reST

Convert plain text documentation to reStructuredText format and add
it to Sphinx TOC tree. No essential content change.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
4 years agodoc: arch: Convert README.nios2 to reST
Bin Meng [Thu, 18 Jul 2019 07:34:29 +0000 (00:34 -0700)]
doc: arch: Convert README.nios2 to reST

Convert plain text documentation to reStructuredText format and add
it to Sphinx TOC tree. No essential content change.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
4 years agodoc: arch: Convert README.NDS32 to reST
Bin Meng [Thu, 18 Jul 2019 07:34:28 +0000 (00:34 -0700)]
doc: arch: Convert README.NDS32 to reST

Convert plain text documentation to reStructuredText format and add
it to Sphinx TOC tree. No essential content change.

This also merges README.N1213 contents into the new nds32.rst file.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
4 years agodoc: arch: Convert README.arm64 to reST
Bin Meng [Thu, 18 Jul 2019 07:34:27 +0000 (00:34 -0700)]
doc: arch: Convert README.arm64 to reST

Convert plain text documentation to reStructuredText format and add
it to Sphinx TOC tree. No essential content change.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
4 years agodoc: arch: Convert README.x86 to reST
Bin Meng [Thu, 18 Jul 2019 07:34:26 +0000 (00:34 -0700)]
doc: arch: Convert README.x86 to reST

Convert plain text documentation to reStructuredText format and add
it to Sphinx TOC tree. No essential content change.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
4 years agodoc: board: Convert README.zynq to reST
Bin Meng [Thu, 18 Jul 2019 07:34:25 +0000 (00:34 -0700)]
doc: board: Convert README.zynq to reST

Convert plain text documentation to reStructuredText format and add
it to Sphinx TOC tree. No essential content change.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
4 years agodoc: board: Convert README.b4860qds to reST
Bin Meng [Thu, 18 Jul 2019 07:34:24 +0000 (00:34 -0700)]
doc: board: Convert README.b4860qds to reST

Convert plain text documentation to reStructuredText format and add
it to Sphinx TOC tree. No essential content change.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
4 years agodoc: board: Convert README.at91 to reST
Bin Meng [Thu, 18 Jul 2019 07:34:23 +0000 (00:34 -0700)]
doc: board: Convert README.at91 to reST

Convert plain text documentation to reStructuredText format and add
it to Sphinx TOC tree. No essential content change.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
4 years agodoc: board: Convert README.sh7753evb to reST
Bin Meng [Thu, 18 Jul 2019 07:34:22 +0000 (00:34 -0700)]
doc: board: Convert README.sh7753evb to reST

Convert plain text documentation to reStructuredText format and add
it to Sphinx TOC tree. No essential content change.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
4 years agodoc: board: Convert README.sh7752evb to reST
Bin Meng [Thu, 18 Jul 2019 07:34:21 +0000 (00:34 -0700)]
doc: board: Convert README.sh7752evb to reST

Convert plain text documentation to reStructuredText format and add
it to Sphinx TOC tree. No essential content change.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
4 years agodoc: board: Convert README.sifive-fu540 to reST
Bin Meng [Thu, 18 Jul 2019 07:34:20 +0000 (00:34 -0700)]
doc: board: Convert README.sifive-fu540 to reST

Convert plain text documentation to reStructuredText format and add
it to Sphinx TOC tree. No essential content change.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
4 years agodoc: board: Convert README.ag101p to reST
Bin Meng [Thu, 18 Jul 2019 07:34:19 +0000 (00:34 -0700)]
doc: board: Convert README.ag101p to reST

Convert plain text documentation to reStructuredText format and add
it to Sphinx TOC tree. No essential content change.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
4 years agodoc: board: Add AndesTech ax25-ae350 board doc
Bin Meng [Thu, 18 Jul 2019 07:34:18 +0000 (00:34 -0700)]
doc: board: Add AndesTech ax25-ae350 board doc

This converts README.AX25 and README.ae350 plain text documentation
to reST format, merges them into one ax25-ae350 doc, and adds it to
Sphinx TOC tree. No essential content change.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
4 years agodoc: board: Convert README.qemu-mips to reST
Bin Meng [Thu, 18 Jul 2019 07:34:17 +0000 (00:34 -0700)]
doc: board: Convert README.qemu-mips to reST

Convert plain text documentation to reStructuredText format and add
it to Sphinx TOC tree. No essential content change.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
4 years agodoc: board: Convert README.qemu-riscv to reST
Bin Meng [Thu, 18 Jul 2019 07:34:16 +0000 (00:34 -0700)]
doc: board: Convert README.qemu-riscv to reST

Convert plain text documentation to reStructuredText format and add
it to Sphinx TOC tree. No essential content change.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
4 years agodoc: board: Convert README.qemu-arm to reST
Bin Meng [Thu, 18 Jul 2019 07:34:15 +0000 (00:34 -0700)]
doc: board: Convert README.qemu-arm to reST

Convert plain text documentation to reStructuredText format and add
it to Sphinx TOC tree. No essential content change.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
4 years agodoc: board: Add QEMU x86 board doc
Bin Meng [Thu, 18 Jul 2019 07:34:14 +0000 (00:34 -0700)]
doc: board: Add QEMU x86 board doc

This extracts QEMU x86 board specific information from README.x86,
converts plain text documentation to reST format and adds it to
Sphinx TOC tree. No essential content change.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
4 years agodoc: board: Add coreboot board doc
Bin Meng [Thu, 18 Jul 2019 07:34:13 +0000 (00:34 -0700)]
doc: board: Add coreboot board doc

This extracts coreboot board specific information from README.x86,
converts plain text documentation to reST format and adds it to
Sphinx TOC tree. No essential content change.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
4 years agodoc: board: Add Google Chromebook Samus board doc
Bin Meng [Thu, 18 Jul 2019 07:34:12 +0000 (00:34 -0700)]
doc: board: Add Google Chromebook Samus board doc

This extracts Google Chromebook Samus board specific information from
README.x86, converts plain text documentation to reST format and
adds it to Sphinx TOC tree. No essential content change.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
4 years agodoc: board: Add Google Chromebook Link board doc
Bin Meng [Thu, 18 Jul 2019 07:34:11 +0000 (00:34 -0700)]
doc: board: Add Google Chromebook Link board doc

This extracts Google Chromebook Link board specific information from
README.x86, converts plain text documentation to reST format and
adds it to Sphinx TOC tree. No essential content change.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
4 years agodoc: board: Add Intel Galileo board doc
Bin Meng [Thu, 18 Jul 2019 07:34:10 +0000 (00:34 -0700)]
doc: board: Add Intel Galileo board doc

This extracts Intel Galileo board specific information from
README.x86, converts plain text documentation to reST format and
adds it to Sphinx TOC tree. No essential content change.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
4 years agodoc: board: Add Intel Edison board doc
Bin Meng [Thu, 18 Jul 2019 07:34:09 +0000 (00:34 -0700)]
doc: board: Add Intel Edison board doc

This extracts Intel Edison board specific information from
README.x86, converts plain text documentation to reST format and
adds it to Sphinx TOC tree. No essential content change.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Acked-by: Andy Shevchenko <andy.shevchenko@gmail.com>
4 years agodoc: board: Add Intel Cougar Canyon 2 board doc
Bin Meng [Thu, 18 Jul 2019 07:34:08 +0000 (00:34 -0700)]
doc: board: Add Intel Cougar Canyon 2 board doc

This extracts Intel Cougar Canyon 2 board specific information from
README.x86, converts plain text documentation to reST format and
adds it to Sphinx TOC tree. No essential content change.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
4 years agodoc: board: Add Intel Cherry Hill board doc
Bin Meng [Thu, 18 Jul 2019 07:34:07 +0000 (00:34 -0700)]
doc: board: Add Intel Cherry Hill board doc

This extracts Intel Cherry Hill board specific information from
README.x86, converts plain text documentation to reST format and
adds it to Sphinx TOC tree. No essential content change.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
4 years agodoc: board: Add Intel Bay Trail based board docs
Bin Meng [Thu, 18 Jul 2019 07:34:06 +0000 (00:34 -0700)]
doc: board: Add Intel Bay Trail based board docs

This extracts Intel Bay Trail based board specific information from
README.x86, converts plain text documentation to reST format and
adds them to Sphinx TOC tree. No essential content change.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
4 years agodoc: board: Add Intel Crown Bay board doc
Bin Meng [Thu, 18 Jul 2019 07:34:05 +0000 (00:34 -0700)]
doc: board: Add Intel Crown Bay board doc

This extracts Intel Crown Bay board specific information from
README.x86, converts plain text documentation to reST format and
adds it to Sphinx TOC tree. No essential content change.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
4 years agodoc: Add board specific info to Sphinx TOC tree
Bin Meng [Thu, 18 Jul 2019 07:34:04 +0000 (00:34 -0700)]
doc: Add board specific info to Sphinx TOC tree

Add index.rst for board. More docs will be added later.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
4 years agodoc: arch: Convert README.mips to reST
Bin Meng [Thu, 18 Jul 2019 07:34:03 +0000 (00:34 -0700)]
doc: arch: Convert README.mips to reST

Convert plain text documentation to reStructuredText format and add
it to Sphinx TOC tree. No essential content change.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
4 years agodoc: Add architecture specific info to Sphinx TOC tree
Bin Meng [Thu, 18 Jul 2019 07:34:02 +0000 (00:34 -0700)]
doc: Add architecture specific info to Sphinx TOC tree

Add index.rst for architecture specific info. More docs will be
added later.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
4 years agodoc: driver-model: Convert usb-info.txt to reST
Bin Meng [Thu, 18 Jul 2019 07:34:01 +0000 (00:34 -0700)]
doc: driver-model: Convert usb-info.txt to reST

Convert plain text documentation to reStructuredText format and add
it to Sphinx TOC tree. No essential content change.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
4 years agodoc: driver-model: Convert spi-howto.txt to reST
Bin Meng [Thu, 18 Jul 2019 07:34:00 +0000 (00:34 -0700)]
doc: driver-model: Convert spi-howto.txt to reST

Convert plain text documentation to reStructuredText format and add
it to Sphinx TOC tree. No essential content change.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
4 years agodoc: driver-model: Convert serial-howto.txt to reST
Bin Meng [Thu, 18 Jul 2019 07:33:59 +0000 (00:33 -0700)]
doc: driver-model: Convert serial-howto.txt to reST

Convert plain text documentation to reStructuredText format and add
it to Sphinx TOC tree. No essential content change.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
4 years agodoc: driver-model: Convert remoteproc-framework.txt to reST
Bin Meng [Thu, 18 Jul 2019 07:33:58 +0000 (00:33 -0700)]
doc: driver-model: Convert remoteproc-framework.txt to reST

Convert plain text documentation to reStructuredText format and add
it to Sphinx TOC tree. No essential content change.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
4 years agodoc: driver-model: Convert pmic-framework.txt to reST
Bin Meng [Thu, 18 Jul 2019 07:33:57 +0000 (00:33 -0700)]
doc: driver-model: Convert pmic-framework.txt to reST

Convert plain text documentation to reStructuredText format and add
it to Sphinx TOC tree. No essential content change.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
4 years agodoc: driver-model: Convert pci-info.txt to reST
Bin Meng [Thu, 18 Jul 2019 07:33:56 +0000 (00:33 -0700)]
doc: driver-model: Convert pci-info.txt to reST

Convert plain text documentation to reStructuredText format and add
it to Sphinx TOC tree. No essential content change.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
4 years agodoc: driver-model: Convert of-plat.txt to reST
Bin Meng [Thu, 18 Jul 2019 07:33:55 +0000 (00:33 -0700)]
doc: driver-model: Convert of-plat.txt to reST

Convert plain text documentation to reStructuredText format and add
it to Sphinx TOC tree. No essential content change.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
4 years agodoc: driver-model: Convert livetree.txt to reST
Bin Meng [Thu, 18 Jul 2019 07:33:54 +0000 (00:33 -0700)]
doc: driver-model: Convert livetree.txt to reST

Convert plain text documentation to reStructuredText format and add
it to Sphinx TOC tree. No essential content change.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
4 years agodoc: driver-model: Convert i2c-howto.txt to reST
Bin Meng [Thu, 18 Jul 2019 07:33:53 +0000 (00:33 -0700)]
doc: driver-model: Convert i2c-howto.txt to reST

Convert plain text documentation to reStructuredText format and add
it to Sphinx TOC tree. No essential content change.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
4 years agodoc: driver-model: Convert fs_firmware_loader.txt to reST
Bin Meng [Thu, 18 Jul 2019 07:33:52 +0000 (00:33 -0700)]
doc: driver-model: Convert fs_firmware_loader.txt to reST

Convert plain text documentation to reStructuredText format and add
it to Sphinx TOC tree. No essential content change.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
4 years agodoc: driver-model: Convert fdt-fixup.txt to reST
Bin Meng [Thu, 18 Jul 2019 07:33:51 +0000 (00:33 -0700)]
doc: driver-model: Convert fdt-fixup.txt to reST

Convert plain text documentation to reStructuredText format and add
it to Sphinx TOC tree. No essential content change.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
4 years agodoc: driver-model: Convert MIGRATION.txt to reST
Bin Meng [Thu, 18 Jul 2019 07:33:50 +0000 (00:33 -0700)]
doc: driver-model: Convert MIGRATION.txt to reST

Convert plain text documentation to reStructuredText format and add
it to Sphinx TOC tree. No essential content change.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
4 years agodoc: driver-model: Convert README.txt to reST
Bin Meng [Thu, 18 Jul 2019 07:33:49 +0000 (00:33 -0700)]
doc: driver-model: Convert README.txt to reST

Convert plain text documentation to reStructuredText format and add
it to Sphinx TOC tree. No essential content change.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
4 years agodoc: Add driver-model to Sphinx TOC tree
Bin Meng [Thu, 18 Jul 2019 07:33:48 +0000 (00:33 -0700)]
doc: Add driver-model to Sphinx TOC tree

Add index.rst for driver model. More docs will be added later.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Heinrich Schuchardt <xypron.glkpk@gmx.de>
4 years agodoc: Add top-level description about U-Boot documentation
Bin Meng [Thu, 18 Jul 2019 07:33:47 +0000 (00:33 -0700)]
doc: Add top-level description about U-Boot documentation

This updates the index.rst to add top-level description about
U-Boot documentation. Words are taken from Linux kernel docs
and modified for U-Boot.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
4 years agodoc: Move existing rst files into api sub-directory
Bin Meng [Thu, 18 Jul 2019 07:33:46 +0000 (00:33 -0700)]
doc: Move existing rst files into api sub-directory

Currently the Sphinx doc only contains API descriptions of several
U-Boot subsystems. For future extension, group these existing docs
into an API sub-directory.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
4 years agobinman: Allow preserving test directories
Simon Glass [Mon, 8 Jul 2019 19:18:49 +0000 (13:18 -0600)]
binman: Allow preserving test directories

Sometimes when debugging tests it is useful to keep the input and output
directories so they can be examined later. Add an option for this and
update the binman tests to support it. This affects both the test class
and the tearDown() function called after each test.

Signed-off-by: Simon Glass <sjg@chromium.org>
4 years agobinman: Allow verbosity control when running tests
Simon Glass [Mon, 8 Jul 2019 19:18:48 +0000 (13:18 -0600)]
binman: Allow verbosity control when running tests

At present the -v flag is ignored with tests, so that (for example) -v2
does not have any effect. Update binman to pass this flag through to tests
so that they work just like running binman normally, except in a few
special cases where we are actually testing behaviour with different
levels of verbosity.

Signed-off-by: Simon Glass <sjg@chromium.org>
4 years agobinman: Fix up the _DoTestFile() function -u argument
Simon Glass [Mon, 8 Jul 2019 19:18:47 +0000 (13:18 -0600)]
binman: Fix up the _DoTestFile() function -u argument

This should be -u, not -up, since we don't need to preserve the output
directory in this case.

Signed-off-by: Simon Glass <sjg@chromium.org>
4 years agobinman: Support ELF files for TPL
Simon Glass [Mon, 8 Jul 2019 19:18:46 +0000 (13:18 -0600)]
binman: Support ELF files for TPL

We currenty support using the ELF file in U-Boot proper and SPL, but not
TPL. Add this as it is useful both with sandbox and for CBFS to allow
adding TPL as a 'stage'.

Signed-off-by: Simon Glass <sjg@chromium.org>
4 years agobinman: Correct comment in u_boot_spl_elf
Simon Glass [Mon, 8 Jul 2019 19:18:45 +0000 (13:18 -0600)]
binman: Correct comment in u_boot_spl_elf

This comment mentions the wrong default filename. Fix it.

Signed-off-by: Simon Glass <sjg@chromium.org>
4 years agobinman: Use tools compression function for blob handling
Simon Glass [Mon, 8 Jul 2019 19:18:44 +0000 (13:18 -0600)]
binman: Use tools compression function for blob handling

Avoid duplicate code here by using the new compression function in the
tools module.

Signed-off-by: Simon Glass <sjg@chromium.org>
4 years agobinman: Drop unnecessary debug handling
Simon Glass [Mon, 8 Jul 2019 19:18:43 +0000 (13:18 -0600)]
binman: Drop unnecessary debug handling

The -D option enables debug mode, but we only need to add -D to the
command line once. Drop the duplicate code. Also drop the comment about
enabling debugging since this can be done with -D.

Signed-off-by: Simon Glass <sjg@chromium.org>
4 years agobinman: Use the tools.Decompress method
Simon Glass [Mon, 8 Jul 2019 19:18:42 +0000 (13:18 -0600)]
binman: Use the tools.Decompress method

Update the compression test to use the tools module to decompress the
output data.

Signed-off-by: Simon Glass <sjg@chromium.org>
4 years agopatman: Add functions to compress and decompress data
Simon Glass [Mon, 8 Jul 2019 19:18:41 +0000 (13:18 -0600)]
patman: Add functions to compress and decompress data

Add utility functions to compress and decompress using lz4 and lzma
algorithms. In the latter case these use the legacy lzma support favoured
by coreboot's CBFS.

No tests are provided as these functions will be tested by the CBFS
tests in a separate patch.

Signed-off-by: Simon Glass <sjg@chromium.org>
4 years agobinman: Allow text directly in the node
Simon Glass [Mon, 8 Jul 2019 19:18:40 +0000 (13:18 -0600)]
binman: Allow text directly in the node

At present text entries use an indirect method to specify the text to use,
with a label pointing to the text itself.

Allow the text to be directly written into the node. This is more
convenient in cases where the text is constant.

Signed-off-by: Simon Glass <sjg@chromium.org>
4 years agobinman: Update entry.SetOffsetSize to be optional
Simon Glass [Mon, 8 Jul 2019 19:18:39 +0000 (13:18 -0600)]
binman: Update entry.SetOffsetSize to be optional

At present this function always sets both the offset and the size of
entries. But in some cases we want to set only one or the other, for
example with the forthcoming ifwi entry, where we only set the offset.
Update the function to handle this.

Signed-off-by: Simon Glass <sjg@chromium.org>
4 years agobinman: Don't assume there is an ME region
Simon Glass [Mon, 8 Jul 2019 19:18:38 +0000 (13:18 -0600)]
binman: Don't assume there is an ME region

At present having a descriptor means that there is an ME (Intel
Management Engine) entry as well. The descriptor provides the ME location
and assumes that it is present.

For some SoCs this is not true. Before providing the location of a
potentially non-existent entry, check if it is present.

Update the comment in the ME entry also.

Signed-off-by: Simon Glass <sjg@chromium.org>
4 years agobinman: Assume Intel descriptor is at the start of the image
Simon Glass [Mon, 8 Jul 2019 19:18:37 +0000 (13:18 -0600)]
binman: Assume Intel descriptor is at the start of the image

At present binman requires that the Intel descriptor has an explicit
offset. Generally this is 0 since the descriptor is at the start of the
image. Add a default to handle this, so users don't need to specify the
offset.

Signed-off-by: Simon Glass <sjg@chromium.org>
4 years agobinman: Ensure that coverage has access to site packages
Simon Glass [Mon, 8 Jul 2019 19:18:36 +0000 (13:18 -0600)]
binman: Ensure that coverage has access to site packages

Code coverage tests fail on binman due to dist-packages being dropped from
the python path on Ubuntu 16.04. Add them in so that we can find the
elffile module, which is required by binman.

Signed-off-by: Simon Glass <sjg@chromium.org>
4 years agobinman: Add a function to decode an ELF file
Simon Glass [Mon, 8 Jul 2019 19:18:35 +0000 (13:18 -0600)]
binman: Add a function to decode an ELF file

Add a function which decodes an ELF file, working out where in memory each
part of the data should be written.

Signed-off-by: Simon Glass <sjg@chromium.org>
4 years agobinman: Add a function to create a sample ELF file
Simon Glass [Mon, 8 Jul 2019 19:18:34 +0000 (13:18 -0600)]
binman: Add a function to create a sample ELF file

It is useful to create an ELF file for testing purposes, with just the
right attributes used by the test. Add a function to handle this, along
with a test that it works correctly.

Signed-off-by: Simon Glass <sjg@chromium.org>
4 years agobinman: Detect skipped tests
Simon Glass [Mon, 8 Jul 2019 19:18:33 +0000 (13:18 -0600)]
binman: Detect skipped tests

If tests are skipped we should ideally exit with an error, since there may
be a missing dependency. However at present this is not desirable since it
breaks travis tests. For now, just report the skips.

Signed-off-by: Simon Glass <sjg@chromium.org>
4 years agobinman: Use a better error for missing Intel descriptor
Simon Glass [Mon, 8 Jul 2019 19:18:32 +0000 (13:18 -0600)]
binman: Use a better error for missing Intel descriptor

FD is a bit confusing so write this out in full. Also avoid splitting the
string so that people can grep for the error message more easily.

Signed-off-by: Simon Glass <sjg@chromium.org>
4 years agobinman: Tidy up help for --indir
Simon Glass [Mon, 8 Jul 2019 19:18:31 +0000 (13:18 -0600)]
binman: Tidy up help for --indir

The current help is confusing. Adjust it to indicate what the flag
actually does.

Signed-off-by: Simon Glass <sjg@chromium.org>
4 years agobinman: Add missing comments toentry
Simon Glass [Mon, 8 Jul 2019 19:18:30 +0000 (13:18 -0600)]
binman: Add missing comments toentry

At present GetOffsets() lacks a function comment. Add one.

Signed-off-by: Simon Glass <sjg@chromium.org>
4 years agobinman: Add missing comments to bsection
Simon Glass [Mon, 8 Jul 2019 19:18:29 +0000 (13:18 -0600)]
binman: Add missing comments to bsection

Some functions lack comments in this file. Add comments to cover this
functionality.

Signed-off-by: Simon Glass <sjg@chromium.org>
4 years agobinman: Add a --toolpath option to set the tool search path
Simon Glass [Mon, 8 Jul 2019 19:18:28 +0000 (13:18 -0600)]
binman: Add a --toolpath option to set the tool search path

Sometimes tools used by binman may not be in the normal PATH search path,
such as when the tool is built by the U-Boot build itself (e.g. mkimage).
Provide a way to specify an additional search path for tools. The flag
can be used multiple times.

Update the help to describe this option.

Signed-off-by: Simon Glass <sjg@chromium.org>
4 years agopatman: Add a way to set the search path for tools
Simon Glass [Mon, 8 Jul 2019 19:18:27 +0000 (13:18 -0600)]
patman: Add a way to set the search path for tools

Sometimes tools can be located by looking in other locations. Add a way to
direct the search.

Signed-off-by: Simon Glass <sjg@chromium.org>
4 years agobinman: Add coverage tools info for Python 3
Simon Glass [Mon, 8 Jul 2019 19:18:26 +0000 (13:18 -0600)]
binman: Add coverage tools info for Python 3

Test coverage with Python 3 requires a new package. Add details about
this.

Signed-off-by: Simon Glass <sjg@chromium.org>
4 years agobinman: Correct two typos in function names in ftest
Simon Glass [Mon, 8 Jul 2019 19:18:25 +0000 (13:18 -0600)]
binman: Correct two typos in function names in ftest

Two functions have incorrect names. Fix them.

Signed-off-by: Simon Glass <sjg@chromium.org>
4 years agobinman: Fix comment in bsection.GetEntries()
Simon Glass [Mon, 8 Jul 2019 19:18:24 +0000 (13:18 -0600)]
binman: Fix comment in bsection.GetEntries()

This comment is out of date as it does not correctly describe the return
value. Fix it.

Signed-off-by: Simon Glass <sjg@chromium.org>
4 years agotools: Drop duplicate raise_on_error argument
Simon Glass [Mon, 8 Jul 2019 19:18:23 +0000 (13:18 -0600)]
tools: Drop duplicate raise_on_error argument

If kwargs contains raise_on_error then this function generates an error
due to a duplicate argument. Fix this.

Signed-off-by: Simon Glass <sjg@chromium.org>
4 years agocbfs: Rename checksum to attributes_offset
Simon Glass [Mon, 8 Jul 2019 19:18:22 +0000 (13:18 -0600)]
cbfs: Rename checksum to attributes_offset

It seems that this field has been renamed in later version of coreboot.
Update it.

Signed-off-by: Simon Glass <sjg@chromium.org>
4 years agocbfs: Add an enum and comment for the magic number
Simon Glass [Mon, 8 Jul 2019 19:18:21 +0000 (13:18 -0600)]
cbfs: Add an enum and comment for the magic number

This field is not commented in the original file. Add a comment.

Signed-off-by: Simon Glass <sjg@chromium.org>
4 years agox86: Add ifwitool for Intel Integrated Firmware Image
Simon Glass [Mon, 8 Jul 2019 19:18:20 +0000 (13:18 -0600)]
x86: Add ifwitool for Intel Integrated Firmware Image

Some Intel SoCs from about 2016 boot using an internal microcontroller via
an 'IFWI' image. This is a special format which can hold firmware images.
In U-Boot's case it holds u-boot-tpl.bin.

Add this tool, taken from coreboot, so that we can build bootable images
on apollolake SoCs.

This tool itself has no tests. Some amount of coverage will be provided by
the binman tests that use it, so enable building the tool on sandbox.

Signed-off-by: Simon Glass <sjg@chromium.org>
4 years agoMerge tag 'efi-2019-10-rc1-2' of https://gitlab.denx.de/u-boot/custodians/u-boot-efi
Tom Rini [Wed, 24 Jul 2019 02:29:53 +0000 (22:29 -0400)]
Merge tag 'efi-2019-10-rc1-2' of https://gitlab.denx.de/u-boot/custodians/u-boot-efi

Pull request for UEFI sub-system for v2019.10-rc1 (2)

* Implement the EVT_SIGNAL_VIRTUAL_ADDRESS_CHANGE event.
* Address errors of type -Werror=address-of-packed-member when building
  with GCC9.1
* Fix an error when adding memory add addres 0x00000000.
* Rework some code comments for Sphinx compliance.

4 years agoMerge tag 'u-boot-stm32-20190723' of https://gitlab.denx.de/u-boot/custodians/u-boot-stm
Tom Rini [Tue, 23 Jul 2019 18:16:21 +0000 (14:16 -0400)]
Merge tag 'u-boot-stm32-20190723' of https://gitlab.denx.de/u-boot/custodians/u-boot-stm

- add rtc driver for stm32mp1
- add remoteproc driver for stm32mp1
- use kernel qspi compatible string for stm32

4 years agoMerge tag 'rockchip-for-v2019.07-2' of https://gitlab.denx.de/u-boot/custodians/u...
Tom Rini [Tue, 23 Jul 2019 13:48:16 +0000 (09:48 -0400)]
Merge tag 'rockchip-for-v2019.07-2' of https://gitlab.denx.de/u-boot/custodians/u-boot-rockchip

- rk3399 sdhci driver fixup
- TPL BANNER fixup