summaryrefslogtreecommitdiff
path: root/board/toradex
AgeCommit message (Collapse)Author
2020-09-17apalis-imx8qm: rename all occurences to apalis-imx8Philippe Schenker
The Toradex product is called apalis-imx8 consisting of SoM with i.MX8QM and i.MX8QP SoCs. Signed-off-by: Philippe Schenker <philippe.schenker@toradex.com> Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>
2020-09-17colibri-imx8qxp: rename all occurences to colibri-imx8xPhilippe Schenker
The Toradex product is called colibri-imx8x consisting of SoM with i.MX8QXP and i.MX8DX SoCs. Signed-off-by: Philippe Schenker <philippe.schenker@toradex.com> Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>
2020-09-17colibri_imx7: wrap video specific funcs with ifdefsIgor Opaniuk
Wrap video specific functionality with ifdefs. Fixes: 195011b24d("colibri-imx7: fix splash logo drawing") Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
2020-09-17toradex: drop legacy show_boot_logo function and use splashscreenIgor Opaniuk
Drop show_boot_logo legacy function, as splashscreen functionality can be used instead. Fixes: d324189772("toradex: common: show boot logo") Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
2020-09-17colibri_imx7: use splashcreen value instead of legacy functionIgor Opaniuk
Set proper splashscreen env value instead of calling legacy function to show embed boot logo. Fixes: 195011b24d("colibri-imx7: fix splash logo drawing") Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
2020-09-17colibri-imx6ull: use splashcreen value instead of legacy functionIgor Opaniuk
Set proper splashscreen env value instead of calling legacy function to show embed boot logo. Fixes: 391c712dde("colibri-imx6ull: show boot logo") Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
2020-07-27colibri-imx7: fix splash logo drawingIgor Opaniuk
1. Configure white on black for video console. 2. Enable printing bmp logo during late board init stage. 3. Use iomux configuration from device tree. Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
2020-07-27colibri-imx6ull: show boot logoIgor Opaniuk
1. Show boot logo embed in U-Boot blob. 2. Drop iomux configration for LCD, and use the one provided in device tree. Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
2020-07-27ARM: dts: imx7-colibri: multiple node updatesIgor Opaniuk
1. Move u-boot specific nodes to u-boot dts include: legacy lcdif node and aliases. 2. Add iomux configuration for LCD. 3. Drop un-needed u-boot,dm-pre-reloc for alias node. 4. Fix display-timings, use the one from Toradex downstream kernel [1] [1]: https://git.toradex.com/cgit/linux-toradex.git/tree/arch/arm/boot/dts/imx7-colibri-eval-v3.dtsi?h=toradex_4.9-2.3.x-imx#n206 Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
2020-07-27toradex: common: show boot logoIgor Opaniuk
Add function for showing boot logo, embed into u-boot blob. Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
2020-07-27verdin-imx8mm: add EEPROM support for carrier boardIgor Opaniuk
Enable these Kconfig symbols: TDX_CFG_BLOCK_EXTRA=y TDX_HAVE_EEPROM_EXTRA=y Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
2020-07-27toradex: tdx-cfg-block: add carrier board info printingIgor Opaniuk
Add carrier board info printing during boot time: U-Boot 2020.07-rc4-02435-g1756e05 (Jun 22 2020 - 22:43:59 +0300) CPU: Freescale i.MX8MMQ rev1.0 at 1200 MHz .... Carrier: Toradex Verdin Development Board V1.0A, Serial# 10622780 Verdin iMX8MM # Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
2020-07-27toradex: tdx-cfg-clock: add migration routine from PID8Igor Opaniuk
Add migration routine from PID8 pre-stored values on EEPROM (including sane value checks). Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
2020-07-27toradex: tdx-cfg-block: add support for EEPROMIgor Opaniuk
This introduces support for EEPROM as a storage for the main Toradex config block and additional config blocks on extra EEPROM chips (on carrier board or video adapters). To enable EEPROM as a storage for the main config block: TDX_HAVE_EEPROM=y. For additional EEPROMs please enable this Kconfig symbol: TDX_CFG_BLOCK_EXTRA=y. Information about existing EEPROM chips is provided via Device Tree using aliases. You can also write configuration for the carrier board using create_carrier subcommand for cfgblock. Example: Verdin iMX8MM # cfgblock create_carrier Supported carrier boards: UNKNOWN CARRIER = [0] Verdin Carrier Board = [1] Choose your carrier board (provide ID): 1 Enter carrier board version (e.g. V1.1B): V1.0A Enter carrier board serial number: 10622780 Also with barcode: Verdin iMX8MM # cfgblock create carrier -y 0156100010622780 Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
2020-07-27toradex: tdx-cfg-block: add carrier boards and display adaptersIgor Opaniuk
Add defines for supported carrier boards and display adapters. Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
2020-07-27toradex: tdx-cfg-block: add EEPROM read/store wrappersIgor Opaniuk
These functions wrap functionality for storing config blocks in EEPROM. Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
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 <masahiroy@kernel.org>
2020-07-14imx8m: Refactor the OPTEE memory removalPeng Fan
Current codes assume the OPTEE address is at the end of first DRAM bank. Adjust the process to allow OPTEE in the middle of first bank. When OPTEE memory is removed from first bank, it may split the first bank to two banks, adjust the MMU table for the split case, Since the default CONFIG_NR_DRAM_BANKS is 4, it is enough, just enlarge i.MX8MP evk to default to avoid issue. Signed-off-by: Ye Li <ye.li@nxp.com> Signed-off-by: Silvano di Ninno <silvano.dininno@nxp.com> Tested-by: Silvano di Ninno <silvano.dininno@nxp.com> Signed-off-by: Peng Fan <peng.fan@nxp.com>
2020-06-30colibri_pxa270: add mmc platform dataMarcel Ziswiler
Add MMC platform data. While at it also fix trivial checkpatch.pl issues. Signed-off-by: Marcel Ziswiler <marcel@ziswiler.com>
2020-06-18colibri_t20: change maintainerIgor Opaniuk
Take over maintainership for Colibri T20 module. Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com> Acked-by: Lucas Stach <dev@lynxeye.de>
2020-05-18common: Drop linux/bitops.h from common headerSimon Glass
Move this uncommon header out of the common header. Signed-off-by: Simon Glass <sjg@chromium.org>
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 <sjg@chromium.org>
2020-05-18common: Drop log.h from common headerSimon Glass
Move this header out of the common header. Signed-off-by: Simon Glass <sjg@chromium.org>
2020-05-18command: Remove the cmd_tbl_t typedefSimon Glass
We should not use typedefs in U-Boot. They cannot be used as forward declarations which means that header files must include the full header to access them. Drop the typedef and rename the struct to remove the _s suffix which is now not useful. This requires quite a few header-file additions. Signed-off-by: Simon Glass <sjg@chromium.org>
2020-05-18common: Drop init.h from common headerSimon Glass
Move this uncommon header out of the common header. Signed-off-by: Simon Glass <sjg@chromium.org>
2020-05-18common: Drop image.h from common headerSimon Glass
Move this uncommon header out of the common header. Signed-off-by: Simon Glass <sjg@chromium.org>
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 <sjg@chromium.org>
2020-05-01board: apalis_imx6: Add KSZ9131 phy skew settingsPhilippe Schenker
This patch adds skew register settings for KSZ9131. It checks first which phy is on the board and then applies the correct skew settings. Skew settings calculation for the KSZ9131: The i.MX6 SoC has an output skew tolerance of -100ps to 900ps. All PCB traces where routed exactly the same length so we can calculate the skew settings without taking the length into consideration. The traces are all length matched. RXC skew (PHY to MAC): - We use the 2ns DLL controlled delay on the PHY - We do not use the skew registers This results in the following values: RXC PHY fixed Delay 2000ps PHY Added Delay 0ps T_setup_R min 2.00ns T_setup_R typ 2.00ns T_setup_R max 2.00ns T_hold_R min 1.60ns T_hold_R typ 2.00ns T_hold_R max 2.40ns That means we are well within RGMII specs. TXC skew (MAC to PHY): - We use the 2ns DLL controlled delay on the PHY - We then subtract ~0.6ns with TXD[0:3] and TXC clock pad skew register in a resulting ~1.4ns delay. This results in the following values under consideration of the tolerances: TXC min TXC typ TXC max MAC min -100ps -100ps -100ps MAC max 900ps 900ps 900ps PHY fixed Delay 2000ps 2000ps 2000ps PHY added Delay -340ps -600ps -859ps T_setup_T min 1.56ns 1.30ns 1.04ns T_setup_T typ 2.06ns 1.80ns 1.54ns T_setup_T max 2.56ns 2.30ns 2.04ns T_hold_T min 1.04ns 1.30ns 1.56ns T_hold_T typ 1.94ns 2.20ns 2.46ns T_hold_T max 2.84ns 3.10ns 3.36ns This shows that T_hold_T min and T_setup_T min times are out of spec for RGMII timing. However the KSZ9131 has a minimal value for this time of 0.8ns which is met under all circumstances. Signed-off-by: Philippe Schenker <philippe.schenker@toradex.com>
2020-05-01board: verdin-imx8mm: Add KSZ9131 phy skew settingsPhilippe Schenker
This patch determines which phy is placed on the board with the PHY ID then it sets the same settings for KSZ9031 as before but for KSZ9131 it enables both RXC and TXC delay lines in the PHY. This will compensate the missing delay from the MAC. Other skew settings are not needed as the traces on board are routed exactly the same length Signed-off-by: Philippe Schenker <philippe.schenker@toradex.com> Tested-by: Igor Opaniuk <igor.opaniuk@toradex.com> Acked-by: Igor Opaniuk <igor.opaniuk@toradex.com>
2020-05-01verdin-imx8mm: Change board phy skew values for our ksz9031Philippe Schenker
This patches uses the existing functions for interacting with the KSZ9031 and uses the values appropriate for our board. Signed-off-by: Philippe Schenker <philippe.schenker@toradex.com> Tested-by: Igor Opaniuk <igor.opaniuk@toradex.com> Acked-by: Igor Opaniuk <igor.opaniuk@toradex.com>
2020-05-01imx: imx8m*: Remove do_reset from board filesClaudius Heine
Use the `do_reset` implementation of `arch/arm/lib/reset.c` in SPL instead. It is very close to what is done here, anyway, and plays more nicely with the rest of U-Boot than adding a custom `do_reset` implementation into board files. `do_reset` from `arch/arm/lib/reset.c` calls `reset_cpu` with 0 as the addr parameter while the boards are passing WDOG1_BASE_ADDR. This is ok because the `reset_cpu` implementation uses WDOG1_BASE_ADDR by default if 0 is passed in. Co-Authored-by: Harald Seiler <hws@denx.de> Signed-off-by: Claudius Heine <ch@denx.de> Signed-off-by: Harald Seiler <hws@denx.de> Reviewed-by: Marek Vasut <marex@denx.de>
2020-04-20Merge branch 'master' of https://gitlab.denx.de/u-boot/custodians/u-boot-imxTom Rini
2020-04-17verdin-imx8mm: adjust dram size in case bl32 is usedIgor Opaniuk
Adjust DRAM size in case BL32 secure payload is loaded (OP-TEE/Trusty), so during MMU initialization U-Boot won't touch this mem area. BL32 is loaded to the end of DRAM, bl32 payload size is read from rom_pointer[1]. This relates to the issue described in 59efa6b52b("imx8m: Fix MMU table issue for OPTEE memory"). Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
2020-04-16doc: update reference to README.imx8imagePatrick Delaunay
Update reference in many files detected by scripts/documentation-file-ref-check README.imx8image => imx/mkimage/imx8image.txt Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
2020-04-16doc: update reference to README.imximagePatrick Delaunay
Update reference in many files detected by scripts/documentation-file-ref-check README.imximage => imx/mkimage/imximage.txt Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
2020-04-07colibri_imx6: set gpr1 ENET_CLK_SELIgor Opaniuk
This fixes the issue when PHY auto negotiation never completes. Fixes: 431cd76dd8("colibri_imx6: migrate to DM_ETH") Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com> Reviewed-by: Oleksandr Suvorov <oleksandr.suvorov@toradex.com>
2020-03-05toradex: MAINTAINERS: entries for new reST docsIgor Opaniuk
Add entries for the newly created documentation files in reST format. Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com> Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
2020-03-05doc: board: colibri-imx8x: convert readme to reSTIgor Opaniuk
Convert README to reStructuredText format. Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com> Reviewed-by: Oleksandr Suvorov <oleksandr.suvorov@toradex.com> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> Tested-by: Bin Meng <bmeng.cn@gmail.com>
2020-03-05doc: board: apalis-imx8: convert readme to reSTIgor Opaniuk
Convert README to reStructuredText format. Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com> Reviewed-by: Oleksandr Suvorov <oleksandr.suvorov@toradex.com> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> Tested-by: Bin Meng <bmeng.cn@gmail.com>
2020-03-05doc: board: verdin-imx8mm: convert readme to reSTIgor Opaniuk
Convert README to reStructuredText format. Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com> Reviewed-by: Oleksandr Suvorov <oleksandr.suvorov@toradex.com> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> Tested-by: Bin Meng <bmeng.cn@gmail.com> [bmeng: spell out U-Boot correctly] Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
2020-02-09board: toradex: verdin-imx8mm: add MAINTAINERSIgor Opaniuk
Assign Igor Opaniuk as a board maintainer. Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Reviewed-by: Oleksandr Suvorov <oleksandr.suvorov@toradex.com>
2020-02-09board: toradex: verdin-imx8mm: add READMEIgor Opaniuk
Add README with build steps for U-boot and TF-A for Verdin iMX8M Mini SoM. Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Reviewed-by: Oleksandr Suvorov <oleksandr.suvorov@toradex.com>
2020-02-09board: toradex: Add Verdin iMX8M Mini supportIgor Opaniuk
This adds initial minimal support for the Toradex Verdin iMX8M Mini Quad 2GB WB IT V1.0A module. They are now strapped to boot from eFuses which are factory fused to properly boot from their on-module eMMC. U-Boot supports booting from the on-module eMMC only, SDP support is disabled for now due to missing i.MX 8M Mini USB support. Functionality wise the following is known to be working: - eMMC, 8-bit and 4-bit MMC/SD card slots - Ethernet - GPIOs - I2C Boot sequence is: SPL ---> ATF (TF-A) ---> U-boot proper ATF, U-boot proper and u-boot.dtb images are packed into a FIT image, loaded by SPL. Boot: U-Boot SPL 2020.01-00187-gd411d164e5 (Jan 26 2020 - 04:47:26 +0100) Normal Boot Trying to boot from MMC1 NOTICE: Configuring TZASC380 NOTICE: RDC off NOTICE: BL31: v2.0(release):rel_imx_4.14.98_2.3.0-0-g09c5cc994-dirty NOTICE: BL31: Built : 01:11:41, Jan 25 2020 NOTICE: sip svc init U-Boot 2020.01-00187-gd411d164e5 (Jan 26 2020 - 04:47:26 +0100) CPU: Freescale i.MX8MMQ rev1.0 at 0 MHz Reset cause: POR DRAM: 2 GiB MMC: FSL_SDHC: 0, FSL_SDHC: 1, FSL_SDHC: 2 Loading Environment from MMC... OK In: serial Out: serial Err: serial Model: Toradex Verdin iMX8M Mini Quad 2GB Wi-Fi / BT IT V1.0A, Serial# 06535149 Net: eth0: ethernet@30be0000 Hit any key to stop autoboot: 0 Verdin iMX8MM # Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com> Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Reviewed-by: Oleksandr Suvorov <oleksandr.suvorov@toradex.com>
2020-02-09toradex: tdx-cfg-block: add Verdin iMX8M Mini/Nano supportMarcel Ziswiler
Add support for storing configuration for Verdin iMX8M Mini and Nano SoMs in Toradex config block. Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com> Reviewed-by: Oleksandr Suvorov <oleksandr.suvorov@toradex.com>
2020-02-09toradex: tdx-cfg-block: add Apalis iMX8X supportMarcel Ziswiler
Add support for storing configuration for Apalis iMX8X SoM in Toradex config block. Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Reviewed-by: Oleksandr Suvorov <oleksandr.suvorov@toradex.com>
2020-01-21Merge tag 'u-boot-imx-20200121' of ↵Tom Rini
https://gitlab.denx.de/u-boot/custodians/u-boot-imx --------------------------------- imx8: cleanup, fix warnings imx6ull: add VisionSOM SoM and EVK mx7ulp: fix warning due network, cleanup mx7dsabre: Fix dm probe pmic imx6: fixed for vining2000 Travis: https://travis-ci.org/sbabic/u-boot-imx/builds/639512296
2020-01-20colibri-imx8x: Remove unused function detail_board_ddr_info()Alifer Moraes
detail_board_ddr_info() is not used anywhere, so simply remove it. This function is only used by Layerscape, not by i.MX. This was detected by the following sparse warning: board/toradex/colibri-imx8x/colibri-imx8x.c:104:6: warning: no previous prototype for ‘detail_board_ddr_info’ [-Wmissing-prototypes] Signed-off-by: Alifer Moraes <alifer.wsdm@gmail.com>
2020-01-20apalis-imx8: Remove unused function detail_board_ddr_info()Alifer Moraes
detail_board_ddr_info() is not used anywhere, so simply remove it. This function is only used by Layerscape, not by i.MX. This was detected by the following sparse warning: board/toradex/apalis-imx8/apalis-imx8.c:92:6: warning: no previous prototype for ‘detail_board_ddr_info’ [-Wmissing-prototypes] Signed-off-by: Alifer Moraes <alifer.wsdm@gmail.com>
2020-01-17common: Move RAM-sizing functions to init.hSimon Glass
These functions relate to memory init so move them into the init header. Signed-off-by: Simon Glass <sjg@chromium.org>
2020-01-17common: Move reset_cpu() to the CPU headerSimon Glass
Move this function out of common.h and into a relevant header file. Signed-off-by: Simon Glass <sjg@chromium.org>