summaryrefslogtreecommitdiff
path: root/arch
AgeCommit message (Collapse)Author
2026-02-25Merge tag 'u-boot-stm32-20260224' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-stm STM32 update: _ Add STM32MP21 support (board, machine, cmd_stm32key, cmd_stboard, rifsc) _ pinctrl: stm32 : various update _ stm32prog: clean stm32prog_data struct _ stm32mp2: Fix array bound check in setup_boot_mode() _ stm32mp2: Update dynamically DDR size in MMU table _ rifsc: various fixes
2026-02-24ARM: stm32mp: Check secure state firstGatien Chevallier
Secure state must be checked before handling semaphores, otherwise it can cause an IAC. Signed-off-by: Gatien Chevallier <[email protected]> Signed-off-by: Patrice Chotard <[email protected]> Reviewed-by: Patrick Delaunay <[email protected]>
2026-02-24ARM: stm32mp: Fix CID and semaphore checkGatien Chevallier
Peripheral holding CID0 cannot be accessed, remove this completely incorrect check. While there, fix and simplify the semaphore checking that should be performed when the CID filtering is enabled. Signed-off-by: Gatien Chevallier <[email protected]> Signed-off-by: Patrice Chotard <[email protected]> Reviewed-by: Patrick Delaunay <[email protected]>
2026-02-24ARM: stm32mp: Do not acquire RIFSC semaphore if CID filtering is disabledGatien Chevallier
If the CID filtering is enabled, the semaphore mode is disabled as well. To avoid an incorrect behavior and error trace, add a check of CID filtering state before acquiring the semaphore. Signed-off-by: Gatien Chevallier <[email protected]> Signed-off-by: Patrice Chotard <[email protected]> Reviewed-by: Patrick Delaunay <[email protected]>
2026-02-24stm32mp: cmd_stm32key: add support of ADAC public key hashThomas Bourgoin
Add support of ADAC-PKH for STM32MP21. Signed-off-by: Thomas Bourgoin <[email protected]> Signed-off-by: Patrice Chotard <[email protected]> Reviewed-by: Patrick Delaunay <[email protected]>
2026-02-24stm32mp: cmd_stm32key: add support of remoteproc firmware public keyGwenael Treuveur
Add support of RPROC-FW-PKH for STM32MP25, STM32MP23 and STM32MP21. Signed-off-by: Gwenael Treuveur <[email protected]> Signed-off-by: Patrice Chotard <[email protected]> Reviewed-by: Patrick Delaunay <[email protected]>
2026-02-24stm32mp: cmd_stm32key: add support of remoteproc firmware encryption keyThomas Bourgoin
Add support of RPROC-FW-KEY for STM32MP25, STM32MP23 and STM32MP21. Signed-off-by: Thomas Bourgoin <[email protected]> Signed-off-by: Patrice Chotard <[email protected]> Reviewed-by: Patrick Delaunay <[email protected]>
2026-02-24stm32mp: cmd_stm32key: add support of OTP key format 2Thomas Bourgoin
Add support of OTP key format 2 used by OP-TEE. Key formats are describes in the STM32MPUs references manuals section OTP mapping. Signed-off-by: Thomas Bourgoin <[email protected]> Signed-off-by: Patrice Chotard <[email protected]> Reviewed-by: Patrick Delaunay <[email protected]>
2026-02-24stm32mp: cmd_stm32key: add support of STM32MP21x SoCThomas Bourgoin
Update stm32key to support stm32mp21 OTP mapping. Create a new list of key to support the following differences : - STM32MP21x SoC support 128b and 25b FSBL encryption keys. - OEM-KEY1 and OEM-KEY2 used for authentication are in different OTP from STM32MP25 and STM32MP23. stm32key is compatible with platform STM32MP2 (aarch64) Hence, use unsigned long to handle argument addr of function read_key_value() instead of u32. Signed-off-by: Thomas Bourgoin <[email protected]> Signed-off-by: Patrice Chotard <[email protected]> Reviewed-by: Patrick Delaunay <[email protected]>
2026-02-24stm32mp1: Add check on syscon_get_first_range() return valuePatrice Chotard
syscon_get_first_range()'s return value is used as base address to perform a read, without any checks. In case stmp32mp_syscon is not binded, syscon_get_first_range() returns -ENODEV which leads to a "Synchronous abort". Add syscon_get_first_range() check on return value. Signed-off-by: Patrice Chotard <[email protected]> Reviewed-by: Patrick Delaunay <[email protected]>
2026-02-24stm32mp2: Add check on syscon_get_first_range() return valuePatrice Chotard
syscon_get_first_range()'s return value is used as base address to perform a read, without any checks. In case stmp32mp_syscon is not binded, syscon_get_first_range() returns -ENODEV which leads to a "Synchronous abort". Add syscon_get_first_range() check on return value. Signed-off-by: Patrice Chotard <[email protected]> Reviewed-by: Patrick Delaunay <[email protected]>
2026-02-24stm32mp2: Migrate duplicated code into stm32mp2x.cPatrice Chotard
Same code is duplicated into stm32mp25x.c, stm32mp23x.c and stm32mp21x.c. Migrate read_deviceid(), get_cpu_dev(), get_cpu_rev(), get_cpu_type() and get_cpu_package() into new stm32mp2x.c. Signed-off-by: Patrice Chotard <[email protected]> Reviewed-by: Patrick Delaunay <[email protected]>
2026-02-24ARM: dts: stm32: Add bootph-all in stm32mp215f-dk-u-boot.dtsiPatrice Chotard
Add temporarily bootph-all property in usart2 and syscfg nodes to allows stm32mp215f-dk board to boot. When DT kernel series [1] will be merged and synchronized in U-Boot this patch will be reverted. [1] https://lore.kernel.org/linux-arm-kernel/[email protected]/ Signed-off-by: Patrice Chotard <[email protected]> Reviewed-by: Patrick Delaunay <[email protected]>
2026-02-24ARM: dts: stm32: Add stm32mp215f-dk-u-bootPatrice Chotard
Add U-Boot specific file for stm32mp215f-dk board Signed-off-by: Patrice Chotard <[email protected]> Reviewed-by: Patrick Delaunay <[email protected]>
2026-02-24ARM: stm32mp: Add STM32MP21 supportPatrice Chotard
STM32MP21 application processors (STM32 MPUs) based on a single Arm Cortex®-A35 core running up to 1.5 GHz and Cortex®-M33 core running at 300 MHz. It is pin-compatible with the STM32MP2 series in the VFBGA361 10×10 mm package: the STM32MP21 uses a subset of the STM32MP23 pinout, which itself is a subset of the STM32MP25. More details available here : https://www.st.com/en/microcontrollers-microprocessors/stm32mp2-series.html Signed-off-by: Patrice Chotard <[email protected]> Reviewed-by: Patrick Delaunay <[email protected]>
2026-02-24stm32mp: cmd_stm32key: add support of STM32MP21xPatrice Chotard
Add cmd_stm32key support for STM32MP21x SoCs family. Signed-off-by: Yann Gautier <[email protected]> Signed-off-by: Nicolas Le Bayon <[email protected]> Signed-off-by: Patrice Chotard <[email protected]> Reviewed-by: Patrick Delaunay <[email protected]>
2026-02-24stm32mp: syscon: Add STM32MP21 supportPatrice Chotard
Add "st,stm32mp21-syscfg" compatible. Signed-off-by: Patrice Chotard <[email protected]> Reviewed-by: Patrick Delaunay <[email protected]>
2026-02-24arm: mach-k3: common: Clamp RAM end address to board-usable region in ↵Devarsh Thakkar
spl_enable_cache() commit ba20b2443c29 ("arm: mach-k3: common: Reserve video memory from end of the RAM") switched spl_enable_cache() to use gd->ram_top directly but omitted the board_get_usable_ram_top() call that limits RAM configuration and provides updated RAM end address per memory map used by board and impacts subsequent allocations and reservations. For e.g. here it impacts how high the TLB may be placed. On Verdin AM62 (512 MiB), the raw end of RAM (0xA0000000) is inside OP-TEE's region. board_get_usable_ram_top() in verdin-am62.c returns 0x9C000000 to keep relocations below it, but spl_enable_cache() never called it. commit 42b3ee7fa524 ("arm: mach-k3: am62x: Enable memory firewall support") then enforced the OP-TEE firewall, turning the silent corruption into a hard hang. Fix by calling board_get_usable_ram_top() after computing raw ram_top, consistent with setup_dest_addr() in board_f.c. A weak default is provided for boards that do not need to restrict the RAM top. Fixes: ba20b2443c29 ("arm: mach-k3: common: Reserve video memory from end of the RAM") Reported-by: Francesco Dolcini <[email protected]> Link: https://lore.kernel.org/all/20260224102121.GB340942@francesco-nb/ Signed-off-by: Devarsh Thakkar <[email protected]> Tested-by: Francesco Dolcini <[email protected]> # Verdin AM62 512MB
2026-02-24arm: armv8: Flush TLB before enabling MMUMark Kettenis
Commit 9ebdbbc43e5f ("arm: armv8: invalidate dcache entries on dcache_enable") broke Apple Silicon machines in certain scenarios. If the MMU is currently not enabled we need to flush the TLB before we enable it to prevent stale TLB entries from becoming active again. So move the __asm_invalidate_tlb_all() back immediately before the mmu_setup() call. Fixes: 9ebdbbc43e5f ("arm: armv8: invalidate dcache entries on dcache_enable") Signed-off-by: Mark Kettenis <[email protected]> Reviewed-by: Ilias Apalodimas <[email protected]>
2026-02-24stm32mp2: Update size of DDR entry in MMU tablePatrice Chotard
On 1GB board, in particular cases, a prefetch operation is done just above the 1GB boundary. The DDR size is 1GB (0x80000000 to 0xc0000000), there is an access on 0xc00017c0 (ie 0x800017c0). As beginning of DDR is protected by MMU until CONFIG_TEXT_BASE (0x80000000 to 0x84000000), it triggers the following IAC: E/TC:0 stm32_iac_itr:192 IAC exceptions [159:128]: 0x200 E/TC:0 stm32_iac_itr:197 IAC exception ID: 137 I/TC: DUMPING DATA FOR risaf@420d0000 I/TC: ===================================================== I/TC: Status register (IAESR0): 0x11 I/TC: ----------------------------------------------------- I/TC: Faulty address (IADDR0): 0xc00017c0 I/TC: ===================================================== E/TC:0 Panic at /usr/src/debug/optee-os-stm32mp/4.0.0-gitvalid.8> E/TC:0 TEE load address @ 0x82000000 E/TC:0 Call stack: E/TC:0 0x82007f30 E/TC:0 0x820444b4 E/TC:0 0x8202dc54 E/TC:0 0x82041fe0 E/TC:0 0x820143b8 By default, in MMU table, the DDR size is set to 4GB, but not all STM32MP2 based board embeds 4GB, some has only 1 or 2GB of DDR. The MMU table entry dedicated to DDR need to be updated with the real DDR size previously read from DT. After relocation, in enable_caches(), update the MMU table between the dcache_disable() / dcache_enable() with the real DDR size. Signed-off-by: Patrice Chotard <[email protected]> Reviewed-by: Patrick Delaunay <[email protected]>
2026-02-24stm32mp: fix array bounds checksPatrice Chotard
Fix index check against array size. If that index is equal to the array size, we'll access one-past-the-end of the array. Signed-off-by: Patrice Chotard <[email protected]> Reviewed-by: Patrick Delaunay <[email protected]>
2026-02-24stm32mp: stm32prog: Remove fsbl_nor_detected from stm32prog_data structPatrice Chotard
No more need to test if a fsbl partition is present on NOR when booting from serial or USB. Now MTD devices are automatically populated with partition information found in DT. Remove fsbl_nor_detected boolean from stm32prog_data struct and all code using it. Signed-off-by: Patrice Chotard <[email protected]> Reviewed-by: Patrick Delaunay <[email protected]>
2026-02-23Merge patch series "am62dxx-evm: Add SPI flash support"Tom Rini
Paresh Bhagat <[email protected]> says: This series enables SPI flash support for the AM62DX EVM platform. The first patch enables the required SPI flash configuration options in both A53 and R5 defconfigs, including Cadence QSPI driver support, SFDP support, and Spansion S28HX-T flash compatibility. The second patch adds the necessary device tree configuration for the R5 SPL to support OSPI flash access during the boot process. Boot logs https://gist.github.com/paresh-bhagat12/ca9a05aa443c71e8baf6d8506f6ccc22 Link: https://lore.kernel.org/r/[email protected]
2026-02-23arm: dts: k3-am62d2-r5: Add DMA and OSPI configurationParesh Bhagat
Enable WKUP UART0 for DM firmware logs, configure DMA controllers with TI SCI references, and update OSPI0 register mapping. Signed-off-by: Paresh Bhagat <[email protected]>
2026-02-23Merge tag 'v2026.04-rc3' into nextTom Rini
Prepare v2026.04-rc3
2026-02-23ARM: dts: exynos7870-on7xelte: add properties to make S-BOOT happyKaustabh Chakraborty
Add properties in the DTSI file which is required for S-BOOT when used an external device tree when booting into U-Boot. S-BOOT is Samsung's proprietary bootloader, which chainloads U-Boot. Since this device has multiple bank nodes, add memory nodes for each RAM bank. This is the format S-BOOT recognizes, and (re)populates it with the correct bank sizes. Signed-off-by: Kaustabh Chakraborty <[email protected]> Signed-off-by: Minkyu Kang <[email protected]>
2026-02-23ARM: dts: exynos7870-j6lte: add properties to make S-BOOT happyKaustabh Chakraborty
Add properties in the DTSI file which is required for S-BOOT when used an external device tree when booting into U-Boot. S-BOOT is Samsung's proprietary bootloader, which chainloads U-Boot. Since this device has multiple bank nodes, add memory nodes for each RAM bank. This is the format S-BOOT recognizes, and (re)populates it with the correct bank sizes. Signed-off-by: Kaustabh Chakraborty <[email protected]> Signed-off-by: Minkyu Kang <[email protected]>
2026-02-23ARM: dts: exynos7870-a2corelte: add properties to make S-BOOT happyKaustabh Chakraborty
Add properties in the DTSI file which is required for S-BOOT when used an external device tree when booting into U-Boot. S-BOOT is Samsung's proprietary bootloader, which chainloads U-Boot. Signed-off-by: Kaustabh Chakraborty <[email protected]> Signed-off-by: Minkyu Kang <[email protected]>
2026-02-20arm: mach-k3: j722s: Update SoC data to add wake-up I2C deviceChintan Vankar
Update dev-data and clk-data to include wake-up I2C device for J722s. Signed-off-by: Chintan Vankar <[email protected]> Tested-by: Richard Genoud <[email protected]>
2026-02-19arch: imx8qxp: Override weak fb_mmc_get_boot_offset functionAdrian Freihofer
Add IMX8QXP SoCs specific implementation of fb_mmc_get_boot_offset() This is needed as bootloader offset is different dependent on SoC revision! For revision B0 the bootloader starts at 32k offset. On offset 0x0 the bootloaders environment is stored. On C0 revisions of the SoC bootloader image starts at offset 0x0 Signed-off-by: Adrian Freihofer <[email protected]> Signed-off-by: Heiko Schocher <[email protected]> Reviewed-by: Mattijs Korpershoek <[email protected]> Acked-by: Fabio Estevam <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mattijs Korpershoek <[email protected]>
2026-02-18Merge patch series "test: cmd: Add test for zip/unzip/gzwrite commands"Tom Rini
Marek Vasut <[email protected]> says: Enable zip command in sandbox so it is always build tested. Add simple test for zip/unzip/gzwrite commands so they are unit tested. Link: https://lore.kernel.org/r/[email protected]
2026-02-18test: cmd: Add test for zip/unzip/gzwrite commandsMarek Vasut
Add simple test for zip/unzip/gzwrite commands. The test works as follows. First, create three buffers with a bit of space between each of them, fill them with random data, then compress data in buffer 1 into buffer 2, decompress data in buffer 2 either directly into buffer 3 or into MMC 1 and then read them back into buffer 3, and finally compare buffer 1 and buffer 3, they have to be identical. The buffers are filled with random data to detect out of bounds writes. Test for various sizes, both small and large and unaligned. The test uses ut_assert_skip_to_line() to skip over gzwrite progress bar. Since the progress bar updates fill up the console record buffer, increase the size of it to compensate. Reviewed-by: Mattijs Korpershoek <[email protected]> Tested-by: Mattijs Korpershoek <[email protected]> Signed-off-by: Marek Vasut <[email protected]>
2026-02-18arm: dts: k3-am64-phycore-som-ddr4: Update DDR timingsWadim Egorov
Update DDR timings to increase stability in higher temperature ranges. Update DDR settings: - SysConfig DDR tool v0.09.05 - Package: ALV - Extended temperature range -40C to 105C - Lower tREFI (ns) to 3900 Signed-off-by: Wadim Egorov <[email protected]> Tested-by: Daniel Schultz <[email protected]>
2026-02-18Merge patch series "arm: dts: mt7622: use generic node names"Tom Rini
David Lechner <[email protected]> says: While compile-testing things to make sure I wasn't breaking other platforms when making mach-wide changes for mediatek, I kept getting a warning about a a SPI controller node with the wrong name in mt7622.dtsi. The first patch addresses this. And since we are here, I added a second patch to generic names in general in that file even if they aren't causing warnings. Link: https://lore.kernel.org/r/20260209-mtk-dtb-fix-spi-bus-bridge-warning-v1-0-84e3e2d8352d@baylibre.com
2026-02-18arm: dts: mt7622: Use generic node namesDavid Lechner
Replace node names in mt7622.dtsi with generic names. This makes it more consistent with the upstream bindings. Signed-off-by: David Lechner <[email protected]>
2026-02-18arm: dts: mt7622: Fix SPI bus bridge warningDavid Lechner
Change SPI node name to generic "spi" in mt7622.dtsi. This fixes the following compile warning: w+../arch/arm/dts/mt7622.dtsi:56.22-65.4: Warning (spi_bus_bridge): /snor@11014000: node name for SPI buses should be 'spi' w+arch/arm/dts/mt7622-rfb.dtb: Warning (spi_bus_reg): Failed prerequisite 'spi_bus_bridge' Signed-off-by: David Lechner <[email protected]>
2026-02-18Merge patch series "Add MT8195 support"Tom Rini
Julien Stephan <[email protected]> says: This series adds basic support for Mediatek soc MT8195: - clock driver - watchdog - add a new macro helper to define gate clock. Other driver can be cleaned later to use the new macro Other driver will be added later. It will also serve as basis for board support such as MT8395_EVK based on MT8195. Link: https://lore.kernel.org/r/[email protected]
2026-02-18arm: mediatek: add support for MediaTek MT8195 SoCJulien Stephan
This adds basic support for MediaTek MT8195 SoC. Add watchdog support by adding upstream compatible string. Signed-off-by: Julien Stephan <[email protected]>
2026-02-18Merge patch series "arm: mediatek: clean up some redundant board init"Tom Rini
David Lechner <[email protected]> says: Before adding more targets, we take a moment to clean up some some redundant code in existing Mediatek SoC support. The first three patches are removing no-op functions. The last patch generalizes the mem_map code so that it can be shared between all Mediatek ARMv8 SoCs. Link: https://lore.kernel.org/r/20260209-mtk-mach-clean-up-duplicates-v2-0-e3b22282c74d@baylibre.com
2026-02-18arm: mediatek: add CONFIG_MTK_MEM_MAP_DDR_BASE_PHYDavid Lechner
Add a CONFIG_MTK_MEM_MAP_DDR_BASE_PHY variable to specify the DDR base physical address for the Mediatek ARMv8 memory map. This will be used by MT8196 in the future which has a different DDR base address than other Mediatek SoCs. Signed-off-by: David Lechner <[email protected]> Reviewed-by: Macpaul Lin <[email protected]>
2026-02-18arm: mediatek: consolidate ARMv8 memory mapsDavid Lechner
Consolidate all mem_map definitions for MediaTek ARMv8 platforms into a single file. The size of the DDR and MMIO regions can vary, so Kconfig options are added to configure them by target. Signed-off-by: David Lechner <[email protected]>
2026-02-18arm: mediatek: make mtk_pll_early_init() staticDavid Lechner
Make the mtk_pll_early_init() function static in several files. It is only used within those files, so there is no need to have it in the global namespace. Reviewed-by: Macpaul Lin <[email protected]>
2026-02-18arm: mediatek: mt8183: remove unused functionDavid Lechner
Remove the mtk_pll_early_init() function as it is not used anywhere. Signed-off-by: David Lechner <[email protected]> Reviewed-by: Macpaul Lin <[email protected]>
2026-02-18arm: mediatek: use default weak mtk_soc_early_init()David Lechner
Add a weak default implementation of mtk_soc_early_init() in spl.c to avoid having to define it in every SoC init.c file that does not need any additional early initialization. The init.h header file is no longer needed in this case and is removed. Signed-off-by: David Lechner <[email protected]>
2026-02-18Merge patch series "Implement all missing SMBIOS types required by distro ↵Tom Rini
tooling" Raymond Mao <[email protected]> says: From: Raymond Mao <[email protected]> This series finish the last missing puzzle of required SMBIOS types by: 1) Fixing duplicated handles when multiple instances exist in one type; 2) Implementing the rest of required types 9/16/17/19; 3) Adding version control when printing properties for all types. Type 9/16/17/19 are generally DT-based, the idea is to write these tables using a hybrid approach: Explicit DT definitions under existing '/smbios/smbios' take precedence, with fallback to scan and interpret values from the entire DT. Moreover, all below APIs: smbios_get_val_si() smbios_get_u64_si() smbios_add_prop_si() are on top of sysinfo, thus allow vendors to get values from other subsystems by implementing their own sysinfo driver if needed. Link: https://lore.kernel.org/r/[email protected]
2026-02-18smbios: add support for dynamic generation of Type 19 tableRaymond Mao
This commit implements SMBIOS Type 19 (Memory Array Mapped Address) generation with a hybrid approach supporting both: 1. Explicit definition via Device Tree 'smbios' node: Child node under '/smbios/smbios/memory-array-mapped-address' will be used to populate as individual Type 19 structure directly. - Properties follow SMBIOS field names with lowercase letters and hyphen-separated words (e.g., 'starting-address', 'ending-address', 'partition-width', etc.). - This method supports precise platform-defined overrides and system descriptions. 2. Fallback to automatic DT-based discovery: If child node under '/smbios/smbios/memory-array-mapped-address' does not exist, the implementation will: - Scan all top-level 'memory@' nodes to populate Type 19 structure with inferred size and location data. - Scan nodes named or marked as 'memory-controller' and parse associated 'dimm@' subnodes (if present) to extract DIMM sizes and map them accordingly. This dual-mode support enables flexible firmware SMBIOS reporting while aligning with spec-compliant naming and runtime-detected memory topology. Type 19 support is under GENERATE_SMBIOS_TABLE_VERBOSE to avoid increasing rom size for those platforms which only require basic SMBIOS support. Signed-off-by: Raymond Mao <[email protected]> Tested-by: Ilias Apalodimas <[email protected]>
2026-02-18smbios: add support for dynamic generation of Type 17 tableRaymond Mao
This commit implements SMBIOS Type 17 (Memory Device) generation with a hybrid approach supporting both: 1. Explicit definition via Device Tree 'smbios' node: Child node under '/smbios/smbios/memory-device' will be used to populate as individual Type 17 structure directly. - Properties follow SMBIOS field names with lowercase letters and hyphen-separated words (e.g., 'physical-memory-array-handle', ' memory-error-information-handle', 'configured-memory-speed', etc.). - This method supports precise platform-defined overrides and system descriptions. 2. Fallback to automatic DT-based discovery: If child node under '/smbios/smbios/memory-device' does not exist, the implementation will: - Scan all top-level 'memory@' nodes to populate Type 17 structure with inferred size and location data. - Scan nodes named or marked as 'memory-controller' and parse associated 'dimm@' subnodes (if present) to extract DIMM sizes and map them accordingly. This dual-mode support enables flexible firmware SMBIOS reporting while aligning with spec-compliant naming and runtime-detected memory topology. Type 17 support is under GENERATE_SMBIOS_TABLE_VERBOSE to avoid increasing rom size for those platforms which only require basic SMBIOS support. Signed-off-by: Raymond Mao <[email protected]> Tested-by: Ilias Apalodimas <[email protected]>
2026-02-18smbios: add support for dynamic generation of Type 16 tableRaymond Mao
This commit implements SMBIOS Type 16 (Physical Memory Array) generation with a hybrid approach supporting both: 1. Explicit definition via Device Tree 'smbios' node: Child node under '/smbios/smbios/memory-array' will be used to populate as individual Type 16 structure directly. - Properties follow SMBIOS field names with lowercase letters and hyphen-separated words (e.g., 'memory-error-correction', 'maximum-capacity', 'extended-maximum-capacity', etc.). - This method supports precise platform-defined overrides and system descriptions. 2. Fallback to automatic DT-based discovery: If child node under '/smbios/smbios/memory-array' does not exist, the implementation will: - Scan all top-level 'memory@' nodes to populate Type 16 structure with inferred size and location data. - Scan nodes named or marked as 'memory-controller' and parse associated 'dimm@' subnodes (if present) to extract DIMM sizes and map them accordingly. This dual-mode support enables flexible firmware SMBIOS reporting while aligning with spec-compliant naming and runtime-detected memory topology. Type 16 support is under GENERATE_SMBIOS_TABLE_VERBOSE to avoid increasing rom size for those platforms which only require basic SMBIOS support. Signed-off-by: Raymond Mao <[email protected]> Tested-by: Ilias Apalodimas <[email protected]>
2026-02-18smbios: add support for dynamic generation of Type 9 system slot tablesRaymond Mao
This commit introduces support for generating SMBIOS Type 9 (System Slot) tables using a hybrid approach: 1. Explicit Device Tree definitions: Child node under '/smbios/smbios/system-slot' will be interpreted as individual slot definitions. - Each child represents a slot (e.g., isa, pcmcia, etc.). - Properties follow the SMBIOS specification using lowercase hyphen-separated names such as 'slot-type', 'slot-id', 'segment-group-number', 'bus-number', 'slot-information', etc. - This approach allows full customization of each system slot and is especially suitable for platforms with well-defined slot topology. 2. Automatic detection fallback: If child node under '/smbios/smbios/system-slot' does not exist, the implementation will scan the entire device tree for nodes whose 'device_type' matches known slot-related types ("pci", "isa", "pcmcia", etc.). - When a match is found, default values or heuristics are applied to populate to the System Slot table. - This mode is useful for platforms that lack explicit SMBIOS nodes but still expose slot topology via standard DT conventions. Together, two approaches ensure that SMBIOS Type 9 entries are available whether explicitly described or automatically derived. Signed-off-by: Raymond Mao <[email protected]> Tested-by: Ilias Apalodimas <[email protected]>
2026-02-17Merge patch series "treewide: Clean up usage of DECLARE_GLOBAL_DATA_PTR"Tom Rini
Peng Fan (OSS) <[email protected]> says: This patch set primarily removes unused DECLARE_GLOBAL_DATA_PTR instances. Many files declare DECLARE_GLOBAL_DATA_PTR and include asm/global_data.h even though gd is never used. In these cases, asm/global_data.h is effectively treated as a proxy header, which is not a good practice. Following the Include What You Use principle, files should include only the headers they actually depend on, rather than relying on global_data.h indirectly. This approach is also adopted in Linux kernel [1]. The first few patches are prepartion to avoid building break after remove the including of global_data.h. A script is for filtering the files: list=`find . -name "*.[ch]"` for source in ${list} do result=`sed -n '/DECLARE_GLOBAL_DATA_PTR/p' ${source}` if [ "${result}" == "DECLARE_GLOBAL_DATA_PTR;" ]; then echo "Found in ${source}" result=`sed -n '/\<gd\>/p' ${source}` result2=`sed -n '/\<gd_/p' ${source}` result3=`sed -n '/\<gd->/p' ${source}` if [ "${result}" == "" ] && [ "${result2}" == "" ] && [ "${result3}" == "" ];then echo "Cleanup ${source}" sed -i '/DECLARE_GLOBAL_DATA_PTR/{N;/\n[[:space:]]*$/d;s/.*\n//;}' ${source} sed -i '/DECLARE_GLOBAL_DATA_PTR/d' ${source} sed -i '/global_data.h/d' ${source} git add ${source} fi fi done [1] https://lpc.events/event/17/contributions/1620/attachments/1228/2520/Linux%20Kernel%20Header%20Optimization.pdf CI: https://github.com/u-boot/u-boot/pull/865 Link: https://lore.kernel.org/r/[email protected]