DistroKit Mailinglist
 help / color / mirror / Atom feed
* [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