summaryrefslogtreecommitdiff
path: root/board/dhelectronics/dh_imx6
AgeCommit message (Collapse)Author
2026-04-21board: dhelectronics: imx: Use second Ethernet MAC also from fuseChristoph Niedermaier
Currently, the board specific code evaluates only the first Ethernet MAC address fuse, regardless of whether the first or second MAC address is requested. When the function to determine the second Ethernet MAC address is looking for the fused MAC address, it only reads the first MAC address fuse and increment it by one to set the second Ethernet MAC address. That is not the expected behavior when two MAC addresses are fused, because this causes the second fused MAC address to be ignored. Change this so that the second fused MAC address will be used. Reviewed-by: Peng Fan <[email protected]> Signed-off-by: Christoph Niedermaier <[email protected]> Reviewed-by: Marek Vasut <[email protected]>
2025-08-07ARM: imx6: dh-imx6: Enable USB OTG ID pin pull up in SPLMarek Vasut
Enable SoC pull up for USB OTG ID pin in SPL. There is no dedicated pull up resistor on the SoM itself, and the pull up is mandatory for correct USB OTG ID pin detection. U-Boot proper already configures the USB OTG ID pin pull up via DT pinctrl node entry. Signed-off-by: Marek Vasut <[email protected]> Tested-by: Christoph Niedermaier <[email protected]>
2024-12-07arm64: imx8mp: Read values from M24C32-D write-lockable page on DHCOM i.MX8MPChristoph Niedermaier
The new i.MX8M Plus DHCOM rev.200 is populated with M24C32-D EEPROM that contains an additional write-lockable page called ID page, which is populated with a structure containing ethernet MAC addresses, DH item number and DH serial number. Because the write-lockable page is not present on rev.100 i.MX8MP DHCOM SoM, test whether EEPROM ID page exists by setting up the i2c driver. There may be multiple EEPROMs with an ID page on this platform, always use the first one. The evaluation of the EEPROM ID page is done in two steps. First, the content is read and checked. This is done to cache the content of the EEPROM ID page. Second, the content is extracted from the EEPROM buffer by requesting it. For the ethernet MAC address the i.MX8M Plus DHCOM currently supports parsing address from multiple sources in the following priority order: 1) U-Boot environment 'ethaddr'/'eth1addr' environment variable 2) SoC OTP fuses 3) On-SoM EEPROM Add support for parsing the content of this new EEPROM ID page and place it between 2) and 3) on the priority list. The new entry is 2.5) On-SoM EEPROM write-lockable page. Signed-off-by: Christoph Niedermaier <[email protected]> Reviewed-by: Marek Vasut <[email protected]>
2024-10-13ARM: imx: Update MAINTAINERS file globs for i.MX6 DHSOMMarek Vasut
Update the MAINTAINERS file glob to cover all of i.MX6 DHSOM related files. Signed-off-by: Marek Vasut <[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-30power: regulator: Drop regulators_enable_boot_on/off()Marek Vasut
Both regulators_enable_boot_on/off() are unused and superseded by regulator uclass regulator_post_probe(). Remove both functions. Signed-off-by: Marek Vasut <[email protected]>
2024-09-25arm: imx: Enable always-on regulators using board specific workaround on ↵Marek Vasut
DHCOM SoM U-Boot is currently unable to automatically enable regulators which contain DT property regulator-always-on or regulator-boot-on. There is an ongoing work to add this functionality to regulator core code, but until the proper solution lands, add this awful workaround code to force these regulators on. This is specifically needed to assure the VIO regulator used to supply ethernet magnetics is enabled. Signed-off-by: Marek Vasut <[email protected]>
2024-07-22board: dhelectronics: 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-06board: dhelectronics: Remove <common.h> and add needed includesTom Rini
Remove <common.h> from this board vendor directory and when needed add missing include files directly. Signed-off-by: Tom Rini <[email protected]>
2024-05-06global: Audit usage of <eeprom.h>Tom Rini
The file include/eeprom.h is used only in some legacy non-DM I2C EEPROM access cases. Remove most inclusions of this file as they are not needed. Signed-off-by: Tom Rini <[email protected]>
2024-04-05ARM: imx: stm32: Test whether ethernet node is enabled before reading MAC ↵Marek Vasut
EEPROM on DHSOM Check whether the ethernet interface is enabled at all before reading MAC EEPROM. As a cost saving measure, it can happen that the MAC EEPROM is not populated on SoMs which do not use ethernet. Signed-off-by: Marek Vasut <[email protected]> Reviewed-by: Patrice Chotard <[email protected]>
2023-08-09treewide: rework linker symbol declarations in sections headerShiji Yang
1. Convert all linker symbols to char[] type so that we can get the corresponding address by calling array name 'var' or its address '&var'. In this way, we can avoid some potential issues[1]. 2. Remove unused symbol '_TEXT_BASE'. It has been abandoned and has not been referenced by any source code. 3. Move '__data_end' to the arch x86's own sections header as it's only used by x86 arch. 4. Remove some duplicate declared linker symbols. Now we use the standard header file to declare them. [1] This patch fixes the boot failure on MIPS target. Error log: SPL: Image overlaps SPL Fixes: 1b8a1be1a1f1 ("spl: spl_legacy: Fix spl_end address") Signed-off-by: Shiji Yang <[email protected]> Reviewed-by: Tom Rini <[email protected]>
2022-09-01ARM: imx6: dh-imx6: Enable d-cache early in SPLMarek Vasut
Enable d-cache early in SPL right after DRAM is started up. This reduces U-Boot proper load time by 650ms when loaded from SPI NOR. Signed-off-by: Marek Vasut <[email protected]> Signed-off-by: Philip Oberfichtner <[email protected]>
2022-08-12ARM: imx6: DH: Use common MAC address functionsPhilip Oberfichtner
To reduce code duplication, let the imx6 based DH boards use the common code for setting up their MAC addresses. Signed-off-by: Philip Oberfichtner <[email protected]> Tested-by: Marek Vasut <[email protected]> Reviewed-by: Marek Vasut <[email protected]>
2022-05-20ARM: imx6: Adapt device tree selection in DH board filePhilip Oberfichtner
Before this commit device tree selection could rely solely on differentiating the iMX6 processor variant Q and DL. After adding two new carrier boards, the DRC02 and the picoITX, the interchangeability of SoMs makes this approach infeasible. It is now required to specify the carrier board (dhcom-drc02, dhcom-picoitx or dhcom-pdk2) at compile time using CONFIG_DEFAULT_DEVICETREE. The SoM is determined at runtime as before. Signed-off-by: Philip Oberfichtner <[email protected]>
2022-05-20ARM: imx6: Fix broken DT path in DH board filePhilip Oberfichtner
In the DH electronics iMX6 board file fix the outdated eeprom path by using a DT label instead. The label has been newly created for all iMX6QDL DHCOM boards. Reviewed-by: Marek Vasut <[email protected]> Signed-off-by: Philip Oberfichtner <[email protected]>
2021-07-10ARM: imx6: Update dhelectronics/dh_imx6/MAINTAINERS fileChristoph Niedermaier
Adding new DH electronics mailing list and update list of maintainers. Signed-off-by: Christoph Niedermaier <[email protected]>
2021-02-02common: Drop asm/global_data.h from common headerSimon Glass
Move this out of the common header and include it only where needed. In a number of cases this requires adding "struct udevice;" to avoid adding another large header or in other cases replacing / adding missing header files that had been pulled in, very indirectly. Finally, we have a few cases where we did not need to include <asm/global_data.h> at all, so remove that include. Signed-off-by: Simon Glass <[email protected]> Signed-off-by: Tom Rini <[email protected]>
2020-07-17treewide: convert bd_t to struct bd_info by coccinelleMasahiro Yamada
The Linux coding style guide (Documentation/process/coding-style.rst) clearly says: It's a **mistake** to use typedef for structures and pointers. Besides, using typedef for structures is annoying when you try to make headers self-contained. Let's say you have the following function declaration in a header: void foo(bd_t *bd); This is not self-contained since bd_t is not defined. To tell the compiler what 'bd_t' is, you need to include <asm/u-boot.h> #include <asm/u-boot.h> void foo(bd_t *bd); Then, the include direcective pulls in more bloat needlessly. If you use 'struct bd_info' instead, it is enough to put a forward declaration as follows: struct bd_info; void foo(struct bd_info *bd); Right, typedef'ing bd_t is a mistake. I used coccinelle to generate this commit. The semantic patch that makes this change is as follows: <smpl> @@ typedef bd_t; @@ -bd_t +struct bd_info </smpl> Signed-off-by: Masahiro Yamada <[email protected]>
2020-06-22ARM: imx6: Fetch MAC address in board_init_late() on DH iMX6 PDK2Marek Vasut
This is needed to obtain the MAC from EEPROM/OTP only after the final env is populated, otherwise the ethaddr might be overriden. Signed-off-by: Marek Vasut <[email protected]> Cc: Claudius Heine <[email protected]> Cc: Harald Seiler <[email protected]> Cc: Ludwig Zenz <[email protected]> Cc: Stefano Babic <[email protected]>
2020-05-18common: Drop linux/delay.h from common headerSimon Glass
Move this uncommon header out of the common header. Signed-off-by: Simon Glass <[email protected]>
2020-05-18common: Drop init.h from common headerSimon Glass
Move this uncommon header out of the common header. Signed-off-by: Simon Glass <[email protected]>
2020-05-18common: Drop image.h from common headerSimon Glass
Move this uncommon header out of the common header. Signed-off-by: Simon Glass <[email protected]>
2020-05-18common: Drop net.h from common headerSimon Glass
Move this header out of the common header. Network support is used in quite a few places but it still does not warrant blanket inclusion. Note that this net.h header itself has quite a lot in it. It could be split into the driver-mode support, functions, structures, checksumming, etc. Signed-off-by: Simon Glass <[email protected]>
2020-04-18ARM: imx6: DHCOM i.MX6 PDK: Convert to DM_ETHHarald Seiler
Use DM_ETH instead of legacy networking. Add VIO as a fixed regulator to the relevant device-trees and augment the FEC node with properties for the reset GPIO. It should be noted that the relevant properties for the reset GPIO already exist in the PHY node (reset-gpios, reset-delay-us, reset-post-delay-us) but U-Boot currently ignores those and only supports the bus-level reset properties in the FEC node (phy-reset-gpios, phy-reset-duration, phy-reset-post-delay). Signed-off-by: Harald Seiler <[email protected]>
2019-12-02common: Move old EEPROM functions into a new headerSimon Glass
These functions do not use driver model but are still used. Move them to a new eeprom.h header file. Signed-off-by: Simon Glass <[email protected]> Reviewed-by: Tom Rini <[email protected]>
2019-12-02common: Move some board functions out of common.hSimon Glass
A number of board function belong in init.h with the others. Move them. Signed-off-by: Simon Glass <[email protected]> Reviewed-by: Tom Rini <[email protected]>
2019-11-03ARM: imx6: DHCOM i.MX6 PDK: spl: Add eMMC initialization to SPL codeClaudius Heine
In order for 'bmode emmc' to work, the eMMC needs to be initialized in the SPL. This change initializes the eMMC as BOOT_DEVICE_MMC1 (index=0). Signed-off-by: Claudius Heine <[email protected]>
2019-11-03ARM: imx6: DHCOM i.MX6 PDK: fix board_boot_modes emmc entryClaudius Heine
The board_boot_modes contained the wrong values for the emmc entry. The eMMC here is connected over a 8-bit bus. This change allows to use the 'bmode emmc' command to boot from emmc. Signed-off-by: Claudius Heine <[email protected]>
2019-08-11env: Drop environment.h header file where not neededSimon Glass
This header file is now only used by files that access internal environment features. Drop it from various places where it is not needed. Acked-by: Joe Hershberger <[email protected]> Signed-off-by: Simon Glass <[email protected]>
2019-08-11env: Move env_set() to env.hSimon Glass
Move env_set() over to the new header file. Acked-by: Joe Hershberger <[email protected]> Signed-off-by: Simon Glass <[email protected]>
2019-07-19ARM: imx6: DHCOM i.MX6 PDK: Switch to DM for I2CLudwig Zenz
This patch enables DM I2C for DHCOM i.MX6 PDK2 boards and removes non DM I2C code. The I2C EEPROM with ethaddr (MAC) is defined in the device tree. Use UCLASS_I2C_EEPROM to find the device by fixed hardware path and read the ethaddr. Tested with DHCOM i.MX6dl and DHCOM i.MX6q. Signed-off-by: Ludwig Zenz <[email protected]> Reviewed-by: Marek Vasut <[email protected]>
2019-07-19ARM: imx6: DHCOM i.MX6 PDK: enable pad pull ups of SS lines of spi used for bootLudwig Zenz
It turned out that after a reset the boot process from the spi bootflash is disturbed by other spi slave devices connected to DHCOM SPI1, which uses the same spi interface with a different SS line. Therefore the pad pull ups are enabled. Signed-off-by: Ludwig Zenz <[email protected]>
2019-07-19ARM: imx6: DHCOM i.MX6 PDK: config SPL to load U-Boot fitImage with mulitple DTsLudwig Zenz
Configure fitImage for U-Boot with a device tree for imx6 quad/dual and duallite/solo. This enables to support the imx6 derivates quad/dual/duallite/solo with a single binary. Signed-off-by: Ludwig Zenz <[email protected]> Reviewed-by: Marek Vasut <[email protected]>
2019-07-19ARM: imx: dh-imx6: Enable DM regulatorMarek Vasut
Enable DM support for regulators and fixed regulator driver and convert USB Vbus control over to the regulators defined in DT. Signed-off-by: Marek Vasut <[email protected]> Cc: Ludwig Zenz <[email protected]> Cc: Stefano Babic <[email protected]> Tested-by: Ludwig Zenz <[email protected]>
2019-06-23Convert to use fsl_esdhc_imx for i.MX platformsYangbo Lu
Converted to use fsl_esdhc_imx for i.MX platforms. Signed-off-by: Yangbo Lu <[email protected]> Tested-by: Steffen Dirkwinkel <[email protected]> Reviewed-by: Peng Fan <[email protected]> Reviewed-by: Lukasz Majewski <[email protected]> Reviewed-by: Martyn Welch <[email protected]> Acked-by: Jason Liu <[email protected]>
2019-06-11ARM: imx: dh-imx6: Convert SPI support to DMMarek Vasut
Enable DM SPI and SF support on DHCOM iMX6 PDK2. Convert board code to match the DM support. Signed-off-by: Marek Vasut <[email protected]> Cc: Fabio Estevam <[email protected]> Cc: Ludwig Zenz <[email protected]> Cc: Stefano Babic <[email protected]>
2019-06-11ARM: imx: dh-imx6: Convert SATA support to DMMarek Vasut
Enable DM SATA support on DHCOM iMX6 PDK2. Convert board code to match the DM support. Signed-off-by: Marek Vasut <[email protected]> Cc: Fabio Estevam <[email protected]> Cc: Ludwig Zenz <[email protected]> Cc: Stefano Babic <[email protected]>
2019-06-11ARM: imx: dh-imx6: Convert SD/MMC support to DMMarek Vasut
Enable DM block and DM MMC support on DHCOM iMX6 PDK2. Convert board code to match the DM support. Signed-off-by: Marek Vasut <[email protected]> Cc: Fabio Estevam <[email protected]> Cc: Ludwig Zenz <[email protected]> Cc: Stefano Babic <[email protected]>
2019-06-11ARM: imx: dh-imx6: Enable DM GPIOMarek Vasut
Enable DM GPIO support on DHCOM iMX6 PDK2 and fix up board code where applicable. Signed-off-by: Marek Vasut <[email protected]> Cc: Fabio Estevam <[email protected]> Cc: Ludwig Zenz <[email protected]> Cc: Stefano Babic <[email protected]>
2019-04-25ARM: imx6: DHCOM i.MX6 PDK: use Kconfig for inclusion of DDR calibrationLudwig Zenz
The four x16 DDR3 are wired in T-topology. From NXP AN4467: 'Although not required, T-Topologies may also benefit from performing Write Leveling as there are package delays on both the processor and DDR devices that can be de-skewed by performing Write Leveling. Therefore, Freescale recommends determining Write Leveling calibration parameters for all boards, regardless of topology used.' That is why write level calibration is also done. Signed-off-by: Ludwig Zenz <[email protected]>
2019-04-25ARM: imx6: update 1GB DDR3 calibration for DHCOM i.MX6qd PDKLudwig Zenz
The existing calibration values were found to be incorrect in comparison to newly determined values. The new values were generated with the help of 5 boards. They have been determined with the NXP Utility 'DDR Stress Test (2.9.0)'. Signed-off-by: Ludwig Zenz <[email protected]>
2018-07-23ARM: imx6: DHCOM i.MX6 PDK: ddr init for 32bit bus and 4GBit chipsLudwig Zenz
Support 1GIB + 2GIB DDR3 with 64bit bus width and 512MIB + 1GIB with 32bit bus width Signed-off-by: Ludwig Zenz <[email protected]>
2018-07-23ARM: imx6: configure ddrcode pins in spl DHCOM i.MX6 PDKLudwig Zenz
Preperation for conditional DDR3 initialization based on GPIO codes. Signed-off-by: Ludwig Zenz <[email protected]>
2018-07-23Revert "ARM: imx6: Disable DDR DRAM calibration DHCOM i.MX6 PDK"Ludwig Zenz
This reverts commit a637fe6f27fd4c19ef9f43a5f871c244581422ac. The DDR DRAM calibration was enhanced by write leveling correction code. It can be used with T-topology now. Signed-off-by: Ludwig Zenz <[email protected]>
2018-05-07SPDX: Convert all of our single license tags to Linux Kernel styleTom Rini
When U-Boot started using SPDX tags we were among the early adopters and there weren't a lot of other examples to borrow from. So we picked the area of the file that usually had a full license text and replaced it with an appropriate SPDX-License-Identifier: entry. Since then, the Linux Kernel has adopted SPDX tags and they place it as the very first line in a file (except where shebangs are used, then it's second line) and with slightly different comment styles than us. In part due to community overlap, in part due to better tag visibility and in part for other minor reasons, switch over to that style. This commit changes all instances where we have a single declared license in the tag as both the before and after are identical in tag contents. There's also a few places where I found we did not have a tag and have introduced one. Signed-off-by: Tom Rini <[email protected]>
2018-04-27Remove unnecessary instances of DECLARE_GLOBAL_DATA_PTRTom Rini
We have a large number of places where while we historically referenced gd in the code we no longer do, as well as cases where the code added that line "just in case" during development and never dropped it. Signed-off-by: Tom Rini <[email protected]>