Compare commits

...

52 Commits

Author SHA1 Message Date
Tom Rini
e37de002fa Prepare v2025.07
Signed-off-by: Tom Rini <trini@konsulko.com>
2025-07-07 09:48:28 -06:00
David Lechner
15182ce25d configs: legoev3: adjust to reduce binary size
Adjust legoev3_defconfig to reduce the binary output size.

As u-boot has bloated a bit over the years, the legoev3_defconfig can no
longer build something that fits in the 256kB size limit of the EV3.
This drops a few unused features, but the real difference-makers are
enabling thumb instructions and using link time optimization to reduce
the size.

This reduced u-boot.bin from 279,920 to 198,416 bytes on my local
machine with arm-none-eabi-gcc (15:13.2.rel1-2) 13.2.1 20231009.

HAS_BOARD_SIZE_LIMIT is also added to catch any future regressions.

Signed-off-by: David Lechner <david@lechnology.com>
2025-07-04 14:48:06 -06:00
Fabio Estevam
d1d53c252a mx6sabresd: Reduce U-Boot proper size to fix boot regression
The mx6sabresd U-Boot proper binary size has grown beyond the
CONFIG_BOARD_SIZE_LIMIT.

Reduce its size by removing the CONFIG_MULTI_DTB_FIT, BOOTM_PLAN9 and
BOOTM_RTEMS options.

According to doc/README.multi-dtb-fit:

"Usually the DTB is selected by the SPL and passed down to U-Boot. But some
platforms don't use the SPL. In this case MULTI_DTB_FIT can used to provide
U-Boot with a choice of DTBs"

mx6sabresd uses SPL, so MULTI_DTB_FIT can be safely dropped as the DTB
selection in SPL is done by board_fit_config_name_match().

Tested boot on the imx6dl and imx6q variants.

Signed-off-by: Fabio Estevam <festevam@gmail.com>
2025-07-04 10:55:42 -06:00
Tom Rini
7027b445cc Merge tag 'efi-2025-07-rc6' of https://source.denx.de/u-boot/custodians/u-boot-efi
Pull request efi-2025-07-rc6

Documentation:

* Describe usage of U-Boot environment variables in extlinux.conf

UEFI:

* Add missing variable initialization in
  efi_bootmgr_update_media_device_boot_option
2025-06-28 08:10:43 -06:00
Ilias Apalodimas
e80baf06af efi_loader: initialize 'total' variable
This variable might end up being uninitialized if we exit early.

Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
2025-06-28 13:03:19 +02:00
Fiona Klute
97d6a2e3fe doc: mention that extlinux.conf can use environment in "append"
This option is very useful for A/B boot setups with read-only
filesystems: Letting U-Boot fill in the rootfs (and possibly related
parameters) allows keeping all boot parameters except the actual slot
selection in the extlinux.conf file, where they can be updated easily.

Signed-off-by: Fiona Klute <fiona.klute@gmx.de>
Cc: Tom Rini <trini@konsulko.com>
2025-06-28 13:03:19 +02:00
Duje Mihanović
359e301292 mailmap: Update email for Duje Mihanović
I'm moving to a new address, so map my old one to it.

Also update the MAINTAINERS entries.

Signed-off-by: Duje Mihanović <duje@dujemihanovic.xyz>
2025-06-26 14:22:39 -06:00
Quentin Schulz
5f732b4bb0 pylibfdt: correct license information (further)
Since commit 51ec8db232 ("pylibfdt: correct license information"), the
License classifiers are gone so I assume setuptools now extract the
license from the license argument to setuptools.setup() function.

It's always been incorrect as far as I could tell, so let's fix this
with the appropriate info from the SPDX License identifier at the top of
the file. It was missing GPL-2.0-or-later and we disambiguate by using
BSD-2-Clause instead of simply BSD.

Fixes: 6b08fb5cc4 ("fdt: Move to setuptools")
Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
2025-06-26 12:10:58 -06:00
Tom Rini
5ac65a4851 Merge patch series "spl: fix error handling in spl_fit_get_image_name()"
Heinrich Schuchardt <heinrich.schuchardt@canonical.com> says:

