summaryrefslogtreecommitdiffstats
path: root/arch/arm/boards/zii-imx8mq-dev
Commit message (Collapse)AuthorAgeFilesLines
* ARM: i.MX8M boards: always set up UARTSascha Hauer2020-08-211-4/+6
| | | | | | | | | | | | | | | | | | | Quoting Lucas on b96cc34f91 ("ARM: nxp-imx8mm-evk: always set up UART"): | When the TF-A is configured to have some output on the UART it does not | set up the UART on its own, but just expects a pre-existing configuration. | If Barebox did not set up the UART in the !DEBUG_LL case, TF-A will just | hang without any user accessible debug output, which is a very non-obvious | failure, so better be safe and always set up the UART in case TF-A wants | to use it. This patch adopts this for all i.MX8M boards and makes the early UART setup consistent across all of them. We also add pbl_set_putc() to enable regular PBL console messages. For the i.MX8MM-EVK the unnecessary call to imx8m_uart_setup_ll() is dropped; we already configured the UART in imx8m_uart_setup(), no need to do that again. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* scripts: imx-image: rename dcdofs to ivtofsSascha Hauer2020-07-141-1/+1
| | | | | | | | | This renames the dcdofs config option in the imx-image tool to ivtofs. dcdofs is a misnomer. The DCD (Device Configuration Data) is only one part of the data linked into the IVT (Image Vector Table), but the meaning of the option is really the latter, not the former. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* ARM: zii-imx8mq-dev: Register SD card slot with BBUAndrey Smirnov2020-04-031-0/+1
| | | | | | | | | Register SD card slot with BBU. This is really useful for development since this allows to update the bootloader on SD card without having to take it out of the device. Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* ARM: zii-common: Add common environment directoryAndrey Smirnov2020-04-032-24/+1
| | | | | | | | | | Establish a common environment directory between all ZII boards, so that we could share common bits and pieces. As a first step, get rid of board scecific net boot scripts and replace them with a single shared one. Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* ARM: zii-imx8mq-dev: Differentiate between Zest and RMB3Andrey Smirnov2020-04-011-1/+4
| | | | | | | | Add code to configure hostname so we could differentiate between the two in scripts. Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* ARM: zii-common: Support rave_switch_reset on ZII UltraAndrey Smirnov2020-04-012-0/+13
| | | | | | | | ZII Ultra boards implement switch watchdog the same way as ZII RDU2. Add necessary code to make rave_switch_reset availible. Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* ARM: i.MX8M: Add DDR controller supportSascha Hauer2020-02-192-9/+2
| | | | | | | | | | | | | | | This adds the DDR driver for the i.MX8MQ/i.MX8MM. It's taken from U-Boot v2020.04-rc1 with slight modifications for barebox The i.MX8MQ boards in the tree currently use the output of an earlier version of the NXP i.MX8M DDR Tool which doesn't use a controller driver but instead does most stuff in board code. It seems this can coexist with the new driver, only a few helper functions that previously lived in arch/arm/mach-imx/imx8-ddrc.c are now provided by the new driver. Tested on an i.MX8MM EVK Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* ARM: i.MX8MQ boards: Add missing includesSascha Hauer2020-02-191-0/+1
| | | | | | | | The i.MX8MQ board files all use get_builtin_firmware(), thus need include/firmware.h. This is currently only indirectly included, include it directly. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* ARM: i.MX8M: Add and use function for early UART clock setupSascha Hauer2020-02-191-8/+1
| | | | | | | | The i.MX8M boards all have the same code for setting up the UART clock. Add a common helper for it. In the helper just setup the clocks for all UARTs as it's not worth it to have separate functions for each UART. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* ARM: i.MX8M: rename imx8-ccm-regs.h to imx8m-ccm-regs.hSascha Hauer2020-02-191-1/+1
| | | | | | | i.MX8 is something different than the i.MX8M and both will not share this header file, so rename it to imx8m-ccm-regs.h Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* ARM: i.MX: Add SoC namespace to imx7/8m CCM definesSascha Hauer2020-02-191-6/+6
| | | | | | | | | The CCM defines used on i.MX7 and i.MX8M do not have any SoC namespace. Add it to make clear where they are supposed to be used. Since it looks confusing to call i.MX7 specific defines on i.MX8M and vice versa, duplicate them for both SoCs. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* ARM: i.MX8M: rename functions to be i.MX8M specificSascha Hauer2020-02-191-1/+1
| | | | | | | imx8_esdhc_load_image() and friends can't be used on the big variants of the i.MX8, so rename to imx8m_esdhc_load_image() Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* ARM: i.MX8M: rename i.MX8M specific functionSascha Hauer2020-02-191-1/+1
| | | | | | | The big i.MX8 variants have completely other UARTs than the i.MX8M variants, so rename imx8_uart_setup_ll() to imx8m_uart_setup_ll(). Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* ARM: i.MX8M: rename imx8_* bootsource functions to imx8mq_*Sascha Hauer2020-02-191-1/+1
| | | | | | | Those will differ between i.MX8MQ and i.MX8MM, so give them the appropriate prefix before introducing i.MX8MM support. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* ARM: i.MX8M: add and use imx8mq_setup_pad()Sascha Hauer2020-02-191-2/+1
| | | | | | | | | | We already have a mx8_setup_pad() function for early iomux setup, but it is unused. Add a i.MX8MQ specific wrapper for the function which passes the correct base address to mx8_setup_pad(). Let the boards use this function. While at it rename mx8_setup_pad() to imx8_setup_pad() which is more consistent to other i.MX specific functions. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* ARM: i.MX8: Move iomux header to make space for i.MX8MMSascha Hauer2020-02-191-1/+1
| | | | | | | | Parts of iomux-mx8.h are for i.MX8M and others for i.MX8MQ only, but never for i.MX8 in general. Split this up into different file and avoid the imx8_ prefix. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* esdhc-pbl: allow to skip starting i.MX8 imageLucas Stach2020-01-091-1/+1
| | | | | | | | | Add an option that allows to just load the image into memory, but return to the calling function instead of directly jumping to the loaded image. Signed-off-by: Lucas Stach <l.stach@pengutronix.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* ARM: zii-imx8mq-dev: fixup touchscreen and ethernet switch aliasLucas Stach2019-12-201-2/+19
| | | | | Signed-off-by: Lucas Stach <l.stach@pengutronix.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* ARM: zii-imx8mq-dev: add DT fixupsLucas Stach2019-12-201-0/+138
| | | | | | | | | | There are only two fixups we need to apply at the moment: - The 27" RMB3 based unit has a eGalax Touchscreen instead of Synaptics. - The 10.1" SCU/CCU unit has no DEB and thus no switch, but instead the i210 ethernet is routed to the external connector directly. Signed-off-by: Lucas Stach <l.stach@pengutronix.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* ARM: zii-imx8mq-dev: make eMMC update target the defaultLucas Stach2019-12-181-1/+2
| | | | | | | We only have a single update target, so make it the default. Signed-off-by: Lucas Stach <l.stach@pengutronix.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* ARM: zii-imx8mq-dev: Switch to using compressed DTBAndrey Smirnov2019-09-171-4/+4
| | | | | | | | Reduces image size by ~50K (from 547K to 496K) on my test configuration. Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* ARM: zii-imx8mq-dev: Drop extra relocation codeAndrey Smirnov2019-09-171-2/+0
| | | | | | | | | Since commit 3ce6447849 ("ARM: zii-imx8mq-dev: Do setup_c() before accessing global variables") appropriate relocation will be done unconditionally, so we don't need to do it again in this corner case. Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* ARM: zii-imx8mq-dev: Do setup_c() before accessing global variablesSascha Hauer2019-07-161-26/+33
| | | | | | | | The lowlevel board code accesses global variables, so call relocate_to_current_adr() / setup_c() to make sure we have a valid C environment. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* ARM: rdu3: disable i210 network interfaceLucas Stach2019-06-041-0/+1
| | | | | | | | | This causes large timeouts when trying to bring it up. The FEC interface is good enough for NFS booting. Signed-off-by: Lucas Stach <l.stach@pengutronix.de> Reviewed-by: Vivien Didelot <vivien.didelot@gmail.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* ARM: zii-imx8mq-dev: add defaultenv with simple boot configurationLucas Stach2019-06-047-0/+43
| | | | | | Signed-off-by: Lucas Stach <l.stach@pengutronix.de> Reviewed-by: Vivien Didelot <vivien.didelot@gmail.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* ARM: zii-imx8mq-dev: add barebox and environment partitionLucas Stach2019-06-041-0/+6
| | | | | | | | | | | While barebox itself should be on the eMMC boot partitions eventually it's nice to have this set up, so one can dd a prebuilt SD card image to the eMMC and have something working. A working Barebox env is also very convinient to have around during development. Signed-off-by: Lucas Stach <l.stach@pengutronix.de> Reviewed-by: Vivien Didelot <vivien.didelot@gmail.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* ARM: zii-imx8mq-dev: Drop unnecessary barrier() in switch statementAndrey Smirnov2019-04-231-7/+0
| | | | | | | | | | | | | AArch64 uses PC-relative addressing instead of absolute one for data lookups, so compiling switch statement into a LUT shouldn't be a problem regardless if relocation happened or not. Disassembly of PBL code looks almost exactly the same with or without this workaround, so it is clearly not needed. Drop it. Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com> Cc: Heiner Kallweit <hkallweit1@gmail.com> Cc: Chris Healy <cphealy@gmail.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* ARM: i.MX8MQ: Don't use cpu_is_mx8mq() at core_initcall levelAndrey Smirnov2019-03-181-1/+1
| | | | | | | | | | | | | | | | | Since __imx_cpu_type won't be initialized until imx_init()@postcore_initcall is executed cpu_is_mx8mq() will only work correctly at core_initcall level so long as imx_cpu_type does not resolve into __imx_cpu_type. This is currently the case and imx8mq_init_syscnt_frequency() works as expected, but it probably won't be in the future. To avoid this problem introduce imx8mq_cpu_lowlevel_init() and do system counter frequency initialization there. Also convert all of the i.MX8MQ boards to use this new function. Fixes: 5691aed9a ("ARM: i.MX8MQ: Check CPU type in imx8mq_init_syscnt_frequency()") Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* ARM: i.MX: Add support for ZII i.MX8MQ based devicesAndrey Smirnov2019-02-117-0/+1431
Add support for the following ZII i.MX8MQ based boards: - ZII i.MX8MQ RMB3 - ZII i.MX8MQ Zest Most of the basic peripherals are supported by this patch. More advanced features such as PCIe, display support, etc, are planned to be added later. Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>