aboutsummaryrefslogtreecommitdiff
path: root/board
AgeCommit message (Collapse)AuthorFilesLines
2023-04-04board: verdin-imx8mp: change prints in spl_dram_init functionEmanuele Ghidoli1-4/+10
change prints to show which DDR configuration (single/dual rank) is used Signed-off-by: Emanuele Ghidoli <emanuele.ghidoli@toradex.com> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2023-04-04board: verdin-imx8mp: compact slight different lpddr4 configurationEmanuele Ghidoli3-322/+75
Deduplicate similar DDRC configurations and LPDDR4 training patterns by patching a single configuration. The aim is to reduce the SPL memory footprint and simplify maintenance of lpddr4_timing.c Signed-off-by: Emanuele Ghidoli <emanuele.ghidoli@toradex.com> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2023-04-04board: verdin-imx8mp: update lpddr4 configuration and trainingEmanuele Ghidoli1-24/+25
Update LPDDR4 configuration and training using updated spreadsheet and tools from NXP using data from previous spreadsheet and verified toward datasheet: - MX8M_Plus_LPDDR4_RPA_v9.xlsx - mscale_ddr_tool_v3.30.exe From: https://community.nxp.com/t5/i-MX-Processors-Knowledge-Base/i-MX-8M-Family-DDR-Tool-Release/ta-p/1104467 Some register values differ due to these fixes/modifications: - corrected calculation of T_CKPDX parameter (equal to tCKCKEH for LPDDR4) - corrected ECC related items, none of which affect normal operation when ECC is not enabled - corrected formula for calculation of tRTP in cell D122 Signed-off-by: Emanuele Ghidoli <emanuele.ghidoli@toradex.com> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2023-04-04board: verdin-imx8mp: fix lpddr4 refresh timingEmanuele Ghidoli1-12/+12
Change tRFCmin (tRFCab) from 280 ns to 380 ns to be compliant with current and futures memories. Fixes: 2bc2f817cea7 ("board: toradex: add verdin imx8m plus support") Signed-off-by: Emanuele Ghidoli <emanuele.ghidoli@toradex.com> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2023-04-04board: verdin-imx8mp: update ddrc config for different lpddr4 memoriesEmanuele Ghidoli2-5/+4
Add support to Verdin IMX8MP V1.1B SKU which uses MT53E1G32D2FW-046 WT:B memory. Compared to the 8 GB memory (MT53E2G32D4NQ-046 WT:A) used on Verdin IMX8MP V1.0A it has 16 row addresses instead of 17. In fact, the new memory, is a 2 GB/rank memory. The 8 GB memory is a 4 GB/rank memory. Manually tweaking Host Interface addresses vs LPDDR4 signals mapping it is possible to have a single configuration working with both memories: - Old configuration: HIF bit 30 -> rank, HIF bit 29 -> Row 16 - New configuration: HIF bit 29 -> rank, HIF bit 30 -> Row 16 With this change the memory space from the host processor is contiguous for both the configurations and the correct memory size is computed using get_ram_size() at runtime. Support for single rank memories still works thanks to the fact dual ranks training fails (ddr_init->ddr_cfg_phy) toward single rank memories. Signed-off-by: Emanuele Ghidoli <emanuele.ghidoli@toradex.com> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2023-03-31Merge tag 'u-boot-imx-next-20230331' of ↵WIP/31Mar2023-nextTom Rini29-886/+2282
https://gitlab.denx.de/u-boot/custodians/u-boot-imx into next u-boot-imx-next-20230331 for next --------------------------------- CI: https://source.denx.de/u-boot/custodians/u-boot-imx/-/pipelines/15819 i.MX patches queued for next: - Conversions to DM_SERIAL - Fixes for Toradex boards - Gateworks Boards - i.MX8ULP - EQoS support / fixes, changes in boards
2023-03-30arm64: imx8mm: imx8mn: imx8mp: Drop FEC GPR[1] board workaroundMarek Vasut3-39/+2
The FEC interface mode is now configured in common board_interface_eth_init() and called by FEC MAC driver when appropriate. Drop the board side duplicates if the same functionality. Signed-off-by: Marek Vasut <marex@denx.de>
2023-03-30arm64: imx8mp: Drop EQoS GPR[1] board workaroundMarek Vasut7-109/+1
The EQoS interface mode is now configured in common board_interface_eth_init() and called by EQoS MAC driver when appropriate. Drop the board side duplicates if the same functionality. Signed-off-by: Marek Vasut <marex@denx.de>
2023-03-30compulab: imx8mm-cl-iot-gate: Fix some function declarations in ddr.hYing-Chun Liu (PaulLiu)1-2/+2
We have a few places here that the function declarations do not match their prototypes, correct them. Signed-off-by: Ying-Chun Liu (PaulLiu) <paulliu@debian.org> Cc: Tom Rini <trini@konsulko.com> Cc: Stefano Babic <sbabic@denx.de> Cc: Fabio Estevam <festevam@gmail.com> Cc: NXP i.MX U-Boot Team <uboot-imx@nxp.com> Reviewed-by: Tom Rini <trini@konsulko.com> Reported-by: Tom Rini <trini@konsulko.com> Reviewed-by: Fabio Estevam <festevam@gmail.com>
2023-03-30colibri-imx8x: construct fdtfile dynamicallyAndrejs Cainikovs1-0/+14
The following expression is used to construct the device tree name: fdtfile=${soc}-colibri-${fdt_board}.dtb - soc is set dynamically (either imx8qxp or imx8dx) - fdt_board can be modified by the user (eval-v3, aster, iris/iris-v2) Signed-off-by: Andrejs Cainikovs <andrejs.cainikovs@toradex.com>
2023-03-30colibri-imx8x: extract is_imx8dx() from ram detectionMax Krummenacher1-9/+13
Refactor the detection of QXP vs. DX SoC into its own helper function. Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com> Signed-off-by: Andrejs Cainikovs <andrejs.cainikovs@toradex.com>
2023-03-30board: colibri-imx8x: add 2nd ethernet addressAndrejs Cainikovs1-0/+3
All Colibri iMX8X variants have 2nd RGMII on SoC, so add the address for 2nd ethernet. Signed-off-by: Andrejs Cainikovs <andrejs.cainikovs@toradex.com>
2023-03-30mx51evk: Remove unused mx51evk_video.c fileFabio Estevam1-98/+0
Since commit 1fa43cad8625 ("video: Drop references to CONFIG_VIDEO et al") the mx51evk_video.c is no longer used. Remove the unused file. Signed-off-by: Fabio Estevam <festevam@denx.de>
2023-03-30mx53loco: Remove unused mx53loco_video.c fileFabio Estevam1-114/+0
Since commit 1fa43cad8625 ("video: Drop references to CONFIG_VIDEO et al") the mx53loco_video.c is no longer used. Remove the unused file. Signed-off-by: Fabio Estevam <festevam@denx.de>
2023-03-30configs: remove gwventana_gw5904_defconfigTim Harvey1-1/+0
Now that the gwventana_emmc_defconfig is the same as the gwventana_gw5904_defconfig we can remove the latter. Signed-off-by: Tim Harvey <tharvey@gateworks.com>
2023-03-30arm64: imx8mp: Auto-detect PHY on i.MX8MP DHCOMMarek Vasut1-0/+228
The i.MX8MP DHCOM SoM may be populated with either KSZ9131RNXI RGMII PHY or LAN8740Ai RMII PHY attached to EQoS MAC, and either external RGMII PHY or LAN8740Ai RMII PHY attached to FEC MAC. The SoM configuration can be detected for each MAC by reading RX_CTL pull resistor state early on boot. Make use of this, detect the exact PHY configuration, and patch control DT accordingly so that the ethernet is configured correctly in U-Boot. Signed-off-by: Marek Vasut <marex@denx.de>
2023-03-30ARM: imx: Add 2 GiB DRAM support for DH electronics i.MX8M Plus DHCOMMarek Vasut4-2/+1848
The DH electronics i.MX8M Plus DHCOM SoM currently supports only 4 GiB of DRAM population option. Add another population option with 2 GiB of DRAM. The chips used on the 2 GiB option are 2x K4F6E3S4HM-MGCJ . Signed-off-by: Marek Vasut <marex@denx.de>
2023-03-30arm: mvebu: clearfog: Detect MMC vs SDHC and fixup fdtMartin Rowe1-0/+33
[upstream of vendor commit 19a96f7c40a8fc1d0a6546ac2418d966e5840a99] The Clearfog devices have only one SDHC device. This is either eMMC if it is populated on the SOM or SDHC if not. The Linux device tree assumes the SDHC case. Detect if the device is an eMMC and fixup the device-tree so it will be detected by Linux. Ported from vendor repo at https://github.com/SolidRun/u-boot Signed-off-by: Martin Rowe <martin.p.rowe@gmail.com> Reviewed-by: Stefan Roese <sr@denx.de>
2023-03-30board: gateworks: venice: enable XWAY PHY supportTim Harvey1-16/+0
Enable XWAY PHY driver and remove board specific config from board_phy_config weak override. Signed-off-by: Tim Harvey <tharvey@gateworks.com> Reviewed-by: Fabio Estevam <festevam@denx.de>
2023-03-29mx6sabresd: Convert to DM_PMICFabio Estevam1-50/+13
The usage of DM_PMIC is preferred, so convert to it. This also brings the benefit of causing a significant amount of code removal. Signed-off-by: Fabio Estevam <festevam@denx.de> Reviewed-by: Peng Fan <peng.fan@nxp.com>
2023-03-29mx6sabreauto: Convert to DM_PMICFabio Estevam1-94/+13
The usage of DM_PMIC is preferred, so convert to it. This also brings the benefit of causing a significant amount of code removal. Signed-off-by: Fabio Estevam <festevam@denx.de> Reviewed-by: Peng Fan <peng.fan@nxp.com>
2023-03-29mx6sxsabreauto: Remove myself from MAINTAINERSFabio Estevam1-1/+1
I don't have access to the mx6sxsabreauto board, so remove myself from the MAINTAINERS entry and add Peng instead. Signed-off-by: Fabio Estevam <festevam@denx.de> Acked-by: Peng Fan <peng.fan@nxp.com>
2023-03-29mx53loco: Add DM_I2C supportFabio Estevam1-18/+18
The conversion to DM_I2C is mandatory, so add support for it. Signed-off-by: Fabio Estevam <festevam@denx.de>
2023-03-29imx8ulp_evk: Clear data at fdt_addr_r before booting kernelYe Li1-0/+8
When using dual boot mode, the DDR won't be reset when APD power off or reboot. It has possibility that obsolete fdt data existing on fdt_addr_r address. Then even nothing in EFI partitions, the distro boot still continue to parse fdt and get uboot crashed. Clear the data at fdt_addr_r, so the fdt header check in above case will not pass. Signed-off-by: Ye Li <ye.li@nxp.com> Reviewed-by: Peng Fan <peng.fan@nxp.com>
2023-03-29imx8ulp_evk: disable overflow of port0 for LPAVPeng Fan2-2/+2
Bit0: Port 0 behavior when bandwidth maximized. Set to 1 to allow overflow With overflow set, we see some issue that A35 may not able to get enough bandwidth and A35 will report hrtimer takes too much time, workqueue lockup. With overflow cleared, the issues are gone. Reviewed-by: Ye Li <ye.li@nxp.com> Signed-off-by: Peng Fan <peng.fan@nxp.com>
2023-03-29imx8ulp_evk: Update DDR ports arbitration for DCNANO underrunYe Li2-4/+4
To resolve DCNANO underrun issue, change the DDR Port 0 arbitration from round robin fashion to fixed priority level 1, while other ports are not assigned any priority, so they will be serviced in round robin fashion if there is no active request from Port 0. Signed-off-by: Ye Li <ye.li@nxp.com> Acked-by: Peng Fan <peng.fan@nxp.com>
2023-03-29imx8ulp_evk: Change to use DDR driverYe Li2-208/+1
Remove the DDR initialization codes from board and enable the iMX8ULP DDR driver. Signed-off-by: Ye Li <ye.li@nxp.com>
2023-03-29imx8ulp_evk: Update the DDR timingJacky Bai1-102/+102
Update the dram timing to support PLL bypass mode for F1. Signed-off-by: Jacky Bai <ping.bai@nxp.com> Reviewed-by: Ye Li <ye.li@nxp.com>
2023-03-29imx: imx8ulp: Configure XRDC PDAC and MSC for DBD owner=S400 onlyYe Li1-3/+5
This patch is used to support DBD owner fuse changed to S400 only. The XRDC PDAC2 for LPAV pbridge5 and MSC1/2/3 for GPIO and LPAV are not configured by S400 default setting. So these PDAC and MSC are invalid, only DBD owner can access the corresponding resources. We have to configure necessary PDAC and MSC for SPL before DDR initialization. Signed-off-by: Ye Li <ye.li@nxp.com> Reviewed-by: Peng Fan <peng.fan@nxp.com>
2023-03-29imx: imx8ulp: Adjust handshake to sync TRDC and XRDC completionYe Li1-7/+1
To fit the DBD_EN fused part, we re-design the TRDC and XRDC assignment. M33 will be the TRDC owner and needs to configure TRDC. A35 is the XRDC owner, ATF will configure XRDC. The handshake between U-boot and M33 image is used to sync TRDC and XRDC configuration completion. Once the handshake is done, A35 and M33 can access the allowed resources in others domain. The handshake is needed when M33 is booted or DBD_EN fused, because both cases will enable the TRDC. If handshake is timeout, the boot will hang. We use SIM GPR0 to pass the info from SPL to u-boot, because before the handshake, u-boot can't access SEC SIM and FSB. Signed-off-by: Ye Li <ye.li@nxp.com> Reviewed-by: Jacky Bai <ping.bai@nxp.com>
2023-03-29imx: imx8ulp: Get chip revision from SentinelYe Li1-7/+3
In both SPL and u-boot, after probing the S400 MU, get the chip revision, lifecycle and UID from Sentinel. Update get_cpu_rev to use the chip revision not hard coded it for A0 Signed-off-by: Ye Li <ye.li@nxp.com> Reviewed-by: Peng Fan <peng.fan@nxp.com>
2023-03-29include: configs: am65x_evm: Change to using .envNikhil M Jain1-0/+47
Move to using .env file for setting up environment variables for am65x. Signed-off-by: Nikhil M Jain <n-jain1@ti.com> Reviewed-by: Tom Rini <trini@konsulko.com>
2023-03-29board: ti: am62x: am62x: Include K3 common .env filesNikhil M Jain1-72/+2
Include ti_armv7_common.env and ti/mmc.env, which includes' K3 common environment variables used across different K3 boards. This patch depends on https://lore.kernel.org/all/20230315052745.110502-1-n-francis@ti.com/ Signed-off-by: Nikhil M Jain <n-jain1@ti.com> Reviewed-by: Tom Rini <trini@konsulko.com>
2023-03-29include: configs: am62ax: Change to using .envNikhil M Jain1-0/+33
Move to using .env file for setting up environment variables for am62ax. This patch depends on https://lore.kernel.org/all/20230315052745.110502-1-n-francis@ti.com/ Signed-off-by: Nikhil M Jain <n-jain1@ti.com> Reviewed-by: Tom Rini <trini@konsulko.com>
2023-03-29include: configs: j721e_evm: Change to using .envNeha Malcom Francis2-0/+94
Move to using .env file for setting up environment variables for J721E and J7200. Signed-off-by: Neha Malcom Francis <n-francis@ti.com> Reviewed-by: Tom Rini <trini@konsulko.com>
2023-03-29include: configs: j721s2_evm: Change to using .envNeha Malcom Francis2-0/+62
Move to using .env file for setting up environment variables for J721S2. Signed-off-by: Neha Malcom Francis <n-francis@ti.com> Reviewed-by: Tom Rini <trini@konsulko.com>
2023-03-29arm: mach-k3: introduce generic board detction kconfig optionChristian Gmeiner1-0/+1
For non TI boards it is not possible to enable the do_board_detect() call as TI_I2C_BOARD_DETECT is defined in board/ti/common/Kconfig. I want to use do_board_detect() to dectect boards and properties based on some SPI communication with a FPGA. Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com> Reviewed-by: Tom Rini <trini@konsulko.com>
2023-03-29board: ti: Kconfig: Correct invalid Kconfig syntaxNeha Malcom Francis6-14/+0
Kconfig does not support using 'select' to select a 'choice'. A choice can be configured by either setting the choice symbol to 'y' in a configuration file or by setting a 'default' of the choice. In board/ti/*/Kconfig the SOC_K3_* choice is already set to 'y' in their corresponding configs/*_defconfig file. So remove selecting it. Signed-off-by: Neha Malcom Francis <n-francis@ti.com>
2023-03-29iot2050: Add support for configuring M.2 connectorJan Kiszka1-1/+258
The M.2 slots of the related IOT2050 variant need to be configured according to the plugged cards. This tries to detect the card using the M.2 configuration pins of the B-key slot. If that fails, a U-Boot environment variable can be set to configure manually. This variable is write-permitted also in secure boot mode as it is not able to undermine the integrity of the booted system. The configuration is then applied to mux the serdes and to fix up the device tree passed to or loaded by the bootloader. The fix-ups are coming from device tree overlays that are embedded into the firmware image and there also integrity protected. The OS remains free to load a device tree to which they do not apply: U-Boot will not fail to boot in that case. Based on original patch by Chao Zeng. Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
2023-03-29board: siemens: iot2050: use the named gpio to control the user-buttonchao zeng1-1/+1
User-button is controlled by the mcu domain gpio number 25. But main0 main1 mcu domain all have gpio number 25. To identify where the gpio is from, Using gpio controll base as the prefix to indicate the gpio resource. Signed-off-by: chao zeng <chao.zeng@siemens.com> Reviewed-by: Simon Glass <sjg@chromium.org>
2023-03-29arm: dts: iot2050: Optionally embed OTP programming data into imageJan Kiszka1-0/+7
Use external blob otpcmd.bin to replace the 0xff filled OTP programming command block to create a firmware image that provisions the OTP on first boot. This otpcmd.bin is generated from the customer keys using steps described in the meta-iot2050 integration layer for the device. Based on original patch by Baocheng Su. Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
2023-03-29iot2050: Add watchdog start to bootcmdJan Kiszka1-0/+8
Allows run-time control over watchdog auto-start and the timeout via setting the environment variable watchdog_timeout_ms. A value of zero means "do not start". Use CONFIG_WATCHDOG_TIMEOUT_MSECS as initial value and this to zero by default. Users can then enable the watchdog once the use and OS which picks it up during boot. Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
2023-03-29iot2050: Migrate settings into board env fileJan Kiszka1-0/+9
Anything that is not boot-env related is better kept there by now. At this chance, also drop a stale comment from iot2050.h Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
2023-03-29arm: dts: iot2050: Use the auto generator nodes for fdtSu Baocheng1-0/+3
Refactor according to the entry `fit: Entry containing a FIT` of document tools/binman/README.entries. As the generator uses the device tree name for the config description, board_fit_config_name_match requires a small adjustment as well. Signed-off-by: Su Baocheng <baocheng.su@siemens.com> [Jan: re-add now required CONFIG_OF_LIST, update config matching] Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> Reviewed-by: Simon Glass <sjg@chromium.org>
2023-03-29board: siemens: iot2050: Split the build for PG1 and PG2Su Baocheng2-14/+26
Due to different signature keys, the PG1 and the PG2 boards can no longer use the same FSBL (tiboot3). This makes it impossible anyway to maintaine a single flash.bin for both variants, so we can also split the build. A new target is added to indicates the build is for PG1 vs. PG2 boards. Hence now the variants have separated defconfig files. The runtime board_is_sr1() check does make no sense anymore, so remove it and replace with build time check. Documentation is updated accordingly. New binary artifacts are already available via meta-iot2050. Signed-off-by: Su Baocheng <baocheng.su@siemens.com> [Jan: refactor config option into targets, tweak some wordings] Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
2023-03-27Merge branch 'master' into nextTom Rini8-22/+91
2023-03-24Merge branch 'rpi-2023.04' of ↵WIP/24Mar2023Tom Rini1-1/+52
https://source.denx.de/u-boot/custodians/u-boot-raspberrypi - Fixes for booting newer revs of the SoC in the Raspberry Pi 4 - Propagate some firmware DT properties to the loaded DT - Update the Zero2W upstream DT name
2023-03-22purism: librem5: Fix a function declaration in spl.cWIP/2023-03-22-assorted-minor-code-cleanupsTom Rini1-1/+2
Here we implement usb_gadget_handle_interrupts() but did not include <linux/usb/gadget.h> so did not have the declaration correct. Fix this and add the missing include. Signed-off-by: Tom Rini <trini@konsulko.com>
2023-03-22spl: Add function prototype for spl_mmc_get_uboot_raw_sectorTom Rini1-1/+2
We did not add a prototype for spl_mmc_get_uboot_raw_sector to include/spl.h before, so add and document one now. Correct the incorrect prototype in board/advantech/imx8mp_rsb3720a1/imx8mp_rsb3720a1.c and ensure that we have spl.h where we define a non-weak spl_mmc_get_uboot_raw_sector as well. Signed-off-by: Tom Rini <trini@konsulko.com>
2023-03-22arm: Correct cpu_reset function prototype on some platformsTom Rini2-2/+4
Some platforms were not including <cpu_func.h> which sets the prototype for reset_cpu, and in turn had it set wrong. Correct these cases. Signed-off-by: Tom Rini <trini@konsulko.com>