summaryrefslogtreecommitdiff
path: root/board/nxp
AgeCommit message (Collapse)Author
13 daysboard: nxp: common: support CONFIG_FSL_USE_PCA9547_MUXVincent Jardin
Use select_i2c_ch_pca9547() only when CONFIG_FSL_USE_PCA9547_MUX is set, but several call in board/nxp/lx2160a/lx2160a.c invoke it unconditionally, or using unrelated Kconfigs (CONFIG_EMC2305, CONFIG_VID). Compilation with LX2160A target that omits the mux therefore fails with error: implicit declaration of function 'select_i2c_ch_pca9547' Add a static inline stub with -EOPNOTSUPP for the !CONFIG_FSL_USE_PCA9547_MUX case so all cases compile cleanly. Adapted from the convention used by include/scmi_nxp_protocols.h for SCMI subprotocol stubs. There is no functional change for NXP boards: all eight upstream LX2160A defconfigs (lx2160ardb / lx2160aqds / lx2162aqds and their secure / stmm / verified_boot variants) already set CONFIG_FSL_USE_PCA9547_MUX=y, so the real declaration wins. The purpose is to support new boards that do not use the PCA9547. Signed-off-by: Vincent Jardin <[email protected]> Reviewed-by: Peng Fan <[email protected]> Signed-off-by: Peng Fan <[email protected]>
13 daysboard: nxp: lx2160a: without QIXIS, MC-ENET, PCI, LTC3882Vincent Jardin
The shared LX2160A board file calls helpers that only exist when their subsystem is enabled. Gate them on the matching CONFIG_*: - pci_init() under CONFIG_PCI. - fdt_fixup_mc_ddr() and fsl_rgmii_init() under CONFIG_FSL_MC_ENET. - qixis_*() and the QIXIS branch of checkboard() under CONFIG_FSL_QIXIS; cpu_name(buf) moves out so the non-QIXIS path still prints "Board: <name>". - EVENT_SPY_SIMPLE on init_func_vid moves inside the CONFIG_VOL_MONITOR_LTC3882_READ guard (was outside, dangling symbol when LTC3882 off). #if / #ifdef, not IS_ENABLED(), because the helpers are themselves conditionally compiled. While here, lx2160a_common.h: fix BOOT_TARGET_DEVICES_MMC 1 arg vs 2 args and gate the MMC target on CONFIG_CMD_MMC, not CONFIG_MMC. No functional change for NXP boards: LX2160ARDB, LX2160AQDS, or LX2162AQDS, but mainly build clean up in order to support other NXP lx2160a boards without those HW dependencies. Signed-off-by: Vincent Jardin <[email protected]> Signed-off-by: Peng Fan <[email protected]>
13 daysboard: nxp: Fix OOB read in ft_board_setupFrancois Berder
base and size arrays can both contain up to total_memory_banks elements. This commit fixes the for loop condition to ensure that it does not attempt to read past the end of both arrays. Signed-off-by: Francois Berder <[email protected]> Signed-off-by: Peng Fan <[email protected]>
13 daysp2041rdb: convert README to rstMichael Walle
Convert the README to reST format. Signed-off-by: Michael Walle <[email protected]> Signed-off-by: Peng Fan <[email protected]>
13 daysp2041rdb: update README and fix typosMichael Walle
Nowadays, u-boot can build the pbl image itself. Refer to that image in the documentation. Also fix some typos. Signed-off-by: Michael Walle <[email protected]> Signed-off-by: Peng Fan <[email protected]>
13 daysp2041rdb: support SDcard bootMichael Walle
The RCW was just supporting SPI boot. Add a second one for the SDcard boot. While at it, use the same naming scheme as for the other NXP boards. Signed-off-by: Michael Walle <[email protected]> Signed-off-by: Peng Fan <[email protected]>
13 daysboards/nxp: remove empty fdt_fixup_board_enet()Michael Walle
Remove any empty function which is just called by the board code. There is no need to define this function at all. Signed-off-by: Michael Walle <[email protected]> Signed-off-by: Peng Fan <[email protected]>
13 daysboards/nxp: remove board_eth_init()Michael Walle
board_eth_init() is dead code since commit e524f3a449f5 ("net: Remove eth_legacy.c"). Remove it. I'm not sure, all the shenanigans are covered by the new DM-version. The MDIO mux and iomux controls probably are. The fman configuration probably isn't. OTOH, nobody cared for years and the called fm_info_set_phy_address() was also removed years ago. This also removes fdt_fixup_board_enet() for the ls1043a and ls1046a because it relies on the local variable "mdio_mux" being initialized by the board_eth_init(). Signed-off-by: Michael Walle <[email protected]> Signed-off-by: Peng Fan <[email protected]>
13 daysboards: remove dead fman codeMichael Walle
Commit cc2bf624eb71 ("net: fm: Remove non-DM_ETH code") removed the call to board_ft_fman_fixup_port(). Thus remove the dead code in the board files. I'm not sure, all that DT shenanigans are covered by the new DM-version of the fman code, but it seems no one complained for the past 4 years. Signed-off-by: Michael Walle <[email protected]> Signed-off-by: Peng Fan <[email protected]>
2026-05-14i2c: Remove legacy CONFIG_SYS_I2C_SOFTTom Rini
The last users of this legacy i2c stack have been removed or converted to a modern part of the stack instead. Remove this code and references to it. Signed-off-by: Tom Rini <[email protected]> Reviewed-by: Heiko Schocher <[email protected]>
2026-04-27Merge patch series "net: migrate NO_NET out of the networking stack choice"Tom Rini
Quentin Schulz <[email protected]> says: This migrates the net options away from the main Kconfig to net/Kconfig, rename the current NET option to NET_LEGACY to really highlight what it is and hopefully encourage more people to use lwIP, add a new NET menuconfig (but keep NO_NET as an alias to NET=n for now) which then allows us to replace all the "if legacy_stack || lwip_stack" checks with "if net_support" which is easier to read and maintain. The only doubt I have is wrt SYS_RX_ETH_BUFFER which seems to be needed for now even when no network is configured? Likely due to include/net-common.h with PKTBUFSRX? No change in behavior is intended. Only change in defconfig including other defconfigs where NO_NET=y or NET is not set, in which case NO_NET is not set or NET=y should be set in the top defconfig. Similar change required for config fragments. See commit log in patch adding NET menuconfig for details. This was tested based on 70fd0c3bb7c2 ("x86: there is no CONFIG_UBOOT_ROMSIZE_KB_12288"), from within the GitLab CI container trini/u-boot-gitlab-ci-runner:noble-20251013-23Jan2026 and set up similarly as in "build all platforms in a single job" GitLab CI job. #!/usr/bin/env bash set -o pipefail set -eux ARGS="-BvelPEWM --reproducible-builds --step 0" ./tools/buildman/buildman -o ${O} --force-build $ARGS -CE $* ./tools/buildman/buildman -o ${O} $ARGS -Ssd $* O=../build/u-boot/ ../u-boot.sh -b master^..b4/net-kconfig |& tee ../log.txt I can't really decipher the log.txt, but there's no line starting with + which would be an error according to tools/buildman/builder.py help text. Additionally, because I started the script with set -e set and because buildman has an exit code != 0 when it fails to build a board, and I have the summary printed (which is the second buildman call), I believe it means all builds passed. The summary is the following: aarch64: (for 537/537 boards) all +0.0 rodata +0.0 uniphier_v8 : all +1 rodata +1 u-boot: add: 0/0, grow: 1/0 bytes: 1/0 (1) function old new delta data_gz 10640 10641 +1 arm: (for 733/733 boards) all -0.0 rodata -0.0 uniphier_v7 : all -1 rodata -1 u-boot: add: 0/0, grow: 0/-1 bytes: 0/-1 (-1) function old new delta data_gz 11919 11918 -1 opos6uldev : all -3 rodata -3 u-boot: add: 0/0, grow: 0/-1 bytes: 0/-3 (-3) function old new delta data_gz 18778 18775 -3 uniphier_ld4_sld8: all -3 rodata -3 u-boot: add: 0/0, grow: 0/-1 bytes: 0/-3 (-3) function old new delta data_gz 11276 11273 -3 stemmy : all -20 rodata -20 u-boot: add: 0/0, grow: 0/-1 bytes: 0/-20 (-20) function old new delta data_gz 15783 15763 -20 As far as I could tell this data_gz is an automatically generated array when CONFIG_CMD_CONFIG is enabled. It is the compressed .config stored in binary form. Because I'm changing the name of symbols, replacing a menu with a menuconfig, additional text makes it to .config and the "# Networking" section in .config disappears. Here is the diff for the 5 defconfigs listed above, generated with: for f in build/*-m; do diff --unified=0 $f/.config $(dirname $f)/$(basename -a -s '-m' $f)/.config done (-m is the build directory for master, and without the suffix, it's the top commit of this series) """ --- build/opos6uldev-m/.config 2026-04-20 10:53:49.804528526 +0200 +++ build/opos6uldev/.config 2026-04-20 11:03:37.430242767 +0200 @@ -970,4 +969,0 @@ - -# -# Networking -# @@ -975,0 +972 @@ +CONFIG_NET_LEGACY=y --- build/stemmy-m/.config 2026-04-20 11:01:33.653698123 +0200 +++ build/stemmy/.config 2026-04-20 11:04:53.452577311 +0200 @@ -733,4 +732,0 @@ - -# -# Networking -# @@ -738,2 +733,0 @@ -# CONFIG_NET is not set -# CONFIG_NET_LWIP is not set --- build/uniphier_ld4_sld8-m/.config 2026-04-20 11:00:41.605469071 +0200 +++ build/uniphier_ld4_sld8/.config 2026-04-20 11:04:22.226439899 +0200 @@ -997,4 +996,0 @@ - -# -# Networking -# @@ -1002,0 +999 @@ +CONFIG_NET_LEGACY=y --- build/uniphier_v7-m/.config 2026-04-20 10:53:04.019307319 +0200 +++ build/uniphier_v7/.config 2026-04-20 11:03:01.688085486 +0200 @@ -1004,4 +1003,0 @@ - -# -# Networking -# @@ -1009,0 +1006 @@ +CONFIG_NET_LEGACY=y --- build/uniphier_v8-m/.config 2026-04-20 10:43:05.614441175 +0200 +++ build/uniphier_v8/.config 2026-04-20 10:41:03.214852130 +0200 @@ -875,4 +874,0 @@ - -# -# Networking -# @@ -880,0 +877 @@ +CONFIG_NET_LEGACY=y """ This is fine: - Networking menu doesn't exist anymore so "#\n# Networking\n#\n" won't be in .config anymore. - opos6uldev, uniphier_ld4_sld8, uniphier_v7 and uniphier_v8 all have (old) CONFIG_NET enabled, (new) CONFIG_NET will still be set but CONFIG_NET_LEGACY also needs to be defined now to reflect the stack choice (even if default), - stemmy has CONFIG_NO_NET set, which means CONFIG_NET and CONFIG_NET_LWIP are not reachable anymore hence why they don't need to be part of .config, GitLab CI was run on this series (well, not exactly, but it's only changes to the git logs that were made): https://source.denx.de/u-boot/contributors/qschulz/u-boot/-/pipelines/29849 It passes. Link: https://lore.kernel.org/r/[email protected]
2026-04-27rename NET to NET_LEGACYQuentin Schulz
Highlight that NET really is the legacy networking stack by renaming the option to NET_LEGACY. This requires us to add an SPL_NET_LEGACY alias to SPL_NET as otherwise CONFIG_IS_ENABLED(NET_LEGACY) will not work for SPL. The "depends on !NET_LWIP" for SPL_NET clearly highlights that it is using the legacy networking app so this seems fine to do. This also has the benefit of removing potential confusion on NET being a specific networking stack instead of "any" network stack. Signed-off-by: Quentin Schulz <[email protected]> Acked-by: Ilias Apalodimas <[email protected]> Reviewed-by: Peter Robinson <[email protected]> Reviewed-by: Tom Rini <[email protected]>
2026-04-21imx8mq: evk: Migrate to DM PMIC frameworkPeng Fan
Migrate the i.MX8MQ EVK board to the Driver Model (DM) PMIC framework. This replaces legacy PMIC handling with DM_PMIC and enables proper device-model support during SPL. As part of this transition, enable CONFIG_SPL_DM and the required DM subsystems such as I2C, PINCTRL, MMC, GPIO, and regulators so the SPL boot flow continues to work correctly. Board-specific SPL code is simplified accordingly by removing legacy I2C, USDHC, and PMIC handling, relying instead on device tree descriptions and DM drivers. Signed-off-by: Peng Fan <[email protected]>
2026-04-21board: nxp: common: fix PFUZE100 DM build and unify DM/non-DM handlingPeng Fan
Switch PFUZE100 object linkage to be phase-aware and fix build issues when using driver model PMIC support. The PFUZE100 helper code is reworked to: - Build pfuze.o only when CONFIG_(SPL_)DM_PMIC_PFUZE100 is enabled - Use CONFIG_IS_ENABLED(DM_PMIC_PFUZE100) for proper DM/non-DM selection - Align function signatures and implementations with DM PMIC APIs - Use udevice-based pmic access for DM and legacy pmic for non-DM - Avoid mixing struct pmic and struct udevice in the same build configuration No functional change intended beyond fixing DM support and build consistency. Signed-off-by: Peng Fan <[email protected]>
2026-04-21mx6: sabreauto/sd: Exclude power_init_board from SPL buildPeng Fan
To mx6sabreauto and mx6sabresd, power_init_board is called in board_r phase. After CONFIG_SPL_DM_PMIC_PFUZE100 included, there will be build error to build power_init_board() when CONFIG_SPL_DM_PMIC_PFUZE100 is not enabled. Signed-off-by: Peng Fan <[email protected]>
2026-04-21imx8mq: evk: drop redundant gd clearing in board_init_fPeng Fan
The global data (gd) area is already zeroed in board_init_f_init_reserve() before board_init_f() is called. Remove the duplicate gd clearing from board_init_f(). Signed-off-by: Peng Fan <[email protected]>
2026-04-02mx6ullevk: Drop unnecessary BOARD_EARLY_INIT_F usageTom Rini
This platform enables CONFIG_BOARD_EARLY_INIT_F and then has a do-nothing board_early_init_f function. Change to not enabling the option and so not needing an empty function. Signed-off-by: Tom Rini <[email protected]> Reviewed-by: Peng Fan <[email protected]>
2026-04-02mx6sxsabreauto: Drop unnecessary BOARD_EARLY_INIT_F usageTom Rini
This platform enables CONFIG_BOARD_EARLY_INIT_F and then has a do-nothing board_early_init_f function. Change to not enabling the option and so not needing an empty function. Signed-off-by: Tom Rini <[email protected]> Reviewed-by: Peng Fan <[email protected]>
2026-04-02mx6sllevk: Drop unnecessary BOARD_EARLY_INIT_F usageTom Rini
This platform enables CONFIG_BOARD_EARLY_INIT_F and then has a do-nothing board_early_init_f function. Change to not enabling the option and so not needing an empty function. Signed-off-by: Tom Rini <[email protected]> Reviewed-by: Peng Fan <[email protected]>
2026-04-02imx93_frdm: Drop unnecessary BOARD_EARLY_INIT_F usageTom Rini
This platform enables CONFIG_BOARD_EARLY_INIT_F and then has a do-nothing board_early_init_f function. Change to not enabling the option and so not needing an empty function. Signed-off-by: Tom Rini <[email protected]>
2026-04-02imx8ulp_evk: Drop unnecessary BOARD_EARLY_INIT_F usageTom Rini
This platform enables CONFIG_BOARD_EARLY_INIT_F and then has a do-nothing board_early_init_f function. Change to not enabling the option and so not needing an empty function. Signed-off-by: Tom Rini <[email protected]> Reviewed-by: Peng Fan <[email protected]>
2026-03-16imx94_evk: Get ownership of XSPI control registers protected by GMID in SPLYe Li
To gain access to certain registers that are protected by GMID, the SPL must release XSPI ownership to the current core. Signed-off-by: Ye Li <[email protected]> Signed-off-by: Alice Guo <[email protected]> Reviewed-by: Peng Fan <[email protected]>
2026-03-16board: nxp: imx952_evk: Add i.MX952 15x15 lpddr4x board supportPeng Fan
Add support for i.MX952 15x15 lpddr4x board support. Signed-off-by: Peng Fan <[email protected]> Signed-off-by: Ye Li <[email protected]> Signed-off-by: Alice Guo <[email protected]>
2026-03-16imx95/imx94: Remove board_phys_sdram_size from each boardYe Li
Change to use default board_phys_sdram_size implementation in soc.c, which will call SM API to get DDR size. If board has special implementation for DDR size, then board_phys_sdram_size could be implemented in board file to override the default one in soc.c. Signed-off-by: Ye Li <[email protected]> Signed-off-by: Alice Guo <[email protected]> Reviewed-by: Peng Fan <[email protected]>
2026-02-28nxp: imx8mp_evk: Add board_mmc_get_env_devPeng Fan
When booting from eMMC, there is error log: MMC: FSL_SDHC: 1, FSL_SDHC: 2 Loading Environment from MMC... MMC: no card present Add board_mmc_get_env_dev() to get the correct device number. Signed-off-by: Peng Fan <[email protected]>
2026-02-28nxp: imx8m[m,p]_evk: Drop init_uart_clkPeng Fan
Both the two boards have clk framework enabled, so rely on serial driver calling clk_enable to enable the uart clk. Signed-off-by: Peng Fan <[email protected]>
2026-02-23board: Correct usage of fdtfile=CONFIG_DEFAULT_FDT_FILETom Rini
As explained in commit 03d2d5fc003f ("board: sifive: unmatched: set fdtfile with unquoted variable.") using the syntax of 'fdtfile=CONFIG_DEFAULT_FDT_FILE' in the plain text environment files will lead to extraneous and problematic "s in the output. This is fixed by using fdtfile=DEFAULT_FDT_FILE which was introduced recently. Acked-by: Peng Fan <[email protected]> Signed-off-by: Tom Rini <[email protected]>
2026-02-17treewide: Clean up DECLARE_GLOBAL_DATA_PTR usagePeng Fan
Remove DECLARE_GLOBAL_DATA_PTR from files where gd is not used, and drop the unnecessary inclusion of asm/global_data.h. Headers should be included directly by the files that need them, rather than indirectly via global_data.h. Reviewed-by: Patrice Chotard <[email protected]> #STMicroelectronics boards and STM32MP1 ram test driver Tested-by: Anshul Dalal <[email protected]> #TI boards Acked-by: Yao Zi <[email protected]> #TH1520 Signed-off-by: Peng Fan <[email protected]>
2026-02-17nxp: emc2305: Cleanup headersPeng Fan
There is no user of gd, drop the usage of DECLARE_GLOBAL_DATA_PTR and the including of "asm/global_data.h". Include config.h to avoid build error. Signed-off-by: Peng Fan <[email protected]>
2026-02-06nxp: imx94_evk: Drop init_uart_clkPeng Fan
Rely on serial driver calling clk_enable to enable the lpuart clk, no need to do init_uart_clk in board_early_init_f(). Also remove board_early_init_f(), because it is empty now. Signed-off-by: Peng Fan <[email protected]>
2026-02-06nxp: imx95_evk: Drop init_uart_clkPeng Fan
Rely on serial driver calling clk_enable to enable the lpuart clk, no need to do init_uart_clk in board_early_init_f(). Also remove board_early_init_f(), because it is empty now. Signed-off-by: Peng Fan <[email protected]>
2026-02-06imx93_frdm: Update IMX_BOOT_IMAGE_GUIDPeng Fan
Reusing IMX_BOOT_IMAGE_GUID from i.MX93 EVK is wrong. The ID is per board, so regenerate one using uuidgen. Signed-off-by: Peng Fan <[email protected]>
2026-02-06imx93_frdm: Drop DECLARE_GLOBAL_DATA_PTRPeng Fan
There is no user of "gd", so drop DECLARE_GLOBAL_DATA_PTR. Signed-off-by: Peng Fan <[email protected]>
2026-02-06imx8mq_evk: spl: Drop DECLARE_GLOBAL_DATA_PTRPeng Fan
There is no user of "gd", so drop DECLARE_GLOBAL_DATA_PTR. Signed-off-by: Peng Fan <[email protected]>
2026-02-06imx8ulp_evk: Cleanup headersPeng Fan
Drop unused headers and sort them. Signed-off-by: Peng Fan <[email protected]>
2026-02-06imx8ulp_evk: Drop board_phy_configPeng Fan
There is already a weak function in drivers/net/phy/phy.c, which does the same thing. So drop it. Signed-off-by: Peng Fan <[email protected]>
2026-02-06imx8ulp_evk: Drop DECLARE_GLOBAL_DATA_PTRPeng Fan
There is no user of "gd", so drop DECLARE_GLOBAL_DATA_PTR. Signed-off-by: Peng Fan <[email protected]>
2026-02-06imx8mn_evk: Cleanup headersPeng Fan
Drop unused headers and sort them. Signed-off-by: Peng Fan <[email protected]>
2026-02-06imx8mn_evk: spl: Drop DECLARE_GLOBAL_DATA_PTRPeng Fan
There is no user of "gd", so drop DECLARE_GLOBAL_DATA_PTR. Signed-off-by: Peng Fan <[email protected]>
2026-02-06imx8mp_evk: Cleanup headersPeng Fan
Drop unused headers and sort them. Signed-off-by: Peng Fan <[email protected]>
2026-02-06imx8mp_evk: spl: Drop DECLARE_GLOBAL_DATA_PTRPeng Fan
There is no user of "gd", so drop DECLARE_GLOBAL_DATA_PTR. Signed-off-by: Peng Fan <[email protected]>
2026-02-06imx8mp_evk: spl: Drop i2c_pad_info1Peng Fan
With commit 6e6492c85def ("imx8mp_evk: Convert to DM_PMIC"), i2c_pad_info1 is no longer needed, remove it. Signed-off-by: Peng Fan <[email protected]>
2026-02-06imx8mm_evk: Drop DECLARE_GLOBAL_DATA_PTRPeng Fan
There is no user of "gd", so drop DECLARE_GLOBAL_DATA_PTR. Signed-off-by: Peng Fan <[email protected]>
2026-01-28board: nxp: Rename board directory from board/freescale to board/nxpAlice Guo
This patch renames the board directory from board/freescale to board/nxp because NXP now provides Board Support Packages (BSPs) and tools for the former Freescale i.MX and other i.MX products. All relevant references have been updated accordingly. This change does not affect functionality. Signed-off-by: Alice Guo <[email protected]> Reviewed-by: Fabio Estevam <[email protected]>