aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.azure-pipelines.yml16
-rw-r--r--Makefile4
-rw-r--r--arch/arm/dts/imx7d-pico-pi-u-boot.dtsi (renamed from arch/arm/dts/imx7d-pico-u-boot.dtsi)0
-rw-r--r--arch/arm/dts/rz-g2-beacon-u-boot.dtsi1
-rw-r--r--arch/arm/lib/crt0_aarch64_efi.S48
-rw-r--r--arch/arm/lib/elf_aarch64_efi.lds14
-rw-r--r--arch/arm/mach-stm32mp/dram_init.c2
-rw-r--r--arch/powerpc/cpu/mpc85xx/Kconfig7
-rw-r--r--arch/powerpc/cpu/mpc85xx/config.mk23
-rw-r--r--arch/riscv/lib/crt0_riscv_efi.S17
-rw-r--r--boot/Kconfig9
-rw-r--r--boot/pxe_utils.c13
-rw-r--r--cmd/Kconfig2
-rw-r--r--cmd/eficonfig.c114
-rw-r--r--cmd/eficonfig_sbkey.c38
-rw-r--r--cmd/efidebug.c18
-rw-r--r--cmd/sound.c41
-rw-r--r--common/memsize.c2
-rw-r--r--common/spl/Kconfig1
-rw-r--r--configs/P1010RDB-PA_36BIT_NOR_defconfig3
-rw-r--r--configs/P1010RDB-PA_NOR_defconfig3
-rw-r--r--configs/P1010RDB-PB_36BIT_NOR_defconfig3
-rw-r--r--configs/P1010RDB-PB_NOR_defconfig3
-rw-r--r--configs/P1020RDB-PC_36BIT_defconfig3
-rw-r--r--configs/P1020RDB-PC_defconfig3
-rw-r--r--configs/P1020RDB-PD_defconfig3
-rw-r--r--configs/P2020RDB-PC_36BIT_defconfig3
-rw-r--r--configs/P2020RDB-PC_defconfig3
-rw-r--r--configs/evb-rk3288_defconfig1
-rw-r--r--configs/evb-rk3568_defconfig1
-rw-r--r--configs/firefly-rk3288_defconfig1
-rw-r--r--configs/ge_b1x5v2_defconfig1
-rw-r--r--configs/ge_bx50v3_defconfig1
-rw-r--r--configs/miqi-rk3288_defconfig1
-rw-r--r--configs/mx53ppd_defconfig1
-rw-r--r--configs/roc-pc-rk3399_defconfig2
-rw-r--r--configs/rock-pi-4-rk3399_defconfig6
-rw-r--r--configs/rock-pi-4c-rk3399_defconfig6
-rw-r--r--configs/rock-pi-n8-rk3288_defconfig1
-rw-r--r--configs/rzg2_beacon_defconfig2
-rw-r--r--configs/sandbox64_defconfig2
-rw-r--r--configs/sandbox_defconfig4
-rw-r--r--configs/sandbox_flattree_defconfig2
-rw-r--r--configs/stm32mp15_dhcom_basic_defconfig5
-rw-r--r--configs/stm32mp15_dhcor_basic_defconfig5
-rw-r--r--configs/tinker-rk3288_defconfig1
-rw-r--r--configs/tinker-s-rk3288_defconfig1
-rw-r--r--configs/vyasa-rk3288_defconfig1
-rw-r--r--doc/Makefile10
-rw-r--r--doc/board/emulation/qemu-ppce500.rst8
-rw-r--r--doc/board/ti/am335x_evm.rst5
-rw-r--r--doc/board/ti/am62x_sk.rst4
-rw-r--r--doc/board/ti/index.rst5
-rw-r--r--doc/board/ti/j721e_evm.rst4
-rw-r--r--doc/board/ti/k3.rst274
-rw-r--r--doc/build/documentation.rst90
-rw-r--r--doc/build/index.rst1
-rw-r--r--doc/conf.py6
-rw-r--r--doc/develop/release_cycle.rst28
-rw-r--r--doc/develop/statistics/u-boot-stats-v1.3.0.rst2
-rw-r--r--doc/develop/statistics/u-boot-stats-v1.3.1.rst2
-rw-r--r--doc/develop/statistics/u-boot-stats-v1.3.2.rst2
-rw-r--r--doc/develop/statistics/u-boot-stats-v1.3.3.rst2
-rw-r--r--doc/develop/statistics/u-boot-stats-v1.3.4.rst2
-rw-r--r--doc/develop/statistics/u-boot-stats-v2008.10.rst2
-rw-r--r--doc/develop/statistics/u-boot-stats-v2009.01.rst2
-rw-r--r--doc/develop/statistics/u-boot-stats-v2009.03.rst2
-rw-r--r--doc/develop/statistics/u-boot-stats-v2009.06.rst2
-rw-r--r--doc/develop/statistics/u-boot-stats-v2009.08.rst2
-rw-r--r--doc/develop/statistics/u-boot-stats-v2009.11.rst2
-rw-r--r--doc/develop/statistics/u-boot-stats-v2010.03.rst2
-rw-r--r--doc/develop/statistics/u-boot-stats-v2010.06.rst2
-rw-r--r--doc/develop/statistics/u-boot-stats-v2010.09.rst2
-rw-r--r--doc/develop/statistics/u-boot-stats-v2010.12.rst2
-rw-r--r--doc/develop/statistics/u-boot-stats-v2011.03.rst2
-rw-r--r--doc/develop/statistics/u-boot-stats-v2011.06.rst2
-rw-r--r--doc/develop/statistics/u-boot-stats-v2011.09.rst2
-rw-r--r--doc/develop/statistics/u-boot-stats-v2011.12.rst2
-rw-r--r--doc/develop/statistics/u-boot-stats-v2012.04.rst2
-rw-r--r--doc/develop/statistics/u-boot-stats-v2012.07.rst2
-rw-r--r--doc/develop/statistics/u-boot-stats-v2012.10.rst2
-rw-r--r--doc/develop/statistics/u-boot-stats-v2013.07.rst2
-rw-r--r--doc/develop/statistics/u-boot-stats-v2013.10.rst2
-rw-r--r--doc/develop/statistics/u-boot-stats-v2014.01.rst2
-rw-r--r--doc/develop/statistics/u-boot-stats-v2014.04.rst2
-rw-r--r--doc/develop/statistics/u-boot-stats-v2014.07.rst2
-rw-r--r--doc/develop/statistics/u-boot-stats-v2014.10.rst2
-rw-r--r--doc/develop/statistics/u-boot-stats-v2015.01.rst2
-rw-r--r--doc/develop/statistics/u-boot-stats-v2015.04.rst2
-rw-r--r--doc/develop/statistics/u-boot-stats-v2015.07.rst2
-rw-r--r--doc/develop/statistics/u-boot-stats-v2015.10.rst2
-rw-r--r--doc/develop/statistics/u-boot-stats-v2016.01.rst2
-rw-r--r--doc/develop/statistics/u-boot-stats-v2016.03.rst2
-rw-r--r--doc/develop/statistics/u-boot-stats-v2016.05.rst2
-rw-r--r--doc/develop/statistics/u-boot-stats-v2016.07.rst2
-rw-r--r--doc/develop/statistics/u-boot-stats-v2016.09.rst2
-rw-r--r--doc/develop/statistics/u-boot-stats-v2016.11.rst2
-rw-r--r--doc/develop/statistics/u-boot-stats-v2017.01.rst2
-rw-r--r--doc/develop/statistics/u-boot-stats-v2017.03.rst2
-rw-r--r--doc/develop/statistics/u-boot-stats-v2017.05.rst2
-rw-r--r--doc/develop/statistics/u-boot-stats-v2017.07.rst2
-rw-r--r--doc/develop/statistics/u-boot-stats-v2017.09.rst2
-rw-r--r--doc/develop/statistics/u-boot-stats-v2017.11.rst2
-rw-r--r--doc/develop/statistics/u-boot-stats-v2018.01.rst2
-rw-r--r--doc/develop/statistics/u-boot-stats-v2018.03.rst2
-rw-r--r--doc/develop/statistics/u-boot-stats-v2018.05.rst2
-rw-r--r--doc/develop/statistics/u-boot-stats-v2018.07.rst2
-rw-r--r--doc/develop/statistics/u-boot-stats-v2018.09.rst2
-rw-r--r--doc/develop/statistics/u-boot-stats-v2018.11.rst2
-rw-r--r--doc/develop/statistics/u-boot-stats-v2019.01.rst2
-rw-r--r--doc/develop/statistics/u-boot-stats-v2019.04.rst2
-rw-r--r--doc/develop/statistics/u-boot-stats-v2019.07.rst2
-rw-r--r--doc/develop/statistics/u-boot-stats-v2019.10.rst2
-rw-r--r--doc/develop/statistics/u-boot-stats-v2020.01.rst2
-rw-r--r--doc/develop/statistics/u-boot-stats-v2020.04.rst2
-rw-r--r--doc/develop/statistics/u-boot-stats-v2020.07.rst2
-rw-r--r--doc/develop/statistics/u-boot-stats-v2020.10.rst2
-rw-r--r--doc/develop/statistics/u-boot-stats-v2021.01.rst2
-rw-r--r--doc/develop/statistics/u-boot-stats-v2021.04.rst2
-rw-r--r--doc/develop/statistics/u-boot-stats-v2021.07.rst2
-rw-r--r--doc/develop/statistics/u-boot-stats-v2021.10.rst2
-rw-r--r--doc/develop/statistics/u-boot-stats-v2022.01.rst2
-rw-r--r--doc/develop/statistics/u-boot-stats-v2022.04.rst2
-rw-r--r--doc/develop/statistics/u-boot-stats-v2022.07.rst2
-rw-r--r--doc/develop/statistics/u-boot-stats-v2022.10.rst2
-rw-r--r--doc/develop/statistics/u-boot-stats-v2023.01.rst715
-rw-r--r--doc/media/Makefile3
-rw-r--r--doc/usage/cmd/printenv.rst2
-rw-r--r--doc/usage/cmd/sound.rst23
-rw-r--r--doc/usage/cmd/wget.rst5
-rw-r--r--drivers/i2c/i2c-uniphier-f.c4
-rw-r--r--drivers/net/npcm750_eth.c8
-rw-r--r--drivers/net/tsec.c2
-rw-r--r--drivers/power/regulator/Kconfig8
-rw-r--r--drivers/power/regulator/Makefile1
-rw-r--r--drivers/power/regulator/npcm8xx_regulator.c132
-rw-r--r--drivers/tee/optee/core.c34
-rw-r--r--drivers/timer/orion-timer.c10
-rw-r--r--drivers/tpm/tpm2_ftpm_tee.c1
-rw-r--r--include/asm-generic/pe.h13
-rw-r--r--include/charset.h13
-rw-r--r--include/config_distro_bootcmd.h2
-rw-r--r--include/configs/vexpress_common.h1
-rw-r--r--include/efi_api.h2
-rw-r--r--include/efi_loader.h5
-rw-r--r--include/efi_variable.h3
-rw-r--r--include/env.h4
-rw-r--r--lib/charset.c26
-rw-r--r--lib/efi_loader/efi_boottime.c3
-rw-r--r--lib/efi_loader/efi_capsule.c9
-rw-r--r--lib/efi_loader/efi_helper.c34
-rw-r--r--lib/efi_loader/efi_hii.c2
-rw-r--r--lib/efi_loader/efi_memory.c34
-rw-r--r--lib/efi_loader/efi_var_file.c4
-rw-r--r--lib/efi_loader/efi_var_mem.c10
-rw-r--r--lib/efi_loader/efi_variable.c6
-rw-r--r--lib/efi_selftest/efi_selftest_variables.c35
-rw-r--r--lib/lmb.c36
-rw-r--r--net/ndisc.c2
-rw-r--r--net/net.c1
-rw-r--r--net/wget.c1
-rwxr-xr-xscripts/dtc/pylibfdt/setup.py10
-rw-r--r--test/unicode_ut.c36
163 files changed, 1927 insertions, 322 deletions
diff --git a/.azure-pipelines.yml b/.azure-pipelines.yml
index 8a63b1f434..02cd8e4169 100644
--- a/.azure-pipelines.yml
+++ b/.azure-pipelines.yml
@@ -428,6 +428,8 @@ stages:
matrix:
arc_microblaze_xtensa:
BUILDMAN: "arc microblaze xtensa"
+ amlogic:
+ BUILDMAN: "amlogic"
arm11_arm7_arm920t_arm946es:
BUILDMAN: "arm11 arm7 arm920t arm946es"
arm926ejs:
@@ -457,9 +459,9 @@ stages:
imx6:
BUILDMAN: "mx6 -x boundary,engicam,freescale,technexion,toradex"
imx:
- BUILDMAN: "mx -x mx6,freescale,technexion,toradex"
- imx8:
- BUILDMAN: "imx8"
+ BUILDMAN: "mx -x mx6,imx8,freescale,technexion,toradex"
+ imx8_imx9:
+ BUILDMAN: "imx8 imx9"
keystone2_keystone3:
BUILDMAN: "k2 k3"
sandbox_asan:
@@ -513,9 +515,11 @@ stages:
uniphier:
BUILDMAN: "uniphier"
aarch64_catch_all:
- BUILDMAN: "aarch64 -x bcm,imx8,k3,tegra,ls1,ls2,lx216,mvebu,uniphier,renesas,sunxi,samsung,socfpga,rk,versal,zynq"
- rockchip:
- BUILDMAN: "rk"
+ BUILDMAN: "aarch64 -x amlogic,bcm,imx8,imx9,k3,tegra,ls1,ls2,lx216,mvebu,uniphier,renesas,sunxi,samsung,socfpga,rk,versal,zynq"
+ rockchip_32bit:
+ BUILDMAN: "rk -x aarch64"
+ rockchip_64bit:
+ BUILDMAN: "rk&aarch64"
renesas:
BUILDMAN: "renesas"
zynq:
diff --git a/Makefile b/Makefile
index 5610f7b492..a4a14d5d35 100644
--- a/Makefile
+++ b/Makefile
@@ -3,7 +3,7 @@
VERSION = 2023
PATCHLEVEL = 01
SUBLEVEL =
-EXTRAVERSION = -rc4
+EXTRAVERSION =
NAME =
# *DOCUMENTATION*
@@ -2366,7 +2366,7 @@ tcheck:
# Documentation targets
# ---------------------------------------------------------------------------
DOC_TARGETS := xmldocs latexdocs pdfdocs htmldocs epubdocs cleandocs \
- linkcheckdocs dochelp refcheckdocs
+ linkcheckdocs dochelp refcheckdocs texinfodocs infodocs
PHONY += $(DOC_TARGETS)
$(DOC_TARGETS): scripts_basic FORCE
$(Q)$(MAKE) $(build)=doc $@
diff --git a/arch/arm/dts/imx7d-pico-u-boot.dtsi b/arch/arm/dts/imx7d-pico-pi-u-boot.dtsi
index 7307fbaf68..7307fbaf68 100644
--- a/arch/arm/dts/imx7d-pico-u-boot.dtsi
+++ b/arch/arm/dts/imx7d-pico-pi-u-boot.dtsi
diff --git a/arch/arm/dts/rz-g2-beacon-u-boot.dtsi b/arch/arm/dts/rz-g2-beacon-u-boot.dtsi
index 4d17854918..da1c3b0939 100644
--- a/arch/arm/dts/rz-g2-beacon-u-boot.dtsi
+++ b/arch/arm/dts/rz-g2-beacon-u-boot.dtsi
@@ -45,7 +45,6 @@
};
&rpc {
- compatible = "renesas,rcar-gen3-rpc";
pinctrl-0 = <&qspi_pins>;
pinctrl-names = "default";
num-cs = <1>;
diff --git a/arch/arm/lib/crt0_aarch64_efi.S b/arch/arm/lib/crt0_aarch64_efi.S
index 7f38465359..3c2cef6ec7 100644
--- a/arch/arm/lib/crt0_aarch64_efi.S
+++ b/arch/arm/lib/crt0_aarch64_efi.S
@@ -25,7 +25,7 @@ pe_header:
.long IMAGE_NT_SIGNATURE /* 'PE' */
coff_header:
.short IMAGE_FILE_MACHINE_ARM64 /* AArch64 */
- .short 2 /* nr_sections */
+ .short 3 /* nr_sections */
.long 0 /* TimeDateStamp */
.long 0 /* PointerToSymbolTable */
.long 0 /* NumberOfSymbols */
@@ -34,12 +34,13 @@ coff_header:
.short (IMAGE_FILE_EXECUTABLE_IMAGE | \
IMAGE_FILE_LINE_NUMS_STRIPPED | \
IMAGE_FILE_LOCAL_SYMS_STRIPPED | \
+ IMAGE_FILE_LARGE_ADDRESS_AWARE | \
IMAGE_FILE_DEBUG_STRIPPED)
optional_header:
.short IMAGE_NT_OPTIONAL_HDR64_MAGIC /* PE32+ format */
.byte 0x02 /* MajorLinkerVersion */
.byte 0x14 /* MinorLinkerVersion */
- .long _edata - _start /* SizeOfCode */
+ .long _etext - _start /* SizeOfCode */
.long 0 /* SizeOfInitializedData */
.long 0 /* SizeOfUninitializedData */
.long _start - ImageBase /* AddressOfEntryPoint */
@@ -47,7 +48,7 @@ optional_header:
extra_header_fields:
.quad 0 /* ImageBase */
- .long 0x200 /* SectionAlignment */
+ .long 0x1000 /* SectionAlignment */
.long 0x200 /* FileAlignment */
.short 0 /* MajorOperatingSystemVersion */
.short 0 /* MinorOperatingSystemVersion */
@@ -99,25 +100,46 @@ section_table:
.long 0 /* PointerToLineNumbers */
.short 0 /* NumberOfRelocations */
.short 0 /* NumberOfLineNumbers */
- .long 0x42100040 /* Characteristics (section flags) */
-
+ /* Characteristics (section flags) */
+ .long (IMAGE_SCN_MEM_READ | \
+ IMAGE_SCN_MEM_DISCARDABLE | \
+ IMAGE_SCN_CNT_INITIALIZED_DATA)
.ascii ".text"
.byte 0
.byte 0
.byte 0 /* end of 0 padding of section name */
- .long _edata - _start /* VirtualSize */
+ .long _etext - _start /* VirtualSize */
.long _start - ImageBase /* VirtualAddress */
- .long _edata - _start /* SizeOfRawData */
+ .long _etext - _start /* SizeOfRawData */
.long _start - ImageBase /* PointerToRawData */
+ .long 0 /* PointerToRelocations */
+ .long 0 /* PointerToLineNumbers */
+ .short 0 /* NumberOfRelocations */
+ .short 0 /* NumberOfLineNumbers */
+ /* Characteristics (section flags) */
+ .long (IMAGE_SCN_MEM_READ | \
+ IMAGE_SCN_MEM_EXECUTE | \
+ IMAGE_SCN_CNT_CODE)
- .long 0 /* PointerToRelocations (0 for executables) */
- .long 0 /* PointerToLineNumbers (0 for executables) */
- .short 0 /* NumberOfRelocations (0 for executables) */
- .short 0 /* NumberOfLineNumbers (0 for executables) */
- .long 0xe0500020 /* Characteristics (section flags) */
+ .ascii ".data"
+ .byte 0
+ .byte 0
+ .byte 0 /* end of 0 padding of section name */
+ .long _data_size /* VirtualSize */
+ .long _data - ImageBase /* VirtualAddress */
+ .long _data_size /* SizeOfRawData */
+ .long _data - ImageBase /* PointerToRawData */
+ .long 0 /* PointerToRelocations */
+ .long 0 /* PointerToLineNumbers */
+ .short 0 /* NumberOfRelocations */
+ .short 0 /* NumberOfLineNumbers */
+ /* Characteristics (section flags) */
+ .long (IMAGE_SCN_MEM_WRITE | \
+ IMAGE_SCN_MEM_READ | \
+ IMAGE_SCN_CNT_INITIALIZED_DATA)
- .align 9
+ .align 12
_start:
stp x29, x30, [sp, #-32]!
mov x29, sp
diff --git a/arch/arm/lib/elf_aarch64_efi.lds b/arch/arm/lib/elf_aarch64_efi.lds
index c0604dad46..3e3da47d6a 100644
--- a/arch/arm/lib/elf_aarch64_efi.lds
+++ b/arch/arm/lib/elf_aarch64_efi.lds
@@ -7,6 +7,12 @@
OUTPUT_FORMAT("elf64-littleaarch64", "elf64-littleaarch64", "elf64-littleaarch64")
OUTPUT_ARCH(aarch64)
+
+PHDRS
+{
+ data PT_LOAD FLAGS(3); /* SHF_WRITE | SHF_ALLOC */
+}
+
ENTRY(_start)
SECTIONS
{
@@ -18,11 +24,13 @@ SECTIONS
*(.gnu.linkonce.t.*)
*(.srodata)
*(.rodata*)
+ . = ALIGN(16);
+ *(.dynamic);
. = ALIGN(512);
}
_etext = .;
_text_size = . - _text;
- .dynamic : { *(.dynamic) }
+ . = ALIGN(4096);
.data : {
_data = .;
*(.sdata)
@@ -47,12 +55,12 @@ SECTIONS
. = ALIGN(512);
_bss_end = .;
_edata = .;
- }
+ } :data
+ _data_size = _edata - _data;
.rela.dyn : { *(.rela.dyn) }
.rela.plt : { *(.rela.plt) }
.rela.got : { *(.rela.got) }
.rela.data : { *(.rela.data) *(.rela.data*) }
- _data_size = . - _etext;
. = ALIGN(4096);
.dynsym : { *(.dynsym) }
diff --git a/arch/arm/mach-stm32mp/dram_init.c b/arch/arm/mach-stm32mp/dram_init.c
index 9346fa8546..80ba5c2774 100644
--- a/arch/arm/mach-stm32mp/dram_init.c
+++ b/arch/arm/mach-stm32mp/dram_init.c
@@ -51,7 +51,7 @@ phys_size_t board_get_usable_ram_top(phys_size_t total_size)
/* found enough not-reserved memory to relocated U-Boot */
lmb_init(&lmb);
- lmb_add(&lmb, gd->ram_base, gd->ram_size);
+ lmb_add(&lmb, gd->ram_base, get_effective_memsize());
boot_fdt_add_mem_rsv_regions(&lmb, (void *)gd->fdt_blob);
/* add 8M for reserved memory for display, fdt, gd,... */
size = ALIGN(SZ_8M + CONFIG_SYS_MALLOC_LEN + total_size, MMU_SECTION_SIZE),
diff --git a/arch/powerpc/cpu/mpc85xx/Kconfig b/arch/powerpc/cpu/mpc85xx/Kconfig
index 6ab8a5249a..1b180481a4 100644
--- a/arch/powerpc/cpu/mpc85xx/Kconfig
+++ b/arch/powerpc/cpu/mpc85xx/Kconfig
@@ -85,6 +85,7 @@ choice
config TARGET_SOCRATES
bool "Support socrates"
select ARCH_MPC8544
+ select BINMAN
config TARGET_P3041DS
bool "Support P3041DS"
@@ -1498,14 +1499,14 @@ config SYS_FSL_USB_DUAL_PHY_ENABLE
config SYS_MPC85XX_NO_RESETVEC
bool "Discard resetvec section and move bootpg section up"
- depends on MPC85xx
+ depends on MPC85xx && !MPC85XX_HAVE_RESET_VECTOR
help
If this variable is specified, the section .resetvec is not kept and
the section .bootpg is placed in the previous 4k of the .text section.
config SPL_SYS_MPC85XX_NO_RESETVEC
bool "Discard resetvec section and move bootpg section up, in SPL"
- depends on MPC85xx && SPL
+ depends on MPC85xx && SPL && !MPC85XX_HAVE_RESET_VECTOR
help
If this variable is specified, the section .resetvec is not kept and
the section .bootpg is placed in the previous 4k of the .text section,
@@ -1513,7 +1514,7 @@ config SPL_SYS_MPC85XX_NO_RESETVEC
config TPL_SYS_MPC85XX_NO_RESETVEC
bool "Discard resetvec section and move bootpg section up, in TPL"
- depends on MPC85xx && TPL
+ depends on MPC85xx && TPL && !MPC85XX_HAVE_RESET_VECTOR
help
If this variable is specified, the section .resetvec is not kept and
the section .bootpg is placed in the previous 4k of the .text section,
diff --git a/arch/powerpc/cpu/mpc85xx/config.mk b/arch/powerpc/cpu/mpc85xx/config.mk
index 7a1d81cf2d..71a98f05c9 100644
--- a/arch/powerpc/cpu/mpc85xx/config.mk
+++ b/arch/powerpc/cpu/mpc85xx/config.mk
@@ -3,11 +3,26 @@
# (C) Copyright 2002,2003 Motorola Inc.
# Xianghua Xiao, X.Xiao@motorola.com
-PLATFORM_CPPFLAGS += -Wa,-me500 -msoft-float -mno-string
+PLATFORM_CPPFLAGS += -msoft-float -mno-string
PLATFORM_RELFLAGS += -msingle-pic-base -fno-jump-tables
-# -mspe=yes is needed to have -mno-spe accepted by a buggy GCC;
+# No SPE instruction when building u-boot
+# (We use all available options to help semi-broken compilers)
# see "[PATCH,rs6000] make -mno-spe work as expected" on
# http://gcc.gnu.org/ml/gcc-patches/2008-04/msg00311.html
-PLATFORM_CPPFLAGS += $(call cc-option,-mspe=yes) \
- $(call cc-option,-mno-spe)
+PLATFORM_CPPFLAGS += $(call cc-option,-mno-spe) \
+ $(call cc-option,-mspe=no)
+
+# No AltiVec or VSX instructions when building u-boot
+PLATFORM_CPPFLAGS += $(call cc-option,-mno-altivec)
+PLATFORM_CPPFLAGS += $(call cc-option,-mno-vsx)
+
+ifdef CONFIG_E6500
+PLATFORM_CPPFLAGS += -mcpu=e6500
+else ifdef CONFIG_E5500
+PLATFORM_CPPFLAGS += -mcpu=e5500
+else ifdef CONFIG_E500MC
+PLATFORM_CPPFLAGS += -mcpu=e500mc
+else
+PLATFORM_CPPFLAGS += -mcpu=8540
+endif
diff --git a/arch/riscv/lib/crt0_riscv_efi.S b/arch/riscv/lib/crt0_riscv_efi.S
index a01e08a3c6..793eefdd88 100644
--- a/arch/riscv/lib/crt0_riscv_efi.S
+++ b/arch/riscv/lib/crt0_riscv_efi.S
@@ -16,12 +16,23 @@
#define LOAD_LONG(reg, idx) ld reg, (idx*SIZE_LONG)(sp)
#define PE_MACHINE IMAGE_FILE_MACHINE_RISCV64
#define PE_MAGIC IMAGE_NT_OPTIONAL_HDR64_MAGIC
+#define IMG_CHARACTERISTICS \
+ (IMAGE_FILE_EXECUTABLE_IMAGE | \
+ IMAGE_FILE_LINE_NUMS_STRIPPED | \
+ IMAGE_FILE_LOCAL_SYMS_STRIPPED | \
+ IMAGE_FILE_LARGE_ADDRESS_AWARE | \
+ IMAGE_FILE_DEBUG_STRIPPED)
#else
#define SIZE_LONG 4
#define SAVE_LONG(reg, idx) sw reg, (idx*SIZE_LONG)(sp)
#define LOAD_LONG(reg, idx) lw reg, (idx*SIZE_LONG)(sp)
#define PE_MACHINE IMAGE_FILE_MACHINE_RISCV32
#define PE_MAGIC IMAGE_NT_OPTIONAL_HDR32_MAGIC
+#define IMG_CHARACTERISTICS \
+ (IMAGE_FILE_EXECUTABLE_IMAGE | \
+ IMAGE_FILE_LINE_NUMS_STRIPPED | \
+ IMAGE_FILE_LOCAL_SYMS_STRIPPED | \
+ IMAGE_FILE_DEBUG_STRIPPED)
#endif
@@ -47,11 +58,7 @@ coff_header:
.long 0 /* PointerToSymbolTable */
.long 0 /* NumberOfSymbols */
.short section_table - optional_header /* SizeOfOptionalHeader */
- /* Characteristics */
- .short (IMAGE_FILE_EXECUTABLE_IMAGE | \
- IMAGE_FILE_LINE_NUMS_STRIPPED | \
- IMAGE_FILE_LOCAL_SYMS_STRIPPED | \
- IMAGE_FILE_DEBUG_STRIPPED)
+ .short IMG_CHARACTERISTICS /* Characteristics */
optional_header:
.short PE_MAGIC /* PE32(+) format */
.byte 0x02 /* MajorLinkerVersion */
diff --git a/boot/Kconfig b/boot/Kconfig
index 65613a0149..30bc182fcd 100644
--- a/boot/Kconfig
+++ b/boot/Kconfig
@@ -725,16 +725,19 @@ config RAMBOOT_PBL
For more details refer to doc/README.pblimage
choice
- prompt "Freescale PBL load location"
+ prompt "Freescale PBL (or predecessor) load location"
depends on RAMBOOT_PBL || ((TARGET_P1010RDB_PA || TARGET_P1010RDB_PB \
|| TARGET_P1020RDB_PC || TARGET_P1020RDB_PD || TARGET_P2020RDB) \
&& !CMD_NAND)
config SDCARD
- bool "Freescale PBL is found on SD card"
+ bool "Freescale PBL (or similar) is found on SD card"
config SPIFLASH
- bool "Freescale PBL is found on SPI flash"
+ bool "Freescale PBL (or similar) is found on SPI flash"
+
+config NO_PBL
+ bool "Freescale PBL (or similar) is not used in this case"
endchoice
diff --git a/boot/pxe_utils.c b/boot/pxe_utils.c
index ec5af4215e..3a1e50f2b1 100644
--- a/boot/pxe_utils.c
+++ b/boot/pxe_utils.c
@@ -618,7 +618,10 @@ static int label_boot(struct pxe_context *ctx, struct pxe_label *label)
* Scenario 2: If there is an fdt_addr specified, pass it along to
* bootm, and adjust argc appropriately.
*
- * Scenario 3: fdt blob is not available.
+ * Scenario 3: If there is an fdtcontroladdr specified, pass it along to
+ * bootm, and adjust argc appropriately, unless the image type is fitImage.
+ *
+ * Scenario 4: fdt blob is not available.
*/
bootm_argv[3] = env_get("fdt_addr_r");
@@ -726,14 +729,18 @@ static int label_boot(struct pxe_context *ctx, struct pxe_label *label)
if (!bootm_argv[3])
bootm_argv[3] = env_get("fdt_addr");
+ kernel_addr_r = genimg_get_kernel_addr(kernel_addr);
+ buf = map_sysmem(kernel_addr_r, 0);
+
+ if (!bootm_argv[3] && genimg_get_format(buf) != IMAGE_FORMAT_FIT)
+ bootm_argv[3] = env_get("fdtcontroladdr");
+
if (bootm_argv[3]) {
if (!bootm_argv[2])
bootm_argv[2] = "-";
bootm_argc = 4;
}
- kernel_addr_r = genimg_get_kernel_addr(kernel_addr);
- buf = map_sysmem(kernel_addr_r, 0);
/* Try bootm for legacy and FIT format image */
if (genimg_get_format(buf) != IMAGE_FORMAT_INVALID &&
IS_ENABLED(CONFIG_CMD_BOOTM))
diff --git a/cmd/Kconfig b/cmd/Kconfig
index 47d2ef04a2..199a55383e 100644
--- a/cmd/Kconfig
+++ b/cmd/Kconfig
@@ -1818,7 +1818,7 @@ config SYS_DISABLE_AUTOLOAD
config CMD_WGET
bool "wget"
- select TCP
+ select PROT_TCP
help
wget is a simple command to download kernel, or other files,
from a http server over TCP.
diff --git a/cmd/eficonfig.c b/cmd/eficonfig.c
index 394ae67cce..ce7175a566 100644
--- a/cmd/eficonfig.c
+++ b/cmd/eficonfig.c
@@ -1683,7 +1683,7 @@ static efi_status_t eficonfig_show_boot_selection(unsigned int *selected)
u32 i;
u16 *bootorder;
efi_status_t ret;
- u16 *var_name16 = NULL, *p;
+ u16 *var_name16 = NULL;
efi_uintn_t num, size, buf_size;
struct efimenu *efi_menu;
struct list_head *pos, *n;
@@ -1718,24 +1718,12 @@ static efi_status_t eficonfig_show_boot_selection(unsigned int *selected)
int index;
efi_guid_t guid;
- size = buf_size;
- ret = efi_get_next_variable_name_int(&size, var_name16, &guid);
+ ret = efi_next_variable_name(&buf_size, &var_name16, &guid);
if (ret == EFI_NOT_FOUND)
break;
- if (ret == EFI_BUFFER_TOO_SMALL) {
- buf_size = size;
- p = realloc(var_name16, buf_size);
- if (!p) {
- free(var_name16);
- return EFI_OUT_OF_RESOURCES;
- }
- var_name16 = p;
- ret = efi_get_next_variable_name_int(&size, var_name16, &guid);
- }
- if (ret != EFI_SUCCESS) {
- free(var_name16);
- return ret;
- }
+ if (ret != EFI_SUCCESS)
+ goto out;
+
if (efi_varname_is_load_option(var_name16, &index)) {
/* If the index is included in the BootOrder, skip it */
if (search_bootorder(bootorder, num, index, NULL))
@@ -2026,7 +2014,7 @@ static efi_status_t eficonfig_create_change_boot_order_entry(struct efimenu *efi
u32 i;
char *title;
efi_status_t ret;
- u16 *var_name16 = NULL, *p;
+ u16 *var_name16 = NULL;
efi_uintn_t size, buf_size;
/* list the load option in the order of BootOrder variable */
@@ -2054,19 +2042,9 @@ static efi_status_t eficonfig_create_change_boot_order_entry(struct efimenu *efi
break;
size = buf_size;
- ret = efi_get_next_variable_name_int(&size, var_name16, &guid);
+ ret = efi_next_variable_name(&buf_size, &var_name16, &guid);
if (ret == EFI_NOT_FOUND)
break;
- if (ret == EFI_BUFFER_TOO_SMALL) {
- buf_size = size;
- p = realloc(var_name16, buf_size);
- if (!p) {
- ret = EFI_OUT_OF_RESOURCES;
- goto out;
- }
- var_name16 = p;
- ret = efi_get_next_variable_name_int(&size, var_name16, &guid);
- }
if (ret != EFI_SUCCESS)
goto out;
@@ -2332,14 +2310,15 @@ out:
efi_status_t eficonfig_delete_invalid_boot_option(struct eficonfig_media_boot_option *opt,
efi_status_t count)
{
- u32 i;
efi_uintn_t size;
void *load_option;
+ u32 i, list_size = 0;
struct efi_load_option lo;
- u16 *var_name16 = NULL, *p;
+ u16 *var_name16 = NULL;
u16 varname[] = u"Boot####";
efi_status_t ret = EFI_SUCCESS;
- efi_uintn_t varname_size, buf_size;
+ u16 *delete_index_list = NULL, *p;
+ efi_uintn_t buf_size;
buf_size = 128;
var_name16 = malloc(buf_size);
@@ -2352,24 +2331,18 @@ efi_status_t eficonfig_delete_invalid_boot_option(struct eficonfig_media_boot_op
efi_guid_t guid;
efi_uintn_t tmp;
- varname_size = buf_size;
- ret = efi_get_next_variable_name_int(&varname_size, var_name16, &guid);
- if (ret == EFI_NOT_FOUND)
+ ret = efi_next_variable_name(&buf_size, &var_name16, &guid);
+ if (ret == EFI_NOT_FOUND) {
+ /*
+ * EFI_NOT_FOUND indicates we retrieved all EFI variables.
+ * This should be treated as success.
+ */
+ ret = EFI_SUCCESS;
break;
- if (ret == EFI_BUFFER_TOO_SMALL) {
- buf_size = varname_size;
- p = realloc(var_name16, buf_size);
- if (!p) {
- free(var_name16);
- return EFI_OUT_OF_RESOURCES;
- }
- var_name16 = p;
- ret = efi_get_next_variable_name_int(&varname_size, var_name16, &guid);
- }
- if (ret != EFI_SUCCESS) {
- free(var_name16);
- return ret;
}
+ if (ret != EFI_SUCCESS)
+ goto out;
+
if (!efi_varname_is_load_option(var_name16, &index))
continue;
@@ -2383,30 +2356,47 @@ efi_status_t eficonfig_delete_invalid_boot_option(struct eficonfig_media_boot_op
if (ret != EFI_SUCCESS)
goto next;
- if (size >= sizeof(efi_guid_bootmenu_auto_generated)) {
- if (guidcmp(lo.optional_data, &efi_guid_bootmenu_auto_generated) == 0) {
- for (i = 0; i < count; i++) {
- if (opt[i].size == tmp &&
- memcmp(opt[i].lo, load_option, tmp) == 0) {
- opt[i].exist = true;
- break;
- }
+ if (size >= sizeof(efi_guid_bootmenu_auto_generated) &&
+ !guidcmp(lo.optional_data, &efi_guid_bootmenu_auto_generated)) {
+ for (i = 0; i < count; i++) {
+ if (opt[i].size == tmp &&
+ memcmp(opt[i].lo, load_option, tmp) == 0) {
+ opt[i].exist = true;
+ break;
}
+ }
- if (i == count) {
- ret = delete_boot_option(i);
- if (ret != EFI_SUCCESS) {
- free(load_option);
- goto out;
- }
+ /*
+ * The entire list of variables must be retrieved by
+ * efi_get_next_variable_name_int() before deleting the invalid
+ * boot option, just save the index here.
+ */
+ if (i == count) {
+ p = realloc(delete_index_list, sizeof(u32) *
+ (list_size + 1));
+ if (!p) {
+ ret = EFI_OUT_OF_RESOURCES;
+ goto out;
}
+ delete_index_list = p;
+ delete_index_list[list_size++] = index;
}
}
next:
free(load_option);
}
+ /* delete all invalid boot options */
+ for (i = 0; i < list_size; i++) {
+ ret = delete_boot_option(delete_index_list[i]);
+ if (ret != EFI_SUCCESS)
+ goto out;
+ }
+
out:
+ free(var_name16);
+ free(delete_index_list);
+
return ret;
}
diff --git a/cmd/eficonfig_sbkey.c b/cmd/eficonfig_sbkey.c
index 6e0bebf1d4..ed39aab081 100644
--- a/cmd/eficonfig_sbkey.c
+++ b/cmd/eficonfig_sbkey.c
@@ -73,6 +73,28 @@ static bool file_have_auth_header(void *buf, efi_uintn_t size)
}
/**
+ * file_is_null_key() - check the file is an authenticated and signed null key
+ *
+ * @auth: pointer to the file
+ * @size: file size
+ * @null_key: pointer to store the result
+ * Return: status code
+ */
+static efi_status_t file_is_null_key(struct efi_variable_authentication_2 *auth,
+ efi_uintn_t size, bool *null_key)
+{
+ efi_uintn_t auth_size =
+ sizeof(auth->time_stamp) + auth->auth_info.hdr.dwLength;
+
+ if (size < auth_size)
+ return EFI_INVALID_PARAMETER;
+
+ *null_key = (size == auth_size);
+
+ return EFI_SUCCESS;
+}
+
+/**
* eficonfig_process_enroll_key() - enroll key into signature database
*
* @data: pointer to the data for each entry
@@ -84,6 +106,7 @@ static efi_status_t eficonfig_process_enroll_key(void *data)
char *buf = NULL;
efi_uintn_t size;
efi_status_t ret;
+ bool null_key = false;
struct efi_file_handle *f = NULL;
struct efi_device_path *full_dp = NULL;
struct eficonfig_select_file_info file_info;
@@ -149,13 +172,24 @@ static efi_status_t eficonfig_process_enroll_key(void *data)
goto out;
}
+ ret = file_is_null_key((struct efi_variable_authentication_2 *)buf,
+ size, &null_key);
+ if (ret != EFI_SUCCESS) {
+ eficonfig_print_msg("ERROR! Invalid file format.");
+ goto out;
+ }
+
attr = EFI_VARIABLE_NON_VOLATILE |
EFI_VARIABLE_BOOTSERVICE_ACCESS |
EFI_VARIABLE_RUNTIME_ACCESS |
EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS;
- /* PK can enroll only one certificate */
- if (u16_strcmp(data, u"PK")) {
+ /*
+ * PK can enroll only one certificate.
+ * The signed null key is used to clear KEK, db and dbx.
+ * EFI_VARIABLE_APPEND_WRITE attribute must not be set in these cases.
+ */
+ if (u16_strcmp(data, u"PK") && !null_key) {
efi_uintn_t db_size = 0;
/* check the variable exists. If exists, add APPEND_WRITE attribute */
diff --git a/cmd/efidebug.c b/cmd/efidebug.c
index 569003ae2e..e6959ede93 100644
--- a/cmd/efidebug.c
+++ b/cmd/efidebug.c
@@ -591,25 +591,15 @@ static void print_memory_attributes(u64 attributes)
static int do_efi_show_memmap(struct cmd_tbl *cmdtp, int flag,
int argc, char *const argv[])
{
- struct efi_mem_desc *memmap = NULL, *map;
- efi_uintn_t map_size = 0;
+ struct efi_mem_desc *memmap, *map;
+ efi_uintn_t map_size;
const char *type;
int i;
efi_status_t ret;
- ret = efi_get_memory_map(&map_size, memmap, NULL, NULL, NULL);
- if (ret == EFI_BUFFER_TOO_SMALL) {
- map_size += sizeof(struct efi_mem_desc); /* for my own */
- ret = efi_allocate_pool(EFI_BOOT_SERVICES_DATA, map_size,
- (void *)&memmap);
- if (ret != EFI_SUCCESS)
- return CMD_RET_FAILURE;
- ret = efi_get_memory_map(&map_size, memmap, NULL, NULL, NULL);
- }
- if (ret != EFI_SUCCESS) {
- efi_free_pool(memmap);
+ ret = efi_get_memory_map_alloc(&map_size, &memmap);
+ if (ret != EFI_SUCCESS)
return CMD_RET_FAILURE;
- }
printf("Type Start%.*s End%.*s Attributes\n",
EFI_PHYS_ADDR_WIDTH - 5, spc, EFI_PHYS_ADDR_WIDTH - 3, spc);
diff --git a/cmd/sound.c b/cmd/sound.c
index 20ac3f758e..0b7f959971 100644
--- a/cmd/sound.c
+++ b/cmd/sound.c
@@ -39,26 +39,39 @@ static int do_play(struct cmd_tbl *cmdtp, int flag, int argc,
int ret = 0;
int msec = 1000;
int freq = 400;
-
- if (argc > 1)
- msec = dectoul(argv[1], NULL);
- if (argc > 2)
- freq = dectoul(argv[2], NULL);
+ bool first = true;
ret = uclass_first_device_err(UCLASS_SOUND, &dev);
- if (!ret)
+ if (ret)
+ goto err;
+ --argc;
+ ++argv;
+ while (argc || first) {
+ first = false;
+ if (argc) {
+ msec = dectoul(argv[0], NULL);
+ --argc;
+ ++argv;
+ }
+ if (argc) {
+ freq = dectoul(argv[0], NULL);
+ --argc;
+ ++argv;
+ }
ret = sound_beep(dev, msec, freq);
- if (ret) {
- printf("Sound device failed to play (err=%d)\n", ret);
- return CMD_RET_FAILURE;
+ if (ret)
+ goto err;
}
-
return 0;
+
+err:
+ printf("Sound device failed to play (err=%d)\n", ret);
+ return CMD_RET_FAILURE;
}
static struct cmd_tbl cmd_sound_sub[] = {
U_BOOT_CMD_MKENT(init, 0, 1, do_init, "", ""),
- U_BOOT_CMD_MKENT(play, 2, 1, do_play, "", ""),
+ U_BOOT_CMD_MKENT(play, INT_MAX, 1, do_play, "", ""),
};
/* process sound command */
@@ -83,8 +96,10 @@ static int do_sound(struct cmd_tbl *cmdtp, int flag, int argc,
}
U_BOOT_CMD(
- sound, 4, 1, do_sound,
+ sound, INT_MAX, 1, do_sound,
"sound sub-system",
"init - initialise the sound driver\n"
- "sound play [len [freq]] - play a sound for len ms at freq Hz\n"
+ "sound play [[[-q|-s] len [freq]] ...] - play sounds\n"
+ " len - duration in ms\n"
+ " freq - frequency in Hz\n"
);
diff --git a/common/memsize.c b/common/memsize.c
index ad9ddf67ac..66d5be6a1f 100644
--- a/common/memsize.c
+++ b/common/memsize.c
@@ -96,6 +96,7 @@ phys_size_t __weak get_effective_memsize(void)
{
phys_size_t ram_size = gd->ram_size;
+#ifdef CONFIG_MPC85xx
/*
* Check for overflow and limit ram size to some representable value.
* It is required that ram_base + ram_size must be representable by
@@ -105,6 +106,7 @@ phys_size_t __weak get_effective_memsize(void)
*/
if (gd->ram_base + ram_size < gd->ram_base)
ram_size = ((phys_size_t)~0xfffULL) - gd->ram_base;
+#endif
#ifndef CFG_MAX_MEM_MAPPED
return ram_size;
diff --git a/common/spl/Kconfig b/common/spl/Kconfig
index f0f7acead7..a25d8fd2e0 100644
--- a/common/spl/Kconfig
+++ b/common/spl/Kconfig
@@ -1486,6 +1486,7 @@ config SPL_AM33XX_ENABLE_RTC32K_OSC
config SPL_OPTEE_IMAGE
bool "Support OP-TEE Trusted OS image in SPL"
depends on ARM
+ depends on SPL_LOAD_FIT || SPL_LOAD_FIT_FULL
help
OP-TEE is an open source Trusted OS which is loaded by SPL.
More detail at: https://github.com/OP-TEE/optee_os
diff --git a/configs/P1010RDB-PA_36BIT_NOR_defconfig b/configs/P1010RDB-PA_36BIT_NOR_defconfig
index 6a320713eb..71e17d90ec 100644
--- a/configs/P1010RDB-PA_36BIT_NOR_defconfig
+++ b/configs/P1010RDB-PA_36BIT_NOR_defconfig
@@ -11,7 +11,6 @@ CONFIG_TARGET_P1010RDB_PA=y
CONFIG_MPC85XX_HAVE_RESET_VECTOR=y
CONFIG_L2_CACHE=y
CONFIG_ENABLE_36BIT_PHYS=y
-CONFIG_SYS_MPC85XX_NO_RESETVEC=y
CONFIG_USE_UBOOTPATH=y
CONFIG_PCIE1=y
CONFIG_PCIE2=y
@@ -21,7 +20,7 @@ CONFIG_FIT=y
CONFIG_FIT_VERBOSE=y
CONFIG_OF_BOARD_SETUP=y
CONFIG_OF_STDOUT_VIA_ALIAS=y
-CONFIG_FSL_FIXED_MMC_LOCATION=y
+CONFIG_NO_PBL=y
CONFIG_BOOTDELAY=10
CONFIG_USE_BOOTCOMMAND=y
CONFIG_BOOTCOMMAND="setenv bootargs root=/dev/ram rw console=$consoledev,$baudrate $othbootargs ramdisk_size=$ramdisk_size;tftp $ramdiskaddr $ramdiskfile;tftp $loadaddr $bootfile;tftp $fdtaddr $fdtfile;bootm $loadaddr $ramdiskaddr $fdtaddr"
diff --git a/configs/P1010RDB-PA_NOR_defconfig b/configs/P1010RDB-PA_NOR_defconfig
index 071123362f..5807e8bdaa 100644
--- a/configs/P1010RDB-PA_NOR_defconfig
+++ b/configs/P1010RDB-PA_NOR_defconfig
@@ -11,7 +11,6 @@ CONFIG_TARGET_P1010RDB_PA=y
CONFIG_MPC85XX_HAVE_RESET_VECTOR=y
CONFIG_L2_CACHE=y
CONFIG_ENABLE_36BIT_PHYS=y
-CONFIG_SYS_MPC85XX_NO_RESETVEC=y
CONFIG_USE_UBOOTPATH=y
CONFIG_PCIE1=y
CONFIG_PCIE2=y
@@ -20,7 +19,7 @@ CONFIG_FIT=y
CONFIG_FIT_VERBOSE=y
CONFIG_OF_BOARD_SETUP=y
CONFIG_OF_STDOUT_VIA_ALIAS=y
-CONFIG_FSL_FIXED_MMC_LOCATION=y
+CONFIG_NO_PBL=y
CONFIG_BOOTDELAY=10
CONFIG_USE_BOOTCOMMAND=y
CONFIG_BOOTCOMMAND="setenv bootargs root=/dev/ram rw console=$consoledev,$baudrate $othbootargs ramdisk_size=$ramdisk_size;tftp $ramdiskaddr $ramdiskfile;tftp $loadaddr $bootfile;tftp $fdtaddr $fdtfile;bootm $loadaddr $ramdiskaddr $fdtaddr"
diff --git a/configs/P1010RDB-PB_36BIT_NOR_defconfig b/configs/P1010RDB-PB_36BIT_NOR_defconfig
index bf7078015e..7328c142f9 100644
--- a/configs/P1010RDB-PB_36BIT_NOR_defconfig
+++ b/configs/P1010RDB-PB_36BIT_NOR_defconfig
@@ -11,7 +11,6 @@ CONFIG_TARGET_P1010RDB_PB=y
CONFIG_MPC85XX_HAVE_RESET_VECTOR=y
CONFIG_L2_CACHE=y
CONFIG_ENABLE_36BIT_PHYS=y
-CONFIG_SYS_MPC85XX_NO_RESETVEC=y
CONFIG_USE_UBOOTPATH=y
CONFIG_PCIE1=y
CONFIG_PCIE2=y
@@ -21,7 +20,7 @@ CONFIG_FIT=y
CONFIG_FIT_VERBOSE=y
CONFIG_OF_BOARD_SETUP=y
CONFIG_OF_STDOUT_VIA_ALIAS=y
-CONFIG_FSL_FIXED_MMC_LOCATION=y
+CONFIG_NO_PBL=y
CONFIG_BOOTDELAY=10
CONFIG_USE_BOOTCOMMAND=y
CONFIG_BOOTCOMMAND="setenv bootargs root=/dev/ram rw console=$consoledev,$baudrate $othbootargs ramdisk_size=$ramdisk_size;tftp $ramdiskaddr $ramdiskfile;tftp $loadaddr $bootfile;tftp $fdtaddr $fdtfile;bootm $loadaddr $ramdiskaddr $fdtaddr"
diff --git a/configs/P1010RDB-PB_NOR_defconfig b/configs/P1010RDB-PB_NOR_defconfig
index 985243cebd..0f109c514c 100644
--- a/configs/P1010RDB-PB_NOR_defconfig
+++ b/configs/P1010RDB-PB_NOR_defconfig
@@ -11,7 +11,6 @@ CONFIG_TARGET_P1010RDB_PB=y
CONFIG_MPC85XX_HAVE_RESET_VECTOR=y
CONFIG_L2_CACHE=y
CONFIG_ENABLE_36BIT_PHYS=y
-CONFIG_SYS_MPC85XX_NO_RESETVEC=y
CONFIG_USE_UBOOTPATH=y
CONFIG_PCIE1=y
CONFIG_PCIE2=y
@@ -20,7 +19,7 @@ CONFIG_FIT=y
CONFIG_FIT_VERBOSE=y
CONFIG_OF_BOARD_SETUP=y
CONFIG_OF_STDOUT_VIA_ALIAS=y
-CONFIG_FSL_FIXED_MMC_LOCATION=y
+CONFIG_NO_PBL=y
CONFIG_BOOTDELAY=10
CONFIG_USE_BOOTCOMMAND=y
CONFIG_BOOTCOMMAND="setenv bootargs root=/dev/ram rw console=$consoledev,$baudrate $othbootargs ramdisk_size=$ramdisk_size;tftp $ramdiskaddr $ramdiskfile;tftp $loadaddr $bootfile;tftp $fdtaddr $fdtfile;bootm $loadaddr $ramdiskaddr $fdtaddr"
diff --git a/configs/P1020RDB-PC_36BIT_defconfig b/configs/P1020RDB-PC_36BIT_defconfig
index 58f2475571..e2373d04d7 100644
--- a/configs/P1020RDB-PC_36BIT_defconfig
+++ b/configs/P1020RDB-PC_36BIT_defconfig
@@ -12,7 +12,6 @@ CONFIG_TARGET_P1020RDB_PC=y
CONFIG_MPC85XX_HAVE_RESET_VECTOR=y
CONFIG_L2_CACHE=y
CONFIG_ENABLE_36BIT_PHYS=y
-CONFIG_SYS_MPC85XX_NO_RESETVEC=y
CONFIG_USE_UBOOTPATH=y
CONFIG_PCIE1=y
CONFIG_PCIE2=y
@@ -23,7 +22,7 @@ CONFIG_FIT=y
CONFIG_FIT_VERBOSE=y
CONFIG_OF_BOARD_SETUP=y
CONFIG_OF_STDOUT_VIA_ALIAS=y
-CONFIG_FSL_FIXED_MMC_LOCATION=y
+CONFIG_NO_PBL=y
CONFIG_BOOTDELAY=10
CONFIG_USE_BOOTCOMMAND=y
CONFIG_BOOTCOMMAND="setenv bootargs root=/dev/$bdev rw rootdelay=30 console=$consoledev,$baudrate $othbootargs;usb start;ext2load usb 0:1 $loadaddr /boot/$bootfile;ext2load usb 0:1 $fdtaddr /boot/$fdtfile;bootm $loadaddr - $fdtaddr"
diff --git a/configs/P1020RDB-PC_defconfig b/configs/P1020RDB-PC_defconfig
index 17bde92263..ca828eac03 100644
--- a/configs/P1020RDB-PC_defconfig
+++ b/configs/P1020RDB-PC_defconfig
@@ -12,7 +12,6 @@ CONFIG_TARGET_P1020RDB_PC=y
CONFIG_MPC85XX_HAVE_RESET_VECTOR=y
CONFIG_L2_CACHE=y
CONFIG_ENABLE_36BIT_PHYS=y
-CONFIG_SYS_MPC85XX_NO_RESETVEC=y
CONFIG_USE_UBOOTPATH=y
CONFIG_PCIE1=y
CONFIG_PCIE2=y
@@ -22,7 +21,7 @@ CONFIG_FIT=y
CONFIG_FIT_VERBOSE=y
CONFIG_OF_BOARD_SETUP=y
CONFIG_OF_STDOUT_VIA_ALIAS=y
-CONFIG_FSL_FIXED_MMC_LOCATION=y
+CONFIG_NO_PBL=y
CONFIG_BOOTDELAY=10
CONFIG_USE_BOOTCOMMAND=y
CONFIG_BOOTCOMMAND="setenv bootargs root=/dev/$bdev rw rootdelay=30 console=$consoledev,$baudrate $othbootargs;usb start;ext2load usb 0:1 $loadaddr /boot/$bootfile;ext2load usb 0:1 $fdtaddr /boot/$fdtfile;bootm $loadaddr - $fdtaddr"
diff --git a/configs/P1020RDB-PD_defconfig b/configs/P1020RDB-PD_defconfig
index b0ccaa1cfd..5377aba4ef 100644
--- a/configs/P1020RDB-PD_defconfig
+++ b/configs/P1020RDB-PD_defconfig
@@ -12,7 +12,6 @@ CONFIG_TARGET_P1020RDB_PD=y
CONFIG_MPC85XX_HAVE_RESET_VECTOR=y
CONFIG_L2_CACHE=y
CONFIG_ENABLE_36BIT_PHYS=y
-CONFIG_SYS_MPC85XX_NO_RESETVEC=y
CONFIG_USE_UBOOTPATH=y
CONFIG_PCIE1=y
CONFIG_PCIE2=y
@@ -22,7 +21,7 @@ CONFIG_FIT=y
CONFIG_FIT_VERBOSE=y
CONFIG_OF_BOARD_SETUP=y
CONFIG_OF_STDOUT_VIA_ALIAS=y
-CONFIG_FSL_FIXED_MMC_LOCATION=y
+CONFIG_NO_PBL=y
CONFIG_BOOTDELAY=10
CONFIG_USE_BOOTCOMMAND=y
CONFIG_BOOTCOMMAND="setenv bootargs root=/dev/$bdev rw rootdelay=30 console=$consoledev,$baudrate $othbootargs;usb start;ext2load usb 0:1 $loadaddr /boot/$bootfile;ext2load usb 0:1 $fdtaddr /boot/$fdtfile;bootm $loadaddr - $fdtaddr"
diff --git a/configs/P2020RDB-PC_36BIT_defconfig b/configs/P2020RDB-PC_36BIT_defconfig
index bb5df66c74..d266ce82a5 100644
--- a/configs/P2020RDB-PC_36BIT_defconfig
+++ b/configs/P2020RDB-PC_36BIT_defconfig
@@ -12,7 +12,6 @@ CONFIG_TARGET_P2020RDB=y
CONFIG_MPC85XX_HAVE_RESET_VECTOR=y
CONFIG_L2_CACHE=y
CONFIG_ENABLE_36BIT_PHYS=y
-CONFIG_SYS_MPC85XX_NO_RESETVEC=y
CONFIG_USE_UBOOTPATH=y
CONFIG_PCIE1=y
CONFIG_PCIE2=y
@@ -23,7 +22,7 @@ CONFIG_FIT=y
CONFIG_FIT_VERBOSE=y
CONFIG_OF_BOARD_SETUP=y
CONFIG_OF_STDOUT_VIA_ALIAS=y
-CONFIG_FSL_FIXED_MMC_LOCATION=y
+CONFIG_NO_PBL=y
CONFIG_BOOTDELAY=10
CONFIG_USE_BOOTCOMMAND=y
CONFIG_BOOTCOMMAND="setenv bootargs root=/dev/$bdev rw rootdelay=30 console=$consoledev,$baudrate $othbootargs;usb start;ext2load usb 0:1 $loadaddr /boot/$bootfile;ext2load usb 0:1 $fdtaddr /boot/$fdtfile;bootm $loadaddr - $fdtaddr"
diff --git a/configs/P2020RDB-PC_defconfig b/configs/P2020RDB-PC_defconfig
index 2afef4a5eb..4d5569c554 100644
--- a/configs/P2020RDB-PC_defconfig
+++ b/configs/P2020RDB-PC_defconfig
@@ -12,7 +12,6 @@ CONFIG_TARGET_P2020RDB=y
CONFIG_MPC85XX_HAVE_RESET_VECTOR=y
CONFIG_L2_CACHE=y
CONFIG_ENABLE_36BIT_PHYS=y
-CONFIG_SYS_MPC85XX_NO_RESETVEC=y
CONFIG_USE_UBOOTPATH=y
CONFIG_PCIE1=y
CONFIG_PCIE2=y
@@ -22,7 +21,7 @@ CONFIG_FIT=y
CONFIG_FIT_VERBOSE=y
CONFIG_OF_BOARD_SETUP=y
CONFIG_OF_STDOUT_VIA_ALIAS=y
-CONFIG_FSL_FIXED_MMC_LOCATION=y
+CONFIG_NO_PBL=y
CONFIG_BOOTDELAY=10
CONFIG_USE_BOOTCOMMAND=y
CONFIG_BOOTCOMMAND="setenv bootargs root=/dev/$bdev rw rootdelay=30 console=$consoledev,$baudrate $othbootargs;usb start;ext2load usb 0:1 $loadaddr /boot/$bootfile;ext2load usb 0:1 $fdtaddr /boot/$fdtfile;bootm $loadaddr - $fdtaddr"
diff --git a/configs/evb-rk3288_defconfig b/configs/evb-rk3288_defconfig
index 8f8d34c703..fcfb6aac1e 100644
--- a/configs/evb-rk3288_defconfig
+++ b/configs/evb-rk3288_defconfig
@@ -80,6 +80,7 @@ CONFIG_DM_REGULATOR_FIXED=y
CONFIG_PWM_ROCKCHIP=y
CONFIG_RAM=y
CONFIG_SPL_RAM=y
+CONFIG_DM_RESET=y
CONFIG_DEBUG_UART_SHIFT=2
CONFIG_SYS_NS16550_MEM32=y
CONFIG_SYSRESET=y
diff --git a/configs/evb-rk3568_defconfig b/configs/evb-rk3568_defconfig
index 7374ee42fb..a76d924d38 100644
--- a/configs/evb-rk3568_defconfig
+++ b/configs/evb-rk3568_defconfig
@@ -65,4 +65,5 @@ CONFIG_BAUDRATE=1500000
CONFIG_DEBUG_UART_SHIFT=2
CONFIG_SYS_NS16550_MEM32=y
CONFIG_SYSRESET=y
+# CONFIG_BINMAN_FDT is not set
CONFIG_ERRNO_STR=y
diff --git a/configs/firefly-rk3288_defconfig b/configs/firefly-rk3288_defconfig
index 26967a67cc..434c9113b5 100644
--- a/configs/firefly-rk3288_defconfig
+++ b/configs/firefly-rk3288_defconfig
@@ -77,6 +77,7 @@ CONFIG_DM_REGULATOR_FIXED=y
CONFIG_PWM_ROCKCHIP=y
CONFIG_RAM=y
CONFIG_SPL_RAM=y
+CONFIG_DM_RESET=y
CONFIG_DEBUG_UART_SHIFT=2
CONFIG_SYS_NS16550_MEM32=y
CONFIG_SYSRESET=y
diff --git a/configs/ge_b1x5v2_defconfig b/configs/ge_b1x5v2_defconfig
index 353942dd78..e644137c03 100644
--- a/configs/ge_b1x5v2_defconfig
+++ b/configs/ge_b1x5v2_defconfig
@@ -65,7 +65,6 @@ CONFIG_CMD_DNS=y
CONFIG_CMD_BMP=y
CONFIG_CMD_BOOTCOUNT=y
CONFIG_CMD_CACHE=y
-CONFIG_CMD_CLS=y
CONFIG_CMD_TIME=y
CONFIG_CMD_PMIC=y
CONFIG_CMD_REGULATOR=y
diff --git a/configs/ge_bx50v3_defconfig b/configs/ge_bx50v3_defconfig
index e35788fd85..82f6cc3f82 100644
--- a/configs/ge_bx50v3_defconfig
+++ b/configs/ge_bx50v3_defconfig
@@ -36,7 +36,6 @@ CONFIG_CMD_PCI=y
CONFIG_CMD_BMP=y
CONFIG_CMD_BOOTCOUNT=y
CONFIG_CMD_CACHE=y
-CONFIG_CMD_CLS=y
CONFIG_CMD_EXT2=y
CONFIG_CMD_EXT4=y
CONFIG_CMD_EXT4_WRITE=y
diff --git a/configs/miqi-rk3288_defconfig b/configs/miqi-rk3288_defconfig
index 9346cafc64..652e418ff3 100644
--- a/configs/miqi-rk3288_defconfig
+++ b/configs/miqi-rk3288_defconfig
@@ -74,6 +74,7 @@ CONFIG_DM_REGULATOR_FIXED=y
CONFIG_PWM_ROCKCHIP=y
CONFIG_RAM=y
CONFIG_SPL_RAM=y
+CONFIG_DM_RESET=y
CONFIG_DEBUG_UART_SHIFT=2
CONFIG_SYS_NS16550_MEM32=y
CONFIG_SYSRESET=y
diff --git a/configs/mx53ppd_defconfig b/configs/mx53ppd_defconfig
index d8cb654a59..055dbcb033 100644
--- a/configs/mx53ppd_defconfig
+++ b/configs/mx53ppd_defconfig
@@ -34,7 +34,6 @@ CONFIG_CMD_DHCP=y
CONFIG_CMD_MII=y
CONFIG_CMD_PING=y
CONFIG_CMD_BOOTCOUNT=y
-CONFIG_CMD_CLS=y
CONFIG_CMD_EXT2=y
CONFIG_CMD_EXT4=y
CONFIG_CMD_EXT4_WRITE=y
diff --git a/configs/roc-pc-rk3399_defconfig b/configs/roc-pc-rk3399_defconfig
index 6cde762eed..3e58db07da 100644
--- a/configs/roc-pc-rk3399_defconfig
+++ b/configs/roc-pc-rk3399_defconfig
@@ -45,7 +45,6 @@ CONFIG_CMD_TIME=y
CONFIG_SPL_OF_CONTROL=y
CONFIG_OF_SPL_REMOVE_PROPS="pinctrl-0 pinctrl-names clock-names interrupt-parent assigned-clocks assigned-clock-rates assigned-clock-parents"
CONFIG_ENV_IS_IN_SPI_FLASH=y
-CONFIG_ENV_SPI_MAX_HZ=30000000
CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_SPL_DM_SEQ_ALIAS=y
CONFIG_ROCKCHIP_GPIO=y
@@ -83,7 +82,6 @@ CONFIG_USB_EHCI_HCD=y
CONFIG_USB_EHCI_GENERIC=y
CONFIG_USB_OHCI_HCD=y
CONFIG_USB_OHCI_GENERIC=y
-CONFIG_SYS_USB_OHCI_MAX_ROOT_PORTS=2
CONFIG_USB_DWC3=y
CONFIG_USB_DWC3_GENERIC=y
CONFIG_USB_KEYBOARD=y
diff --git a/configs/rock-pi-4-rk3399_defconfig b/configs/rock-pi-4-rk3399_defconfig
index 17a65fffa5..7c49ccd064 100644
--- a/configs/rock-pi-4-rk3399_defconfig
+++ b/configs/rock-pi-4-rk3399_defconfig
@@ -30,6 +30,7 @@ CONFIG_SPL_STACK_R=y
CONFIG_SPL_STACK_R_MALLOC_SIMPLE_LEN=0x10000
CONFIG_TPL=y
CONFIG_CMD_BOOTZ=y
+CONFIG_CMD_NVEDIT_EFI=y
CONFIG_CMD_DFU=y
CONFIG_CMD_GPT=y
CONFIG_CMD_MMC=y
@@ -38,6 +39,7 @@ CONFIG_CMD_USB=y
CONFIG_CMD_ROCKUSB=y
CONFIG_CMD_USB_MASS_STORAGE=y
# CONFIG_CMD_SETEXPR is not set
+CONFIG_CMD_EFIDEBUG=y
CONFIG_CMD_TIME=y
CONFIG_SPL_OF_CONTROL=y
CONFIG_OF_SPL_REMOVE_PROPS="pinctrl-0 pinctrl-names clock-names interrupt-parent assigned-clocks assigned-clock-rates assigned-clock-parents"
@@ -91,9 +93,5 @@ CONFIG_DISPLAY_ROCKCHIP_HDMI=y
CONFIG_SPL_TINY_MEMSET=y
CONFIG_ERRNO_STR=y
CONFIG_OF_LIBFDT_OVERLAY=y
-CONFIG_CMD_NVEDIT_EFI=y
-CONFIG_CMD_EFIDEBUG=y
-CONFIG_TOOLS_MKEFICAPSULE=y
-CONFIG_HEXDUMP=y
CONFIG_EFI_CAPSULE_ON_DISK=y
CONFIG_EFI_CAPSULE_FIRMWARE_RAW=y
diff --git a/configs/rock-pi-4c-rk3399_defconfig b/configs/rock-pi-4c-rk3399_defconfig
index 5e93d5ac32..4f61a0ff66 100644
--- a/configs/rock-pi-4c-rk3399_defconfig
+++ b/configs/rock-pi-4c-rk3399_defconfig
@@ -30,6 +30,7 @@ CONFIG_SPL_STACK_R=y
CONFIG_SPL_STACK_R_MALLOC_SIMPLE_LEN=0x10000
CONFIG_TPL=y
CONFIG_CMD_BOOTZ=y
+CONFIG_CMD_NVEDIT_EFI=y
CONFIG_CMD_DFU=y
CONFIG_CMD_GPT=y
CONFIG_CMD_MMC=y
@@ -38,6 +39,7 @@ CONFIG_CMD_USB=y
CONFIG_CMD_ROCKUSB=y
CONFIG_CMD_USB_MASS_STORAGE=y
# CONFIG_CMD_SETEXPR is not set
+CONFIG_CMD_EFIDEBUG=y
CONFIG_CMD_TIME=y
CONFIG_SPL_OF_CONTROL=y
CONFIG_OF_SPL_REMOVE_PROPS="pinctrl-0 pinctrl-names clock-names interrupt-parent assigned-clocks assigned-clock-rates assigned-clock-parents"
@@ -91,9 +93,5 @@ CONFIG_DISPLAY_ROCKCHIP_HDMI=y
CONFIG_SPL_TINY_MEMSET=y
CONFIG_ERRNO_STR=y
CONFIG_OF_LIBFDT_OVERLAY=y
-CONFIG_CMD_NVEDIT_EFI=y
-CONFIG_CMD_EFIDEBUG=y
-CONFIG_TOOLS_MKEFICAPSULE=y
-CONFIG_HEXDUMP=y
CONFIG_EFI_CAPSULE_ON_DISK=y
CONFIG_EFI_CAPSULE_FIRMWARE_RAW=y
diff --git a/configs/rock-pi-n8-rk3288_defconfig b/configs/rock-pi-n8-rk3288_defconfig
index 18c6d1b922..612663845c 100644
--- a/configs/rock-pi-n8-rk3288_defconfig
+++ b/configs/rock-pi-n8-rk3288_defconfig
@@ -73,6 +73,7 @@ CONFIG_PWM_ROCKCHIP=y
CONFIG_RAM=y
CONFIG_SPL_RAM=y
# CONFIG_RAM_ROCKCHIP_DEBUG is not set
+CONFIG_DM_RESET=y
CONFIG_DEBUG_UART_SHIFT=2
CONFIG_SYS_NS16550_MEM32=y
CONFIG_SYSRESET=y
diff --git a/configs/rzg2_beacon_defconfig b/configs/rzg2_beacon_defconfig
index 36787057a2..b4ea6c630a 100644
--- a/configs/rzg2_beacon_defconfig
+++ b/configs/rzg2_beacon_defconfig
@@ -68,6 +68,8 @@ CONFIG_SPI_FLASH_WINBOND=y
CONFIG_BITBANGMII=y
CONFIG_BITBANGMII_MULTI=y
CONFIG_PHY_ATHEROS=y
+CONFIG_PHY_MICREL=y
+CONFIG_PHY_MICREL_KSZ90X1=y
CONFIG_RENESAS_RAVB=y
CONFIG_DM_REGULATOR=y
CONFIG_DM_REGULATOR_FIXED=y
diff --git a/configs/sandbox64_defconfig b/configs/sandbox64_defconfig
index b69e053126..ba45ac0b71 100644
--- a/configs/sandbox64_defconfig
+++ b/configs/sandbox64_defconfig
@@ -101,6 +101,7 @@ CONFIG_BOOTP_SEND_HOSTNAME=y
CONFIG_NETCONSOLE=y
CONFIG_IP_DEFRAG=y
CONFIG_BOOTP_SERVERIP=y
+CONFIG_IPV6=y
CONFIG_DM_DMA=y
CONFIG_REGMAP=y
CONFIG_SYSCON=y
@@ -258,4 +259,3 @@ CONFIG_FWU_MULTI_BANK_UPDATE=y
CONFIG_UNIT_TEST=y
CONFIG_UT_TIME=y
CONFIG_UT_DM=y
-CONFIG_IPV6=y
diff --git a/configs/sandbox_defconfig b/configs/sandbox_defconfig
index f9c996b429..de799b5cea 100644
--- a/configs/sandbox_defconfig
+++ b/configs/sandbox_defconfig
@@ -135,6 +135,7 @@ CONFIG_BOOTP_SEND_HOSTNAME=y
CONFIG_NETCONSOLE=y
CONFIG_IP_DEFRAG=y
CONFIG_BOOTP_SERVERIP=y
+CONFIG_IPV6=y
CONFIG_DM_DMA=y
CONFIG_DEVRES=y
CONFIG_DEBUG_DEVRES=y
@@ -266,6 +267,7 @@ CONFIG_RESET_SYSCON=y
CONFIG_RESET_SCMI=y
CONFIG_DM_RTC=y
CONFIG_RTC_RV8803=y
+CONFIG_RTC_HT1380=y
CONFIG_SCSI=y
CONFIG_DM_SCSI=y
CONFIG_SANDBOX_SERIAL=y
@@ -333,5 +335,3 @@ CONFIG_TEST_FDTDEC=y
CONFIG_UNIT_TEST=y
CONFIG_UT_TIME=y
CONFIG_UT_DM=y
-CONFIG_IPV6=y
-CONFIG_RTC_HT1380=y
diff --git a/configs/sandbox_flattree_defconfig b/configs/sandbox_flattree_defconfig
index 7237efe685..88aaddfa4a 100644
--- a/configs/sandbox_flattree_defconfig
+++ b/configs/sandbox_flattree_defconfig
@@ -78,6 +78,7 @@ CONFIG_BOOTP_SEND_HOSTNAME=y
CONFIG_NETCONSOLE=y
CONFIG_IP_DEFRAG=y
CONFIG_BOOTP_SERVERIP=y
+CONFIG_IPV6=y
CONFIG_DM_DMA=y
CONFIG_REGMAP=y
CONFIG_SYSCON=y
@@ -216,4 +217,3 @@ CONFIG_EFI_CAPSULE_FIRMWARE_FIT=y
CONFIG_UNIT_TEST=y
CONFIG_UT_TIME=y
CONFIG_UT_DM=y
-CONFIG_IPV6=y
diff --git a/configs/stm32mp15_dhcom_basic_defconfig b/configs/stm32mp15_dhcom_basic_defconfig
index 7db562c542..4ea80ad441 100644
--- a/configs/stm32mp15_dhcom_basic_defconfig
+++ b/configs/stm32mp15_dhcom_basic_defconfig
@@ -72,10 +72,8 @@ CONFIG_CMD_CLK=y
CONFIG_CMD_DFU=y
CONFIG_CMD_FUSE=y
CONFIG_CMD_GPIO=y
-CONFIG_CMD_GPT=y
CONFIG_CMD_I2C=y
CONFIG_CMD_MMC=y
-CONFIG_CMD_MTD=y
CONFIG_CMD_REMOTEPROC=y
CONFIG_CMD_SPI=y
CONFIG_CMD_USB=y
@@ -112,9 +110,6 @@ CONFIG_STM32_ADC=y
CONFIG_SPL_BLOCK_CACHE=y
CONFIG_BOOTCOUNT_LIMIT=y
CONFIG_SYS_BOOTCOUNT_MAGIC=0xB0C40000
-CONFIG_DFU_MMC=y
-CONFIG_DFU_MTD=y
-CONFIG_DFU_RAM=y
CONFIG_GPIO_HOG=y
CONFIG_DM_HWSPINLOCK=y
CONFIG_HWSPINLOCK_STM32=y
diff --git a/configs/stm32mp15_dhcor_basic_defconfig b/configs/stm32mp15_dhcor_basic_defconfig
index c94f03569f..668e9ccf93 100644
--- a/configs/stm32mp15_dhcor_basic_defconfig
+++ b/configs/stm32mp15_dhcor_basic_defconfig
@@ -70,10 +70,8 @@ CONFIG_CMD_CLK=y
CONFIG_CMD_DFU=y
CONFIG_CMD_FUSE=y
CONFIG_CMD_GPIO=y
-CONFIG_CMD_GPT=y
CONFIG_CMD_I2C=y
CONFIG_CMD_MMC=y
-CONFIG_CMD_MTD=y
CONFIG_CMD_REMOTEPROC=y
CONFIG_CMD_SPI=y
CONFIG_CMD_USB=y
@@ -109,9 +107,6 @@ CONFIG_STM32_ADC=y
CONFIG_SPL_BLOCK_CACHE=y
CONFIG_BOOTCOUNT_LIMIT=y
CONFIG_SYS_BOOTCOUNT_MAGIC=0xB0C40000
-CONFIG_DFU_MMC=y
-CONFIG_DFU_MTD=y
-CONFIG_DFU_RAM=y
CONFIG_GPIO_HOG=y
CONFIG_DM_HWSPINLOCK=y
CONFIG_HWSPINLOCK_STM32=y
diff --git a/configs/tinker-rk3288_defconfig b/configs/tinker-rk3288_defconfig
index 5976a84491..c03256a0bf 100644
--- a/configs/tinker-rk3288_defconfig
+++ b/configs/tinker-rk3288_defconfig
@@ -82,6 +82,7 @@ CONFIG_REGULATOR_RK8XX=y
CONFIG_PWM_ROCKCHIP=y
CONFIG_RAM=y
CONFIG_SPL_RAM=y
+CONFIG_DM_RESET=y
CONFIG_DEBUG_UART_SHIFT=2
CONFIG_SYS_NS16550_MEM32=y
CONFIG_SYSRESET=y
diff --git a/configs/tinker-s-rk3288_defconfig b/configs/tinker-s-rk3288_defconfig
index 078f829c2d..294e5b1071 100644
--- a/configs/tinker-s-rk3288_defconfig
+++ b/configs/tinker-s-rk3288_defconfig
@@ -82,6 +82,7 @@ CONFIG_REGULATOR_RK8XX=y
CONFIG_PWM_ROCKCHIP=y
CONFIG_RAM=y
CONFIG_SPL_RAM=y
+CONFIG_DM_RESET=y
CONFIG_DEBUG_UART_SHIFT=2
CONFIG_SYS_NS16550_MEM32=y
CONFIG_SYSRESET=y
diff --git a/configs/vyasa-rk3288_defconfig b/configs/vyasa-rk3288_defconfig
index 0c9d61b805..47ccd708fc 100644
--- a/configs/vyasa-rk3288_defconfig
+++ b/configs/vyasa-rk3288_defconfig
@@ -82,6 +82,7 @@ CONFIG_REGULATOR_RK8XX=y
CONFIG_PWM_ROCKCHIP=y
CONFIG_RAM=y
CONFIG_SPL_RAM=y
+CONFIG_DM_RESET=y
CONFIG_DEBUG_UART_SHIFT=2
CONFIG_SYS_NS16550_MEM32=y
CONFIG_SYSRESET=y
diff --git a/doc/Makefile b/doc/Makefile
index f5de65e927..d0904a9f99 100644
--- a/doc/Makefile
+++ b/doc/Makefile
@@ -69,6 +69,14 @@ quiet_cmd_sphinx = SPHINX $@ --> file://$(abspath $(BUILDDIR)/$3/$4)
htmldocs:
@+$(foreach var,$(SPHINXDIRS),$(call loop_cmd,sphinx,html,$(var),,$(var)))
+texinfodocs:
+ @+$(foreach var,$(SPHINXDIRS),$(call loop_cmd,sphinx,texinfo,$(var),texinfo,$(var)))
+
+# Note: the 'info' Make target is generated by sphinx itself when
+# running the texinfodocs target defined above.
+infodocs: texinfodocs
+ $(MAKE) -C $(BUILDDIR)/texinfo info
+
linkcheckdocs:
@$(foreach var,$(SPHINXDIRS),$(call loop_cmd,sphinx,linkcheck,$(var),,$(var)))
@@ -109,6 +117,8 @@ cleandocs:
dochelp:
@echo ' U-Boot documentation in different formats from ReST:'
@echo ' htmldocs - HTML'
+ @echo ' texinfodocs - Texinfo'
+ @echo ' infodocs - Info'
@echo ' latexdocs - LaTeX'
@echo ' pdfdocs - PDF'
@echo ' epubdocs - EPUB'
diff --git a/doc/board/emulation/qemu-ppce500.rst b/doc/board/emulation/qemu-ppce500.rst
index 5de0aaf55d..82b50a01de 100644
--- a/doc/board/emulation/qemu-ppce500.rst
+++ b/doc/board/emulation/qemu-ppce500.rst
@@ -7,7 +7,7 @@ QEMU PPC E500
QEMU for PPC supports a special 'ppce500' machine designed for emulation and
virtualization purposes. This document describes how to run U-Boot under it.
-The QEMU ppce500 machine models a generic PowerPC E500 virtual machine with
+The QEMU ppce500 machine models a generic PowerPC e500 virtual machine with
support for the VirtIO standard networking device connected to the built-in
PCI host controller. Some common devices in the CCSBAR space are modeled,
including MPIC, 16550A UART devices, GPIO, I2C and PCI host controller with
@@ -39,6 +39,7 @@ embedded DTB created by QEMU reflects the new setting.
Both qemu-system-ppc and qemu-system-ppc64 provide emulation for the following
32-bit PowerPC CPUs:
+* e500v1
* e500v2
* e500mc
@@ -61,8 +62,9 @@ When U-Boot boots, you will notice the following::
This is because we only specified a core name to QEMU and it does not have a
meaningful SVR value which represents an actual SoC that integrates such core.
You can specify a real world SoC device that QEMU has built-in support but all
-these SoCs are e500v2 based MPC85xx series, hence you cannot test anything
-built for P4080 (e500mc), P5020 (e5500) and T2080 (e6500).
+these SoCs are e500v1/e500v2 based MPC85xx series, hence you cannot test anything
+built for P10xx/P2010/P2020 (e500v2), P204x/P304x/P40xx (e500mc), P50xx/T10xx (e5500)
+and T208x/T4080/T4160/T4240 (e6500).
By default a VirtIO standard PCI networking device is connected as an ethernet
interface at PCI address 0.1.0, but we can switch that to an e1000 NIC by::
diff --git a/doc/board/ti/am335x_evm.rst b/doc/board/ti/am335x_evm.rst
index 0b230cf7c7..ee4faec37c 100644
--- a/doc/board/ti/am335x_evm.rst
+++ b/doc/board/ti/am335x_evm.rst
@@ -1,8 +1,11 @@
.. SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause
.. sectionauthor:: Tom Rini <trini@konsulko.com>
+AM335x Generation
+=================
+
Summary
-=======
+-------
This document covers various features of the `am335x_evm` default
configuration, some of the related defconfigs, and how to enable hardware
diff --git a/doc/board/ti/am62x_sk.rst b/doc/board/ti/am62x_sk.rst
index 4e68c2018a..b1b7d99bef 100644
--- a/doc/board/ti/am62x_sk.rst
+++ b/doc/board/ti/am62x_sk.rst
@@ -1,8 +1,8 @@
.. SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause
.. sectionauthor:: Vignesh Raghavendra <vigneshr@ti.com>
-Texas Instruments AM62 Platforms
-================================
+AM62 Platforms
+===============
Introduction:
-------------
diff --git a/doc/board/ti/index.rst b/doc/board/ti/index.rst
index 250d9242e8..89d537d195 100644
--- a/doc/board/ti/index.rst
+++ b/doc/board/ti/index.rst
@@ -1,11 +1,10 @@
.. SPDX-License-Identifier: GPL-2.0+
Texas Instruments
-=================
+#################
.. toctree::
:maxdepth: 2
am335x_evm
- j721e_evm
- am62x_sk
+ k3
diff --git a/doc/board/ti/j721e_evm.rst b/doc/board/ti/j721e_evm.rst
index ad70f15b7a..e898601c41 100644
--- a/doc/board/ti/j721e_evm.rst
+++ b/doc/board/ti/j721e_evm.rst
@@ -1,8 +1,8 @@
.. SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause
.. sectionauthor:: Lokesh Vutla <lokeshvutla@ti.com>
-Texas Instruments K3 Platforms
-==============================
+J721E Platforms
+===============
Introduction:
-------------
diff --git a/doc/board/ti/k3.rst b/doc/board/ti/k3.rst
new file mode 100644
index 0000000000..b49a60caf1
--- /dev/null
+++ b/doc/board/ti/k3.rst
@@ -0,0 +1,274 @@
+.. SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause
+.. sectionauthor:: Bryan Brattlof <bb@ti.com>
+
+K3 Generation
+=============
+
+Summary
+-------
+
+Texas Instrument's K3 family of SoCs utilize a heterogeneous multicore
+and highly integrated device architecture targeted to maximize
+performance and power efficiency for a wide range of industrial,
+automotive and other broad market segments.
+
+Typically the processing cores and the peripherals for these devices are
+partitioned into three functional domains to provide ultra-low power
+modes as well as accommodating application and industrial safety systems
+on the same SoC. These functional domains are typically called the:
+
+* Wakeup (WKUP) domain
+* Micro-controller (MCU) domain
+* Main domain
+
+For a more detailed view of what peripherals are attached to each
+domain, consult the device specific documentation.
+
+K3 Based SoCs
+-------------
+
+.. toctree::
+ :maxdepth: 1
+
+ j721e_evm
+ am62x_sk
+
+Boot Flow Overview
+------------------
+
+For all K3 SoCs the first core started will be inside the Security
+Management Subsystem (SMS) which will secure the device and start a core
+in the wakeup domain to run the ROM code. ROM will then initialize the
+boot media needed to load the binaries packaged inside `tiboot3.bin`,
+including a 32bit U-Boot SPL, (called the wakup SPL) that ROM will jump
+to after it has finished loading everything into internal SRAM.
+
+.. code-block:: text
+
+ | WKUP Domain
+ ROM -> WKUP SPL ->
+
+The wakeup SPL, running on a wakeup domain core, will initialize DDR and
+any peripherals needed load the larger binaries inside the `tispl.bin`
+into DDR. Once loaded the wakeup SPL will start one of the 'big'
+application cores inside the main domain to initialize the main domain,
+starting with ARM Trusted Firmware (ATF), before moving on to start
+OPTEE and the main domain's U-Boot SPL.
+
+.. code-block:: text
+
+ | WKUP Domain | Main Domain ->
+ ROM -> WKUP SPL -> ATF -> OPTEE -> Main SPL
+
+The main domain's SPL, running on a 64bit application core, has
+virtually unlimited space (billions of bytes now that DDR is working) to
+initialize even more peripherals needed to load in the `u-boot.img`
+which loads more firmware into the micro-controller & wakeup domains and
+finally prepare the main domain to run Linux.
+
+.. code-block:: text
+
+ | WKUP Domain | Main Domain ->
+ ROM -> WKUP SPL -> ATF -> OPTEE -> Main SPL -> UBoot -> Linux
+
+This is the typical boot flow for all K3 based SoCs, however this flow
+offers quite a lot in the terms of flexibility, especially on High
+Security (HS) SoCs.
+
+Boot Flow Variations
+^^^^^^^^^^^^^^^^^^^^
+
+All K3 SoCs will generally use the above boot flow with two main
+differences depending on the capabilities of the boot ROM and the number
+of cores inside the device. These differences split the bootflow into
+essentially 4 unique but very similar flows:
+
+* Split binary with a combined firmware: (eg: AM65)
+* Combined binary with a combined firmware: (eg: AM64)
+* Split binary with a split firmware: (eg: J721E)
+* Combined binary with a split firmware: (eg: AM62)
+
+For devices that utilize the split binary approach, ROM is not capable
+of loading the firmware into the SoC requiring the wakeup domain's
+U-Boot SPL to load the firmware.
+
+Devices with a split firmware will have two firmwares loaded into the
+device at different times during the bootup process. TI's Foundational
+Security (TIFS), needed to operate the Security Management Subsystem,
+will either be loaded by ROM or the WKUP U-Boot SPL, then once the
+wakeup U-Boot SPL has completed, the second Device Management (DM)
+firmware can be loaded on the now free core in the wakeup domain.
+
+For more information on the bootup process of your SoC, consult the
+device specific boot flow documentation.
+
+Software Sources
+----------------
+
+All scripts and code needed to build the `tiboot3.bin`, `tispl.bin` and
+`u-boot.img` for all K3 SoCs can be located at the following places
+online
+
+* **Das U-Boot**
+
+ | **source:** https://source.denx.de/u-boot/u-boot.git
+ | **branch:** master
+
+* **K3 Image Gen**
+
+ | **source:** https://git.ti.com/git/k3-image-gen/k3-image-gen.git
+ | **branch:** master
+
+* **ARM Trusted Firmware (ATF)**
+
+ | **source:** https://github.com/ARM-software/arm-trusted-firmware.git
+ | **branch:** master
+
+* **Open Portable Trusted Execution Environment (OPTEE)**
+
+ | **source:** https://github.com/OP-TEE/optee_os.git
+ | **branch:** master
+
+* **TI Firmware (TIFS, DM, DSMC)**
+
+ | **source:** https://git.ti.com/git/processor-firmware/ti-linux-firmware.git
+ | **branch:** ti-linux-firmware
+
+* **TI's Security Development Tools**
+
+ | **source:** https://git.ti.com/git/security-development-tools/core-secdev-k3.git
+ | **branch:** master
+
+Build Procedure
+---------------
+
+Depending on the specifics of your device, you will need three or more
+binaries to boot your SoC.
+
+* `tiboot3.bin` (bootloader for the wakeup domain)
+* `tispl.bin` (bootloader for the main domain)
+* `u-boot.img`
+
+During the bootup process, both the 32bit wakeup domain and the 64bit
+main domains will be involved. This means everything inside the
+`tiboot3.bin` running in the wakeup domain will need to be compiled for
+32bit cores and most binaries in the `tispl.bin` will need to be
+compiled for 64bit main domain CPU cores.
+
+All of that to say you will need both a 32bit and 64bit cross compiler
+(assuming you're using an x86 desktop)
+
+.. code-block:: bash
+
+ export CC32=arm-linux-gnueabihf-
+ export CC64=aarch64-linux-gnu-
+
+Building tiboot3.bin
+^^^^^^^^^^^^^^^^^^^^^
+
+1. To generate the U-Boot SPL for the wakeup domain, use the following
+ commands, substituting :code:`{SOC}` for the name of your device (eg:
+ am62x)
+
+.. code-block:: bash
+
+ # inside u-boot source
+ make ARCH=arm O=build/wkup CROSS_COMPILE=$CC32 {SOC}_evm_r5_defconfig
+ make ARCH=arm O=build/wkup CROSS_COMPILE=$CC32
+
+2. Next we will use the K3 Image Gen scripts to package the various
+ firmware and the wakeup UBoot SPL into the final `tiboot3.bin`
+ binary. (or the `sysfw.itb` if your device uses the split binary
+ flow)
+
+.. code-block:: bash
+
+ # inside k3-image-gen source
+ make CROSS_COMPILE=$CC32 SOC={SOC} SOC_TYPE={hs,gp} \
+ TI_SECURE_DEV_PKG=<path/to/securit-development-tools> \
+ SYSFW_PATH=<path/to/ti-sysfw/ti-fs-firmware-{SOC}-{hs|gp}.bin> \
+ SYSFW_HS_INNER_CERT_PATH=<path/to/ti-sysfw/ti-fs-firmware-{SOC}-hs-cert.bin
+
+For devices that use the *combined binary flow*, you will also need to
+supply the location of the SPL we created in step 1 above, so it can be
+packaged into the final `tiboot3.bin`.
+
+.. code-block:: bash
+
+ SBL=<path/to/wakeup/u-boot-spl.bin>
+
+At this point you should have all the needed binaries to boot the wakeup
+domain of your K3 SoC.
+
+**Combined Binary Boot Flow** (eg: am62x, am64x, ... )
+
+ `k3-image-gen/tiboot3-{SOC}-{hs,gp}-evm.bin`
+
+**Split Binary Boot Flow** (eg: j721e, am65x)
+
+ | `u-boot/build/wkup/tiboot3.bin`
+ | `k3-image-gen/sysfw-{SOC}-evm.bin`
+
+.. note ::
+
+ It's important to rename the generated `tiboot3.bin` and `sysfw.itb`
+ to match exactly `tiboot3.bin` and `sysfw.itb` as ROM and the wakeup
+ UBoot SPL will only look for and load the files with these names.
+
+Building tispl.bin
+^^^^^^^^^^^^^^^^^^^
+
+The `tispl.bin` is a standard fitImage combining the firmware need for
+the main domain to function properly as well as Device Management (DM)
+firmware if your device using a split firmware.
+
+3. We will first need ATF, as it's the first thing to run on the 'big'
+ application cores on the main domain.
+
+.. code-block:: bash
+
+ # inside arm-trusted-firmware source
+ make CROSS_COMPILE=$CC64 ARCH=aarch64 PLAT=k3 \
+ TARGET_BOARD={lite|generic} \
+ SPD=opteed \
+
+Typically all `j7*` devices will use `TARGET_BOARD=generic` while all
+Sitara (`am6*`) devices use the `lite` option.
+
+4. The Open Portable Trusted Execution Environment (OPTEE) is designed
+ to run as a companion to a non-secure Linux kernel for Cortex-A cores
+ using the TrustZone technology built into the core.
+
+.. code-block:: bash
+
+ # inside optee_os source
+ make CROSS_COMPILE=$CC32 CROSS_COMPILE64=$CC64 \
+ PLATFORM=k3 CFG_ARM64_core=y
+
+5. Finally, after ATF has initialized the main domain and OPTEE has
+ finished, we can jump back into U-Boot again, this time running on a
+ 64bit core in the main domain.
+
+.. code-block:: bash
+
+ # inside u-boot source
+ make ARCH=arm O=build/main CROSS_COMPILE=$CC64 {SOC}_evm_a{53,72}_defconfig
+ make ARCH=arm O=build/main CROSS_COMPILE=$CC64 \
+ ATF=<path/to/atf/bl31.bin \
+ TEE=<path/to/optee/tee-pager_v2.bin
+
+If your device uses a split firmware, you will also need to supply the
+path to the Device Management (DM) Firmware to be included in the final
+`tispl.bin` binary
+
+.. code-block:: bash
+
+ DM=<path/to/ti-linux-firmware/ti-dm/ipc_echo_testb_mcu1_0_release_strip.xer5f>
+
+At this point you should have every binary needed initialize both the
+wakeup and main domain and to boot to the U-Boot prompt
+
+**Main Domain Bootloader**
+
+ | `u-boot/build/main/tispl.bin`
+ | `u-boot/build/main/u-boot.img`
diff --git a/doc/build/documentation.rst b/doc/build/documentation.rst
new file mode 100644
index 0000000000..896264dd7c
--- /dev/null
+++ b/doc/build/documentation.rst
@@ -0,0 +1,90 @@
+.. SPDX-License-Identifier: GPL-2.0+:
+
+Building documentation
+======================
+
+The U-Boot documentation is based on the Sphinx documentation generator.
+
+HTML documentation
+------------------
+
+The *htmldocs* target is used to build the HTML documentation. It uses the
+`Read the Docs Sphinx theme <https://sphinx-rtd-theme.readthedocs.io/en/stable/>`_.
+
+.. code-block:: bash
+
+ # Create Python environment 'myenv'
+ python3 -m venv myenv
+ # Activate the Python environment
+ . myenv/bin/activate
+ # Install build requirements
+ python3 -m pip install -r doc/sphinx/requirements.txt
+ # Build the documentation
+ make htmldocs
+ # Deactivate the Python environment
+ deactivate
+ # Display the documentation in a graphical web browser
+ x-www-browser doc/output/index.html
+
+Infodoc documentation
+---------------------
+
+The *infodocs* target builds both a texinfo and an info file:
+
+.. code-block:: bash
+
+ # Create Python environment 'myenv'
+ python3 -m venv myenv
+ # Activate the Python environment
+ . myenv/bin/activate
+ # Install build requirements
+ python3 -m pip install -r doc/sphinx/requirements.txt
+ # Build the documentation
+ make infodocs
+ # Deactivate the Python environment
+ deactivate
+ # Display the documentation
+ info doc/output/texinfo/u-boot.info
+
+PDF documentation
+-----------------
+
+The *pdfdocs* target is meant to be used to build PDF documenation.
+As v2023.01 it fails with 'LaTeX Error: Too deeply nested'.
+
+We can use texi2pdf instead:
+
+.. code-block:: bash
+
+ # Create Python environment 'myenv'
+ python3 -m venv myenv
+ # Activate the Python environment
+ . myenv/bin/activate
+ # Install build requirements
+ python3 -m pip install -r doc/sphinx/requirements.txt
+ # Build the documentation
+ make texinfodocs
+ # Deactivate the Python environment
+ deactivate
+ # Convert to PDF
+ texi2pdf doc/output/texinfo/u-boot.texi
+
+Texinfo documentation
+---------------------
+
+To build only the texinfo documentation the *texinfodocs* target is used:
+
+.. code-block:: bash
+
+ # Create Python environment 'myenv'
+ python3 -m venv myenv
+ # Activate the Python environment
+ . myenv/bin/activate
+ # Install build requirements
+ python3 -m pip install -r doc/sphinx/requirements.txt
+ # Build the documentation
+ make texinfodocs
+ # Deactivate the Python environment
+ deactivate
+
+The output is in file *doc/output/texinfo/u-boot.texi*.
diff --git a/doc/build/index.rst b/doc/build/index.rst
index 9a8105db21..dc9cde4001 100644
--- a/doc/build/index.rst
+++ b/doc/build/index.rst
@@ -12,3 +12,4 @@ Build U-Boot
docker
tools
buildman
+ documentation
diff --git a/doc/conf.py b/doc/conf.py
index 62c8d31270..3db70f80c1 100644
--- a/doc/conf.py
+++ b/doc/conf.py
@@ -449,7 +449,7 @@ for fn in os.listdir('.'):
# One entry per manual page. List of tuples
# (source start file, name, description, authors, manual section).
man_pages = [
- (master_doc, 'dasuboot', 'The U-Boot Documentation',
+ (master_doc, 'u-boot', 'The U-Boot Documentation',
[author], 1)
]
@@ -463,8 +463,8 @@ man_pages = [
# (source start file, target name, title, author,
# dir menu entry, description, category)
texinfo_documents = [
- (master_doc, 'DasUBoot', 'The U-Boot Documentation',
- author, 'DasUBoot', 'One line description of project.',
+ (master_doc, 'u-boot', 'The U-Boot Documentation',
+ author, 'U-Boot', 'Boot loader for embedded systems',
'Miscellaneous'),
]
diff --git a/doc/develop/release_cycle.rst b/doc/develop/release_cycle.rst
index 9af63731cd..16fb4a6288 100644
--- a/doc/develop/release_cycle.rst
+++ b/doc/develop/release_cycle.rst
@@ -48,12 +48,12 @@ Examples::
Current Status
--------------
-* U-Boot v2022.10 was released on Mon 03 October 2022.
+* U-Boot v2023.01 was released on Mon 09 January 2023.
-* The Merge Window for the next release (v2023.01) is **open** until -rc1
- release on Mon 24 October 2022.
+* The Merge Window for the next release (v2023.04) is **open** until -rc1
+ release on Mon 30 January 2023.
-* Release "v2023.01" is scheduled for 09 January 2023.
+* Release "v2023.04" is scheduled for 03 April 2023.
Future Releases
---------------
@@ -61,31 +61,29 @@ 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 v2023.01-rc1 was released on Mon 07 November 2022.
+.. * U-Boot v2023.04-rc1 was released on Mon 30 January 2023.
-* U-Boot v2023.01-rc2 was released on Mon 21 November 2022.
+.. * U-Boot v2023.04-rc2 was released on Mon 13 February 2023.
-* U-Boot v2023.01-rc3 was released on Mon 05 December 2022.
+.. * U-Boot v2023.04-rc3 was released on Mon 27 February 2023.
-* U-Boot v2023.01-rc4 was released on Mon 19 December 2022.
+.. * U-Boot v2023.04-rc4 was released on Mon 13 March 2023.
-.. * U-Boot v2023.01-rc5 was released on Mon 19 December 2022.
-
-.. * U-Boot v2023.01-rc6 was released on Mon 02 January 2023.
+.. * U-Boot v2023.04-rc5 was released on Mon 27 March 2023.
Please note that the following dates are planned only and may be deviated from
as needed.
-* "v2023.01": end of MW = Mon, Oct 24, 2022; release = Mon, Jan 09, 2023
-
* "v2023.04": end of MW = Mon, Jan 30, 2022; release = Mon, Apr 03, 2023
* "v2023.07": end of MW = Mon, Apr 24, 2023; release = Mon, Jul 03, 2023
* "v2023.10": end of MW = Mon, Jul 24, 2023; release = Mon, Oct 02, 2023
+* "v2024.01": end of MW = Mon, Oct 23, 2023; release = Mon, Jan 08, 2024
+
Previous Releases
-----------------
@@ -93,6 +91,8 @@ Note: these statistics are generated by our fork of `gitdm
<https://source.denx.de/u-boot/gitdm>`_, which was originally created by
Jonathan Corbet.
+* :doc:`statistics/u-boot-stats-v2023.01` which was released on 09 January 2023.
+
* :doc:`statistics/u-boot-stats-v2022.10` which was released on 03 October 2022.
* :doc:`statistics/u-boot-stats-v2022.07` which was released on 11 July 2022.
diff --git a/doc/develop/statistics/u-boot-stats-v1.3.0.rst b/doc/develop/statistics/u-boot-stats-v1.3.0.rst
index c891468f2a..cbf433f453 100644
--- a/doc/develop/statistics/u-boot-stats-v1.3.0.rst
+++ b/doc/develop/statistics/u-boot-stats-v1.3.0.rst
@@ -3,7 +3,7 @@
Release Statistics for U-Boot v1.3.0
====================================
-* Processed 1153 csets from 102 developers
+* Processed 1153 changesets from 102 developers
* 38 employers found
diff --git a/doc/develop/statistics/u-boot-stats-v1.3.1.rst b/doc/develop/statistics/u-boot-stats-v1.3.1.rst
index e6ddd5460c..6a5c592b00 100644
--- a/doc/develop/statistics/u-boot-stats-v1.3.1.rst
+++ b/doc/develop/statistics/u-boot-stats-v1.3.1.rst
@@ -3,7 +3,7 @@
Release Statistics for U-Boot v1.3.1
====================================
-* Processed 40 csets from 5 developers
+* Processed 40 changesets from 5 developers
* 5 employers found
diff --git a/doc/develop/statistics/u-boot-stats-v1.3.2.rst b/doc/develop/statistics/u-boot-stats-v1.3.2.rst
index f050558fb4..21fc2df09a 100644
--- a/doc/develop/statistics/u-boot-stats-v1.3.2.rst
+++ b/doc/develop/statistics/u-boot-stats-v1.3.2.rst
@@ -3,7 +3,7 @@
Release Statistics for U-Boot v1.3.2
====================================
-* Processed 744 csets from 79 developers
+* Processed 744 changesets from 79 developers
* 38 employers found
diff --git a/doc/develop/statistics/u-boot-stats-v1.3.3.rst b/doc/develop/statistics/u-boot-stats-v1.3.3.rst
index c381a73e96..0464275424 100644
--- a/doc/develop/statistics/u-boot-stats-v1.3.3.rst
+++ b/doc/develop/statistics/u-boot-stats-v1.3.3.rst
@@ -3,7 +3,7 @@
Release Statistics for U-Boot v1.3.3
====================================
-* Processed 646 csets from 75 developers
+* Processed 646 changesets from 75 developers
* 38 employers found
diff --git a/doc/develop/statistics/u-boot-stats-v1.3.4.rst b/doc/develop/statistics/u-boot-stats-v1.3.4.rst
index 125de241f7..33ef9895f0 100644
--- a/doc/develop/statistics/u-boot-stats-v1.3.4.rst
+++ b/doc/develop/statistics/u-boot-stats-v1.3.4.rst
@@ -3,7 +3,7 @@
Release Statistics for U-Boot v1.3.4
====================================
-* Processed 511 csets from 86 developers
+* Processed 511 changesets from 86 developers
* 46 employers found
diff --git a/doc/develop/statistics/u-boot-stats-v2008.10.rst b/doc/develop/statistics/u-boot-stats-v2008.10.rst
index b163a5cb48..0370c70745 100644
--- a/doc/develop/statistics/u-boot-stats-v2008.10.rst
+++ b/doc/develop/statistics/u-boot-stats-v2008.10.rst
@@ -3,7 +3,7 @@
Release Statistics for U-Boot v2008.10
======================================
-* Processed 2498 csets from 174 developers
+* Processed 2498 changesets from 174 developers
* 85 employers found
diff --git a/doc/develop/statistics/u-boot-stats-v2009.01.rst b/doc/develop/statistics/u-boot-stats-v2009.01.rst
index 94c9bda436..3495b6dada 100644
--- a/doc/develop/statistics/u-boot-stats-v2009.01.rst
+++ b/doc/develop/statistics/u-boot-stats-v2009.01.rst
@@ -3,7 +3,7 @@
Release Statistics for U-Boot v2009.01
======================================
-* Processed 464 csets from 69 developers
+* Processed 464 changesets from 69 developers
* 33 employers found
diff --git a/doc/develop/statistics/u-boot-stats-v2009.03.rst b/doc/develop/statistics/u-boot-stats-v2009.03.rst
index 8c8a10ef91..bff94f0730 100644
--- a/doc/develop/statistics/u-boot-stats-v2009.03.rst
+++ b/doc/develop/statistics/u-boot-stats-v2009.03.rst
@@ -3,7 +3,7 @@
Release Statistics for U-Boot v2009.03
======================================
-* Processed 489 csets from 90 developers
+* Processed 489 changesets from 90 developers
* 46 employers found
diff --git a/doc/develop/statistics/u-boot-stats-v2009.06.rst b/doc/develop/statistics/u-boot-stats-v2009.06.rst
index 192d85f02d..9e2f3ba725 100644
--- a/doc/develop/statistics/u-boot-stats-v2009.06.rst
+++ b/doc/develop/statistics/u-boot-stats-v2009.06.rst
@@ -3,7 +3,7 @@
Release Statistics for U-Boot v2009.06
======================================
-* Processed 433 csets from 74 developers
+* Processed 433 changesets from 74 developers
* 27 employers found
diff --git a/doc/develop/statistics/u-boot-stats-v2009.08.rst b/doc/develop/statistics/u-boot-stats-v2009.08.rst
index 57c044ac0e..f9711b833e 100644
--- a/doc/develop/statistics/u-boot-stats-v2009.08.rst
+++ b/doc/develop/statistics/u-boot-stats-v2009.08.rst
@@ -3,7 +3,7 @@
Release Statistics for U-Boot v2009.08
======================================
-* Processed 657 csets from 96 developers
+* Processed 657 changesets from 96 developers
* 35 employers found
diff --git a/doc/develop/statistics/u-boot-stats-v2009.11.rst b/doc/develop/statistics/u-boot-stats-v2009.11.rst
index b9f64b1c94..2e1b2ea71e 100644
--- a/doc/develop/statistics/u-boot-stats-v2009.11.rst
+++ b/doc/develop/statistics/u-boot-stats-v2009.11.rst
@@ -3,7 +3,7 @@
Release Statistics for U-Boot v2009.11
======================================
-* Processed 531 csets from 90 developers
+* Processed 531 changesets from 90 developers
* 39 employers found
diff --git a/doc/develop/statistics/u-boot-stats-v2010.03.rst b/doc/develop/statistics/u-boot-stats-v2010.03.rst
index 15b5741ea3..5a8b0d6b8a 100644
--- a/doc/develop/statistics/u-boot-stats-v2010.03.rst
+++ b/doc/develop/statistics/u-boot-stats-v2010.03.rst
@@ -3,7 +3,7 @@
Release Statistics for U-Boot v2010.03
======================================
-* Processed 468 csets from 92 developers
+* Processed 468 changesets from 92 developers
* 29 employers found
diff --git a/doc/develop/statistics/u-boot-stats-v2010.06.rst b/doc/develop/statistics/u-boot-stats-v2010.06.rst
index 72348746fb..ddd59ee7c0 100644
--- a/doc/develop/statistics/u-boot-stats-v2010.06.rst
+++ b/doc/develop/statistics/u-boot-stats-v2010.06.rst
@@ -3,7 +3,7 @@
Release Statistics for U-Boot v2010.06
======================================
-* Processed 402 csets from 100 developers
+* Processed 402 changesets from 100 developers
* 31 employers found
diff --git a/doc/develop/statistics/u-boot-stats-v2010.09.rst b/doc/develop/statistics/u-boot-stats-v2010.09.rst
index acdab5bf15..6a0def0c6e 100644
--- a/doc/develop/statistics/u-boot-stats-v2010.09.rst
+++ b/doc/develop/statistics/u-boot-stats-v2010.09.rst
@@ -3,7 +3,7 @@
Release Statistics for U-Boot v2010.09
======================================
-* Processed 402 csets from 100 developers
+* Processed 402 changesets from 100 developers
* 31 employers found
diff --git a/doc/develop/statistics/u-boot-stats-v2010.12.rst b/doc/develop/statistics/u-boot-stats-v2010.12.rst
index 324752676c..2127adf1e9 100644
--- a/doc/develop/statistics/u-boot-stats-v2010.12.rst
+++ b/doc/develop/statistics/u-boot-stats-v2010.12.rst
@@ -3,7 +3,7 @@
Release Statistics for U-Boot v2010.12
======================================
-* Processed 777 csets from 111 developers
+* Processed 777 changesets from 111 developers
* 31 employers found
diff --git a/doc/develop/statistics/u-boot-stats-v2011.03.rst b/doc/develop/statistics/u-boot-stats-v2011.03.rst
index 404a83c673..5242471446 100644
--- a/doc/develop/statistics/u-boot-stats-v2011.03.rst
+++ b/doc/develop/statistics/u-boot-stats-v2011.03.rst
@@ -3,7 +3,7 @@
Release Statistics for U-Boot v2011.03
======================================
-* Processed 451 csets from 80 developers
+* Processed 451 changesets from 80 developers
* 25 employers found
diff --git a/doc/develop/statistics/u-boot-stats-v2011.06.rst b/doc/develop/statistics/u-boot-stats-v2011.06.rst
index 4edc09174d..e1b00e96a3 100644
--- a/doc/develop/statistics/u-boot-stats-v2011.06.rst
+++ b/doc/develop/statistics/u-boot-stats-v2011.06.rst
@@ -3,7 +3,7 @@
Release Statistics for U-Boot v2011.06
======================================
-* Processed 636 csets from 134 developers
+* Processed 636 changesets from 134 developers
* 30 employers found
diff --git a/doc/develop/statistics/u-boot-stats-v2011.09.rst b/doc/develop/statistics/u-boot-stats-v2011.09.rst
index c135a48225..9e2538e1e0 100644
--- a/doc/develop/statistics/u-boot-stats-v2011.09.rst
+++ b/doc/develop/statistics/u-boot-stats-v2011.09.rst
@@ -3,7 +3,7 @@
Release Statistics for U-Boot v2011.09
======================================
-* Processed 645 csets from 120 developers
+* Processed 645 changesets from 120 developers
* 30 employers found
diff --git a/doc/develop/statistics/u-boot-stats-v2011.12.rst b/doc/develop/statistics/u-boot-stats-v2011.12.rst
index cb9244f841..3d2fdcd06b 100644
--- a/doc/develop/statistics/u-boot-stats-v2011.12.rst
+++ b/doc/develop/statistics/u-boot-stats-v2011.12.rst
@@ -3,7 +3,7 @@
Release Statistics for U-Boot v2011.12
======================================
-* Processed 1530 csets from 146 developers
+* Processed 1530 changesets from 146 developers
* 34 employers found
diff --git a/doc/develop/statistics/u-boot-stats-v2012.04.rst b/doc/develop/statistics/u-boot-stats-v2012.04.rst
index f0324d991f..1fe67b31ce 100644
--- a/doc/develop/statistics/u-boot-stats-v2012.04.rst
+++ b/doc/develop/statistics/u-boot-stats-v2012.04.rst
@@ -3,7 +3,7 @@
Release Statistics for U-Boot v2012.04
======================================
-* Processed 773 csets from 126 developers
+* Processed 773 changesets from 126 developers
* 36 employers found
diff --git a/doc/develop/statistics/u-boot-stats-v2012.07.rst b/doc/develop/statistics/u-boot-stats-v2012.07.rst
index 040ddab69b..7bcf81a4f4 100644
--- a/doc/develop/statistics/u-boot-stats-v2012.07.rst
+++ b/doc/develop/statistics/u-boot-stats-v2012.07.rst
@@ -3,7 +3,7 @@
Release Statistics for U-Boot v2012.07
======================================
-* Processed 775 csets from 114 developers
+* Processed 775 changesets from 114 developers
* 29 employers found
diff --git a/doc/develop/statistics/u-boot-stats-v2012.10.rst b/doc/develop/statistics/u-boot-stats-v2012.10.rst
index ec06b574fb..715ec34255 100644
--- a/doc/develop/statistics/u-boot-stats-v2012.10.rst
+++ b/doc/develop/statistics/u-boot-stats-v2012.10.rst
@@ -3,7 +3,7 @@
Release Statistics for U-Boot v2012.12
======================================
-* Processed 925 csets from 134 developers
+* Processed 925 changesets from 134 developers
* 31 employers found
diff --git a/doc/develop/statistics/u-boot-stats-v2013.07.rst b/doc/develop/statistics/u-boot-stats-v2013.07.rst
index b0ee57c6fd..61b90a53ef 100644
--- a/doc/develop/statistics/u-boot-stats-v2013.07.rst
+++ b/doc/develop/statistics/u-boot-stats-v2013.07.rst
@@ -3,7 +3,7 @@
Release Statistics for U-Boot v2013.07
======================================
-* Processed 948 csets from 162 developers
+* Processed 948 changesets from 162 developers
* 30 employers found
diff --git a/doc/develop/statistics/u-boot-stats-v2013.10.rst b/doc/develop/statistics/u-boot-stats-v2013.10.rst
index 55a5856d19..4088020166 100644
--- a/doc/develop/statistics/u-boot-stats-v2013.10.rst
+++ b/doc/develop/statistics/u-boot-stats-v2013.10.rst
@@ -3,7 +3,7 @@
Release Statistics for U-Boot v2013.10
======================================
-* Processed 710 csets from 135 developers
+* Processed 710 changesets from 135 developers
* 28 employers found
diff --git a/doc/develop/statistics/u-boot-stats-v2014.01.rst b/doc/develop/statistics/u-boot-stats-v2014.01.rst
index 809f3ff013..584226904d 100644
--- a/doc/develop/statistics/u-boot-stats-v2014.01.rst
+++ b/doc/develop/statistics/u-boot-stats-v2014.01.rst
@@ -3,7 +3,7 @@
Release Statistics for U-Boot v2014.01
======================================
-* Processed 980 csets from 154 developers
+* Processed 980 changesets from 154 developers
* 31 employers found
diff --git a/doc/develop/statistics/u-boot-stats-v2014.04.rst b/doc/develop/statistics/u-boot-stats-v2014.04.rst
index 47d331464e..a794b113e9 100644
--- a/doc/develop/statistics/u-boot-stats-v2014.04.rst
+++ b/doc/develop/statistics/u-boot-stats-v2014.04.rst
@@ -3,7 +3,7 @@
Release Statistics for U-Boot v2014.04
======================================
-* Processed 769 csets from 109 developers
+* Processed 769 changesets from 109 developers
* 26 employers found
diff --git a/doc/develop/statistics/u-boot-stats-v2014.07.rst b/doc/develop/statistics/u-boot-stats-v2014.07.rst
index d931ca028d..d3b47f6a74 100644
--- a/doc/develop/statistics/u-boot-stats-v2014.07.rst
+++ b/doc/develop/statistics/u-boot-stats-v2014.07.rst
@@ -3,7 +3,7 @@
Release Statistics for U-Boot v2014.07
======================================
-* Processed 1074 csets from 146 developers
+* Processed 1074 changesets from 146 developers
* 30 employers found
diff --git a/doc/develop/statistics/u-boot-stats-v2014.10.rst b/doc/develop/statistics/u-boot-stats-v2014.10.rst
index ef33126845..b5c794ad05 100644
--- a/doc/develop/statistics/u-boot-stats-v2014.10.rst
+++ b/doc/develop/statistics/u-boot-stats-v2014.10.rst
@@ -3,7 +3,7 @@
Release Statistics for U-Boot v2014.10
======================================
-* Processed 1111 csets from 145 developers
+* Processed 1111 changesets from 145 developers
* 24 employers found
diff --git a/doc/develop/statistics/u-boot-stats-v2015.01.rst b/doc/develop/statistics/u-boot-stats-v2015.01.rst
index d81afd5b42..73b6d77847 100644
--- a/doc/develop/statistics/u-boot-stats-v2015.01.rst
+++ b/doc/develop/statistics/u-boot-stats-v2015.01.rst
@@ -3,7 +3,7 @@
Release Statistics for U-Boot v2015.01
======================================
-* Processed 1588 csets from 162 developers
+* Processed 1588 changesets from 162 developers
* 35 employers found
diff --git a/doc/develop/statistics/u-boot-stats-v2015.04.rst b/doc/develop/statistics/u-boot-stats-v2015.04.rst
index a16da2ee4d..75a0215af7 100644
--- a/doc/develop/statistics/u-boot-stats-v2015.04.rst
+++ b/doc/develop/statistics/u-boot-stats-v2015.04.rst
@@ -3,7 +3,7 @@
Release Statistics for U-Boot v2015.04
======================================
-* Processed 1585 csets from 169 developers
+* Processed 1585 changesets from 169 developers
* 36 employers found
diff --git a/doc/develop/statistics/u-boot-stats-v2015.07.rst b/doc/develop/statistics/u-boot-stats-v2015.07.rst
index 7999b27fe3..ed6baee6b3 100644
--- a/doc/develop/statistics/u-boot-stats-v2015.07.rst
+++ b/doc/develop/statistics/u-boot-stats-v2015.07.rst
@@ -3,7 +3,7 @@
Release Statistics for U-Boot v2015.07
======================================
-* Processed 1563 csets from 156 developers
+* Processed 1563 changesets from 156 developers
* 28 employers found
diff --git a/doc/develop/statistics/u-boot-stats-v2015.10.rst b/doc/develop/statistics/u-boot-stats-v2015.10.rst
index 1e9c98d5b8..6936b36f87 100644
--- a/doc/develop/statistics/u-boot-stats-v2015.10.rst
+++ b/doc/develop/statistics/u-boot-stats-v2015.10.rst
@@ -3,7 +3,7 @@
Release Statistics for U-Boot v2015.10
======================================
-* Processed 2069 csets from 182 developers
+* Processed 2069 changesets from 182 developers
* 32 employers found
diff --git a/doc/develop/statistics/u-boot-stats-v2016.01.rst b/doc/develop/statistics/u-boot-stats-v2016.01.rst
index 8a7bcb7d07..95ed8d11b6 100644
--- a/doc/develop/statistics/u-boot-stats-v2016.01.rst
+++ b/doc/develop/statistics/u-boot-stats-v2016.01.rst
@@ -3,7 +3,7 @@
Release Statistics for U-Boot v2016.01
======================================
-* Processed 1513 csets from 149 developers
+* Processed 1513 changesets from 149 developers
* 33 employers found
diff --git a/doc/develop/statistics/u-boot-stats-v2016.03.rst b/doc/develop/statistics/u-boot-stats-v2016.03.rst
index 6fe2219281..f66aa028e8 100644
--- a/doc/develop/statistics/u-boot-stats-v2016.03.rst
+++ b/doc/develop/statistics/u-boot-stats-v2016.03.rst
@@ -3,7 +3,7 @@
Release Statistics for U-Boot v2016.03
======================================
-* Processed 1375 csets from 126 developers
+* Processed 1375 changesets from 126 developers
* 26 employers found
diff --git a/doc/develop/statistics/u-boot-stats-v2016.05.rst b/doc/develop/statistics/u-boot-stats-v2016.05.rst
index a40c51fed4..792b3328a0 100644
--- a/doc/develop/statistics/u-boot-stats-v2016.05.rst
+++ b/doc/develop/statistics/u-boot-stats-v2016.05.rst
@@ -3,7 +3,7 @@
Release Statistics for U-Boot v2016.05
======================================
-* Processed 1043 csets from 133 developers
+* Processed 1043 changesets from 133 developers
* 23 employers found
diff --git a/doc/develop/statistics/u-boot-stats-v2016.07.rst b/doc/develop/statistics/u-boot-stats-v2016.07.rst
index d55e63e03b..d62729a678 100644
--- a/doc/develop/statistics/u-boot-stats-v2016.07.rst
+++ b/doc/develop/statistics/u-boot-stats-v2016.07.rst
@@ -3,7 +3,7 @@
Release Statistics for U-Boot v2016.07
======================================
-* Processed 1078 csets from 133 developers
+* Processed 1078 changesets from 133 developers
* 27 employers found
diff --git a/doc/develop/statistics/u-boot-stats-v2016.09.rst b/doc/develop/statistics/u-boot-stats-v2016.09.rst
index dabd187214..75c033264a 100644
--- a/doc/develop/statistics/u-boot-stats-v2016.09.rst
+++ b/doc/develop/statistics/u-boot-stats-v2016.09.rst
@@ -3,7 +3,7 @@
Release Statistics for U-Boot v2016.09
======================================
-* Processed 987 csets from 129 developers
+* Processed 987 changesets from 129 developers
* 30 employers found
diff --git a/doc/develop/statistics/u-boot-stats-v2016.11.rst b/doc/develop/statistics/u-boot-stats-v2016.11.rst
index 3bf61d5530..9fb6e3e526 100644
--- a/doc/develop/statistics/u-boot-stats-v2016.11.rst
+++ b/doc/develop/statistics/u-boot-stats-v2016.11.rst
@@ -3,7 +3,7 @@
Release Statistics for U-Boot v2016.11
======================================
-* Processed 1031 csets from 114 developers
+* Processed 1031 changesets from 114 developers
* 26 employers found
diff --git a/doc/develop/statistics/u-boot-stats-v2017.01.rst b/doc/develop/statistics/u-boot-stats-v2017.01.rst
index 4a996eab1c..6f14d7e1c3 100644
--- a/doc/develop/statistics/u-boot-stats-v2017.01.rst
+++ b/doc/develop/statistics/u-boot-stats-v2017.01.rst
@@ -3,7 +3,7 @@
Release Statistics for U-Boot v2017.01
======================================
-* Processed 883 csets from 137 developers
+* Processed 883 changesets from 137 developers
* 29 employers found
diff --git a/doc/develop/statistics/u-boot-stats-v2017.03.rst b/doc/develop/statistics/u-boot-stats-v2017.03.rst
index 733c9752de..bce2fe1709 100644
--- a/doc/develop/statistics/u-boot-stats-v2017.03.rst
+++ b/doc/develop/statistics/u-boot-stats-v2017.03.rst
@@ -3,7 +3,7 @@
Release Statistics for U-Boot v2017.03
======================================
-* Processed 664 csets from 126 developers
+* Processed 664 changesets from 126 developers
* 29 employers found
diff --git a/doc/develop/statistics/u-boot-stats-v2017.05.rst b/doc/develop/statistics/u-boot-stats-v2017.05.rst
index bae478837b..39e76846a7 100644
--- a/doc/develop/statistics/u-boot-stats-v2017.05.rst
+++ b/doc/develop/statistics/u-boot-stats-v2017.05.rst
@@ -3,7 +3,7 @@
Release Statistics for U-Boot v2017.05
======================================
-* Processed 915 csets from 139 developers
+* Processed 915 changesets from 139 developers
* 29 employers found
diff --git a/doc/develop/statistics/u-boot-stats-v2017.07.rst b/doc/develop/statistics/u-boot-stats-v2017.07.rst
index 9956378407..3999d625cf 100644
--- a/doc/develop/statistics/u-boot-stats-v2017.07.rst
+++ b/doc/develop/statistics/u-boot-stats-v2017.07.rst
@@ -3,7 +3,7 @@
Release Statistics for U-Boot v2017.07
======================================
-* Processed 1371 csets from 129 developers
+* Processed 1371 changesets from 129 developers
* 31 employers found
diff --git a/doc/develop/statistics/u-boot-stats-v2017.09.rst b/doc/develop/statistics/u-boot-stats-v2017.09.rst
index 09b4bf8903..a6768da6e3 100644
--- a/doc/develop/statistics/u-boot-stats-v2017.09.rst
+++ b/doc/develop/statistics/u-boot-stats-v2017.09.rst
@@ -3,7 +3,7 @@
Release Statistics for U-Boot v2017.09
======================================
-* Processed 1308 csets from 130 developers
+* Processed 1308 changesets from 130 developers
* 27 employers found
diff --git a/doc/develop/statistics/u-boot-stats-v2017.11.rst b/doc/develop/statistics/u-boot-stats-v2017.11.rst
index 700e09d70f..ba2f9e3ba6 100644
--- a/doc/develop/statistics/u-boot-stats-v2017.11.rst
+++ b/doc/develop/statistics/u-boot-stats-v2017.11.rst
@@ -3,7 +3,7 @@
Release Statistics for U-Boot v2017.11
======================================
-* Processed 989 csets from 123 developers
+* Processed 989 changesets from 123 developers
* 28 employers found
diff --git a/doc/develop/statistics/u-boot-stats-v2018.01.rst b/doc/develop/statistics/u-boot-stats-v2018.01.rst
index b2b3d0f05f..a5c68e7641 100644
--- a/doc/develop/statistics/u-boot-stats-v2018.01.rst
+++ b/doc/develop/statistics/u-boot-stats-v2018.01.rst
@@ -3,7 +3,7 @@
Release Statistics for U-Boot v2018.01
======================================
-* Processed 785 csets from 132 developers
+* Processed 785 changesets from 132 developers
* 32 employers found
diff --git a/doc/develop/statistics/u-boot-stats-v2018.03.rst b/doc/develop/statistics/u-boot-stats-v2018.03.rst
index f79c7b6888..7453aa177b 100644
--- a/doc/develop/statistics/u-boot-stats-v2018.03.rst
+++ b/doc/develop/statistics/u-boot-stats-v2018.03.rst
@@ -3,7 +3,7 @@
Release Statistics for U-Boot v2018.03
======================================
-* Processed 1193 csets from 151 developers
+* Processed 1193 changesets from 151 developers
* 30 employers found
diff --git a/doc/develop/statistics/u-boot-stats-v2018.05.rst b/doc/develop/statistics/u-boot-stats-v2018.05.rst
index 57a3d837e9..648832a47c 100644
--- a/doc/develop/statistics/u-boot-stats-v2018.05.rst
+++ b/doc/develop/statistics/u-boot-stats-v2018.05.rst
@@ -3,7 +3,7 @@
Release Statistics for U-Boot v2018.05
======================================
-* Processed 977 csets from 128 developers
+* Processed 977 changesets from 128 developers
* 26 employers found
diff --git a/doc/develop/statistics/u-boot-stats-v2018.07.rst b/doc/develop/statistics/u-boot-stats-v2018.07.rst
index c17b214190..da1b8aa1a4 100644
--- a/doc/develop/statistics/u-boot-stats-v2018.07.rst
+++ b/doc/develop/statistics/u-boot-stats-v2018.07.rst
@@ -3,7 +3,7 @@
Release Statistics for U-Boot v2018.07
======================================
-* Processed 1055 csets from 141 developers
+* Processed 1055 changesets from 141 developers
* 30 employers found
diff --git a/doc/develop/statistics/u-boot-stats-v2018.09.rst b/doc/develop/statistics/u-boot-stats-v2018.09.rst
index 2a5a979049..d360b9a891 100644
--- a/doc/develop/statistics/u-boot-stats-v2018.09.rst
+++ b/doc/develop/statistics/u-boot-stats-v2018.09.rst
@@ -3,7 +3,7 @@
Release Statistics for U-Boot v2018.09
======================================
-* Processed 983 csets from 138 developers
+* Processed 983 changesets from 138 developers
* 32 employers found
diff --git a/doc/develop/statistics/u-boot-stats-v2018.11.rst b/doc/develop/statistics/u-boot-stats-v2018.11.rst
index 8c84bb83b3..6ce39b9ae9 100644
--- a/doc/develop/statistics/u-boot-stats-v2018.11.rst
+++ b/doc/develop/statistics/u-boot-stats-v2018.11.rst
@@ -3,7 +3,7 @@
Release Statistics for U-Boot v2018.11
======================================
-* Processed 1105 csets from 130 developers
+* Processed 1105 changesets from 130 developers
* 31 employers found
diff --git a/doc/develop/statistics/u-boot-stats-v2019.01.rst b/doc/develop/statistics/u-boot-stats-v2019.01.rst
index bcec3e8086..32b7cca4c0 100644
--- a/doc/develop/statistics/u-boot-stats-v2019.01.rst
+++ b/doc/develop/statistics/u-boot-stats-v2019.01.rst
@@ -3,7 +3,7 @@
Release Statistics for U-Boot v2019.01
======================================
-* Processed 1149 csets from 140 developers
+* Processed 1149 changesets from 140 developers
* 29 employers found
diff --git a/doc/develop/statistics/u-boot-stats-v2019.04.rst b/doc/develop/statistics/u-boot-stats-v2019.04.rst
index 6d76e0e92d..24920b6f24 100644
--- a/doc/develop/statistics/u-boot-stats-v2019.04.rst
+++ b/doc/develop/statistics/u-boot-stats-v2019.04.rst
@@ -3,7 +3,7 @@
Release Statistics for U-Boot v2019.04
======================================
-* Processed 1193 csets from 182 developers
+* Processed 1193 changesets from 182 developers
* 28 employers found
diff --git a/doc/develop/statistics/u-boot-stats-v2019.07.rst b/doc/develop/statistics/u-boot-stats-v2019.07.rst
index 25af8ad909..eb2ff5ffc0 100644
--- a/doc/develop/statistics/u-boot-stats-v2019.07.rst
+++ b/doc/develop/statistics/u-boot-stats-v2019.07.rst
@@ -3,7 +3,7 @@
Release Statistics for U-Boot v2019.07
======================================
-* Processed 2047 csets from 215 developers
+* Processed 2047 changesets from 215 developers
* 29 employers found
diff --git a/doc/develop/statistics/u-boot-stats-v2019.10.rst b/doc/develop/statistics/u-boot-stats-v2019.10.rst
index 367b93236d..bd3eead6fa 100644
--- a/doc/develop/statistics/u-boot-stats-v2019.10.rst
+++ b/doc/develop/statistics/u-boot-stats-v2019.10.rst
@@ -3,7 +3,7 @@
Release Statistics for U-Boot v2019.10
======================================
-* Processed 2007 csets from 190 developers
+* Processed 2007 changesets from 190 developers
* 32 employers found
diff --git a/doc/develop/statistics/u-boot-stats-v2020.01.rst b/doc/develop/statistics/u-boot-stats-v2020.01.rst
index 35b1721588..8aa9dc4006 100644
--- a/doc/develop/statistics/u-boot-stats-v2020.01.rst
+++ b/doc/develop/statistics/u-boot-stats-v2020.01.rst
@@ -3,7 +3,7 @@
Release Statistics for U-Boot v2020.01
======================================
-* Processed 1826 csets from 192 developers
+* Processed 1826 changesets from 192 developers
* 30 employers found
diff --git a/doc/develop/statistics/u-boot-stats-v2020.04.rst b/doc/develop/statistics/u-boot-stats-v2020.04.rst
index 6650ad3bf0..c3f839f898 100644
--- a/doc/develop/statistics/u-boot-stats-v2020.04.rst
+++ b/doc/develop/statistics/u-boot-stats-v2020.04.rst
@@ -3,7 +3,7 @@
Release Statistics for U-Boot v2020.04
======================================
-* Processed 1639 csets from 189 developers
+* Processed 1639 changesets from 189 developers
* 30 employers found
diff --git a/doc/develop/statistics/u-boot-stats-v2020.07.rst b/doc/develop/statistics/u-boot-stats-v2020.07.rst
index ea99c59ed0..8218f976a6 100644
--- a/doc/develop/statistics/u-boot-stats-v2020.07.rst
+++ b/doc/develop/statistics/u-boot-stats-v2020.07.rst
@@ -3,7 +3,7 @@
Release Statistics for U-Boot v2020.07
======================================
-* Processed 1918 csets from 203 developers
+* Processed 1918 changesets from 203 developers
* 32 employers found
diff --git a/doc/develop/statistics/u-boot-stats-v2020.10.rst b/doc/develop/statistics/u-boot-stats-v2020.10.rst
index 0c0ccbebcd..fbd7e05ce2 100644
--- a/doc/develop/statistics/u-boot-stats-v2020.10.rst
+++ b/doc/develop/statistics/u-boot-stats-v2020.10.rst
@@ -3,7 +3,7 @@
Release Statistics for U-Boot v2020.10
======================================
-* Processed 2048 csets from 227 developers
+* Processed 2048 changesets from 227 developers
* 31 employers found
diff --git a/doc/develop/statistics/u-boot-stats-v2021.01.rst b/doc/develop/statistics/u-boot-stats-v2021.01.rst
index f8193bb6ff..41fb193202 100644
--- a/doc/develop/statistics/u-boot-stats-v2021.01.rst
+++ b/doc/develop/statistics/u-boot-stats-v2021.01.rst
@@ -3,7 +3,7 @@
Release Statistics for U-Boot v2021.01
======================================
-* Processed 1694 csets from 163 developers
+* Processed 1694 changesets from 163 developers
* 27 employers found
diff --git a/doc/develop/statistics/u-boot-stats-v2021.04.rst b/doc/develop/statistics/u-boot-stats-v2021.04.rst
index 2f5df964de..e47b6fc759 100644
--- a/doc/develop/statistics/u-boot-stats-v2021.04.rst
+++ b/doc/develop/statistics/u-boot-stats-v2021.04.rst
@@ -3,7 +3,7 @@
Release Statistics for U-Boot v2021.04
======================================
-* Processed 1675 csets from 194 developers
+* Processed 1675 changesets from 194 developers
* 28 employers found
diff --git a/doc/develop/statistics/u-boot-stats-v2021.07.rst b/doc/develop/statistics/u-boot-stats-v2021.07.rst
index e086220806..b41d2e3e51 100644
--- a/doc/develop/statistics/u-boot-stats-v2021.07.rst
+++ b/doc/develop/statistics/u-boot-stats-v2021.07.rst
@@ -3,7 +3,7 @@
Release Statistics for U-Boot v2021.07
======================================
-* Processed 1730 csets from 187 developers
+* Processed 1730 changesets from 187 developers
* 30 employers found
diff --git a/doc/develop/statistics/u-boot-stats-v2021.10.rst b/doc/develop/statistics/u-boot-stats-v2021.10.rst
index b2dcffe7d5..63c8f8b6dd 100644
--- a/doc/develop/statistics/u-boot-stats-v2021.10.rst
+++ b/doc/develop/statistics/u-boot-stats-v2021.10.rst
@@ -3,7 +3,7 @@
Release Statistics for U-Boot v2021.10
======================================
-* Processed 1509 csets from 176 developers
+* Processed 1509 changesets from 176 developers
* 28 employers found
diff --git a/doc/develop/statistics/u-boot-stats-v2022.01.rst b/doc/develop/statistics/u-boot-stats-v2022.01.rst
index a6d130c0e3..7b60c24a75 100644
--- a/doc/develop/statistics/u-boot-stats-v2022.01.rst
+++ b/doc/develop/statistics/u-boot-stats-v2022.01.rst
@@ -3,7 +3,7 @@
Release Statistics for U-Boot v2022.01
======================================
-* Processed 1417 csets from 164 developers
+* Processed 1417 changesets from 164 developers
* 29 employers found
diff --git a/doc/develop/statistics/u-boot-stats-v2022.04.rst b/doc/develop/statistics/u-boot-stats-v2022.04.rst
index 5d61832aa8..ef235114a4 100644
--- a/doc/develop/statistics/u-boot-stats-v2022.04.rst
+++ b/doc/develop/statistics/u-boot-stats-v2022.04.rst
@@ -3,7 +3,7 @@
Release Statistics for U-Boot v2022.04
======================================
-* Processed 1555 csets from 193 developers
+* Processed 1555 changesets from 193 developers
* 27 employers found
diff --git a/doc/develop/statistics/u-boot-stats-v2022.07.rst b/doc/develop/statistics/u-boot-stats-v2022.07.rst
index c1b627cd86..dc54e9a716 100644
--- a/doc/develop/statistics/u-boot-stats-v2022.07.rst
+++ b/doc/develop/statistics/u-boot-stats-v2022.07.rst
@@ -3,7 +3,7 @@
Release Statistics for U-Boot v2022.07
======================================
-* Processed 1696 csets from 183 developers
+* Processed 1696 changesets from 183 developers
* 27 employers found
diff --git a/doc/develop/statistics/u-boot-stats-v2022.10.rst b/doc/develop/statistics/u-boot-stats-v2022.10.rst
index 0693d686df..6fb71d4753 100644
--- a/doc/develop/statistics/u-boot-stats-v2022.10.rst
+++ b/doc/develop/statistics/u-boot-stats-v2022.10.rst
@@ -3,7 +3,7 @@
Release Statistics for U-Boot v2022.10
======================================
-* Processed 1521 csets from 151 developers
+* Processed 1521 changesets from 151 developers
* 25 employers found
diff --git a/doc/develop/statistics/u-boot-stats-v2023.01.rst b/doc/develop/statistics/u-boot-stats-v2023.01.rst
new file mode 100644
index 0000000000..2fd34bb5ee
--- /dev/null
+++ b/doc/develop/statistics/u-boot-stats-v2023.01.rst
@@ -0,0 +1,715 @@
+:orphan:
+
+Release Statistics for U-Boot v2023.01
+======================================
+
+* Processed 1396 changesets from 152 developers
+
+* 23 employers found
+
+* A total of 91252 lines added, 42422 removed (delta 48830)
+
+.. table:: Developers with the most changesets
+ :widths: auto
+
+ ==================================== =====
+ Name Count
+ ==================================== =====
+ Simon Glass 266 (19.1%)
+ Heinrich Schuchardt 103 (7.4%)
+ Pali Rohár 57 (4.1%)
+ Tom Rini 48 (3.4%)
+ Michal Simek 45 (3.2%)
+ Marek Vasut 39 (2.8%)
+ Michal Suchanek 35 (2.5%)
+ Weijie Gao 32 (2.3%)
+ Stefan Roese 28 (2.0%)
+ Marcel Ziswiler 28 (2.0%)
+ Masahisa Kojima 27 (1.9%)
+ William Zhang 27 (1.9%)
+ Frieder Schrempf 25 (1.8%)
+ Andre Przywara 24 (1.7%)
+ Ashok Reddy Soma 23 (1.6%)
+ Quentin Schulz 21 (1.5%)
+ Patrick Delaunay 20 (1.4%)
+ Viacheslav Mitrofanov 20 (1.4%)
+ Sughosh Ganu 20 (1.4%)
+ Tim Harvey 18 (1.3%)
+ Rasmus Villemoes 18 (1.3%)
+ Patrice Chotard 17 (1.2%)
+ Adam Ford 16 (1.1%)
+ Sumit Garg 15 (1.1%)
+ Fabio Estevam 14 (1.0%)
+ Andrew Davis 14 (1.0%)
+ Chin-Ting Kuo 14 (1.0%)
+ Venkatesh Yadav Abbarapu 13 (0.9%)
+ Paul Barker 13 (0.9%)
+ Roger Quadros 12 (0.9%)
+ Michael Trimarchi 11 (0.8%)
+ Ovidiu Panait 11 (0.8%)
+ Alexander Dahl 11 (0.8%)
+ Sean Anderson 10 (0.7%)
+ Ilias Apalodimas 9 (0.6%)
+ Jim Liu 9 (0.6%)
+ Johan Jonker 9 (0.6%)
+ Bin Meng 8 (0.6%)
+ Conor Dooley 8 (0.6%)
+ Oliver Graute 8 (0.6%)
+ Takahiro Kuwano 8 (0.6%)
+ Dario Binacchi 7 (0.5%)
+ Chris Packham 7 (0.5%)
+ Etienne Carriere 6 (0.4%)
+ John Keeping 6 (0.4%)
+ Martyn Welch 5 (0.4%)
+ Robert Marko 5 (0.4%)
+ Sergiu Moga 5 (0.4%)
+ Bernhard Messerklinger 5 (0.4%)
+ Stefan Herbrechtsmeier 5 (0.4%)
+ Manoj Sai 4 (0.3%)
+ Daniel Schwierzeck 4 (0.3%)
+ Yann Gautier 4 (0.3%)
+ Ying-Chun Liu (PaulLiu) 4 (0.3%)
+ Padmarao Begari 4 (0.3%)
+ Sergei Antonov 4 (0.3%)
+ Cédric Le Goater 4 (0.3%)
+ Alice Guo 4 (0.3%)
+ Jay Buddhabhatti 4 (0.3%)
+ Jagan Teki 3 (0.2%)
+ Philippe Schenker 3 (0.2%)
+ Bryan Brattlof 3 (0.2%)
+ FUKAUMI Naoki 3 (0.2%)
+ Samuel Holland 3 (0.2%)
+ Alistair Delva 3 (0.2%)
+ Rick Chen 3 (0.2%)
+ Kautuk Consul 3 (0.2%)
+ Gabriel Fernandez 3 (0.2%)
+ T Karthik Reddy 3 (0.2%)
+ Mihai Sain 3 (0.2%)
+ Dylan Hung 3 (0.2%)
+ Yu Chien Peter Lin 3 (0.2%)
+ Andrejs Cainikovs 3 (0.2%)
+ Ye Li 3 (0.2%)
+ Mattijs Korpershoek 3 (0.2%)
+ Samuel Mendoza-Jonas 3 (0.2%)
+ Philip Oberfichtner 3 (0.2%)
+ Samuel Obuch 3 (0.2%)
+ Durai Manickam KR 3 (0.2%)
+ Dai Okamura 2 (0.1%)
+ Michael Walle 2 (0.1%)
+ Vincent Stehlé 2 (0.1%)
+ Maxim Cournoyer 2 (0.1%)
+ Olivier Moysan 2 (0.1%)
+ Andy Chiu 2 (0.1%)
+ Joel Stanley 2 (0.1%)
+ Baruch Siach 2 (0.1%)
+ Edoardo Tomelleri 2 (0.1%)
+ Stefano Babic 2 (0.1%)
+ Julien Masson 2 (0.1%)
+ Francesco Dolcini 2 (0.1%)
+ Kunihiko Hayashi 2 (0.1%)
+ Holger Brunck 2 (0.1%)
+ Soeren Moch 2 (0.1%)
+ Icenowy Zheng 2 (0.1%)
+ Dave Gerlach 2 (0.1%)
+ Roger Knecht 2 (0.1%)
+ Steven Lawrance 2 (0.1%)
+ Ravi Gunasekaran 2 (0.1%)
+ Jassi Brar 2 (0.1%)
+ Jayesh Choudhary 2 (0.1%)
+ Kever Yang 1 (0.1%)
+ Peter Robinson 1 (0.1%)
+ Mark Kettenis 1 (0.1%)
+ Derek LaHousse 1 (0.1%)
+ Szymon Heidrich 1 (0.1%)
+ Hugo SIMELIERE 1 (0.1%)
+ Zong Li 1 (0.1%)
+ Algapally Santosh Sagar 1 (0.1%)
+ Jan Kiszka 1 (0.1%)
+ Dhruva Gole 1 (0.1%)
+ Luca Ceresoli 1 (0.1%)
+ Lukas Funke 1 (0.1%)
+ Matthias Brugger 1 (0.1%)
+ Yaron Micher 1 (0.1%)
+ Balaji Prakash J 1 (0.1%)
+ Christian Hewitt 1 (0.1%)
+ Christian Kohn 1 (0.1%)
+ Mikhail Ilin 1 (0.1%)
+ Alexandre Mergnat 1 (0.1%)
+ Matthias Schiffer 1 (0.1%)
+ Loic Poulain 1 (0.1%)
+ Hamish Martin 1 (0.1%)
+ AKASHI Takahiro 1 (0.1%)
+ Janne Grunau 1 (0.1%)
+ Nylon Chen 1 (0.1%)
+ Christian Gmeiner 1 (0.1%)
+ Takumi Sueda 1 (0.1%)
+ Neha Malcom Francis 1 (0.1%)
+ Benjamin Bara 1 (0.1%)
+ Ariel D'Alessandro 1 (0.1%)
+ Andy Yan 1 (0.1%)
+ Xavier Drudis Ferran 1 (0.1%)
+ Matt Ranostay 1 (0.1%)
+ Wei Lu 1 (0.1%)
+ Ignacio Zamora 1 (0.1%)
+ Oleksandr Suvorov 1 (0.1%)
+ Nick Desaulniers 1 (0.1%)
+ Alexandre Ghiti 1 (0.1%)
+ Nikita Shubin 1 (0.1%)
+ Christophe Kerello 1 (0.1%)
+ Xiang W 1 (0.1%)
+ Alexander Sowarka 1 (0.1%)
+ Nathan Barrett-Morrison 1 (0.1%)
+ Aaron Williams 1 (0.1%)
+ Piyush Mehta 1 (0.1%)
+ Harini Katakam 1 (0.1%)
+ Amit Kumar Mahapatra 1 (0.1%)
+ Janne Ylalehto 1 (0.1%)
+ Samuel Dionne-Riel 1 (0.1%)
+ Matwey V. Kornilov 1 (0.1%)
+ Davidson K 1 (0.1%)
+ ==================================== =====
+
+
+.. table:: Developers with the most changed lines
+ :widths: auto
+
+ ==================================== =====
+ Name Count
+ ==================================== =====
+ Simon Glass 19199 (17.5%)
+ Weijie Gao 9580 (8.7%)
+ Marcel Ziswiler 6676 (6.1%)
+ Tom Rini 6622 (6.0%)
+ William Zhang 4635 (4.2%)
+ Masahisa Kojima 4438 (4.0%)
+ Martyn Welch 3311 (3.0%)
+ Sughosh Ganu 3208 (2.9%)
+ Frieder Schrempf 3180 (2.9%)
+ Manoj Sai 2829 (2.6%)
+ Holger Brunck 2622 (2.4%)
+ Jim Liu 2607 (2.4%)
+ Roger Quadros 2152 (2.0%)
+ Gabriel Fernandez 2100 (1.9%)
+ Viacheslav Mitrofanov 1922 (1.8%)
+ FUKAUMI Naoki 1899 (1.7%)
+ Chin-Ting Kuo 1877 (1.7%)
+ Heinrich Schuchardt 1856 (1.7%)
+ Ying-Chun Liu (PaulLiu) 1850 (1.7%)
+ Andre Przywara 1550 (1.4%)
+ Michal Simek 1425 (1.3%)
+ Bernhard Messerklinger 1404 (1.3%)
+ Adam Ford 1378 (1.3%)
+ Chris Packham 1299 (1.2%)
+ Tim Harvey 1229 (1.1%)
+ Stefan Roese 1195 (1.1%)
+ Sumit Garg 1110 (1.0%)
+ Andy Yan 1025 (0.9%)
+ Andrew Davis 848 (0.8%)
+ Johan Jonker 839 (0.8%)
+ Ashok Reddy Soma 813 (0.7%)
+ Pali Rohár 788 (0.7%)
+ Marek Vasut 756 (0.7%)
+ Sergiu Moga 612 (0.6%)
+ Padmarao Begari 594 (0.5%)
+ Patrice Chotard 569 (0.5%)
+ Patrick Delaunay 533 (0.5%)
+ Michal Suchanek 476 (0.4%)
+ Stefan Herbrechtsmeier 419 (0.4%)
+ Roger Knecht 412 (0.4%)
+ Jayesh Choudhary 398 (0.4%)
+ Rasmus Villemoes 385 (0.4%)
+ Michael Trimarchi 382 (0.3%)
+ Alice Guo 348 (0.3%)
+ Oliver Graute 313 (0.3%)
+ Joel Stanley 308 (0.3%)
+ Kautuk Consul 305 (0.3%)
+ Bryan Brattlof 292 (0.3%)
+ Ravi Gunasekaran 280 (0.3%)
+ Conor Dooley 278 (0.3%)
+ Quentin Schulz 275 (0.3%)
+ Ilias Apalodimas 272 (0.2%)
+ Alexander Dahl 268 (0.2%)
+ Dave Gerlach 249 (0.2%)
+ Etienne Carriere 242 (0.2%)
+ Robert Marko 239 (0.2%)
+ Aaron Williams 200 (0.2%)
+ Paul Barker 160 (0.1%)
+ Dylan Hung 157 (0.1%)
+ Samuel Dionne-Riel 143 (0.1%)
+ Ovidiu Panait 140 (0.1%)
+ Sergei Antonov 139 (0.1%)
+ Edoardo Tomelleri 120 (0.1%)
+ Sean Anderson 114 (0.1%)
+ Fabio Estevam 113 (0.1%)
+ Venkatesh Yadav Abbarapu 111 (0.1%)
+ Daniel Schwierzeck 102 (0.1%)
+ Samuel Holland 92 (0.1%)
+ Dario Binacchi 89 (0.1%)
+ Olivier Moysan 79 (0.1%)
+ Samuel Mendoza-Jonas 78 (0.1%)
+ Takahiro Kuwano 74 (0.1%)
+ Kunihiko Hayashi 72 (0.1%)
+ Matt Ranostay 72 (0.1%)
+ Andy Chiu 68 (0.1%)
+ Steven Lawrance 51 (0.0%)
+ Wei Lu 50 (0.0%)
+ Ye Li 48 (0.0%)
+ Yu Chien Peter Lin 44 (0.0%)
+ Yaron Micher 39 (0.0%)
+ AKASHI Takahiro 38 (0.0%)
+ Julien Masson 37 (0.0%)
+ Philip Oberfichtner 35 (0.0%)
+ Jassi Brar 35 (0.0%)
+ Maxim Cournoyer 34 (0.0%)
+ Neha Malcom Francis 34 (0.0%)
+ Balaji Prakash J 33 (0.0%)
+ Bin Meng 32 (0.0%)
+ Matwey V. Kornilov 32 (0.0%)
+ Lukas Funke 29 (0.0%)
+ Andrejs Cainikovs 28 (0.0%)
+ Rick Chen 26 (0.0%)
+ Durai Manickam KR 25 (0.0%)
+ Nathan Barrett-Morrison 25 (0.0%)
+ Baruch Siach 22 (0.0%)
+ Yann Gautier 20 (0.0%)
+ Christian Gmeiner 20 (0.0%)
+ Mattijs Korpershoek 18 (0.0%)
+ Derek LaHousse 17 (0.0%)
+ John Keeping 16 (0.0%)
+ Vincent Stehlé 15 (0.0%)
+ Nikita Shubin 15 (0.0%)
+ Samuel Obuch 12 (0.0%)
+ Francesco Dolcini 12 (0.0%)
+ Alexandre Mergnat 10 (0.0%)
+ Alexandre Ghiti 10 (0.0%)
+ Piyush Mehta 10 (0.0%)
+ Cédric Le Goater 9 (0.0%)
+ Jagan Teki 9 (0.0%)
+ Jan Kiszka 9 (0.0%)
+ Philippe Schenker 8 (0.0%)
+ Christian Hewitt 7 (0.0%)
+ Amit Kumar Mahapatra 7 (0.0%)
+ T Karthik Reddy 6 (0.0%)
+ Stefano Babic 6 (0.0%)
+ Soeren Moch 6 (0.0%)
+ Szymon Heidrich 6 (0.0%)
+ Matthias Schiffer 6 (0.0%)
+ Harini Katakam 6 (0.0%)
+ Jay Buddhabhatti 5 (0.0%)
+ Takumi Sueda 5 (0.0%)
+ Alistair Delva 4 (0.0%)
+ Mihai Sain 4 (0.0%)
+ Dai Okamura 4 (0.0%)
+ Hugo SIMELIERE 4 (0.0%)
+ Ignacio Zamora 4 (0.0%)
+ Alexander Sowarka 4 (0.0%)
+ Davidson K 4 (0.0%)
+ Janne Ylalehto 3 (0.0%)
+ Michael Walle 2 (0.0%)
+ Icenowy Zheng 2 (0.0%)
+ Matthias Brugger 2 (0.0%)
+ Benjamin Bara 2 (0.0%)
+ Christophe Kerello 2 (0.0%)
+ Kever Yang 1 (0.0%)
+ Peter Robinson 1 (0.0%)
+ Mark Kettenis 1 (0.0%)
+ Zong Li 1 (0.0%)
+ Algapally Santosh Sagar 1 (0.0%)
+ Dhruva Gole 1 (0.0%)
+ Luca Ceresoli 1 (0.0%)
+ Christian Kohn 1 (0.0%)
+ Mikhail Ilin 1 (0.0%)
+ Loic Poulain 1 (0.0%)
+ Hamish Martin 1 (0.0%)
+ Janne Grunau 1 (0.0%)
+ Nylon Chen 1 (0.0%)
+ Ariel D'Alessandro 1 (0.0%)
+ Xavier Drudis Ferran 1 (0.0%)
+ Oleksandr Suvorov 1 (0.0%)
+ Nick Desaulniers 1 (0.0%)
+ Xiang W 1 (0.0%)
+ ==================================== =====
+
+
+.. table:: Developers with the most lines removed
+ :widths: auto
+
+ ==================================== =====
+ Name Count
+ ==================================== =====
+ Holger Brunck 2621 (6.2%)
+ Bernhard Messerklinger 1180 (2.8%)
+ Tom Rini 1163 (2.7%)
+ Adam Ford 728 (1.7%)
+ Andre Przywara 353 (0.8%)
+ Patrice Chotard 75 (0.2%)
+ Samuel Holland 72 (0.2%)
+ Michal Suchanek 49 (0.1%)
+ Daniel Schwierzeck 32 (0.1%)
+ AKASHI Takahiro 26 (0.1%)
+ Venkatesh Yadav Abbarapu 19 (0.0%)
+ Philippe Schenker 4 (0.0%)
+ Stefano Babic 4 (0.0%)
+ Soeren Moch 3 (0.0%)
+ Ignacio Zamora 2 (0.0%)
+ Icenowy Zheng 1 (0.0%)
+ Mark Kettenis 1 (0.0%)
+ Oleksandr Suvorov 1 (0.0%)
+ ==================================== =====
+
+
+.. table:: Developers with the most signoffs (total 169)
+ :widths: auto
+
+ ==================================== =====
+ Name Count
+ ==================================== =====
+ Michal Simek 75 (44.4%)
+ Dario Binacchi 22 (13.0%)
+ Peng Fan 6 (3.6%)
+ Andre Przywara 4 (2.4%)
+ Ashok Reddy Soma 4 (2.4%)
+ Marek Vasut 4 (2.4%)
+ Heinrich Schuchardt 4 (2.4%)
+ Duncan Hare 3 (1.8%)
+ Jagan Teki 3 (1.8%)
+ Ilias Apalodimas 3 (1.8%)
+ Joel Stanley 3 (1.8%)
+ Simon Glass 3 (1.8%)
+ Tom Rini 2 (1.2%)
+ Neil Armstrong 2 (1.2%)
+ Alexandre Torgue 2 (1.2%)
+ Anand Gadiyar 2 (1.2%)
+ Fabio Estevam 2 (1.2%)
+ Sean Anderson 2 (1.2%)
+ Michael Trimarchi 2 (1.2%)
+ Stefan Roese 2 (1.2%)
+ Alistair Delva 1 (0.6%)
+ Da Xue 1 (0.6%)
+ dsx724 1 (0.6%)
+ Mikhail Kshevetskiy 1 (0.6%)
+ Anup Patel 1 (0.6%)
+ Jerome Brunet 1 (0.6%)
+ Julien STEPHAN 1 (0.6%)
+ Naga Sureshkumar Relli 1 (0.6%)
+ Stanley Chu 1 (0.6%)
+ Anatolij Gustschin 1 (0.6%)
+ SkyLake.Huang 1 (0.6%)
+ Philip Oberfichtner 1 (0.6%)
+ Yann Gautier 1 (0.6%)
+ Baruch Siach 1 (0.6%)
+ Conor Dooley 1 (0.6%)
+ Patrick Delaunay 1 (0.6%)
+ Alice Guo 1 (0.6%)
+ Jayesh Choudhary 1 (0.6%)
+ Pali Rohár 1 (0.6%)
+ ==================================== =====
+
+
+.. table:: Developers with the most reviews (total 769)
+ :widths: auto
+
+ ==================================== =====
+ Name Count
+ ==================================== =====
+ Simon Glass 203 (26.4%)
+ Ilias Apalodimas 50 (6.5%)
+ Ramon Fried 42 (5.5%)
+ Fabio Estevam 41 (5.3%)
+ Kever Yang 38 (4.9%)
+ Patrice Chotard 37 (4.8%)
+ Heinrich Schuchardt 34 (4.4%)
+ Patrick Delaunay 33 (4.3%)
+ Stefan Roese 28 (3.6%)
+ Peng Fan 19 (2.5%)
+ Jaehoon Chung 19 (2.5%)
+ Rick Chen 18 (2.3%)
+ Michael Trimarchi 16 (2.1%)
+ Philippe Reynes 15 (2.0%)
+ Dario Binacchi 14 (1.8%)
+ Sean Anderson 14 (1.8%)
+ Jagan Teki 13 (1.7%)
+ Leo Yu-Chi Liang 13 (1.7%)
+ Marek Vasut 10 (1.3%)
+ Padmarao Begari 10 (1.3%)
+ Heiko Schocher 8 (1.0%)
+ Tom Rini 7 (0.9%)
+ Jernej Skrabec 7 (0.9%)
+ Cédric Le Goater 7 (0.9%)
+ Conor Dooley 5 (0.7%)
+ Bin Meng 5 (0.7%)
+ Florian Fainelli 5 (0.7%)
+ Wolfgang Wallner 5 (0.7%)
+ Andre Przywara 4 (0.5%)
+ Samuel Holland 4 (0.5%)
+ Marek Behún 4 (0.5%)
+ Joel Stanley 3 (0.4%)
+ Peter Robinson 3 (0.4%)
+ Dhruva Gole 3 (0.4%)
+ Etienne Carriere 3 (0.4%)
+ Michal Simek 2 (0.3%)
+ Neil Armstrong 2 (0.3%)
+ Jens Wiklander 2 (0.3%)
+ Greentime Hu 2 (0.3%)
+ Quentin Schulz 2 (0.3%)
+ Yann Gautier 1 (0.1%)
+ Pali Rohár 1 (0.1%)
+ Daniel Schwierzeck 1 (0.1%)
+ Luca Ceresoli 1 (0.1%)
+ Peter Hoyes 1 (0.1%)
+ Sultan Qasim Khan 1 (0.1%)
+ Linus Walleij 1 (0.1%)
+ François-Frédéric Ozog 1 (0.1%)
+ Giulio Benetti 1 (0.1%)
+ Gaurav Jain 1 (0.1%)
+ Heiko Thiery 1 (0.1%)
+ Wadim Egorov 1 (0.1%)
+ Claudiu Beznea 1 (0.1%)
+ Eugen Hristev 1 (0.1%)
+ Jason Liu 1 (0.1%)
+ Jan Kiszka 1 (0.1%)
+ Ye Li 1 (0.1%)
+ Tim Harvey 1 (0.1%)
+ Viacheslav Mitrofanov 1 (0.1%)
+ ==================================== =====
+
+
+.. table:: Developers with the most test credits (total 90)
+ :widths: auto
+
+ ==================================== =====
+ Name Count
+ ==================================== =====
+ Daniel Golle 21 (23.3%)
+ Tony Dinh 9 (10.0%)
+ Tom Rini 8 (8.9%)
+ Tim Harvey 8 (8.9%)
+ Waldemar Brodkorb 7 (7.8%)
+ Stefan Roese 5 (5.6%)
+ Padmarao Begari 3 (3.3%)
+ Samuel Holland 3 (3.3%)
+ Marek Vasut 2 (2.2%)
+ Peter Robinson 2 (2.2%)
+ Quentin Schulz 2 (2.2%)
+ Pali Rohár 2 (2.2%)
+ Ivan Shishkin 2 (2.2%)
+ Fabio Estevam 1 (1.1%)
+ Patrice Chotard 1 (1.1%)
+ Heinrich Schuchardt 1 (1.1%)
+ Patrick Delaunay 1 (1.1%)
+ Heiko Schocher 1 (1.1%)
+ Peter Hoyes 1 (1.1%)
+ Giulio Benetti 1 (1.1%)
+ Mikhail Kshevetskiy 1 (1.1%)
+ Michal Suchanek 1 (1.1%)
+ Leo Yan 1 (1.1%)
+ Jerome Forissier 1 (1.1%)
+ Yangjie Zhang 1 (1.1%)
+ Heiko Stuebner 1 (1.1%)
+ Christian Stewart 1 (1.1%)
+ Felix Yan 1 (1.1%)
+ Janne Grunau 1 (1.1%)
+ ==================================== =====
+
+
+.. table:: Developers who gave the most tested-by credits (total 90)
+ :widths: auto
+
+ ==================================== =====
+ Name Count
+ ==================================== =====
+ Weijie Gao 21 (23.3%)
+ Stefan Roese 14 (15.6%)
+ Rasmus Villemoes 10 (11.1%)
+ Patrice Chotard 7 (7.8%)
+ Andre Przywara 5 (5.6%)
+ Marek Vasut 4 (4.4%)
+ Marcel Ziswiler 4 (4.4%)
+ Alexandre Ghiti 3 (3.3%)
+ Tom Rini 2 (2.2%)
+ Pali Rohár 2 (2.2%)
+ Conor Dooley 2 (2.2%)
+ John Keeping 2 (2.2%)
+ Quentin Schulz 1 (1.1%)
+ Heinrich Schuchardt 1 (1.1%)
+ Patrick Delaunay 1 (1.1%)
+ Michal Suchanek 1 (1.1%)
+ Simon Glass 1 (1.1%)
+ Ilias Apalodimas 1 (1.1%)
+ Dario Binacchi 1 (1.1%)
+ Bin Meng 1 (1.1%)
+ Baruch Siach 1 (1.1%)
+ Hugo SIMELIERE 1 (1.1%)
+ Xavier Drudis Ferran 1 (1.1%)
+ Xiang W 1 (1.1%)
+ Gabriel Fernandez 1 (1.1%)
+ William Zhang 1 (1.1%)
+ ==================================== =====
+
+
+.. table:: Developers with the most report credits (total 20)
+ :widths: auto
+
+ ==================================== =====
+ Name Count
+ ==================================== =====
+ Pali Rohár 2 (10.0%)
+ Marek Vasut 1 (5.0%)
+ Marcel Ziswiler 1 (5.0%)
+ Tom Rini 1 (5.0%)
+ Quentin Schulz 1 (5.0%)
+ Bin Meng 1 (5.0%)
+ Tim Harvey 1 (5.0%)
+ Peter Robinson 1 (5.0%)
+ Mikhail Kshevetskiy 1 (5.0%)
+ Yangjie Zhang 1 (5.0%)
+ Neil Armstrong 1 (5.0%)
+ François-Frédéric Ozog 1 (5.0%)
+ Heiko Thiery 1 (5.0%)
+ Venkatesh Yadav Abbarapu 1 (5.0%)
+ Mihai Sain 1 (5.0%)
+ Marcin Gołaś 1 (5.0%)
+ Andreas Buerkler 1 (5.0%)
+ Shravan Chippa 1 (5.0%)
+ Manoj Sai 1 (5.0%)
+ ==================================== =====
+
+
+.. table:: Developers who gave the most report credits (total 20)
+ :widths: auto
+
+ ==================================== =====
+ Name Count
+ ==================================== =====
+ Tom Rini 5 (25.0%)
+ Conor Dooley 2 (10.0%)
+ Simon Glass 2 (10.0%)
+ Fabio Estevam 2 (10.0%)
+ Bin Meng 1 (5.0%)
+ Heinrich Schuchardt 1 (5.0%)
+ Patrick Delaunay 1 (5.0%)
+ Michael Trimarchi 1 (5.0%)
+ Jagan Teki 1 (5.0%)
+ Michal Simek 1 (5.0%)
+ Stefano Babic 1 (5.0%)
+ Sergiu Moga 1 (5.0%)
+ Frieder Schrempf 1 (5.0%)
+ ==================================== =====
+
+
+.. table:: Top changeset contributors by employer
+ :widths: auto
+
+ ==================================== =====
+ Name Count
+ ==================================== =====
+ (Unknown) 557 (39.9%)
+ Google, Inc. 270 (19.3%)
+ DENX Software Engineering 86 (6.2%)
+ Linaro 85 (6.1%)
+ AMD 80 (5.7%)
+ Konsulko Group 48 (3.4%)
+ ST Microelectronics 47 (3.4%)
+ SUSE 36 (2.6%)
+ Toradex 36 (2.6%)
+ ARM 27 (1.9%)
+ Broadcom 27 (1.9%)
+ Texas Instruments 26 (1.9%)
+ Amarula Solutions 24 (1.7%)
+ Xilinx 13 (0.9%)
+ NXP 8 (0.6%)
+ BayLibre SAS 6 (0.4%)
+ Collabora Ltd. 6 (0.4%)
+ Weidmüller Interface GmbH & Co. KG 6 (0.4%)
+ Socionext Inc. 4 (0.3%)
+ Edgeble AI Technologies Pvt. Ltd. 1 (0.1%)
+ Marvell 1 (0.1%)
+ Rockchip 1 (0.1%)
+ Siemens 1 (0.1%)
+ ==================================== =====
+
+
+.. table:: Top lines changed by employer
+ :widths: auto
+
+ ==================================== =====
+ Name Count
+ ==================================== =====
+ (Unknown) 41561 (37.8%)
+ Google, Inc. 19204 (17.5%)
+ Linaro 11194 (10.2%)
+ Toradex 6724 (6.1%)
+ Konsulko Group 6622 (6.0%)
+ Broadcom 4635 (4.2%)
+ Collabora Ltd. 3312 (3.0%)
+ Amarula Solutions 3308 (3.0%)
+ ST Microelectronics 3303 (3.0%)
+ Texas Instruments 2174 (2.0%)
+ DENX Software Engineering 2105 (1.9%)
+ AMD 2105 (1.9%)
+ ARM 1569 (1.4%)
+ SUSE 478 (0.4%)
+ Weidmüller Interface GmbH & Co. KG 448 (0.4%)
+ NXP 446 (0.4%)
+ Xilinx 280 (0.3%)
+ Marvell 200 (0.2%)
+ Socionext Inc. 76 (0.1%)
+ BayLibre SAS 65 (0.1%)
+ Siemens 9 (0.0%)
+ Edgeble AI Technologies Pvt. Ltd. 1 (0.0%)
+ Rockchip 1 (0.0%)
+ ==================================== =====
+
+
+.. table:: Employers with the most signoffs (total 169)
+ :widths: auto
+
+ ==================================== =====
+ Name Count
+ ==================================== =====
+ AMD 79 (46.7%)
+ Amarula Solutions 27 (16.0%)
+ (Unknown) 22 (13.0%)
+ DENX Software Engineering 10 (5.9%)
+ NXP 7 (4.1%)
+ Linaro 5 (3.0%)
+ Google, Inc. 4 (2.4%)
+ ST Microelectronics 4 (2.4%)
+ ARM 4 (2.4%)
+ Texas Instruments 3 (1.8%)
+ Konsulko Group 2 (1.2%)
+ BayLibre SAS 2 (1.2%)
+ ==================================== =====
+
+
+.. table:: Employers with the most hackers (total 154)
+ :widths: auto
+
+ ==================================== =====
+ Name Count
+ ==================================== =====
+ (Unknown) 81 (52.6%)
+ Linaro 9 (5.8%)
+ Texas Instruments 8 (5.2%)
+ AMD 7 (4.5%)
+ ST Microelectronics 6 (3.9%)
+ DENX Software Engineering 5 (3.2%)
+ Amarula Solutions 4 (2.6%)
+ Toradex 4 (2.6%)
+ Xilinx 4 (2.6%)
+ NXP 3 (1.9%)
+ Google, Inc. 3 (1.9%)
+ ARM 3 (1.9%)
+ BayLibre SAS 3 (1.9%)
+ Collabora Ltd. 2 (1.3%)
+ SUSE 2 (1.3%)
+ Weidmüller Interface GmbH & Co. KG 2 (1.3%)
+ Socionext Inc. 2 (1.3%)
+ Konsulko Group 1 (0.6%)
+ Broadcom 1 (0.6%)
+ Marvell 1 (0.6%)
+ Siemens 1 (0.6%)
+ Edgeble AI Technologies Pvt. Ltd. 1 (0.6%)
+ Rockchip 1 (0.6%)
+ ==================================== =====
+
diff --git a/doc/media/Makefile b/doc/media/Makefile
index b9b43a34c3..9b32258696 100644
--- a/doc/media/Makefile
+++ b/doc/media/Makefile
@@ -22,10 +22,11 @@ $(BUILDDIR)/linker_lists.h.rst: ${API}/linker_lists.h ${PARSER} $(SRC_DIR)/linke
# Media build rules
-.PHONY: all html epub xml latex
+.PHONY: all html texinfo epub xml latex
all: $(IMGDOT) $(BUILDDIR) ${TARGETS}
html: all
+texinfo: all
epub: all
xml: all
latex: $(IMGPDF) all
diff --git a/doc/usage/cmd/printenv.rst b/doc/usage/cmd/printenv.rst
index 9cb20f6ce6..d4184fd65e 100644
--- a/doc/usage/cmd/printenv.rst
+++ b/doc/usage/cmd/printenv.rst
@@ -78,7 +78,7 @@ variable and how to specify a vendor GUID:
=>
Configuration
-=============
+-------------
UEFI variables are only supported if CONFIG_CMD_NVEDIT_EFI=y. The value of UEFI
variables can only be displayed if CONFIG_HEXDUMP=y.
diff --git a/doc/usage/cmd/sound.rst b/doc/usage/cmd/sound.rst
index d3fac243b1..2cfe9b7ad1 100644
--- a/doc/usage/cmd/sound.rst
+++ b/doc/usage/cmd/sound.rst
@@ -10,12 +10,12 @@ Synopsis
::
sound init
- sound play [len [freq]]
+ sound play [[len freq] ...] [len [freq]]
Description
-----------
-The *sound* command is used to play a beep sound.
+The *sound* command is used to play one or multiple beep sounds.
sound init
initializes the sound driver.
@@ -30,6 +30,25 @@ len
freq
frequency of the sound in Hz, defaults to 400 Hz
+Examples
+--------
+
+Beep at 400 Hz for 1000 ms::
+
+ sound play
+
+Beep at 400 Hz for 600 ms::
+
+ sound play 600
+
+Beep at 500 Hz for 600 ms::
+
+ sound play 600 500
+
+Play melody::
+
+ sound play 500 1047 500 880 500 0 500 1047 500 880 500 0 500 784 500 698 500 784 1000 698
+
Configuration
-------------
diff --git a/doc/usage/cmd/wget.rst b/doc/usage/cmd/wget.rst
index 4fcfa03954..e1e7f8d814 100644
--- a/doc/usage/cmd/wget.rst
+++ b/doc/usage/cmd/wget.rst
@@ -7,6 +7,7 @@ Synopsis
--------
::
+
wget address [[hostIPaddr:]path]
Description
@@ -52,8 +53,8 @@ Configuration
The command is only available if CONFIG_CMD_WGET=y.
-CONFIG_PROT_TCP_SACK can be turned on for the TCP SACK options. This will
-help increasing the downloading speed.
+TCP Selective Acknowledgments can be enabled via CONFIG_PROT_TCP_SACK=y.
+This will improve the download speed.
Return value
------------
diff --git a/drivers/i2c/i2c-uniphier-f.c b/drivers/i2c/i2c-uniphier-f.c
index 9d6f1688cb..3dcd382469 100644
--- a/drivers/i2c/i2c-uniphier-f.c
+++ b/drivers/i2c/i2c-uniphier-f.c
@@ -130,12 +130,12 @@ static int wait_for_irq(struct uniphier_fi2c_priv *priv, u32 flags,
if (irq & I2C_INT_AL) {
dev_dbg(priv->dev, "error: arbitration lost\n");
*stop = false;
- return ret;
+ return -EDEADLK;
}
if (irq & I2C_INT_NA) {
dev_dbg(priv->dev, "error: no answer\n");
- return ret;
+ return -ENODATA;
}
return 0;
diff --git a/drivers/net/npcm750_eth.c b/drivers/net/npcm750_eth.c
index 409d5cce4a..bd29a10def 100644
--- a/drivers/net/npcm750_eth.c
+++ b/drivers/net/npcm750_eth.c
@@ -710,12 +710,12 @@ static int npcm750_eth_ofdata_to_platdata(struct udevice *dev)
pdata->phy_interface = -1;
phy_mode = fdt_getprop(gd->fdt_blob, dev_of_offset(dev), "phy-mode", NULL);
+
if (phy_mode)
- pdata->phy_interface = phy_get_interface_by_name(phy_mode);
- if (pdata->phy_interface == -1) {
- printf("%s: Invalid PHY interface '%s'\n", __func__, phy_mode);
+ pdata->phy_interface = dev_read_phy_mode(dev);
+
+ if (pdata->phy_interface == PHY_INTERFACE_MODE_NA)
return -EINVAL;
- }
pdata->max_speed = 0;
cell = fdt_getprop(gd->fdt_blob, dev_of_offset(dev), "max-speed", NULL);
diff --git a/drivers/net/tsec.c b/drivers/net/tsec.c
index 6e90359759..8833e3098d 100644
--- a/drivers/net/tsec.c
+++ b/drivers/net/tsec.c
@@ -119,7 +119,7 @@ static int tsec_mcast_addr(struct udevice *dev, const u8 *mcast_mac, int join)
return 0;
}
-static int tsec_set_promisc(struct udevice *dev, bool enable)
+static int __maybe_unused tsec_set_promisc(struct udevice *dev, bool enable)
{
struct tsec_private *priv = dev_get_priv(dev);
struct tsec __iomem *regs = priv->regs;
diff --git a/drivers/power/regulator/Kconfig b/drivers/power/regulator/Kconfig
index c519e066ef..c02e6377d8 100644
--- a/drivers/power/regulator/Kconfig
+++ b/drivers/power/regulator/Kconfig
@@ -128,6 +128,14 @@ config DM_REGULATOR_MAX77686
features for REGULATOR MAX77686. The driver implements get/set api for:
value, enable and mode.
+config DM_REGULATOR_NPCM8XX
+ bool "Enable Driver Model for NPCM8xx voltage supply"
+ depends on DM_REGULATOR && ARCH_NPCM8XX
+ help
+ Enable support for configuring voltage supply on NPCM8XX SoC. The
+ voltage supplies support two voltage levels and the driver implements
+ get/set api for setting the value.
+
config DM_REGULATOR_FAN53555
bool "Enable Driver Model for REGULATOR FAN53555"
depends on DM_PMIC_FAN53555
diff --git a/drivers/power/regulator/Makefile b/drivers/power/regulator/Makefile
index bc736068bc..68e4c0f9dd 100644
--- a/drivers/power/regulator/Makefile
+++ b/drivers/power/regulator/Makefile
@@ -9,6 +9,7 @@ obj-$(CONFIG_REGULATOR_ACT8846) += act8846.o
obj-$(CONFIG_REGULATOR_AS3722) += as3722_regulator.o
obj-$(CONFIG_$(SPL_)DM_REGULATOR_DA9063) += da9063.o
obj-$(CONFIG_DM_REGULATOR_MAX77686) += max77686.o
+obj-$(CONFIG_DM_REGULATOR_NPCM8XX) += npcm8xx_regulator.o
obj-$(CONFIG_$(SPL_)DM_PMIC_PFUZE100) += pfuze100.o
obj-$(CONFIG_$(SPL_)DM_REGULATOR_BD71837) += bd71837.o
obj-$(CONFIG_$(SPL_)DM_REGULATOR_PCA9450) += pca9450.o
diff --git a/drivers/power/regulator/npcm8xx_regulator.c b/drivers/power/regulator/npcm8xx_regulator.c
new file mode 100644
index 0000000000..fcd1058cdf
--- /dev/null
+++ b/drivers/power/regulator/npcm8xx_regulator.c
@@ -0,0 +1,132 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (c) 2022 Nuvoton Technology Corp.
+ */
+
+#include <common.h>
+#include <dm.h>
+#include <asm/io.h>
+#include <dm/device_compat.h>
+#include <power/regulator.h>
+
+#define REG_VSRCR 0xf08000e8 /* Voltage Supply Control Register */
+
+/* Supported voltage levels (uV) */
+static const u32 volts_type1[] = { 3300000, 1800000 };
+static const u32 volts_type2[] = { 1000000, 1800000 };
+#define VOLT_LEV0 0
+#define VOLT_LEV1 1
+
+struct volt_supply {
+ char *name;
+ const u32 *volts;
+ u32 reg_shift; /* Register bit offset for setting voltage */
+};
+
+static const struct volt_supply npcm8xx_volt_supps[] = {
+ {"v1", volts_type1, 0},
+ {"v2", volts_type1, 1},
+ {"v3", volts_type1, 2},
+ {"v4", volts_type1, 3},
+ {"v5", volts_type1, 4},
+ {"v6", volts_type1, 5},
+ {"v7", volts_type1, 6},
+ {"v8", volts_type1, 7},
+ {"v9", volts_type1, 8},
+ {"v10", volts_type1, 9},
+ {"v11", volts_type2, 10},
+ {"v12", volts_type1, 11},
+ {"v13", volts_type1, 12},
+ {"v14", volts_type2, 13},
+ {"vsif", volts_type1, 14},
+ {"vr2", volts_type1, 30},
+};
+
+static const struct volt_supply *npcm8xx_volt_supply_get(const char *name)
+{
+ int i;
+
+ for (i = 0; i < ARRAY_SIZE(npcm8xx_volt_supps); i++) {
+ if (!strcmp(npcm8xx_volt_supps[i].name, name))
+ return &npcm8xx_volt_supps[i];
+ }
+
+ return NULL;
+}
+
+static int npcm8xx_regulator_set_value(struct udevice *dev, int uV)
+{
+ struct dm_regulator_uclass_plat *uc_pdata;
+ const struct volt_supply *supp;
+ u32 val, level;
+
+ uc_pdata = dev_get_uclass_plat(dev);
+ if (!uc_pdata)
+ return -ENXIO;
+
+ dev_dbg(dev, "%s set_value: %d\n", uc_pdata->name, uV);
+ supp = npcm8xx_volt_supply_get(uc_pdata->name);
+ if (!supp)
+ return -ENOENT;
+
+ if (uV == supp->volts[VOLT_LEV0])
+ level = VOLT_LEV0;
+ else if (uV == supp->volts[VOLT_LEV1])
+ level = VOLT_LEV1;
+ else
+ return -EINVAL;
+
+ /* Set voltage level */
+ val = readl(REG_VSRCR);
+ val &= ~BIT(supp->reg_shift);
+ val |= level << supp->reg_shift;
+ writel(val, REG_VSRCR);
+
+ return 0;
+}
+
+static int npcm8xx_regulator_get_value(struct udevice *dev)
+{
+ struct dm_regulator_uclass_plat *uc_pdata;
+ const struct volt_supply *supp;
+ u32 val;
+
+ uc_pdata = dev_get_uclass_plat(dev);
+ if (!uc_pdata)
+ return -ENXIO;
+
+ supp = npcm8xx_volt_supply_get(uc_pdata->name);
+ if (!supp)
+ return -ENOENT;
+
+ val = readl(REG_VSRCR) & BIT(supp->reg_shift);
+
+ dev_dbg(dev, "%s get_value: %d\n", uc_pdata->name,
+ val ? supp->volts[VOLT_LEV1] : supp->volts[VOLT_LEV0]);
+
+ return val ? supp->volts[VOLT_LEV1] : supp->volts[VOLT_LEV0];
+}
+
+static int npcm8xx_regulator_set_enable(struct udevice *dev, bool enable)
+{
+ /* Always on */
+ return 0;
+}
+
+static const struct dm_regulator_ops npcm8xx_regulator_ops = {
+ .set_value = npcm8xx_regulator_set_value,
+ .get_value = npcm8xx_regulator_get_value,
+ .set_enable = npcm8xx_regulator_set_enable,
+};
+
+static const struct udevice_id npcm8xx_regulator_ids[] = {
+ { .compatible = "regulator-npcm845" },
+ { },
+};
+
+U_BOOT_DRIVER(regulator_npcm8xx) = {
+ .name = "regulator_npcm845",
+ .id = UCLASS_REGULATOR,
+ .ops = &npcm8xx_regulator_ops,
+ .of_match = npcm8xx_regulator_ids,
+};
diff --git a/drivers/tee/optee/core.c b/drivers/tee/optee/core.c
index 9240277579..b21031d7d8 100644
--- a/drivers/tee/optee/core.c
+++ b/drivers/tee/optee/core.c
@@ -102,13 +102,14 @@ static int bind_service_list(struct udevice *dev, struct tee_shm *service_list,
return 0;
}
-static int __enum_services(struct udevice *dev, struct tee_shm *shm, size_t *shm_size, u32 tee_sess)
+static int __enum_services(struct udevice *dev, struct tee_shm *shm, size_t *shm_size, u32 tee_sess,
+ unsigned int pta_cmd)
{
struct tee_invoke_arg arg = { };
struct tee_param param = { };
int ret = 0;
- arg.func = PTA_CMD_GET_DEVICES;
+ arg.func = pta_cmd;
arg.session = tee_sess;
/* Fill invoke cmd params */
@@ -118,7 +119,7 @@ static int __enum_services(struct udevice *dev, struct tee_shm *shm, size_t *shm
ret = tee_invoke_func(dev, &arg, 1, &param);
if (ret || (arg.ret && arg.ret != TEE_ERROR_SHORT_BUFFER)) {
- dev_err(dev, "PTA_CMD_GET_DEVICES invoke function err: 0x%x\n", arg.ret);
+ dev_err(dev, "Enumeration command 0x%x failed: 0x%x\n", pta_cmd, arg.ret);
return -EINVAL;
}
@@ -127,12 +128,13 @@ static int __enum_services(struct udevice *dev, struct tee_shm *shm, size_t *shm
return 0;
}
-static int enum_services(struct udevice *dev, struct tee_shm **shm, size_t *count, u32 tee_sess)
+static int enum_services(struct udevice *dev, struct tee_shm **shm, size_t *count, u32 tee_sess,
+ unsigned int pta_cmd)
{
size_t shm_size = 0;
int ret;
- ret = __enum_services(dev, NULL, &shm_size, tee_sess);
+ ret = __enum_services(dev, NULL, &shm_size, tee_sess, pta_cmd);
if (ret)
return ret;
@@ -142,7 +144,7 @@ static int enum_services(struct udevice *dev, struct tee_shm **shm, size_t *coun
return ret;
}
- ret = __enum_services(dev, *shm, &shm_size, tee_sess);
+ ret = __enum_services(dev, *shm, &shm_size, tee_sess, pta_cmd);
if (!ret)
*count = shm_size / sizeof(struct tee_optee_ta_uuid);
@@ -174,20 +176,32 @@ static int bind_service_drivers(struct udevice *dev)
struct tee_shm *service_list = NULL;
size_t service_count;
u32 tee_sess;
- int ret;
+ int ret, ret2;
ret = open_enum_session(dev, &tee_sess);
if (ret)
return ret;
- ret = enum_services(dev, &service_list, &service_count, tee_sess);
+ ret = enum_services(dev, &service_list, &service_count, tee_sess,
+ PTA_CMD_GET_DEVICES);
if (!ret)
ret = bind_service_list(dev, service_list, service_count);
tee_shm_free(service_list);
+
+ ret2 = enum_services(dev, &service_list, &service_count, tee_sess,
+ PTA_CMD_GET_DEVICES_SUPP);
+ if (!ret2)
+ ret2 = bind_service_list(dev, service_list, service_count);
+
+ tee_shm_free(service_list);
+
tee_close_session(dev, tee_sess);
- return ret;
+ if (ret)
+ return ret;
+
+ return ret2;
}
/**
@@ -834,7 +848,7 @@ static int optee_probe(struct udevice *dev)
*/
ret = device_bind_driver(dev, "optee-rng", "optee-rng", NULL);
if (ret)
- return ret;
+ dev_warn(dev, "ftpm_tee failed to bind: %d\n", ret);
}
return 0;
diff --git a/drivers/timer/orion-timer.c b/drivers/timer/orion-timer.c
index d588f0cbcd..810a03d549 100644
--- a/drivers/timer/orion-timer.c
+++ b/drivers/timer/orion-timer.c
@@ -23,15 +23,19 @@ struct orion_timer_priv {
#define MVEBU_TIMER_FIXED_RATE_25MHZ 25000000
-static bool early_init_done __section(".data") = false;
+static bool early_init_done(void *base)
+{
+ if (readl(base + TIMER_CTRL) & TIMER0_EN)
+ return true;
+ return false;
+}
/* Common functions for early (boot) and DM based timer */
static void orion_timer_init(void *base, enum input_clock_type type)
{
/* Only init the timer once */
- if (early_init_done)
+ if (early_init_done(base))
return;
- early_init_done = true;
writel(~0, base + TIMER0_VAL);
writel(~0, base + TIMER0_RELOAD);
diff --git a/drivers/tpm/tpm2_ftpm_tee.c b/drivers/tpm/tpm2_ftpm_tee.c
index 53e59f42b4..3c4c12983d 100644
--- a/drivers/tpm/tpm2_ftpm_tee.c
+++ b/drivers/tpm/tpm2_ftpm_tee.c
@@ -186,6 +186,7 @@ static int ftpm_tee_probe(struct udevice *dev)
/* Open a session with the fTPM TA */
memset(&sess_arg, 0, sizeof(sess_arg));
+ sess_arg.clnt_login = TEE_LOGIN_REE_KERNEL;
tee_optee_ta_uuid_to_octets(sess_arg.uuid, &uuid);
rc = tee_open_session(context->tee_dev, &sess_arg, 0, NULL);
diff --git a/include/asm-generic/pe.h b/include/asm-generic/pe.h
index a1df747134..b9d674b6da 100644
--- a/include/asm-generic/pe.h
+++ b/include/asm-generic/pe.h
@@ -51,6 +51,19 @@
#define IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER 12
#define IMAGE_SUBSYSTEM_EFI_ROM 13
+/* Section flags */
+#define IMAGE_SCN_CNT_CODE 0x00000020
+#define IMAGE_SCN_CNT_INITIALIZED_DATA 0x00000040
+#define IMAGE_SCN_CNT_UNINITIALIZED_ DATA 0x00000080
+#define IMAGE_SCN_LNK_NRELOC_OVFL 0x01000000
+#define IMAGE_SCN_MEM_DISCARDABLE 0x02000000
+#define IMAGE_SCN_MEM_NOT_CACHED 0x04000000
+#define IMAGE_SCN_MEM_NOT_PAGED 0x08000000
+#define IMAGE_SCN_MEM_SHARED 0x10000000
+#define IMAGE_SCN_MEM_EXECUTE 0x20000000
+#define IMAGE_SCN_MEM_READ 0x40000000
+#define IMAGE_SCN_MEM_WRITE 0x80000000
+
#define LINUX_ARM64_MAGIC 0x644d5241
#endif /* _ASM_PE_H */
diff --git a/include/charset.h b/include/charset.h
index e900fd789a..6e79d7152e 100644
--- a/include/charset.h
+++ b/include/charset.h
@@ -174,6 +174,19 @@ s32 utf_to_lower(const s32 code);
s32 utf_to_upper(const s32 code);
/**
+ * u16_strcasecmp() - compare two u16 strings case insensitively
+ *
+ * @s1: first string to compare
+ * @s2: second string to compare
+ * @n: maximum number of u16 to compare
+ * Return: 0 if the first n u16 are the same in s1 and s2
+ * < 0 if the first different u16 in s1 is less than the
+ * corresponding u16 in s2
+ * > 0 if the first different u16 in s1 is greater than the
+ */
+int u16_strcasecmp(const u16 *s1, const u16 *s2);
+
+/**
* u16_strncmp() - compare two u16 string
*
* @s1: first string to compare
diff --git a/include/config_distro_bootcmd.h b/include/config_distro_bootcmd.h
index fcb319a20a..c3a2414b91 100644
--- a/include/config_distro_bootcmd.h
+++ b/include/config_distro_bootcmd.h
@@ -484,7 +484,7 @@
"${prefix}${boot_syslinux_conf}; then " \
"echo Found ${prefix}${boot_syslinux_conf}; " \
"run boot_extlinux; " \
- "echo SCRIPT FAILED: continuing...; " \
+ "echo EXTLINUX FAILED: continuing...; " \
"fi\0" \
\
"boot_a_script=" \
diff --git a/include/configs/vexpress_common.h b/include/configs/vexpress_common.h
index ba7731bfca..2c1507a818 100644
--- a/include/configs/vexpress_common.h
+++ b/include/configs/vexpress_common.h
@@ -146,6 +146,7 @@
#include <config_distro_bootcmd.h>
#define CFG_EXTRA_ENV_SETTINGS \
+ "loadaddr=0x60100000\0" \
"kernel_addr_r=0x60100000\0" \
"fdt_addr_r=0x60000000\0" \
"bootargs=console=tty0 console=ttyAMA0,38400n8\0" \
diff --git a/include/efi_api.h b/include/efi_api.h
index 00c98e0984..9bd70b0f18 100644
--- a/include/efi_api.h
+++ b/include/efi_api.h
@@ -21,7 +21,7 @@
#include <pe.h>
/* UEFI spec version 2.9 */
-#define EFI_SPECIFICATION_VERSION (2 << 16 | 90)
+#define EFI_SPECIFICATION_VERSION (2 << 16 | 100)
/* Types and defines for EFI CreateEvent */
enum efi_timer_delay {
diff --git a/include/efi_loader.h b/include/efi_loader.h
index 0899e293e5..f9e427f090 100644
--- a/include/efi_loader.h
+++ b/include/efi_loader.h
@@ -708,6 +708,8 @@ int algo_to_len(const char *algo);
int efi_link_dev(efi_handle_t handle, struct udevice *dev);
int efi_unlink_dev(efi_handle_t handle);
bool efi_varname_is_load_option(u16 *var_name16, int *index);
+efi_status_t efi_next_variable_name(efi_uintn_t *size, u16 **buf,
+ efi_guid_t *guid);
/**
* efi_size_in_pages() - convert size in bytes to size in pages
@@ -734,6 +736,9 @@ efi_status_t efi_allocate_pool(enum efi_memory_type pool_type,
efi_uintn_t size, void **buffer);
/* EFI pool memory free function. */
efi_status_t efi_free_pool(void *buffer);
+/* Allocate and retrieve EFI memory map */
+efi_status_t efi_get_memory_map_alloc(efi_uintn_t *map_size,
+ struct efi_mem_desc **memory_map);
/* Returns the EFI memory map */
efi_status_t efi_get_memory_map(efi_uintn_t *memory_map_size,
struct efi_mem_desc *memory_map,
diff --git a/include/efi_variable.h b/include/efi_variable.h
index 03a3ecb235..805e6c5f1e 100644
--- a/include/efi_variable.h
+++ b/include/efi_variable.h
@@ -268,7 +268,8 @@ const efi_guid_t *efi_auth_var_get_guid(const u16 *name);
* efi_get_next_variable_name_mem() - Runtime common code across efi variable
* implementations for GetNextVariable()
* from the cached memory copy
- * @variable_name_size: size of variable_name buffer in byte
+ *
+ * @variable_name_size: size of variable_name buffer in bytes
* @variable_name: name of uefi variable's name in u16
* @vendor: vendor's guid
*
diff --git a/include/env.h b/include/env.h
index 60acb5454e..1480efa59e 100644
--- a/include/env.h
+++ b/include/env.h
@@ -226,7 +226,7 @@ int env_complete(char *var, int maxv, char *cmdv[], int maxsz, char *buf,
*
* @name: Environment variable to get (e.g. "ethaddr")
* @enetaddr: Place to put MAC address (6 bytes)
- * Return: 0 if OK, 1 on error
+ * Return: 1 if OK, 0 on error
*/
int eth_env_get_enetaddr(const char *name, uint8_t *enetaddr);
@@ -235,7 +235,7 @@ int eth_env_get_enetaddr(const char *name, uint8_t *enetaddr);
*
* @name: Environment variable to set (e.g. "ethaddr")
* @enetaddr: Pointer to MAC address to put into the variable (6 bytes)
- * Return: 0 if OK, 1 on error
+ * Return: 0 if OK, non-zero otherwise
*/
int eth_env_set_enetaddr(const char *name, const uint8_t *enetaddr);
diff --git a/lib/charset.c b/lib/charset.c
index bece4985bf..b1842755eb 100644
--- a/lib/charset.c
+++ b/lib/charset.c
@@ -351,6 +351,32 @@ s32 utf_to_upper(const s32 code)
}
/*
+ * u16_strcasecmp() - compare two u16 strings case insensitively
+ *
+ * @s1: first string to compare
+ * @s2: second string to compare
+ * @n: maximum number of u16 to compare
+ * Return: 0 if the first n u16 are the same in s1 and s2
+ * < 0 if the first different u16 in s1 is less than the
+ * corresponding u16 in s2
+ * > 0 if the first different u16 in s1 is greater than the
+ */
+int u16_strcasecmp(const u16 *s1, const u16 *s2)
+{
+ int ret = 0;
+ s32 c1, c2;
+
+ for (;;) {
+ c1 = utf_to_upper(utf16_get(&s1));
+ c2 = utf_to_upper(utf16_get(&s2));
+ ret = c1 - c2;
+ if (ret || !c1 || c1 == -1 || c2 == -1)
+ break;
+ }
+ return ret;
+}
+
+/*
* u16_strncmp() - compare two u16 string
*
* @s1: first string to compare
diff --git a/lib/efi_loader/efi_boottime.c b/lib/efi_loader/efi_boottime.c
index 253f9f75ef..e65ca6a4cb 100644
--- a/lib/efi_loader/efi_boottime.c
+++ b/lib/efi_loader/efi_boottime.c
@@ -3956,8 +3956,11 @@ efi_status_t efi_initialize_system_table(void)
* These entries will be set to NULL in ExitBootServices(). To avoid
* relocation in SetVirtualAddressMap(), set them dynamically.
*/
+ systab.con_in_handle = efi_root;
systab.con_in = &efi_con_in;
+ systab.con_out_handle = efi_root;
systab.con_out = &efi_con_out;
+ systab.stderr_handle = efi_root;
systab.std_err = &efi_con_out;
systab.boottime = &efi_boot_services;
diff --git a/lib/efi_loader/efi_capsule.c b/lib/efi_loader/efi_capsule.c
index 1163a2ee30..0997cd248f 100644
--- a/lib/efi_loader/efi_capsule.c
+++ b/lib/efi_loader/efi_capsule.c
@@ -1108,10 +1108,13 @@ static efi_status_t efi_capsule_scan_dir(u16 ***files, unsigned int *num)
/* ignore an error */
EFI_CALL((*dirh->close)(dirh));
- /* in ascii order */
- /* FIXME: u16 version of strcasecmp */
+ /*
+ * Capsule files are applied in case insensitive alphabetic order
+ *
+ * TODO: special handling of rightmost period
+ */
qsort(tmp_files, count, sizeof(*tmp_files),
- (int (*)(const void *, const void *))strcasecmp);
+ (int (*)(const void *, const void *))u16_strcasecmp);
*files = tmp_files;
*num = count;
ret = EFI_SUCCESS;
diff --git a/lib/efi_loader/efi_helper.c b/lib/efi_loader/efi_helper.c
index 788cb9faec..1f4ab2b419 100644
--- a/lib/efi_loader/efi_helper.c
+++ b/lib/efi_loader/efi_helper.c
@@ -223,3 +223,37 @@ bool efi_varname_is_load_option(u16 *var_name16, int *index)
return false;
}
+
+/**
+ * efi_next_variable_name() - get next variable name
+ *
+ * This function is a wrapper of efi_get_next_variable_name_int().
+ * If efi_get_next_variable_name_int() returns EFI_BUFFER_TOO_SMALL,
+ * @size and @buf are updated by new buffer size and realloced buffer.
+ *
+ * @size: pointer to the buffer size
+ * @buf: pointer to the buffer
+ * @guid: pointer to the guid
+ * Return: status code
+ */
+efi_status_t efi_next_variable_name(efi_uintn_t *size, u16 **buf, efi_guid_t *guid)
+{
+ u16 *p;
+ efi_status_t ret;
+ efi_uintn_t buf_size = *size;
+
+ ret = efi_get_next_variable_name_int(&buf_size, *buf, guid);
+ if (ret == EFI_NOT_FOUND)
+ return ret;
+ if (ret == EFI_BUFFER_TOO_SMALL) {
+ p = realloc(*buf, buf_size);
+ if (!p)
+ return EFI_OUT_OF_RESOURCES;
+
+ *buf = p;
+ *size = buf_size;
+ ret = efi_get_next_variable_name_int(&buf_size, *buf, guid);
+ }
+
+ return ret;
+}
diff --git a/lib/efi_loader/efi_hii.c b/lib/efi_loader/efi_hii.c
index 75ff58aafa..27db3be6a1 100644
--- a/lib/efi_loader/efi_hii.c
+++ b/lib/efi_loader/efi_hii.c
@@ -780,7 +780,7 @@ get_package_list_handle(const struct efi_hii_database_protocol *this,
}
}
- return EFI_EXIT(EFI_NOT_FOUND);
+ return EFI_EXIT(EFI_INVALID_PARAMETER);
}
const struct efi_hii_database_protocol efi_hii_database = {
diff --git a/lib/efi_loader/efi_memory.c b/lib/efi_loader/efi_memory.c
index 8d347f101f..32254d2433 100644
--- a/lib/efi_loader/efi_memory.c
+++ b/lib/efi_loader/efi_memory.c
@@ -737,6 +737,40 @@ efi_status_t efi_get_memory_map(efi_uintn_t *memory_map_size,
}
/**
+ * efi_get_memory_map_alloc() - allocate map describing memory usage
+ *
+ * The caller is responsible for calling FreePool() if the call succeeds.
+ *
+ * @memory_map buffer to which the memory map is written
+ * @map_size size of the memory map
+ * Return: status code
+ */
+efi_status_t efi_get_memory_map_alloc(efi_uintn_t *map_size,
+ struct efi_mem_desc **memory_map)
+{
+ efi_status_t ret;
+
+ *memory_map = NULL;
+ *map_size = 0;
+ ret = efi_get_memory_map(map_size, *memory_map, NULL, NULL, NULL);
+ if (ret == EFI_BUFFER_TOO_SMALL) {
+ *map_size += sizeof(struct efi_mem_desc); /* for the map */
+ ret = efi_allocate_pool(EFI_BOOT_SERVICES_DATA, *map_size,
+ (void **)memory_map);
+ if (ret != EFI_SUCCESS)
+ return ret;
+ ret = efi_get_memory_map(map_size, *memory_map,
+ NULL, NULL, NULL);
+ if (ret != EFI_SUCCESS) {
+ efi_free_pool(*memory_map);
+ *memory_map = NULL;
+ }
+ }
+
+ return ret;
+}
+
+/**
* efi_add_conventional_memory_map() - add a RAM memory area to the map
*
* @ram_start: start address of a RAM memory area
diff --git a/lib/efi_loader/efi_var_file.c b/lib/efi_loader/efi_var_file.c
index 3d58caa13d..62e071bd83 100644
--- a/lib/efi_loader/efi_var_file.c
+++ b/lib/efi_loader/efi_var_file.c
@@ -176,7 +176,7 @@ efi_status_t efi_var_restore(struct efi_var_file *buf, bool safe)
data = var->name + u16_strlen(var->name) + 1;
/*
- * Secure boot related and non-volatile variables shall only be
+ * Secure boot related and volatile variables shall only be
* restored from U-Boot's preseed.
*/
if (!safe &&
@@ -187,6 +187,8 @@ efi_status_t efi_var_restore(struct efi_var_file *buf, bool safe)
continue;
if (!var->length)
continue;
+ if (efi_var_mem_find(&var->guid, var->name, NULL))
+ continue;
ret = efi_var_mem_ins(var->name, &var->guid, var->attr,
var->length, data, 0, NULL,
var->time);
diff --git a/lib/efi_loader/efi_var_mem.c b/lib/efi_loader/efi_var_mem.c
index 13909b1d26..e1058e3c6a 100644
--- a/lib/efi_loader/efi_var_mem.c
+++ b/lib/efi_loader/efi_var_mem.c
@@ -146,9 +146,7 @@ efi_status_t __efi_runtime efi_var_mem_ins(
var = (struct efi_var_entry *)
((uintptr_t)efi_var_buf + efi_var_buf->length);
- for (var_name_len = 0; variable_name[var_name_len]; ++var_name_len)
- ;
- ++var_name_len;
+ var_name_len = u16_strlen(variable_name) + 1;
data = var->name + var_name_len;
if ((uintptr_t)data - (uintptr_t)efi_var_buf + size1 + size2 >
@@ -315,14 +313,14 @@ efi_get_next_variable_name_mem(efi_uintn_t *variable_name_size,
u16 *variable_name, efi_guid_t *vendor)
{
struct efi_var_entry *var;
- efi_uintn_t old_size;
+ efi_uintn_t len, old_size;
u16 *pdata;
if (!variable_name_size || !variable_name || !vendor)
return EFI_INVALID_PARAMETER;
- if (u16_strnlen(variable_name, *variable_name_size) ==
- *variable_name_size)
+ len = *variable_name_size >> 1;
+ if (u16_strnlen(variable_name, len) == len)
return EFI_INVALID_PARAMETER;
if (!efi_var_mem_find(vendor, variable_name, &var) && *variable_name)
diff --git a/lib/efi_loader/efi_variable.c b/lib/efi_loader/efi_variable.c
index 8ca2d85694..503a33ed65 100644
--- a/lib/efi_loader/efi_variable.c
+++ b/lib/efi_loader/efi_variable.c
@@ -425,6 +425,9 @@ efi_status_t efi_init_variables(void)
if (ret != EFI_SUCCESS)
return ret;
+ ret = efi_var_from_file();
+ if (ret != EFI_SUCCESS)
+ return ret;
if (IS_ENABLED(CONFIG_EFI_VARIABLES_PRESEED)) {
ret = efi_var_restore((struct efi_var_file *)
__efi_var_file_begin, true);
@@ -432,9 +435,6 @@ efi_status_t efi_init_variables(void)
log_err("Invalid EFI variable seed\n");
}
- ret = efi_var_from_file();
- if (ret != EFI_SUCCESS)
- return ret;
return efi_init_secure_state();
}
diff --git a/lib/efi_selftest/efi_selftest_variables.c b/lib/efi_selftest/efi_selftest_variables.c
index dc1d5c8f43..c7a3fdbaa6 100644
--- a/lib/efi_selftest/efi_selftest_variables.c
+++ b/lib/efi_selftest/efi_selftest_variables.c
@@ -141,6 +141,41 @@ static int execute(void)
return EFI_ST_FAILURE;
}
/* Enumerate variables */
+
+ ret = runtime->get_next_variable_name(NULL, u"efi_st_var1", &guid);
+ if (ret != EFI_INVALID_PARAMETER) {
+ efi_st_error("GetNextVariableName missing parameter check\n");
+ return EFI_ST_FAILURE;
+ }
+
+ len = 24;
+ ret = runtime->get_next_variable_name(&len, NULL, &guid);
+ if (ret != EFI_INVALID_PARAMETER) {
+ efi_st_error("GetNextVariableName missing parameter check\n");
+ return EFI_ST_FAILURE;
+ }
+
+ len = 24;
+ ret = runtime->get_next_variable_name(&len, u"efi_st_var1", NULL);
+ if (ret != EFI_INVALID_PARAMETER) {
+ efi_st_error("GetNextVariableName missing parameter check\n");
+ return EFI_ST_FAILURE;
+ }
+
+ len = 1;
+ ret = runtime->get_next_variable_name(&len, u"", &guid);
+ if (ret != EFI_INVALID_PARAMETER) {
+ efi_st_error("GetNextVariableName missing parameter check\n");
+ return EFI_ST_FAILURE;
+ }
+
+ len = 16;
+ ret = runtime->get_next_variable_name(&len, u"efi_st_var1", &guid);
+ if (ret != EFI_INVALID_PARAMETER) {
+ efi_st_error("GetNextVariableName missing parameter check\n");
+ return EFI_ST_FAILURE;
+ }
+
boottime->set_mem(&guid, 16, 0);
*varname = 0;
flag = 0;
diff --git a/lib/lmb.c b/lib/lmb.c
index c599608fa3..ec790760db 100644
--- a/lib/lmb.c
+++ b/lib/lmb.c
@@ -7,7 +7,9 @@
*/
#include <common.h>
+#include <efi_loader.h>
#include <image.h>
+#include <mapmem.h>
#include <lmb.h>
#include <log.h>
#include <malloc.h>
@@ -153,6 +155,37 @@ void arch_lmb_reserve_generic(struct lmb *lmb, ulong sp, ulong end, ulong align)
}
}
+/**
+ * efi_lmb_reserve() - add reservations for EFI memory
+ *
+ * Add reservations for all EFI memory areas that are not
+ * EFI_CONVENTIONAL_MEMORY.
+ *
+ * @lmb: lmb environment
+ * Return: 0 on success, 1 on failure
+ */
+static __maybe_unused int efi_lmb_reserve(struct lmb *lmb)
+{
+ struct efi_mem_desc *memmap = NULL, *map;
+ efi_uintn_t i, map_size = 0;
+ efi_status_t ret;
+
+ ret = efi_get_memory_map_alloc(&map_size, &memmap);
+ if (ret != EFI_SUCCESS)
+ return 1;
+
+ for (i = 0, map = memmap; i < map_size / sizeof(*map); ++map, ++i) {
+ if (map->type != EFI_CONVENTIONAL_MEMORY)
+ lmb_reserve(lmb,
+ map_to_sysmem((void *)(uintptr_t)
+ map->physical_start),
+ map->num_pages * EFI_PAGE_SIZE);
+ }
+ efi_free_pool(memmap);
+
+ return 0;
+}
+
static void lmb_reserve_common(struct lmb *lmb, void *fdt_blob)
{
arch_lmb_reserve(lmb);
@@ -160,6 +193,9 @@ static void lmb_reserve_common(struct lmb *lmb, void *fdt_blob)
if (CONFIG_IS_ENABLED(OF_LIBFDT) && fdt_blob)
boot_fdt_add_mem_rsv_regions(lmb, fdt_blob);
+
+ if (CONFIG_IS_ENABLED(EFI_LOADER))
+ efi_lmb_reserve(lmb);
}
/* Initialize the struct, add memory and call arch/board reserve functions */
diff --git a/net/ndisc.c b/net/ndisc.c
index 3c0eeeaea3..367dae7676 100644
--- a/net/ndisc.c
+++ b/net/ndisc.c
@@ -265,7 +265,7 @@ int ndisc_receive(struct ethernet_hdr *et, struct ip6_hdr *ip6, int len)
/* save address for later use */
if (!net_nd_packet_mac)
- memcpy(net_nd_packet_mac, neigh_eth_addr, 7);
+ net_nd_packet_mac = neigh_eth_addr;
/* modify header, and transmit it */
memcpy(((struct ethernet_hdr *)net_nd_tx_packet)->et_dest,
diff --git a/net/net.c b/net/net.c
index 1c39acc493..57da9bda85 100644
--- a/net/net.c
+++ b/net/net.c
@@ -1269,6 +1269,7 @@ void net_process_received_packet(uchar *in_packet, int len)
#if IS_ENABLED(CONFIG_IPV6)
case PROT_IP6:
net_ip6_handler(et, (struct ip6_hdr *)ip, len);
+ break;
#endif
case PROT_IP:
debug_cond(DEBUG_NET_PKT, "Got IP\n");
diff --git a/net/wget.c b/net/wget.c
index 3826c4b364..eebdf80eb5 100644
--- a/net/wget.c
+++ b/net/wget.c
@@ -6,6 +6,7 @@
#include <command.h>
#include <common.h>
+#include <display_options.h>
#include <env.h>
#include <image.h>
#include <mapmem.h>
diff --git a/scripts/dtc/pylibfdt/setup.py b/scripts/dtc/pylibfdt/setup.py
index ec1fc5002b..8baae08770 100755
--- a/scripts/dtc/pylibfdt/setup.py
+++ b/scripts/dtc/pylibfdt/setup.py
@@ -26,6 +26,11 @@ import os
import re
import sys
+try:
+ from setuptools import sic
+except ImportError:
+ pass
+
srcdir = os.path.dirname(__file__)
with open(os.path.join(srcdir, "../README"), "r") as fh:
@@ -113,7 +118,10 @@ progname = sys.argv[0]
files = os.environ.get('SOURCES', '').split()
cflags = os.environ.get('CPPFLAGS', '').split()
objdir = os.environ.get('OBJDIR')
-version = os.environ.get('VERSION')
+try:
+ version = sic(os.environ.get('VERSION'))
+except:
+ version = os.environ.get('VERSION')
swig_opts = os.environ.get('SWIG_OPTS', '').split()
# If we were called directly rather than through our Makefile (which is often
diff --git a/test/unicode_ut.c b/test/unicode_ut.c
index d104bd5997..382b796516 100644
--- a/test/unicode_ut.c
+++ b/test/unicode_ut.c
@@ -67,6 +67,17 @@ static int unicode_test_u16_strlen(struct unit_test_state *uts)
}
UNICODE_TEST(unicode_test_u16_strlen);
+static int unicode_test_u16_strnlen(struct unit_test_state *uts)
+{
+ ut_asserteq(0, u16_strnlen(c1, 0));
+ ut_asserteq(4, u16_strnlen(c1, 4));
+ ut_asserteq(6, u16_strnlen(c1, 6));
+ ut_asserteq(6, u16_strnlen(c1, 7));
+
+ return 0;
+}
+UNICODE_TEST(unicode_test_u16_strnlen);
+
static int unicode_test_u16_strdup(struct unit_test_state *uts)
{
u16 *copy = u16_strdup(c4);
@@ -613,6 +624,31 @@ static int unicode_test_utf_to_upper(struct unit_test_state *uts)
}
UNICODE_TEST(unicode_test_utf_to_upper);
+static int unicode_test_u16_strcasecmp(struct unit_test_state *uts)
+{
+ ut_assert(u16_strcasecmp(u"abcd", u"abcd") == 0);
+ ut_assert(u16_strcasecmp(u"aBcd", u"abcd") == 0);
+ ut_assert(u16_strcasecmp(u"abcd", u"abCd") == 0);
+ ut_assert(u16_strcasecmp(u"abcdE", u"abcd") > 0);
+ ut_assert(u16_strcasecmp(u"abcd", u"abcdE") < 0);
+ ut_assert(u16_strcasecmp(u"abcE", u"abcd") > 0);
+ ut_assert(u16_strcasecmp(u"abcd", u"abcE") < 0);
+ ut_assert(u16_strcasecmp(u"abcd", u"abcd") == 0);
+ ut_assert(u16_strcasecmp(u"abcd", u"abcd") == 0);
+ if (CONFIG_IS_ENABLED(EFI_UNICODE_CAPITALIZATION)) {
+ /* Cyrillic letters */
+ ut_assert(u16_strcasecmp(u"\x043a\x043d\x0438\x0433\x0430",
+ u"\x041a\x041d\x0418\x0413\x0410") == 0);
+ ut_assert(u16_strcasecmp(u"\x043a\x043d\x0438\x0433\x0430",
+ u"\x041a\x041d\x0418\x0413\x0411") < 0);
+ ut_assert(u16_strcasecmp(u"\x043a\x043d\x0438\x0433\x0431",
+ u"\x041a\x041d\x0418\x0413\x0410") > 0);
+ }
+
+ return 0;
+}
+UNICODE_TEST(unicode_test_u16_strcasecmp);
+
static int unicode_test_u16_strncmp(struct unit_test_state *uts)
{
ut_assert(u16_strncmp(u"abc", u"abc", 3) == 0);