Compare commits

...

81 Commits

Author SHA1 Message Date
Tom Rini
62e2ad1cea Prepare v2023.01
Signed-off-by: Tom Rini <trini@konsulko.com>
2023-01-09 11:07:33 -05:00
Jagan Teki
31500e7bcf board: rockchip: Fix binman_init failure on EVB-RK3568
For some newer SoCs like RK3568, the Rockchip has not released
any DDR drivers yet so idbloader needs to create manually using
DDR binaries offered by rkbin. This indeed no requirement to
enable TPL in the U-Boot source code.

If we mark TPL disabled and mark BINMAN enabled by default then
there would be an issue of binman_init failure during board
relocation. This is true as binman failed to find the top-level
node like u-boot-tpl here.

Here is the boot issue observed in Radxa-CM3 RK3566 board,

 U-Boot 2023.01-rc4-00057-gac2505d463-dirty (Jan 04 2023 - 23:44:18 +0530)

 Model: Radxa Compute Module 3(CM3) IO Board
 DRAM:  2 GiB
 binman_init failed:-2
 initcall sequence 000000007ffd2008 failed at call 0000000000a18cac (err=-2)
 ### ERROR ### Please RESET the board ###

This might be fixed via binman node in rockchip-u-boot.dtsi however
disable BINMAN_FDT for evb-rk3568 defconfig for now as we are at the
end of the release cycle.

