diff options
author | Ahmad Fatoum <a.fatoum@pengutronix.de> | 2021-10-01 12:09:49 +0200 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2021-10-05 09:05:37 +0200 |
commit | 35d4cf996034badd45b80c9fcd61e53036786421 (patch) | |
tree | 71b9cb0a3b2b9b893bd1aec03f8f752bf24e798f /arch/arm/dts | |
parent | c4d8f7744687100abcc0b45e7e2ff1af2b681537 (diff) | |
download | barebox-35d4cf996034badd45b80c9fcd61e53036786421.tar.gz barebox-35d4cf996034badd45b80c9fcd61e53036786421.tar.xz |
ARM: i.MX8MN: add i.MX8MN-EVK support
With driver support in place, we can now build and run barebox in the
i.MX8MN. Following tested working:
- Setting up DDR4 SDRAM
- Booting from SD-Card
- Booting from eMMC
- Updating barebox in SD-Card/eMMC boot partition
- USB Fastboot, ACM gadgets
- UART
- Early I2C with bd71837
- Ethernet
- Loading and communicating with TF-A
The resulting image supports both DDR4 and LPDDR4. They use different
PMICs, so probing the i2c addresses of them indicates what DRAM type
to setup. I have only tested this on a DDR4 EVK, but the LPDDR4 code
is equivalent to what's already used in barebox with i.MX8M Mini
and Plus, so it should work(tm).
Notably missing:
- boot from USB SDP doesn't work. early debug_ll doesn't indicate
that barebox PBL was actually entered.
This can follow later though.
Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
Link: https://lore.barebox.org/20211001100949.6891-9-a.fatoum@pengutronix.de
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'arch/arm/dts')
-rw-r--r-- | arch/arm/dts/Makefile | 1 | ||||
-rw-r--r-- | arch/arm/dts/imx8mn-evk.dts | 62 |
2 files changed, 63 insertions, 0 deletions
diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile index ffa9fe88c1..bc78037c7d 100644 --- a/arch/arm/dts/Makefile +++ b/arch/arm/dts/Makefile @@ -125,6 +125,7 @@ lwl-$(CONFIG_MACH_TECHNEXION_WANDBOARD) += imx6q-wandboard.dtb.o imx6dl-wandboar lwl-$(CONFIG_MACH_TECHNEXION_PICO_HOBBIT) += imx6ul-pico-hobbit.dtb.o lwl-$(CONFIG_MACH_NXP_IMX6ULL_EVK) += imx6ull-14x14-evk.dtb.o lwl-$(CONFIG_MACH_NXP_IMX8MM_EVK) += imx8mm-evk.dtb.o +lwl-$(CONFIG_MACH_NXP_IMX8MN_EVK) += imx8mn-evk.dtb.o lwl-$(CONFIG_MACH_NXP_IMX8MP_EVK) += imx8mp-evk.dtb.o lwl-$(CONFIG_MACH_NXP_IMX8MQ_EVK) += imx8mq-evk.dtb.o lwl-$(CONFIG_MACH_TORADEX_COLIBRI_T20) += tegra20-colibri-iris.dtb.o diff --git a/arch/arm/dts/imx8mn-evk.dts b/arch/arm/dts/imx8mn-evk.dts new file mode 100644 index 0000000000..9fe24b3184 --- /dev/null +++ b/arch/arm/dts/imx8mn-evk.dts @@ -0,0 +1,62 @@ +// SPDX-License-Identifier: (GPL-2.0 OR MIT) +/* + * Copyright 2017 NXP + * Copyright (C) 2017 Pengutronix, Lucas Stach <kernel@pengutronix.de> + */ + +/dts-v1/; + +#include <arm64/freescale/imx8mn-evk.dts> + +/ { + chosen { + environment-sd { + compatible = "barebox,environment"; + device-path = &usdhc2, "partname:barebox-environment"; + status = "disabled"; + }; + environment-emmc { + compatible = "barebox,environment"; + device-path = &usdhc3, "partname:barebox-environment"; + status = "disabled"; + }; + }; +}; + +&fec1 { + phy-reset-gpios = <&gpio4 22 GPIO_ACTIVE_LOW>; +}; + +&usdhc2 { + #address-cells = <1>; + #size-cells = <1>; + + partition@0 { + label = "barebox"; + reg = <0x0 0xe0000>; + }; + + partition@e0000 { + label = "barebox-environment"; + reg = <0xe0000 0x20000>; + }; +}; + +&usdhc3 { + #address-cells = <1>; + #size-cells = <1>; + + partition@0 { + label = "barebox"; + reg = <0x0 0xe0000>; + }; + + partition@e0000 { + label = "barebox-environment"; + reg = <0xe0000 0x20000>; + }; +}; + +&ocotp { + barebox,provide-mac-address = <&fec1 0x640>; +}; |