spl_fit_get_image_name() used to lack a detection of malformed image name
properties in FIT images. The change in commit 3704b888a4 ("common/spl:
fix potential out of buffer access in spl_fit_get_image_name function")
tried to fix this  but led to function spl_fit_get_image_name() no longer
detecting if a property at index > 1 does not exist.

This patch is reverted.

An explicit check for malformed image name properties is introduced.

Link: https://lore.kernel.org/u-boot/38f5d078-3328-4bdb-9c95-4fb5fe89ddc2@gmx.de/T/#u
Link: https://lore.kernel.org/r/20250624153431.46986-1-heinrich.schuchardt@canonical.com
2025-06-26 11:58:21 -06:00
Heinrich Schuchardt
79f8f31d58 common/spl: guard against buffer overflow in spl_fit_get_image_name()
A malformed FIT image could have an image name property that is not NUL
terminated. Reject such images.

Reported-by: Mikhail Kshevetskiy <mikhail.kshevetskiy@iopsys.eu>
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Tested-by: E Shattow <e@freeshell.de>
2025-06-26 11:58:17 -06:00
Heinrich Schuchardt
6ef9a89c1d common/spl: Revert fix potential out of buffer access in spl_fit_get_image_name function
The change in commit 3704b888a4 ("common/spl: fix potential out of buffer
access in spl_fit_get_image_name function") led to function
spl_fit_get_image_name() no longer detecting if a property does not exist
at a non-zero buffer.

Link: https://lore.kernel.org/u-boot/38f5d078-3328-4bdb-9c95-4fb5fe89ddc2@gmx.de/T/#m59f3a23e675daa992c28d12236de71cae2ca2bb9
Fixes: 3704b888a4 ("common/spl: fix potential out of buffer access in spl_fit_get_image_name function")
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Tested-by: E Shattow <e@freeshell.de>
2025-06-26 11:58:17 -06:00
Akashdeep Kaur
757227777b log: Fix the compilation error for emergency log
The log level "emergency" cannot be used as that results in compilation
failure. Correct the macro name used to print at this level.

Fixes: 2496796587 ("log: provide missing macros")

Signed-off-by: Akashdeep Kaur <a-kaur@ti.com>
Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
2025-06-26 11:57:59 -06:00
Marius Dinu
661bafa182 cmd: add "config" command dependency on gzip
gunzip is used in cmd/config.c

Signed-off-by: Marius Dinu <m95d+git@psihoexpert.ro>
Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
2025-06-26 11:57:23 -06:00
Venkatesh Yadav Abbarapu
903eb12323 i2c: mux: Fix the crash when the i2c-arbitrator node is present
Observing the crash when we add the i2c-arbitrator node in the device
tree as per the DT bindings. The issue is with the child node of
i2c-arbitrator@72 i.e., i2c@f1950000->i2c-arbitrator@72->i2c-arb, as the
arbitrator uses the uclass of mux(UCLASS_I2C_MUX) and the mux uclass driver
checks for the "reg" property using the i2c_mux_child_post_bind() function,
if it won't find the "reg" property it will return -EINVAL which is leading
to the crash.
So, add the logic to check whether the  child node has the "reg" property,
if the "reg" property exists then read the "reg" and update the channel.

https://www.kernel.org/doc/Documentation/devicetree/bindings/i2c/i2c-arb.txt

Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
Reviewed-by: Heiko Schocher <hs@denx.de>
2025-06-24 08:18:08 -06:00
Alice Guo
f3ee5872bf tools: imx8image: Fix the value passed to dcd_skip of build_container()
The value passed to dcd_skip of build_container() should be obtained by
parsing .cfg file, and should not be fixed to false. For i.MX8QXP, dcd
data needs to be skipped, in which case dcd_skip should be true.

Fixes: 5f28a6599f01("tools: imx8image: add i.MX95 support")

Signed-off-by: Alice Guo <alice.guo@nxp.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
Reviewed-by: Heiko Schocher <hs@denx.de>
Reported-by: Enric Balletbo i Serra <eballetb@redhat.com>
Reviewed-by: Fabio Estevam <festevam@gmail.com>
2025-06-24 07:50:12 -06:00
Tom Rini
fb4a488eb9 Prepare v2025.07-rc5
Signed-off-by: Tom Rini <trini@konsulko.com>
2025-06-23 14:10:06 -06:00
Jerome Forissier
410d59095a arm: kirkwood: fix freeze on boot
Commit 6fe50e3950 ("arm: asm/system.h: mrc and mcr need .arm if
__thumb2__ is not set") is not a proper fix for the LTO link error
mentioned in its description. It causes 32-bit arm instructions to be
mixed with thumb instructions, which the Kirkwood SoCs do not support.
For example, board_init_r() is mostly generated in Thumb-1 mode as
expected since the build flags contain -mthumb -mthumb-interwork. The
MCR instruction corresponding to writefr_extra_feature_reg() is also
correcly emitted as a 32-bit ARM instruction (it cannot be encoded in
Thumb-1 anyways). The problem is, the compiler inlines the MCR without
generating the BX or BLX instruction which are needed to transition
between the ARM and the Thumb-1 states. From the objdump output:

006186a0 <board_init_r>:
board_init_r():
/home/jerome/work/u-boot/common/board_r.c:799
  6186a0:       b5f0            push    {r4, r5, r6, r7, lr}
  6186a2:       b0ab            sub     sp, #172        @ 0xac
get_gd():
/home/jerome/work/u-boot/./arch/arm/include/asm/global_data.h:127
  6186a4:       464a            mov     r2, r9
...
/home/jerome/work/u-boot/arch/arm/mach-kirkwood/cpu.c:242
  619aae:       9b15            ldr     r3, [sp, #84]   @ 0x54
writefr_extra_feature_reg():
/home/jerome/work/u-boot/./arch/arm/include/asm/arch/cpu.h:100
  619ab0:       ee2f3f11        mcr     15, 1, r3, cr15, cr1, {0}
                ^^^^^^^^
                32-bit ARM instruction

Further investigation is needed to understand how to fix the issue so
that the code size is minimal for all boards. In the mean time, this
fix disables LTO for the two problematic files (common/board_f.c and
common/board_r.c). This makes the Kirkwood-based boards bootable again.
The binary size is increased by 1048 bytes which is perfectly
acceptable.

Fixes: 6fe50e3950 ("arm: asm/system.h: mrc and mcr need .arm if __thumb2__ is not set")
Reported-by: Tony Dinh <mibodhi@gmail.com>
Tested-by: Tony Dinh <mibodhi@gmail.com>
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Signed-off-by: Tom Rini <trini@konsulko.com>
2025-06-23 14:04:40 -06:00
Tom Rini
1be8d14c85 Merge patch series "rsa and fit_check_sign build fix for v2025.07-rc"
Shiji Yang <yangshiji66@outlook.com> says:

This patchset fixes some compilation errors that I caught in version
v2025.07-rc4 and branch next. If they are acceptable, please apply
them to the master branch. If anyone has a better way to fix these
issues, it's fine to ignore this patchset.

Link: https://lore.kernel.org/r/OSBPR01MB16702ED24460D23A7ED63440BC7DA@OSBPR01MB1670.jpnprd01.prod.outlook.com
2025-06-22 10:16:43 -06:00
Shiji Yang
1989eb65c5 tools/fit_check_sign: make the module dependent on CONFIG_FIT_SIGNATURE
The function definition of fit_check_sign() is guarded by
"#ifdef CONFIG_FIT_SIGNATURE" in "tools/image-host.c". If we try
to build it without CONFIG_FIT_SIGNATURE, we will get an error:

/usr/bin/ld: tools/fit_check_sign.o: in function `main':
fit_check_sign.c:(.text.startup+0x165): undefined reference to `fit_check_sign'
collect2: error: ld returned 1 exit status

Fixes: 9c79c8fe70 ("tools/fit_check_sign: make key optional")
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
2025-06-22 10:16:39 -06:00
Shiji Yang
961e260cdc lib: rsa: fix compilation error without openssl
The symbol TOOLS_IMAGE_PRE_LOAD doesn't depend on TOOLS_LIBCRYPTO.
If we choose to build tools without openssl, rsa_verify_openssl()
will attempt to call the unavailable openssl library functions.

Fixes: 942c8c8e66 ("rsa: Add rsa_verify_openssl() to use openssl for host builds")
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
2025-06-22 10:16:39 -06:00
Baruch Siach
9d169ac973 net: designware: fix bus address dereference
Device bus address might not be valid for direct access when the bus
address and CPU address are not the same. Use dev_bus_to_phys() to
translate bus address back to CPU address.

Fixes: 3d98b8c504 ("net: designware: Invalidate RX buffer cache before freeing the DMA descriptor")
Signed-off-by: Baruch Siach <baruch@tkos.co.il>
Reviewed-by: Ramon Fried <rfried.dev@gmail.com>
2025-06-22 10:16:29 -06:00
Sam Protsenko
c08cecf2d7 board: samsung: e850-96: Load LDFW in board_late_init()
As stated in 5e847f7729 ("efi_loader: call efi_init_early() earlier"):

    efi_init_early() creates an event hook for block device probing.
    It has to be called before any block device is probed.

Indeed, efi_bl_init() registers EVT_DM_POST_PROBE event, which calls
efi_disk_probe() whenever any block device is probed. And to make that
hook work, the initialization of all block devices was put after
efi_init_early() in initcall_run_r():

    INITCALL(efi_init_early);
    INITCALL(initr_nand);
    INITCALL(initr_onenand);
    INITCALL(initr_mmc);

Because LDFW firmware is being read from MMC, attempt to load LDFW in
board_init() causes MMC driver to be probed. And because board_init() is
executed before efi_init_early(), the hook mentioned above won't work
for MMC devices anymore. So EFI disk objects won't be created, which in
turn makes the EFI subsystem non-functional, showing next symptoms:
  - 'efidebug dh' output is empty
  - attempt to add boot devices in 'eficonfig' shows this message:
    "No block device found!"
  - 'bootefi selftest $fdtcontroladdr' shows this warning:
    "Cannot persist EFI variables without system partition"
  - booting GRUB with 'bootefi' runs minimal GRUB shell which doesn't
    see any block devices as well, probably because EFI vars weren't
    passed

Load LDFW in board_late_init() instead, as it's called after
efi_init_early(). This fixes the described problem and makes it possible
to run EFI apps like GRUB correctly, add entries in 'eficonfig', and
makes 'efivar --list' command in Linux rootfs actually show EFI
variables.

The only user of LDFW at the moment is the TRNG driver, and it's probed
later, only when it's going to be used (e.g. on "rng" command). So it's
fine to load LDFW in board_late_init(). Now the corresponding call order
will look like this:

    efi_init_early()
    initr_mmc()
      mmc_probe()
        EVT_DM_POST_PROBE -> efi_disk_probe()
    board_late_init()
      load_ldfw() -> fs_read(), blk_dread()
    exynos_trng_probe()

Fixes: ccfd8de541 ("board: samsung: e850-96: Report LDFW loading failures")
Fixes: f04e58cc97 ("board: samsung: e850-96: Load LDFW firmware on board init")
Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
2025-06-22 10:16:23 -06:00
Tom Rini
8420cafc00 Merge tag 'doc-2025-07-rc5' of https://source.denx.de/u-boot/custodians/u-boot-efi
Pull request doc-2025-07-rc5

* in wget documentation remove erroneous note about CAs
2025-06-21 12:09:40 -06:00
Jerome Forissier
820bbf1d46 doc: cmd: wget: remove erroneous note
The note about U-Boot not being able to verify server certificates is
false now that WGET_CACERT and WGET_BUILTIN_CACERT have been added.
Remove it.

Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
2025-06-21 19:03:42 +02:00
Tony Dinh
418acf8c78 arm: kirkwood: Maintainer for RaidSonic ICY BOX ib62x0 board
Add me as  maintainer for the RaidSonic ICY BOX ib62x0.

Signed-off-by: Tony Dinh <mibodhi@gmail.com>
2025-06-21 10:55:48 -06:00
Tom Rini
721eecd9cb Merge patch series "common/spl fixes"
This series from Mikhail Kshevetskiy <mikhail.kshevetskiy@iopsys.eu>
fixes some regressions related to handling of FIT images with broken
contents that was introduced in this merge window.

Link: https://lore.kernel.org/r/20250610095632.1085431-1-mikhail.kshevetskiy@iopsys.eu
2025-06-19 11:01:52 -06:00
Mikhail Kshevetskiy
8bb9c275c4 common/spl: improve error handling in spl_fit
This fix a possible NULL pointer dereference.

There is also a risk of memory leaking within the same portion of code.
The leak will happen if loaded image is bad or damaged. In this case
u-boot-spl will try booting from the other available media. Unfortunately
resources allocated for previous boot media will NOT be freed.

We can't fix that issue as the memory allocation mechanism used here
is unknown. It can be different kinds of malloc() or something else.

To somewhat reduce memory consumption, one can try to reuse previously
allocated memory as it's done in board_spl_fit_buffer_addr() from
test/image/spl_load.c.

The corresponding comment was put to the code as well.

Signed-off-by: Mikhail Kshevetskiy <mikhail.kshevetskiy@iopsys.eu>
Reviewed-by: Anshul Dalal <anshuld@ti.com>
2025-06-19 11:01:51 -06:00
Mikhail Kshevetskiy
3eb43c54fa common/spl: handle properly images with bad checksum
load_simple_fit() returns -EPERM for the images with broken signatures.
Unfortunately this may conflict with image loaging selection on the base
of boot phase. See commit 873112db9c
("spl: Support selecting images based on phase in simple FIT").

Thus loading of

	configurations {
		uboot {
			description = "u-boot";
			firmware = "atf";
			loadables = "atf", "tee", "uboot";
		};
	};

with damaged "tee" image may finish without errors. This may results in
board bricking.

This patch fixes commit 873112db9c
("spl: Support selecting images based on phase in simple FIT")
by replacing EPERM with EBADSLT places where it should be done.

Signed-off-by: Mikhail Kshevetskiy <mikhail.kshevetskiy@iopsys.eu>
2025-06-19 11:01:51 -06:00
Mikhail Kshevetskiy
3704b888a4 common/spl: fix potential out of buffer access in spl_fit_get_image_name function
The current code have two issues:
1) ineffective NULL pointer check

	str = strchr(str, '\0') + 1
	if (!str || ...

   The str here will never be NULL (because we add 1 to result of strchr())

2) strchr() may go out of the buffer for the special forms of name variable.
   It's better use memchr() function here.

   According to the code the property is a sequence of C-string like
   shown below:

     'h', 'e', 'l', 'l', 'o', '\0', 'w', 'o', 'r', 'l', 'd', '\0', '!', '\0'

   index is the string number we are interested, so

     index = 0   =>  "hello",
     index = 1   =>  "world",
     index = 2   =>  "!"

   The issue will arrise if last string for some reason have no terminating
   '\0' character. This can happen for damaged or specially crafted dtb.

Signed-off-by: Mikhail Kshevetskiy <mikhail.kshevetskiy@iopsys.eu>
Reviewed-by: Tom Rini <trini@konsulko.com>
2025-06-19 11:01:51 -06:00
Mikhail Kshevetskiy
592b42aead arm/airoha: reset_cpu() does not take any params
According to include/sysreset.h the reset_cpu() function does not take any args

Signed-off-by: Mikhail Kshevetskiy <mikhail.kshevetskiy@iopsys.eu>
Reviewed-by: Tom Rini <trini@konsulko.com>
2025-06-19 10:59:33 -06:00
Tom Rini
a0f6bcd647 Merge branch 'master' of https://source.denx.de/u-boot/custodians/u-boot-sh
- Move early SPL stack on R-Car V4H boards
2025-06-19 08:12:20 -06:00
Marek Vasut
668b2d791d arm64: renesas: Move early SPL stack into System RAM SRAM on R-Car V4H boards
The CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0xeb300000 does not make it into
board .config on either R-Car V4H White Hawk or Sparrow Hawk, remove
this configuration option. The early SPL stack is however pointing
into the RT-VRAM and may corrupt payload loaded into the RT-VRAM by
the BootROM. Set the early SPL stack at fixed location at the end of
System RAM instead, where it cannot interfere with the payload loaded
into RT-VRAM.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2025-06-18 17:18:43 +02:00
Tom Rini
a239cdc0bd Merge patch series "Restore support of short name for type UUID parameter"
Patrick Delaunay <patrick.delaunay@foss.st.com> says:

Fix and add documentation/tests for selection by string for known
partition type GUID introduced by bcb41dcaef ("uuid: add
selection by string for known partition type GUID"):

- split list_guid for short name (used also for partiton
  description with type parameter) and full name to display
  information

- as the function are uuid_str_to_bin() / uuid_guid_get_str()
  are no more under CONFIG_PARTITION_TYPE_GUID,  since commit
  31ce367cd1 ("lib/uuid.c: change prototype of uuid_guid_get_str()")
  and commit c1528f324c ("lib: compile uuid_guid_get_str if
  CONFIG_LIB_UUID=y") move the content of array under EFI_PARTITION
  and linker will remove it is not used it (in SPL)

- Add and fix documentation for gpt command

- Add test test_gpt_write_part_type to test "type=" parameters

This first patch solves an issue for the "system" shortcut for ESP,
removed by commit d54V3 version solve issue for "ESP" support when
CONFIG_CMD_EFIDEBUG and CONFIG_EFI is not activated
for example for test with qemu-arm-sbsa defconfige1004b8b1 ("lib/uuid.c: use unique name
for PARTITION_SYSTEM_GUID") but used in 2 location (at least):

1- board/samsung/e850-96/e850-96.env:10:

partitions=name=esp,start=512K,size=128M,bootable,type=system;
partitions+=name=rootfs,size=-,bootable,type=linux

2- arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog.c:1151

			case PART_ESP:
				/* EFI System Partition */
			459219	type_str = "system"
....
			offset += snprintf(buf + offset,
					   buflen - offset,
					   ",type=%s", type_str);

CI: https://source.denx.de/u-boot/custodians/u-boot-stm/-/pipelines/26699

Link: https://lore.kernel.org/r/20250616112749.17311-1-patrick.delaunay@foss.st.com
2025-06-17 17:21:42 -06:00
Patrick Delaunay
7a598e633a test/py: tests: gpt: add test_gpt_write_part_type
Add sandbox test on gpt command with partition type for known type.

Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
2025-06-17 17:21:36 -06:00
Patrick Delaunay
a3a5179b1c doc: cmd: gpt: add information on type partition
Add information on type partition, copied from README.gpt.

I also correct issue for gpt_parts variable and add example of
"gpt read" usage.

Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
2025-06-17 17:21:36 -06:00
Patrick Delaunay
73d5a68fec lib/uuid.c: restore support of system partition type for ESP
Add support of optional shortname for parameter 'type' of gpt
command (limited by UUID_STR_LEN) and a separate 'description'
for UID format "%pUs" used in 'part list' output.

When 'description' is absent in list_guid[], the optional
shortname is used as fallback.

Many partition types for EFI have no shortcut yet, but only
description as they are only used to display information.

This patch also restores the "system" as short name for EFI
System Partition (ESP).

Fixes: d54e1004b8 ("lib/uuid.c: use unique name for PARTITION_SYSTEM_GUID")
Tested-by: Patrice Chotard <patrice.chotard@foss.st.com>
Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
2025-06-17 17:21:35 -06:00
Tom Rini
17012e3068 Merge tag 'u-boot-dfu-20250616' of https://source.denx.de/u-boot/custodians/u-boot-dfu
u-boot-dfu-20250616

CI: https://source.denx.de/u-boot/custodians/u-boot-dfu/-/pipelines/26696

Usb gadget:
- Fix ti_musb driver in gadget mode (with DM_USB_GADGET)

DFU:
- mmc/scsi backends when using 10 or more partitions
2025-06-16 07:53:11 -06:00
Kory Maincent
e6eca9ea64 usb: gadget: musb: Fix duplicate ops assignment in ti_musb_peripheral
Remove duplicate .ops assignment that was overriding the correct
ti_musb_gadget_ops with musb_usb_ops (host ops) in the ti_musb_peripheral
driver. This was causing U-Boot crashes when trying to call the
handle_interrupts operation since the wrong ops structure was being used.

Fixes: 7d98dbcc3d ("usb: musb-new: Add support for DM_USB")
Fixes: 281eaf1ed8 ("usb: gadget: musb: Convert interrupt handling to usb_gadget_generic_ops")
Signed-off-by: Kory Maincent <kory.maincent@bootlin.com>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@kernel.org>
Link: https://lore.kernel.org/r/20250611171031.840277-1-kory.maincent@bootlin.com
Signed-off-by: Mattijs Korpershoek <mkorpershoek@kernel.org>
2025-06-16 09:00:55 +02:00
Ivan Pang
aa2efc584a dfu: fix dev_part_str for file operations
The third_arg for a dfu alt is read as an integer and is overloaded for
different supported backends. For ext4 and fat, this third_arg
represents the partition and forms the dev part string, which should
have its partition in hex. This commit fixes dfu ext4/fat usage for
devices with ten or more partitions.

Signed-off-by: Ivan Pang <ipman@amazon.com>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@kernel.org>
Reviewed-by: Lukasz Majewski <lukma@denx.de>
Link: https://lore.kernel.org/r/20250611050127.38011-1-ipman@amazon.com
Signed-off-by: Mattijs Korpershoek <mkorpershoek@kernel.org>
2025-06-16 08:57:57 +02:00
Tom Rini
c5afa1fef4 Merge tag 'rpi-2025.07-rc4' of https://source.denx.de/u-boot/custodians/u-boot-raspberrypi
Updates for RPi for 2025.07-rc5:

- configs: rpi: set NR_DRAM_BANKS to 8 to accommodate RAM on 16GB models
2025-06-15 10:31:03 -06:00
Jonas Karlman
f8cb3fde93 arm: dts: rockchip: Fix eMMC write on RK3528
Writing to eMMC on RK3528 is affected with the same or a similar issue
as on RK3588, where eMMC must init to HS200 at least once to fully work.

Trying to write u-boot-rockchip.bin to eMMC fails with:

  => mmc write $fileaddr 40 5000
  MMC write: dev # 0, block # 64, count 20480 ... mmc write failed
  0 blocks written: ERROR

For U-Boot to enable HS200 mode the mmc-hs200-1_8v prop must be defined
in the device tree. Linux does not seem to be affected and is able to
detect and use HS200 without this prop.

Enable use of HS200 and fix eMMC write on RK3528 by adding the missing
mmc-hs200-1_8v prop for affected boards:

  => mmc write $fileaddr 40 5000
  MMC write: dev # 0, block # 64, count 20480 ... 20480 blocks written: OK

Fixes: b112a44531 ("board: rockchip: Add minimal generic RK3528 board")
Fixes: ccbddf6453 ("board: rockchip: Add Radxa E20C")
Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
2025-06-15 10:30:41 -06:00
Jan Čermák
0cd85170cf configs: rpi: set NR_DRAM_BANKS to 8 to accommodate RAM on 16GB models
Raspberry Pi 5 can now have up to 16 GiB of RAM where the memory spans 8
DRAM banks in total. Increase the config value to 8 to initialize the
whole RAM. Without this change, kernel only sees 8 GiB of RAM on the 16
GiB CM5 as reported in [1].

[1] https://github.com/home-assistant/operating-system/issues/3989

Signed-off-by: Jan Čermák <sairon@sairon.cz>
Reviewed-by: Matthias Brugger <mbrugger@suse.com>
2025-06-15 12:54:34 +01:00
Raymond Mao
3507e6208f sandbox: solve undefined reference to pthread_kill symbol
This patch is to solve the sandbox building error:
$ make O=build-sandbox -s sandbox_defconfig
$ make O=build-sandbox -s -j2
/usr/bin/ld: /tmp/u-boot.27rzOu.ltrans58.ltrans.o: undefined reference to symbol 'pthread_kill@@GLIBC_2.2.5'
/usr/bin/ld: /lib/x86_64-linux-gnu/libpthread.so.0: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
[...]

Fixes: b989f9ed9f ("test: lib: add initjmp() test")
Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org>
Tested-by: Patrice Chotard <patrice.chotard@foss.st.com>
2025-06-13 16:57:02 -06:00
Simon Glass
2ab10ed239 test/py: Correct handling of exceptions
If an Unexpected exception is thrown in a test, an undefined variable
error is reported. Fix this.

Signed-off-by: Simon Glass <sjg@chromium.org>
Fixes: 85d7dae377 ("test: Detect dead connections")
Reviewed-by: Mattijs Korpershoek <mkorpershoek@kernel.org>
2025-06-12 11:32:29 -06:00
Simon Glass
ef82e45c2e test/py: Use the correct fixture name in exception handler
If a BootFail exception is thrown in a test, it is not handled
correctly. Use the correct fixture variable 'ubman_fix' to resolve this.

Signed-off-by: Simon Glass <sjg@chromium.org>
Fixes: d9ed4b75ad ("test/py: Drop u_boot_ prefix on test files")
Reviewed-by: Mattijs Korpershoek <mkorpershoek@kernel.org>
2025-06-12 11:32:29 -06:00
Hiago De Franco
c36ab3256c toradex-smarc-imx8mp: add SPL_STACK size and SPL_HAVE_INIT_STACK
When the toradex-smarc-imx8mp_defconfig file was first added, SPL_STACK
was set to 0x960000, but SPL_HAVE_INIT_STACK wasn't enabled.

This led to SPL_STACK being correctly dropped in commit 25fefa05d7
("configs: Resync with savedefconfig"), since SPL_HAVE_INIT_STACK was
missing, which ended up making the board not boot.

Fix this by adding SPL_STACK back and making sure SPL_HAVE_INIT_STACK is
enabled.

Fixes: dde53eae88 ("board: toradex: add Toradex SMARC iMX8MP")
Signed-off-by: Hiago De Franco <hiago.franco@toradex.com>
Acked-by: Francesco Dolcini <francesco.dolcini@toradex.com>
2025-06-12 08:44:30 -06:00
Hugo Villeneuve
461f357fa9 board: var-som-mx8mn: Fix alloc space exhausted in SPL
After enabling some options to support EEPROM read in SPL
(CONFIG_SPL_I2C_EEPROM), the following error appears:

    alloc space exhausted

Increasing SYS_MALLOC_F_LEN from 8kB to 64kB fixes the problem.

But instead of manually increasing the value, adopt method used in
commit ce3f23404c ("board: bsh: imx8mn_bsh_smm_s2/s2pro: enlarge
CONFIG_SPL_SYS_MALLOC_F_LEN"):

Dropping CONFIG_SPL_SYS_MALLOC_F_LEN option allows it to be set to the
default value of CONFIG_SYS_MALLOC_F_LEN, which is set by default to 64kB
(0x10000) on i.MX8M platforms.

Suggested-by: Fabio Estevam <festevam@gmail.com>
Signed-off-by: Hugo Villeneuve <hvilleneuve@dimonoff.com>
Reviewed-by: Fabio Estevam <festevam@gmail.com>
2025-06-12 08:43:20 -06:00
Peng Fan
02a2cbfee8 imx91: Drop OF_UPSTREAM
i.MX91 device tree still not landed in linux kernel, so drop OF_UPSTREAM
and move the device tree files to arch/arm/dts

Signed-off-by: Peng Fan <peng.fan@nxp.com>
Reviewed-by: Sumit Garg <sumit.garg@oss.qualcomm.com>
2025-06-12 08:19:57 -06:00
Tom Rini
b62e422d6e mmc: Kconfig: Really correct dependencies SDHCI ADMA options
When doing the investigation for commit 53bb8fdea1 ("mmc: Kconfig:
Correct dependencies SDHCI ADMA options") I missed the implications of
MMC_SDHCI_ADMA_HELPERS. The problem is that FSL_ESDHC via the
FSL_ESDHC_SUPPORT_ADMA2 option will also enable these helper functions.
This in turn means the correct dependency here is
MMC_SDHCI_ADMA_HELPERS and not *MMC_SDHCI_ADMA.

Reported-by: Heiko Thiery <heiko.thiery@gmail.com>
Signed-off-by: Tom Rini <trini@konsulko.com>
2025-06-11 18:29:25 -06:00
Tom Rini
730201c6f5 Merge branch 'master' of https://source.denx.de/u-boot/custodians/u-boot-sh
One more board to support, this time Retronix Sparrow Hawk based on
Renesas R-Car V4H SoC . This is board support, so master branch should
be fine. The DT in dts/upstream/ is a backport from Linux, and will
disappear on next DT sync.
2025-06-10 16:32:17 -06:00
Marek Vasut
55c4a6db54 arm64: dts: renesas: r8a779g3: Add Retronix R-Car V4H Sparrow Hawk board support
Add Retronix R-Car V4H Sparrow Hawk board based on Renesas R-Car V4H ES3.0
(R8A779G3) SoC. This is a single-board computer with single gigabit ethernet,
DSI-to-eDP bridge, DSI and two CSI2 interfaces, audio codec, two CANFD ports,
micro SD card slot, USB PD supply, USB 3.0 ports, M.2 Key-M slot for NVMe SSD,
debug UART and JTAG.

DT is imported from Linux next commit:
a719915e76f2 ("arm64: dts: renesas: r8a779g3: Add Retronix R-Car V4H Sparrow Hawk board support")

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2025-06-10 20:50:50 +02:00
Marek Vasut
91729f824b arm64: renesas: Introduce renesas_dram_init_banksize()
Introduce weak renesas_dram_init_banksize() function which is meant
to be used to adjust DRAM bank sizes after the common Renesas board
DRAM bank handling code finished. This is mainly meant for boards
which ship with multiple DRAM size options, which can be detected
at runtime. This allows such boards to ship with single U-Boot
binary on all boards.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2025-06-10 20:50:50 +02:00
61 changed files with 2324 additions and 162 deletions

View File

@@ -39,6 +39,7 @@ Casey Connolly <casey.connolly@linaro.org> <caleb.connolly@linaro.org>
Christian Kohn <chris.kohn@amd.com> <christian.kohn@xilinx.com>
Christopher Obbard <christopher.obbard@linaro.org> <chris.obbard@collabora.com>
Dirk Behme <dirk.behme@googlemail.com>
<duje@dujemihanovic.xyz> <duje.mihanovic@skole.hr>
Durga Challa <durga.challa@amd.com> <vnsl.durga.challa@xilinx.com>
Eugen Hristev <eugen.hristev@linaro.org> <eugen.hristev@microchip.com>
Eugen Hristev <eugen.hristev@linaro.org> <eugen.hristev@collabora.com>

View File

@@ -391,7 +391,7 @@ F: drivers/pci/pci-aardvark.c
F: drivers/pci/pci_mvebu.c
ARM MARVELL PXA1908
M: Duje Mihanović <duje.mihanovic@skole.hr>
M: Duje Mihanović <duje@dujemihanovic.xyz>
S: Maintained
T: git git://git.dujemihanovic.xyz/u-boot.git
F: arch/arm/dts/pxa1908*

View File

@@ -3,7 +3,7 @@
VERSION = 2025
PATCHLEVEL = 07
SUBLEVEL =
EXTRAVERSION = -rc4
EXTRAVERSION =
NAME =
# *DOCUMENTATION*

View File

@@ -7,7 +7,6 @@
#include "imx93.dtsi"
/delete-node/ &A55_1;
/delete-node/ &cm33;
/delete-node/ &mlmix;
/delete-node/ &mu1;
/delete-node/ &mu2;
@@ -41,18 +40,6 @@
assigned-clock-rates = <100000000>, <250000000>;
};
&i3c1 {
clocks = <&clk IMX93_CLK_BUS_AON>,
<&clk IMX93_CLK_I3C1_GATE>,
<&clk IMX93_CLK_DUMMY>;
};
&i3c2 {
clocks = <&clk IMX93_CLK_BUS_WAKEUP>,
<&clk IMX93_CLK_I3C2_GATE>,
<&clk IMX93_CLK_DUMMY>;
};
&iomuxc {
compatible = "fsl,imx91-iomuxc";
};
@@ -61,10 +48,6 @@
status = "disabled";
};
&{/soc@0/ddr-pmu@4e300dc0} {
compatible = "fsl,imx91-ddr-pmu", "fsl,imx93-ddr-pmu";
};
&{/thermal-zones/cpu-thermal/cooling-maps/map0} {
cooling-device = <&A55_0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
};

View File

@@ -0,0 +1,50 @@
// SPDX-License-Identifier: GPL-2.0
/*
* Device Tree Source extras for U-Boot for the R-Car V4H Sparrow Hawk board
*
* Copyright (C) 2025 Marek Vasut <marek.vasut+renesas@mailbox.org>
*/
#include "r8a779g0-u-boot.dtsi"
/* Page 31 / FAN */
&gpio1 {
pwm-fan-hog {
gpio-hog;
gpios = <15 GPIO_ACTIVE_HIGH>;
output-high;
line-name = "PWM-FAN";
};
};
/* Page 29 / CSI_IF_CN / CAM_CN0 */
&i2c1 {
status = "okay";
};
/* Page 29 / CSI_IF_CN / CAM_CN1 */
&i2c2 {
status = "okay";
};
/* Page 31 / IO_CN */
&i2c3 {
status = "okay";
};
/* Page 31 / IO_CN */
&i2c4 {
status = "okay";
};
/* Page 18 / POWER_CORE and Page 19 / POWER_PMIC */
&i2c5 {
status = "okay";
};
&rpc {
flash@0 {
spi-tx-bus-width = <1>;
spi-rx-bus-width = <1>;
};
};

View File

@@ -18,6 +18,7 @@
&sdhci {
bus-width = <8>;
cap-mmc-highspeed;
mmc-hs200-1_8v;
no-sd;
no-sdio;
non-removable;

View File

@@ -2,6 +2,10 @@
#include "rk3528-u-boot.dtsi"
&sdhci {
mmc-hs200-1_8v;
};
&sdmmc {
bus-width = <4>;
cap-mmc-highspeed;

View File

@@ -2,6 +2,7 @@
#include <fdtdec.h>
#include <init.h>
#include <sysreset.h>
#include <asm/armv8/mmu.h>
#include <asm/system.h>
@@ -21,7 +22,7 @@ int dram_init_banksize(void)
return fdtdec_setup_memory_banksize();
}
void reset_cpu(ulong addr)
void reset_cpu(void)
{
psci_system_reset();
}

View File

@@ -43,7 +43,6 @@ config TARGET_IMX91_11X11_EVK
bool "imx91_11x11_evk"
select OF_BOARD_FIXUP
select IMX91
imply OF_UPSTREAM
imply BOOTSTD_FULL
imply BOOTSTD_BOOTCOMMAND

View File

@@ -66,6 +66,12 @@ config TARGET_WHITEHAWK
help
Support for Renesas R-Car Gen4 White Hawk platform
config TARGET_SPARROWHAWK
bool "Sparrow Hawk board"
imply R8A779G0
help
Support for Renesas R-Car Gen4 Sparrow Hawk platform
config TARGET_GRAYHAWK
bool "Gray Hawk board"
imply R8A779H0
@@ -78,6 +84,7 @@ source "board/renesas/falcon/Kconfig"
source "board/renesas/spider/Kconfig"
source "board/renesas/s4sk/Kconfig"
source "board/renesas/whitehawk/Kconfig"
source "board/renesas/sparrowhawk/Kconfig"
source "board/renesas/grayhawk/Kconfig"
endif

View File

@@ -3,7 +3,7 @@
PLATFORM_CPPFLAGS += -D__SANDBOX__ -U_FORTIFY_SOURCE
PLATFORM_CPPFLAGS += -fPIC -ffunction-sections -fdata-sections
PLATFORM_LIBS += -lrt
PLATFORM_LIBS += -lrt -lpthread
SDL_CONFIG ?= sdl2-config
# Define this to avoid linking with SDL, which requires SDL libraries

View File

@@ -1,5 +1,5 @@
IB62X0 BOARD
M: Luka Perkov <luka@openwrt.org>
M: Tony Dinh <mibodhi@gmail.com>
S: Maintained
F: board/raidsonic/ib62x0/
F: include/configs/ib62x0.h

View File

@@ -36,6 +36,8 @@ int dram_init(void)
return ret;
}
__weak void renesas_dram_init_banksize(void) { }
int dram_init_banksize(void)
{
int bank;
@@ -58,6 +60,8 @@ int dram_init_banksize(void)
break;
}
renesas_dram_init_banksize();
return 0;
}

View File

@@ -0,0 +1,15 @@
if TARGET_SPARROWHAWK
config SYS_SOC
default "renesas"
config SYS_BOARD
default "sparrowhawk"
config SYS_VENDOR
default "renesas"
config SYS_CONFIG_NAME
default "sparrowhawk"
endif

View File

@@ -0,0 +1,7 @@
SPARROWHAWK BOARD
M: Marek Vasut <marek.vasut+renesas@mailbox.org>
S: Maintained
F: arch/arm/dts/r8a779g3*
F: board/renesas/sparrowhawk/
F: configs/r8a779g3_sparrowhawk_defconfig
F: include/configs/sparrowhawk.h

View File

@@ -0,0 +1,9 @@
#
# board/renesas/sparrowhawk/Makefile
#
# Copyright (C) 2025 Marek Vasut <marek.vasut+renesas@mailbox.org>
#
# SPDX-License-Identifier: GPL-2.0+
#
obj-y += sparrowhawk.o

View File

@@ -0,0 +1,143 @@
// SPDX-License-Identifier: GPL-2.0+
/*
* Copyright (C) 2025 Marek Vasut <marek.vasut+renesas@mailbox.org>
*/
#include <asm/io.h>
#include <compiler.h>
#include <dbsc5.h>
#include <spl.h>
#if defined(CONFIG_XPL_BUILD)
static const struct renesas_dbsc5_board_config
renesas_v4h_sparrowhawk_8g_6400_dbsc5_board_config = {
/* RENESAS V4H Sparrow Hawk (64Gbit 1rank) */
.bdcfg_phyvalid = 0xF,
.bdcfg_vref_r = 0x0,
.bdcfg_vref_w = 0x0,
.bdcfg_vref_ca = 0x0,
.bdcfg_rfm_chk = true,
.ch = {
[0] = {
.bdcfg_ddr_density = { 0x06, 0xFF },
.bdcfg_ca_swap = 0x04506132,
.bdcfg_dqs_swap = 0x01,
.bdcfg_dq_swap = { 0x26157084, 0x12306854 },
.bdcfg_dm_swap = { 0x03, 0x07 },
.bdcfg_cs_swap = 0x10
},
[1] = {
.bdcfg_ddr_density = { 0x06, 0xFF },
.bdcfg_ca_swap = 0x02431065,
.bdcfg_dqs_swap = 0x10,
.bdcfg_dq_swap = { 0x56782314, 0x70423856 },
.bdcfg_dm_swap = { 0x00, 0x01 },
.bdcfg_cs_swap = 0x10
},
[2] = {
.bdcfg_ddr_density = { 0x06, 0xFF },
.bdcfg_ca_swap = 0x02150643,
.bdcfg_dqs_swap = 0x10,
.bdcfg_dq_swap = { 0x58264031, 0x40587236 },
.bdcfg_dm_swap = { 0x07, 0x01 },
.bdcfg_cs_swap = 0x10
},
[3] = {
.bdcfg_ddr_density = { 0x06, 0xFF },
.bdcfg_ca_swap = 0x01546230,
.bdcfg_dqs_swap = 0x01,
.bdcfg_dq_swap = { 0x45761328, 0x68023745 },
.bdcfg_dm_swap = { 0x00, 0x01 },
.bdcfg_cs_swap = 0x10
}
}
};
static const struct renesas_dbsc5_board_config
renesas_v4h_sparrowhawk_16g_5500_dbsc5_board_config = {
/* RENESAS V4H Sparrow Hawk (64Gbit 2rank) */
.bdcfg_phyvalid = 0xF,
.bdcfg_vref_r = 0x0,
.bdcfg_vref_w = 0x0,
.bdcfg_vref_ca = 0x0,
.bdcfg_rfm_chk = true,
.ch = {
[0] = {
.bdcfg_ddr_density = { 0x06, 0x06 },
.bdcfg_ca_swap = 0x04506132,
.bdcfg_dqs_swap = 0x01,
.bdcfg_dq_swap = { 0x26157084, 0x12306854 },
.bdcfg_dm_swap = { 0x03, 0x07 },
.bdcfg_cs_swap = 0x10
},
[1] = {
.bdcfg_ddr_density = { 0x06, 0x06 },
.bdcfg_ca_swap = 0x02431065,
.bdcfg_dqs_swap = 0x10,
.bdcfg_dq_swap = { 0x56782314, 0x70423856 },
.bdcfg_dm_swap = { 0x00, 0x01 },
.bdcfg_cs_swap = 0x10
},
[2] = {
.bdcfg_ddr_density = { 0x06, 0x06 },
.bdcfg_ca_swap = 0x02150643,
.bdcfg_dqs_swap = 0x10,
.bdcfg_dq_swap = { 0x58264031, 0x40587236 },
.bdcfg_dm_swap = { 0x07, 0x01 },
.bdcfg_cs_swap = 0x10
},
[3] = {
.bdcfg_ddr_density = { 0x06, 0x06 },
.bdcfg_ca_swap = 0x01546230,
.bdcfg_dqs_swap = 0x01,
.bdcfg_dq_swap = { 0x45761328, 0x68023745 },
.bdcfg_dm_swap = { 0x00, 0x01 },
.bdcfg_cs_swap = 0x10
}
}
};
const struct renesas_dbsc5_board_config *
dbsc5_get_board_data(struct udevice *dev, const u32 modemr0)
{
/*
* MD[19] is used to discern between 5500 Mbps and 6400 Mbps operation.
*
* Boards with 1 rank of DRAM can operate at 6400 Mbps, those are the
* Sparrow Hawk boards with 8 GiB of DRAM. Boards with 2 ranks of DRAM
* are limited to 5500 Mbps operation, those are the boards with 16 GiB
* of DRAM.
*
* Use MD[19] setting to discern 8 GiB and 16 GiB DRAM Sparrow Hawk
* board variants from each other automatically.
*/
if (modemr0 & BIT(19))
return &renesas_v4h_sparrowhawk_16g_5500_dbsc5_board_config;
else
return &renesas_v4h_sparrowhawk_8g_6400_dbsc5_board_config;
}
#endif
#define RST_MODEMR0 0xe6160000
DECLARE_GLOBAL_DATA_PTR;
void renesas_dram_init_banksize(void)
{
const u32 modemr0 = readl(RST_MODEMR0);
int bank;
/* 8 GiB device, do nothing. */
if (!(modemr0 & BIT(19)))
return;
/* 16 GiB device, adjust memory map. */
for (bank = 0; bank < CONFIG_NR_DRAM_BANKS; bank++) {
if (gd->bd->bi_dram[bank].start == 0x480000000ULL)
gd->bd->bi_dram[bank].size = 0x180000000ULL;
else if (gd->bd->bi_dram[bank].start == 0x600000000ULL)
gd->bd->bi_dram[bank].size = 0x200000000ULL;
}
}

View File

@@ -1,5 +1,5 @@
Samsung Galaxy Core Prime VE LTE support
M: Duje Mihanović <duje.mihanovic@skole.hr>
M: Duje Mihanović <duje@dujemihanovic.xyz>
S: Maintained
T: git git://git.dujemihanovic.xyz/u-boot.git
F: board/samsung/coreprimevelte/

View File

@@ -18,9 +18,18 @@ int dram_init_banksize(void)
}
int board_init(void)
{
return 0;
}
int board_late_init(void)
{
int err;
/*
* Do this in board_late_init() to make sure MMC is not probed before
* efi_init_early().
*/
err = load_ldfw();
if (err)
printf("ERROR: LDFW loading failed (%d)\n", err);

View File

@@ -153,6 +153,7 @@ config CMD_CONFIG
bool "config"
default SANDBOX
select BUILD_BIN2C
select GZIP
help
Print ".config" contents.

View File

@@ -19,6 +19,10 @@ obj-y += version.o
# # boards
obj-y += board_f.o
obj-y += board_r.o
ifdef CONFIG_$(PHASE_)SYS_THUMB_BUILD
CFLAGS_REMOVE_board_f.o := $(LTO_CFLAGS)
CFLAGS_REMOVE_board_r.o := $(LTO_CFLAGS)
endif
obj-$(CONFIG_DISPLAY_BOARDINFO) += board_info.o
obj-$(CONFIG_DISPLAY_BOARDINFO_LATE) += board_info.o

View File

@@ -73,7 +73,7 @@ static int spl_fit_get_image_name(const struct spl_fit_info *ctx,
const char **outname)
{
struct udevice *sysinfo;
const char *name, *str;
const char *name, *str, *end;
__maybe_unused int node;
int len, i;
bool found = true;
@@ -83,11 +83,17 @@ static int spl_fit_get_image_name(const struct spl_fit_info *ctx,
debug("cannot find property '%s': %d\n", type, len);
return -EINVAL;
}
/* A string property should be NUL terminated */
end = name + len - 1;
if (!len || *end) {
debug("malformed property '%s'\n", type);
return -EINVAL;
}
str = name;
for (i = 0; i < index; i++) {
str = strchr(str, '\0') + 1;
if (!str || (str - name >= len)) {
if (str > end) {
found = false;
break;
}
@@ -199,7 +205,7 @@ static int get_aligned_image_size(struct spl_load_info *info, int data_size,
* the image gets loaded to the address pointed to by the
* load_addr member in this struct, if load_addr is not 0
*
* Return: 0 on success, -EPERM if this image is not the correct phase
* Return: 0 on success, -EBADSLT if this image is not the correct phase
* (for CONFIG_BOOTMETH_VBE_SIMPLE_FW), or another negative error number on
* other error.
*/
@@ -235,7 +241,7 @@ static int load_simple_fit(struct spl_load_info *info, ulong fit_offset,
return ret;
} else {
log_debug("- phase mismatch, skipping this image\n");
return -EPERM;
return -EBADSLT;
}
}
@@ -474,7 +480,7 @@ static int spl_fit_append_fdt(struct spl_image_info *spl_image,
image_info.load_addr = (ulong)tmpbuffer;
ret = load_simple_fit(info, offset, ctx, node,
&image_info);
if (ret == -EPERM)
if (ret == -EBADSLT)
continue;
else if (ret < 0)
break;
@@ -702,13 +708,51 @@ static int spl_simple_fit_read(struct spl_fit_info *ctx,
*/
size = get_aligned_image_size(info, size, 0);
buf = board_spl_fit_buffer_addr(size, size, 1);
if (!buf) {
/*
* We assume that none of the board will ever use 0x0 as a
* valid load address. Theoretically some board could use it,
* but this is extremely unlikely.
*/
return -EIO;
}
count = info->read(info, offset, size, buf);
if (!count) {
/*
* FIT could not be read. This means we should free the
* memory allocated by board_spl_fit_buffer_addr().
* Unfortunately, we don't know what memory allocation
* mechanism was used:
* - For the SPL_SYS_MALLOC_SIMPLE case nothing could
* be done. The memory just could not be freed.
* - For statically allocated memory buffer we can try
* to reuse previously allocated memory (example:
* board_spl_fit_buffer_addr() function from the
* file test/image/spl_load.c).
* - For normall malloc() -- memory leak can't be easily
* avoided. To somehow reduce memory consumption the
* next calls of board_spl_fit_buffer_addr() could
* reallocate previously allocated buffer and use
* them again. This is somethat similar to the approach
* used for statically allocated buffer.
*
* Please note:
* - FIT images with data placed outside of the FIT
* structure will cause small memory leak (several
* kilobytes),
* - FIT images with data placed inside to the FIT
* structure may cause huge memory leak (up to
* several megabytes). Do NOT use such images!
*/
return -EIO;
}
ctx->fit = buf;
debug("fit read offset %lx, size=%lu, dst=%p, count=%lu\n",
offset, size, buf, count);
return (count == 0) ? -EIO : 0;
return 0;
}
static int spl_simple_fit_parse(struct spl_fit_info *ctx)
@@ -834,7 +878,7 @@ int spl_load_simple_fit(struct spl_image_info *spl_image,
image_info.load_addr = 0;
ret = load_simple_fit(info, offset, &ctx, node, &image_info);
if (ret < 0 && ret != -EPERM) {
if (ret < 0 && ret != -EBADSLT) {
printf("%s: can't load image loadables index %d (ret = %d)\n",
__func__, index, ret);
return ret;

View File

@@ -19,6 +19,7 @@ CONFIG_ANDROID_BOOT_IMAGE=y
CONFIG_BOOTSTD_FULL=y
CONFIG_DEFAULT_FDT_FILE="exynos850-e850-96.dtb"
# CONFIG_DISPLAY_CPUINFO is not set
CONFIG_BOARD_LATE_INIT=y
CONFIG_CMD_BOOTEFI_SELFTEST=y
CONFIG_CMD_ABOOTIMG=y
CONFIG_CMD_NVEDIT_EFI=y

View File

@@ -17,7 +17,6 @@ CONFIG_SPL_MMC=y
CONFIG_SPL_SERIAL=y
CONFIG_SPL_DRIVERS_MISC=y
CONFIG_SPL_STACK=0x980000
CONFIG_SPL_SYS_MALLOC_F_LEN=0x2000
CONFIG_SPL_TEXT_BASE=0x912000
CONFIG_SPL_HAS_BSS_LINKER_SECTION=y
CONFIG_SPL_BSS_START_ADDR=0x950000

View File

@@ -11,7 +11,7 @@ CONFIG_ENV_SIZE=0x4000
CONFIG_ENV_OFFSET=0x700000
CONFIG_IMX_CONFIG="arch/arm/mach-imx/imx9/imximage.cfg"
CONFIG_DM_GPIO=y
CONFIG_DEFAULT_DEVICE_TREE="freescale/imx91-11x11-evk"
CONFIG_DEFAULT_DEVICE_TREE="imx91-11x11-evk"
CONFIG_TARGET_IMX91_11X11_EVK=y
CONFIG_OF_LIBFDT_OVERLAY=y
CONFIG_SYS_MONITOR_LEN=524288

View File

@@ -11,7 +11,7 @@ CONFIG_ENV_SIZE=0x4000
CONFIG_ENV_OFFSET=0x700000
CONFIG_IMX_CONFIG="arch/arm/mach-imx/imx9/imximage.cfg"
CONFIG_DM_GPIO=y
CONFIG_DEFAULT_DEVICE_TREE="freescale/imx91-11x11-evk"
CONFIG_DEFAULT_DEVICE_TREE="imx91-11x11-evk"
CONFIG_TARGET_IMX91_11X11_EVK=y
CONFIG_OF_LIBFDT_OVERLAY=y
CONFIG_SYS_MONITOR_LEN=524288

View File

@@ -1,5 +1,6 @@
CONFIG_ARM=y
CONFIG_SKIP_LOWLEVEL_INIT=y
CONFIG_SYS_THUMB_BUILD=y
CONFIG_ARCH_DAVINCI=y
CONFIG_TEXT_BASE=0xc1080000
CONFIG_SYS_MALLOC_LEN=0x110000
@@ -12,6 +13,9 @@ CONFIG_SF_DEFAULT_SPEED=50000000
CONFIG_ENV_SIZE=0x4000
CONFIG_DEFAULT_DEVICE_TREE="da850-lego-ev3"
CONFIG_SYS_LOAD_ADDR=0xc0700000
CONFIG_LTO=y
CONFIG_HAS_BOARD_SIZE_LIMIT=y
CONFIG_BOARD_SIZE_LIMIT=262144
CONFIG_DYNAMIC_SYS_CLK_FREQ=y
CONFIG_BOOTDELAY=0
CONFIG_AUTOBOOT_KEYED=y
@@ -31,7 +35,6 @@ CONFIG_HUSH_PARSER=y
# CONFIG_BOOTM_RTEMS is not set
# CONFIG_BOOTM_VXWORKS is not set
CONFIG_CMD_ASKENV=y
CONFIG_CRC32_VERIFY=y
CONFIG_CMD_MX_CYCLIC=y
CONFIG_CMD_MMC=y
CONFIG_CMD_SPI=y
@@ -56,4 +59,3 @@ CONFIG_SYS_NS16550=y
CONFIG_SPI=y
CONFIG_DM_SPI=y
CONFIG_DAVINCI_SPI=y
CONFIG_REGEX=y

View File

@@ -40,6 +40,8 @@ CONFIG_SPL_WATCHDOG=y
CONFIG_HUSH_PARSER=y
CONFIG_SYS_MAXARGS=32
CONFIG_CMD_BOOTZ=y
# CONFIG_BOOTM_PLAN9 is not set
# CONFIG_BOOTM_RTEMS is not set
CONFIG_CMD_SPL=y
CONFIG_CMD_SPL_WRITE_SIZE=0x20000
CONFIG_CMD_GPIO=y
@@ -65,7 +67,6 @@ CONFIG_EFI_PARTITION=y
# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_OF_CONTROL=y
CONFIG_OF_LIST="imx6q-sabresd imx6qp-sabresd imx6dl-sabresd"
CONFIG_MULTI_DTB_FIT=y
CONFIG_ENV_OVERWRITE=y
CONFIG_ENV_IS_IN_MMC=y
CONFIG_SYS_RELOC_GD_ENV_ADDR=y

View File

@@ -26,7 +26,9 @@ CONFIG_PHY_MICREL_KSZ90X1=y
CONFIG_RENESAS_RAVB=y
CONFIG_BAUDRATE=921600
CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0xeb300000
# CONFIG_SPL_SHARES_INIT_SP_ADDR is not set
CONFIG_SPL_HAVE_INIT_STACK=y
CONFIG_SPL_STACK=0xe6400000
CONFIG_SPL_DM_SPI=y
CONFIG_SPL_TEXT_BASE=0xeb210000
CONFIG_SPL_STACK_R_ADDR=0x44000000

View File

@@ -0,0 +1,71 @@
#include <configs/renesas_rcar4.config>
CONFIG_ARM=y
CONFIG_ARCH_RENESAS=y
CONFIG_RCAR_GEN4=y
CONFIG_ARM_SMCCC=y
CONFIG_ARMV8_PSCI=y
CONFIG_ENV_IS_IN_SPI_FLASH=y
CONFIG_ENV_OFFSET=0x3f80000
CONFIG_ENV_OFFSET_REDUND=0x3fc0000
CONFIG_ENV_SECT_SIZE=0x40000
CONFIG_ENV_SIZE=0x40000
CONFIG_DEFAULT_DEVICE_TREE="renesas/r8a779g3-sparrow-hawk"
CONFIG_TARGET_SPARROWHAWK=y
CONFIG_SYS_BOOT_GET_CMDLINE=y
CONFIG_SYS_CLK_FREQ=16666666
CONFIG_SYS_BARGSIZE=2048
CONFIG_SYS_CBSIZE=2048
CONFIG_BAUDRATE=921600
CONFIG_BINMAN=y
CONFIG_BOOTCOMMAND="tftp 0x50000000 fitImage && bootm 0x50000000"
CONFIG_DEFAULT_FDT_FILE="r8a779g3-sparrow-hawk.dtb"
CONFIG_CMD_REMOTEPROC=y
CONFIG_GPIO_HOG=y
CONFIG_REMOTEPROC_RENESAS_APMU=y
CONFIG_BITBANGMII=y
CONFIG_NET_RANDOM_ETHADDR=y
CONFIG_PHY_MICREL=y
CONFIG_PHY_MICREL_KSZ90X1=y
CONFIG_RENESAS_RAVB=y
# CONFIG_SPL_SHARES_INIT_SP_ADDR is not set
CONFIG_SPL_HAVE_INIT_STACK=y
CONFIG_SPL_STACK=0xe6400000
CONFIG_SPL_DM_SPI=y
CONFIG_SPL_TEXT_BASE=0xeb210000
CONFIG_SPL_STACK_R_ADDR=0x44000000
CONFIG_SPL_SYS_MALLOC_F_LEN=0x20000
CONFIG_SPL_STACK_R=y
CONFIG_SPL_SPI_FLASH_SUPPORT=y
CONFIG_SPL_SPI=y
CONFIG_SPL_FIT_PRINT=y
CONFIG_SPL_LOAD_FIT=y
CONFIG_SPL_LOAD_FIT_ADDRESS=0x48000000
# CONFIG_SPL_BOARD_INIT is not set
# CONFIG_SPL_LEGACY_IMAGE_FORMAT is not set
# CONFIG_SPL_SEPARATE_BSS is not set
CONFIG_SPL_DM_SPI_FLASH=y
CONFIG_SPL_DM_RESET=y
CONFIG_SPL_SPI_LOAD=y
CONFIG_SPL_OF_CONTROL=y
CONFIG_SPL_DM=y
CONFIG_SPL_CLK=y
CONFIG_SPL_GPIO=y
CONFIG_SPL_GPIO_HOG=y
CONFIG_SPL_PINCTRL=y
CONFIG_SPL_PINCONF=y
CONFIG_SPL_RAM=y
# CONFIG_SPL_USE_TINY_PRINTF is not set
CONFIG_RAM=y
CONFIG_RAM_RENESAS_DBSC5=y
CONFIG_SPL_MAX_SIZE=0x40000
CONFIG_ENABLE_ARM_SOC_BOOT0_HOOK=y
CONFIG_SYS_SPI_U_BOOT_OFFS=0x80000
CONFIG_SPL_BSS_MAX_SIZE=0x10000
CONFIG_SF_DEFAULT_SPEED=40000000
# CONFIG_SPL_PARTITIONS is not set
# CONFIG_SPL_DOS_PARTITION is not set
# CONFIG_SPL_EFI_PARTITION is not set
# CONFIG_SPL_PARTITION_UUIDS is not set
# CONFIG_SPL_DM_MMC is not set

View File

@@ -2,6 +2,7 @@ CONFIG_ARM=y
CONFIG_POSITION_INDEPENDENT=y
CONFIG_ARCH_BCM283X=y
CONFIG_TARGET_RPI_ARM64=y
CONFIG_NR_DRAM_BANKS=8
CONFIG_ENV_SIZE=0x4000
CONFIG_DEFAULT_DEVICE_TREE="bcm2711-rpi-4-b"
CONFIG_OF_LIBFDT_OVERLAY=y

View File

@@ -16,6 +16,7 @@ CONFIG_SYS_MONITOR_LEN=524288
CONFIG_SPL_MMC=y
CONFIG_SPL_SERIAL=y
CONFIG_SPL_DRIVERS_MISC=y
CONFIG_SPL_STACK=0x960000
CONFIG_SPL_SYS_MALLOC_F_LEN=0x4000
CONFIG_SPL_TEXT_BASE=0x920000
CONFIG_SPL_HAS_BSS_LINKER_SECTION=y
@@ -51,6 +52,7 @@ CONFIG_SPL_BOARD_INIT=y
CONFIG_SPL_BOOTROM_SUPPORT=y
CONFIG_SPL_SYS_MALLOC_SIMPLE=y
# CONFIG_SPL_SHARES_INIT_SP_ADDR is not set
CONFIG_SPL_HAVE_INIT_STACK=y
CONFIG_SPL_SYS_MALLOC=y
CONFIG_SPL_HAS_CUSTOM_MALLOC_START=y
CONFIG_SPL_CUSTOM_SYS_MALLOC_ADDR=0x42200000

View File

@@ -178,7 +178,8 @@ devicetree-overlay <path> [...] - if this label is chosen, use tftp to retrieve
kaslrseed - set this label to request random number from hwrng as kaslr seed.
append <string> - use <string> as the kernel command line when booting this
label.
label. Environment variable references like ${var} are
substituted before boot.
initrd <path> - if this label is chosen, use tftp to retrieve the initrd
at <path>. it will be stored at the address indicated in

View File

@@ -180,6 +180,12 @@ Renesas is a SoC solutions provider for automotive and industrial applications.
- arm64
- r8a779g0_whitehawk_defconfig
* -
- Sparrow Hawk
- R8A779G3 (V4H)
- arm64
- r8a779g3_sparrowhawk_defconfig
* - RZ/G2 Family
- Beacon EmbeddedWorks RZ/G2M SoM
- R8A774A1 (RZ/G2M)

View File

@@ -92,6 +92,13 @@ That said, we have some differences to these documents, namely:
* If ``-`` is passed as fdt argument and ``CONFIG_SUPPORT_PASSING_ATAGS`` is
enabled, then no device tree will be used (legacy booting / pre-dtb kernel).
* The ``append`` string may use environment variables. For example, an
A/B boot setup could use ``append root=PARTLABEL=root_${bootslot}``
to set the root filesystem to the right one for the selected slot,
assuming the ``bootslot`` environment variable is set before the
extlinux.conf file is processed, and the partition is labeled to
match.
See also doc/README.pxe under 'pxe file format'.
One example extlinux.conf generated by the Fedora installer is::

View File

@@ -1,4 +1,4 @@
.. |next_ver| replace:: v2025.07
.. |next_ver| replace:: v2025.10
Release Cycle
=============
@@ -53,15 +53,15 @@ Examples::
Current Status
--------------
* U-Boot v2025.04 was released on Monday, 07 April 2025.
* U-Boot v2025.07 was released on Monday, 07 July 2025.
* The Merge Window for the next release (|next_ver|) was **closed** with the -rc1
release on Monday, 28 April 2025.
* The Merge Window for the next release (|next_ver|) is **open** until the -rc1
release on Monday, 28 July 2025.
* The next branch is now **closed** until the -rc2 release on Monday, 12 May
* The next branch is now **closed** until the -rc2 release on Monday, 11 August
2025.
* Release "|next_ver|" is scheduled for Monday, 07 July 2025.
* Release "|next_ver|" is scheduled for Monday, 06 October 2025.
Future Releases
---------------
@@ -69,28 +69,28 @@ Future Releases
.. The following commented out dates are for when release candidates are
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 |next_ver|-rc1 was released on Mon 28 April 2025.
.. * U-Boot |next_ver|-rc1 was released on Mon 28 July 2025.
* U-Boot |next_ver|-rc2 was released on Mon 12 May 2025.
.. * U-Boot |next_ver|-rc2 was released on Mon 11 August 2025.
* U-Boot |next_ver|-rc3 was released on Mon 26 May 2025.
.. * U-Boot |next_ver|-rc3 was released on Mon 25 August 2025.
* U-Boot |next_ver|-rc4 was released on Mon 09 June 2025.
.. * U-Boot |next_ver|-rc4 was released on Mon 08 September 2025.
.. * U-Boot |next_ver|-rc5 was released on Mon 23 June 2025.
.. * U-Boot |next_ver|-rc5 was released on Mon 22 September 2025.
Please note that the following dates are planned only and may be deviated from
as needed.
* "v2025.07": end of MW = Mon, Apr 28, 2025; release = Mon, Jul 07, 2025
* "v2025.10": end of MW = Mon, Jul 28, 2025; release = Mon, Oct 06, 2025
* "v2026.01": end of MW = Mon, Oct 27, 2025; release = Mon, Jan 05, 2026
* "v2025.04": end of MW = Mon, Jan 26, 2026; release = Mon, Apr 06, 2026
* "v2026.04": end of MW = Mon, Jan 26, 2026; release = Mon, Apr 06, 2026
* "v2026.07": end of MW = Mon, Apr 27, 2026; release = Mon, Jul 06, 2026
Previous Releases
-----------------
@@ -99,6 +99,8 @@ Note: these statistics are generated by our fork of `gitdm
<https://source.denx.de/u-boot/gitdm>`_, which was originally created by
Jonathan Corbet.
* :doc:`statistics/u-boot-stats-v2025.07` which was released on 07 July 2025.
* :doc:`statistics/u-boot-stats-v2025.04` which was released on 07 April 2025.
* :doc:`statistics/u-boot-stats-v2025.01` which was released on 06 January 2025.

View File

@@ -0,0 +1,990 @@
:orphan:
Release Statistics for U-Boot v2025.07
======================================
* Processed 1780 changesets from 225 developers
* 24 employers found
* A total of 200374 lines added, 64238 removed (delta 136136)
.. table:: Developers with the most changesets
:widths: auto
==================================== =====
Name Count
==================================== =====
Simon Glass 172 (9.7%)
Svyatoslav Ryhel 117 (6.6%)
Marek Vasut 110 (6.2%)
Tom Rini 91 (5.1%)
Heinrich Schuchardt 68 (3.8%)
Jerome Forissier 52 (2.9%)
Jonas Karlman 49 (2.8%)
Andre Przywara 44 (2.5%)
Casey Connolly 37 (2.1%)
Patrice Chotard 32 (1.8%)
Yao Zi 29 (1.6%)
Stephan Gerhold 26 (1.5%)
Quentin Schulz 25 (1.4%)
Christian Marangi 22 (1.2%)
Adam Ford 22 (1.2%)
Alif Zakuan Yuslaimi 22 (1.2%)
Paul Barker 19 (1.1%)
Wadim Egorov 17 (1.0%)
Adriano Cordova 17 (1.0%)
Dinesh Maniyam 17 (1.0%)
Ilias Apalodimas 15 (0.8%)
Sam Edwards 15 (0.8%)
Venkatesh Yadav Abbarapu 14 (0.8%)
Varadarajan Narayanan 14 (0.8%)
Dario Binacchi 14 (0.8%)
Sughosh Ganu 14 (0.8%)
Daniel Schultz 14 (0.8%)
Miquel Raynal 14 (0.8%)
Alice Guo 13 (0.7%)
Michal Simek 13 (0.7%)
Siddharth Vadapalli 13 (0.7%)
Jiaxun Yang 13 (0.7%)
Patrick Delaunay 12 (0.7%)
Patrick Rudolph 12 (0.7%)
Neil Armstrong 12 (0.7%)
Paul HENRYS 12 (0.7%)
Judith Mendez 11 (0.6%)
Heiko Stuebner 11 (0.6%)
Tien Fong Chee 11 (0.6%)
Sam Day 11 (0.6%)
Vincent Stehlé 10 (0.6%)
Nishanth Menon 10 (0.6%)
Anshul Dalal 9 (0.5%)
Bryan Brattlof 9 (0.5%)
Alexander Graf 9 (0.5%)
Alexander Dahl 9 (0.5%)
Weijie Gao 8 (0.4%)
Minda Chen 8 (0.4%)
Santhosh Kumar K 8 (0.4%)
Peng Fan 7 (0.4%)
Raymond Mao 7 (0.4%)
Neha Malcom Francis 7 (0.4%)
Mayuresh Chitale 7 (0.4%)
Aristo Chen 7 (0.4%)
Jernej Skrabec 7 (0.4%)
Samuel Holland 7 (0.4%)
Tingting Meng 7 (0.4%)
Greg Malysa 7 (0.4%)
Nathan Barrett-Morrison 7 (0.4%)
Fabio Estevam 6 (0.3%)
E Shattow 6 (0.3%)
Tony Dinh 6 (0.3%)
Lukasz Czechowski 6 (0.3%)
Naresh Kumar Ravulapalli 6 (0.3%)
Michael Trimarchi 6 (0.3%)
Primoz Fiser 6 (0.3%)
Udit Kumar 6 (0.3%)
Prasad Kummari 6 (0.3%)
Harrison Mutai 6 (0.3%)
Hector Martin 6 (0.3%)
Huan Zhou 6 (0.3%)
Leonard Anderweit 6 (0.3%)
Manorit Chawdhry 6 (0.3%)
Gabriel Dalimonte 6 (0.3%)
Maks Mishin 6 (0.3%)
Manikandan Muralidharan 6 (0.3%)
Mattijs Korpershoek 5 (0.3%)
Justin Klaassen 5 (0.3%)
Andrew Davis 5 (0.3%)
Padmarao Begari 5 (0.3%)
Jonathan Currier 5 (0.3%)
Ye Li 5 (0.3%)
Bernhard Messerklinger 5 (0.3%)
Hrushikesh Salunke 5 (0.3%)
Jorge Ramirez-Ortiz 5 (0.3%)
Anurag Dutta 5 (0.3%)
Jeremy Compostella 5 (0.3%)
Harsha Vardhan V M 5 (0.3%)
Anton Moryakov 5 (0.3%)
Baocheng Su 5 (0.3%)
Hari Nagalla 5 (0.3%)
Mikhail Kshevetskiy 4 (0.2%)
Alper Nebi Yasak 4 (0.2%)
Aniket Limaye 4 (0.2%)
Cheick Traore 4 (0.2%)
Heiko Schocher 3 (0.2%)
Sumit Garg 3 (0.2%)
Alexey Minnekhanov 3 (0.2%)
Rui Miguel Silva 3 (0.2%)
Rasmus Villemoes 3 (0.2%)
Martin Schiller 3 (0.2%)
Keerthy 3 (0.2%)
Mike Looijmans 3 (0.2%)
Lionel Debieve 3 (0.2%)
Zixun LI 3 (0.2%)
Vitor Soares 3 (0.2%)
Liya Huang 3 (0.2%)
Evgeny Bachinin 3 (0.2%)
Sinthu Raja 3 (0.2%)
Marius Dinu 2 (0.1%)
Shiji Yang 2 (0.1%)
Kory Maincent 2 (0.1%)
Yang Xiwen 2 (0.1%)
Peter Robinson 2 (0.1%)
Benjamin ROBIN 2 (0.1%)
Michael Bode 2 (0.1%)
Alexander Sverdlin 2 (0.1%)
Benjamin Schneider 2 (0.1%)
Christoph Fritz 2 (0.1%)
Vaishnav Achath 2 (0.1%)
Pascal Zimmermann 2 (0.1%)
Andrew Halaney 2 (0.1%)
Takahiro Kuwano 2 (0.1%)
Walter Schweizer 2 (0.1%)
Pawel Kochanowski 2 (0.1%)
Emanuele Ghidoli 2 (0.1%)
Stefano Babic 2 (0.1%)
Elaine Zhang 2 (0.1%)
Steven Liu 2 (0.1%)
Xuhui Lin 2 (0.1%)
Chukun Pan 2 (0.1%)
Muhammad Hazim Izzat Zamri 2 (0.1%)
Josua Mayer 2 (0.1%)
Jesse Taube 2 (0.1%)
Artur Kowalski 2 (0.1%)
Jonathan Humphreys 2 (0.1%)
牛 志宏 2 (0.1%)
Daniel Golle 2 (0.1%)
Nathan Morrisson 2 (0.1%)
Jim Liu 2 (0.1%)
Ernest Van Hoecke 2 (0.1%)
Jonas Schwöbel 2 (0.1%)
David Lechner 1 (0.1%)
Fiona Klute 1 (0.1%)
Duje Mihanović 1 (0.1%)
Akashdeep Kaur 1 (0.1%)
Baruch Siach 1 (0.1%)
Sam Protsenko 1 (0.1%)
Ivan Pang 1 (0.1%)
Jan Čermák 1 (0.1%)
Hiago De Franco 1 (0.1%)
Hugo Villeneuve 1 (0.1%)
Tim Harvey 1 (0.1%)
BehradElmi 1 (0.1%)
Wojciech Szamocki 1 (0.1%)
Martin Kaistra 1 (0.1%)
Frantisek Bohacek 1 (0.1%)
Eddie Kovsky 1 (0.1%)
Jayanth Dodderi Chidanand 1 (0.1%)
Olaf Baehring 1 (0.1%)
Simon Holesch 1 (0.1%)
Thomas Schaefer 1 (0.1%)
Michael Walle 1 (0.1%)
No generic patch CC mail please 1 (0.1%)
Nikunj Kela 1 (0.1%)
Naresh Solanki 1 (0.1%)
Andy Shevchenko 1 (0.1%)
Jiehui He 1 (0.1%)
Ilya Katsnelson 1 (0.1%)
Prasanth Babu Mantena 1 (0.1%)
Chen-Yu Tsai 1 (0.1%)
Ben Wolsieffer 1 (0.1%)
ZhiJie.zhang 1 (0.1%)
Christophe Roullier 1 (0.1%)
Alexander Vickberg 1 (0.1%)
Carlos López 1 (0.1%)
Christoph Niedermaier 1 (0.1%)
Boon Khai Ng 1 (0.1%)
Bhavya Kapoor 1 (0.1%)
Love Kumar 1 (0.1%)
Nicolas Frattaroli 1 (0.1%)
Lin Jinhan 1 (0.1%)
Joseph Chen 1 (0.1%)
Yifeng Zhao 1 (0.1%)
Sean Edmond 1 (0.1%)
Mathieu Othacehe 1 (0.1%)
Jean-Jacques Hiblot 1 (0.1%)
Ezra Buehler 1 (0.1%)
Parth Pancholi 1 (0.1%)
Lucien.Jheng 1 (0.1%)
Mauro Salvini 1 (0.1%)
Bruno Leite 1 (0.1%)
Chris Packham 1 (0.1%)
yan wang 1 (0.1%)
Parvathi Pudi 1 (0.1%)
Martin Schwan 1 (0.1%)
Viorel Suman 1 (0.1%)
Rafael Beims 1 (0.1%)
Christian Kohlschütter 1 (0.1%)
Luke Wang 1 (0.1%)
Xu Zhang 1 (0.1%)
Andreas Dannenberg 1 (0.1%)
Andrew Goodbody 1 (0.1%)
Gary Bisson 1 (0.1%)
Oskar Nilsson 1 (0.1%)
Sukrut Bellary 1 (0.1%)
Richard Genoud 1 (0.1%)
Gowtham Tammana 1 (0.1%)
Vishal Mahaveer 1 (0.1%)
Masahisa Kojima 1 (0.1%)
Jimmy Ho 1 (0.1%)
Junhui Liu 1 (0.1%)
Baltazár Radics 1 (0.1%)
Arseniy Krasnov 1 (0.1%)
Robert Nelson 1 (0.1%)
Dragan Simic 1 (0.1%)
Vignesh Raghavendra 1 (0.1%)
Linus Walleij 1 (0.1%)
J. Neuschäfer 1 (0.1%)
Alexander Stein 1 (0.1%)
Stefan Eichenberger 1 (0.1%)
Michael Chang 1 (0.1%)
Hironori KIKUCHI 1 (0.1%)
Tomas Peterka 1 (0.1%)
Balamanikandan Gunasundar 1 (0.1%)
==================================== =====
.. table:: Developers with the most changed lines
:widths: auto
==================================== =====
Name Count
==================================== =====
Tom Rini 78284 (33.7%)
Patrice Chotard 20809 (9.0%)
Manorit Chawdhry 17813 (7.7%)
Svyatoslav Ryhel 16864 (7.3%)
Simon Glass 8757 (3.8%)
Marek Vasut 8650 (3.7%)
Robert Nelson 5921 (2.6%)
Vitor Soares 4567 (2.0%)
Bernhard Messerklinger 3955 (1.7%)
Elaine Zhang 3663 (1.6%)
Yao Zi 3317 (1.4%)
Dinesh Maniyam 3269 (1.4%)
Jonas Karlman 3191 (1.4%)
Christian Marangi 3131 (1.3%)
Jerome Forissier 2676 (1.2%)
Joseph Chen 2480 (1.1%)
Nathan Barrett-Morrison 2115 (0.9%)
Tingting Meng 2075 (0.9%)
Peng Fan 1544 (0.7%)
Dario Binacchi 1387 (0.6%)
Varadarajan Narayanan 1338 (0.6%)
Miquel Raynal 1244 (0.5%)
Jesse Taube 1242 (0.5%)
Gabriel Dalimonte 1162 (0.5%)
Heiko Stuebner 1114 (0.5%)
Adriano Cordova 1013 (0.4%)
Tien Fong Chee 987 (0.4%)
Ye Li 982 (0.4%)
Heinrich Schuchardt 981 (0.4%)
Patrick Delaunay 944 (0.4%)
Andre Przywara 912 (0.4%)
Alice Guo 906 (0.4%)
Greg Malysa 875 (0.4%)
Paul HENRYS 823 (0.4%)
Lucien.Jheng 818 (0.4%)
Casey Connolly 780 (0.3%)
Neil Armstrong 745 (0.3%)
Manikandan Muralidharan 737 (0.3%)
Huan Zhou 722 (0.3%)
Paul Barker 686 (0.3%)
Minda Chen 667 (0.3%)
Fabio Estevam 598 (0.3%)
Nishanth Menon 574 (0.2%)
Steven Liu 556 (0.2%)
Alexander Graf 511 (0.2%)
Lionel Debieve 501 (0.2%)
Ilias Apalodimas 486 (0.2%)
Xuhui Lin 476 (0.2%)
Sughosh Ganu 473 (0.2%)
Andrew Davis 461 (0.2%)
Jiaxun Yang 449 (0.2%)
Neha Malcom Francis 437 (0.2%)
Jernej Skrabec 431 (0.2%)
Baocheng Su 424 (0.2%)
Wadim Egorov 421 (0.2%)
Alif Zakuan Yuslaimi 416 (0.2%)
Prasad Kummari 404 (0.2%)
Hari Nagalla 402 (0.2%)
Cheick Traore 391 (0.2%)
Simon Holesch 388 (0.2%)
Samuel Holland 337 (0.1%)
Hector Martin 334 (0.1%)
Harsha Vardhan V M 326 (0.1%)
Jonas Schwöbel 302 (0.1%)
Alexey Minnekhanov 290 (0.1%)
Primoz Fiser 266 (0.1%)
Alexander Dahl 256 (0.1%)
Siddharth Vadapalli 248 (0.1%)
Michael Trimarchi 217 (0.1%)
Alper Nebi Yasak 210 (0.1%)
Stephan Gerhold 204 (0.1%)
Chukun Pan 191 (0.1%)
Venkatesh Yadav Abbarapu 189 (0.1%)
Adam Ford 186 (0.1%)
Evgeny Bachinin 181 (0.1%)
Michael Bode 179 (0.1%)
Patrick Rudolph 175 (0.1%)
Judith Mendez 168 (0.1%)
Heiko Schocher 158 (0.1%)
Aniket Limaye 157 (0.1%)
Anshul Dalal 155 (0.1%)
Jonathan Humphreys 152 (0.1%)
Rui Miguel Silva 151 (0.1%)
Luke Wang 150 (0.1%)
Sam Day 127 (0.1%)
E Shattow 127 (0.1%)
Raymond Mao 121 (0.1%)
Quentin Schulz 116 (0.0%)
Ilya Katsnelson 116 (0.0%)
Harrison Mutai 108 (0.0%)
Hrushikesh Salunke 105 (0.0%)
Bryan Brattlof 104 (0.0%)
Michal Simek 103 (0.0%)
Jonathan Currier 103 (0.0%)
Mike Looijmans 99 (0.0%)
Jiehui He 96 (0.0%)
Tomas Peterka 78 (0.0%)
Justin Klaassen 77 (0.0%)
Jeremy Compostella 75 (0.0%)
Santhosh Kumar K 74 (0.0%)
Lin Jinhan 73 (0.0%)
Balamanikandan Gunasundar 73 (0.0%)
Andreas Dannenberg 65 (0.0%)
Ernest Van Hoecke 64 (0.0%)
Sam Edwards 62 (0.0%)
Christoph Fritz 61 (0.0%)
Weijie Gao 60 (0.0%)
Keerthy 59 (0.0%)
Vishal Mahaveer 59 (0.0%)
Mayuresh Chitale 57 (0.0%)
Leonard Anderweit 57 (0.0%)
Kory Maincent 55 (0.0%)
Jim Liu 54 (0.0%)
Walter Schweizer 53 (0.0%)
Masahisa Kojima 52 (0.0%)
Udit Kumar 50 (0.0%)
Mikhail Kshevetskiy 48 (0.0%)
Pascal Zimmermann 42 (0.0%)
Muhammad Hazim Izzat Zamri 42 (0.0%)
Nathan Morrisson 41 (0.0%)
Daniel Schultz 40 (0.0%)
Sumit Garg 39 (0.0%)
Dragan Simic 37 (0.0%)
Boon Khai Ng 35 (0.0%)
Jorge Ramirez-Ortiz 32 (0.0%)
Chen-Yu Tsai 32 (0.0%)
Tony Dinh 31 (0.0%)
Naresh Kumar Ravulapalli 31 (0.0%)
Anton Moryakov 31 (0.0%)
Rasmus Villemoes 30 (0.0%)
Vaishnav Achath 30 (0.0%)
Artur Kowalski 30 (0.0%)
Love Kumar 29 (0.0%)
Sinthu Raja 28 (0.0%)
Jean-Jacques Hiblot 28 (0.0%)
Lukasz Czechowski 26 (0.0%)
Nikunj Kela 23 (0.0%)
Sean Edmond 23 (0.0%)
Daniel Golle 22 (0.0%)
Mattijs Korpershoek 21 (0.0%)
Zixun LI 19 (0.0%)
Wojciech Szamocki 19 (0.0%)
Anurag Dutta 18 (0.0%)
Padmarao Begari 17 (0.0%)
Bhavya Kapoor 17 (0.0%)
Aristo Chen 16 (0.0%)
Christophe Roullier 16 (0.0%)
Hironori KIKUCHI 16 (0.0%)
Jayanth Dodderi Chidanand 15 (0.0%)
Olaf Baehring 15 (0.0%)
Vincent Stehlé 14 (0.0%)
Maks Mishin 13 (0.0%)
Andy Shevchenko 13 (0.0%)
Viorel Suman 13 (0.0%)
Michael Chang 13 (0.0%)
Andrew Halaney 12 (0.0%)
Prasanth Babu Mantena 12 (0.0%)
Rafael Beims 12 (0.0%)
Baltazár Radics 12 (0.0%)
Benjamin ROBIN 11 (0.0%)
Mathieu Othacehe 11 (0.0%)
Junhui Liu 11 (0.0%)
Stefan Eichenberger 11 (0.0%)
Alexander Sverdlin 10 (0.0%)
Sam Protsenko 10 (0.0%)
Pawel Kochanowski 9 (0.0%)
Josua Mayer 9 (0.0%)
Fiona Klute 9 (0.0%)
Martin Kaistra 8 (0.0%)
Michael Walle 8 (0.0%)
Nicolas Frattaroli 8 (0.0%)
Liya Huang 7 (0.0%)
Peter Robinson 7 (0.0%)
No generic patch CC mail please 7 (0.0%)
ZhiJie.zhang 7 (0.0%)
Gowtham Tammana 7 (0.0%)
Shiji Yang 6 (0.0%)
Parvathi Pudi 5 (0.0%)
Emanuele Ghidoli 4 (0.0%)
Stefano Babic 4 (0.0%)
David Lechner 4 (0.0%)
Frantisek Bohacek 4 (0.0%)
Martin Schwan 4 (0.0%)
Andrew Goodbody 4 (0.0%)
Gary Bisson 4 (0.0%)
J. Neuschäfer 4 (0.0%)
Martin Schiller 3 (0.0%)
Yang Xiwen 3 (0.0%)
Benjamin Schneider 3 (0.0%)
牛 志宏 3 (0.0%)
Duje Mihanović 3 (0.0%)
Thomas Schaefer 3 (0.0%)
Parth Pancholi 3 (0.0%)
Mauro Salvini 3 (0.0%)
Bruno Leite 3 (0.0%)
Christian Kohlschütter 3 (0.0%)
Xu Zhang 3 (0.0%)
Arseniy Krasnov 3 (0.0%)
Alexander Stein 3 (0.0%)
Marius Dinu 2 (0.0%)
Takahiro Kuwano 2 (0.0%)
Ivan Pang 2 (0.0%)
Hiago De Franco 2 (0.0%)
Eddie Kovsky 2 (0.0%)
Chris Packham 2 (0.0%)
Sukrut Bellary 2 (0.0%)
Jimmy Ho 2 (0.0%)
Akashdeep Kaur 1 (0.0%)
Baruch Siach 1 (0.0%)
Jan Čermák 1 (0.0%)
Hugo Villeneuve 1 (0.0%)
Tim Harvey 1 (0.0%)
BehradElmi 1 (0.0%)
Naresh Solanki 1 (0.0%)
Ben Wolsieffer 1 (0.0%)
Alexander Vickberg 1 (0.0%)
Carlos López 1 (0.0%)
Christoph Niedermaier 1 (0.0%)
Yifeng Zhao 1 (0.0%)
Ezra Buehler 1 (0.0%)
yan wang 1 (0.0%)
Oskar Nilsson 1 (0.0%)
Richard Genoud 1 (0.0%)
Vignesh Raghavendra 1 (0.0%)
Linus Walleij 1 (0.0%)
==================================== =====
.. table:: Developers with the most lines removed
:widths: auto
==================================== =====
Name Count
==================================== =====
Patrice Chotard 19307 (30.1%)
Jesse Taube 1211 (1.9%)
Fabio Estevam 561 (0.9%)
Primoz Fiser 241 (0.4%)
Prasad Kummari 191 (0.3%)
Andrew Davis 129 (0.2%)
Samuel Holland 129 (0.2%)
Jiaxun Yang 74 (0.1%)
Quentin Schulz 67 (0.1%)
E Shattow 51 (0.1%)
Judith Mendez 45 (0.1%)
Jonathan Humphreys 44 (0.1%)
Hrushikesh Salunke 37 (0.1%)
Dragan Simic 37 (0.1%)
Lionel Debieve 31 (0.0%)
Tomas Peterka 29 (0.0%)
Chen-Yu Tsai 26 (0.0%)
Stephan Gerhold 15 (0.0%)
Tony Dinh 11 (0.0%)
Baltazár Radics 9 (0.0%)
Heiko Schocher 4 (0.0%)
Mauro Salvini 3 (0.0%)
Jorge Ramirez-Ortiz 2 (0.0%)
No generic patch CC mail please 2 (0.0%)
Arseniy Krasnov 2 (0.0%)
Jimmy Ho 2 (0.0%)
Olaf Baehring 1 (0.0%)
Benjamin ROBIN 1 (0.0%)
Pawel Kochanowski 1 (0.0%)
Liya Huang 1 (0.0%)
Parvathi Pudi 1 (0.0%)
Stefano Babic 1 (0.0%)
Alexander Stein 1 (0.0%)
Hugo Villeneuve 1 (0.0%)
==================================== =====
.. table:: Developers with the most signoffs (total 449)
:widths: auto
==================================== =====
Name Count
==================================== =====
Caleb Connolly 87 (19.4%)
Michal Simek 34 (7.6%)
Heiko Stuebner 19 (4.2%)
Jonas Karlman 15 (3.3%)
Patrice Chotard 14 (3.1%)
Mattijs Korpershoek 12 (2.7%)
Vasileios Bimpikas 12 (2.7%)
Utsav Agarwal 12 (2.7%)
Arturs Artamonovs 12 (2.7%)
Casey Connolly 12 (2.7%)
Ian Roberts 11 (2.4%)
Oliver Gaskell 11 (2.4%)
Alice Guo 11 (2.4%)
Peng Fan 11 (2.4%)
Tien Fong Chee 10 (2.2%)
Andre Przywara 7 (1.6%)
Alper Nebi Yasak 7 (1.6%)
Ilias Apalodimas 7 (1.6%)
Greg Malysa 7 (1.6%)
Patrick Delaunay 7 (1.6%)
Mark Kettenis 6 (1.3%)
Dario Binacchi 6 (1.3%)
Judith Mendez 5 (1.1%)
Michael Trimarchi 5 (1.1%)
Wadim Egorov 5 (1.1%)
Neil Armstrong 5 (1.1%)
Nathan Barrett-Morrison 4 (0.9%)
Svyatoslav Ryhel 4 (0.9%)
Gatien Chevallier 3 (0.7%)
Li Hua Qian 3 (0.7%)
Jan Kiszka 3 (0.7%)
Anurag Dutta 3 (0.7%)
Sughosh Ganu 3 (0.7%)
Neha Malcom Francis 3 (0.7%)
Simon Glass 3 (0.7%)
Tom Rini 3 (0.7%)
Fabio Estevam 2 (0.4%)
Primoz Fiser 2 (0.4%)
Heiko Schocher 2 (0.4%)
Ranjani Vaidyanathan 2 (0.4%)
Mahesh Rao 2 (0.4%)
Stephen Boyd 2 (0.4%)
Angelo Dureghello 2 (0.4%)
Piotr Wojtaszczyk 2 (0.4%)
Andrew Halaney 2 (0.4%)
Heinrich Schuchardt 2 (0.4%)
Ye Li 2 (0.4%)
Andrew Davis 1 (0.2%)
Lionel Debieve 1 (0.2%)
Arseniy Krasnov 1 (0.2%)
Heiko Thiery 1 (0.2%)
Wolfgang Birkner 1 (0.2%)
Haibo Chen 1 (0.2%)
Frank Li 1 (0.2%)
Mark Brown 1 (0.2%)
Ashok Reddy Soma 1 (0.2%)
ZHANG Yuntian 1 (0.2%)
Pan Bian 1 (0.2%)
Richard Weinberger 1 (0.2%)
Ji Luo 1 (0.2%)
Jindong Yue 1 (0.2%)
Francesco Dolcini 1 (0.2%)
Thomas Bourgoin 1 (0.2%)
Raphael Gallais-Pou 1 (0.2%)
Finley Xiao 1 (0.2%)
Basharath Hussain Khaja 1 (0.2%)
Gabriel Nesteruk 1 (0.2%)
AngeloGioacchino Del Regno 1 (0.2%)
Sparsh Kumar 1 (0.2%)
Sebin Francis 1 (0.2%)
Sam Shih 1 (0.2%)
Peter Geis 1 (0.2%)
Viacheslav Bocharov 1 (0.2%)
Beleswar Padhi 1 (0.2%)
Ryan Eatmon 1 (0.2%)
Charan Pedumuru 1 (0.2%)
Walter Schweizer 1 (0.2%)
Prasanth Babu Mantena 1 (0.2%)
Viorel Suman 1 (0.2%)
Nathan Morrisson 1 (0.2%)
Boon Khai Ng 1 (0.2%)
Udit Kumar 1 (0.2%)
Muhammad Hazim Izzat Zamri 1 (0.2%)
Keerthy 1 (0.2%)
Manikandan Muralidharan 1 (0.2%)
Aniket Limaye 1 (0.2%)
Patrick Rudolph 1 (0.2%)
Jonas Schwöbel 1 (0.2%)
Nishanth Menon 1 (0.2%)
Tingting Meng 1 (0.2%)
Marek Vasut 1 (0.2%)
Manorit Chawdhry 1 (0.2%)
==================================== =====
.. table:: Developers with the most reviews (total 1002)
:widths: auto
==================================== =====
Name Count
==================================== =====
Kever Yang 116 (11.6%)
Simon Glass 64 (6.4%)
Ilias Apalodimas 53 (5.3%)
Neil Armstrong 52 (5.2%)
Tom Rini 52 (5.2%)
Leo Yu-Chi Liang 45 (4.5%)
Mattijs Korpershoek 40 (4.0%)
Paul Barker 37 (3.7%)
Marek Vasut 33 (3.3%)
Quentin Schulz 32 (3.2%)
Heinrich Schuchardt 30 (3.0%)
Caleb Connolly 27 (2.7%)
Peng Fan 27 (2.7%)
Tien Fong Chee 26 (2.6%)
Sumit Garg 25 (2.5%)
Patrice Chotard 20 (2.0%)
Patrick Delaunay 20 (2.0%)
E Shattow 19 (1.9%)
Stefan Roese 18 (1.8%)
Bryan Brattlof 17 (1.7%)
Jonas Karlman 16 (1.6%)
Heiko Schocher 16 (1.6%)
Andrew Davis 16 (1.6%)
Matthias Brugger 14 (1.4%)
Jerome Forissier 13 (1.3%)
Daniel Schwierzeck 12 (1.2%)
Jernej Skrabec 12 (1.2%)
Fabio Estevam 9 (0.9%)
Udit Kumar 9 (0.9%)
Andre Przywara 8 (0.8%)
Neha Malcom Francis 8 (0.8%)
Hal Feng 8 (0.8%)
Christopher Obbard 8 (0.8%)
Casey Connolly 7 (0.7%)
Wadim Egorov 6 (0.6%)
Ye Li 6 (0.6%)
Eugen Hristev 6 (0.6%)
Michael Trimarchi 5 (0.5%)
Francesco Dolcini 4 (0.4%)
Roger Quadros 4 (0.4%)
Peter Robinson 4 (0.4%)
Svyatoslav Ryhel 3 (0.3%)
Dhruva Gole 3 (0.3%)
Jaehoon Chung 3 (0.3%)
Tobias Waldekranz 3 (0.3%)
Fabrice Gasnier 3 (0.3%)
Daniel Schultz 3 (0.3%)
Siddharth Vadapalli 3 (0.3%)
Alice Guo 2 (0.2%)
Nishanth Menon 2 (0.2%)
Tudor Ambarus 2 (0.2%)
Joao Marcos Costa 2 (0.2%)
Richard Henderson 2 (0.2%)
Judith Mendez 1 (0.1%)
Sughosh Ganu 1 (0.1%)
Frank Li 1 (0.1%)
AngeloGioacchino Del Regno 1 (0.1%)
Linus Walleij 1 (0.1%)
Ramon Fried 1 (0.1%)
Lukasz Majewski 1 (0.1%)
Maxim Moskalets 1 (0.1%)
Vladimir Oltean 1 (0.1%)
Paul Kocialkowski 1 (0.1%)
Anand Moon 1 (0.1%)
Boris Brezillon 1 (0.1%)
Krzysztof Kozlowski 1 (0.1%)
Sean Anderson 1 (0.1%)
Icenowy Zheng 1 (0.1%)
Yixun Lan 1 (0.1%)
Teresa Remmet 1 (0.1%)
Anshul Dalal 1 (0.1%)
Michael Walle 1 (0.1%)
Alexander Sverdlin 1 (0.1%)
Andy Shevchenko 1 (0.1%)
Love Kumar 1 (0.1%)
Leonard Anderweit 1 (0.1%)
Harrison Mutai 1 (0.1%)
Adam Ford 1 (0.1%)
Christian Marangi 1 (0.1%)
Yao Zi 1 (0.1%)
==================================== =====
.. table:: Developers with the most test credits (total 89)
:widths: auto
==================================== =====
Name Count
==================================== =====
E Shattow 7 (7.9%)
Love Kumar 7 (7.9%)
Ion Agorria 7 (7.9%)
Christopher Obbard 6 (6.7%)
Danila Tikhonov 6 (6.7%)
Jens Reidel 6 (6.7%)
Sumit Garg 4 (4.5%)
Zixun LI 4 (4.5%)
Simon Glass 3 (3.4%)
Neil Armstrong 3 (3.4%)
Sughosh Ganu 3 (3.4%)
Mattijs Korpershoek 2 (2.2%)
Quentin Schulz 2 (2.2%)
Heinrich Schuchardt 2 (2.2%)
Patrice Chotard 2 (2.2%)
Fabio Estevam 2 (2.2%)
Daniel Schultz 2 (2.2%)
Dang Huynh 2 (2.2%)
Peter Robinson 1 (1.1%)
Vladimir Oltean 1 (1.1%)
Adam Ford 1 (1.1%)
Yao Zi 1 (1.1%)
Michal Simek 1 (1.1%)
Prasanth Babu Mantena 1 (1.1%)
Jonathan Humphreys 1 (1.1%)
Tony Dinh 1 (1.1%)
Niklas Sombert 1 (1.1%)
Weizhao Ouyang 1 (1.1%)
Marcel Ziswiler 1 (1.1%)
Faqiang Zhu 1 (1.1%)
Ryan Walklin 1 (1.1%)
Tim Harvey 1 (1.1%)
Nicolas Frattaroli 1 (1.1%)
Raymond Mao 1 (1.1%)
Sam Day 1 (1.1%)
Alexey Minnekhanov 1 (1.1%)
Huan Zhou 1 (1.1%)
==================================== =====
.. table:: Developers who gave the most tested-by credits (total 89)
:widths: auto
==================================== =====
Name Count
==================================== =====
Casey Connolly 19 (21.3%)
Svyatoslav Ryhel 8 (9.0%)
Simon Glass 7 (7.9%)
Neil Armstrong 6 (6.7%)
Ilias Apalodimas 6 (6.7%)
Minda Chen 5 (5.6%)
Mattijs Korpershoek 4 (4.5%)
Heinrich Schuchardt 4 (4.5%)
Jerome Forissier 4 (4.5%)
Marek Vasut 3 (3.4%)
Quentin Schulz 2 (2.2%)
Thomas Schaefer 2 (2.2%)
Michal Simek 1 (1.1%)
Raymond Mao 1 (1.1%)
Tom Rini 1 (1.1%)
Paul Barker 1 (1.1%)
Peng Fan 1 (1.1%)
Patrick Delaunay 1 (1.1%)
Jonas Karlman 1 (1.1%)
Jernej Skrabec 1 (1.1%)
Wadim Egorov 1 (1.1%)
Michael Trimarchi 1 (1.1%)
Heiko Stuebner 1 (1.1%)
Jiaxun Yang 1 (1.1%)
Junhui Liu 1 (1.1%)
Eddie Kovsky 1 (1.1%)
Bruno Leite 1 (1.1%)
Weijie Gao 1 (1.1%)
Venkatesh Yadav Abbarapu 1 (1.1%)
Hari Nagalla 1 (1.1%)
Adriano Cordova 1 (1.1%)
==================================== =====
.. table:: Developers with the most report credits (total 41)
:widths: auto
==================================== =====
Name Count
==================================== =====
Da Xue 6 (14.6%)
Heinrich Schuchardt 4 (9.8%)
Tom Rini 4 (9.8%)
Zixun LI 3 (7.3%)
Francesco Dolcini 2 (4.9%)
Nathaniel Hourt 2 (4.9%)
Kuba Szczodrzyński 2 (4.9%)
Quentin Schulz 1 (2.4%)
Jernej Skrabec 1 (2.4%)
Yao Zi 1 (2.4%)
Tony Dinh 1 (2.4%)
Niklas Sombert 1 (2.4%)
Weizhao Ouyang 1 (2.4%)
Tim Harvey 1 (2.4%)
Sam Day 1 (2.4%)
Anshul Dalal 1 (2.4%)
Heiko Thiery 1 (2.4%)
Keerthy 1 (2.4%)
Enric Balletbo i Serra 1 (2.4%)
Chirag Shilwant 1 (2.4%)
Prashant Shivhare 1 (2.4%)
Chintan Vankar 1 (2.4%)
Parth Pancholi 1 (2.4%)
Christoph Niedermaier 1 (2.4%)
Mikhail Kshevetskiy 1 (2.4%)
==================================== =====
.. table:: Developers who gave the most report credits (total 41)
:widths: auto
==================================== =====
Name Count
==================================== =====
Alexander Graf 7 (17.1%)
Tom Rini 4 (9.8%)
Jerome Forissier 4 (9.8%)
Simon Glass 3 (7.3%)
Mattijs Korpershoek 3 (7.3%)
Andre Przywara 3 (7.3%)
Yao Zi 2 (4.9%)
Andrew Davis 2 (4.9%)
Heinrich Schuchardt 1 (2.4%)
Anshul Dalal 1 (2.4%)
Casey Connolly 1 (2.4%)
Ilias Apalodimas 1 (2.4%)
Marek Vasut 1 (2.4%)
Weijie Gao 1 (2.4%)
Adriano Cordova 1 (2.4%)
Fabio Estevam 1 (2.4%)
Adam Ford 1 (2.4%)
Bryan Brattlof 1 (2.4%)
Alice Guo 1 (2.4%)
Alexander Sverdlin 1 (2.4%)
Bhavya Kapoor 1 (2.4%)
==================================== =====
.. table:: Top changeset contributors by employer
:widths: auto
==================================== =====
Name Count
==================================== =====
(Unknown) 747 (42.0%)
Google LLC 172 (9.7%)
Linaro 169 (9.5%)
Texas Instruments 126 (7.1%)
Konsulko Group 91 (5.1%)
DENX Software Engineering 68 (3.8%)
Renesas Electronics 68 (3.8%)
ARM 61 (3.4%)
ST Microelectronics 52 (2.9%)
Intel 50 (2.8%)
AMD 39 (2.2%)
Phytec 38 (2.1%)
NXP 27 (1.5%)
Amarula Solutions 20 (1.1%)
Bootlin 17 (1.0%)
Toradex 10 (0.6%)
Rockchip 9 (0.5%)
Siemens 8 (0.4%)
Red Hat 3 (0.2%)
BayLibre SAS 1 (0.1%)
Collabora Ltd. 1 (0.1%)
linutronix 1 (0.1%)
Nokia 1 (0.1%)
Socionext Inc. 1 (0.1%)
==================================== =====
.. table:: Top lines changed by employer
:widths: auto
==================================== =====
Name Count
==================================== =====
Konsulko Group 78284 (33.7%)
(Unknown) 59242 (25.5%)
ST Microelectronics 22661 (9.8%)
Texas Instruments 21551 (9.3%)
Google LLC 8757 (3.8%)
Rockchip 7249 (3.1%)
DENX Software Engineering 7195 (3.1%)
Linaro 5651 (2.4%)
Toradex 4661 (2.0%)
Intel 4500 (1.9%)
NXP 3595 (1.5%)
Renesas Electronics 2880 (1.2%)
Amarula Solutions 1604 (0.7%)
Bootlin 1300 (0.6%)
ARM 1049 (0.5%)
AMD 742 (0.3%)
Phytec 522 (0.2%)
Siemens 483 (0.2%)
Socionext Inc. 52 (0.0%)
Nokia 19 (0.0%)
Red Hat 14 (0.0%)
Collabora Ltd. 8 (0.0%)
linutronix 8 (0.0%)
BayLibre SAS 2 (0.0%)
==================================== =====
.. table:: Employers with the most signoffs (total 449)
:widths: auto
==================================== =====
Name Count
==================================== =====
(Unknown) 125 (27.8%)
Linaro 114 (25.4%)
Analog Devices 47 (10.5%)
AMD 34 (7.6%)
NXP 31 (6.9%)
ST Microelectronics 27 (6.0%)
Texas Instruments 22 (4.9%)
Amarula Solutions 11 (2.4%)
ARM 7 (1.6%)
Siemens 7 (1.6%)
Phytec 5 (1.1%)
Konsulko Group 3 (0.7%)
Google LLC 3 (0.7%)
DENX Software Engineering 2 (0.4%)
Red Hat 2 (0.4%)
BayLibre SAS 2 (0.4%)
Canonical 2 (0.4%)
Rockchip 1 (0.2%)
Toradex 1 (0.2%)
Renesas Electronics 1 (0.2%)
Collabora Ltd. 1 (0.2%)
Xilinx 1 (0.2%)
==================================== =====
.. table:: Employers with the most hackers (total 230)
:widths: auto
==================================== =====
Name Count
==================================== =====
(Unknown) 129 (56.1%)
Texas Instruments 27 (11.7%)
Linaro 11 (4.8%)
Toradex 7 (3.0%)
Rockchip 6 (2.6%)
AMD 5 (2.2%)
NXP 5 (2.2%)
ST Microelectronics 5 (2.2%)
Intel 5 (2.2%)
ARM 4 (1.7%)
Phytec 4 (1.7%)
Siemens 3 (1.3%)
DENX Software Engineering 3 (1.3%)
Bootlin 3 (1.3%)
Amarula Solutions 2 (0.9%)
Red Hat 2 (0.9%)
Renesas Electronics 2 (0.9%)
Konsulko Group 1 (0.4%)
Google LLC 1 (0.4%)
BayLibre SAS 1 (0.4%)
Collabora Ltd. 1 (0.4%)
Socionext Inc. 1 (0.4%)
Nokia 1 (0.4%)
linutronix 1 (0.4%)
==================================== =====

View File

@@ -54,7 +54,7 @@ partition string
* name=<NAME> - The partition name, required
* start=<BYTES> - The partition start offset in bytes, required
* size=<BYTES> - The partition size in bytes or "-" to expand it to the whole free area
* size=<BYTES> - The partition size in bytes or "-" for the last partition to expand it to the whole free area
* bootable - Set the legacy bootable flag
* uuid=<UUID> - The partition UUID, optional if CONFIG_RANDOM_UUID=y is enabled
* type=<UUID> - The partition type GUID, requires CONFIG_PARTITION_TYPE_GUID=y
@@ -63,6 +63,23 @@ partition string
If 'uuid' is not specified, but CONFIG_RANDOM_UUID is enabled, a random UUID
will be generated for the partition
If 'type' is not specified or without CONFIG_PARTITION_TYPE_GUID=y,
the used partition type GUID is PARTITION_BASIC_DATA_GUID.
Some strings can be also used at the place of the known partition type GUID:
* "mbr" = LEGACY_MBR_PARTITION_GUID (024DEE41-33E7-11D3-9D69-0008C781F39F)
* "msft" = PARTITION_MSFT_RESERVED_GUID (E3C9E316-0B5C-4DB8-817D-F92DF00215AE)
* "data" = PARTITION_BASIC_DATA_GUID (EBD0A0A2-B9E5-4433-87C0-68B6B72699C7)
* "linux" = PARTITION_LINUX_FILE_SYSTEM_DATA_GUID (0FC63DAF-8483-4772-8E79-3D69D8477DE4)
* "raid" = PARTITION_LINUX_RAID_GUID (A19D880F-05FC-4D3B-A006-743F0F84911E)
* "swap" = PARTITION_LINUX_SWAP_GUID (0657FD6D-A4AB-43C4-84E5-0933C84B4F4F)
* "lvm" = PARTITION_LINUX_LVM_GUID (E6D6D379-F507-44C2-A23C-238F2A3DF928)
* "u-boot-env" = PARTITION_U_BOOT_ENVIRONMENT(3DE21764-95BD-54BD-A5C3-4ABE786F38A8)
* "system" = PARTITION_SYSTEM_GUID (C12A7328-F81F-11D2-BA4B-00A0C93EC93B)
The GPT partitions layout and associated 'type' are also printed with the
:doc:`part command <part>` command by typing "part list".
gpt enumerate
~~~~~~~~~~~~~
@@ -162,16 +179,17 @@ Examples
Create 6 partitions on a disk::
=> setenv gpt_parts 'uuid_disk=bec9fc2a-86c1-483d-8a0e-0109732277d7;
name=boot,start=4M,size=128M,bootable,type=ebd0a0a2-b9e5-4433-87c0-68b6b72699c7,
name=rootfs,size=3072M,type=0fc63daf-8483-4772-8e79-3d69d8477de4;
name=system-data,size=512M,type=0fc63daf-8483-4772-8e79-3d69d8477de4;
name=[ext],size=-,type=0fc63daf-8483-4772-8e79-3d69d8477de4;
name=user,size=-,type=0fc63daf-8483-4772-8e79-3d69d8477de4;
name=modules,size=100M,type=0fc63daf-8483-4772-8e79-3d69d8477de4;
name=ramdisk,size=8M,type=0fc63daf-8483-4772-8e79-3d69d8477de4
=> setenv gpt_parts 'uuid_disk=bec9fc2a-86c1-483d-8a0e-0109732277d7;\
name=boot,start=4M,size=128M,bootable,type=ebd0a0a2-b9e5-4433-87c0-68b6b72699c7;\
name=rootfs,size=3072M,type=0fc63daf-8483-4772-8e79-3d69d8477de4;\
name=system-data,size=512M,type=0fc63daf-8483-4772-8e79-3d69d8477de4;\
name=user,size=512M,type=0fc63daf-8483-4772-8e79-3d69d8477de4;\
name=modules,size=100M,type=0fc63daf-8483-4772-8e79-3d69d8477de4;\
name=ramdisk,size=8M,type=0fc63daf-8483-4772-8e79-3d69d8477de4;\
name=[ext],size=-,type=0fc63daf-8483-4772-8e79-3d69d8477de4'
=> gpt write mmc 0 $gpt_parts
Last partition "[ext]" with '-' is extended up to the end of the disk
Verify that the device matches the partition layout described in the variable
$gpt_parts::
@@ -228,3 +246,60 @@ Swap the order of the 'boot' and 'rootfs' partition table entries::
=> gpt setenv mmc 0 boot
=> echo ${gpt_partition_entry}
2
Other example: a disk with known partition types::
=> setenv gpt_parts 'name=u-boot,size=32M,type=data;\
name=env,size=1M,type=u-boot-env;
name=ESP,size=128M,type=system;
name=rootfs,size=3072M,type=linux;
name=swap,size=100M,type=swap;
name=user,size=-,type=linux'
=> gpt write mmc 0 $gpt_parts
=> part list mmc 0
Partition Map for mmc device 0 -- Partition Type: EFI
Part Start LBA End LBA Name
Attributes
Type GUID
Partition GUID
1 0x00000022 0x00010021 "u-boot"
attrs: 0x0000000000000000
type: ebd0a0a2-b9e5-4433-87c0-68b6b72699c7
(data)
guid: 502d48f6-81c0-488f-bdc0-ad602498f3ce
2 0x00010022 0x00010821 "env"
attrs: 0x0000000000000000
type: 3de21764-95bd-54bd-a5c3-4abe786f38a8
(u-boot-env)
guid: 9dc62338-459a-485e-bd8f-b3fbf728d9c0
3 0x00010822 0x00050821 "ESP"
attrs: 0x0000000000000000
type: c12a7328-f81f-11d2-ba4b-00a0c93ec93b
(EFI System Partition)
guid: 8a3a1168-6af8-4ba7-a95d-9cd0d14e1b3d
4 0x00050822 0x00650821 "rootfs"
attrs: 0x0000000000000000
type: 0fc63daf-8483-4772-8e79-3d69d8477de4
(linux)
guid: 411ffebc-8a19-469d-99a9-0982409a6851
5 0x00650822 0x00682821 "swap"
attrs: 0x0000000000000000
type: 0657fd6d-a4ab-43c4-84e5-0933c84b4f4f
(swap)
guid: f8ec0410-95ec-4e3e-8b98-fb8cf271a201
6 0x00682822 0x01dacbde "user"
attrs: 0x0000000000000000
type: 0fc63daf-8483-4772-8e79-3d69d8477de4
(linux)
guid: c5543e1c-566d-4502-99ad-20545007e673
Modifying GPT partition layout from U-Boot::
=> gpt read mmc 0 current_partitions
=> env edit current_partitions
edit: uuid_disk=[...];name=part1,start=0x4000,size=0x4000,uuid=[...];
name=part2,start=0xc000,size=0xc000,uuid=[...];[ . . . ]
=> gpt write mmc 0 $current_partitions
=> gpt verify mmc 0 $current_partitions

View File

@@ -185,13 +185,6 @@ TCP Selective Acknowledgments in the legacy network stack can be enabled via
CONFIG_PROT_TCP_SACK=y. This will improve the download speed. Selective
Acknowledgments are enabled by default with lwIP.
.. note::
U-Boot currently has no way to verify certificates for HTTPS.
A place to store the root CA certificates is needed, and then MBed TLS would
need to walk the entire chain. Therefore, man-in-the middle attacks are
possible and HTTPS should not be relied upon for payload authentication.
Return value
------------

View File

@@ -117,7 +117,7 @@ static int mmc_file_op(enum dfu_op op, struct dfu_entity *dfu,
return -1;
}
snprintf(dev_part_str, sizeof(dev_part_str), "%d:%d",
snprintf(dev_part_str, sizeof(dev_part_str), "%d:%x",
dfu->data.mmc.dev, dfu->data.mmc.part);
ret = fs_set_blk_dev("mmc", dev_part_str, fstype);

View File

@@ -96,7 +96,7 @@ static int scsi_file_op(enum dfu_op op, struct dfu_entity *dfu, u64 offset, void
return -1;
}
snprintf(dev_part_str, sizeof(dev_part_str), "%d:%d", dfu->data.scsi.dev,
snprintf(dev_part_str, sizeof(dev_part_str), "%d:%x", dfu->data.scsi.dev,
dfu->data.scsi.part);
ret = fs_set_blk_dev("scsi", dev_part_str, fstype);

View File

@@ -40,6 +40,11 @@ static int i2c_mux_child_post_bind(struct udevice *dev)
struct i2c_mux_bus *plat = dev_get_parent_plat(dev);
int channel;
ofnode node = dev_ofnode(dev);
if (!ofnode_has_property(node, "reg"))
return 0;
channel = dev_read_u32_default(dev, "reg", -1);
if (channel < 0)
return -EINVAL;

View File

@@ -528,7 +528,7 @@ config SPL_MMC_SDHCI_ADMA
config MMC_SDHCI_ADMA_FORCE_32BIT
bool "Force 32 bit mode for ADMA on 64 bit platforms"
depends on MMC_SDHCI_ADMA || SPL_MMC_SDHCI_ADMA
depends on MMC_SDHCI_ADMA_HELPERS
help
This forces SDHCI ADMA to be built for 32 bit descriptors, even
on a 64 bit platform where they would otherwise be assumed to
@@ -538,7 +538,7 @@ config MMC_SDHCI_ADMA_FORCE_32BIT
config MMC_SDHCI_ADMA_64BIT
bool "Use SHDCI ADMA with 64 bit descriptors"
depends on MMC_SDHCI_ADMA || SPL_MMC_SDHCI_ADMA
depends on MMC_SDHCI_ADMA_HELPERS
depends on !MMC_SDHCI_ADMA_FORCE_32BIT
default y if DMA_ADDR_T_64BIT
help

View File

@@ -716,7 +716,7 @@ static int _dw_free_pkt(struct dw_eth_dev *priv)
ulong desc_start = (ulong)desc_p;
ulong desc_end = desc_start +
roundup(sizeof(*desc_p), ARCH_DMA_MINALIGN);
ulong data_start = desc_p->dmamac_addr;
ulong data_start = dev_bus_to_phys(priv->dev, desc_p->dmamac_addr);
ulong data_end = data_start + roundup(CFG_ETH_BUFSIZE, ARCH_DMA_MINALIGN);
/* Invalidate the descriptor buffer data */

View File

@@ -282,7 +282,6 @@ U_BOOT_DRIVER(ti_musb_peripheral) = {
.ops = &ti_musb_gadget_ops,
.probe = ti_musb_peripheral_probe,
.remove = ti_musb_peripheral_remove,
.ops = &musb_usb_ops,
.plat_auto = sizeof(struct ti_musb_plat),
.priv_auto = sizeof(struct ti_musb_peripheral),
.flags = DM_FLAG_PRE_RELOC,

View File

@@ -0,0 +1,666 @@
// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
/*
* Device Tree Source for the R-Car V4H ES3.0 Sparrow Hawk board
*
* Copyright (C) 2025 Marek Vasut <marek.vasut+renesas@mailbox.org>
*/
/dts-v1/;
#include <dt-bindings/gpio/gpio.h>
#include "r8a779g3.dtsi"
/ {
model = "Retronix Sparrow Hawk board based on r8a779g3";
compatible = "retronix,sparrow-hawk", "renesas,r8a779g3",
"renesas,r8a779g0";
aliases {
ethernet0 = &avb0;
i2c0 = &i2c0;
i2c1 = &i2c1;
i2c2 = &i2c2;
i2c3 = &i2c3;
i2c4 = &i2c4;
i2c5 = &i2c5;
serial0 = &hscif0;
serial1 = &hscif1;
serial2 = &hscif3;
spi0 = &rpc;
};
chosen {
bootargs = "ignore_loglevel rw root=/dev/nfs ip=on";
stdout-path = "serial0:921600n8";
};
/* Page 31 / FAN */
fan: pwm-fan {
pinctrl-0 = <&irq4_pins>;
pinctrl-names = "default";
compatible = "pwm-fan";
#cooling-cells = <2>;
interrupts-extended = <&intc_ex 4 IRQ_TYPE_EDGE_FALLING>;
/*
* The fan model connected to this device can be selected
* by user. Set "cooling-levels" DT property to single 255
* entry to force the fan PWM into constant HIGH, which
* forces the fan to spin at maximum RPM, thus providing
* maximum cooling to this device and protection against
* misconfigured PWM duty cycle to the fan.
*
* User has to configure "pwms" and "pulses-per-revolution"
* DT properties according to fan datasheet first, and then
* extend "cooling-levels = <0 m n ... 255>" property to
* achieve proper fan control compatible with fan model
* installed by user.
*/
cooling-levels = <255>;
pulses-per-revolution = <2>;
pwms = <&pwm0 0 50000>;
};
/*
* Page 15 / LPDDR5
*
* This configuration listed below is for the 8 GiB board variant
* with MT62F1G64D8EK-023 WT:C LPDDR5 part populated on the board.
*
* A variant with 16 GiB MT62F2G64D8EK-023 WT:C part populated on
* the board is automatically handled by the bootloader, which
* adjusts the correct DRAM size into the memory nodes below.
*/
memory@48000000 {
device_type = "memory";
/* first 128MB is reserved for secure area. */
reg = <0x0 0x48000000 0x0 0x78000000>;
};
memory@480000000 {
device_type = "memory";
reg = <0x4 0x80000000 0x0 0x80000000>;
};
memory@600000000 {
device_type = "memory";
reg = <0x6 0x00000000 0x1 0x00000000>;
};
/* Page 27 / DSI to Display */
mini-dp-con {
compatible = "dp-connector";
label = "CN6";
type = "full-size";
port {
mini_dp_con_in: endpoint {
remote-endpoint = <&sn65dsi86_out>;
};
};
};
reg_1p2v: regulator-1p2v {
compatible = "regulator-fixed";
regulator-name = "fixed-1.2V";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
regulator-boot-on;
regulator-always-on;
};
reg_1p8v: regulator-1p8v {
compatible = "regulator-fixed";
regulator-name = "fixed-1.8V";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-boot-on;
regulator-always-on;
};
reg_3p3v: regulator-3p3v {
compatible = "regulator-fixed";
regulator-name = "fixed-3.3V";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-boot-on;
regulator-always-on;
};
/* Page 27 / DSI to Display */
sn65dsi86_refclk: clk-x9 {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <38400000>;
};
/* Page 17 uSD-Slot */
vcc_sdhi: regulator-vcc-sdhi {
compatible = "regulator-gpio";
regulator-name = "SDHI VccQ";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <3300000>;
gpios = <&gpio8 13 GPIO_ACTIVE_HIGH>;
gpios-states = <1>;
states = <3300000 0>, <1800000 1>;
};
};
/* Page 22 / Ether_AVB0 */
&avb0 {
pinctrl-0 = <&avb0_pins>;
pinctrl-names = "default";
phy-handle = <&avb0_phy>;
tx-internal-delay-ps = <2000>;
status = "okay";
mdio {
#address-cells = <1>;
#size-cells = <0>;
avb0_phy: ethernet-phy@0 { /* KSZ9031RNXVB */
compatible = "ethernet-phy-id0022.1622",
"ethernet-phy-ieee802.3-c22";
rxc-skew-ps = <1500>;
reg = <0>;
/* AVB0_PHY_INT_V */
interrupts-extended = <&gpio7 5 IRQ_TYPE_LEVEL_LOW>;
/* GP7_10/AVB0_RESETN_V */
reset-gpios = <&gpio7 10 GPIO_ACTIVE_LOW>;
reset-assert-us = <10000>;
reset-deassert-us = <300>;
};
};
};
/* Page 28 / CANFD_IF */
&can_clk {
clock-frequency = <40000000>;
};
/* Page 28 / CANFD_IF */
&canfd {
pinctrl-0 = <&canfd3_pins>, <&canfd4_pins>, <&can_clk_pins>;
pinctrl-names = "default";
status = "okay";
channel3 {
status = "okay";
};
channel4 {
status = "okay";
};
};
/* Page 27 / DSI to Display */
&dsi1 {
status = "okay";
ports {
port@1 {
dsi1_out: endpoint {
remote-endpoint = <&sn65dsi86_in>;
data-lanes = <1 2 3 4>;
};
};
};
};
/* Page 27 / DSI to Display */
&du {
status = "okay";
};
/* Page 5 / R-Car V4H_INT_I2C */
&extal_clk { /* X3 */
clock-frequency = <16666666>;
};
/* Page 5 / R-Car V4H_INT_I2C */
&extalr_clk { /* X2 */
clock-frequency = <32768>;
};
/* Page 26 / 2230 Key M M.2 */
&gpio4 {
/* 9FGV0441 nOE inputs 0 and 1 */
pcie-m2-oe-hog {
gpio-hog;
gpios = <21 GPIO_ACTIVE_HIGH>;
output-low;
line-name = "PCIe-CLK-nOE-M2";
};
/* 9FGV0441 nOE inputs 2 and 3 */
pcie-usb-oe-hog {
gpio-hog;
gpios = <22 GPIO_ACTIVE_HIGH>;
output-low;
line-name = "PCIe-CLK-nOE-USB";
};
};
/* Page 23 / DEBUG */
&hscif0 { /* FTDI ADBUS[3:0] */
pinctrl-0 = <&hscif0_pins>;
pinctrl-names = "default";
uart-has-rtscts;
bootph-all;
status = "okay";
};
/* Page 23 / DEBUG */
&hscif1 { /* FTDI BDBUS[3:0] */
pinctrl-0 = <&hscif1_pins>;
pinctrl-names = "default";
uart-has-rtscts;
status = "okay";
};
/* Page 24 / UART */
&hscif3 { /* CN7 pins 8 (TX) and 10 (RX) */
pinctrl-0 = <&hscif3_pins>;
pinctrl-names = "default";
status = "okay";
};
/* Page 24 / I2C SWITCH */
&i2c0 {
#address-cells = <1>;
#size-cells = <0>;
pinctrl-0 = <&i2c0_pins>;
pinctrl-names = "default";
clock-frequency = <400000>;
status = "okay";
mux@71 {
compatible = "nxp,pca9544"; /* TCA9544 */
reg = <0x71>;
#address-cells = <1>;
#size-cells = <0>;
vdd-supply = <&reg_3p3v>;
i2c0_mux0: i2c@0 {
reg = <0>;
#address-cells = <1>;
#size-cells = <0>;
/* Page 27 / DSI to Display */
bridge@2c {
pinctrl-0 = <&irq0_pins>;
pinctrl-names = "default";
compatible = "ti,sn65dsi86";
reg = <0x2c>;
clocks = <&sn65dsi86_refclk>;
clock-names = "refclk";
interrupts-extended = <&intc_ex 0 IRQ_TYPE_LEVEL_HIGH>;
enable-gpios = <&gpio2 1 GPIO_ACTIVE_HIGH>;
vccio-supply = <&reg_1p8v>;
vpll-supply = <&reg_1p8v>;
vcca-supply = <&reg_1p2v>;
vcc-supply = <&reg_1p2v>;
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
sn65dsi86_in: endpoint {
remote-endpoint = <&dsi1_out>;
};
};
port@1 {
reg = <1>;
sn65dsi86_out: endpoint {
remote-endpoint = <&mini_dp_con_in>;
};
};
};
};
};
i2c0_mux1: i2c@1 {
reg = <1>;
#address-cells = <1>;
#size-cells = <0>;
};
i2c0_mux2: i2c@2 {
reg = <2>;
#address-cells = <1>;
#size-cells = <0>;
};
i2c0_mux3: i2c@3 {
reg = <3>;
#address-cells = <1>;
#size-cells = <0>;
};
};
};
/* Page 29 / CSI_IF_CN / CAM_CN0 */
&i2c1 {
#address-cells = <1>;
#size-cells = <0>;
pinctrl-0 = <&i2c1_pins>;
pinctrl-names = "default";
};
/* Page 29 / CSI_IF_CN / CAM_CN1 */
&i2c2 {
#address-cells = <1>;
#size-cells = <0>;
pinctrl-0 = <&i2c2_pins>;
pinctrl-names = "default";
};
/* Page 31 / IO_CN */
&i2c3 {
#address-cells = <1>;
#size-cells = <0>;
pinctrl-0 = <&i2c3_pins>;
pinctrl-names = "default";
};
/* Page 31 / IO_CN */
&i2c4 {
#address-cells = <1>;
#size-cells = <0>;
pinctrl-0 = <&i2c4_pins>;
pinctrl-names = "default";
};
/* Page 18 / POWER_CORE and Page 19 / POWER_PMIC */
&i2c5 {
#address-cells = <1>;
#size-cells = <0>;
pinctrl-0 = <&i2c5_pins>;
pinctrl-names = "default";
};
/* Page 17 uSD-Slot */
&mmc0 {
pinctrl-0 = <&sd_pins>;
pinctrl-1 = <&sd_uhs_pins>;
pinctrl-names = "default", "state_uhs";
bus-width = <4>;
cd-gpios = <&gpio3 11 GPIO_ACTIVE_LOW>; /* SD_CD */
sd-uhs-sdr50;
sd-uhs-sdr104;
vmmc-supply = <&reg_3p3v>;
vqmmc-supply = <&vcc_sdhi>;
status = "okay";
};
/* Page 26 / 2230 Key M M.2 */
&pcie0_clkref {
clock-frequency = <100000000>;
};
&pciec0 {
reset-gpios = <&gpio2 2 GPIO_ACTIVE_LOW>;
status = "okay";
};
/* Page 25 / PCIe to USB */
&pcie1_clkref {
clock-frequency = <100000000>;
};
&pciec1 {
/* uPD720201 is PCIe Gen2 x1 device */
num-lanes = <1>;
reset-gpios = <&gpio2 0 GPIO_ACTIVE_LOW>;
status = "okay";
};
&pfc {
pinctrl-0 = <&scif_clk_pins>;
pinctrl-names = "default";
/* Page 22 / Ether_AVB0 */
avb0_pins: avb0 {
mux {
groups = "avb0_link", "avb0_mdio", "avb0_rgmii",
"avb0_txcrefclk";
function = "avb0";
};
pins-mdio {
groups = "avb0_mdio";
drive-strength = <21>;
};
pins-mii {
groups = "avb0_rgmii";
drive-strength = <21>;
};
};
/* Page 28 / CANFD_IF */
can_clk_pins: can-clk {
groups = "can_clk";
function = "can_clk";
};
/* Page 28 / CANFD_IF */
canfd3_pins: canfd3 {
groups = "canfd3_data";
function = "canfd3";
};
/* Page 28 / CANFD_IF */
canfd4_pins: canfd4 {
groups = "canfd4_data";
function = "canfd4";
};
/* Page 23 / DEBUG */
hscif0_pins: hscif0 {
groups = "hscif0_data", "hscif0_ctrl";
function = "hscif0";
};
/* Page 23 / DEBUG */
hscif1_pins: hscif1 {
groups = "hscif1_data_a", "hscif1_ctrl_a";
function = "hscif1";
};
/* Page 24 / UART */
hscif3_pins: hscif3 {
groups = "hscif3_data_a";
function = "hscif3";
};
/* Page 24 / I2C SWITCH */
i2c0_pins: i2c0 {
groups = "i2c0";
function = "i2c0";
};
/* Page 29 / CSI_IF_CN / CAM_CN0 */
i2c1_pins: i2c1 {
groups = "i2c1";
function = "i2c1";
};
/* Page 29 / CSI_IF_CN / CAM_CN1 */
i2c2_pins: i2c2 {
groups = "i2c2";
function = "i2c2";
};
/* Page 31 / IO_CN */
i2c3_pins: i2c3 {
groups = "i2c3";
function = "i2c3";
};
/* Page 31 / IO_CN */
i2c4_pins: i2c4 {
groups = "i2c4";
function = "i2c4";
};
/* Page 18 / POWER_CORE */
i2c5_pins: i2c5 {
groups = "i2c5";
function = "i2c5";
};
/* Page 27 / DSI to Display */
irq0_pins: irq0 {
groups = "intc_ex_irq0_a";
function = "intc_ex";
};
/* Page 31 / FAN */
irq4_pins: irq4 {
groups = "intc_ex_irq4_b";
function = "intc_ex";
};
/* Page 31 / FAN */
pwm0_pins: pwm0 {
groups = "pwm0";
function = "pwm0";
};
/* Page 31 / CN7 pin 12 */
pwm1_pins: pwm1 {
groups = "pwm1_b";
function = "pwm1";
};
/* Page 31 / CN7 pin 32 */
pwm6_pins: pwm6 {
groups = "pwm6";
function = "pwm6";
};
/* Page 31 / CN7 pin 33 */
pwm7_pins: pwm7 {
groups = "pwm7";
function = "pwm7";
};
/* Page 16 / QSPI_FLASH */
qspi0_pins: qspi0 {
groups = "qspi0_ctrl", "qspi0_data4";
function = "qspi0";
bootph-all;
};
/* Page 6 / SCIF_CLK_SOC_V */
scif_clk_pins: scif-clk {
groups = "scif_clk";
function = "scif_clk";
};
/* Page 17 uSD-Slot */
sd_pins: sd {
groups = "mmc_data4", "mmc_ctrl";
function = "mmc";
power-source = <3300>;
};
/* Page 17 uSD-Slot */
sd_uhs_pins: sd-uhs {
groups = "mmc_data4", "mmc_ctrl";
function = "mmc";
power-source = <1800>;
};
};
/* Page 31 / FAN */
&pwm0 {
pinctrl-0 = <&pwm0_pins>;
pinctrl-names = "default";
status = "okay";
};
/* Page 31 / CN7 pin 12 */
&pwm1 {
pinctrl-0 = <&pwm1_pins>;
pinctrl-names = "default";
status = "okay";
};
/* Page 31 / CN7 pin 32 */
&pwm6 {
pinctrl-0 = <&pwm6_pins>;
pinctrl-names = "default";
status = "okay";
};
/* Page 31 / CN7 pin 33 */
&pwm7 {
pinctrl-0 = <&pwm7_pins>;
pinctrl-names = "default";
status = "okay";
};
/* Page 16 / QSPI_FLASH */
&rpc {
pinctrl-0 = <&qspi0_pins>;
pinctrl-names = "default";
bootph-all;
status = "okay";
flash@0 {
compatible = "spansion,s25fs512s", "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <40000000>;
spi-rx-bus-width = <4>;
spi-tx-bus-width = <4>;
bootph-all;
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
boot@0 {
reg = <0x0 0x1000000>;
read-only;
};
user@1000000 {
reg = <0x1000000 0x2f80000>;
};
env1@3f80000 {
reg = <0x3f80000 0x40000>;
};
env2@3fc0000 {
reg = <0x3fc0000 0x40000>;
};
};
};
};
&rwdt {
timeout-sec = <60>;
status = "okay";
};
/* Page 6 / SCIF_CLK_SOC_V */
&scif_clk { /* X12 */
clock-frequency = <24000000>;
};

View File

@@ -0,0 +1,14 @@
/* SPDX-License-Identifier: GPL-2.0+ */
/*
* include/configs/sparrowhawk.h
* This file is Sparrow Hawk board configuration.
*
* Copyright (C) 2025 Marek Vasut <marek.vasut+renesas@mailbox.org>
*/
#ifndef __SPARROWHAWK_H
#define __SPARROWHAWK_H
#include "rcar-gen4-common.h"
#endif /* __SPARROWHAWK_H */

View File

@@ -1688,7 +1688,7 @@ struct sig_header_s {
*/
int image_pre_load(ulong addr);
#if defined(USE_HOSTCC)
#if defined(USE_HOSTCC) && CONFIG_IS_ENABLED(LIBCRYPTO)
/**
* rsa_verify_openssl() - Verify a signature against some data with openssl API
*

View File

@@ -176,7 +176,7 @@ int _log_buffer(enum log_category_t cat, enum log_level_t level,
#define _LOG_MAX_LEVEL LOGL_INFO
#endif
#define log_emer(_fmt...) log(LOG_CATEGORY, LOGL_EMERG, ##_fmt)
#define log_emerg(_fmt...) log(LOG_CATEGORY, LOGL_EMERG, ##_fmt)
#define log_alert(_fmt...) log(LOG_CATEGORY, LOGL_ALERT, ##_fmt)
#define log_crit(_fmt...) log(LOG_CATEGORY, LOGL_CRIT, ##_fmt)
#define log_err(_fmt...) log(LOG_CATEGORY, LOGL_ERR, ##_fmt)

View File

@@ -1133,7 +1133,7 @@ efi_status_t efi_bootmgr_update_media_device_boot_option(void)
{
u32 i;
efi_status_t ret;
efi_uintn_t count, num, total;
efi_uintn_t count, num, total = 0;
efi_handle_t *handles = NULL;
struct eficonfig_media_boot_option *opt = NULL;

View File

@@ -570,7 +570,7 @@ int rsa_verify(struct image_sign_info *info,
uint8_t hash[info->crypto->key_len];
int ret;
#ifdef USE_HOSTCC
#if defined(USE_HOSTCC) && CONFIG_IS_ENABLED(LIBCRYPTO)
if (!info->fdt_blob)
return rsa_verify_openssl(info, region, region_count, sig, sig_len);
#endif

View File

@@ -62,184 +62,197 @@ int uuid_str_valid(const char *uuid)
return 1;
}
/*
* Array of string (short and long) for known GUID of GPT partition type
* at least one string must be present, @type or @description
*
* @type : short name for the parameter 'type' of gpt command (max size UUID_STR_LEN = 36,
* no space), also used as fallback description when the next field is absent
* @description : long description associated to type GUID, used for %pUs
* @guid : known type GUID value
*/
static const struct {
const char *string;
const char *type;
const char *description;
efi_guid_t guid;
} list_guid[] = {
#ifndef USE_HOSTCC
#if defined(CONFIG_PARTITION_TYPE_GUID) || defined(CONFIG_CMD_EFIDEBUG) || \
defined(CONFIG_EFI)
{"EFI System Partition", PARTITION_SYSTEM_GUID},
#endif
#ifdef CONFIG_PARTITION_TYPE_GUID
{"mbr", LEGACY_MBR_PARTITION_GUID},
{"msft", PARTITION_MSFT_RESERVED_GUID},
{"data", PARTITION_BASIC_DATA_GUID},
{"linux", PARTITION_LINUX_FILE_SYSTEM_DATA_GUID},
{"raid", PARTITION_LINUX_RAID_GUID},
{"swap", PARTITION_LINUX_SWAP_GUID},
{"lvm", PARTITION_LINUX_LVM_GUID},
{"u-boot-env", PARTITION_U_BOOT_ENVIRONMENT},
{"cros-kern", PARTITION_CROS_KERNEL},
{"cros-root", PARTITION_CROS_ROOT},
{"cros-fw", PARTITION_CROS_FIRMWARE},
{"cros-rsrv", PARTITION_CROS_RESERVED},
#endif
#if CONFIG_IS_ENABLED(EFI_PARTITION)
{"mbr", NULL, LEGACY_MBR_PARTITION_GUID},
{"msft", NULL, PARTITION_MSFT_RESERVED_GUID},
{"data", NULL, PARTITION_BASIC_DATA_GUID},
{"linux", NULL, PARTITION_LINUX_FILE_SYSTEM_DATA_GUID},
{"raid", NULL, PARTITION_LINUX_RAID_GUID},
{"swap", NULL, PARTITION_LINUX_SWAP_GUID},
{"lvm", NULL, PARTITION_LINUX_LVM_GUID},
{"u-boot-env", NULL, PARTITION_U_BOOT_ENVIRONMENT},
{"cros-kern", NULL, PARTITION_CROS_KERNEL},
{"cros-root", NULL, PARTITION_CROS_ROOT},
{"cros-fw", NULL, PARTITION_CROS_FIRMWARE},
{"cros-rsrv", NULL, PARTITION_CROS_RESERVED},
{
"system", "EFI System Partition",
PARTITION_SYSTEM_GUID,
},
#if defined(CONFIG_CMD_EFIDEBUG) || defined(CONFIG_EFI)
{
"Device Path",
NULL, "Device Path",
PARTITION_SYSTEM_GUID,
},
{
NULL, "Device Path",
EFI_DEVICE_PATH_PROTOCOL_GUID,
},
{
"Device Path To Text",
NULL, "Device Path To Text",
EFI_DEVICE_PATH_TO_TEXT_PROTOCOL_GUID,
},
{
"Device Path Utilities",
NULL, "Device Path Utilities",
EFI_DEVICE_PATH_UTILITIES_PROTOCOL_GUID,
},
{
"Unicode Collation 2",
NULL, "Unicode Collation 2",
EFI_UNICODE_COLLATION_PROTOCOL2_GUID,
},
{
"Driver Binding",
NULL, "Driver Binding",
EFI_DRIVER_BINDING_PROTOCOL_GUID,
},
{
"Simple Text Input",
NULL, "Simple Text Input",
EFI_SIMPLE_TEXT_INPUT_PROTOCOL_GUID,
},
{
"Simple Text Input Ex",
NULL, "Simple Text Input Ex",
EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL_GUID,
},
{
"Simple Text Output",
NULL, "Simple Text Output",
EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL_GUID,
},
{
"Block IO",
NULL, "Block IO",
EFI_BLOCK_IO_PROTOCOL_GUID,
},
{
"Disk IO",
NULL, "Disk IO",
EFI_DISK_IO_PROTOCOL_GUID,
},
{
"Simple File System",
NULL, "Simple File System",
EFI_SIMPLE_FILE_SYSTEM_PROTOCOL_GUID,
},
{
"Loaded Image",
NULL, "Loaded Image",
EFI_LOADED_IMAGE_PROTOCOL_GUID,
},
{
"Loaded Image Device Path",
NULL, "Loaded Image Device Path",
EFI_LOADED_IMAGE_DEVICE_PATH_PROTOCOL_GUID,
},
{
"Graphics Output",
NULL, "Graphics Output",
EFI_GRAPHICS_OUTPUT_PROTOCOL_GUID,
},
{
"HII String",
NULL, "HII String",
EFI_HII_STRING_PROTOCOL_GUID,
},
{
"HII Database",
NULL, "HII Database",
EFI_HII_DATABASE_PROTOCOL_GUID,
},
{
"HII Config Access",
NULL, "HII Config Access",
EFI_HII_CONFIG_ACCESS_PROTOCOL_GUID,
},
{
"HII Config Routing",
NULL, "HII Config Routing",
EFI_HII_CONFIG_ROUTING_PROTOCOL_GUID,
},
{
"Load File",
NULL, "Load File",
EFI_LOAD_FILE_PROTOCOL_GUID,
},
{
"Load File2",
NULL, "Load File2",
EFI_LOAD_FILE2_PROTOCOL_GUID,
},
{
"Random Number Generator",
NULL, "Random Number Generator",
EFI_RNG_PROTOCOL_GUID,
},
{
"Simple Network",
NULL, "Simple Network",
EFI_SIMPLE_NETWORK_PROTOCOL_GUID,
},
{
"PXE Base Code",
NULL, "PXE Base Code",
EFI_PXE_BASE_CODE_PROTOCOL_GUID,
},
{
"Device-Tree Fixup",
NULL, "Device-Tree Fixup",
EFI_DT_FIXUP_PROTOCOL_GUID,
},
{
"TCG2",
NULL, "TCG2",
EFI_TCG2_PROTOCOL_GUID,
},
{
"Firmware Management",
NULL, "Firmware Management",
EFI_FIRMWARE_MANAGEMENT_PROTOCOL_GUID
},
#if IS_ENABLED(CONFIG_EFI_HTTP_PROTOCOL)
{
"HTTP",
NULL, "HTTP",
EFI_HTTP_PROTOCOL_GUID,
},
{
"HTTP Service Binding",
NULL, "HTTP Service Binding",
EFI_HTTP_SERVICE_BINDING_PROTOCOL_GUID,
},
{
"IPv4 Config2",
NULL, "IPv4 Config2",
EFI_IP4_CONFIG2_PROTOCOL_GUID,
},
#endif
/* Configuration table GUIDs */
{
"ACPI table",
NULL, "ACPI table",
EFI_ACPI_TABLE_GUID,
},
{
"EFI System Resource Table",
NULL, "EFI System Resource Table",
EFI_SYSTEM_RESOURCE_TABLE_GUID,
},
{
"device tree",
NULL, "device tree",
EFI_FDT_GUID,
},
{
"SMBIOS table",
NULL, "SMBIOS table",
SMBIOS_TABLE_GUID,
},
{
"SMBIOS3 table",
NULL, "SMBIOS3 table",
SMBIOS3_TABLE_GUID,
},
{
"Runtime properties",
NULL, "Runtime properties",
EFI_RT_PROPERTIES_TABLE_GUID,
},
{
"TCG2 Final Events Table",
NULL, "TCG2 Final Events Table",
EFI_TCG2_FINAL_EVENTS_TABLE_GUID,
},
{
"EFI Conformance Profiles Table",
NULL, "EFI Conformance Profiles Table",
EFI_CONFORMANCE_PROFILES_TABLE_GUID,
},
#ifdef CONFIG_EFI_RISCV_BOOT_PROTOCOL
{
"RISC-V Boot",
NULL, "RISC-V Boot",
RISCV_EFI_BOOT_PROTOCOL_GUID,
},
#endif
@@ -247,35 +260,36 @@ static const struct {
#ifdef CONFIG_CMD_NVEDIT_EFI
/* signature database */
{
"EFI_GLOBAL_VARIABLE_GUID",
"EFI_GLOBAL_VARIABLE_GUID", NULL,
EFI_GLOBAL_VARIABLE_GUID,
},
{
"EFI_IMAGE_SECURITY_DATABASE_GUID",
"EFI_IMAGE_SECURITY_DATABASE_GUID", NULL,
EFI_IMAGE_SECURITY_DATABASE_GUID,
},
/* certificate types */
{
"EFI_CERT_SHA256_GUID",
"EFI_CERT_SHA256_GUID", NULL,
EFI_CERT_SHA256_GUID,
},
{
"EFI_CERT_X509_GUID",
"EFI_CERT_X509_GUID", NULL,
EFI_CERT_X509_GUID,
},
{
"EFI_CERT_TYPE_PKCS7_GUID",
"EFI_CERT_TYPE_PKCS7_GUID", NULL,
EFI_CERT_TYPE_PKCS7_GUID,
},
#endif
#if defined(CONFIG_CMD_EFIDEBUG) || defined(CONFIG_EFI)
{ "EFI_LZMA_COMPRESSED", EFI_LZMA_COMPRESSED },
{ "EFI_DXE_SERVICES", EFI_DXE_SERVICES },
{ "EFI_HOB_LIST", EFI_HOB_LIST },
{ "EFI_MEMORY_TYPE", EFI_MEMORY_TYPE },
{ "EFI_MEM_STATUS_CODE_REC", EFI_MEM_STATUS_CODE_REC },
{ "EFI_GUID_EFI_ACPI1", EFI_GUID_EFI_ACPI1 },
{ "EFI_LZMA_COMPRESSED", NULL, EFI_LZMA_COMPRESSED },
{ "EFI_DXE_SERVICES", NULL, EFI_DXE_SERVICES },
{ "EFI_HOB_LIST", NULL, EFI_HOB_LIST },
{ "EFI_MEMORY_TYPE", NULL, EFI_MEMORY_TYPE },
{ "EFI_MEM_STATUS_CODE_REC", NULL, EFI_MEM_STATUS_CODE_REC },
{ "EFI_GUID_EFI_ACPI1", NULL, EFI_GUID_EFI_ACPI1 },
#endif
#endif /* EFI_PARTITION */
#endif /* !USE_HOSTCC */
};
@@ -284,7 +298,8 @@ int uuid_guid_get_bin(const char *guid_str, unsigned char *guid_bin)
int i;
for (i = 0; i < ARRAY_SIZE(list_guid); i++) {
if (!strcmp(list_guid[i].string, guid_str)) {
if (list_guid[i].type &&
!strcmp(list_guid[i].type, guid_str)) {
memcpy(guid_bin, &list_guid[i].guid, 16);
return 0;
}
@@ -298,7 +313,9 @@ const char *uuid_guid_get_str(const unsigned char *guid_bin)
for (i = 0; i < ARRAY_SIZE(list_guid); i++) {
if (!memcmp(list_guid[i].guid.b, guid_bin, 16)) {
return list_guid[i].string;
if (list_guid[i].description)
return list_guid[i].description;
return list_guid[i].type;
}
}
return NULL;
@@ -312,10 +329,9 @@ int uuid_str_to_bin(const char *uuid_str, unsigned char *uuid_bin,
uint64_t tmp64;
if (!uuid_str_valid(uuid_str)) {
#ifdef CONFIG_PARTITION_TYPE_GUID
if (!uuid_guid_get_bin(uuid_str, uuid_bin))
if (IS_ENABLED(CONFIG_PARTITION_TYPE_GUID) &&
!uuid_guid_get_bin(uuid_str, uuid_bin))
return 0;
#endif
return -EINVAL;
}

View File

@@ -157,7 +157,7 @@ setup(
long_description=long_description,
long_description_content_type="text/plain",
url="https://git.kernel.org/pub/scm/utils/dtc/dtc.git",
license="BSD",
license="GPL-2.0-or-later OR BSD-2-Clause",
license_files=["Licenses/gpl-2.0.txt", "Licenses/bsd-2-clause.txt"],
classifiers=[

View File

@@ -45,8 +45,7 @@ static int print_guid(struct unit_test_state *uts)
sprintf(str, "%pUL", guid);
ut_asserteq_str("04030201-0605-0807-090A-0B0C0D0E0F10", str);
sprintf(str, "%pUs", guid_esp);
if (IS_ENABLED(CONFIG_PARTITION_TYPE_GUID) ||
IS_ENABLED(CONFIG_CMD_EFIDEBUG) || IS_ENABLED(CONFIG_EFI))
if (IS_ENABLED(CONFIG_EFI_PARTITION))
ut_asserteq_str("EFI System Partition", str);
else
ut_asserteq_str("c12a7328-f81f-11d2-ba4b-00a0c93ec93b", str);

View File

@@ -514,8 +514,8 @@ def ubman(request):
handle_exception(ubconfig, ubman_fix, log, err, 'Lab timeout', True)
except BootFail as err:
handle_exception(ubconfig, ubman_fix, log, err, 'Boot fail', True,
ubman.get_spawn_output())
except Unexpected:
ubman_fix.get_spawn_output())
except Unexpected as err:
handle_exception(ubconfig, ubman_fix, log, err, 'Unexpected test output',
False)
return ubman_fix

View File

@@ -330,6 +330,33 @@ def test_gpt_write(state_disk_image, ubman):
output = ubman.run_command('gpt guid host 0')
assert '375a56f7-d6c9-4e81-b5f0-09d41ca89efe' in output
@pytest.mark.boardspec('sandbox')
@pytest.mark.buildconfigspec('cmd_gpt')
@pytest.mark.buildconfigspec('cmd_part')
@pytest.mark.buildconfigspec('partition_type_guid')
@pytest.mark.requiredtool('sgdisk')
def test_gpt_write_part_type(state_disk_image, ubman):
"""Test the gpt command with part type uuid."""
output = ubman.run_command('gpt write host 0 "name=part1,type=data,size=1M;name=part2,size=512K,type=system;name=part3,size=65536,type=u-boot-env;name=part4,size=65536,type=375a56f7-d6c9-4e81-b5f0-09d41ca89efe;name=part5,size=-,type=linux"')
assert 'Writing GPT: success!' in output
output = ubman.run_command('part list host 0')
assert '1\t0x00000022\t0x00000821\t"part1"' in output
assert 'ebd0a0a2-b9e5-4433-87c0-68b6b72699c7' in output
assert '(data)' in output
assert '2\t0x00000822\t0x00000c21\t"part2"' in output
assert 'c12a7328-f81f-11d2-ba4b-00a0c93ec93b' in output
assert '(EFI System Partition)' in output
assert '3\t0x00000c22\t0x00000ca1\t"part3"' in output
assert '3de21764-95bd-54bd-a5c3-4abe786f38a8' in output
assert '(u-boot-env)' in output
assert '4\t0x00000ca2\t0x00000d21\t"part4"' in output
assert 'ebd0a0a2-b9e5-4433-87c0-68b6b72699c7' in output
assert '(375a56f7-d6c9-4e81-b5f0-09d41ca89efe)' in output
assert '5\t0x00000d22\t0x00001fde\t"part5"' in output
assert '0fc63daf-8483-4772-8e79-3d69d8477de4' in output
assert '(linux)' in output
@pytest.mark.buildconfigspec('cmd_gpt')
@pytest.mark.buildconfigspec('cmd_gpt_rename')
@pytest.mark.buildconfigspec('cmd_part')

View File

@@ -63,7 +63,8 @@ HOSTCFLAGS_img2srec.o := -pedantic
hostprogs-y += mkenvimage
mkenvimage-objs := mkenvimage.o os_support.o generated/lib/crc32.o
hostprogs-y += dumpimage mkimage fit_info fit_check_sign
hostprogs-y += dumpimage mkimage fit_info
hostprogs-$(CONFIG_FIT_SIGNATURE) += fit_check_sign
hostprogs-$(CONFIG_TOOLS_LIBCRYPTO) += fdt_add_pubkey
hostprogs-$(CONFIG_TOOLS_LIBCRYPTO) += preload_check_sign

View File

@@ -19,7 +19,7 @@
#include <openssl/evp.h>
#endif
#if CONFIG_IS_ENABLED(IMAGE_PRE_LOAD)
#if CONFIG_IS_ENABLED(IMAGE_PRE_LOAD) && CONFIG_IS_ENABLED(LIBCRYPTO)
#include <openssl/rsa.h>
#include <openssl/err.h>
#endif
@@ -1416,7 +1416,7 @@ int fit_check_sign(const void *fit, const void *key,
}
#endif
#if CONFIG_IS_ENABLED(IMAGE_PRE_LOAD)
#if CONFIG_IS_ENABLED(IMAGE_PRE_LOAD) && CONFIG_IS_ENABLED(LIBCRYPTO)
/**
* rsa_verify_openssl() - Verify a signature against some data with openssl API
*

View File

@@ -1146,7 +1146,7 @@ int imx8image_copy_image(int outfd, struct image_tool_params *mparams)
fprintf(stdout, "CONTAINER SW VERSION:\t0x%04x\n", sw_version);
build_container(soc, sector_size, emmc_fastboot,
img_sp, false, fuse_version, sw_version, outfd);
img_sp, dcd_skip, fuse_version, sw_version, outfd);
return 0;
}