Fixes: 05713d5707 ("rockchip: generate u-boot-rockchip.bin with binman
for ARM64 boards")
Cc: Quentin Schulz <quentin.schulz@theobroma-systems.com>
Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2023-01-09 08:29:15 -05:00
Marek Vasut
53e5b584e6 distro_bootcmd: Fix copy-paste error
The "SCRIPT FAILED" string is copied from scan_dev_for_scripts script,
update it so it prints "EXTLINUX FAILED" instead in scan_dev_for_extlinux
script.

Signed-off-by: Marek Vasut <marex@denx.de>
2023-01-08 08:45:17 -05:00
Tom Rini
051f409d25 pylibfdt: Allow version normalization to fail
In some cases, we might not have the sic portion of setuputils
available. Make our import and use of this be done in try/except blocks
as this is done to suppress a run-time warning that is otherwise
non-fatal.

Reported-by: Pali Rohár <pali@kernel.org>
Fixes: 1416591876 ("pylibfdt: Fix disable version normalization")
Signed-off-by: Tom Rini <trini@konsulko.com>
2023-01-07 18:02:26 -05:00
Pali Rohár
d1f4b090dd common/memsize.c: Check for overflow in get_effective_memsize() only for mpc85xx
This reverts commit 777aaaa706 ("common/memsize.c: Fix
get_effective_memsize() to check for overflow") for non-mpc85xx platforms.

The changes to this generic function, which is intended to help with
32bit platforms with large amounts of memory has unintended side effects
(which in turn lead to boot failures) on other platforms which were
previously functional.

For now do overflow check only for powerpc mpc85xx platform. It is needed
to prevent crashing of P1/P2 boards with 4GB DDR module in 32-bit mode.

Fixes: 777aaaa706 ("common/memsize.c: Fix get_effective_memsize() to check for overflow")
Signed-off-by: Pali Rohár <pali@kernel.org>
2023-01-07 18:01:53 -05:00
Tom Rini
be914b00df Merge tag 'efi-2023-01-rc5-4' of https://source.denx.de/u-boot/custodians/u-boot-efi
Pull request efi-2023-01-rc5-4

UEFI:

* correct the vexpress loaddr which collides with memory used by EFI
* consider the EFI memory map for LMB memory reservation
* avoid RWX section warnings for .data section of *_efi.so files
2023-01-07 12:32:42 -05:00
Heinrich Schuchardt
4bba71ff83 efi_loader: make .data section of *_efi.so files RW
When building with binutils 2.39 warnings

    *_efi.so has a LOAD segment with RWX permissions

occur.

Use SHF_WRITE | SHF_ALLOC as section flags for the .data section.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2023-01-06 22:27:30 +01:00
Heinrich Schuchardt
06d514d77c lmb: consider EFI memory map
Add reservations for all EFI memory areas that are not
EFI_CONVENTIONAL_MEMORY.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2023-01-06 22:27:30 +01:00
Heinrich Schuchardt
eff4440195 efi_loader: carve out efi_get_memory_map_alloc()
Carve out code from efidebug command used to read the memory map.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2023-01-06 22:27:30 +01:00
Heinrich Schuchardt
f4af97cdb4 vexpress: adjust loadaddr
On the vexpress_ca9x4 $loadaddr points to a memory area used by the EFI
sub-system. Use the same value as $kernel_addr_r which is safe.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2023-01-06 22:27:30 +01:00
Tom Rini
9ddcdcc03c Merge tag 'u-boot-stm32-20230106' of https://gitlab.denx.de/u-boot/custodians/u-boot-stm
- stm32mp: Fix board_get_usable_ram_top(): workaround to avoid issue after the
  commit 777aaaa706 ("common/memsize.c: Fix get_effective_memsize() to check
  for overflow") because the effective DDR effective size is reduce by 4KiB
  and sometime the board hang on boot
2023-01-06 08:16:15 -05:00
Tom Rini
bd7fbd58b7 Merge branch '2023-01-06-further-regression-fixes'
- Bring in a number of important regression fixes for among others,
  uniphier, PXE booting, socrates, imx7d-pico, rockchip video and
  rzg2_beacon as well as making the python version warning fix more
  portable.
2023-01-06 08:14:28 -05:00
Adam Ford
5404dfcc4d arm: rmobile: rzg2_beacon: Enable alternative Ethernet PHY
Due to the part shortage, the AR8031 PHY was replaced with a
Micrel KSZ9131. Enabling both config options keeps backward
compatibility with either platform, and both appear to be
auto-detected.

Signed-off-by: Adam Ford <aford173@gmail.com>
Reviewed-by: Marek Vasut <marek.vasut+renesas@gmail.com>
2023-01-06 08:14:19 -05:00
Adam Ford
edd9c891d2 arm: dts: rz-g2-beacon-u-boot: Fix QSPI Regression
The QSPI is accessed via the RPC-IF, but the compatible flags
previously used a different name.  This compatibel name was changed
which broke the ability to access the QSPI.  Fix this by removing
the custom naming reference.

Fixes: 68083b897b ("renesas: Fix RPC-IF compatible values")
Signed-off-by: Adam Ford <aford173@gmail.com>
Reviewed-by: Marek Vasut <marek.vasut+renesas@gmail.com>
2023-01-06 08:14:19 -05:00
Philippe Schenker
1416591876 pylibfdt: Fix disable version normalization
On Arch Linux based systems python setuptools does not contain
"setuptools.extern" hence it is failing with the following
error-message:
"
ModuleNotFoundError: No module named 'setuptools.extern'
"

According to a eschwartz `setuptools.extern` is not a public API and
shall not be assumed to be present in the setuptools package. He
mentions that the setuptools project anyway wants to drop this. [1]

Use the correct solution introduced by python setuptools developers to
disable normalization. [2]

[1] https://bbs.archlinux.org/viewtopic.php?id=259608
[2] https://github.com/pypa/setuptools/pull/2026
Fixes: 440098c42e ("pylibfdt: Fix version normalization warning")
Signed-off-by: Philippe Schenker <philippe.schenker@toradex.com>
Reviewed-by: Marek Vasut <marex@denx.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
2023-01-06 08:14:19 -05:00
Marek Vasut
519e6641db cmd: pxe_utils: Limit fdtcontroladdr usage to non-fitImage
Commit d5ba6188df ("cmd: pxe_utils: Check fdtcontroladdr in label_boot")
forces '$fdtcontroladdr' DT address as a third parameter of bootm command
even if the PXE transfer pulls in a fitImage which contains configuration
node with its own DT that is preferrable to be passed to Linux. Limit the
$fdtcontroladdr fallback utilization to non-fitImages, since it is highly
likely a fitImage would come with its own DT, while single-file images do
need a separate DT.

Fixes: d5ba6188df ("cmd: pxe_utils: Check fdtcontroladdr in label_boot")
Signed-off-by: Marek Vasut <marex@denx.de>
Reviewed-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
Tested-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Peter Hoyes <peter.hoyes@arm.com>
Tested-by: Peter Hoyes <peter.hoyes@arm.com>
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
2023-01-06 08:14:19 -05:00
Marek Vasut
bee3551e00 Revert "Revert "cmd: pxe_utils: Check fdtcontroladdr in label_boot""
This reverts commit ed6251187a.

Superseded by "cmd: pxe_utils: Limit fdtcontroladdr usage to non-fitImage"
which is less heavy-handed approach and retains part of the original
behavior for non-fitImage.

Signed-off-by: Marek Vasut <marex@denx.de>
Acked-by: Neil Armstrong <neil.armstrong@linaro.org>
2023-01-06 08:14:19 -05:00
Jagan Teki
ab644db9ba rockchip: Fix the broken Video out for rk3288 boards
Video out on RK3288 boards has been broken since from few
releases due to the adding of reset support on vop but
missed enabling DM_RESET on associated boards.

This patch fixes those RK3288 boards.

Cc: Simon Glass <sjg@chromium.org>
Cc: Lin Huang <hl@rock-chips.com>
Cc: Jernej Skrabec <jernej.skrabec@gmail.com>
Cc: Michael Trimarchi <michael@amarulasolutions.com>
Cc: Arnaud Patard (Rtp) <arnaud.patard@rtp-net.org>
Fixes: <9749d2ea29e1> ("rockchip: video: vop: Add reset support")
Reported-by: Manoj Sai <abbaraju.manojsai@amarulasolutions.com>
Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2023-01-06 08:14:19 -05:00
Dai Okamura
4671435c54 i2c: uniphier-f: correct error recovery
The uniphier i2c block can recognize some handshake errors.
But driver handles all error detections as no error if no timeout.
So this makes unrecoverable state.

This replaces the return values with the right ones to tell the i2c
framework the errors:
- EDEADLK for arbitration lost error
- ENODATA for no answer error

Signed-off-by: Dai Okamura <okamura.dai@socionext.com>
Acked-by: Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
Reviewed-by: Heiko Schocher <hs@denx.de>
2023-01-06 08:14:19 -05:00
Fabio Estevam
f8548ce0e0 imx7d-pico: Fix the name of the u-boot.dtsi file
Since commit 2f96d4dd95 ("imx7s/d: synchronise device trees with linux")
the imx7d-pico board no longer boots.

The reason is that prior to the above commit there was an explicit
inclusion of arch/arm/dts/imx7d-pico-u-boot.dtsi inside imx7d-pico.dtsi.

After the syncing with the Linux upstream dtsi, this u-boot.dtsi inclusion
is gone and the board fails to boot.

U-Boot uses the imx7d-pico-pi.dtb file, so rename the u-boot.dtsi to
imx7d-pico-pi-u-boot.dtsi which gets included automatically by U-Boot
standard make logic and makes the board boot again.

Signed-off-by: Fabio Estevam <festevam@denx.de>
2023-01-06 08:14:19 -05:00
Pali Rohár
1b697407ae powerpc/mpc85xx: socrates: Re-enable building u-boot-socrates.bin
U-Boot build system builds final U-Boot binary for socrates board in custom
file u-boot-socrates.bin (instead of standard u-boot.bin). Output target
file u-boot-socrates.bin is generated by binman as defined in board binman
config file arch/powerpc/dts/socrates-u-boot.dtsi.

But binman was disabled in commit 5af42eafd7 ("Makefile: Reduce usage of
custom mpc85xx u-boot.bin target") for all mpc85xx boards which do not use
standard powerpc binman config file arch/powerpc/dts/u-boot.dtsi and boards
which do not require binman at all.

The only such mpc85xx board is socrates. So since that commit, U-Boot does
not final binary for socrates board anymore.

Fix this issue by re-enabling binman for socrates board. And build process
starts again producing u-boot-socrates.bin binary.

Note that build process for this socrates board always produce u-boot.bin
binary which is broken and not usable for socrates board. Long term
solution should be to disable building broken binary u-boot.bin and then
renaming u-boot-socrates.bin to u-boot.bin, or switching to use common
powerpc binman config file arch/powerpc/dts/socrates-u-boot.dtsi (if it is
possible).

Fixes: 5af42eafd7 ("Makefile: Reduce usage of custom mpc85xx u-boot.bin target")
Signed-off-by: Pali Rohár <pali@kernel.org>
Tested-by: Heiko Schocher <hs@denx.de>
2023-01-06 08:14:19 -05:00
Marek Vasut
a2e0b041d6 arm: stm32mp: Fix board_get_usable_ram_top() again
Do not access gd->ram_size and assume this is actual valid RAM size. Since commit
777aaaa706 ("common/memsize.c: Fix get_effective_memsize() to check for overflow")
the RAM size may be less than gd->ram_size , call get_effective_memsize() to get
the limited value instead.

The aforementioned commit makes STM32MP15xx boards with 1 GiB of DRAM
at 0xc0000000 hang on boot, which is a grave defect.

Signed-off-by: Marek Vasut <marex@denx.de>
Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
2023-01-06 11:02:17 +01:00
Tom Rini
8d6cbf5e6b Merge tag 'efi-2023-01-rc5-3' of https://source.denx.de/u-boot/custodians/u-boot-efi
Pull request for efi-2023-01-rc5-3

Documentation:

* Describe building documentation

UEFI:

* Add .data section to aarch64 EFI binaries and correct section flags
* Correct sorting of capsules when updating
* Populate console handles in system table

Other:

* Fix description of eth_env_[gs]et_enetaddr() return value
* Avoid endless loop in sound play command
2023-01-04 08:50:24 -05:00
Heinrich Schuchardt
60bba6e205 efi_loader: populate console handles in system table
The fields ConsoleInHandle, ConsoleOutHandle, ConsoleErrHandle must point
to the handles with the respective console protocols. Failure to do so
leads to an error in the EFI Shell:

    No SimpleTextInputEx was found. CTRL-based features are not usable.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2023-01-04 13:17:42 +01:00
Heinrich Schuchardt
93cdb95238 efi_loader: adjust sorting of capsules
Up to now we only compared the first letter of the capsule name to sort
them alphabetically. Properly sort by the Unicode alphabet.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2023-01-04 13:17:42 +01:00
Heinrich Schuchardt
07355760b1 test: unit test for u16_strcasecmp()
Provide a unit test for u16_strcasecmp().

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2023-01-04 13:17:42 +01:00
Heinrich Schuchardt
7a9b366cd9 lib: add function u16_strcasecmp()
Provide a function for comparing UTF-16 strings in a case insensitive
manner.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2023-01-04 13:17:42 +01:00
Heinrich Schuchardt
d7ddeb66a6 efi_loader: fix building aarch64 EFI binaries
While our EFI binaries execute without problems on EDK II they crash on
a Lenovo X13s. Let our binaries look more like what EDK II produces:

* move all writable data to a .data section
* align sections to 4 KiB boundaries (matching EFI page size)
* remove IMAGE_SCN_LNK_NRELOC_OVFL from .reloc section flags

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2023-01-04 13:17:42 +01:00
Heinrich Schuchardt
673a92c5d2 efi_loader: defines for PE-COFF section flags
Provide constants for the section flags used by binaries.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2023-01-04 13:17:42 +01:00
Marek Vasut
fbc595b412 doc: Fix eth_env_[gs]et_enetaddr() return value
Per env/common.c, eth_env_get_enetaddr() returns the same return
values as is_valid_ethaddr(), i.e. true if valid, false otherwise.
Per env/common.c, eth_env_set_enetaddr() may return -EEXIST is the
ethaddr is already set. Fix both.

Signed-off-by: Marek Vasut <marex@denx.de>
Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2023-01-04 13:17:42 +01:00
Heinrich Schuchardt
566b7b2f51 doc: building documentation
Provide a man-page describing how to build the U-Boot documentation.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2023-01-04 13:17:42 +01:00
Heinrich Schuchardt
532952f63c cmd: avoid endless loop in sound play command
A parameter starting with a hyphen leads to an endless loop in the sound
play command.

Leave it to dectoul() to handle the hyphen. It will return 0 for a negative
number.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2023-01-04 13:17:42 +01:00
Tom Rini
582e3c9fb2 Merge https://source.denx.de/u-boot/custodians/u-boot-marvell
- orion-timer: Fix problem with early static variable (Stefan)
2023-01-02 09:36:13 -05:00
Stefan Roese
5387b093cb timer: orion-timer: Fix problem with early static variable
We've noticed that at least one Kirkwood board (Pogo v4) has problems
with the new orion DM timer implementation. Debugging revealed that this
issue is related with the static variable "early_init_done" which does
not work correctly before relocation in all cases.

This patch removes this static variable and replaces it's functionality
via a function that detects if the timer is already initialized.

Signed-off-by: Stefan Roese <sr@denx.de>
Cc: Pali Rohár <pali@kernel.org>
Cc: Michael Walle <michael@walle.cc>
Cc: Tony Dinh <mibodhi@gmail.com>
Tested-by: Tony Dinh <mibodhi@gmail.com>
2023-01-02 09:14:16 +01:00
Tom Rini
3089d12a02 configs: Resync with savedefconfig
Rsync all defconfig files using moveconfig.py

Signed-off-by: Tom Rini <trini@konsulko.com>
2022-12-29 13:44:21 -05:00
Tom Rini
d36bc89be2 Merge tag 'efi-2023-01-rc5-2' of https://source.denx.de/u-boot/custodians/u-boot-efi
Pull request for efi-2023-01-rc5-2

Documentation:

* Reorganize existing TI docs and add K3 generation page
* Add texinfodocs and infodocs targets
* Update qemu-ppce500 documentation
* Use "changesets" not "csets" in statistics pages

UEFI

* Fix merging of preseeded non-volatile variables
* Fix a return value in the  EFI_HII_DATABASE_PROTOCOL
* Set UEFI specification version to 2.10
2022-12-29 13:32:50 -05:00
Tom Rini
6f975524cb Merge branch '2022-12-29-assorted-further-fixes'
- Rework Azure CI jobs for Rockchip, minor fixes for wget and correct
  runtime problems on a number of PowerPC platforms.
2022-12-29 13:31:40 -05:00
Tom Rini
88c2e9157c PowerPC: Update dependencies on *SYS_MPC85XX_NO_RESETVEC
In 96699f097a ("powerpc: mpc85xx: Use binman to embed dtb inside
U-Boot") we introduce CONFIG_MPC85XX_HAVE_RESET_VECTOR and do so via
Kconfig. However, much later in de47ff5363 ("Convert
CONFIG_SYS_MPC85XX_NO_RESETVEC to Kconfig") I converted the symbol that
is the inverse of this to Kconfig. This should have included a
dependency on the first symbol as they are logically opposite.

The dependency being missing lead to some platforms being broken at
runtime due to discarding the require reset vector.

Fixes: de47ff5363 ("Convert CONFIG_SYS_MPC85XX_NO_RESETVEC to Kconfig")
Reported-by: Pali Rohár <pali@kernel.org>
Signed-off-by: Tom Rini <trini@konsulko.com>
Tested-by: Pali Rohár <pali@kernel.org>
2022-12-29 13:31:30 -05:00
Tom Rini
9348d93b0d Merge branch '2022-12-29-assorted-further-fixes'
- Rework Azure CI jobs for Rockchip, minor fixes for wget and correct a
  one of the runtime problems on a number of PowerPC platforms.
2022-12-29 09:51:00 -05:00
Tom Rini
ec9efcf62a PowerPC: Rework PBL location choice
When converting CONFIG_SDCARD and CONFIG_SPIFLASH to Kconfig, one set of
uses wasn't converted correctly. Allow for the case where platforms
don't rely on "PBL" to boot but instead use other mechanisms. See the
link below for more details.

Link: https://lore.kernel.org/all/20220802091338.f4g45ldhc7qbg6hm@pali/
Fixes: d433c74eec ("Convert CONFIG_SDCARD et al to Kconfig")
Tested-by: Pali Rohár <pali@kernel.org>
Signed-off-by: Tom Rini <trini@konsulko.com>
2022-12-29 09:50:53 -05:00
Michael Walle
20422d6930 cmd: net: wget: fix Kconfig dependency
The wget command uses TCP, but fails to select PROT_TCP in Kconfig.
Instead it selects the non-existing symbol TCP. Fix the typo.

Signed-off-by: Michael Walle <michael@walle.cc>
2022-12-29 09:50:53 -05:00
Michael Walle
fe1489bc6d net: wget: fix implicit declaration
The compiler complains about the missing declaration of print_size():
net/wget.c:415:3: warning: implicit declaration of function ‘print_size’ [-Wimplicit-function-declaration]

Fix it.

Signed-off-by: Michael Walle <michael@walle.cc>
2022-12-29 09:50:53 -05:00
Tom Rini
478ed23e11 CI: Rework rockchip jobs in Azure
The rockchip job is getting close to the hard time limit in Azure for
the free tier. Split this in to 32bit and 64bit board jobs.

Signed-off-by: Tom Rini <trini@konsulko.com>
2022-12-29 09:50:53 -05:00
Heinrich Schuchardt
f557cf08b9 efi_loader: use u16_strlen() in efi_var_mem_ins()
Don't duplicate library functionality.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2022-12-29 12:52:39 +01:00
Ilias Apalodimas
77bb14758d efi_loader: avoid adding variables twice
When the efi subsystem starts we restore variables that are both in a
file or stored into the .efi_runtime section of U-Boot.  However once
a variable gets created or changed the preseeded entries will end up in
the file.  As a consequence on the next boot we will end up adding
identical variable entries twice.

Fix this by checking if the to be inserted variable already exists.
Also swap the restoration order and start with the file instead of the
builtin variables,  so a user can replace the preseeded ones if needed.

Tested-by: Leo Yan <leo.yan@linaro.org>
Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2022-12-29 10:51:50 +01:00
Heinrich Schuchardt
fcf583b4a7 efi_loader: typo non-volatile in efi_var_restore
It is volatile variables that we do not allow to be restored from file.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2022-12-29 10:51:50 +01:00
Heinrich Schuchardt
eff6b7157c efi_loader: set UEFI specification version to 2.10
Claim to implement UEFI 2.10 setting EFI_SPECIFICATION_VERSION accordingly.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2022-12-29 10:51:50 +01:00
Heinrich Schuchardt
3ec07c99d8 efi_loader: set IMAGE_FILE_LARGE_ADDRESS_AWARE
For the 64bit EFI binaries that we create set the
IMAGE_FILE_LARGE_ADDRESS_AWARE characteristic in the PE-COFF header
to indicate that they can handle addresses above 2 GiB.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2022-12-29 10:51:50 +01:00
Vincent Stehlé
c33d389c7a efi_loader: fix get_package_list_handle() status
When the HII protocol function get_package_list_handle() is called with an
invalid package list handle, it returns EFI_NOT_FOUND but this is not in
its list of possible status codes as per the EFI specification.
Return EFI_INVALID_PARAMETER instead to fix conformance.

Signed-off-by: Vincent Stehlé <vincent.stehle@arm.com>
Cc: Heinrich Schuchardt <xypron.glpk@gmx.de>
Cc: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2022-12-29 10:51:50 +01:00
Heinrich Schuchardt
159dbe1fb1 doc: improve wget man-page
* correct formatting of synopsis
* improve description of TCP SACK configuration

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2022-12-29 10:51:50 +01:00
Tom Rini
f16086e3e2 doc: Use "changesets" not "csets" in statistics pages
To make things more human readable, say "changesets from" rather than
"csets from" in all our historical pages here. Moving forward this has
been changed in our gitdm with b034e399e31a ("gitdm: fix typo csets").

Signed-off-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2022-12-29 10:51:50 +01:00
Maxim Cournoyer
7fa4c27a2e doc: add texinfodocs and infodocs targets
Sphinx supports generating Texinfo sources and Info documentation,
which can be navigated easily and is convenient to search (via the
indexed nodes or anchors, for example).  This is basically the same as
1f050e904dd6f2955eecbd22031d912ccb2e7683, which was recently applied
to the Linux kernel.

Signed-off-by: Maxim Cournoyer <maxim.cournoyer@savoirfairelinux.com>
Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2022-12-29 10:51:50 +01:00
Pali Rohár
a17be96b62 doc: board: qemu-ppce500: Update supported and unsupported
qemu can emulate also e500v1 core but cannot emulate CPUs from Freescale
PowerPC QorIQ T and P series.

Signed-off-by: Pali Rohár <pali@kernel.org>
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2022-12-29 10:51:50 +01:00
Bryan Brattlof
16a30b3474 doc: ti: add the K3 generation page
Texas Instrument's entire K3 generation of SoCs use much of the same
frameworks and boot flow, especially at the uboot level. Though there
are small differences introduced as each new K3 based SoC is developed
and as the K3 generation matures that will also need to be documented.

Rather than copying the same documentation, with the small differences
applicable to that specific SoC to a new page, introduce a new K3
page that can describe the general boot flow and design decisions for
the entire K3 generation of chips, leaving the specifics for that
particular SoC to a unique sub-page below this one.

Signed-off-by: Bryan Brattlof <bb@ti.com>
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2022-12-29 10:51:50 +01:00
Bryan Brattlof
0820e117c3 doc: ti: reorganize existing ti docs
Texas Instruments produces quite a lot of SoCs based upon a common
architecture 'generation'. (eg: OMAP, K3) TI's existing documentation
layout makes noticing this generation jump rather difficult.

To make navigation easier, split the existing documentation into
individual SoC families so we may begin grouping them according to their
generational (eg: OMAP, K3) families.

Signed-off-by: Bryan Brattlof <bb@ti.com>
Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2022-12-29 10:51:50 +01:00
Tom Rini
adcee0791f Merge https://source.denx.de/u-boot/custodians/u-boot-pmic
- power: regulator: Add support for NPCM8xx
2022-12-26 21:00:20 -05:00
Jim Liu
dbedf4a56b power: regulator: Add support for NPCM8xx
Add support for setting nuvoton BMC NPCM845 voltage supply.

Signed-off-by: Jim Liu <JJLIU0@nuvoton.com>
2022-12-26 15:44:00 +09:00
Tom Rini
e1befc8512 Merge tag 'tpm-23122022' of https://source.denx.de/u-boot/custodians/u-boot-tpm
OP-TEE autodiscovery
2022-12-23 07:46:41 -05:00
Tom Rini
24a0a00f07 Merge branch '2022-12-22-assorted-important-fixes'
- Split up the aarch64 Azure CI job more, to avoid time limits, nuvoton
  network fix, SPL_OPTEE_IMAGE dependency fix, some fixes to the IPv6
  code, PowerPC build flag fixes, silence pylibfdt version warning.
2022-12-23 07:44:30 -05:00
Etienne Carriere
fe8a4ed011 tee: optee: discover services dependent on tee-supplicant
Makes OP-TEE to enumerate also services depending on tee-supplicant
support in U-Boot. This change allows OP-TEE services like fTPM TA
to be discovered and get a TPM device registered in U-Boot.

Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2022-12-23 10:26:15 +02:00
Etienne Carriere
476a3d58df tee: optee: don't fail probe because of optee-rng
Fixes optee-rng driver bind sequence in optee driver to print a warning
message but not report an error status when a optee-rng service driver
fails to be bound as the optee driver itself is still fully functional.

Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2022-12-23 10:26:11 +02:00
Marek Vasut
440098c42e pylibfdt: Fix version normalization warning
Fix the following version normalization warning:
"
/usr/lib/python3/dist-packages/setuptools/dist.py:530: UserWarning: Normalizing '2023.01' to '2023.1'
"

Using suggestion from Richard Jones:
https://github.com/pypa/setuptools/issues/308#issuecomment-405817468

Signed-off-by: Marek Vasut <marex@denx.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
2022-12-22 15:39:13 -05:00
Jim Liu
dd5f07eb6b net: nuvoton: fix build broken for use phy_get_interface_by_name
The original patch is use phy_get_interface_by_name to set interface.
The new patch is use dev_read_phy_mode to replace it.

Signed-off-by: Jim Liu <JJLIU0@nuvoton.com>
Reviewed-by: Ramon Fried <rfried.dev@gmail.com>
2022-12-22 15:39:13 -05:00
Pali Rohár
1db706edcd powerpc/mpc85xx: Disable AltiVec and VSX instructions
All vector instructions on powerpc mpc85xx must not be used because U-Boot
does not enable them. Usage cause random crashes. SPE vector instructions
are already disabled by compiler flags, so disable also AltiVec and VSX
vector instructions.

Linux kernel disables AltiVec and VSX instructions too.

Signed-off-by: Pali Rohár <pali@kernel.org>
2022-12-22 15:39:13 -05:00
Pali Rohár
138b6061a1 powerpc/mpc85xx: Improve disabling of SPE instructions
Specifying -mspe=no also disables usage of SPE instructions. It is
documented in "[PATCH,rs6000] make -mno-spe work as expected" email:
http://gcc.gnu.org/ml/gcc-patches/2008-04/msg00311.html

So replace -mspe=yes by -mspe=no, so make it clear that u-boot has to be
compiled without SPE instructions.

Linux kernel contains following Makefile code to achieve it:

    # No SPE instruction when building kernel
    # (We use all available options to help semi-broken compilers)
    KBUILD_CFLAGS += $(call cc-option,-mno-spe)
    KBUILD_CFLAGS += $(call cc-option,-mspe=no)

Do same for U-Boot.

Signed-off-by: Pali Rohár <pali@kernel.org>
2022-12-22 15:39:13 -05:00
Pali Rohár
c0d0569cf6 powerpc/mpc85xx: Pass correct cpu compiler flags
When gcc's default cpu (selected by --with-cpu= during gcc's configure
phase) does not match target U-Boot board cpu then U-Boot binary does not
have to be compiled correctly. Lot of distributions sets gcc's default cpu
to generic powerpc variant which works fine.

U-Boot already pass -Wa,-me500 flag to gcc which instructs GNU AS to accept
e500 specific instructions when processing assembler source files (.S).

This affects also assembly files generated by gcc from C source files. And
because gcc for generic powerpc cpu puts '.machine ppc' at the beginning of
the generated assembly file, it basically overwrites -me500 flag by which
was GNU AS invoked (from U-boot build system).

It started to be an issue since binutils 2.38 which does not keep enabled
extra functional units selected by previous cpu. Hence issuing directive
'.machine ppc' (generated by gcc for generic powerpc) after '.machine e500'
(specifying at command line) disables usage of e500 specific instructions.

And compiling arch/powerpc/cpu/mpc85xx/tlb.c code throws following
assembler errors:

    {standard input}: Assembler messages:
    {standard input}:127: Error: unrecognized opcode: `tlbre'
    {standard input}:418: Error: unrecognized opcode: `tlbre'
    {standard input}:821: Error: unrecognized opcode: `msync'
    {standard input}:821: Error: unrecognized opcode: `tlbwe'
    {standard input}:884: Error: unrecognized opcode: `tlbsx'

This issue was already hit by Debian people and is reported in bug tracker:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1003490

Calling gcc with -mcpu=8540 flag fixes this issue because -mcpu=8540 tells
gcc to compile code for e500 core/cpu (overwriting gcc's default cpu) and
does not put '.machine ppc' directive into assembly anymore.

Also if gcc is invoked with -mcpu=8540 then it pass -me500 flag to GNU AS.
So it is unnecessary to manually specify -Wa,-me500 flag because it is
implicitly added.

Fix this issue properly by specifying correct -mcpu compiler flag for all
supported powerpc cores in U-Boot mpc85xx platform, which are: e500v1,
e500v2, e500mc, e5500 and e6500. For specifying e500v1 and e500v2 cores,
gcc has unintuitive -mcpu=8540 and -mcpu=8548 flag names, for other cores
-mcpu matches core name.

The only difference between gcc's -mcpu=8540 and -mcpu=8548 flags is
support for double precision floating point SPE instructions. As U-Boot
does not use floating point, it is fine to use -mcpu=8540 for both e500v1
and e500v2 cores. Moreover gcc 9 completely removed e500 floating point
support, so since gcc 9 -mcpu=8548 is just alias to -mcpu=8540.

Note that U-Boot's CONFIG_E500 option is set also for other cpus, not only
for e500v1 and e500v2. So do not check for CONFIG_E500 and rather set e500
as last fallback value when no other mpc85xx cpu matches.

Signed-off-by: Pali Rohár <pali@kernel.org>
2022-12-22 15:39:13 -05:00
Heinrich Schuchardt
56e3b14703 net: don't memcpy to NULL
In ndisc_receive() 7 bytes are copied from a buffer of size 6 to NULL.

net_nd_packet_mac is a pointer. If it is NULL, we should set it to the
address of the buffer with the MAC address.

Addresses-Coverity-ID: 430974 ("Out-of-bounds access")
Fixes: c6610e1d90 ("net: ipv6: Add Neighbor Discovery Protocol (NDP)")
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Viacheslav Mitrofanov <v.v.mitrofanov@yadro.com>
2022-12-22 15:39:13 -05:00
Viacheslav Mitrofanov
0d6d5a4aa6 net: ipv6: Add missing break into IPv6 protocol handler
IPv6 protocol handler is not terminated with a break statment.
It can lead to running unexpected code.

Signed-off-by: Viacheslav Mitrofanov <v.v.mitrofanov@yadro.com>
Reviewed-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
2022-12-22 15:39:13 -05:00
Jagan Teki
f365971229 spl: Kconfig: Fix SPL_OPTEE_IMAGE dependency
fdt_addr will build as part of SPL_LOAD_FIT or SPL_LOAD_FIT_FULL
which is indeed required to build optee image support in SPL.

common/spl/spl.c: In function ‘jump_to_image_optee’:
common/spl/spl.c:220:46: error: ‘struct spl_image_info’ has no member named ‘fdt_addr’
  220 |         spl_optee_entry(NULL, NULL, spl_image->fdt_addr,

Fix the dependency support.

Signed-off-by: Jagan Teki <jagan@edgeble.ai>
2022-12-22 15:39:13 -05:00
Tom Rini
dcb0cc0169 CI: Reduce aarch64 catchall job matches
The aarch64 catch-all job is getting close to the hard time limit in
Azure for the free tier. Move i.MX9 boards to the i.MX8 job and move
amlogic entirely to its own job. This brings us down from 85 boards to
51 boards and so should be safe for a while.

Signed-off-by: Tom Rini <trini@konsulko.com>
2022-12-22 15:39:13 -05:00
Tom Rini
1154e965d0 Merge tag 'efi-2023-01-rc5' of https://source.denx.de/u-boot/custodians/u-boot-efi
Pull request for efi-2023-01-rc5

UEFI:

* Improve parameter checking in efi_get_next_variable_name_mem()
* Fix a bugs in management of security database via the eficonfig command

Other:

* Allow sound command to play multiple sounds
2022-12-20 12:50:48 -05:00
Tom Rini
566bc672a7 Merge tag 'tpm-20122022' of https://source.denx.de/u-boot/custodians/u-boot-tpm
fTPM privileged login
2022-12-20 12:50:24 -05:00
Masahisa Kojima
ad50ca5019 eficonfig: EFI_VARIABLE_APPEND_WRITE is not set for null key
The signed null key with authenticated header is used to clear
the PK, KEK, db and dbx. When CONFIG_EFI_MM_COMM_TEE is enabled
(StMM and OP-TEE based RPMB storage is used as the EFI variable
storage), clearing KEK, db and dbx by enrolling a signed null
key does not work as expected if EFI_VARIABLE_APPEND_WRITE
attritube is set.

This commit checks the selected file is null key, then
EFI_VARIABLE_APPEND_WRITE attibute will not be used for the null key.

Signed-off-by: Masahisa Kojima <masahisa.kojima@linaro.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2022-12-20 16:06:48 +01:00
Heinrich Schuchardt
9ba35e64fa efi_selftest: conformance test for GetNextVariableName
Test that GetNextVariableName() checks the parameters.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2022-12-20 16:06:48 +01:00
Heinrich Schuchardt
70a4ac693d efi_loader: fix efi_get_next_variable_name_mem()
The VariableNameSize parameter is in bytes but u16_strnlen() counts u16.

Fix the parameter check for null termination.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2022-12-20 16:06:48 +01:00
Masahisa Kojima
645502743a eficonfig: avoid SetVariable between GetNextVariableName calls
The current code calls efi_set_variable_int() to delete the
invalid boot option between calls to efi_get_next_variable_name_int(),
it may produce unpredictable results.

This commit moves removal of the invalid boot option outside
of the efi_get_next_variable_name_int() calls.
EFI_NOT_FOUND returned from efi_get_next_variable_name_int()
indicates we retrieved all EFI variables, it should be treated
as EFI_SUCEESS.

To address the checkpatch warning of too many leading tabs,
combine two if statement into one.

Signed-off-by: Masahisa Kojima <masahisa.kojima@linaro.org>
Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2022-12-20 16:06:48 +01:00
Masahisa Kojima
ce3270849b eficonfig: carve out efi_get_next_variable_name_int calls
To retrieve the EFI variable name by efi_get_next_variable_name_int(),
the sequence of alloc -> efi_get_next_variable_name_int ->
realloc -> efi_get_next_variable_name_int is required.
In current code, this sequence repeatedly appears in
the several functions. It should be curved out a common function.

This commit also fixes the missing free() of var_name16
in eficonfig_delete_invalid_boot_option().

Signed-off-by: Masahisa Kojima <masahisa.kojima@linaro.org>
Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2022-12-20 16:06:48 +01:00
Heinrich Schuchardt
f823e32388 test: add unit test for u16_strnlen()
Add the missing unit test. It can be executed with:

    ut unicode u16_strnlen

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2022-12-20 16:06:48 +01:00
Heinrich Schuchardt
f9178e19a1 doc: correct heading level in printenv man-page
The 'Configuration' heading should be on level 2, not on level 1.

Fixes: eaa268589e ("doc: man-page for the printenv command")
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2022-12-20 16:06:48 +01:00
Heinrich Schuchardt
ea58b9a404 cmd: allow sound command to play multiple sounds
Currently the sound command accepts only one value each for duration and
frequency. Allowing more duration and frequency arguments enables playing a
tune.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2022-12-20 16:06:48 +01:00
Etienne Carriere
33ba80303e tpm2: ftpm: open session with privileged ree login
Opens the fTPM session with TEE_LOGIN_REE_KERNEL as fTPM may restrict
access to that login when Linux based OS is running as applications are
expected to got through the Linux TPMv2 driver.

Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2022-12-20 09:37:36 +02:00
163 changed files with 1926 additions and 321 deletions

View File

@@ -447,6 +447,8 @@ stages:
matrix: matrix:
arc_microblaze_xtensa: arc_microblaze_xtensa:
BUILDMAN: "arc microblaze xtensa" BUILDMAN: "arc microblaze xtensa"
amlogic:
BUILDMAN: "amlogic"
arm11_arm7_arm920t_arm946es: arm11_arm7_arm920t_arm946es:
BUILDMAN: "arm11 arm7 arm920t arm946es" BUILDMAN: "arm11 arm7 arm920t arm946es"
arm926ejs: arm926ejs:
@@ -476,9 +478,9 @@ stages:
imx6: imx6:
BUILDMAN: "mx6 -x boundary,engicam,freescale,technexion,toradex" BUILDMAN: "mx6 -x boundary,engicam,freescale,technexion,toradex"
imx: imx:
BUILDMAN: "mx -x mx6,freescale,technexion,toradex" BUILDMAN: "mx -x mx6,imx8,freescale,technexion,toradex"
imx8: imx8_imx9:
BUILDMAN: "imx8" BUILDMAN: "imx8 imx9"
keystone2_keystone3: keystone2_keystone3:
BUILDMAN: "k2 k3" BUILDMAN: "k2 k3"
sandbox_asan: sandbox_asan:
@@ -532,9 +534,11 @@ stages:
uniphier: uniphier:
BUILDMAN: "uniphier" BUILDMAN: "uniphier"
aarch64_catch_all: aarch64_catch_all:
BUILDMAN: "aarch64 -x bcm,imx8,k3,tegra,ls1,ls2,lx216,mvebu,uniphier,renesas,sunxi,samsung,socfpga,rk,versal,zynq" BUILDMAN: "aarch64 -x amlogic,bcm,imx8,imx9,k3,tegra,ls1,ls2,lx216,mvebu,uniphier,renesas,sunxi,samsung,socfpga,rk,versal,zynq"
rockchip: rockchip_32bit:
BUILDMAN: "rk" BUILDMAN: "rk -x aarch64"
rockchip_64bit:
BUILDMAN: "rk&aarch64"
renesas: renesas:
BUILDMAN: "renesas" BUILDMAN: "renesas"
zynq: zynq:

View File

@@ -3,7 +3,7 @@
VERSION = 2023 VERSION = 2023
PATCHLEVEL = 01 PATCHLEVEL = 01
SUBLEVEL = SUBLEVEL =
EXTRAVERSION = -rc4 EXTRAVERSION =
NAME = NAME =
# *DOCUMENTATION* # *DOCUMENTATION*
@@ -2372,7 +2372,7 @@ tcheck:
# Documentation targets # Documentation targets
# --------------------------------------------------------------------------- # ---------------------------------------------------------------------------
DOC_TARGETS := xmldocs latexdocs pdfdocs htmldocs epubdocs cleandocs \ DOC_TARGETS := xmldocs latexdocs pdfdocs htmldocs epubdocs cleandocs \
linkcheckdocs dochelp refcheckdocs linkcheckdocs dochelp refcheckdocs texinfodocs infodocs
PHONY += $(DOC_TARGETS) PHONY += $(DOC_TARGETS)
$(DOC_TARGETS): scripts_basic FORCE $(DOC_TARGETS): scripts_basic FORCE
$(Q)$(MAKE) $(build)=doc $@ $(Q)$(MAKE) $(build)=doc $@

View File

@@ -45,7 +45,6 @@
}; };
&rpc { &rpc {
compatible = "renesas,rcar-gen3-rpc";
pinctrl-0 = <&qspi_pins>; pinctrl-0 = <&qspi_pins>;
pinctrl-names = "default"; pinctrl-names = "default";
num-cs = <1>; num-cs = <1>;

View File

@@ -25,7 +25,7 @@ pe_header:
.long IMAGE_NT_SIGNATURE /* 'PE' */ .long IMAGE_NT_SIGNATURE /* 'PE' */
coff_header: coff_header:
.short IMAGE_FILE_MACHINE_ARM64 /* AArch64 */ .short IMAGE_FILE_MACHINE_ARM64 /* AArch64 */
.short 2 /* nr_sections */ .short 3 /* nr_sections */
.long 0 /* TimeDateStamp */ .long 0 /* TimeDateStamp */
.long 0 /* PointerToSymbolTable */ .long 0 /* PointerToSymbolTable */
.long 0 /* NumberOfSymbols */ .long 0 /* NumberOfSymbols */
@@ -34,12 +34,13 @@ coff_header:
.short (IMAGE_FILE_EXECUTABLE_IMAGE | \ .short (IMAGE_FILE_EXECUTABLE_IMAGE | \
IMAGE_FILE_LINE_NUMS_STRIPPED | \ IMAGE_FILE_LINE_NUMS_STRIPPED | \
IMAGE_FILE_LOCAL_SYMS_STRIPPED | \ IMAGE_FILE_LOCAL_SYMS_STRIPPED | \
IMAGE_FILE_LARGE_ADDRESS_AWARE | \
IMAGE_FILE_DEBUG_STRIPPED) IMAGE_FILE_DEBUG_STRIPPED)
optional_header: optional_header:
.short IMAGE_NT_OPTIONAL_HDR64_MAGIC /* PE32+ format */ .short IMAGE_NT_OPTIONAL_HDR64_MAGIC /* PE32+ format */
.byte 0x02 /* MajorLinkerVersion */ .byte 0x02 /* MajorLinkerVersion */
.byte 0x14 /* MinorLinkerVersion */ .byte 0x14 /* MinorLinkerVersion */
.long _edata - _start /* SizeOfCode */ .long _etext - _start /* SizeOfCode */
.long 0 /* SizeOfInitializedData */ .long 0 /* SizeOfInitializedData */
.long 0 /* SizeOfUninitializedData */ .long 0 /* SizeOfUninitializedData */
.long _start - ImageBase /* AddressOfEntryPoint */ .long _start - ImageBase /* AddressOfEntryPoint */
@@ -47,7 +48,7 @@ optional_header:
extra_header_fields: extra_header_fields:
.quad 0 /* ImageBase */ .quad 0 /* ImageBase */
.long 0x200 /* SectionAlignment */ .long 0x1000 /* SectionAlignment */
.long 0x200 /* FileAlignment */ .long 0x200 /* FileAlignment */
.short 0 /* MajorOperatingSystemVersion */ .short 0 /* MajorOperatingSystemVersion */
.short 0 /* MinorOperatingSystemVersion */ .short 0 /* MinorOperatingSystemVersion */
@@ -99,25 +100,46 @@ section_table:
.long 0 /* PointerToLineNumbers */ .long 0 /* PointerToLineNumbers */
.short 0 /* NumberOfRelocations */ .short 0 /* NumberOfRelocations */
.short 0 /* NumberOfLineNumbers */ .short 0 /* NumberOfLineNumbers */
.long 0x42100040 /* Characteristics (section flags) */ /* Characteristics (section flags) */
.long (IMAGE_SCN_MEM_READ | \
IMAGE_SCN_MEM_DISCARDABLE | \
IMAGE_SCN_CNT_INITIALIZED_DATA)
.ascii ".text" .ascii ".text"
.byte 0 .byte 0
.byte 0 .byte 0
.byte 0 /* end of 0 padding of section name */ .byte 0 /* end of 0 padding of section name */
.long _edata - _start /* VirtualSize */ .long _etext - _start /* VirtualSize */
.long _start - ImageBase /* VirtualAddress */ .long _start - ImageBase /* VirtualAddress */
.long _edata - _start /* SizeOfRawData */ .long _etext - _start /* SizeOfRawData */
.long _start - ImageBase /* PointerToRawData */ .long _start - ImageBase /* PointerToRawData */
.long 0 /* PointerToRelocations */
.long 0 /* PointerToLineNumbers */
.short 0 /* NumberOfRelocations */
.short 0 /* NumberOfLineNumbers */
/* Characteristics (section flags) */
.long (IMAGE_SCN_MEM_READ | \
IMAGE_SCN_MEM_EXECUTE | \
IMAGE_SCN_CNT_CODE)
.long 0 /* PointerToRelocations (0 for executables) */ .ascii ".data"
.long 0 /* PointerToLineNumbers (0 for executables) */ .byte 0
.short 0 /* NumberOfRelocations (0 for executables) */ .byte 0
.short 0 /* NumberOfLineNumbers (0 for executables) */ .byte 0 /* end of 0 padding of section name */
.long 0xe0500020 /* Characteristics (section flags) */ .long _data_size /* VirtualSize */
.long _data - ImageBase /* VirtualAddress */
.long _data_size /* SizeOfRawData */
.long _data - ImageBase /* PointerToRawData */
.long 0 /* PointerToRelocations */
.long 0 /* PointerToLineNumbers */
.short 0 /* NumberOfRelocations */
.short 0 /* NumberOfLineNumbers */
/* Characteristics (section flags) */
.long (IMAGE_SCN_MEM_WRITE | \
IMAGE_SCN_MEM_READ | \
IMAGE_SCN_CNT_INITIALIZED_DATA)
.align 9 .align 12
_start: _start:
stp x29, x30, [sp, #-32]! stp x29, x30, [sp, #-32]!
mov x29, sp mov x29, sp

View File

@@ -7,6 +7,12 @@
OUTPUT_FORMAT("elf64-littleaarch64", "elf64-littleaarch64", "elf64-littleaarch64") OUTPUT_FORMAT("elf64-littleaarch64", "elf64-littleaarch64", "elf64-littleaarch64")
OUTPUT_ARCH(aarch64) OUTPUT_ARCH(aarch64)
PHDRS
{
data PT_LOAD FLAGS(3); /* SHF_WRITE | SHF_ALLOC */
}
ENTRY(_start) ENTRY(_start)
SECTIONS SECTIONS
{ {
@@ -18,11 +24,13 @@ SECTIONS
*(.gnu.linkonce.t.*) *(.gnu.linkonce.t.*)
*(.srodata) *(.srodata)
*(.rodata*) *(.rodata*)
. = ALIGN(16);
*(.dynamic);
. = ALIGN(512); . = ALIGN(512);
} }
_etext = .; _etext = .;
_text_size = . - _text; _text_size = . - _text;
.dynamic : { *(.dynamic) } . = ALIGN(4096);
.data : { .data : {
_data = .; _data = .;
*(.sdata) *(.sdata)
@@ -47,12 +55,12 @@ SECTIONS
. = ALIGN(512); . = ALIGN(512);
_bss_end = .; _bss_end = .;
_edata = .; _edata = .;
} } :data
_data_size = _edata - _data;
.rela.dyn : { *(.rela.dyn) } .rela.dyn : { *(.rela.dyn) }
.rela.plt : { *(.rela.plt) } .rela.plt : { *(.rela.plt) }
.rela.got : { *(.rela.got) } .rela.got : { *(.rela.got) }
.rela.data : { *(.rela.data) *(.rela.data*) } .rela.data : { *(.rela.data) *(.rela.data*) }
_data_size = . - _etext;
. = ALIGN(4096); . = ALIGN(4096);
.dynsym : { *(.dynsym) } .dynsym : { *(.dynsym) }

View File

@@ -51,7 +51,7 @@ phys_size_t board_get_usable_ram_top(phys_size_t total_size)
/* found enough not-reserved memory to relocated U-Boot */ /* found enough not-reserved memory to relocated U-Boot */
lmb_init(&lmb); lmb_init(&lmb);
lmb_add(&lmb, gd->ram_base, gd->ram_size); lmb_add(&lmb, gd->ram_base, get_effective_memsize());
boot_fdt_add_mem_rsv_regions(&lmb, (void *)gd->fdt_blob); boot_fdt_add_mem_rsv_regions(&lmb, (void *)gd->fdt_blob);
/* add 8M for reserved memory for display, fdt, gd,... */ /* add 8M for reserved memory for display, fdt, gd,... */
size = ALIGN(SZ_8M + CONFIG_SYS_MALLOC_LEN + total_size, MMU_SECTION_SIZE), size = ALIGN(SZ_8M + CONFIG_SYS_MALLOC_LEN + total_size, MMU_SECTION_SIZE),

View File

@@ -72,6 +72,7 @@ choice
config TARGET_SOCRATES config TARGET_SOCRATES
bool "Support socrates" bool "Support socrates"
select ARCH_MPC8544 select ARCH_MPC8544
select BINMAN
config TARGET_P3041DS config TARGET_P3041DS
bool "Support P3041DS" bool "Support P3041DS"
@@ -1459,14 +1460,14 @@ config SYS_FSL_USB_DUAL_PHY_ENABLE
config SYS_MPC85XX_NO_RESETVEC config SYS_MPC85XX_NO_RESETVEC
bool "Discard resetvec section and move bootpg section up" bool "Discard resetvec section and move bootpg section up"
depends on MPC85xx depends on MPC85xx && !MPC85XX_HAVE_RESET_VECTOR
help help
If this variable is specified, the section .resetvec is not kept and If this variable is specified, the section .resetvec is not kept and
the section .bootpg is placed in the previous 4k of the .text section. the section .bootpg is placed in the previous 4k of the .text section.
config SPL_SYS_MPC85XX_NO_RESETVEC config SPL_SYS_MPC85XX_NO_RESETVEC
bool "Discard resetvec section and move bootpg section up, in SPL" bool "Discard resetvec section and move bootpg section up, in SPL"
depends on MPC85xx && SPL depends on MPC85xx && SPL && !MPC85XX_HAVE_RESET_VECTOR
help help
If this variable is specified, the section .resetvec is not kept and If this variable is specified, the section .resetvec is not kept and
the section .bootpg is placed in the previous 4k of the .text section, the section .bootpg is placed in the previous 4k of the .text section,
@@ -1474,7 +1475,7 @@ config SPL_SYS_MPC85XX_NO_RESETVEC
config TPL_SYS_MPC85XX_NO_RESETVEC config TPL_SYS_MPC85XX_NO_RESETVEC
bool "Discard resetvec section and move bootpg section up, in TPL" bool "Discard resetvec section and move bootpg section up, in TPL"
depends on MPC85xx && TPL depends on MPC85xx && TPL && !MPC85XX_HAVE_RESET_VECTOR
help help
If this variable is specified, the section .resetvec is not kept and If this variable is specified, the section .resetvec is not kept and
the section .bootpg is placed in the previous 4k of the .text section, the section .bootpg is placed in the previous 4k of the .text section,

View File

@@ -3,11 +3,26 @@
# (C) Copyright 2002,2003 Motorola Inc. # (C) Copyright 2002,2003 Motorola Inc.
# Xianghua Xiao, X.Xiao@motorola.com # Xianghua Xiao, X.Xiao@motorola.com
PLATFORM_CPPFLAGS += -Wa,-me500 -msoft-float -mno-string PLATFORM_CPPFLAGS += -msoft-float -mno-string
PLATFORM_RELFLAGS += -msingle-pic-base -fno-jump-tables PLATFORM_RELFLAGS += -msingle-pic-base -fno-jump-tables
# -mspe=yes is needed to have -mno-spe accepted by a buggy GCC; # No SPE instruction when building u-boot
# (We use all available options to help semi-broken compilers)
# see "[PATCH,rs6000] make -mno-spe work as expected" on # see "[PATCH,rs6000] make -mno-spe work as expected" on
# http://gcc.gnu.org/ml/gcc-patches/2008-04/msg00311.html # http://gcc.gnu.org/ml/gcc-patches/2008-04/msg00311.html
PLATFORM_CPPFLAGS += $(call cc-option,-mspe=yes) \ PLATFORM_CPPFLAGS += $(call cc-option,-mno-spe) \
$(call cc-option,-mno-spe) $(call cc-option,-mspe=no)
# No AltiVec or VSX instructions when building u-boot
PLATFORM_CPPFLAGS += $(call cc-option,-mno-altivec)
PLATFORM_CPPFLAGS += $(call cc-option,-mno-vsx)
ifdef CONFIG_E6500
PLATFORM_CPPFLAGS += -mcpu=e6500
else ifdef CONFIG_E5500
PLATFORM_CPPFLAGS += -mcpu=e5500
else ifdef CONFIG_E500MC
PLATFORM_CPPFLAGS += -mcpu=e500mc
else
PLATFORM_CPPFLAGS += -mcpu=8540
endif

View File

@@ -16,12 +16,23 @@
#define LOAD_LONG(reg, idx) ld reg, (idx*SIZE_LONG)(sp) #define LOAD_LONG(reg, idx) ld reg, (idx*SIZE_LONG)(sp)
#define PE_MACHINE IMAGE_FILE_MACHINE_RISCV64 #define PE_MACHINE IMAGE_FILE_MACHINE_RISCV64
#define PE_MAGIC IMAGE_NT_OPTIONAL_HDR64_MAGIC #define PE_MAGIC IMAGE_NT_OPTIONAL_HDR64_MAGIC
#define IMG_CHARACTERISTICS \
(IMAGE_FILE_EXECUTABLE_IMAGE | \
IMAGE_FILE_LINE_NUMS_STRIPPED | \
IMAGE_FILE_LOCAL_SYMS_STRIPPED | \
IMAGE_FILE_LARGE_ADDRESS_AWARE | \
IMAGE_FILE_DEBUG_STRIPPED)
#else #else
#define SIZE_LONG 4 #define SIZE_LONG 4
#define SAVE_LONG(reg, idx) sw reg, (idx*SIZE_LONG)(sp) #define SAVE_LONG(reg, idx) sw reg, (idx*SIZE_LONG)(sp)
#define LOAD_LONG(reg, idx) lw reg, (idx*SIZE_LONG)(sp) #define LOAD_LONG(reg, idx) lw reg, (idx*SIZE_LONG)(sp)
#define PE_MACHINE IMAGE_FILE_MACHINE_RISCV32 #define PE_MACHINE IMAGE_FILE_MACHINE_RISCV32
#define PE_MAGIC IMAGE_NT_OPTIONAL_HDR32_MAGIC #define PE_MAGIC IMAGE_NT_OPTIONAL_HDR32_MAGIC
#define IMG_CHARACTERISTICS \
(IMAGE_FILE_EXECUTABLE_IMAGE | \
IMAGE_FILE_LINE_NUMS_STRIPPED | \
IMAGE_FILE_LOCAL_SYMS_STRIPPED | \
IMAGE_FILE_DEBUG_STRIPPED)
#endif #endif
@@ -47,11 +58,7 @@ coff_header:
.long 0 /* PointerToSymbolTable */ .long 0 /* PointerToSymbolTable */
.long 0 /* NumberOfSymbols */ .long 0 /* NumberOfSymbols */
.short section_table - optional_header /* SizeOfOptionalHeader */ .short section_table - optional_header /* SizeOfOptionalHeader */
/* Characteristics */ .short IMG_CHARACTERISTICS /* Characteristics */
.short (IMAGE_FILE_EXECUTABLE_IMAGE | \
IMAGE_FILE_LINE_NUMS_STRIPPED | \
IMAGE_FILE_LOCAL_SYMS_STRIPPED | \
IMAGE_FILE_DEBUG_STRIPPED)
optional_header: optional_header:
.short PE_MAGIC /* PE32(+) format */ .short PE_MAGIC /* PE32(+) format */
.byte 0x02 /* MajorLinkerVersion */ .byte 0x02 /* MajorLinkerVersion */

View File

@@ -724,16 +724,19 @@ config RAMBOOT_PBL
For more details refer to doc/README.pblimage For more details refer to doc/README.pblimage
choice choice
prompt "Freescale PBL load location" prompt "Freescale PBL (or predecessor) load location"
depends on RAMBOOT_PBL || ((TARGET_P1010RDB_PA || TARGET_P1010RDB_PB \ depends on RAMBOOT_PBL || ((TARGET_P1010RDB_PA || TARGET_P1010RDB_PB \
|| TARGET_P1020RDB_PC || TARGET_P1020RDB_PD || TARGET_P2020RDB) \ || TARGET_P1020RDB_PC || TARGET_P1020RDB_PD || TARGET_P2020RDB) \
&& !CMD_NAND) && !CMD_NAND)
config SDCARD config SDCARD
bool "Freescale PBL is found on SD card" bool "Freescale PBL (or similar) is found on SD card"
config SPIFLASH config SPIFLASH
bool "Freescale PBL is found on SPI flash" bool "Freescale PBL (or similar) is found on SPI flash"
config NO_PBL
bool "Freescale PBL (or similar) is not used in this case"
endchoice endchoice

View File

@@ -616,7 +616,10 @@ static int label_boot(struct pxe_context *ctx, struct pxe_label *label)
* Scenario 2: If there is an fdt_addr specified, pass it along to * Scenario 2: If there is an fdt_addr specified, pass it along to
* bootm, and adjust argc appropriately. * bootm, and adjust argc appropriately.
* *
* Scenario 3: fdt blob is not available. * Scenario 3: If there is an fdtcontroladdr specified, pass it along to
* bootm, and adjust argc appropriately, unless the image type is fitImage.
*
* Scenario 4: fdt blob is not available.
*/ */
bootm_argv[3] = env_get("fdt_addr_r"); bootm_argv[3] = env_get("fdt_addr_r");
@@ -721,14 +724,18 @@ static int label_boot(struct pxe_context *ctx, struct pxe_label *label)
if (!bootm_argv[3]) if (!bootm_argv[3])
bootm_argv[3] = env_get("fdt_addr"); bootm_argv[3] = env_get("fdt_addr");
kernel_addr_r = genimg_get_kernel_addr(kernel_addr);
buf = map_sysmem(kernel_addr_r, 0);
if (!bootm_argv[3] && genimg_get_format(buf) != IMAGE_FORMAT_FIT)
bootm_argv[3] = env_get("fdtcontroladdr");
if (bootm_argv[3]) { if (bootm_argv[3]) {
if (!bootm_argv[2]) if (!bootm_argv[2])
bootm_argv[2] = "-"; bootm_argv[2] = "-";
bootm_argc = 4; bootm_argc = 4;
} }
kernel_addr_r = genimg_get_kernel_addr(kernel_addr);
buf = map_sysmem(kernel_addr_r, 0);
/* Try bootm for legacy and FIT format image */ /* Try bootm for legacy and FIT format image */
if (genimg_get_format(buf) != IMAGE_FORMAT_INVALID && if (genimg_get_format(buf) != IMAGE_FORMAT_INVALID &&
IS_ENABLED(CONFIG_CMD_BOOTM)) IS_ENABLED(CONFIG_CMD_BOOTM))

View File

@@ -1814,7 +1814,7 @@ config SYS_DISABLE_AUTOLOAD
config CMD_WGET config CMD_WGET
bool "wget" bool "wget"
select TCP select PROT_TCP
help help
wget is a simple command to download kernel, or other files, wget is a simple command to download kernel, or other files,
from a http server over TCP. from a http server over TCP.

View File

@@ -1683,7 +1683,7 @@ static efi_status_t eficonfig_show_boot_selection(unsigned int *selected)
u32 i; u32 i;
u16 *bootorder; u16 *bootorder;
efi_status_t ret; efi_status_t ret;
u16 *var_name16 = NULL, *p; u16 *var_name16 = NULL;
efi_uintn_t num, size, buf_size; efi_uintn_t num, size, buf_size;
struct efimenu *efi_menu; struct efimenu *efi_menu;
struct list_head *pos, *n; struct list_head *pos, *n;
@@ -1718,24 +1718,12 @@ static efi_status_t eficonfig_show_boot_selection(unsigned int *selected)
int index; int index;
efi_guid_t guid; efi_guid_t guid;
size = buf_size; ret = efi_next_variable_name(&buf_size, &var_name16, &guid);
ret = efi_get_next_variable_name_int(&size, var_name16, &guid);
if (ret == EFI_NOT_FOUND) if (ret == EFI_NOT_FOUND)
break; break;
if (ret == EFI_BUFFER_TOO_SMALL) { if (ret != EFI_SUCCESS)
buf_size = size; goto out;
p = realloc(var_name16, buf_size);
if (!p) {
free(var_name16);
return EFI_OUT_OF_RESOURCES;
}
var_name16 = p;
ret = efi_get_next_variable_name_int(&size, var_name16, &guid);
}
if (ret != EFI_SUCCESS) {
free(var_name16);
return ret;
}
if (efi_varname_is_load_option(var_name16, &index)) { if (efi_varname_is_load_option(var_name16, &index)) {
/* If the index is included in the BootOrder, skip it */ /* If the index is included in the BootOrder, skip it */
if (search_bootorder(bootorder, num, index, NULL)) if (search_bootorder(bootorder, num, index, NULL))
@@ -2026,7 +2014,7 @@ static efi_status_t eficonfig_create_change_boot_order_entry(struct efimenu *efi
u32 i; u32 i;
char *title; char *title;
efi_status_t ret; efi_status_t ret;
u16 *var_name16 = NULL, *p; u16 *var_name16 = NULL;
efi_uintn_t size, buf_size; efi_uintn_t size, buf_size;
/* list the load option in the order of BootOrder variable */ /* list the load option in the order of BootOrder variable */
@@ -2054,19 +2042,9 @@ static efi_status_t eficonfig_create_change_boot_order_entry(struct efimenu *efi
break; break;
size = buf_size; size = buf_size;
ret = efi_get_next_variable_name_int(&size, var_name16, &guid); ret = efi_next_variable_name(&buf_size, &var_name16, &guid);
if (ret == EFI_NOT_FOUND) if (ret == EFI_NOT_FOUND)
break; break;
if (ret == EFI_BUFFER_TOO_SMALL) {
buf_size = size;
p = realloc(var_name16, buf_size);
if (!p) {
ret = EFI_OUT_OF_RESOURCES;
goto out;
}
var_name16 = p;
ret = efi_get_next_variable_name_int(&size, var_name16, &guid);
}
if (ret != EFI_SUCCESS) if (ret != EFI_SUCCESS)
goto out; goto out;
@@ -2332,14 +2310,15 @@ out:
efi_status_t eficonfig_delete_invalid_boot_option(struct eficonfig_media_boot_option *opt, efi_status_t eficonfig_delete_invalid_boot_option(struct eficonfig_media_boot_option *opt,
efi_status_t count) efi_status_t count)
{ {
u32 i;
efi_uintn_t size; efi_uintn_t size;
void *load_option; void *load_option;
u32 i, list_size = 0;
struct efi_load_option lo; struct efi_load_option lo;
u16 *var_name16 = NULL, *p; u16 *var_name16 = NULL;
u16 varname[] = u"Boot####"; u16 varname[] = u"Boot####";
efi_status_t ret = EFI_SUCCESS; efi_status_t ret = EFI_SUCCESS;
efi_uintn_t varname_size, buf_size; u16 *delete_index_list = NULL, *p;
efi_uintn_t buf_size;
buf_size = 128; buf_size = 128;
var_name16 = malloc(buf_size); var_name16 = malloc(buf_size);
@@ -2352,24 +2331,18 @@ efi_status_t eficonfig_delete_invalid_boot_option(struct eficonfig_media_boot_op
efi_guid_t guid; efi_guid_t guid;
efi_uintn_t tmp; efi_uintn_t tmp;
varname_size = buf_size; ret = efi_next_variable_name(&buf_size, &var_name16, &guid);
ret = efi_get_next_variable_name_int(&varname_size, var_name16, &guid); if (ret == EFI_NOT_FOUND) {
if (ret == EFI_NOT_FOUND) /*
* EFI_NOT_FOUND indicates we retrieved all EFI variables.
* This should be treated as success.
*/
ret = EFI_SUCCESS;
break; break;
if (ret == EFI_BUFFER_TOO_SMALL) {
buf_size = varname_size;
p = realloc(var_name16, buf_size);
if (!p) {
free(var_name16);
return EFI_OUT_OF_RESOURCES;
}
var_name16 = p;
ret = efi_get_next_variable_name_int(&varname_size, var_name16, &guid);
}
if (ret != EFI_SUCCESS) {
free(var_name16);
return ret;
} }
if (ret != EFI_SUCCESS)
goto out;
if (!efi_varname_is_load_option(var_name16, &index)) if (!efi_varname_is_load_option(var_name16, &index))
continue; continue;
@@ -2383,30 +2356,47 @@ efi_status_t eficonfig_delete_invalid_boot_option(struct eficonfig_media_boot_op
if (ret != EFI_SUCCESS) if (ret != EFI_SUCCESS)
goto next; goto next;
if (size >= sizeof(efi_guid_bootmenu_auto_generated)) { if (size >= sizeof(efi_guid_bootmenu_auto_generated) &&
if (guidcmp(lo.optional_data, &efi_guid_bootmenu_auto_generated) == 0) { !guidcmp(lo.optional_data, &efi_guid_bootmenu_auto_generated)) {
for (i = 0; i < count; i++) { for (i = 0; i < count; i++) {
if (opt[i].size == tmp && if (opt[i].size == tmp &&
memcmp(opt[i].lo, load_option, tmp) == 0) { memcmp(opt[i].lo, load_option, tmp) == 0) {
opt[i].exist = true; opt[i].exist = true;
break; break;
}
} }
}
if (i == count) { /*
ret = delete_boot_option(i); * The entire list of variables must be retrieved by
if (ret != EFI_SUCCESS) { * efi_get_next_variable_name_int() before deleting the invalid
free(load_option); * boot option, just save the index here.
goto out; */
} if (i == count) {
p = realloc(delete_index_list, sizeof(u32) *
(list_size + 1));
if (!p) {
ret = EFI_OUT_OF_RESOURCES;
goto out;
} }
delete_index_list = p;
delete_index_list[list_size++] = index;
} }
} }
next: next:
free(load_option); free(load_option);
} }
/* delete all invalid boot options */
for (i = 0; i < list_size; i++) {
ret = delete_boot_option(delete_index_list[i]);
if (ret != EFI_SUCCESS)
goto out;
}
out: out:
free(var_name16);
free(delete_index_list);
return ret; return ret;
} }

View File

@@ -72,6 +72,28 @@ static bool file_have_auth_header(void *buf, efi_uintn_t size)
return true; return true;
} }
/**
* file_is_null_key() - check the file is an authenticated and signed null key
*
* @auth: pointer to the file
* @size: file size
* @null_key: pointer to store the result
* Return: status code
*/
static efi_status_t file_is_null_key(struct efi_variable_authentication_2 *auth,
efi_uintn_t size, bool *null_key)
{
efi_uintn_t auth_size =
sizeof(auth->time_stamp) + auth->auth_info.hdr.dwLength;
if (size < auth_size)
return EFI_INVALID_PARAMETER;
*null_key = (size == auth_size);
return EFI_SUCCESS;
}
/** /**
* eficonfig_process_enroll_key() - enroll key into signature database * eficonfig_process_enroll_key() - enroll key into signature database
* *
@@ -84,6 +106,7 @@ static efi_status_t eficonfig_process_enroll_key(void *data)
char *buf = NULL; char *buf = NULL;
efi_uintn_t size; efi_uintn_t size;
efi_status_t ret; efi_status_t ret;
bool null_key = false;
struct efi_file_handle *f = NULL; struct efi_file_handle *f = NULL;
struct efi_device_path *full_dp = NULL; struct efi_device_path *full_dp = NULL;
struct eficonfig_select_file_info file_info; struct eficonfig_select_file_info file_info;
@@ -149,13 +172,24 @@ static efi_status_t eficonfig_process_enroll_key(void *data)
goto out; goto out;
} }
ret = file_is_null_key((struct efi_variable_authentication_2 *)buf,
size, &null_key);
if (ret != EFI_SUCCESS) {
eficonfig_print_msg("ERROR! Invalid file format.");
goto out;
}
attr = EFI_VARIABLE_NON_VOLATILE | attr = EFI_VARIABLE_NON_VOLATILE |
EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_BOOTSERVICE_ACCESS |
EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS |
EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS; EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS;
/* PK can enroll only one certificate */ /*
if (u16_strcmp(data, u"PK")) { * PK can enroll only one certificate.
* The signed null key is used to clear KEK, db and dbx.
* EFI_VARIABLE_APPEND_WRITE attribute must not be set in these cases.
*/
if (u16_strcmp(data, u"PK") && !null_key) {
efi_uintn_t db_size = 0; efi_uintn_t db_size = 0;
/* check the variable exists. If exists, add APPEND_WRITE attribute */ /* check the variable exists. If exists, add APPEND_WRITE attribute */

View File

@@ -591,25 +591,15 @@ static void print_memory_attributes(u64 attributes)
static int do_efi_show_memmap(struct cmd_tbl *cmdtp, int flag, static int do_efi_show_memmap(struct cmd_tbl *cmdtp, int flag,
int argc, char *const argv[]) int argc, char *const argv[])
{ {
struct efi_mem_desc *memmap = NULL, *map; struct efi_mem_desc *memmap, *map;
efi_uintn_t map_size = 0; efi_uintn_t map_size;
const char *type; const char *type;
int i; int i;
efi_status_t ret; efi_status_t ret;
ret = efi_get_memory_map(&map_size, memmap, NULL, NULL, NULL); ret = efi_get_memory_map_alloc(&map_size, &memmap);
if (ret == EFI_BUFFER_TOO_SMALL) { if (ret != EFI_SUCCESS)
map_size += sizeof(struct efi_mem_desc); /* for my own */
ret = efi_allocate_pool(EFI_BOOT_SERVICES_DATA, map_size,
(void *)&memmap);
if (ret != EFI_SUCCESS)
return CMD_RET_FAILURE;
ret = efi_get_memory_map(&map_size, memmap, NULL, NULL, NULL);
}
if (ret != EFI_SUCCESS) {
efi_free_pool(memmap);
return CMD_RET_FAILURE; return CMD_RET_FAILURE;
}
printf("Type Start%.*s End%.*s Attributes\n", printf("Type Start%.*s End%.*s Attributes\n",
EFI_PHYS_ADDR_WIDTH - 5, spc, EFI_PHYS_ADDR_WIDTH - 3, spc); EFI_PHYS_ADDR_WIDTH - 5, spc, EFI_PHYS_ADDR_WIDTH - 3, spc);

View File

@@ -39,26 +39,39 @@ static int do_play(struct cmd_tbl *cmdtp, int flag, int argc,
int ret = 0; int ret = 0;
int msec = 1000; int msec = 1000;
int freq = 400; int freq = 400;
bool first = true;
if (argc > 1)
msec = dectoul(argv[1], NULL);
if (argc > 2)
freq = dectoul(argv[2], NULL);
ret = uclass_first_device_err(UCLASS_SOUND, &dev); ret = uclass_first_device_err(UCLASS_SOUND, &dev);
if (!ret) if (ret)
goto err;
--argc;
++argv;
while (argc || first) {
first = false;
if (argc) {
msec = dectoul(argv[0], NULL);
--argc;
++argv;
}
if (argc) {
freq = dectoul(argv[0], NULL);
--argc;
++argv;
}
ret = sound_beep(dev, msec, freq); ret = sound_beep(dev, msec, freq);
if (ret) { if (ret)
printf("Sound device failed to play (err=%d)\n", ret); goto err;
return CMD_RET_FAILURE;
} }
return 0; return 0;
err:
printf("Sound device failed to play (err=%d)\n", ret);
return CMD_RET_FAILURE;
} }
static struct cmd_tbl cmd_sound_sub[] = { static struct cmd_tbl cmd_sound_sub[] = {
U_BOOT_CMD_MKENT(init, 0, 1, do_init, "", ""), U_BOOT_CMD_MKENT(init, 0, 1, do_init, "", ""),
U_BOOT_CMD_MKENT(play, 2, 1, do_play, "", ""), U_BOOT_CMD_MKENT(play, INT_MAX, 1, do_play, "", ""),
}; };
/* process sound command */ /* process sound command */
@@ -83,8 +96,10 @@ static int do_sound(struct cmd_tbl *cmdtp, int flag, int argc,
} }
U_BOOT_CMD( U_BOOT_CMD(
sound, 4, 1, do_sound, sound, INT_MAX, 1, do_sound,
"sound sub-system", "sound sub-system",
"init - initialise the sound driver\n" "init - initialise the sound driver\n"
"sound play [len [freq]] - play a sound for len ms at freq Hz\n" "sound play [[[-q|-s] len [freq]] ...] - play sounds\n"
" len - duration in ms\n"
" freq - frequency in Hz\n"
); );

View File

@@ -96,6 +96,7 @@ phys_size_t __weak get_effective_memsize(void)
{ {
phys_size_t ram_size = gd->ram_size; phys_size_t ram_size = gd->ram_size;
#ifdef CONFIG_MPC85xx
/* /*
* Check for overflow and limit ram size to some representable value. * Check for overflow and limit ram size to some representable value.
* It is required that ram_base + ram_size must be representable by * It is required that ram_base + ram_size must be representable by
@@ -105,6 +106,7 @@ phys_size_t __weak get_effective_memsize(void)
*/ */
if (gd->ram_base + ram_size < gd->ram_base) if (gd->ram_base + ram_size < gd->ram_base)
ram_size = ((phys_size_t)~0xfffULL) - gd->ram_base; ram_size = ((phys_size_t)~0xfffULL) - gd->ram_base;
#endif
#ifndef CONFIG_MAX_MEM_MAPPED #ifndef CONFIG_MAX_MEM_MAPPED
return ram_size; return ram_size;

View File

@@ -1481,6 +1481,7 @@ config SPL_AM33XX_ENABLE_RTC32K_OSC
config SPL_OPTEE_IMAGE config SPL_OPTEE_IMAGE
bool "Support OP-TEE Trusted OS image in SPL" bool "Support OP-TEE Trusted OS image in SPL"
depends on ARM depends on ARM
depends on SPL_LOAD_FIT || SPL_LOAD_FIT_FULL
help help
OP-TEE is an open source Trusted OS which is loaded by SPL. OP-TEE is an open source Trusted OS which is loaded by SPL.
More detail at: https://github.com/OP-TEE/optee_os More detail at: https://github.com/OP-TEE/optee_os

View File

@@ -10,7 +10,6 @@ CONFIG_SYS_INIT_RAM_LOCK=y
CONFIG_TARGET_P1010RDB_PA=y CONFIG_TARGET_P1010RDB_PA=y
CONFIG_MPC85XX_HAVE_RESET_VECTOR=y CONFIG_MPC85XX_HAVE_RESET_VECTOR=y
CONFIG_ENABLE_36BIT_PHYS=y CONFIG_ENABLE_36BIT_PHYS=y
CONFIG_SYS_MPC85XX_NO_RESETVEC=y
CONFIG_PCIE1=y CONFIG_PCIE1=y
CONFIG_PCIE2=y CONFIG_PCIE2=y
CONFIG_PHYS_64BIT=y CONFIG_PHYS_64BIT=y
@@ -19,7 +18,7 @@ CONFIG_FIT=y
CONFIG_FIT_VERBOSE=y CONFIG_FIT_VERBOSE=y
CONFIG_OF_BOARD_SETUP=y CONFIG_OF_BOARD_SETUP=y
CONFIG_OF_STDOUT_VIA_ALIAS=y CONFIG_OF_STDOUT_VIA_ALIAS=y
CONFIG_FSL_FIXED_MMC_LOCATION=y CONFIG_NO_PBL=y
CONFIG_BOOTDELAY=10 CONFIG_BOOTDELAY=10
CONFIG_USE_BOOTCOMMAND=y CONFIG_USE_BOOTCOMMAND=y
CONFIG_BOOTCOMMAND="setenv bootargs root=/dev/ram rw console=$consoledev,$baudrate $othbootargs ramdisk_size=$ramdisk_size;tftp $ramdiskaddr $ramdiskfile;tftp $loadaddr $bootfile;tftp $fdtaddr $fdtfile;bootm $loadaddr $ramdiskaddr $fdtaddr" CONFIG_BOOTCOMMAND="setenv bootargs root=/dev/ram rw console=$consoledev,$baudrate $othbootargs ramdisk_size=$ramdisk_size;tftp $ramdiskaddr $ramdiskfile;tftp $loadaddr $bootfile;tftp $fdtaddr $fdtfile;bootm $loadaddr $ramdiskaddr $fdtaddr"

View File

@@ -10,7 +10,6 @@ CONFIG_SYS_INIT_RAM_LOCK=y
CONFIG_TARGET_P1010RDB_PA=y CONFIG_TARGET_P1010RDB_PA=y
CONFIG_MPC85XX_HAVE_RESET_VECTOR=y CONFIG_MPC85XX_HAVE_RESET_VECTOR=y
CONFIG_ENABLE_36BIT_PHYS=y CONFIG_ENABLE_36BIT_PHYS=y
CONFIG_SYS_MPC85XX_NO_RESETVEC=y
CONFIG_PCIE1=y CONFIG_PCIE1=y
CONFIG_PCIE2=y CONFIG_PCIE2=y
CONFIG_SYS_MONITOR_LEN=786432 CONFIG_SYS_MONITOR_LEN=786432
@@ -18,7 +17,7 @@ CONFIG_FIT=y
CONFIG_FIT_VERBOSE=y CONFIG_FIT_VERBOSE=y
CONFIG_OF_BOARD_SETUP=y CONFIG_OF_BOARD_SETUP=y
CONFIG_OF_STDOUT_VIA_ALIAS=y CONFIG_OF_STDOUT_VIA_ALIAS=y
CONFIG_FSL_FIXED_MMC_LOCATION=y CONFIG_NO_PBL=y
CONFIG_BOOTDELAY=10 CONFIG_BOOTDELAY=10
CONFIG_USE_BOOTCOMMAND=y CONFIG_USE_BOOTCOMMAND=y
CONFIG_BOOTCOMMAND="setenv bootargs root=/dev/ram rw console=$consoledev,$baudrate $othbootargs ramdisk_size=$ramdisk_size;tftp $ramdiskaddr $ramdiskfile;tftp $loadaddr $bootfile;tftp $fdtaddr $fdtfile;bootm $loadaddr $ramdiskaddr $fdtaddr" CONFIG_BOOTCOMMAND="setenv bootargs root=/dev/ram rw console=$consoledev,$baudrate $othbootargs ramdisk_size=$ramdisk_size;tftp $ramdiskaddr $ramdiskfile;tftp $loadaddr $bootfile;tftp $fdtaddr $fdtfile;bootm $loadaddr $ramdiskaddr $fdtaddr"

View File

@@ -10,7 +10,6 @@ CONFIG_SYS_INIT_RAM_LOCK=y
CONFIG_TARGET_P1010RDB_PB=y CONFIG_TARGET_P1010RDB_PB=y
CONFIG_MPC85XX_HAVE_RESET_VECTOR=y CONFIG_MPC85XX_HAVE_RESET_VECTOR=y
CONFIG_ENABLE_36BIT_PHYS=y CONFIG_ENABLE_36BIT_PHYS=y
CONFIG_SYS_MPC85XX_NO_RESETVEC=y
CONFIG_PCIE1=y CONFIG_PCIE1=y
CONFIG_PCIE2=y CONFIG_PCIE2=y
CONFIG_PHYS_64BIT=y CONFIG_PHYS_64BIT=y
@@ -19,7 +18,7 @@ CONFIG_FIT=y
CONFIG_FIT_VERBOSE=y CONFIG_FIT_VERBOSE=y
CONFIG_OF_BOARD_SETUP=y CONFIG_OF_BOARD_SETUP=y
CONFIG_OF_STDOUT_VIA_ALIAS=y CONFIG_OF_STDOUT_VIA_ALIAS=y
CONFIG_FSL_FIXED_MMC_LOCATION=y CONFIG_NO_PBL=y
CONFIG_BOOTDELAY=10 CONFIG_BOOTDELAY=10
CONFIG_USE_BOOTCOMMAND=y CONFIG_USE_BOOTCOMMAND=y
CONFIG_BOOTCOMMAND="setenv bootargs root=/dev/ram rw console=$consoledev,$baudrate $othbootargs ramdisk_size=$ramdisk_size;tftp $ramdiskaddr $ramdiskfile;tftp $loadaddr $bootfile;tftp $fdtaddr $fdtfile;bootm $loadaddr $ramdiskaddr $fdtaddr" CONFIG_BOOTCOMMAND="setenv bootargs root=/dev/ram rw console=$consoledev,$baudrate $othbootargs ramdisk_size=$ramdisk_size;tftp $ramdiskaddr $ramdiskfile;tftp $loadaddr $bootfile;tftp $fdtaddr $fdtfile;bootm $loadaddr $ramdiskaddr $fdtaddr"

View File

@@ -10,7 +10,6 @@ CONFIG_SYS_INIT_RAM_LOCK=y
CONFIG_TARGET_P1010RDB_PB=y CONFIG_TARGET_P1010RDB_PB=y
CONFIG_MPC85XX_HAVE_RESET_VECTOR=y CONFIG_MPC85XX_HAVE_RESET_VECTOR=y
CONFIG_ENABLE_36BIT_PHYS=y CONFIG_ENABLE_36BIT_PHYS=y
CONFIG_SYS_MPC85XX_NO_RESETVEC=y
CONFIG_PCIE1=y CONFIG_PCIE1=y
CONFIG_PCIE2=y CONFIG_PCIE2=y
CONFIG_SYS_MONITOR_LEN=786432 CONFIG_SYS_MONITOR_LEN=786432
@@ -18,7 +17,7 @@ CONFIG_FIT=y
CONFIG_FIT_VERBOSE=y CONFIG_FIT_VERBOSE=y
CONFIG_OF_BOARD_SETUP=y CONFIG_OF_BOARD_SETUP=y
CONFIG_OF_STDOUT_VIA_ALIAS=y CONFIG_OF_STDOUT_VIA_ALIAS=y
CONFIG_FSL_FIXED_MMC_LOCATION=y CONFIG_NO_PBL=y
CONFIG_BOOTDELAY=10 CONFIG_BOOTDELAY=10
CONFIG_USE_BOOTCOMMAND=y CONFIG_USE_BOOTCOMMAND=y
CONFIG_BOOTCOMMAND="setenv bootargs root=/dev/ram rw console=$consoledev,$baudrate $othbootargs ramdisk_size=$ramdisk_size;tftp $ramdiskaddr $ramdiskfile;tftp $loadaddr $bootfile;tftp $fdtaddr $fdtfile;bootm $loadaddr $ramdiskaddr $fdtaddr" CONFIG_BOOTCOMMAND="setenv bootargs root=/dev/ram rw console=$consoledev,$baudrate $othbootargs ramdisk_size=$ramdisk_size;tftp $ramdiskaddr $ramdiskfile;tftp $loadaddr $bootfile;tftp $fdtaddr $fdtfile;bootm $loadaddr $ramdiskaddr $fdtaddr"

View File

@@ -11,7 +11,6 @@ CONFIG_SYS_INIT_RAM_LOCK=y
CONFIG_TARGET_P1020RDB_PC=y CONFIG_TARGET_P1020RDB_PC=y
CONFIG_MPC85XX_HAVE_RESET_VECTOR=y CONFIG_MPC85XX_HAVE_RESET_VECTOR=y
CONFIG_ENABLE_36BIT_PHYS=y CONFIG_ENABLE_36BIT_PHYS=y
CONFIG_SYS_MPC85XX_NO_RESETVEC=y
CONFIG_PCIE1=y CONFIG_PCIE1=y
CONFIG_PCIE2=y CONFIG_PCIE2=y
CONFIG_PHYS_64BIT=y CONFIG_PHYS_64BIT=y
@@ -21,7 +20,7 @@ CONFIG_FIT=y
CONFIG_FIT_VERBOSE=y CONFIG_FIT_VERBOSE=y
CONFIG_OF_BOARD_SETUP=y CONFIG_OF_BOARD_SETUP=y
CONFIG_OF_STDOUT_VIA_ALIAS=y CONFIG_OF_STDOUT_VIA_ALIAS=y
CONFIG_FSL_FIXED_MMC_LOCATION=y CONFIG_NO_PBL=y
CONFIG_BOOTDELAY=10 CONFIG_BOOTDELAY=10
CONFIG_USE_BOOTCOMMAND=y CONFIG_USE_BOOTCOMMAND=y
CONFIG_BOOTCOMMAND="setenv bootargs root=/dev/$bdev rw rootdelay=30 console=$consoledev,$baudrate $othbootargs;usb start;ext2load usb 0:1 $loadaddr /boot/$bootfile;ext2load usb 0:1 $fdtaddr /boot/$fdtfile;bootm $loadaddr - $fdtaddr" CONFIG_BOOTCOMMAND="setenv bootargs root=/dev/$bdev rw rootdelay=30 console=$consoledev,$baudrate $othbootargs;usb start;ext2load usb 0:1 $loadaddr /boot/$bootfile;ext2load usb 0:1 $fdtaddr /boot/$fdtfile;bootm $loadaddr - $fdtaddr"

View File

@@ -11,7 +11,6 @@ CONFIG_SYS_INIT_RAM_LOCK=y
CONFIG_TARGET_P1020RDB_PC=y CONFIG_TARGET_P1020RDB_PC=y
CONFIG_MPC85XX_HAVE_RESET_VECTOR=y CONFIG_MPC85XX_HAVE_RESET_VECTOR=y
CONFIG_ENABLE_36BIT_PHYS=y CONFIG_ENABLE_36BIT_PHYS=y
CONFIG_SYS_MPC85XX_NO_RESETVEC=y
CONFIG_PCIE1=y CONFIG_PCIE1=y
CONFIG_PCIE2=y CONFIG_PCIE2=y
CONFIG_SYS_MONITOR_LEN=786432 CONFIG_SYS_MONITOR_LEN=786432
@@ -20,7 +19,7 @@ CONFIG_FIT=y
CONFIG_FIT_VERBOSE=y CONFIG_FIT_VERBOSE=y
CONFIG_OF_BOARD_SETUP=y CONFIG_OF_BOARD_SETUP=y
CONFIG_OF_STDOUT_VIA_ALIAS=y CONFIG_OF_STDOUT_VIA_ALIAS=y
CONFIG_FSL_FIXED_MMC_LOCATION=y CONFIG_NO_PBL=y
CONFIG_BOOTDELAY=10 CONFIG_BOOTDELAY=10
CONFIG_USE_BOOTCOMMAND=y CONFIG_USE_BOOTCOMMAND=y
CONFIG_BOOTCOMMAND="setenv bootargs root=/dev/$bdev rw rootdelay=30 console=$consoledev,$baudrate $othbootargs;usb start;ext2load usb 0:1 $loadaddr /boot/$bootfile;ext2load usb 0:1 $fdtaddr /boot/$fdtfile;bootm $loadaddr - $fdtaddr" CONFIG_BOOTCOMMAND="setenv bootargs root=/dev/$bdev rw rootdelay=30 console=$consoledev,$baudrate $othbootargs;usb start;ext2load usb 0:1 $loadaddr /boot/$bootfile;ext2load usb 0:1 $fdtaddr /boot/$fdtfile;bootm $loadaddr - $fdtaddr"

View File

@@ -11,7 +11,6 @@ CONFIG_SYS_INIT_RAM_LOCK=y
CONFIG_TARGET_P1020RDB_PD=y CONFIG_TARGET_P1020RDB_PD=y
CONFIG_MPC85XX_HAVE_RESET_VECTOR=y CONFIG_MPC85XX_HAVE_RESET_VECTOR=y
CONFIG_ENABLE_36BIT_PHYS=y CONFIG_ENABLE_36BIT_PHYS=y
CONFIG_SYS_MPC85XX_NO_RESETVEC=y
CONFIG_PCIE1=y CONFIG_PCIE1=y
CONFIG_PCIE2=y CONFIG_PCIE2=y
CONFIG_SYS_MONITOR_LEN=786432 CONFIG_SYS_MONITOR_LEN=786432
@@ -20,7 +19,7 @@ CONFIG_FIT=y
CONFIG_FIT_VERBOSE=y CONFIG_FIT_VERBOSE=y
CONFIG_OF_BOARD_SETUP=y CONFIG_OF_BOARD_SETUP=y
CONFIG_OF_STDOUT_VIA_ALIAS=y CONFIG_OF_STDOUT_VIA_ALIAS=y
CONFIG_FSL_FIXED_MMC_LOCATION=y CONFIG_NO_PBL=y
CONFIG_BOOTDELAY=10 CONFIG_BOOTDELAY=10
CONFIG_USE_BOOTCOMMAND=y CONFIG_USE_BOOTCOMMAND=y
CONFIG_BOOTCOMMAND="setenv bootargs root=/dev/$bdev rw rootdelay=30 console=$consoledev,$baudrate $othbootargs;usb start;ext2load usb 0:1 $loadaddr /boot/$bootfile;ext2load usb 0:1 $fdtaddr /boot/$fdtfile;bootm $loadaddr - $fdtaddr" CONFIG_BOOTCOMMAND="setenv bootargs root=/dev/$bdev rw rootdelay=30 console=$consoledev,$baudrate $othbootargs;usb start;ext2load usb 0:1 $loadaddr /boot/$bootfile;ext2load usb 0:1 $fdtaddr /boot/$fdtfile;bootm $loadaddr - $fdtaddr"

View File

@@ -11,7 +11,6 @@ CONFIG_SYS_INIT_RAM_LOCK=y
CONFIG_TARGET_P2020RDB=y CONFIG_TARGET_P2020RDB=y
CONFIG_MPC85XX_HAVE_RESET_VECTOR=y CONFIG_MPC85XX_HAVE_RESET_VECTOR=y
CONFIG_ENABLE_36BIT_PHYS=y CONFIG_ENABLE_36BIT_PHYS=y
CONFIG_SYS_MPC85XX_NO_RESETVEC=y
CONFIG_PCIE1=y CONFIG_PCIE1=y
CONFIG_PCIE2=y CONFIG_PCIE2=y
CONFIG_PHYS_64BIT=y CONFIG_PHYS_64BIT=y
@@ -21,7 +20,7 @@ CONFIG_FIT=y
CONFIG_FIT_VERBOSE=y CONFIG_FIT_VERBOSE=y
CONFIG_OF_BOARD_SETUP=y CONFIG_OF_BOARD_SETUP=y
CONFIG_OF_STDOUT_VIA_ALIAS=y CONFIG_OF_STDOUT_VIA_ALIAS=y
CONFIG_FSL_FIXED_MMC_LOCATION=y CONFIG_NO_PBL=y
CONFIG_BOOTDELAY=10 CONFIG_BOOTDELAY=10
CONFIG_USE_BOOTCOMMAND=y CONFIG_USE_BOOTCOMMAND=y
CONFIG_BOOTCOMMAND="setenv bootargs root=/dev/$bdev rw rootdelay=30 console=$consoledev,$baudrate $othbootargs;usb start;ext2load usb 0:1 $loadaddr /boot/$bootfile;ext2load usb 0:1 $fdtaddr /boot/$fdtfile;bootm $loadaddr - $fdtaddr" CONFIG_BOOTCOMMAND="setenv bootargs root=/dev/$bdev rw rootdelay=30 console=$consoledev,$baudrate $othbootargs;usb start;ext2load usb 0:1 $loadaddr /boot/$bootfile;ext2load usb 0:1 $fdtaddr /boot/$fdtfile;bootm $loadaddr - $fdtaddr"

View File

@@ -11,7 +11,6 @@ CONFIG_SYS_INIT_RAM_LOCK=y
CONFIG_TARGET_P2020RDB=y CONFIG_TARGET_P2020RDB=y
CONFIG_MPC85XX_HAVE_RESET_VECTOR=y CONFIG_MPC85XX_HAVE_RESET_VECTOR=y
CONFIG_ENABLE_36BIT_PHYS=y CONFIG_ENABLE_36BIT_PHYS=y
CONFIG_SYS_MPC85XX_NO_RESETVEC=y
CONFIG_PCIE1=y CONFIG_PCIE1=y
CONFIG_PCIE2=y CONFIG_PCIE2=y
CONFIG_SYS_MONITOR_LEN=786432 CONFIG_SYS_MONITOR_LEN=786432
@@ -20,7 +19,7 @@ CONFIG_FIT=y
CONFIG_FIT_VERBOSE=y CONFIG_FIT_VERBOSE=y
CONFIG_OF_BOARD_SETUP=y CONFIG_OF_BOARD_SETUP=y
CONFIG_OF_STDOUT_VIA_ALIAS=y CONFIG_OF_STDOUT_VIA_ALIAS=y
CONFIG_FSL_FIXED_MMC_LOCATION=y CONFIG_NO_PBL=y
CONFIG_BOOTDELAY=10 CONFIG_BOOTDELAY=10
CONFIG_USE_BOOTCOMMAND=y CONFIG_USE_BOOTCOMMAND=y
CONFIG_BOOTCOMMAND="setenv bootargs root=/dev/$bdev rw rootdelay=30 console=$consoledev,$baudrate $othbootargs;usb start;ext2load usb 0:1 $loadaddr /boot/$bootfile;ext2load usb 0:1 $fdtaddr /boot/$fdtfile;bootm $loadaddr - $fdtaddr" CONFIG_BOOTCOMMAND="setenv bootargs root=/dev/$bdev rw rootdelay=30 console=$consoledev,$baudrate $othbootargs;usb start;ext2load usb 0:1 $loadaddr /boot/$bootfile;ext2load usb 0:1 $fdtaddr /boot/$fdtfile;bootm $loadaddr - $fdtaddr"

View File

@@ -80,6 +80,7 @@ CONFIG_DM_REGULATOR_FIXED=y
CONFIG_PWM_ROCKCHIP=y CONFIG_PWM_ROCKCHIP=y
CONFIG_RAM=y CONFIG_RAM=y
CONFIG_SPL_RAM=y CONFIG_SPL_RAM=y
CONFIG_DM_RESET=y
CONFIG_DEBUG_UART_SHIFT=2 CONFIG_DEBUG_UART_SHIFT=2
CONFIG_SYSRESET=y CONFIG_SYSRESET=y
CONFIG_USB=y CONFIG_USB=y

View File

@@ -64,4 +64,5 @@ CONFIG_DM_RESET=y
CONFIG_BAUDRATE=1500000 CONFIG_BAUDRATE=1500000
CONFIG_DEBUG_UART_SHIFT=2 CONFIG_DEBUG_UART_SHIFT=2
CONFIG_SYSRESET=y CONFIG_SYSRESET=y
# CONFIG_BINMAN_FDT is not set
CONFIG_ERRNO_STR=y CONFIG_ERRNO_STR=y

View File

@@ -77,6 +77,7 @@ CONFIG_DM_REGULATOR_FIXED=y
CONFIG_PWM_ROCKCHIP=y CONFIG_PWM_ROCKCHIP=y
CONFIG_RAM=y CONFIG_RAM=y
CONFIG_SPL_RAM=y CONFIG_SPL_RAM=y
CONFIG_DM_RESET=y
CONFIG_DEBUG_UART_SHIFT=2 CONFIG_DEBUG_UART_SHIFT=2
CONFIG_SYSRESET=y CONFIG_SYSRESET=y
CONFIG_USB=y CONFIG_USB=y

View File

@@ -65,7 +65,6 @@ CONFIG_CMD_DNS=y
CONFIG_CMD_BMP=y CONFIG_CMD_BMP=y
CONFIG_CMD_BOOTCOUNT=y CONFIG_CMD_BOOTCOUNT=y
CONFIG_CMD_CACHE=y CONFIG_CMD_CACHE=y
CONFIG_CMD_CLS=y
CONFIG_CMD_TIME=y CONFIG_CMD_TIME=y
CONFIG_CMD_PMIC=y CONFIG_CMD_PMIC=y
CONFIG_CMD_REGULATOR=y CONFIG_CMD_REGULATOR=y

View File

@@ -36,7 +36,6 @@ CONFIG_CMD_PCI=y
CONFIG_CMD_BMP=y CONFIG_CMD_BMP=y
CONFIG_CMD_BOOTCOUNT=y CONFIG_CMD_BOOTCOUNT=y
CONFIG_CMD_CACHE=y CONFIG_CMD_CACHE=y
CONFIG_CMD_CLS=y
CONFIG_CMD_EXT2=y CONFIG_CMD_EXT2=y
CONFIG_CMD_EXT4=y CONFIG_CMD_EXT4=y
CONFIG_CMD_EXT4_WRITE=y CONFIG_CMD_EXT4_WRITE=y

View File

@@ -74,6 +74,7 @@ CONFIG_DM_REGULATOR_FIXED=y
CONFIG_PWM_ROCKCHIP=y CONFIG_PWM_ROCKCHIP=y
CONFIG_RAM=y CONFIG_RAM=y
CONFIG_SPL_RAM=y CONFIG_SPL_RAM=y
CONFIG_DM_RESET=y
CONFIG_DEBUG_UART_SHIFT=2 CONFIG_DEBUG_UART_SHIFT=2
CONFIG_SYSRESET=y CONFIG_SYSRESET=y
CONFIG_USB=y CONFIG_USB=y

View File

@@ -34,7 +34,6 @@ CONFIG_CMD_DHCP=y
CONFIG_CMD_MII=y CONFIG_CMD_MII=y
CONFIG_CMD_PING=y CONFIG_CMD_PING=y
CONFIG_CMD_BOOTCOUNT=y CONFIG_CMD_BOOTCOUNT=y
CONFIG_CMD_CLS=y
CONFIG_CMD_EXT2=y CONFIG_CMD_EXT2=y
CONFIG_CMD_EXT4=y CONFIG_CMD_EXT4=y
CONFIG_CMD_EXT4_WRITE=y CONFIG_CMD_EXT4_WRITE=y

View File

@@ -45,7 +45,6 @@ CONFIG_CMD_TIME=y
CONFIG_SPL_OF_CONTROL=y CONFIG_SPL_OF_CONTROL=y
CONFIG_OF_SPL_REMOVE_PROPS="pinctrl-0 pinctrl-names clock-names interrupt-parent assigned-clocks assigned-clock-rates assigned-clock-parents" CONFIG_OF_SPL_REMOVE_PROPS="pinctrl-0 pinctrl-names clock-names interrupt-parent assigned-clocks assigned-clock-rates assigned-clock-parents"
CONFIG_ENV_IS_IN_SPI_FLASH=y CONFIG_ENV_IS_IN_SPI_FLASH=y
CONFIG_ENV_SPI_MAX_HZ=30000000
CONFIG_SYS_RELOC_GD_ENV_ADDR=y CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_SPL_DM_SEQ_ALIAS=y CONFIG_SPL_DM_SEQ_ALIAS=y
CONFIG_ROCKCHIP_GPIO=y CONFIG_ROCKCHIP_GPIO=y
@@ -82,7 +81,6 @@ CONFIG_USB_EHCI_HCD=y
CONFIG_USB_EHCI_GENERIC=y CONFIG_USB_EHCI_GENERIC=y
CONFIG_USB_OHCI_HCD=y CONFIG_USB_OHCI_HCD=y
CONFIG_USB_OHCI_GENERIC=y CONFIG_USB_OHCI_GENERIC=y
CONFIG_SYS_USB_OHCI_MAX_ROOT_PORTS=2
CONFIG_USB_DWC3=y CONFIG_USB_DWC3=y
CONFIG_USB_DWC3_GENERIC=y CONFIG_USB_DWC3_GENERIC=y
CONFIG_USB_KEYBOARD=y CONFIG_USB_KEYBOARD=y

View File

@@ -30,6 +30,7 @@ CONFIG_SPL_STACK_R=y
CONFIG_SPL_STACK_R_MALLOC_SIMPLE_LEN=0x10000 CONFIG_SPL_STACK_R_MALLOC_SIMPLE_LEN=0x10000
CONFIG_TPL=y CONFIG_TPL=y
CONFIG_CMD_BOOTZ=y CONFIG_CMD_BOOTZ=y
CONFIG_CMD_NVEDIT_EFI=y
CONFIG_CMD_DFU=y CONFIG_CMD_DFU=y
CONFIG_CMD_GPT=y CONFIG_CMD_GPT=y
CONFIG_CMD_MMC=y CONFIG_CMD_MMC=y
@@ -38,6 +39,7 @@ CONFIG_CMD_USB=y
CONFIG_CMD_ROCKUSB=y CONFIG_CMD_ROCKUSB=y
CONFIG_CMD_USB_MASS_STORAGE=y CONFIG_CMD_USB_MASS_STORAGE=y
# CONFIG_CMD_SETEXPR is not set # CONFIG_CMD_SETEXPR is not set
CONFIG_CMD_EFIDEBUG=y
CONFIG_CMD_TIME=y CONFIG_CMD_TIME=y
CONFIG_SPL_OF_CONTROL=y CONFIG_SPL_OF_CONTROL=y
CONFIG_OF_SPL_REMOVE_PROPS="pinctrl-0 pinctrl-names clock-names interrupt-parent assigned-clocks assigned-clock-rates assigned-clock-parents" CONFIG_OF_SPL_REMOVE_PROPS="pinctrl-0 pinctrl-names clock-names interrupt-parent assigned-clocks assigned-clock-rates assigned-clock-parents"
@@ -90,9 +92,5 @@ CONFIG_DISPLAY_ROCKCHIP_HDMI=y
CONFIG_SPL_TINY_MEMSET=y CONFIG_SPL_TINY_MEMSET=y
CONFIG_ERRNO_STR=y CONFIG_ERRNO_STR=y
CONFIG_OF_LIBFDT_OVERLAY=y CONFIG_OF_LIBFDT_OVERLAY=y
CONFIG_CMD_NVEDIT_EFI=y
CONFIG_CMD_EFIDEBUG=y
CONFIG_TOOLS_MKEFICAPSULE=y
CONFIG_HEXDUMP=y
CONFIG_EFI_CAPSULE_ON_DISK=y CONFIG_EFI_CAPSULE_ON_DISK=y
CONFIG_EFI_CAPSULE_FIRMWARE_RAW=y CONFIG_EFI_CAPSULE_FIRMWARE_RAW=y

View File

@@ -30,6 +30,7 @@ CONFIG_SPL_STACK_R=y
CONFIG_SPL_STACK_R_MALLOC_SIMPLE_LEN=0x10000 CONFIG_SPL_STACK_R_MALLOC_SIMPLE_LEN=0x10000
CONFIG_TPL=y CONFIG_TPL=y
CONFIG_CMD_BOOTZ=y CONFIG_CMD_BOOTZ=y
CONFIG_CMD_NVEDIT_EFI=y
CONFIG_CMD_DFU=y CONFIG_CMD_DFU=y
CONFIG_CMD_GPT=y CONFIG_CMD_GPT=y
CONFIG_CMD_MMC=y CONFIG_CMD_MMC=y
@@ -38,6 +39,7 @@ CONFIG_CMD_USB=y
CONFIG_CMD_ROCKUSB=y CONFIG_CMD_ROCKUSB=y
CONFIG_CMD_USB_MASS_STORAGE=y CONFIG_CMD_USB_MASS_STORAGE=y
# CONFIG_CMD_SETEXPR is not set # CONFIG_CMD_SETEXPR is not set
CONFIG_CMD_EFIDEBUG=y
CONFIG_CMD_TIME=y CONFIG_CMD_TIME=y
CONFIG_SPL_OF_CONTROL=y CONFIG_SPL_OF_CONTROL=y
CONFIG_OF_SPL_REMOVE_PROPS="pinctrl-0 pinctrl-names clock-names interrupt-parent assigned-clocks assigned-clock-rates assigned-clock-parents" CONFIG_OF_SPL_REMOVE_PROPS="pinctrl-0 pinctrl-names clock-names interrupt-parent assigned-clocks assigned-clock-rates assigned-clock-parents"
@@ -90,9 +92,5 @@ CONFIG_DISPLAY_ROCKCHIP_HDMI=y
CONFIG_SPL_TINY_MEMSET=y CONFIG_SPL_TINY_MEMSET=y
CONFIG_ERRNO_STR=y CONFIG_ERRNO_STR=y
CONFIG_OF_LIBFDT_OVERLAY=y CONFIG_OF_LIBFDT_OVERLAY=y
CONFIG_CMD_NVEDIT_EFI=y
CONFIG_CMD_EFIDEBUG=y
CONFIG_TOOLS_MKEFICAPSULE=y
CONFIG_HEXDUMP=y
CONFIG_EFI_CAPSULE_ON_DISK=y CONFIG_EFI_CAPSULE_ON_DISK=y
CONFIG_EFI_CAPSULE_FIRMWARE_RAW=y CONFIG_EFI_CAPSULE_FIRMWARE_RAW=y

View File

@@ -73,6 +73,7 @@ CONFIG_PWM_ROCKCHIP=y
CONFIG_RAM=y CONFIG_RAM=y
CONFIG_SPL_RAM=y CONFIG_SPL_RAM=y
# CONFIG_RAM_ROCKCHIP_DEBUG is not set # CONFIG_RAM_ROCKCHIP_DEBUG is not set
CONFIG_DM_RESET=y
CONFIG_DEBUG_UART_SHIFT=2 CONFIG_DEBUG_UART_SHIFT=2
CONFIG_SYSRESET=y CONFIG_SYSRESET=y
CONFIG_USB=y CONFIG_USB=y

View File

@@ -68,6 +68,8 @@ CONFIG_SPI_FLASH_WINBOND=y
CONFIG_BITBANGMII=y CONFIG_BITBANGMII=y
CONFIG_BITBANGMII_MULTI=y CONFIG_BITBANGMII_MULTI=y
CONFIG_PHY_ATHEROS=y CONFIG_PHY_ATHEROS=y
CONFIG_PHY_MICREL=y
CONFIG_PHY_MICREL_KSZ90X1=y
CONFIG_RENESAS_RAVB=y CONFIG_RENESAS_RAVB=y
CONFIG_DM_REGULATOR=y CONFIG_DM_REGULATOR=y
CONFIG_DM_REGULATOR_FIXED=y CONFIG_DM_REGULATOR_FIXED=y

View File

@@ -101,6 +101,7 @@ CONFIG_BOOTP_SEND_HOSTNAME=y
CONFIG_NETCONSOLE=y CONFIG_NETCONSOLE=y
CONFIG_IP_DEFRAG=y CONFIG_IP_DEFRAG=y
CONFIG_BOOTP_SERVERIP=y CONFIG_BOOTP_SERVERIP=y
CONFIG_IPV6=y
CONFIG_DM_DMA=y CONFIG_DM_DMA=y
CONFIG_REGMAP=y CONFIG_REGMAP=y
CONFIG_SYSCON=y CONFIG_SYSCON=y
@@ -258,4 +259,3 @@ CONFIG_FWU_MULTI_BANK_UPDATE=y
CONFIG_UNIT_TEST=y CONFIG_UNIT_TEST=y
CONFIG_UT_TIME=y CONFIG_UT_TIME=y
CONFIG_UT_DM=y CONFIG_UT_DM=y
CONFIG_IPV6=y

View File

@@ -135,6 +135,7 @@ CONFIG_BOOTP_SEND_HOSTNAME=y
CONFIG_NETCONSOLE=y CONFIG_NETCONSOLE=y
CONFIG_IP_DEFRAG=y CONFIG_IP_DEFRAG=y
CONFIG_BOOTP_SERVERIP=y CONFIG_BOOTP_SERVERIP=y
CONFIG_IPV6=y
CONFIG_DM_DMA=y CONFIG_DM_DMA=y
CONFIG_DEVRES=y CONFIG_DEVRES=y
CONFIG_DEBUG_DEVRES=y CONFIG_DEBUG_DEVRES=y
@@ -333,4 +334,3 @@ CONFIG_TEST_FDTDEC=y
CONFIG_UNIT_TEST=y CONFIG_UNIT_TEST=y
CONFIG_UT_TIME=y CONFIG_UT_TIME=y
CONFIG_UT_DM=y CONFIG_UT_DM=y
CONFIG_IPV6=y

View File

@@ -78,6 +78,7 @@ CONFIG_BOOTP_SEND_HOSTNAME=y
CONFIG_NETCONSOLE=y CONFIG_NETCONSOLE=y
CONFIG_IP_DEFRAG=y CONFIG_IP_DEFRAG=y
CONFIG_BOOTP_SERVERIP=y CONFIG_BOOTP_SERVERIP=y
CONFIG_IPV6=y
CONFIG_DM_DMA=y CONFIG_DM_DMA=y
CONFIG_REGMAP=y CONFIG_REGMAP=y
CONFIG_SYSCON=y CONFIG_SYSCON=y
@@ -216,4 +217,3 @@ CONFIG_EFI_CAPSULE_FIRMWARE_FIT=y
CONFIG_UNIT_TEST=y CONFIG_UNIT_TEST=y
CONFIG_UT_TIME=y CONFIG_UT_TIME=y
CONFIG_UT_DM=y CONFIG_UT_DM=y
CONFIG_IPV6=y

View File

@@ -72,10 +72,8 @@ CONFIG_CMD_CLK=y
CONFIG_CMD_DFU=y CONFIG_CMD_DFU=y
CONFIG_CMD_FUSE=y CONFIG_CMD_FUSE=y
CONFIG_CMD_GPIO=y CONFIG_CMD_GPIO=y
CONFIG_CMD_GPT=y
CONFIG_CMD_I2C=y CONFIG_CMD_I2C=y
CONFIG_CMD_MMC=y CONFIG_CMD_MMC=y
CONFIG_CMD_MTD=y
CONFIG_CMD_REMOTEPROC=y CONFIG_CMD_REMOTEPROC=y
CONFIG_CMD_SPI=y CONFIG_CMD_SPI=y
CONFIG_CMD_USB=y CONFIG_CMD_USB=y
@@ -110,9 +108,6 @@ CONFIG_STM32_ADC=y
CONFIG_SPL_BLOCK_CACHE=y CONFIG_SPL_BLOCK_CACHE=y
CONFIG_BOOTCOUNT_LIMIT=y CONFIG_BOOTCOUNT_LIMIT=y
CONFIG_SYS_BOOTCOUNT_MAGIC=0xB0C40000 CONFIG_SYS_BOOTCOUNT_MAGIC=0xB0C40000
CONFIG_DFU_MMC=y
CONFIG_DFU_MTD=y
CONFIG_DFU_RAM=y
CONFIG_GPIO_HOG=y CONFIG_GPIO_HOG=y
CONFIG_DM_HWSPINLOCK=y CONFIG_DM_HWSPINLOCK=y
CONFIG_HWSPINLOCK_STM32=y CONFIG_HWSPINLOCK_STM32=y

View File

@@ -70,10 +70,8 @@ CONFIG_CMD_CLK=y
CONFIG_CMD_DFU=y CONFIG_CMD_DFU=y
CONFIG_CMD_FUSE=y CONFIG_CMD_FUSE=y
CONFIG_CMD_GPIO=y CONFIG_CMD_GPIO=y
CONFIG_CMD_GPT=y
CONFIG_CMD_I2C=y CONFIG_CMD_I2C=y
CONFIG_CMD_MMC=y CONFIG_CMD_MMC=y
CONFIG_CMD_MTD=y
CONFIG_CMD_REMOTEPROC=y CONFIG_CMD_REMOTEPROC=y
CONFIG_CMD_SPI=y CONFIG_CMD_SPI=y
CONFIG_CMD_USB=y CONFIG_CMD_USB=y
@@ -107,9 +105,6 @@ CONFIG_STM32_ADC=y
CONFIG_SPL_BLOCK_CACHE=y CONFIG_SPL_BLOCK_CACHE=y
CONFIG_BOOTCOUNT_LIMIT=y CONFIG_BOOTCOUNT_LIMIT=y
CONFIG_SYS_BOOTCOUNT_MAGIC=0xB0C40000 CONFIG_SYS_BOOTCOUNT_MAGIC=0xB0C40000
CONFIG_DFU_MMC=y
CONFIG_DFU_MTD=y
CONFIG_DFU_RAM=y
CONFIG_GPIO_HOG=y CONFIG_GPIO_HOG=y
CONFIG_DM_HWSPINLOCK=y CONFIG_DM_HWSPINLOCK=y
CONFIG_HWSPINLOCK_STM32=y CONFIG_HWSPINLOCK_STM32=y

View File

@@ -82,6 +82,7 @@ CONFIG_REGULATOR_RK8XX=y
CONFIG_PWM_ROCKCHIP=y CONFIG_PWM_ROCKCHIP=y
CONFIG_RAM=y CONFIG_RAM=y
CONFIG_SPL_RAM=y CONFIG_SPL_RAM=y
CONFIG_DM_RESET=y
CONFIG_DEBUG_UART_SHIFT=2 CONFIG_DEBUG_UART_SHIFT=2
CONFIG_SYSRESET=y CONFIG_SYSRESET=y
CONFIG_USB=y CONFIG_USB=y

View File

@@ -82,6 +82,7 @@ CONFIG_REGULATOR_RK8XX=y
CONFIG_PWM_ROCKCHIP=y CONFIG_PWM_ROCKCHIP=y
CONFIG_RAM=y CONFIG_RAM=y
CONFIG_SPL_RAM=y CONFIG_SPL_RAM=y
CONFIG_DM_RESET=y
CONFIG_DEBUG_UART_SHIFT=2 CONFIG_DEBUG_UART_SHIFT=2
CONFIG_SYSRESET=y CONFIG_SYSRESET=y
CONFIG_USB=y CONFIG_USB=y

View File

@@ -82,6 +82,7 @@ CONFIG_REGULATOR_RK8XX=y
CONFIG_PWM_ROCKCHIP=y CONFIG_PWM_ROCKCHIP=y
CONFIG_RAM=y CONFIG_RAM=y
CONFIG_SPL_RAM=y CONFIG_SPL_RAM=y
CONFIG_DM_RESET=y
CONFIG_DEBUG_UART_SHIFT=2 CONFIG_DEBUG_UART_SHIFT=2
CONFIG_SYSRESET=y CONFIG_SYSRESET=y
CONFIG_USB=y CONFIG_USB=y

View File

@@ -69,6 +69,14 @@ quiet_cmd_sphinx = SPHINX $@ --> file://$(abspath $(BUILDDIR)/$3/$4)
htmldocs: htmldocs:
@+$(foreach var,$(SPHINXDIRS),$(call loop_cmd,sphinx,html,$(var),,$(var))) @+$(foreach var,$(SPHINXDIRS),$(call loop_cmd,sphinx,html,$(var),,$(var)))
texinfodocs:
@+$(foreach var,$(SPHINXDIRS),$(call loop_cmd,sphinx,texinfo,$(var),texinfo,$(var)))
# Note: the 'info' Make target is generated by sphinx itself when
# running the texinfodocs target defined above.
infodocs: texinfodocs
$(MAKE) -C $(BUILDDIR)/texinfo info
linkcheckdocs: linkcheckdocs:
@$(foreach var,$(SPHINXDIRS),$(call loop_cmd,sphinx,linkcheck,$(var),,$(var))) @$(foreach var,$(SPHINXDIRS),$(call loop_cmd,sphinx,linkcheck,$(var),,$(var)))
@@ -109,6 +117,8 @@ cleandocs:
dochelp: dochelp:
@echo ' U-Boot documentation in different formats from ReST:' @echo ' U-Boot documentation in different formats from ReST:'
@echo ' htmldocs - HTML' @echo ' htmldocs - HTML'
@echo ' texinfodocs - Texinfo'
@echo ' infodocs - Info'
@echo ' latexdocs - LaTeX' @echo ' latexdocs - LaTeX'
@echo ' pdfdocs - PDF' @echo ' pdfdocs - PDF'
@echo ' epubdocs - EPUB' @echo ' epubdocs - EPUB'

View File

@@ -7,7 +7,7 @@ QEMU PPC E500
QEMU for PPC supports a special 'ppce500' machine designed for emulation and QEMU for PPC supports a special 'ppce500' machine designed for emulation and
virtualization purposes. This document describes how to run U-Boot under it. virtualization purposes. This document describes how to run U-Boot under it.
The QEMU ppce500 machine models a generic PowerPC E500 virtual machine with The QEMU ppce500 machine models a generic PowerPC e500 virtual machine with
support for the VirtIO standard networking device connected to the built-in support for the VirtIO standard networking device connected to the built-in
PCI host controller. Some common devices in the CCSBAR space are modeled, PCI host controller. Some common devices in the CCSBAR space are modeled,
including MPIC, 16550A UART devices, GPIO, I2C and PCI host controller with including MPIC, 16550A UART devices, GPIO, I2C and PCI host controller with
@@ -39,6 +39,7 @@ embedded DTB created by QEMU reflects the new setting.
Both qemu-system-ppc and qemu-system-ppc64 provide emulation for the following Both qemu-system-ppc and qemu-system-ppc64 provide emulation for the following
32-bit PowerPC CPUs: 32-bit PowerPC CPUs:
* e500v1
* e500v2 * e500v2
* e500mc * e500mc
@@ -61,8 +62,9 @@ When U-Boot boots, you will notice the following::
This is because we only specified a core name to QEMU and it does not have a This is because we only specified a core name to QEMU and it does not have a
meaningful SVR value which represents an actual SoC that integrates such core. meaningful SVR value which represents an actual SoC that integrates such core.
You can specify a real world SoC device that QEMU has built-in support but all You can specify a real world SoC device that QEMU has built-in support but all
these SoCs are e500v2 based MPC85xx series, hence you cannot test anything these SoCs are e500v1/e500v2 based MPC85xx series, hence you cannot test anything
built for P4080 (e500mc), P5020 (e5500) and T2080 (e6500). built for P10xx/P2010/P2020 (e500v2), P204x/P304x/P40xx (e500mc), P50xx/T10xx (e5500)
and T208x/T4080/T4160/T4240 (e6500).
By default a VirtIO standard PCI networking device is connected as an ethernet By default a VirtIO standard PCI networking device is connected as an ethernet
interface at PCI address 0.1.0, but we can switch that to an e1000 NIC by:: interface at PCI address 0.1.0, but we can switch that to an e1000 NIC by::

View File

@@ -1,8 +1,11 @@
.. SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause .. SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause
.. sectionauthor:: Tom Rini <trini@konsulko.com> .. sectionauthor:: Tom Rini <trini@konsulko.com>
AM335x Generation
=================
Summary Summary
======= -------
This document covers various features of the `am335x_evm` default This document covers various features of the `am335x_evm` default
configuration, some of the related defconfigs, and how to enable hardware configuration, some of the related defconfigs, and how to enable hardware

View File

@@ -1,8 +1,8 @@
.. SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause .. SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause
.. sectionauthor:: Vignesh Raghavendra <vigneshr@ti.com> .. sectionauthor:: Vignesh Raghavendra <vigneshr@ti.com>
Texas Instruments AM62 Platforms AM62 Platforms
================================ ===============
Introduction: Introduction:
------------- -------------

View File

@@ -1,11 +1,10 @@
.. SPDX-License-Identifier: GPL-2.0+ .. SPDX-License-Identifier: GPL-2.0+
Texas Instruments Texas Instruments
================= #################
.. toctree:: .. toctree::
:maxdepth: 2 :maxdepth: 2
am335x_evm am335x_evm
j721e_evm k3
am62x_sk

View File

@@ -1,8 +1,8 @@
.. SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause .. SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause
.. sectionauthor:: Lokesh Vutla <lokeshvutla@ti.com> .. sectionauthor:: Lokesh Vutla <lokeshvutla@ti.com>
Texas Instruments K3 Platforms J721E Platforms
============================== ===============
Introduction: Introduction:
------------- -------------

274
doc/board/ti/k3.rst Normal file
View File

@@ -0,0 +1,274 @@
.. SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause
.. sectionauthor:: Bryan Brattlof <bb@ti.com>
K3 Generation
=============
Summary
-------
Texas Instrument's K3 family of SoCs utilize a heterogeneous multicore
and highly integrated device architecture targeted to maximize
performance and power efficiency for a wide range of industrial,
automotive and other broad market segments.
Typically the processing cores and the peripherals for these devices are
partitioned into three functional domains to provide ultra-low power
modes as well as accommodating application and industrial safety systems
on the same SoC. These functional domains are typically called the:
* Wakeup (WKUP) domain
* Micro-controller (MCU) domain
* Main domain
For a more detailed view of what peripherals are attached to each
domain, consult the device specific documentation.
K3 Based SoCs
-------------
.. toctree::
:maxdepth: 1
j721e_evm
am62x_sk
Boot Flow Overview
------------------
For all K3 SoCs the first core started will be inside the Security
Management Subsystem (SMS) which will secure the device and start a core
in the wakeup domain to run the ROM code. ROM will then initialize the
boot media needed to load the binaries packaged inside `tiboot3.bin`,
including a 32bit U-Boot SPL, (called the wakup SPL) that ROM will jump
to after it has finished loading everything into internal SRAM.
.. code-block:: text
| WKUP Domain
ROM -> WKUP SPL ->
The wakeup SPL, running on a wakeup domain core, will initialize DDR and
any peripherals needed load the larger binaries inside the `tispl.bin`
into DDR. Once loaded the wakeup SPL will start one of the 'big'
application cores inside the main domain to initialize the main domain,
starting with ARM Trusted Firmware (ATF), before moving on to start
OPTEE and the main domain's U-Boot SPL.
.. code-block:: text
| WKUP Domain | Main Domain ->
ROM -> WKUP SPL -> ATF -> OPTEE -> Main SPL
The main domain's SPL, running on a 64bit application core, has
virtually unlimited space (billions of bytes now that DDR is working) to
initialize even more peripherals needed to load in the `u-boot.img`
which loads more firmware into the micro-controller & wakeup domains and
finally prepare the main domain to run Linux.
.. code-block:: text
| WKUP Domain | Main Domain ->
ROM -> WKUP SPL -> ATF -> OPTEE -> Main SPL -> UBoot -> Linux
This is the typical boot flow for all K3 based SoCs, however this flow
offers quite a lot in the terms of flexibility, especially on High
Security (HS) SoCs.
Boot Flow Variations
^^^^^^^^^^^^^^^^^^^^
All K3 SoCs will generally use the above boot flow with two main
differences depending on the capabilities of the boot ROM and the number
of cores inside the device. These differences split the bootflow into
essentially 4 unique but very similar flows:
* Split binary with a combined firmware: (eg: AM65)
* Combined binary with a combined firmware: (eg: AM64)
* Split binary with a split firmware: (eg: J721E)
* Combined binary with a split firmware: (eg: AM62)
For devices that utilize the split binary approach, ROM is not capable
of loading the firmware into the SoC requiring the wakeup domain's
U-Boot SPL to load the firmware.
Devices with a split firmware will have two firmwares loaded into the
device at different times during the bootup process. TI's Foundational
Security (TIFS), needed to operate the Security Management Subsystem,
will either be loaded by ROM or the WKUP U-Boot SPL, then once the
wakeup U-Boot SPL has completed, the second Device Management (DM)
firmware can be loaded on the now free core in the wakeup domain.
For more information on the bootup process of your SoC, consult the
device specific boot flow documentation.
Software Sources
----------------
All scripts and code needed to build the `tiboot3.bin`, `tispl.bin` and
`u-boot.img` for all K3 SoCs can be located at the following places
online
* **Das U-Boot**
| **source:** https://source.denx.de/u-boot/u-boot.git
| **branch:** master
* **K3 Image Gen**
| **source:** https://git.ti.com/git/k3-image-gen/k3-image-gen.git
| **branch:** master
* **ARM Trusted Firmware (ATF)**
| **source:** https://github.com/ARM-software/arm-trusted-firmware.git
| **branch:** master
* **Open Portable Trusted Execution Environment (OPTEE)**
| **source:** https://github.com/OP-TEE/optee_os.git
| **branch:** master
* **TI Firmware (TIFS, DM, DSMC)**
| **source:** https://git.ti.com/git/processor-firmware/ti-linux-firmware.git
| **branch:** ti-linux-firmware
* **TI's Security Development Tools**
| **source:** https://git.ti.com/git/security-development-tools/core-secdev-k3.git
| **branch:** master
Build Procedure
---------------
Depending on the specifics of your device, you will need three or more
binaries to boot your SoC.
* `tiboot3.bin` (bootloader for the wakeup domain)
* `tispl.bin` (bootloader for the main domain)
* `u-boot.img`
During the bootup process, both the 32bit wakeup domain and the 64bit
main domains will be involved. This means everything inside the
`tiboot3.bin` running in the wakeup domain will need to be compiled for
32bit cores and most binaries in the `tispl.bin` will need to be
compiled for 64bit main domain CPU cores.
All of that to say you will need both a 32bit and 64bit cross compiler
(assuming you're using an x86 desktop)
.. code-block:: bash
export CC32=arm-linux-gnueabihf-
export CC64=aarch64-linux-gnu-
Building tiboot3.bin
^^^^^^^^^^^^^^^^^^^^^
1. To generate the U-Boot SPL for the wakeup domain, use the following
commands, substituting :code:`{SOC}` for the name of your device (eg:
am62x)
.. code-block:: bash
# inside u-boot source
make ARCH=arm O=build/wkup CROSS_COMPILE=$CC32 {SOC}_evm_r5_defconfig
make ARCH=arm O=build/wkup CROSS_COMPILE=$CC32
2. Next we will use the K3 Image Gen scripts to package the various
firmware and the wakeup UBoot SPL into the final `tiboot3.bin`
binary. (or the `sysfw.itb` if your device uses the split binary
flow)
.. code-block:: bash
# inside k3-image-gen source
make CROSS_COMPILE=$CC32 SOC={SOC} SOC_TYPE={hs,gp} \
TI_SECURE_DEV_PKG=<path/to/securit-development-tools> \
SYSFW_PATH=<path/to/ti-sysfw/ti-fs-firmware-{SOC}-{hs|gp}.bin> \
SYSFW_HS_INNER_CERT_PATH=<path/to/ti-sysfw/ti-fs-firmware-{SOC}-hs-cert.bin
For devices that use the *combined binary flow*, you will also need to
supply the location of the SPL we created in step 1 above, so it can be
packaged into the final `tiboot3.bin`.
.. code-block:: bash
SBL=<path/to/wakeup/u-boot-spl.bin>
At this point you should have all the needed binaries to boot the wakeup
domain of your K3 SoC.
**Combined Binary Boot Flow** (eg: am62x, am64x, ... )
`k3-image-gen/tiboot3-{SOC}-{hs,gp}-evm.bin`
**Split Binary Boot Flow** (eg: j721e, am65x)
| `u-boot/build/wkup/tiboot3.bin`
| `k3-image-gen/sysfw-{SOC}-evm.bin`
.. note ::
It's important to rename the generated `tiboot3.bin` and `sysfw.itb`
to match exactly `tiboot3.bin` and `sysfw.itb` as ROM and the wakeup
UBoot SPL will only look for and load the files with these names.
Building tispl.bin
^^^^^^^^^^^^^^^^^^^
The `tispl.bin` is a standard fitImage combining the firmware need for
the main domain to function properly as well as Device Management (DM)
firmware if your device using a split firmware.
3. We will first need ATF, as it's the first thing to run on the 'big'
application cores on the main domain.
.. code-block:: bash
# inside arm-trusted-firmware source
make CROSS_COMPILE=$CC64 ARCH=aarch64 PLAT=k3 \
TARGET_BOARD={lite|generic} \
SPD=opteed \
Typically all `j7*` devices will use `TARGET_BOARD=generic` while all
Sitara (`am6*`) devices use the `lite` option.
4. The Open Portable Trusted Execution Environment (OPTEE) is designed
to run as a companion to a non-secure Linux kernel for Cortex-A cores
using the TrustZone technology built into the core.
.. code-block:: bash
# inside optee_os source
make CROSS_COMPILE=$CC32 CROSS_COMPILE64=$CC64 \
PLATFORM=k3 CFG_ARM64_core=y
5. Finally, after ATF has initialized the main domain and OPTEE has
finished, we can jump back into U-Boot again, this time running on a
64bit core in the main domain.
.. code-block:: bash
# inside u-boot source
make ARCH=arm O=build/main CROSS_COMPILE=$CC64 {SOC}_evm_a{53,72}_defconfig
make ARCH=arm O=build/main CROSS_COMPILE=$CC64 \
ATF=<path/to/atf/bl31.bin \
TEE=<path/to/optee/tee-pager_v2.bin
If your device uses a split firmware, you will also need to supply the
path to the Device Management (DM) Firmware to be included in the final
`tispl.bin` binary
.. code-block:: bash
DM=<path/to/ti-linux-firmware/ti-dm/ipc_echo_testb_mcu1_0_release_strip.xer5f>
At this point you should have every binary needed initialize both the
wakeup and main domain and to boot to the U-Boot prompt
**Main Domain Bootloader**
| `u-boot/build/main/tispl.bin`
| `u-boot/build/main/u-boot.img`

90
doc/build/documentation.rst vendored Normal file
View File

@@ -0,0 +1,90 @@
.. SPDX-License-Identifier: GPL-2.0+:
Building documentation
======================
The U-Boot documentation is based on the Sphinx documentation generator.
HTML documentation
------------------
The *htmldocs* target is used to build the HTML documentation. It uses the
`Read the Docs Sphinx theme <https://sphinx-rtd-theme.readthedocs.io/en/stable/>`_.
.. code-block:: bash
# Create Python environment 'myenv'
python3 -m venv myenv
# Activate the Python environment
. myenv/bin/activate
# Install build requirements
python3 -m pip install -r doc/sphinx/requirements.txt
# Build the documentation
make htmldocs
# Deactivate the Python environment
deactivate
# Display the documentation in a graphical web browser
x-www-browser doc/output/index.html
Infodoc documentation
---------------------
The *infodocs* target builds both a texinfo and an info file:
.. code-block:: bash
# Create Python environment 'myenv'
python3 -m venv myenv
# Activate the Python environment
. myenv/bin/activate
# Install build requirements
python3 -m pip install -r doc/sphinx/requirements.txt
# Build the documentation
make infodocs
# Deactivate the Python environment
deactivate
# Display the documentation
info doc/output/texinfo/u-boot.info
PDF documentation
-----------------
The *pdfdocs* target is meant to be used to build PDF documenation.
As v2023.01 it fails with 'LaTeX Error: Too deeply nested'.
We can use texi2pdf instead:
.. code-block:: bash
# Create Python environment 'myenv'
python3 -m venv myenv
# Activate the Python environment
. myenv/bin/activate
# Install build requirements
python3 -m pip install -r doc/sphinx/requirements.txt
# Build the documentation
make texinfodocs
# Deactivate the Python environment
deactivate
# Convert to PDF
texi2pdf doc/output/texinfo/u-boot.texi
Texinfo documentation
---------------------
To build only the texinfo documentation the *texinfodocs* target is used:
.. code-block:: bash
# Create Python environment 'myenv'
python3 -m venv myenv
# Activate the Python environment
. myenv/bin/activate
# Install build requirements
python3 -m pip install -r doc/sphinx/requirements.txt
# Build the documentation
make texinfodocs
# Deactivate the Python environment
deactivate
The output is in file *doc/output/texinfo/u-boot.texi*.

1
doc/build/index.rst vendored
View File

@@ -12,3 +12,4 @@ Build U-Boot
docker docker
tools tools
buildman buildman
documentation

View File

@@ -449,7 +449,7 @@ for fn in os.listdir('.'):
# One entry per manual page. List of tuples # One entry per manual page. List of tuples
# (source start file, name, description, authors, manual section). # (source start file, name, description, authors, manual section).
man_pages = [ man_pages = [
(master_doc, 'dasuboot', 'The U-Boot Documentation', (master_doc, 'u-boot', 'The U-Boot Documentation',
[author], 1) [author], 1)
] ]
@@ -463,8 +463,8 @@ man_pages = [
# (source start file, target name, title, author, # (source start file, target name, title, author,
# dir menu entry, description, category) # dir menu entry, description, category)
texinfo_documents = [ texinfo_documents = [
(master_doc, 'DasUBoot', 'The U-Boot Documentation', (master_doc, 'u-boot', 'The U-Boot Documentation',
author, 'DasUBoot', 'One line description of project.', author, 'U-Boot', 'Boot loader for embedded systems',
'Miscellaneous'), 'Miscellaneous'),
] ]

View File

@@ -48,12 +48,12 @@ Examples::
Current Status Current Status
-------------- --------------
* U-Boot v2022.10 was released on Mon 03 October 2022. * U-Boot v2023.01 was released on Mon 09 January 2023.
* The Merge Window for the next release (v2023.01) is **open** until -rc1 * The Merge Window for the next release (v2023.04) is **open** until -rc1
release on Mon 24 October 2022. release on Mon 30 January 2023.
* Release "v2023.01" is scheduled for 09 January 2023. * Release "v2023.04" is scheduled for 03 April 2023.
Future Releases Future Releases
--------------- ---------------
@@ -61,31 +61,29 @@ Future Releases
.. The following commented out dates are for when release candidates are .. The following commented out dates are for when release candidates are
planned to be tagged. planned to be tagged.
For the next scheduled release, release candidates were made on:: .. For the next scheduled release, release candidates were made on::
* U-Boot v2023.01-rc1 was released on Mon 07 November 2022. .. * U-Boot v2023.04-rc1 was released on Mon 30 January 2023.
* U-Boot v2023.01-rc2 was released on Mon 21 November 2022. .. * U-Boot v2023.04-rc2 was released on Mon 13 February 2023.
* U-Boot v2023.01-rc3 was released on Mon 05 December 2022. .. * U-Boot v2023.04-rc3 was released on Mon 27 February 2023.
* U-Boot v2023.01-rc4 was released on Mon 19 December 2022. .. * U-Boot v2023.04-rc4 was released on Mon 13 March 2023.
.. * U-Boot v2023.01-rc5 was released on Mon 19 December 2022. .. * U-Boot v2023.04-rc5 was released on Mon 27 March 2023.
.. * U-Boot v2023.01-rc6 was released on Mon 02 January 2023.
Please note that the following dates are planned only and may be deviated from Please note that the following dates are planned only and may be deviated from
as needed. as needed.
* "v2023.01": end of MW = Mon, Oct 24, 2022; release = Mon, Jan 09, 2023
* "v2023.04": end of MW = Mon, Jan 30, 2022; release = Mon, Apr 03, 2023 * "v2023.04": end of MW = Mon, Jan 30, 2022; release = Mon, Apr 03, 2023
* "v2023.07": end of MW = Mon, Apr 24, 2023; release = Mon, Jul 03, 2023 * "v2023.07": end of MW = Mon, Apr 24, 2023; release = Mon, Jul 03, 2023
* "v2023.10": end of MW = Mon, Jul 24, 2023; release = Mon, Oct 02, 2023 * "v2023.10": end of MW = Mon, Jul 24, 2023; release = Mon, Oct 02, 2023
* "v2024.01": end of MW = Mon, Oct 23, 2023; release = Mon, Jan 08, 2024
Previous Releases Previous Releases
----------------- -----------------
@@ -93,6 +91,8 @@ Note: these statistics are generated by our fork of `gitdm
<https://source.denx.de/u-boot/gitdm>`_, which was originally created by <https://source.denx.de/u-boot/gitdm>`_, which was originally created by
Jonathan Corbet. Jonathan Corbet.
* :doc:`statistics/u-boot-stats-v2023.01` which was released on 09 January 2023.
* :doc:`statistics/u-boot-stats-v2022.10` which was released on 03 October 2022. * :doc:`statistics/u-boot-stats-v2022.10` which was released on 03 October 2022.
* :doc:`statistics/u-boot-stats-v2022.07` which was released on 11 July 2022. * :doc:`statistics/u-boot-stats-v2022.07` which was released on 11 July 2022.

View File

@@ -3,7 +3,7 @@
Release Statistics for U-Boot v1.3.0 Release Statistics for U-Boot v1.3.0
==================================== ====================================
* Processed 1153 csets from 102 developers * Processed 1153 changesets from 102 developers
* 38 employers found * 38 employers found

View File

@@ -3,7 +3,7 @@
Release Statistics for U-Boot v1.3.1 Release Statistics for U-Boot v1.3.1
==================================== ====================================
* Processed 40 csets from 5 developers * Processed 40 changesets from 5 developers
* 5 employers found * 5 employers found

View File

@@ -3,7 +3,7 @@
Release Statistics for U-Boot v1.3.2 Release Statistics for U-Boot v1.3.2
==================================== ====================================
* Processed 744 csets from 79 developers * Processed 744 changesets from 79 developers
* 38 employers found * 38 employers found

View File

@@ -3,7 +3,7 @@
Release Statistics for U-Boot v1.3.3 Release Statistics for U-Boot v1.3.3
==================================== ====================================
* Processed 646 csets from 75 developers * Processed 646 changesets from 75 developers
* 38 employers found * 38 employers found

View File

@@ -3,7 +3,7 @@
Release Statistics for U-Boot v1.3.4 Release Statistics for U-Boot v1.3.4
==================================== ====================================
* Processed 511 csets from 86 developers * Processed 511 changesets from 86 developers
* 46 employers found * 46 employers found

View File

@@ -3,7 +3,7 @@
Release Statistics for U-Boot v2008.10 Release Statistics for U-Boot v2008.10
====================================== ======================================
* Processed 2498 csets from 174 developers * Processed 2498 changesets from 174 developers
* 85 employers found * 85 employers found

View File

@@ -3,7 +3,7 @@
Release Statistics for U-Boot v2009.01 Release Statistics for U-Boot v2009.01
====================================== ======================================
* Processed 464 csets from 69 developers * Processed 464 changesets from 69 developers
* 33 employers found * 33 employers found

View File

@@ -3,7 +3,7 @@
Release Statistics for U-Boot v2009.03 Release Statistics for U-Boot v2009.03
====================================== ======================================
* Processed 489 csets from 90 developers * Processed 489 changesets from 90 developers
* 46 employers found * 46 employers found

View File

@@ -3,7 +3,7 @@
Release Statistics for U-Boot v2009.06 Release Statistics for U-Boot v2009.06
====================================== ======================================
* Processed 433 csets from 74 developers * Processed 433 changesets from 74 developers
* 27 employers found * 27 employers found

View File

@@ -3,7 +3,7 @@
Release Statistics for U-Boot v2009.08 Release Statistics for U-Boot v2009.08
====================================== ======================================
* Processed 657 csets from 96 developers * Processed 657 changesets from 96 developers
* 35 employers found * 35 employers found

View File

@@ -3,7 +3,7 @@
Release Statistics for U-Boot v2009.11 Release Statistics for U-Boot v2009.11
====================================== ======================================
* Processed 531 csets from 90 developers * Processed 531 changesets from 90 developers
* 39 employers found * 39 employers found

View File

@@ -3,7 +3,7 @@
Release Statistics for U-Boot v2010.03 Release Statistics for U-Boot v2010.03
====================================== ======================================
* Processed 468 csets from 92 developers * Processed 468 changesets from 92 developers
* 29 employers found * 29 employers found

View File

@@ -3,7 +3,7 @@
Release Statistics for U-Boot v2010.06 Release Statistics for U-Boot v2010.06
====================================== ======================================
* Processed 402 csets from 100 developers * Processed 402 changesets from 100 developers
* 31 employers found * 31 employers found

View File

@@ -3,7 +3,7 @@
Release Statistics for U-Boot v2010.09 Release Statistics for U-Boot v2010.09
====================================== ======================================
* Processed 402 csets from 100 developers * Processed 402 changesets from 100 developers
* 31 employers found * 31 employers found

View File

@@ -3,7 +3,7 @@
Release Statistics for U-Boot v2010.12 Release Statistics for U-Boot v2010.12
====================================== ======================================
* Processed 777 csets from 111 developers * Processed 777 changesets from 111 developers
* 31 employers found * 31 employers found

View File

@@ -3,7 +3,7 @@
Release Statistics for U-Boot v2011.03 Release Statistics for U-Boot v2011.03
====================================== ======================================
* Processed 451 csets from 80 developers * Processed 451 changesets from 80 developers
* 25 employers found * 25 employers found

View File

@@ -3,7 +3,7 @@
Release Statistics for U-Boot v2011.06 Release Statistics for U-Boot v2011.06
====================================== ======================================
* Processed 636 csets from 134 developers * Processed 636 changesets from 134 developers
* 30 employers found * 30 employers found

View File

@@ -3,7 +3,7 @@
Release Statistics for U-Boot v2011.09 Release Statistics for U-Boot v2011.09
====================================== ======================================
* Processed 645 csets from 120 developers * Processed 645 changesets from 120 developers
* 30 employers found * 30 employers found

View File

@@ -3,7 +3,7 @@
Release Statistics for U-Boot v2011.12 Release Statistics for U-Boot v2011.12
====================================== ======================================
* Processed 1530 csets from 146 developers * Processed 1530 changesets from 146 developers
* 34 employers found * 34 employers found

View File

@@ -3,7 +3,7 @@
Release Statistics for U-Boot v2012.04 Release Statistics for U-Boot v2012.04
====================================== ======================================
* Processed 773 csets from 126 developers * Processed 773 changesets from 126 developers
* 36 employers found * 36 employers found

View File

@@ -3,7 +3,7 @@
Release Statistics for U-Boot v2012.07 Release Statistics for U-Boot v2012.07
====================================== ======================================
* Processed 775 csets from 114 developers * Processed 775 changesets from 114 developers
* 29 employers found * 29 employers found

View File

@@ -3,7 +3,7 @@
Release Statistics for U-Boot v2012.12 Release Statistics for U-Boot v2012.12
====================================== ======================================
* Processed 925 csets from 134 developers * Processed 925 changesets from 134 developers
* 31 employers found * 31 employers found

View File

@@ -3,7 +3,7 @@
Release Statistics for U-Boot v2013.07 Release Statistics for U-Boot v2013.07
====================================== ======================================
* Processed 948 csets from 162 developers * Processed 948 changesets from 162 developers
* 30 employers found * 30 employers found

View File

@@ -3,7 +3,7 @@
Release Statistics for U-Boot v2013.10 Release Statistics for U-Boot v2013.10
====================================== ======================================
* Processed 710 csets from 135 developers * Processed 710 changesets from 135 developers
* 28 employers found * 28 employers found

View File

@@ -3,7 +3,7 @@
Release Statistics for U-Boot v2014.01 Release Statistics for U-Boot v2014.01
====================================== ======================================
* Processed 980 csets from 154 developers * Processed 980 changesets from 154 developers
* 31 employers found * 31 employers found

View File

@@ -3,7 +3,7 @@
Release Statistics for U-Boot v2014.04 Release Statistics for U-Boot v2014.04
====================================== ======================================
* Processed 769 csets from 109 developers * Processed 769 changesets from 109 developers
* 26 employers found * 26 employers found

View File

@@ -3,7 +3,7 @@
Release Statistics for U-Boot v2014.07 Release Statistics for U-Boot v2014.07
====================================== ======================================
* Processed 1074 csets from 146 developers * Processed 1074 changesets from 146 developers
* 30 employers found * 30 employers found

View File

@@ -3,7 +3,7 @@
Release Statistics for U-Boot v2014.10 Release Statistics for U-Boot v2014.10
====================================== ======================================
* Processed 1111 csets from 145 developers * Processed 1111 changesets from 145 developers
* 24 employers found * 24 employers found

View File

@@ -3,7 +3,7 @@
Release Statistics for U-Boot v2015.01 Release Statistics for U-Boot v2015.01
====================================== ======================================
* Processed 1588 csets from 162 developers * Processed 1588 changesets from 162 developers
* 35 employers found * 35 employers found

View File

@@ -3,7 +3,7 @@
Release Statistics for U-Boot v2015.04 Release Statistics for U-Boot v2015.04
====================================== ======================================
* Processed 1585 csets from 169 developers * Processed 1585 changesets from 169 developers
* 36 employers found * 36 employers found

View File

@@ -3,7 +3,7 @@
Release Statistics for U-Boot v2015.07 Release Statistics for U-Boot v2015.07
====================================== ======================================
* Processed 1563 csets from 156 developers * Processed 1563 changesets from 156 developers
* 28 employers found * 28 employers found

View File

@@ -3,7 +3,7 @@
Release Statistics for U-Boot v2015.10 Release Statistics for U-Boot v2015.10
====================================== ======================================
* Processed 2069 csets from 182 developers * Processed 2069 changesets from 182 developers
* 32 employers found * 32 employers found

View File

@@ -3,7 +3,7 @@
Release Statistics for U-Boot v2016.01 Release Statistics for U-Boot v2016.01
====================================== ======================================
* Processed 1513 csets from 149 developers * Processed 1513 changesets from 149 developers
* 33 employers found * 33 employers found

View File

@@ -3,7 +3,7 @@
Release Statistics for U-Boot v2016.03 Release Statistics for U-Boot v2016.03
====================================== ======================================
* Processed 1375 csets from 126 developers * Processed 1375 changesets from 126 developers
* 26 employers found * 26 employers found

View File

@@ -3,7 +3,7 @@
Release Statistics for U-Boot v2016.05 Release Statistics for U-Boot v2016.05
====================================== ======================================
* Processed 1043 csets from 133 developers * Processed 1043 changesets from 133 developers
* 23 employers found * 23 employers found

View File

@@ -3,7 +3,7 @@
Release Statistics for U-Boot v2016.07 Release Statistics for U-Boot v2016.07
====================================== ======================================
* Processed 1078 csets from 133 developers * Processed 1078 changesets from 133 developers
* 27 employers found * 27 employers found

View File

@@ -3,7 +3,7 @@
Release Statistics for U-Boot v2016.09 Release Statistics for U-Boot v2016.09
====================================== ======================================
* Processed 987 csets from 129 developers * Processed 987 changesets from 129 developers
* 30 employers found * 30 employers found

View File

@@ -3,7 +3,7 @@
Release Statistics for U-Boot v2016.11 Release Statistics for U-Boot v2016.11
====================================== ======================================
* Processed 1031 csets from 114 developers * Processed 1031 changesets from 114 developers
* 26 employers found * 26 employers found

View File

@@ -3,7 +3,7 @@
Release Statistics for U-Boot v2017.01 Release Statistics for U-Boot v2017.01
====================================== ======================================
* Processed 883 csets from 137 developers * Processed 883 changesets from 137 developers
* 29 employers found * 29 employers found

View File

@@ -3,7 +3,7 @@
Release Statistics for U-Boot v2017.03 Release Statistics for U-Boot v2017.03
====================================== ======================================
* Processed 664 csets from 126 developers * Processed 664 changesets from 126 developers
* 29 employers found * 29 employers found

View File

@@ -3,7 +3,7 @@
Release Statistics for U-Boot v2017.05 Release Statistics for U-Boot v2017.05
====================================== ======================================
* Processed 915 csets from 139 developers * Processed 915 changesets from 139 developers
* 29 employers found * 29 employers found

Some files were not shown because too many files have changed in this diff Show More