summaryrefslogtreecommitdiff
path: root/board/siemens
AgeCommit message (Collapse)Author
5 daysrename 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-02-28siemens: capricorn: rework bootcmd environment variablesAdrian Freihofer
Rework the boot state machine to a significantly simpler and more robust implementation. The basic idea is to revert to the previous partition whenever an issue is detected during the boot process. - Broken SPL If one of the two SPLs does not boot, the ROM code of the i.MX8 SoC automatically starts the second SPL from the second boot partition. For example, if the system's active partition is A but the SPL from partition A is broken, the ROM code automatically uses the SPL/u-boot from partition B. Proceeding with this boot procedure would lead to booting the kernel/ rootfs from partition A, which could potentially successfully boot the system and allow the user to apply the firmware update with the broken SPL again. This would lead to a non-bootable system because the second update would overwrite the last working bootloader. To prevent such situations, zigzag boots are detected and the system reverts to the previous partition rather than booting the kernel/rootfs from the currently active partition. Detecting zigzag boots is done via the new fallback variable. To make this state machine even more consistent, the partitionset_active variable is no longer used to determine the active partition during boot. Instead, the active partition is always read from the eMMC partconf registers. For backward compatibility, the partitionset_active variable is still updated whenever a partition switch occurs. However, u-boot no longer relies on this variable, as it could potentially be out of sync with the actual partition state, leading to situations where the ROM code of the i.MX8 SoC would be out of sync with u-boot. - Broken kernel, initramfs or rootfs If the upgrade_available variable is set, u-boot counts the number of consecutive boots via the bootcount variable. If the bootcount exceeds the bootlimit variable, u-boot starts the altbootcmd instead of the bootcmd. Previously, this logic was bypassed by assigning the regular bootcmd to altbootcmd. Now, the altbootcmd is used to revert to the previous partition when the bootlimit is exceeded. The netdev variable is changed to eth0 by default. This is what the FEC driver uses on Capricorn boards. For devices with switches and DSA subsystems in use, the netdev should be set accordingly by additional logic in the environment or u-boot code. This is not part of this commit. Signed-off-by: Adrian Freihofer <[email protected]> Signed-off-by: Heiko Schocher <[email protected]> Reviewed-by: Peng Fan <[email protected]>
2026-02-28siemens: capricorn: fix fallback bootm call for fitImageWalter Schweizer
When dtb_name is missing or a configuration is missing, try to boot the default configuration in the image. The call to bootm needs the correct loadaddr to succeed. Fixes booting when factoryset is missing. Signed-off-by: Walter Schweizer <[email protected]> Reviewed-by: Peng Fan <[email protected]>
2026-02-28siemens: capricorn: always detect emmc deviceHeiko Schocher
drop Environment variable mmcautodetect and the board logic behind it, as we want always to autodetct the emmc device. Signed-off-by: Heiko Schocher <[email protected]> Reviewed-by: Peng Fan <[email protected]>
2026-02-28siemens: capricorn: add logic to U-Boot to avoid zig-zag bootHeiko Schocher
add logic in board code for detecting the real boot partition and set a local hush shell variable fallback which can be used later in boot variables for detecting a ROM bootloader fallback case. We use the local hush shell variable, as we do not want to save in any case the fallback variable in U-Boot Environment, as the default Environment is maybe saved in boards, which are downgraded to older U-Boot versions. And than the board code does not run, and fallback never gets the correct value. Introduce also hush shell variable envvers to value "v2_" so we can use them in Environment for running different versions of variables between new and old U-Boot images. Signed-off-by: Heiko Schocher <[email protected]> Signed-off-by: Walter Schweizer <[email protected]> Reviewed-by: Peng Fan <[email protected]>
2026-02-04arm: at91: move atmel_serial.h to include/dm/platform_dataRobert Marko
Move the arch specific atmel_serial.h header from AT91 to the generic include/dm/platform_data. This will be used for support on Microchip LAN969x. Signed-off-by: Robert Marko <[email protected]>
2025-12-05corvus: migrate red LED to the modern APIQuentin Schulz
red_led_on is either called from the legacy LED shell command (which is disabled for corvus) or from arm-specific assembly code right before jumping into board_init_r() in U-Boot proper. Let's migrate to use the more modern LED subsystem by migrating to DM. The default-state is set to on to mimic red_led_on() from the arm-specific assembly code as a missing default-state FDT property currently means the LED is not probed except if explicitly done via the led shell command. Note though that this is running much later in the boot process, once DM is started. Signed-off-by: Quentin Schulz <[email protected]> Reviewed-by: Heiko Schocher <[email protected]>
2025-12-05corvus: remove green led supportQuentin Schulz
green_led_on and green_led_off are only called by the legacy LED command (CONFIG_LED_STATUS_CMD) when CONFIG_LED_STATUS_GREEN is enabled, both of which aren't enabled for corvus, so let's simply remove it as it's dead code. Signed-off-by: Quentin Schulz <[email protected]> Reviewed-by: Heiko Schocher <[email protected]>
2025-11-29capricorn: Stop disabling device tree relocationTom Rini
Remove setting of fdt_high to ~0, which disables device tree relocation, from the default environment. Doing so prevents U-Boot from correcting problems such as having an unaligned device tree and leads to various failure modes in the OS. Signed-off-by: Tom Rini <[email protected]> Reviewed-by: Alexander Sverdlin <[email protected]> Reviewed-by: Heiko Schocher <[email protected]>
2025-08-08MAINTAINERS: update email address of Heiko SchocherHeiko Schocher
use the new email address for community work. While at it, cleanup git shortlog output, by adding fixes in .mailmap Signed-off-by: Heiko Schocher <[email protected]>
2025-07-24treewide: Remove empty board_init() function from all boardsSam Protsenko
Commit 86acdce2ba88 ("common: add config for board_init() call") introduced CONFIG_BOARD_INIT option. This option can be disabled for the boards where board_init() function is not needed. Remove empty board_init() calls for all boards where it's possible, and disable CONFIG_BOARD_INIT in all related defconfigs. This cleanup was made semi-automatically using these scripts: [1]. No functional change, but the binary size for the modified boards is reduced a bit. [1] https://github.com/joe-skb7/uboot-convert-scripts/tree/master/remove-board-init Signed-off-by: Sam Protsenko <[email protected]> Tested-by: Adam Ford <[email protected]> #imx8mm_beacon Tested-by: Bryan Brattlof <[email protected]> Acked-by: Peng Fan <[email protected]> #NXP boards
2025-07-21MAINTAINERS: Update email of Anatolij GustschinAnatolij Gustschin
Use new email for community work. Also remove my capricorn SoM maintainer entry since I do not have access to this hardware anymore. Signed-off-by: Anatolij Gustschin <[email protected]>
2025-05-29global: Avoid indirect inclusion of <env.h> from <net.h>Tom Rini
Now that env_get_ip() has been removed, the include file <net.h> does not need anything from <env.h>. Furthermore, include/env.h itself includes other headers which can lead to longer indirect inclusion paths. To prepare to remove <env.h> from <net.h> fix all of the remaining places which had relied on this indirect inclusion to instead include <env.h> directly. Reviewed-by: Jerome Forissier <[email protected]> # net/lwip Acked-by: Ilias Apalodimas <[email protected]> Reviewed-by: Wolfgang Wallner <[email protected]> Reviewed-by: Martyn Welch <[email protected]> Signed-off-by: Tom Rini <[email protected]>
2025-05-14global: Avoid indirect inclusion of <env.h> from <command.h>Tom Rini
The include file <command.h> does not need anything from <env.h>. Furthermore, include/env.h itself includes other headers which can lead to longer indirect inclusion paths. To prepare to remove <env.h> from <command.h> fix all of the places which had relied on this indirect inclusion to instead include <env.h> directly. Signed-off-by: Tom Rini <[email protected]> --- Cc: Anatolij Gustschin <[email protected]> Cc: Bin Meng <[email protected]> Cc: Heinrich Schuchardt <[email protected]> Cc: Ilias Apalodimas <[email protected]> Cc: Jaehoon Chung <[email protected]> Cc: Jerome Forissier <[email protected]> Cc: Linus Walleij <[email protected]> Cc: Lukasz Majewski <[email protected]> Cc: Marek Vasut <[email protected]> Cc: Mark Kettenis <[email protected]> Cc: Masahisa Kojima <[email protected]> Cc: Mattijs Korpershoek <[email protected]> Cc: Patrice Chotard <[email protected]> Cc: Patrick Delaunay <[email protected]> Cc: Rayagonda Kokatanur <[email protected]> Cc: Simon Glass <[email protected]> Cc: Simon Goldschmidt <[email protected]> Cc: Stefan Bosch <[email protected]> Cc: Tien Fong Chee <[email protected]> Cc: Tingting Meng <[email protected]> Cc: Tobias Waldekranz <[email protected]>
2025-04-28siemens: capricorn: enable text based default environmentWalter Schweizer
enable text based default U-Boot Environment by enabling CONFIG_ENV_SOURCE_FILE and adding default environment file: board/siemens/capricorn/capricorn_cxg3.env Signed-off-by: Heiko Schocher <[email protected]> Signed-off-by: Walter Schweizer <[email protected]>
2025-04-28imx8qxp: capricorn defconfig: collect common Kconfig optionsHeiko Schocher
Siemens have some defconfigs for different hardware versions, all based on mainline cxg3 board. For easier updating the downstream defconfigs, move common settings into new file. configs/imx8qxp_capricorn.config Signed-off-by: Heiko Schocher <[email protected]> Signed-off-by: Walter Schweizer <[email protected]>
2025-02-28Merge patch series "boards: siemens: iot2050: SM variant, sysinfo support, ↵Tom Rini
fixes & cleanups" Baocheng Su <[email protected]> says: This introduces a sysinfo driver which also permits SMBIOS support. The first 10 patches of v2 have already been applied. The remaining is solely the sysinfo driver. To maintain consistency and ease of searching through the history, the series title remains unchanged. Link: https://lore.kernel.org/r/[email protected]
2025-02-28board: siemens: iot2050: Use sysinfo for board initializationBaocheng Su
Drop the info structure parsing of the board in favor of our new sysinfo driver to avoid code duplication. Signed-off-by: Baocheng Su <[email protected]> Signed-off-by: Li Hua Qian <[email protected]> [Jan: rebasing, split-up, cleanup] Signed-off-by: Jan Kiszka <[email protected]>
2025-02-27siemens: common: Make DDR_SI_TEST depend on TARGET_CAPRICORNLiya Huang
The DDR_SI_TEST config option is only relevant to the i.MX8 Capricorn board. Make DDR_SI_TEST depend on DDR_SI_TEST so that it does not show up on other targets. Signed-off-by: Liya Huang <[email protected]> Reviewed-by: Fabio Estevam <[email protected]> Reviewed-by: Heiko Schocher <[email protected]>
2024-11-25siemens: capricorn: update maintainersEnrico Leto
update MAINTAINERS file, add some more board maintainers. Signed-off-by: Enrico Leto <[email protected]> Signed-off-by: Heiko Schocher <[email protected]> Reviewed-by: Alexander Sverdlin <[email protected]>
2024-11-25siemens: add ddr signal integrity testEnrico Leto
The signal integrity test generates pattern on DDR lines for certification. The signals must be as fast as possible and unidirectional. The test is required from our HW team. The available u-boot memory test doesn't full fill the our requirements. The test is planed to be used in all new siemens boards. Signed-off-by: Enrico Leto <[email protected]> Signed-off-by: Heiko Schocher <[email protected]>
2024-11-25siemens: add ddr full memory testEnrico Leto
Add siemens specific memory test. Enable it through Kconfig option SPL_CMT. The test is required from our HW team. It runs over temperature during many days: * must run indefinitively through the *whole* DDR area, so we cannot use linux memtest for example. * must write/read/check all values Signed-off-by: Enrico Leto <[email protected]> Signed-off-by: Heiko Schocher <[email protected]>
2024-11-25siemens: capricorn: get module name from eepromEnrico Leto
The eeprom contains the information on which module we are running, so read it from the eeprom and print it on the console. Signed-off-by: Enrico Leto <[email protected]> Signed-off-by: Heiko Schocher <[email protected]>
2024-11-25siemens: capricorn: get ram size from system controllerEnrico Leto
Get the memory region information from system controller to reduce the number of platform specific headers. We were aligned on NXP mek board implementation. This need at least 1 header per memory configuration. Signed-off-by: Enrico Leto <[email protected]> Signed-off-by: Heiko Schocher <[email protected]>
2024-11-25siemens: capricorn: add HW version information to boot logAlessandro Zini
Add the HW version read directly from EEPROM. EEPROM chip data structure is now in a .h file common to draco and capricorn. Therefore move out the definitions in draco board to siemens common place. From: Alessandro Zini <[email protected]> Signed-off-by: Alessandro Zini <[email protected]> Signed-off-by: Heiko Schocher <[email protected]>
2024-11-25siemens: capricorn: small board updatesHeiko Schocher
with newest SCFW build_info() works now, so call it from checkboard() now. As we only use uart2 as console, do not init uart0. Signed-off-by: Heiko Schocher <[email protected]> Reviewed-by: Alexander Sverdlin <[email protected]>
2024-11-25siemens: capricorn: sync spl code with 8qxp-mekHeiko Schocher
sync spl code with 8qxp-mek board. Signed-off-by: Heiko Schocher <[email protected]>
2024-11-25siemens: imximage.cfg: sync image namesHeiko Schocher
sync the image names in imximage.cfg with the ones used in arch/arm/dts/imx8qxp-u-boot.dtsi Signed-off-by: Heiko Schocher <[email protected]>
2024-11-25siemens: imximage.cfg: correct commentHeiko Schocher
fix wrong comment. Signed-off-by: Heiko Schocher <[email protected]> Reviewed-by: Alexander Sverdlin <[email protected]>
2024-11-25siemens: capricorn: use DCD_SKIP entryHeiko Schocher
Boards which use DCD data in SCFW can drop SPL. We tried in our mainline rework to use this approach too as other imx8qxp boards do in mainline. But we failed ... it was a hard way to understand the reason! We cannot use DCD image in container as the SCFW from siemens, does the RAM init on boot itself! Siemens SCFW reads the RAM config from i2c eeprom and dependent on this settings, initializes the RAM. Adding DCD data to the bootcontainer will result in hang of the SCFW, also DCD data in container image is static which do not fit our needs. So we must drop DCD data image, and this has the side effect that we need SPL, as the task which loads the images from the container only loads the images to addresses, and if executed bit is set, starts them. As now RAM is not initialized from it, and there is no option to "wait until SCFW has setup RAM", we can only load SPL into internal RAM at this point, as than SPL and SCFW boot parallel. The SPL itself then uses the SCU API to communicate with the SCFW and it seems that SCFW only responds to this API requests when RAM setup is already done by the SCFW, which has a side-effect of a "sync" for the RAM setup is done by SCFW! We checked if SPL is always save in accessing RAM for loading images to it! For tests, we added in our RAM init part in the SCFW long delays (10 seconds and more) as we thought there is such a sync missing, and we can break the board through delaying RAM setup... but we did not managed to fail booting U-Boot from SPL! Signed-off-by: Heiko Schocher <[email protected]>
2024-11-25siemens: capricorn: move to cxg3 reference project with deneb boardEnrico Leto
We have many HW with capricorn i.MX8X boards. The difference in u-boot is at all by the display of the LEDs. * put upstream a reference project & board for DT and defconfig * use the capricorn prefix outside the board/siemens/capricorn folder Signed-off-by: Enrico Leto <[email protected]> Signed-off-by: Heiko Schocher <[email protected]>
2024-10-29board: iot2050: Support new IOT2050-SM variantBaocheng Su
Main differences between the new variant and Advanced PG2: 1. Arduino interface is removed. Instead, an new ASIC is added for communicating with PLC 1200 signal modules. 2. USB 3.0 type A connector is removed, only USB 2.0 type A connector is available. 3. DP interface is tailored down. Instead, to communicate with the PLC 1200 signal modules, a USB 3.0 type B connector is added but the signal is not USB. 4. DDR size is increased to 4 GB. 5. Two sensors are added, one tilt sensor and one light sensor. Signed-off-by: Baocheng Su <[email protected]> [Jan: rebased over OF_UPSTREAM] Signed-off-by: Jan Kiszka <[email protected]>
2024-10-28board: siemens: iot2050: Migrate to OF_UPSTREAMJan Kiszka
This requires some tweaking of the defconfig and board_fit_config_name_match so that the new sources are taken into account. Signed-off-by: Jan Kiszka <[email protected]>
2024-10-28board: siemens: iot2050: Generalize the fdt fixupBaocheng Su
The fdt fixup logic actually also applies to other possible variants who also have device tree overlays. So generalize this part by extracting it from the m.2 specific function and make it a standalone one. Since now we only have M.2 variant consuming the overlay, it may not have immediate effect for other variant, however this makes the future variant more easier to apply fdt fixups. Signed-off-by: Baocheng Su <[email protected]> Signed-off-by: Jan Kiszka <[email protected]>
2024-10-28board: siemens: iot2050: Pass DDR size from FSBLBaocheng Su
Due to new DDR size introduction, the current logic of determining the DDR size is not able to get the correct size. Instead, the DDR size is determined by the FSBL(SEBOOT) then passed to u-boot through the scratchpad info. The SEBoot version must be >= D/V01.04.01.02 to support this change. Also now for some variants, the DDR size may > 2GB, so borrow some code from the TI evm to iot2050 to support more than 2GB DDR. Signed-off-by: Baocheng Su <[email protected]> Signed-off-by: Jan Kiszka <[email protected]>
2024-10-28board: siemens: iot2050: Control pcie power for all variantsBaocheng Su
The power control pin of pcie interface not only works for M.2 interface but also for miniPCIE, so promote this logic to all variants to workaround the module hang issue. Signed-off-by: Baocheng Su <[email protected]> Signed-off-by: Jan Kiszka <[email protected]> Reviewed-by: Michael Trimarchi <[email protected]>
2024-10-28board: siemens: iot2050: Fix coding styleBaocheng Su
Add a space after the 'if' Signed-off-by: Baocheng Su <[email protected]> Signed-off-by: Jan Kiszka <[email protected]>
2024-10-11Merge patch series "Tidy up use of 'SPL' and CONFIG_SPL_BUILD"Tom Rini
Simon Glass <[email protected]> says: When the SPL build-phase was first created it was designed to solve a particular problem (the need to init SDRAM so that U-Boot proper could be loaded). It has since expanded to become an important part of U-Boot, with three phases now present: TPL, VPL and SPL Due to this history, the term 'SPL' is used to mean both a particular phase (the one before U-Boot proper) and all the non-proper phases. This has become confusing. For a similar reason CONFIG_SPL_BUILD is set to 'y' for all 'SPL' phases, not just SPL. So code which can only be compiled for actual SPL, for example, must use something like this: #if defined(CONFIG_SPL_BUILD) && !defined(CONFIG_TPL_BUILD) In Makefiles we have similar issues. SPL_ has been used as a variable which expands to either SPL_ or nothing, to chose between options like CONFIG_BLK and CONFIG_SPL_BLK. When TPL appeared, a new SPL_TPL variable was created which expanded to 'SPL_', 'TPL_' or nothing. Later it was updated to support 'VPL_' as well. This series starts a change in terminology and usage to resolve the above issues: - The word 'xPL' is used instead of 'SPL' to mean a non-proper build - A new CONFIG_XPL_BUILD define indicates that the current build is an 'xPL' build - The existing CONFIG_SPL_BUILD is changed to mean SPL; it is not now defined for TPL and VPL phases - The existing SPL_ Makefile variable is renamed to SPL_ - The existing SPL_TPL Makefile variable is renamed to PHASE_ It should be noted that xpl_phase() can generally be used instead of the above CONFIGs without a code-space or run-time penalty. This series does not attempt to convert all of U-Boot to use this new terminology but it makes a start. In particular, renaming spl.h and common/spl seems like a bridge too far at this point. The series is fully bisectable. It has also been checked to ensure there are no code-size changes on any commit.
2024-10-11board: Use CONFIG_XPL_BUILD instead of CONFIG_SPL_BUILDSimon Glass
Use the new symbol to refer to any 'SPL' build, including TPL and VPL Signed-off-by: Simon Glass <[email protected]>
2024-09-24at91: rename mem_init() to at91_mem_init()Jerome Forissier
The AT91-based platforms have a mem_init() function declared in arch/arm/mach-at91/include/mach/at91_common.h and implemented in various places. In preparation of the introduction of the lwIP networking library which also has a global mem_init() function, rename the AT91 one to at91_mem_init(). Signed-off-by: Jerome Forissier <[email protected]> Reviewed-by: Peter Robinson <[email protected]> Reviewed-by: Ilias Apalodimas <[email protected]> Reviewed-by: Heiko Schocher <[email protected]> Reviewed-by: Hari Prasath Gujulan Elango <[email protected]>
2024-08-26global_data: Convert have_console into a flagSimon Glass
We don't need a full word for this boolean value. Convert it into a flag to save space in global_data. Reviewed-by: Alexander Sverdlin <[email protected]> Signed-off-by: Simon Glass <[email protected]>
2024-07-22board: siemens: Remove duplicate newlinesMarek Vasut
Drop all duplicate newlines. No functional change. Signed-off-by: Marek Vasut <[email protected]>
2024-05-20Restore patch series "arm: dts: am62-beagleplay: Fix Beagleplay Ethernet"Tom Rini
As part of bringing the master branch back in to next, we need to allow for all of these changes to exist here. Reported-by: Jonas Karlman <[email protected]> Signed-off-by: Tom Rini <[email protected]>
2024-05-19Revert "Merge patch series "arm: dts: am62-beagleplay: Fix Beagleplay Ethernet""Tom Rini
When bringing in the series 'arm: dts: am62-beagleplay: Fix Beagleplay Ethernet"' I failed to notice that b4 noticed it was based on next and so took that as the base commit and merged that part of next to master. This reverts commit c8ffd1356d42223cbb8c86280a083cc3c93e6426, reversing changes made to 2ee6f3a5f7550de3599faef9704e166e5dcace35. Reported-by: Jonas Karlman <[email protected]> Signed-off-by: Tom Rini <[email protected]>
2024-05-07board: siemens: Remove <common.h> and add needed includesTom Rini
Remove <common.h> from this board vendor directory and when needed add missing include files directly. Reviewed-by: Heiko Schocher <[email protected]> Signed-off-by: Tom Rini <[email protected]>
2024-04-22common: Convert *.c/h from UTF-8 to ASCII enconfingMichal Simek
Convert UTF-8 chars to ASCII in cases where make sense. No Copyright or names are converted. Signed-off-by: Michal Simek <[email protected]> Reviewed-by: Tom Rini <[email protected]> Acked-by: Marek Behún <[email protected]>
2024-02-05siemens: factoryset: use correct config for soc specific implementationEnrico Leto
Adding the capricorn board family some parts diverge from draco family. The switches used were not pertinent and need to be enhanced for each new board of the capricorn family. Replace them through the SOC name 'AM33XX' and 'IMX8'. Signed-off-by: Enrico Leto <[email protected]>
2024-02-05siemens: board: clean up includesEnrico Leto
Many includes were not removed when code parts were moved or removed. Signed-off-by: Enrico Leto <[email protected]>
2024-02-05siemens: board: clean up products folders vs commonEnrico Leto
The common folder was initialially created for the common parts of the products based on draco-am355x board family. These are the product lines 'pxm2', 'rut' and the base line named 'draco'! Adding the new capricorn-imx8 board family, common was enhanced without cleanup. - rename 'common/board.c' to 'common/board_am335x.c' - add 'common/board_am335x.h' for export to the product lines Reviewed-by: Alexander Sverdlin <[email protected]> Signed-off-by: Enrico Leto <[email protected]>
2024-02-05siemens: board: etamin: remove deprecated nand configEnrico Leto
NAND was used in the early development phase of etamin. The board runs now on MMC. This setting is no more used -> remove to simplify the board file. Further clean-up of etamin should remove all NAND settings. Complete clean- up of etamin board will take place in a separate patch serie. Signed-off-by: Enrico Leto <[email protected]>