* [DistroKit] [PATCH v2] v8a: Add support for tq-ma93xxca
@ 2025-04-23 13:49 Fabian Pflug
2025-04-23 13:53 ` Ahmad Fatoum
2025-04-23 14:31 ` Robert Schwebel
0 siblings, 2 replies; 3+ messages in thread
From: Fabian Pflug @ 2025-04-23 13:49 UTC (permalink / raw)
To: distrokit; +Cc: Fabian Pflug
A new board, with an IMX93 processor.
- Barebox patch has been send upstream and accecpted into next
- magic number ist chosen at random
- has been tested on real hardware
Signed-off-by: Fabian Pflug <f.pflug@pengutronix.de>
---
There is still a small issue with USB-WLAN module not working.
v1 -> v2:
- reworded uploading in docs (Ahmad)
- fix spelling error in commit message (Ahmad)
- added barebox-env/bootloader GPT partition (Ahmad)
https://lore.distrokit.org/distrokit/37a1bdb7-74f5-4c4f-a2e6-82ea97d347df@pengutronix.de/T/#u
---
.../barebox-common-defaultenv/init/bootsource | 2 +-
configs/platform-v8a/barebox.config | 25 +++++++---
.../platform-v8a/config/images/imx93.config | 24 ++++++++++
configs/platform-v8a/dts/bootstate.dtsi | 21 +++++++++
configs/platform-v8a/kernelconfig | 9 ++--
...ma93xx-add-dummy-supply-to-regulator.patch | 38 +++++++++++++++
.../patches/barebox-2025.03.0/series | 1 +
configs/platform-v8a/platformconfig | 5 +-
.../platforms/image-tq-mba93xxca.in | 10 ++++
configs/platform-v8a/rules/firmware-imx.make | 1 +
.../rules/image-tq-mba93xxca.make | 35 ++++++++++++++
doc/hardware.rst | 1 +
doc/hardware_v8a_tqma93xxca.rst | 47 +++++++++++++++++++
13 files changed, 206 insertions(+), 13 deletions(-)
create mode 100644 configs/platform-v8a/config/images/imx93.config
create mode 100644 configs/platform-v8a/patches/barebox-2025.03.0/0001-ARM-dts-tqma93xx-add-dummy-supply-to-regulator.patch
create mode 100644 configs/platform-v8a/patches/barebox-2025.03.0/series
create mode 100644 configs/platform-v8a/platforms/image-tq-mba93xxca.in
create mode 100644 configs/platform-v8a/rules/image-tq-mba93xxca.make
create mode 100644 doc/hardware_v8a_tqma93xxca.rst
diff --git a/configs/platform-v8a/barebox-common-defaultenv/init/bootsource b/configs/platform-v8a/barebox-common-defaultenv/init/bootsource
index aa1d06d..19a0429 100644
--- a/configs/platform-v8a/barebox-common-defaultenv/init/bootsource
+++ b/configs/platform-v8a/barebox-common-defaultenv/init/bootsource
@@ -10,7 +10,7 @@ if [ "$bootsource" = mmc ]; then
global.boot.default="mmc$bootsource_instance net"
fi
-if of_compatible -k radxa,rock3a tq,imx8mp-tqma8mpql-mba8mpxl; then
+if of_compatible -k radxa,rock3a tq,imx8mp-tqma8mpql-mba8mpxl tq,imx93-tqma9352; then
global.boot.default="bootchooser net"
global bootchooser.state_prefix="state.bootstate"
global bootchooser.targets="system0 system1"
diff --git a/configs/platform-v8a/barebox.config b/configs/platform-v8a/barebox.config
index 7d3794a..1576088 100644
--- a/configs/platform-v8a/barebox.config
+++ b/configs/platform-v8a/barebox.config
@@ -48,6 +48,8 @@ CONFIG_ARCH_IMX8MM=y
CONFIG_ARCH_IMX8MN=y
CONFIG_ARCH_IMX8MP=y
CONFIG_ARCH_IMX8MQ=y
+CONFIG_ARCH_IMX9=y
+CONFIG_ARCH_IMX93=y
#
# i.MX8M boards
@@ -72,7 +74,7 @@ CONFIG_MACH_TQ_MBA8MPXL=y
#
# i.MX93 boards
#
-# CONFIG_MACH_TQMA93XX is not set
+CONFIG_MACH_TQMA93XX=y
# end of i.MX boards
#
@@ -80,7 +82,10 @@ CONFIG_MACH_TQ_MBA8MPXL=y
#
# CONFIG_IMX_IIM is not set
CONFIG_IMX_SAVE_BOOTROM_LOG=y
+CONFIG_HAB=y
+CONFIG_AHAB=y
# CONFIG_HABV4 is not set
+# CONFIG_HAB_CERTS_ENV is not set
# end of i.MX specific settings
#
@@ -138,6 +143,7 @@ CONFIG_BOARD_GENERIC_DT=y
# CONFIG_BOARD_GENERIC_FIT is not set
# end of General architecture-dependent options
+CONFIG_BOARD_TQ=y
CONFIG_CC_IS_GCC=y
CONFIG_GCC_VERSION=140201
CONFIG_CLANG_VERSION=0
@@ -517,6 +523,7 @@ CONFIG_CMD_USB=y
CONFIG_CMD_USBGADGET=y
CONFIG_CMD_WD=y
CONFIG_CMD_WD_DEFAULT_TIMOUT=0
+# CONFIG_CMD_HAB is not set
# end of Hardware manipulation
#
@@ -591,7 +598,7 @@ CONFIG_SERIAL_DEV_BUS=y
CONFIG_DRIVER_SERIAL_IMX=y
CONFIG_DRIVER_SERIAL_NS16550=y
# CONFIG_DRIVER_SERIAL_CADENCE is not set
-# CONFIG_DRIVER_SERIAL_LPUART32 is not set
+CONFIG_DRIVER_SERIAL_LPUART32=y
# CONFIG_SERIAL_SIFIVE is not set
# end of serial drivers
@@ -664,7 +671,7 @@ CONFIG_SPI_MEM=y
CONFIG_DRIVER_SPI_IMX=y
CONFIG_DRIVER_SPI_IMX_2_3=y
# CONFIG_DRIVER_SPI_LITEX_SPIFLASH is not set
-# CONFIG_SPI_NXP_FLEXSPI is not set
+CONFIG_SPI_NXP_FLEXSPI=y
CONFIG_SPI_ROCKCHIP=y
# end of SPI drivers
@@ -675,7 +682,7 @@ CONFIG_I2C=y
#
# CONFIG_I2C_GPIO is not set
CONFIG_I2C_IMX=y
-# CONFIG_I2C_IMX_LPI2C is not set
+CONFIG_I2C_IMX_LPI2C=y
# CONFIG_I2C_DESIGNWARE is not set
# CONFIG_I2C_MV64XXX is not set
CONFIG_I2C_RK3X=y
@@ -748,7 +755,7 @@ CONFIG_USB_DWC3=y
# CONFIG_USB_DWC3_GADGET is not set
CONFIG_USB_DWC3_DUAL_ROLE=y
CONFIG_USB_DWC3_OF_SIMPLE=y
-# CONFIG_USB_EHCI is not set
+CONFIG_USB_EHCI=y
CONFIG_USB_XHCI=y
# CONFIG_USB_ULPI is not set
CONFIG_USB_OTGDEV=y
@@ -908,7 +915,8 @@ CONFIG_GPIO_GENERIC=y
# CONFIG_GPIO_74XX_MMIO is not set
# CONFIG_GPIO_GENERIC_PLATFORM is not set
CONFIG_GPIO_IMX=y
-# CONFIG_GPIO_PCA953X is not set
+CONFIG_GPIO_VF610=y
+CONFIG_GPIO_PCA953X=y
# CONFIG_GPIO_PCF857X is not set
# CONFIG_GPIO_PL061 is not set
CONFIG_GPIO_ROCKCHIP=y
@@ -934,6 +942,7 @@ CONFIG_NVMEM=y
# CONFIG_NVMEM_SNVS_LPGPR is not set
CONFIG_IMX_OCOTP=y
# CONFIG_IMX_OCOTP_WRITE is not set
+# CONFIG_IMX_OCOTP_ELE is not set
# CONFIG_EEPROM_93XX46 is not set
CONFIG_NVMEM_ROCKCHIP_OTP=y
@@ -1064,6 +1073,7 @@ CONFIG_IMX8M_BLK_CTRL=y
#
CONFIG_IMX_DRAM=y
CONFIG_IMX8M_DRAM=y
+CONFIG_IMX9_DRAM=y
# end of i.MX DDR controllers
CONFIG_REBOOT_MODE=y
@@ -1216,6 +1226,7 @@ CONFIG_PBL_STACKPROTECTOR_NONE=y
# Crypto support
#
CONFIG_CRC32=y
+CONFIG_CRC_ITU_T=y
CONFIG_DIGEST=y
CONFIG_HAVE_DIGEST_MD5=y
CONFIG_HAVE_DIGEST_SHA1=y
@@ -1249,6 +1260,7 @@ CONFIG_FIRMWARE_IMX8MM_ATF=y
CONFIG_FIRMWARE_IMX8MN_ATF=y
CONFIG_FIRMWARE_IMX8MP_ATF=y
CONFIG_FIRMWARE_IMX8MQ_ATF=y
+CONFIG_FIRMWARE_IMX93_ATF=y
# end of Firmware files
#
@@ -1256,6 +1268,7 @@ CONFIG_FIRMWARE_IMX8MQ_ATF=y
#
# CONFIG_COMPILE_HOST_TOOLS is not set
CONFIG_ARCH_IMX_USBLOADER=y
+CONFIG_IMX9_IMAGE=y
CONFIG_RK_IMAGE=y
CONFIG_RK_USB_LOADER=y
# end of Host Tools
diff --git a/configs/platform-v8a/config/images/imx93.config b/configs/platform-v8a/config/images/imx93.config
new file mode 100644
index 0000000..1efd2d2
--- /dev/null
+++ b/configs/platform-v8a/config/images/imx93.config
@@ -0,0 +1,24 @@
+image @IMAGE@ {
+ hdimage {
+ align = 32k
+ partition-table-type = gpt
+ }
+ partition barebox {
+ image = "@BAREBOX_IMAGE@"
+ offset = 32k
+ size = 2528k # = 2,5M - 32k to align at 512k
+ }
+ partition barebox-environment {
+ # is not used by barebox at the moment, because there is an environment in the SPI flash
+ size = 1M
+ partition-type-uuid = barebox-env
+ }
+ partition barebox-state {
+ size = 512k
+ partition-type-uuid = barebox-state
+ }
+ partition root-A {
+ image = "root.ext2"
+ partition-type-uuid = root-arm64
+ }
+}
diff --git a/configs/platform-v8a/dts/bootstate.dtsi b/configs/platform-v8a/dts/bootstate.dtsi
index 1a8fe3f..4d16623 100644
--- a/configs/platform-v8a/dts/bootstate.dtsi
+++ b/configs/platform-v8a/dts/bootstate.dtsi
@@ -40,6 +40,27 @@
#endif
+/** TQ-Systems i.MX93 TQMa93xxLA/TQMa93xxCA on MBa93xxCA starter kit **********/
+#ifdef imx93_tqma9352_mba93xxca_dts
+/ {
+ aliases {
+ state = &state_sd;
+ };
+
+ state_sd: state {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "barebox,state";
+ magic = <0xd46d4d28>;
+ backend = <&usdhc2>; // via GPT Type UUID
+ backend-type = "raw";
+ backend-storage-type = "direct";
+ backend-stridesize = <0x40>;
+ };
+};
+
+#endif
+
/** Generic bootstate node for all platforms **********************************/
/ {
state: state {
diff --git a/configs/platform-v8a/kernelconfig b/configs/platform-v8a/kernelconfig
index 3e226b9..0513e64 100644
--- a/configs/platform-v8a/kernelconfig
+++ b/configs/platform-v8a/kernelconfig
@@ -2313,7 +2313,8 @@ CONFIG_SERIAL_CORE_CONSOLE=y
# CONFIG_SERIAL_XILINX_PS_UART is not set
# CONFIG_SERIAL_ARC is not set
# CONFIG_SERIAL_RP2 is not set
-# CONFIG_SERIAL_FSL_LPUART is not set
+CONFIG_SERIAL_FSL_LPUART=y
+CONFIG_SERIAL_FSL_LPUART_CONSOLE=y
# CONFIG_SERIAL_FSL_LINFLEXUART is not set
# CONFIG_SERIAL_CONEXANT_DIGICOLOR is not set
# CONFIG_SERIAL_SPRD is not set
@@ -2564,7 +2565,7 @@ CONFIG_PINCTRL_IMX8MP=y
CONFIG_PINCTRL_IMX8MQ=y
# CONFIG_PINCTRL_IMX8ULP is not set
# CONFIG_PINCTRL_IMX91 is not set
-# CONFIG_PINCTRL_IMX93 is not set
+CONFIG_PINCTRL_IMX93=y
CONFIG_PINCTRL_MVEBU=y
CONFIG_PINCTRL_ARMADA_AP806=y
CONFIG_PINCTRL_ARMADA_CP110=y
@@ -3986,8 +3987,8 @@ CONFIG_CLK_IMX8MN=y
CONFIG_CLK_IMX8MP=y
CONFIG_CLK_IMX8MQ=y
# CONFIG_CLK_IMX8ULP is not set
-# CONFIG_CLK_IMX93 is not set
-# CONFIG_CLK_IMX95_BLK_CTL is not set
+CONFIG_CLK_IMX93=y
+CONFIG_CLK_IMX95_BLK_CTL=y
CONFIG_ARMADA_AP_CP_HELPER=y
CONFIG_ARMADA_37XX_CLK=y
CONFIG_ARMADA_AP806_SYSCON=y
diff --git a/configs/platform-v8a/patches/barebox-2025.03.0/0001-ARM-dts-tqma93xx-add-dummy-supply-to-regulator.patch b/configs/platform-v8a/patches/barebox-2025.03.0/0001-ARM-dts-tqma93xx-add-dummy-supply-to-regulator.patch
new file mode 100644
index 0000000..11786ad
--- /dev/null
+++ b/configs/platform-v8a/patches/barebox-2025.03.0/0001-ARM-dts-tqma93xx-add-dummy-supply-to-regulator.patch
@@ -0,0 +1,38 @@
+From b46d4de70f4b9b96ee5277037dd79ba2d7f75751 Mon Sep 17 00:00:00 2001
+From: Fabian Pflug <f.pflug@pengutronix.de>
+Date: Thu, 17 Apr 2025 10:35:16 +0200
+Subject: [PATCH] ARM: dts: tqma93xx add dummy supply to regulator
+
+The regulator for the usdhc2 references the BUCK4 as its input.
+The BUCK4 is part of the pca9451, which in turn is not a regulator
+in barebox, so there is a problem during initialisation:
+
+WARNING: imx-esdhc 42860000.mmc@42860000.of: Failed to get 'vmmc' regulator (ignored)
+
+Since the dependency could not be resolved, the reg_usdhc2_vmmc
+regulator is not correctly initialized, leaving the gpio in a floating
+state, which results in the GPIO being low, which in turn disables
+the SD-Card.
+
+Signed-off-by: Fabian Pflug <f.pflug@pengutronix.de>
+---
+ arch/arm/dts/imx93-tqma93xx.dtsi | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/arch/arm/dts/imx93-tqma93xx.dtsi b/arch/arm/dts/imx93-tqma93xx.dtsi
+index 40425e39a7..aafeadc275 100644
+--- a/arch/arm/dts/imx93-tqma93xx.dtsi
++++ b/arch/arm/dts/imx93-tqma93xx.dtsi
+@@ -15,6 +15,9 @@ pca9451a: pmic@25 {
+ reg = <0x25>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_pca9451>;
++ regulators {
++ barebox,allow-dummy-supply;
++ };
+ };
+ };
+
+--
+2.39.5
+
diff --git a/configs/platform-v8a/patches/barebox-2025.03.0/series b/configs/platform-v8a/patches/barebox-2025.03.0/series
new file mode 100644
index 0000000..2d4b3ce
--- /dev/null
+++ b/configs/platform-v8a/patches/barebox-2025.03.0/series
@@ -0,0 +1 @@
+0001-ARM-dts-tqma93xx-add-dummy-supply-to-regulator.patch
diff --git a/configs/platform-v8a/platformconfig b/configs/platform-v8a/platformconfig
index fb1019c..fde26da 100644
--- a/configs/platform-v8a/platformconfig
+++ b/configs/platform-v8a/platformconfig
@@ -137,7 +137,7 @@ PTXCONF_KERNEL_IMAGE_RAW=y
PTXCONF_KERNEL_IMAGE="Image"
PTXCONF_KERNEL_DTB=y
PTXCONF_KERNEL_DTS_PATH="${PTXDIST_PLATFORMCONFIG_SUBDIR}/dts:${KERNEL_DIR}/arch/${GENERIC_KERNEL_ARCH}/boot/dts"
-PTXCONF_KERNEL_DTS="armada-3720-community.dts freescale/imx8mm-evk.dts freescale/imx8mn-ddr4-evk.dts freescale/imx8mn-ddr4-evk.dts freescale/imx8mp-evk.dts freescale/imx8mq-evk.dts rockchip/rk3568-rock-3a.dts freescale/imx8mp-tqma8mpql-mba8mpxl.dts"
+PTXCONF_KERNEL_DTS="armada-3720-community.dts freescale/imx8mm-evk.dts freescale/imx8mn-ddr4-evk.dts freescale/imx8mn-ddr4-evk.dts freescale/imx8mp-evk.dts freescale/imx8mq-evk.dts rockchip/rk3568-rock-3a.dts freescale/imx8mp-tqma8mpql-mba8mpxl.dts freescale/imx93-tqma9352-mba93xxca.dts"
# PTXCONF_KERNEL_DTBO is not set
# PTXCONF_KERNEL_CODE_SIGNING is not set
# PTXCONF_KERNEL_ZSTD is not set
@@ -213,7 +213,7 @@ PTXCONF_TF_A_MD5="dea016f3707117c7935a8a26433a1e46 5b90a1c21210702e64234a2beb79f
PTXCONF_TF_A_ARCH_STRING="aarch64"
PTXCONF_TF_A_ARM_ARCH_MAJOR_8=y
PTXCONF_TF_A_ARM_ARCH_MAJOR=8
-PTXCONF_TF_A_PLATFORMS="imx8mq imx8mm imx8mn imx8mp"
+PTXCONF_TF_A_PLATFORMS="imx8mq imx8mm imx8mn imx8mp imx93"
PTXCONF_TF_A_ARM_ARCH_MINOR=0
PTXCONF_TF_A_EXTRA_ARGS="IMX_BOOT_UART_BASE=auto"
PTXCONF_TF_A_ARTIFACTS="bl31.bin"
@@ -291,6 +291,7 @@ PTXCONF_IMAGE_ROOT_TGZ_LABEL=""
# PTXCONF_IMAGE_ROOT_UBI is not set
# PTXCONF_IMAGE_ROOT_UBIFS is not set
PTXCONF_IMAGE_TQ_MBA8MPXL=y
+PTXCONF_IMAGE_TQ_MBA93XXCA=y
#
# ipkg options
diff --git a/configs/platform-v8a/platforms/image-tq-mba93xxca.in b/configs/platform-v8a/platforms/image-tq-mba93xxca.in
new file mode 100644
index 0000000..b36e285
--- /dev/null
+++ b/configs/platform-v8a/platforms/image-tq-mba93xxca.in
@@ -0,0 +1,10 @@
+## SECTION=image
+
+config IMAGE_TQ_MBA93XXCA
+ tristate
+ select HOST_GENIMAGE
+ select IMAGE_ROOT_EXT
+ select BAREBOX
+ prompt "Generate images/tq-mba93xxca.img"
+ help
+ Generate a bootable SD card image to deploy on a TQ MBa93xxCA board.
diff --git a/configs/platform-v8a/rules/firmware-imx.make b/configs/platform-v8a/rules/firmware-imx.make
index 1cdc3ee..6b01af3 100644
--- a/configs/platform-v8a/rules/firmware-imx.make
+++ b/configs/platform-v8a/rules/firmware-imx.make
@@ -34,6 +34,7 @@ BAREBOX_INJECT_FILES += imx8mm-bl31.bin:firmware/imx8mm-bl31.bin
BAREBOX_INJECT_FILES += imx8mn-bl31.bin:firmware/imx8mn-bl31.bin
BAREBOX_INJECT_FILES += imx8mp-bl31.bin:firmware/imx8mp-bl31.bin
BAREBOX_INJECT_FILES += imx8mq-bl31.bin:firmware/imx8mq-bl31.bin
+BAREBOX_INJECT_FILES += imx93-bl31.bin:firmware/imx93-bl31.bin
ifdef PTXCONF_FIRMWARE_IMX_BOOTIMAGE_IMX8
BAREBOX_INJECT_FILES += ddr/synopsys/lpddr4_pmu_train_1d_dmem.bin:firmware/lpddr4_pmu_train_1d_dmem.bin
BAREBOX_INJECT_FILES += ddr/synopsys/lpddr4_pmu_train_1d_imem.bin:firmware/lpddr4_pmu_train_1d_imem.bin
diff --git a/configs/platform-v8a/rules/image-tq-mba93xxca.make b/configs/platform-v8a/rules/image-tq-mba93xxca.make
new file mode 100644
index 0000000..5e6bcd7
--- /dev/null
+++ b/configs/platform-v8a/rules/image-tq-mba93xxca.make
@@ -0,0 +1,35 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2025 by Fabian Pflug <f.pflug@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+IMAGE_PACKAGES-$(PTXCONF_IMAGE_TQ_MBA93XXCA) += image-tq-mba93xxca
+
+#
+# Paths and names
+#
+IMAGE_TQ_MBA93XXCA := image-tq-mba93xxca
+IMAGE_TQ_MBA93XXCA_DIR := $(BUILDDIR)/$(IMAGE_TQ_MBA93XXCA)
+IMAGE_TQ_MBA93XXCA_IMAGE := $(IMAGEDIR)/tq-mba93xxca.img
+IMAGE_TQ_MBA93XXCA_FILES := $(IMAGEDIR)/root.tgz
+IMAGE_TQ_MBA93XXCA_CONFIG := imx93.config
+
+# ----------------------------------------------------------------------------
+# Image
+# ----------------------------------------------------------------------------
+
+IMAGE_TQ_MBA93XXCA_ENV := \
+ BAREBOX_IMAGE=barebox-tqma93xx.img
+
+$(IMAGE_TQ_MBA93XXCA_IMAGE):
+ @$(call targetinfo)
+ @$(call image/genimage, IMAGE_TQ_MBA93XXCA)
+ @$(call finish)
+
+# vim: syntax=make
diff --git a/doc/hardware.rst b/doc/hardware.rst
index 5c9a0df..ccec2b4 100644
--- a/doc/hardware.rst
+++ b/doc/hardware.rst
@@ -131,6 +131,7 @@ Currently, DistroKit supports the following hardware:
hardware_v8a_espressobin
hardware_v8a_rock3a
+ hardware_v8a_tqma93xxca
rpi1 Platform
diff --git a/doc/hardware_v8a_tqma93xxca.rst b/doc/hardware_v8a_tqma93xxca.rst
new file mode 100644
index 0000000..c516854
--- /dev/null
+++ b/doc/hardware_v8a_tqma93xxca.rst
@@ -0,0 +1,47 @@
+TQ-Systems i.MX93 TQMa93xxLA/TQMa93xxCA on MBa93xxCA starter kit
+================================================================
+
+
+Boot Media
+----------
+
+Booting is available via multiple sources (Compare Table 6: Boot configuration i.MX 93 from TQMa93xxCA UM 0003)
+
+.. csv-table:: Example :rst:dir:`csv-table`
+ :header: "Boot Source", "BOOT_MODE2", "BOOT_MODE1", "BOOT_MODE0"
+
+ "Boot from eFuse", "0", "0", "0"
+ "Serial Downloader (USB1)", "0", "0", "1"
+ "Boot from eMMC 5.1", "0", "1", "0"
+ "Boot from SD 3.0 card", "0", "1", "1"
+ "Boot from FlexSPI Serial NOR", "1", "0", "0"
+
+
+Booting from USB and NFS
+~~~~~~~~~~~~~~~~~~~~~~~~
+
+Upload the bootloader ``platform-v8a/images/barebox-tqma93xx.img`` via USB:
+
+.. code-block:: shell
+
+ platform-v8a/sysroot-host/bin/imx-usb-loader platform-v8a/images/barebox-tqma93xx.img
+
+In Barebox, set the default boot location to nfs:
+
+ nv boot.default nfs://dude06//ptx/work/user/fpg/DistroKit/platform-v8a/root
+
+replace the path to one, where you have compiled your Distrokit
+
+
+Booting via SD-Card
+~~~~~~~~~~~~~~~~~~~
+
+Write the image ``platform-v8a/images/tq-mba93xxca.img`` to a microSD card. Put the
+microSD card into the TQMa93xxCA and boot it.
+
+
+Serial Console
+--------------
+
+The serial boot console is available via the microUSB Connector on the board.
+It brings 4 UARTS, whereas the first is the Serial console used by kernel and bootloader.
--
2.39.5
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [DistroKit] [PATCH v2] v8a: Add support for tq-ma93xxca
2025-04-23 13:49 [DistroKit] [PATCH v2] v8a: Add support for tq-ma93xxca Fabian Pflug
@ 2025-04-23 13:53 ` Ahmad Fatoum
2025-04-23 14:31 ` Robert Schwebel
1 sibling, 0 replies; 3+ messages in thread
From: Ahmad Fatoum @ 2025-04-23 13:53 UTC (permalink / raw)
To: Fabian Pflug, distrokit
On 4/23/25 15:49, Fabian Pflug wrote:
> A new board, with an IMX93 processor.
>
> - Barebox patch has been send upstream and accecpted into next
> - magic number ist chosen at random
> - has been tested on real hardware
>
> Signed-off-by: Fabian Pflug <f.pflug@pengutronix.de>
Acked-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
Thanks,
Ahmad
> ---
> There is still a small issue with USB-WLAN module not working.
>
> v1 -> v2:
> - reworded uploading in docs (Ahmad)
> - fix spelling error in commit message (Ahmad)
> - added barebox-env/bootloader GPT partition (Ahmad)
> https://lore.distrokit.org/distrokit/37a1bdb7-74f5-4c4f-a2e6-82ea97d347df@pengutronix.de/T/#u
> ---
> .../barebox-common-defaultenv/init/bootsource | 2 +-
> configs/platform-v8a/barebox.config | 25 +++++++---
> .../platform-v8a/config/images/imx93.config | 24 ++++++++++
> configs/platform-v8a/dts/bootstate.dtsi | 21 +++++++++
> configs/platform-v8a/kernelconfig | 9 ++--
> ...ma93xx-add-dummy-supply-to-regulator.patch | 38 +++++++++++++++
> .../patches/barebox-2025.03.0/series | 1 +
> configs/platform-v8a/platformconfig | 5 +-
> .../platforms/image-tq-mba93xxca.in | 10 ++++
> configs/platform-v8a/rules/firmware-imx.make | 1 +
> .../rules/image-tq-mba93xxca.make | 35 ++++++++++++++
> doc/hardware.rst | 1 +
> doc/hardware_v8a_tqma93xxca.rst | 47 +++++++++++++++++++
> 13 files changed, 206 insertions(+), 13 deletions(-)
> create mode 100644 configs/platform-v8a/config/images/imx93.config
> create mode 100644 configs/platform-v8a/patches/barebox-2025.03.0/0001-ARM-dts-tqma93xx-add-dummy-supply-to-regulator.patch
> create mode 100644 configs/platform-v8a/patches/barebox-2025.03.0/series
> create mode 100644 configs/platform-v8a/platforms/image-tq-mba93xxca.in
> create mode 100644 configs/platform-v8a/rules/image-tq-mba93xxca.make
> create mode 100644 doc/hardware_v8a_tqma93xxca.rst
>
> diff --git a/configs/platform-v8a/barebox-common-defaultenv/init/bootsource b/configs/platform-v8a/barebox-common-defaultenv/init/bootsource
> index aa1d06d..19a0429 100644
> --- a/configs/platform-v8a/barebox-common-defaultenv/init/bootsource
> +++ b/configs/platform-v8a/barebox-common-defaultenv/init/bootsource
> @@ -10,7 +10,7 @@ if [ "$bootsource" = mmc ]; then
> global.boot.default="mmc$bootsource_instance net"
> fi
>
> -if of_compatible -k radxa,rock3a tq,imx8mp-tqma8mpql-mba8mpxl; then
> +if of_compatible -k radxa,rock3a tq,imx8mp-tqma8mpql-mba8mpxl tq,imx93-tqma9352; then
> global.boot.default="bootchooser net"
> global bootchooser.state_prefix="state.bootstate"
> global bootchooser.targets="system0 system1"
> diff --git a/configs/platform-v8a/barebox.config b/configs/platform-v8a/barebox.config
> index 7d3794a..1576088 100644
> --- a/configs/platform-v8a/barebox.config
> +++ b/configs/platform-v8a/barebox.config
> @@ -48,6 +48,8 @@ CONFIG_ARCH_IMX8MM=y
> CONFIG_ARCH_IMX8MN=y
> CONFIG_ARCH_IMX8MP=y
> CONFIG_ARCH_IMX8MQ=y
> +CONFIG_ARCH_IMX9=y
> +CONFIG_ARCH_IMX93=y
>
> #
> # i.MX8M boards
> @@ -72,7 +74,7 @@ CONFIG_MACH_TQ_MBA8MPXL=y
> #
> # i.MX93 boards
> #
> -# CONFIG_MACH_TQMA93XX is not set
> +CONFIG_MACH_TQMA93XX=y
> # end of i.MX boards
>
> #
> @@ -80,7 +82,10 @@ CONFIG_MACH_TQ_MBA8MPXL=y
> #
> # CONFIG_IMX_IIM is not set
> CONFIG_IMX_SAVE_BOOTROM_LOG=y
> +CONFIG_HAB=y
> +CONFIG_AHAB=y
> # CONFIG_HABV4 is not set
> +# CONFIG_HAB_CERTS_ENV is not set
> # end of i.MX specific settings
>
> #
> @@ -138,6 +143,7 @@ CONFIG_BOARD_GENERIC_DT=y
> # CONFIG_BOARD_GENERIC_FIT is not set
> # end of General architecture-dependent options
>
> +CONFIG_BOARD_TQ=y
> CONFIG_CC_IS_GCC=y
> CONFIG_GCC_VERSION=140201
> CONFIG_CLANG_VERSION=0
> @@ -517,6 +523,7 @@ CONFIG_CMD_USB=y
> CONFIG_CMD_USBGADGET=y
> CONFIG_CMD_WD=y
> CONFIG_CMD_WD_DEFAULT_TIMOUT=0
> +# CONFIG_CMD_HAB is not set
> # end of Hardware manipulation
>
> #
> @@ -591,7 +598,7 @@ CONFIG_SERIAL_DEV_BUS=y
> CONFIG_DRIVER_SERIAL_IMX=y
> CONFIG_DRIVER_SERIAL_NS16550=y
> # CONFIG_DRIVER_SERIAL_CADENCE is not set
> -# CONFIG_DRIVER_SERIAL_LPUART32 is not set
> +CONFIG_DRIVER_SERIAL_LPUART32=y
> # CONFIG_SERIAL_SIFIVE is not set
> # end of serial drivers
>
> @@ -664,7 +671,7 @@ CONFIG_SPI_MEM=y
> CONFIG_DRIVER_SPI_IMX=y
> CONFIG_DRIVER_SPI_IMX_2_3=y
> # CONFIG_DRIVER_SPI_LITEX_SPIFLASH is not set
> -# CONFIG_SPI_NXP_FLEXSPI is not set
> +CONFIG_SPI_NXP_FLEXSPI=y
> CONFIG_SPI_ROCKCHIP=y
> # end of SPI drivers
>
> @@ -675,7 +682,7 @@ CONFIG_I2C=y
> #
> # CONFIG_I2C_GPIO is not set
> CONFIG_I2C_IMX=y
> -# CONFIG_I2C_IMX_LPI2C is not set
> +CONFIG_I2C_IMX_LPI2C=y
> # CONFIG_I2C_DESIGNWARE is not set
> # CONFIG_I2C_MV64XXX is not set
> CONFIG_I2C_RK3X=y
> @@ -748,7 +755,7 @@ CONFIG_USB_DWC3=y
> # CONFIG_USB_DWC3_GADGET is not set
> CONFIG_USB_DWC3_DUAL_ROLE=y
> CONFIG_USB_DWC3_OF_SIMPLE=y
> -# CONFIG_USB_EHCI is not set
> +CONFIG_USB_EHCI=y
> CONFIG_USB_XHCI=y
> # CONFIG_USB_ULPI is not set
> CONFIG_USB_OTGDEV=y
> @@ -908,7 +915,8 @@ CONFIG_GPIO_GENERIC=y
> # CONFIG_GPIO_74XX_MMIO is not set
> # CONFIG_GPIO_GENERIC_PLATFORM is not set
> CONFIG_GPIO_IMX=y
> -# CONFIG_GPIO_PCA953X is not set
> +CONFIG_GPIO_VF610=y
> +CONFIG_GPIO_PCA953X=y
> # CONFIG_GPIO_PCF857X is not set
> # CONFIG_GPIO_PL061 is not set
> CONFIG_GPIO_ROCKCHIP=y
> @@ -934,6 +942,7 @@ CONFIG_NVMEM=y
> # CONFIG_NVMEM_SNVS_LPGPR is not set
> CONFIG_IMX_OCOTP=y
> # CONFIG_IMX_OCOTP_WRITE is not set
> +# CONFIG_IMX_OCOTP_ELE is not set
> # CONFIG_EEPROM_93XX46 is not set
> CONFIG_NVMEM_ROCKCHIP_OTP=y
>
> @@ -1064,6 +1073,7 @@ CONFIG_IMX8M_BLK_CTRL=y
> #
> CONFIG_IMX_DRAM=y
> CONFIG_IMX8M_DRAM=y
> +CONFIG_IMX9_DRAM=y
> # end of i.MX DDR controllers
>
> CONFIG_REBOOT_MODE=y
> @@ -1216,6 +1226,7 @@ CONFIG_PBL_STACKPROTECTOR_NONE=y
> # Crypto support
> #
> CONFIG_CRC32=y
> +CONFIG_CRC_ITU_T=y
> CONFIG_DIGEST=y
> CONFIG_HAVE_DIGEST_MD5=y
> CONFIG_HAVE_DIGEST_SHA1=y
> @@ -1249,6 +1260,7 @@ CONFIG_FIRMWARE_IMX8MM_ATF=y
> CONFIG_FIRMWARE_IMX8MN_ATF=y
> CONFIG_FIRMWARE_IMX8MP_ATF=y
> CONFIG_FIRMWARE_IMX8MQ_ATF=y
> +CONFIG_FIRMWARE_IMX93_ATF=y
> # end of Firmware files
>
> #
> @@ -1256,6 +1268,7 @@ CONFIG_FIRMWARE_IMX8MQ_ATF=y
> #
> # CONFIG_COMPILE_HOST_TOOLS is not set
> CONFIG_ARCH_IMX_USBLOADER=y
> +CONFIG_IMX9_IMAGE=y
> CONFIG_RK_IMAGE=y
> CONFIG_RK_USB_LOADER=y
> # end of Host Tools
> diff --git a/configs/platform-v8a/config/images/imx93.config b/configs/platform-v8a/config/images/imx93.config
> new file mode 100644
> index 0000000..1efd2d2
> --- /dev/null
> +++ b/configs/platform-v8a/config/images/imx93.config
> @@ -0,0 +1,24 @@
> +image @IMAGE@ {
> + hdimage {
> + align = 32k
> + partition-table-type = gpt
> + }
> + partition barebox {
> + image = "@BAREBOX_IMAGE@"
> + offset = 32k
> + size = 2528k # = 2,5M - 32k to align at 512k
> + }
> + partition barebox-environment {
> + # is not used by barebox at the moment, because there is an environment in the SPI flash
> + size = 1M
> + partition-type-uuid = barebox-env
> + }
> + partition barebox-state {
> + size = 512k
> + partition-type-uuid = barebox-state
> + }
> + partition root-A {
> + image = "root.ext2"
> + partition-type-uuid = root-arm64
> + }
> +}
> diff --git a/configs/platform-v8a/dts/bootstate.dtsi b/configs/platform-v8a/dts/bootstate.dtsi
> index 1a8fe3f..4d16623 100644
> --- a/configs/platform-v8a/dts/bootstate.dtsi
> +++ b/configs/platform-v8a/dts/bootstate.dtsi
> @@ -40,6 +40,27 @@
>
> #endif
>
> +/** TQ-Systems i.MX93 TQMa93xxLA/TQMa93xxCA on MBa93xxCA starter kit **********/
> +#ifdef imx93_tqma9352_mba93xxca_dts
> +/ {
> + aliases {
> + state = &state_sd;
> + };
> +
> + state_sd: state {
> + #address-cells = <1>;
> + #size-cells = <1>;
> + compatible = "barebox,state";
> + magic = <0xd46d4d28>;
> + backend = <&usdhc2>; // via GPT Type UUID
> + backend-type = "raw";
> + backend-storage-type = "direct";
> + backend-stridesize = <0x40>;
> + };
> +};
> +
> +#endif
> +
> /** Generic bootstate node for all platforms **********************************/
> / {
> state: state {
> diff --git a/configs/platform-v8a/kernelconfig b/configs/platform-v8a/kernelconfig
> index 3e226b9..0513e64 100644
> --- a/configs/platform-v8a/kernelconfig
> +++ b/configs/platform-v8a/kernelconfig
> @@ -2313,7 +2313,8 @@ CONFIG_SERIAL_CORE_CONSOLE=y
> # CONFIG_SERIAL_XILINX_PS_UART is not set
> # CONFIG_SERIAL_ARC is not set
> # CONFIG_SERIAL_RP2 is not set
> -# CONFIG_SERIAL_FSL_LPUART is not set
> +CONFIG_SERIAL_FSL_LPUART=y
> +CONFIG_SERIAL_FSL_LPUART_CONSOLE=y
> # CONFIG_SERIAL_FSL_LINFLEXUART is not set
> # CONFIG_SERIAL_CONEXANT_DIGICOLOR is not set
> # CONFIG_SERIAL_SPRD is not set
> @@ -2564,7 +2565,7 @@ CONFIG_PINCTRL_IMX8MP=y
> CONFIG_PINCTRL_IMX8MQ=y
> # CONFIG_PINCTRL_IMX8ULP is not set
> # CONFIG_PINCTRL_IMX91 is not set
> -# CONFIG_PINCTRL_IMX93 is not set
> +CONFIG_PINCTRL_IMX93=y
> CONFIG_PINCTRL_MVEBU=y
> CONFIG_PINCTRL_ARMADA_AP806=y
> CONFIG_PINCTRL_ARMADA_CP110=y
> @@ -3986,8 +3987,8 @@ CONFIG_CLK_IMX8MN=y
> CONFIG_CLK_IMX8MP=y
> CONFIG_CLK_IMX8MQ=y
> # CONFIG_CLK_IMX8ULP is not set
> -# CONFIG_CLK_IMX93 is not set
> -# CONFIG_CLK_IMX95_BLK_CTL is not set
> +CONFIG_CLK_IMX93=y
> +CONFIG_CLK_IMX95_BLK_CTL=y
> CONFIG_ARMADA_AP_CP_HELPER=y
> CONFIG_ARMADA_37XX_CLK=y
> CONFIG_ARMADA_AP806_SYSCON=y
> diff --git a/configs/platform-v8a/patches/barebox-2025.03.0/0001-ARM-dts-tqma93xx-add-dummy-supply-to-regulator.patch b/configs/platform-v8a/patches/barebox-2025.03.0/0001-ARM-dts-tqma93xx-add-dummy-supply-to-regulator.patch
> new file mode 100644
> index 0000000..11786ad
> --- /dev/null
> +++ b/configs/platform-v8a/patches/barebox-2025.03.0/0001-ARM-dts-tqma93xx-add-dummy-supply-to-regulator.patch
> @@ -0,0 +1,38 @@
> +From b46d4de70f4b9b96ee5277037dd79ba2d7f75751 Mon Sep 17 00:00:00 2001
> +From: Fabian Pflug <f.pflug@pengutronix.de>
> +Date: Thu, 17 Apr 2025 10:35:16 +0200
> +Subject: [PATCH] ARM: dts: tqma93xx add dummy supply to regulator
> +
> +The regulator for the usdhc2 references the BUCK4 as its input.
> +The BUCK4 is part of the pca9451, which in turn is not a regulator
> +in barebox, so there is a problem during initialisation:
> +
> +WARNING: imx-esdhc 42860000.mmc@42860000.of: Failed to get 'vmmc' regulator (ignored)
> +
> +Since the dependency could not be resolved, the reg_usdhc2_vmmc
> +regulator is not correctly initialized, leaving the gpio in a floating
> +state, which results in the GPIO being low, which in turn disables
> +the SD-Card.
> +
> +Signed-off-by: Fabian Pflug <f.pflug@pengutronix.de>
> +---
> + arch/arm/dts/imx93-tqma93xx.dtsi | 3 +++
> + 1 file changed, 3 insertions(+)
> +
> +diff --git a/arch/arm/dts/imx93-tqma93xx.dtsi b/arch/arm/dts/imx93-tqma93xx.dtsi
> +index 40425e39a7..aafeadc275 100644
> +--- a/arch/arm/dts/imx93-tqma93xx.dtsi
> ++++ b/arch/arm/dts/imx93-tqma93xx.dtsi
> +@@ -15,6 +15,9 @@ pca9451a: pmic@25 {
> + reg = <0x25>;
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_pca9451>;
> ++ regulators {
> ++ barebox,allow-dummy-supply;
> ++ };
> + };
> + };
> +
> +--
> +2.39.5
> +
> diff --git a/configs/platform-v8a/patches/barebox-2025.03.0/series b/configs/platform-v8a/patches/barebox-2025.03.0/series
> new file mode 100644
> index 0000000..2d4b3ce
> --- /dev/null
> +++ b/configs/platform-v8a/patches/barebox-2025.03.0/series
> @@ -0,0 +1 @@
> +0001-ARM-dts-tqma93xx-add-dummy-supply-to-regulator.patch
> diff --git a/configs/platform-v8a/platformconfig b/configs/platform-v8a/platformconfig
> index fb1019c..fde26da 100644
> --- a/configs/platform-v8a/platformconfig
> +++ b/configs/platform-v8a/platformconfig
> @@ -137,7 +137,7 @@ PTXCONF_KERNEL_IMAGE_RAW=y
> PTXCONF_KERNEL_IMAGE="Image"
> PTXCONF_KERNEL_DTB=y
> PTXCONF_KERNEL_DTS_PATH="${PTXDIST_PLATFORMCONFIG_SUBDIR}/dts:${KERNEL_DIR}/arch/${GENERIC_KERNEL_ARCH}/boot/dts"
> -PTXCONF_KERNEL_DTS="armada-3720-community.dts freescale/imx8mm-evk.dts freescale/imx8mn-ddr4-evk.dts freescale/imx8mn-ddr4-evk.dts freescale/imx8mp-evk.dts freescale/imx8mq-evk.dts rockchip/rk3568-rock-3a.dts freescale/imx8mp-tqma8mpql-mba8mpxl.dts"
> +PTXCONF_KERNEL_DTS="armada-3720-community.dts freescale/imx8mm-evk.dts freescale/imx8mn-ddr4-evk.dts freescale/imx8mn-ddr4-evk.dts freescale/imx8mp-evk.dts freescale/imx8mq-evk.dts rockchip/rk3568-rock-3a.dts freescale/imx8mp-tqma8mpql-mba8mpxl.dts freescale/imx93-tqma9352-mba93xxca.dts"
> # PTXCONF_KERNEL_DTBO is not set
> # PTXCONF_KERNEL_CODE_SIGNING is not set
> # PTXCONF_KERNEL_ZSTD is not set
> @@ -213,7 +213,7 @@ PTXCONF_TF_A_MD5="dea016f3707117c7935a8a26433a1e46 5b90a1c21210702e64234a2beb79f
> PTXCONF_TF_A_ARCH_STRING="aarch64"
> PTXCONF_TF_A_ARM_ARCH_MAJOR_8=y
> PTXCONF_TF_A_ARM_ARCH_MAJOR=8
> -PTXCONF_TF_A_PLATFORMS="imx8mq imx8mm imx8mn imx8mp"
> +PTXCONF_TF_A_PLATFORMS="imx8mq imx8mm imx8mn imx8mp imx93"
> PTXCONF_TF_A_ARM_ARCH_MINOR=0
> PTXCONF_TF_A_EXTRA_ARGS="IMX_BOOT_UART_BASE=auto"
> PTXCONF_TF_A_ARTIFACTS="bl31.bin"
> @@ -291,6 +291,7 @@ PTXCONF_IMAGE_ROOT_TGZ_LABEL=""
> # PTXCONF_IMAGE_ROOT_UBI is not set
> # PTXCONF_IMAGE_ROOT_UBIFS is not set
> PTXCONF_IMAGE_TQ_MBA8MPXL=y
> +PTXCONF_IMAGE_TQ_MBA93XXCA=y
>
> #
> # ipkg options
> diff --git a/configs/platform-v8a/platforms/image-tq-mba93xxca.in b/configs/platform-v8a/platforms/image-tq-mba93xxca.in
> new file mode 100644
> index 0000000..b36e285
> --- /dev/null
> +++ b/configs/platform-v8a/platforms/image-tq-mba93xxca.in
> @@ -0,0 +1,10 @@
> +## SECTION=image
> +
> +config IMAGE_TQ_MBA93XXCA
> + tristate
> + select HOST_GENIMAGE
> + select IMAGE_ROOT_EXT
> + select BAREBOX
> + prompt "Generate images/tq-mba93xxca.img"
> + help
> + Generate a bootable SD card image to deploy on a TQ MBa93xxCA board.
> diff --git a/configs/platform-v8a/rules/firmware-imx.make b/configs/platform-v8a/rules/firmware-imx.make
> index 1cdc3ee..6b01af3 100644
> --- a/configs/platform-v8a/rules/firmware-imx.make
> +++ b/configs/platform-v8a/rules/firmware-imx.make
> @@ -34,6 +34,7 @@ BAREBOX_INJECT_FILES += imx8mm-bl31.bin:firmware/imx8mm-bl31.bin
> BAREBOX_INJECT_FILES += imx8mn-bl31.bin:firmware/imx8mn-bl31.bin
> BAREBOX_INJECT_FILES += imx8mp-bl31.bin:firmware/imx8mp-bl31.bin
> BAREBOX_INJECT_FILES += imx8mq-bl31.bin:firmware/imx8mq-bl31.bin
> +BAREBOX_INJECT_FILES += imx93-bl31.bin:firmware/imx93-bl31.bin
> ifdef PTXCONF_FIRMWARE_IMX_BOOTIMAGE_IMX8
> BAREBOX_INJECT_FILES += ddr/synopsys/lpddr4_pmu_train_1d_dmem.bin:firmware/lpddr4_pmu_train_1d_dmem.bin
> BAREBOX_INJECT_FILES += ddr/synopsys/lpddr4_pmu_train_1d_imem.bin:firmware/lpddr4_pmu_train_1d_imem.bin
> diff --git a/configs/platform-v8a/rules/image-tq-mba93xxca.make b/configs/platform-v8a/rules/image-tq-mba93xxca.make
> new file mode 100644
> index 0000000..5e6bcd7
> --- /dev/null
> +++ b/configs/platform-v8a/rules/image-tq-mba93xxca.make
> @@ -0,0 +1,35 @@
> +# -*-makefile-*-
> +#
> +# Copyright (C) 2025 by Fabian Pflug <f.pflug@pengutronix.de>
> +#
> +# For further information about the PTXdist project and license conditions
> +# see the README file.
> +#
> +
> +#
> +# We provide this package
> +#
> +IMAGE_PACKAGES-$(PTXCONF_IMAGE_TQ_MBA93XXCA) += image-tq-mba93xxca
> +
> +#
> +# Paths and names
> +#
> +IMAGE_TQ_MBA93XXCA := image-tq-mba93xxca
> +IMAGE_TQ_MBA93XXCA_DIR := $(BUILDDIR)/$(IMAGE_TQ_MBA93XXCA)
> +IMAGE_TQ_MBA93XXCA_IMAGE := $(IMAGEDIR)/tq-mba93xxca.img
> +IMAGE_TQ_MBA93XXCA_FILES := $(IMAGEDIR)/root.tgz
> +IMAGE_TQ_MBA93XXCA_CONFIG := imx93.config
> +
> +# ----------------------------------------------------------------------------
> +# Image
> +# ----------------------------------------------------------------------------
> +
> +IMAGE_TQ_MBA93XXCA_ENV := \
> + BAREBOX_IMAGE=barebox-tqma93xx.img
> +
> +$(IMAGE_TQ_MBA93XXCA_IMAGE):
> + @$(call targetinfo)
> + @$(call image/genimage, IMAGE_TQ_MBA93XXCA)
> + @$(call finish)
> +
> +# vim: syntax=make
> diff --git a/doc/hardware.rst b/doc/hardware.rst
> index 5c9a0df..ccec2b4 100644
> --- a/doc/hardware.rst
> +++ b/doc/hardware.rst
> @@ -131,6 +131,7 @@ Currently, DistroKit supports the following hardware:
>
> hardware_v8a_espressobin
> hardware_v8a_rock3a
> + hardware_v8a_tqma93xxca
>
>
> rpi1 Platform
> diff --git a/doc/hardware_v8a_tqma93xxca.rst b/doc/hardware_v8a_tqma93xxca.rst
> new file mode 100644
> index 0000000..c516854
> --- /dev/null
> +++ b/doc/hardware_v8a_tqma93xxca.rst
> @@ -0,0 +1,47 @@
> +TQ-Systems i.MX93 TQMa93xxLA/TQMa93xxCA on MBa93xxCA starter kit
> +================================================================
> +
> +
> +Boot Media
> +----------
> +
> +Booting is available via multiple sources (Compare Table 6: Boot configuration i.MX 93 from TQMa93xxCA UM 0003)
> +
> +.. csv-table:: Example :rst:dir:`csv-table`
> + :header: "Boot Source", "BOOT_MODE2", "BOOT_MODE1", "BOOT_MODE0"
> +
> + "Boot from eFuse", "0", "0", "0"
> + "Serial Downloader (USB1)", "0", "0", "1"
> + "Boot from eMMC 5.1", "0", "1", "0"
> + "Boot from SD 3.0 card", "0", "1", "1"
> + "Boot from FlexSPI Serial NOR", "1", "0", "0"
> +
> +
> +Booting from USB and NFS
> +~~~~~~~~~~~~~~~~~~~~~~~~
> +
> +Upload the bootloader ``platform-v8a/images/barebox-tqma93xx.img`` via USB:
> +
> +.. code-block:: shell
> +
> + platform-v8a/sysroot-host/bin/imx-usb-loader platform-v8a/images/barebox-tqma93xx.img
> +
> +In Barebox, set the default boot location to nfs:
> +
> + nv boot.default nfs://dude06//ptx/work/user/fpg/DistroKit/platform-v8a/root
> +
> +replace the path to one, where you have compiled your Distrokit
> +
> +
> +Booting via SD-Card
> +~~~~~~~~~~~~~~~~~~~
> +
> +Write the image ``platform-v8a/images/tq-mba93xxca.img`` to a microSD card. Put the
> +microSD card into the TQMa93xxCA and boot it.
> +
> +
> +Serial Console
> +--------------
> +
> +The serial boot console is available via the microUSB Connector on the board.
> +It brings 4 UARTS, whereas the first is the Serial console used by kernel and bootloader.
--
Pengutronix e.K. | |
Steuerwalder Str. 21 | http://www.pengutronix.de/ |
31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [DistroKit] [PATCH v2] v8a: Add support for tq-ma93xxca
2025-04-23 13:49 [DistroKit] [PATCH v2] v8a: Add support for tq-ma93xxca Fabian Pflug
2025-04-23 13:53 ` Ahmad Fatoum
@ 2025-04-23 14:31 ` Robert Schwebel
1 sibling, 0 replies; 3+ messages in thread
From: Robert Schwebel @ 2025-04-23 14:31 UTC (permalink / raw)
To: Fabian Pflug; +Cc: distrokit
On Wed, Apr 23, 2025 at 03:49:41PM +0200, Fabian Pflug wrote:
> A new board, with an IMX93 processor.
>
> - Barebox patch has been send upstream and accecpted into next
> - magic number ist chosen at random
> - has been tested on real hardware
>
> Signed-off-by: Fabian Pflug <f.pflug@pengutronix.de>
Applied to next.
> ---
> There is still a small issue with USB-WLAN module not working.
>
> v1 -> v2:
> - reworded uploading in docs (Ahmad)
> - fix spelling error in commit message (Ahmad)
> - added barebox-env/bootloader GPT partition (Ahmad)
> https://lore.distrokit.org/distrokit/37a1bdb7-74f5-4c4f-a2e6-82ea97d347df@pengutronix.de/T/#u
> ---
> .../barebox-common-defaultenv/init/bootsource | 2 +-
> configs/platform-v8a/barebox.config | 25 +++++++---
> .../platform-v8a/config/images/imx93.config | 24 ++++++++++
> configs/platform-v8a/dts/bootstate.dtsi | 21 +++++++++
> configs/platform-v8a/kernelconfig | 9 ++--
> ...ma93xx-add-dummy-supply-to-regulator.patch | 38 +++++++++++++++
> .../patches/barebox-2025.03.0/series | 1 +
> configs/platform-v8a/platformconfig | 5 +-
> .../platforms/image-tq-mba93xxca.in | 10 ++++
> configs/platform-v8a/rules/firmware-imx.make | 1 +
> .../rules/image-tq-mba93xxca.make | 35 ++++++++++++++
> doc/hardware.rst | 1 +
> doc/hardware_v8a_tqma93xxca.rst | 47 +++++++++++++++++++
> 13 files changed, 206 insertions(+), 13 deletions(-)
> create mode 100644 configs/platform-v8a/config/images/imx93.config
> create mode 100644 configs/platform-v8a/patches/barebox-2025.03.0/0001-ARM-dts-tqma93xx-add-dummy-supply-to-regulator.patch
> create mode 100644 configs/platform-v8a/patches/barebox-2025.03.0/series
> create mode 100644 configs/platform-v8a/platforms/image-tq-mba93xxca.in
> create mode 100644 configs/platform-v8a/rules/image-tq-mba93xxca.make
> create mode 100644 doc/hardware_v8a_tqma93xxca.rst
>
> diff --git a/configs/platform-v8a/barebox-common-defaultenv/init/bootsource b/configs/platform-v8a/barebox-common-defaultenv/init/bootsource
> index aa1d06d..19a0429 100644
> --- a/configs/platform-v8a/barebox-common-defaultenv/init/bootsource
> +++ b/configs/platform-v8a/barebox-common-defaultenv/init/bootsource
> @@ -10,7 +10,7 @@ if [ "$bootsource" = mmc ]; then
> global.boot.default="mmc$bootsource_instance net"
> fi
>
> -if of_compatible -k radxa,rock3a tq,imx8mp-tqma8mpql-mba8mpxl; then
> +if of_compatible -k radxa,rock3a tq,imx8mp-tqma8mpql-mba8mpxl tq,imx93-tqma9352; then
> global.boot.default="bootchooser net"
> global bootchooser.state_prefix="state.bootstate"
> global bootchooser.targets="system0 system1"
> diff --git a/configs/platform-v8a/barebox.config b/configs/platform-v8a/barebox.config
> index 7d3794a..1576088 100644
> --- a/configs/platform-v8a/barebox.config
> +++ b/configs/platform-v8a/barebox.config
> @@ -48,6 +48,8 @@ CONFIG_ARCH_IMX8MM=y
> CONFIG_ARCH_IMX8MN=y
> CONFIG_ARCH_IMX8MP=y
> CONFIG_ARCH_IMX8MQ=y
> +CONFIG_ARCH_IMX9=y
> +CONFIG_ARCH_IMX93=y
>
> #
> # i.MX8M boards
> @@ -72,7 +74,7 @@ CONFIG_MACH_TQ_MBA8MPXL=y
> #
> # i.MX93 boards
> #
> -# CONFIG_MACH_TQMA93XX is not set
> +CONFIG_MACH_TQMA93XX=y
> # end of i.MX boards
>
> #
> @@ -80,7 +82,10 @@ CONFIG_MACH_TQ_MBA8MPXL=y
> #
> # CONFIG_IMX_IIM is not set
> CONFIG_IMX_SAVE_BOOTROM_LOG=y
> +CONFIG_HAB=y
> +CONFIG_AHAB=y
> # CONFIG_HABV4 is not set
> +# CONFIG_HAB_CERTS_ENV is not set
> # end of i.MX specific settings
>
> #
> @@ -138,6 +143,7 @@ CONFIG_BOARD_GENERIC_DT=y
> # CONFIG_BOARD_GENERIC_FIT is not set
> # end of General architecture-dependent options
>
> +CONFIG_BOARD_TQ=y
> CONFIG_CC_IS_GCC=y
> CONFIG_GCC_VERSION=140201
> CONFIG_CLANG_VERSION=0
> @@ -517,6 +523,7 @@ CONFIG_CMD_USB=y
> CONFIG_CMD_USBGADGET=y
> CONFIG_CMD_WD=y
> CONFIG_CMD_WD_DEFAULT_TIMOUT=0
> +# CONFIG_CMD_HAB is not set
> # end of Hardware manipulation
>
> #
> @@ -591,7 +598,7 @@ CONFIG_SERIAL_DEV_BUS=y
> CONFIG_DRIVER_SERIAL_IMX=y
> CONFIG_DRIVER_SERIAL_NS16550=y
> # CONFIG_DRIVER_SERIAL_CADENCE is not set
> -# CONFIG_DRIVER_SERIAL_LPUART32 is not set
> +CONFIG_DRIVER_SERIAL_LPUART32=y
> # CONFIG_SERIAL_SIFIVE is not set
> # end of serial drivers
>
> @@ -664,7 +671,7 @@ CONFIG_SPI_MEM=y
> CONFIG_DRIVER_SPI_IMX=y
> CONFIG_DRIVER_SPI_IMX_2_3=y
> # CONFIG_DRIVER_SPI_LITEX_SPIFLASH is not set
> -# CONFIG_SPI_NXP_FLEXSPI is not set
> +CONFIG_SPI_NXP_FLEXSPI=y
> CONFIG_SPI_ROCKCHIP=y
> # end of SPI drivers
>
> @@ -675,7 +682,7 @@ CONFIG_I2C=y
> #
> # CONFIG_I2C_GPIO is not set
> CONFIG_I2C_IMX=y
> -# CONFIG_I2C_IMX_LPI2C is not set
> +CONFIG_I2C_IMX_LPI2C=y
> # CONFIG_I2C_DESIGNWARE is not set
> # CONFIG_I2C_MV64XXX is not set
> CONFIG_I2C_RK3X=y
> @@ -748,7 +755,7 @@ CONFIG_USB_DWC3=y
> # CONFIG_USB_DWC3_GADGET is not set
> CONFIG_USB_DWC3_DUAL_ROLE=y
> CONFIG_USB_DWC3_OF_SIMPLE=y
> -# CONFIG_USB_EHCI is not set
> +CONFIG_USB_EHCI=y
> CONFIG_USB_XHCI=y
> # CONFIG_USB_ULPI is not set
> CONFIG_USB_OTGDEV=y
> @@ -908,7 +915,8 @@ CONFIG_GPIO_GENERIC=y
> # CONFIG_GPIO_74XX_MMIO is not set
> # CONFIG_GPIO_GENERIC_PLATFORM is not set
> CONFIG_GPIO_IMX=y
> -# CONFIG_GPIO_PCA953X is not set
> +CONFIG_GPIO_VF610=y
> +CONFIG_GPIO_PCA953X=y
> # CONFIG_GPIO_PCF857X is not set
> # CONFIG_GPIO_PL061 is not set
> CONFIG_GPIO_ROCKCHIP=y
> @@ -934,6 +942,7 @@ CONFIG_NVMEM=y
> # CONFIG_NVMEM_SNVS_LPGPR is not set
> CONFIG_IMX_OCOTP=y
> # CONFIG_IMX_OCOTP_WRITE is not set
> +# CONFIG_IMX_OCOTP_ELE is not set
> # CONFIG_EEPROM_93XX46 is not set
> CONFIG_NVMEM_ROCKCHIP_OTP=y
>
> @@ -1064,6 +1073,7 @@ CONFIG_IMX8M_BLK_CTRL=y
> #
> CONFIG_IMX_DRAM=y
> CONFIG_IMX8M_DRAM=y
> +CONFIG_IMX9_DRAM=y
> # end of i.MX DDR controllers
>
> CONFIG_REBOOT_MODE=y
> @@ -1216,6 +1226,7 @@ CONFIG_PBL_STACKPROTECTOR_NONE=y
> # Crypto support
> #
> CONFIG_CRC32=y
> +CONFIG_CRC_ITU_T=y
> CONFIG_DIGEST=y
> CONFIG_HAVE_DIGEST_MD5=y
> CONFIG_HAVE_DIGEST_SHA1=y
> @@ -1249,6 +1260,7 @@ CONFIG_FIRMWARE_IMX8MM_ATF=y
> CONFIG_FIRMWARE_IMX8MN_ATF=y
> CONFIG_FIRMWARE_IMX8MP_ATF=y
> CONFIG_FIRMWARE_IMX8MQ_ATF=y
> +CONFIG_FIRMWARE_IMX93_ATF=y
> # end of Firmware files
>
> #
> @@ -1256,6 +1268,7 @@ CONFIG_FIRMWARE_IMX8MQ_ATF=y
> #
> # CONFIG_COMPILE_HOST_TOOLS is not set
> CONFIG_ARCH_IMX_USBLOADER=y
> +CONFIG_IMX9_IMAGE=y
> CONFIG_RK_IMAGE=y
> CONFIG_RK_USB_LOADER=y
> # end of Host Tools
> diff --git a/configs/platform-v8a/config/images/imx93.config b/configs/platform-v8a/config/images/imx93.config
> new file mode 100644
> index 0000000..1efd2d2
> --- /dev/null
> +++ b/configs/platform-v8a/config/images/imx93.config
> @@ -0,0 +1,24 @@
> +image @IMAGE@ {
> + hdimage {
> + align = 32k
> + partition-table-type = gpt
> + }
> + partition barebox {
> + image = "@BAREBOX_IMAGE@"
> + offset = 32k
> + size = 2528k # = 2,5M - 32k to align at 512k
> + }
> + partition barebox-environment {
> + # is not used by barebox at the moment, because there is an environment in the SPI flash
> + size = 1M
> + partition-type-uuid = barebox-env
> + }
> + partition barebox-state {
> + size = 512k
> + partition-type-uuid = barebox-state
> + }
> + partition root-A {
> + image = "root.ext2"
> + partition-type-uuid = root-arm64
> + }
> +}
> diff --git a/configs/platform-v8a/dts/bootstate.dtsi b/configs/platform-v8a/dts/bootstate.dtsi
> index 1a8fe3f..4d16623 100644
> --- a/configs/platform-v8a/dts/bootstate.dtsi
> +++ b/configs/platform-v8a/dts/bootstate.dtsi
> @@ -40,6 +40,27 @@
>
> #endif
>
> +/** TQ-Systems i.MX93 TQMa93xxLA/TQMa93xxCA on MBa93xxCA starter kit **********/
> +#ifdef imx93_tqma9352_mba93xxca_dts
> +/ {
> + aliases {
> + state = &state_sd;
> + };
> +
> + state_sd: state {
> + #address-cells = <1>;
> + #size-cells = <1>;
> + compatible = "barebox,state";
> + magic = <0xd46d4d28>;
> + backend = <&usdhc2>; // via GPT Type UUID
> + backend-type = "raw";
> + backend-storage-type = "direct";
> + backend-stridesize = <0x40>;
> + };
> +};
> +
> +#endif
> +
> /** Generic bootstate node for all platforms **********************************/
> / {
> state: state {
> diff --git a/configs/platform-v8a/kernelconfig b/configs/platform-v8a/kernelconfig
> index 3e226b9..0513e64 100644
> --- a/configs/platform-v8a/kernelconfig
> +++ b/configs/platform-v8a/kernelconfig
> @@ -2313,7 +2313,8 @@ CONFIG_SERIAL_CORE_CONSOLE=y
> # CONFIG_SERIAL_XILINX_PS_UART is not set
> # CONFIG_SERIAL_ARC is not set
> # CONFIG_SERIAL_RP2 is not set
> -# CONFIG_SERIAL_FSL_LPUART is not set
> +CONFIG_SERIAL_FSL_LPUART=y
> +CONFIG_SERIAL_FSL_LPUART_CONSOLE=y
> # CONFIG_SERIAL_FSL_LINFLEXUART is not set
> # CONFIG_SERIAL_CONEXANT_DIGICOLOR is not set
> # CONFIG_SERIAL_SPRD is not set
> @@ -2564,7 +2565,7 @@ CONFIG_PINCTRL_IMX8MP=y
> CONFIG_PINCTRL_IMX8MQ=y
> # CONFIG_PINCTRL_IMX8ULP is not set
> # CONFIG_PINCTRL_IMX91 is not set
> -# CONFIG_PINCTRL_IMX93 is not set
> +CONFIG_PINCTRL_IMX93=y
> CONFIG_PINCTRL_MVEBU=y
> CONFIG_PINCTRL_ARMADA_AP806=y
> CONFIG_PINCTRL_ARMADA_CP110=y
> @@ -3986,8 +3987,8 @@ CONFIG_CLK_IMX8MN=y
> CONFIG_CLK_IMX8MP=y
> CONFIG_CLK_IMX8MQ=y
> # CONFIG_CLK_IMX8ULP is not set
> -# CONFIG_CLK_IMX93 is not set
> -# CONFIG_CLK_IMX95_BLK_CTL is not set
> +CONFIG_CLK_IMX93=y
> +CONFIG_CLK_IMX95_BLK_CTL=y
> CONFIG_ARMADA_AP_CP_HELPER=y
> CONFIG_ARMADA_37XX_CLK=y
> CONFIG_ARMADA_AP806_SYSCON=y
> diff --git a/configs/platform-v8a/patches/barebox-2025.03.0/0001-ARM-dts-tqma93xx-add-dummy-supply-to-regulator.patch b/configs/platform-v8a/patches/barebox-2025.03.0/0001-ARM-dts-tqma93xx-add-dummy-supply-to-regulator.patch
> new file mode 100644
> index 0000000..11786ad
> --- /dev/null
> +++ b/configs/platform-v8a/patches/barebox-2025.03.0/0001-ARM-dts-tqma93xx-add-dummy-supply-to-regulator.patch
> @@ -0,0 +1,38 @@
> +From b46d4de70f4b9b96ee5277037dd79ba2d7f75751 Mon Sep 17 00:00:00 2001
> +From: Fabian Pflug <f.pflug@pengutronix.de>
> +Date: Thu, 17 Apr 2025 10:35:16 +0200
> +Subject: [PATCH] ARM: dts: tqma93xx add dummy supply to regulator
> +
> +The regulator for the usdhc2 references the BUCK4 as its input.
> +The BUCK4 is part of the pca9451, which in turn is not a regulator
> +in barebox, so there is a problem during initialisation:
> +
> +WARNING: imx-esdhc 42860000.mmc@42860000.of: Failed to get 'vmmc' regulator (ignored)
> +
> +Since the dependency could not be resolved, the reg_usdhc2_vmmc
> +regulator is not correctly initialized, leaving the gpio in a floating
> +state, which results in the GPIO being low, which in turn disables
> +the SD-Card.
> +
> +Signed-off-by: Fabian Pflug <f.pflug@pengutronix.de>
> +---
> + arch/arm/dts/imx93-tqma93xx.dtsi | 3 +++
> + 1 file changed, 3 insertions(+)
> +
> +diff --git a/arch/arm/dts/imx93-tqma93xx.dtsi b/arch/arm/dts/imx93-tqma93xx.dtsi
> +index 40425e39a7..aafeadc275 100644
> +--- a/arch/arm/dts/imx93-tqma93xx.dtsi
> ++++ b/arch/arm/dts/imx93-tqma93xx.dtsi
> +@@ -15,6 +15,9 @@ pca9451a: pmic@25 {
> + reg = <0x25>;
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_pca9451>;
> ++ regulators {
> ++ barebox,allow-dummy-supply;
> ++ };
> + };
> + };
> +
> +--
> +2.39.5
> +
> diff --git a/configs/platform-v8a/patches/barebox-2025.03.0/series b/configs/platform-v8a/patches/barebox-2025.03.0/series
> new file mode 100644
> index 0000000..2d4b3ce
> --- /dev/null
> +++ b/configs/platform-v8a/patches/barebox-2025.03.0/series
> @@ -0,0 +1 @@
> +0001-ARM-dts-tqma93xx-add-dummy-supply-to-regulator.patch
> diff --git a/configs/platform-v8a/platformconfig b/configs/platform-v8a/platformconfig
> index fb1019c..fde26da 100644
> --- a/configs/platform-v8a/platformconfig
> +++ b/configs/platform-v8a/platformconfig
> @@ -137,7 +137,7 @@ PTXCONF_KERNEL_IMAGE_RAW=y
> PTXCONF_KERNEL_IMAGE="Image"
> PTXCONF_KERNEL_DTB=y
> PTXCONF_KERNEL_DTS_PATH="${PTXDIST_PLATFORMCONFIG_SUBDIR}/dts:${KERNEL_DIR}/arch/${GENERIC_KERNEL_ARCH}/boot/dts"
> -PTXCONF_KERNEL_DTS="armada-3720-community.dts freescale/imx8mm-evk.dts freescale/imx8mn-ddr4-evk.dts freescale/imx8mn-ddr4-evk.dts freescale/imx8mp-evk.dts freescale/imx8mq-evk.dts rockchip/rk3568-rock-3a.dts freescale/imx8mp-tqma8mpql-mba8mpxl.dts"
> +PTXCONF_KERNEL_DTS="armada-3720-community.dts freescale/imx8mm-evk.dts freescale/imx8mn-ddr4-evk.dts freescale/imx8mn-ddr4-evk.dts freescale/imx8mp-evk.dts freescale/imx8mq-evk.dts rockchip/rk3568-rock-3a.dts freescale/imx8mp-tqma8mpql-mba8mpxl.dts freescale/imx93-tqma9352-mba93xxca.dts"
> # PTXCONF_KERNEL_DTBO is not set
> # PTXCONF_KERNEL_CODE_SIGNING is not set
> # PTXCONF_KERNEL_ZSTD is not set
> @@ -213,7 +213,7 @@ PTXCONF_TF_A_MD5="dea016f3707117c7935a8a26433a1e46 5b90a1c21210702e64234a2beb79f
> PTXCONF_TF_A_ARCH_STRING="aarch64"
> PTXCONF_TF_A_ARM_ARCH_MAJOR_8=y
> PTXCONF_TF_A_ARM_ARCH_MAJOR=8
> -PTXCONF_TF_A_PLATFORMS="imx8mq imx8mm imx8mn imx8mp"
> +PTXCONF_TF_A_PLATFORMS="imx8mq imx8mm imx8mn imx8mp imx93"
> PTXCONF_TF_A_ARM_ARCH_MINOR=0
> PTXCONF_TF_A_EXTRA_ARGS="IMX_BOOT_UART_BASE=auto"
> PTXCONF_TF_A_ARTIFACTS="bl31.bin"
> @@ -291,6 +291,7 @@ PTXCONF_IMAGE_ROOT_TGZ_LABEL=""
> # PTXCONF_IMAGE_ROOT_UBI is not set
> # PTXCONF_IMAGE_ROOT_UBIFS is not set
> PTXCONF_IMAGE_TQ_MBA8MPXL=y
> +PTXCONF_IMAGE_TQ_MBA93XXCA=y
>
> #
> # ipkg options
> diff --git a/configs/platform-v8a/platforms/image-tq-mba93xxca.in b/configs/platform-v8a/platforms/image-tq-mba93xxca.in
> new file mode 100644
> index 0000000..b36e285
> --- /dev/null
> +++ b/configs/platform-v8a/platforms/image-tq-mba93xxca.in
> @@ -0,0 +1,10 @@
> +## SECTION=image
> +
> +config IMAGE_TQ_MBA93XXCA
> + tristate
> + select HOST_GENIMAGE
> + select IMAGE_ROOT_EXT
> + select BAREBOX
> + prompt "Generate images/tq-mba93xxca.img"
> + help
> + Generate a bootable SD card image to deploy on a TQ MBa93xxCA board.
> diff --git a/configs/platform-v8a/rules/firmware-imx.make b/configs/platform-v8a/rules/firmware-imx.make
> index 1cdc3ee..6b01af3 100644
> --- a/configs/platform-v8a/rules/firmware-imx.make
> +++ b/configs/platform-v8a/rules/firmware-imx.make
> @@ -34,6 +34,7 @@ BAREBOX_INJECT_FILES += imx8mm-bl31.bin:firmware/imx8mm-bl31.bin
> BAREBOX_INJECT_FILES += imx8mn-bl31.bin:firmware/imx8mn-bl31.bin
> BAREBOX_INJECT_FILES += imx8mp-bl31.bin:firmware/imx8mp-bl31.bin
> BAREBOX_INJECT_FILES += imx8mq-bl31.bin:firmware/imx8mq-bl31.bin
> +BAREBOX_INJECT_FILES += imx93-bl31.bin:firmware/imx93-bl31.bin
> ifdef PTXCONF_FIRMWARE_IMX_BOOTIMAGE_IMX8
> BAREBOX_INJECT_FILES += ddr/synopsys/lpddr4_pmu_train_1d_dmem.bin:firmware/lpddr4_pmu_train_1d_dmem.bin
> BAREBOX_INJECT_FILES += ddr/synopsys/lpddr4_pmu_train_1d_imem.bin:firmware/lpddr4_pmu_train_1d_imem.bin
> diff --git a/configs/platform-v8a/rules/image-tq-mba93xxca.make b/configs/platform-v8a/rules/image-tq-mba93xxca.make
> new file mode 100644
> index 0000000..5e6bcd7
> --- /dev/null
> +++ b/configs/platform-v8a/rules/image-tq-mba93xxca.make
> @@ -0,0 +1,35 @@
> +# -*-makefile-*-
> +#
> +# Copyright (C) 2025 by Fabian Pflug <f.pflug@pengutronix.de>
> +#
> +# For further information about the PTXdist project and license conditions
> +# see the README file.
> +#
> +
> +#
> +# We provide this package
> +#
> +IMAGE_PACKAGES-$(PTXCONF_IMAGE_TQ_MBA93XXCA) += image-tq-mba93xxca
> +
> +#
> +# Paths and names
> +#
> +IMAGE_TQ_MBA93XXCA := image-tq-mba93xxca
> +IMAGE_TQ_MBA93XXCA_DIR := $(BUILDDIR)/$(IMAGE_TQ_MBA93XXCA)
> +IMAGE_TQ_MBA93XXCA_IMAGE := $(IMAGEDIR)/tq-mba93xxca.img
> +IMAGE_TQ_MBA93XXCA_FILES := $(IMAGEDIR)/root.tgz
> +IMAGE_TQ_MBA93XXCA_CONFIG := imx93.config
> +
> +# ----------------------------------------------------------------------------
> +# Image
> +# ----------------------------------------------------------------------------
> +
> +IMAGE_TQ_MBA93XXCA_ENV := \
> + BAREBOX_IMAGE=barebox-tqma93xx.img
> +
> +$(IMAGE_TQ_MBA93XXCA_IMAGE):
> + @$(call targetinfo)
> + @$(call image/genimage, IMAGE_TQ_MBA93XXCA)
> + @$(call finish)
> +
> +# vim: syntax=make
> diff --git a/doc/hardware.rst b/doc/hardware.rst
> index 5c9a0df..ccec2b4 100644
> --- a/doc/hardware.rst
> +++ b/doc/hardware.rst
> @@ -131,6 +131,7 @@ Currently, DistroKit supports the following hardware:
>
> hardware_v8a_espressobin
> hardware_v8a_rock3a
> + hardware_v8a_tqma93xxca
>
>
> rpi1 Platform
> diff --git a/doc/hardware_v8a_tqma93xxca.rst b/doc/hardware_v8a_tqma93xxca.rst
> new file mode 100644
> index 0000000..c516854
> --- /dev/null
> +++ b/doc/hardware_v8a_tqma93xxca.rst
> @@ -0,0 +1,47 @@
> +TQ-Systems i.MX93 TQMa93xxLA/TQMa93xxCA on MBa93xxCA starter kit
> +================================================================
> +
> +
> +Boot Media
> +----------
> +
> +Booting is available via multiple sources (Compare Table 6: Boot configuration i.MX 93 from TQMa93xxCA UM 0003)
> +
> +.. csv-table:: Example :rst:dir:`csv-table`
> + :header: "Boot Source", "BOOT_MODE2", "BOOT_MODE1", "BOOT_MODE0"
> +
> + "Boot from eFuse", "0", "0", "0"
> + "Serial Downloader (USB1)", "0", "0", "1"
> + "Boot from eMMC 5.1", "0", "1", "0"
> + "Boot from SD 3.0 card", "0", "1", "1"
> + "Boot from FlexSPI Serial NOR", "1", "0", "0"
> +
> +
> +Booting from USB and NFS
> +~~~~~~~~~~~~~~~~~~~~~~~~
> +
> +Upload the bootloader ``platform-v8a/images/barebox-tqma93xx.img`` via USB:
> +
> +.. code-block:: shell
> +
> + platform-v8a/sysroot-host/bin/imx-usb-loader platform-v8a/images/barebox-tqma93xx.img
> +
> +In Barebox, set the default boot location to nfs:
> +
> + nv boot.default nfs://dude06//ptx/work/user/fpg/DistroKit/platform-v8a/root
> +
> +replace the path to one, where you have compiled your Distrokit
> +
> +
> +Booting via SD-Card
> +~~~~~~~~~~~~~~~~~~~
> +
> +Write the image ``platform-v8a/images/tq-mba93xxca.img`` to a microSD card. Put the
> +microSD card into the TQMa93xxCA and boot it.
> +
> +
> +Serial Console
> +--------------
> +
> +The serial boot console is available via the microUSB Connector on the board.
> +It brings 4 UARTS, whereas the first is the Serial console used by kernel and bootloader.
> --
> 2.39.5
>
>
>
--
Pengutronix e.K. | Dipl.-Ing. Robert Schwebel |
Steuerwalder Str. 21 | https://www.pengutronix.de/ |
31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-9 |
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2025-04-23 14:31 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-04-23 13:49 [DistroKit] [PATCH v2] v8a: Add support for tq-ma93xxca Fabian Pflug
2025-04-23 13:53 ` Ahmad Fatoum
2025-04-23 14:31 ` Robert Schwebel
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox