Compare commits

...

10 Commits

Author SHA1 Message Date
Heinrich Toews 8b8a65bcaf arch: arm64: dts: ti: Enable slb9670 TPM on k3-am623-pfc-750-8400
TPM support is required for secure key storage and platform integrity
features. Enabling the slb9670 node ensures the TPM is available for
system use on this board variant.

Signed-off-by: Heinrich Toews <ht@twx-software.de>
2026-06-18 12:33:10 +02:00
Heinrich Toews 29dfa20e98 arm64: dts: ti: Move default UART4 RTS GPIO to common board DTSI
When an interaction overlay is loaded after a base overlay, its
inclusion of k3-am623-pfc-rs485.dtsi overrides the baseboard-specific
UART4 rts-gpios config back to GPIO0_38. Moving the default rts-gpios to
the base common DTSI prevents this override, letting the active baseboard
overlay (like p0004224 which uses GPIO0_37) cleanly configure its
specific RTS routing.

Signed-off-by: Heinrich Toews <ht@twx-software.de>
2026-06-18 12:33:10 +02:00
Heinrich Toews 627a7e301b arm64: boot: fitImage: Add missing config for base-p0004224
U-Boot fails to load the baseboard overlay for PCB p0004224 at boot
because the FIT image configuration node is missing. Adding this entry
resolves the configuration name correctly and lets the bootloader
apply the appropriate base overlay.

Signed-off-by: Heinrich Toews <ht@twx-software.de>
2026-06-18 12:33:10 +02:00
Heinrich Toews 83f5383d6d arm64: dts: ti: Fix UART4 pinmux reference in base overlay p0004224
The omap8250 driver fails to register main_uart4 because the base
devicetree's phandle reference for 'pinctrl-0' is invalidated when
the overlay redefines 'main_uart4_pins_default'. Explicitly assigning
the pinctrl-0 property in the overlay ensures that the resolver
updates the phandle to the newly overlay-defined node.

Signed-off-by: Heinrich Toews <ht@twx-software.de>
2026-06-18 12:33:10 +02:00
Heinrich Toews 70839cbb07 arch: arm64: dts: ti: Add overlay for 750-8400 p0004224 RS485 DE fix
Board revision p0004224 has a hardware bug with RS485 DE routed to the
wrong pin (RS.DE instead of RS-2.DE). This overlay applies a workaround
to enable correct RS485 operation on this revision. Future revision
p0004305 resolves the issue in hardware, making this workaround
unnecessary.

Signed-off-by: Heinrich Toews <ht@twx-software.de>
2026-06-18 12:33:10 +02:00
Heinrich Toews 89151ac6be arm64: dts: ti: Move single LED mode to specific baseboard overlay
The newer p0004305 baseboard utilizes a dual-LED configuration on its
Ethernet ports for link and activity signaling, making the global
single-led-mode property counter-productive.

DTC compiles separate label overrides inside DTBOs into disjoint
fragments, causing dynamic compile-time /delete-property/ directives
not to propagate across fragment boundaries. Decouple the single-led
configuration from the shared dtsi by allocating it exclusively inside
the legacy p0003964 baseboard overlay.

Signed-off-by: Heinrich Toews <ht@twx-software.de>
2026-06-18 12:33:10 +02:00
Heinrich Toews c057f5756e arm64: dts: ti: Update board IDs for PFC400 revision 2 overlays
To match the updated hardware identification numbers assigned to the
revision 2 of the PFC400 board prototypes, the overlay filenames and
their respective configurations in the Makefile and fitImage.its need
to be updated. This ensures consistency between physical revision 2
boards and the compiled device-tree binaries.

Signed-off-by: Heinrich Toews <ht@twx-software.de>
2026-06-18 12:33:10 +02:00
Heinrich Toews b0b3420384 arm64: dts: ti: k3-am623-pfc-750-84xx: fix switch port labels (dirty)
Ethernet switch port labels were incorrectly assigned, causing
mismatch between physical port positions and their logical names.
Swap labels to reflect the correct port-to-interface mapping:
port@0->ethX1, port@2->ethX3, port@3->ethX4, port@4->ethEM.

Signed-off-by: Heinrich Toews <ht@twx-software.de>
2026-06-18 12:33:10 +02:00
Heinrich Toews 1e37c680df arm64: dts: ti: shorten FIT config nodes and add OMS poll interval
The U-Boot extension string generation for overlay configurations
exceeded the libfdt 31-character limit, causing failures during boot.
Shorten the configuration node names in the FIT image to match the
updated U-Boot logic. Additionally, add a poll interval to the OMS
switch overlay to work around missing MCU GPIO interrupt routing.

Signed-off-by: Heinrich Toews <ht@twx-software.de>
2026-06-18 12:33:10 +02:00
Heinrich Toews d9e016a7ff arm64: dts: ti: k3-am623-pfc-750-84xx: Fix VDD_CORE min voltage
The minimum voltage for VDD_CORE was set to 750mV, which is below
the actual operating range. Align it with the maximum of 850mV to
reflect the correct and fixed voltage level for this regulator.

Signed-off-by: Heinrich Toews <ht@twx-software.de>
2026-06-18 12:33:10 +02:00
13 changed files with 79 additions and 32 deletions
+5 -4
View File
@@ -27,13 +27,14 @@ dtb-$(CONFIG_ARCH_K3) += k3-am623-pfc-750-8302.dtb
dtb-$(CONFIG_ARCH_K3) += k3-am623-pfc-750-830x-ems.dtb
dtb-$(CONFIG_ARCH_K3) += k3-am623-pfc-750-8400.dtb
dtb-$(CONFIG_ARCH_K3) += k3-am623-spehvac.dtb
dtb-$(CONFIG_ARCH_K3) += overlay-750-8400-wosm-p0000042.dtbo \
dtb-$(CONFIG_ARCH_K3) += overlay-750-8400-wosm-p0004037.dtbo \
overlay-750-8400-wosm-p0004263.dtbo \
overlay-750-8400-base-p0000017.dtbo \
overlay-750-8400-base-p0003964.dtbo \
overlay-750-8400-base-p0004305.dtbo \
overlay-750-8400-localbus-p0000007.dtbo \
overlay-750-8400-base-p0004224.dtbo \
overlay-750-8400-localbus-p0003978.dtbo \
overlay-750-8400-localbus-p0004067.dtbo \
overlay-750-8400-interaction-p0000031.dtbo \
overlay-750-8400-interaction-p0003965.dtbo \
overlay-750-8400-interaction-p0004065.dtbo
# Boards with AM62Ax SoC
+33 -20
View File
@@ -32,9 +32,9 @@
};
};
img-overlay-PFC-750-840x-wosm-p0000042 {
img-overlay-PFC-750-840x-wosm-p0004037 {
description = "WOSM Overlay";
data = /incbin/("overlay-750-8400-wosm-p0000042.dtbo");
data = /incbin/("overlay-750-8400-wosm-p0004037.dtbo");
type = "flat_dt";
arch = "arm64";
compression = "none";
@@ -49,15 +49,23 @@
compression = "none";
};
img-overlay-PFC-750-840x-base-p0000017 {
img-overlay-PFC-750-840x-base-p0003964 {
description = "Base Overlay";
data = /incbin/("overlay-750-8400-base-p0000017.dtbo");
data = /incbin/("overlay-750-8400-base-p0003964.dtbo");
type = "flat_dt";
arch = "arm64";
compression = "none";
};
img-overlay-PFC-750-840x-base-p0004224 {
description = "Base Overlay p0004224";
data = /incbin/("overlay-750-8400-base-p0004224.dtbo");
type = "flat_dt";
arch = "arm64";
compression = "none";
};
img-overlay-PFC-750-840x-base-p0004305 {
description = "Base Overlay p0004305";
data = /incbin/("overlay-750-8400-base-p0004305.dtbo");
@@ -66,9 +74,9 @@
compression = "none";
};
img-overlay-PFC-750-840x-localbus-p0000007 {
img-overlay-PFC-750-840x-localbus-p0003978 {
description = "Localbus Overlay";
data = /incbin/("overlay-750-8400-localbus-p0000007.dtbo");
data = /incbin/("overlay-750-8400-localbus-p0003978.dtbo");
type = "flat_dt";
arch = "arm64";
compression = "none";
@@ -83,9 +91,9 @@
compression = "none";
};
img-overlay-PFC-750-840x-interaction-p0000031 {
img-overlay-PFC-750-840x-interaction-p0003965 {
description = "Interaction Overlay";
data = /incbin/("overlay-750-8400-interaction-p0000031.dtbo");
data = /incbin/("overlay-750-8400-interaction-p0003965.dtbo");
type = "flat_dt";
arch = "arm64";
compression = "none";
@@ -109,42 +117,47 @@
fdt = "fdt-PFC-750-840x";
};
overlay-PFC-750-840x-wosm-p0000042 {
ovl-750-840x-wosm-p0004037 {
description = "WOSM Overlay config";
fdt = "img-overlay-PFC-750-840x-wosm-p0000042";
fdt = "img-overlay-PFC-750-840x-wosm-p0004037";
};
overlay-PFC-750-840x-wosm-p0004263 {
ovl-750-840x-wosm-p0004263 {
description = "WOSM Overlay p0004263 config";
fdt = "img-overlay-PFC-750-840x-wosm-p0004263";
};
overlay-PFC-750-840x-base-p0000017 {
ovl-750-840x-base-p0003964 {
description = "Base Overlay config";
fdt = "img-overlay-PFC-750-840x-base-p0000017";
fdt = "img-overlay-PFC-750-840x-base-p0003964";
};
overlay-PFC-750-840x-base-p0004305 {
ovl-750-840x-base-p0004224 {
description = "Base Overlay p0004224 config";
fdt = "img-overlay-PFC-750-840x-base-p0004224";
};
ovl-750-840x-base-p0004305 {
description = "Base Overlay p0004305 config";
fdt = "img-overlay-PFC-750-840x-base-p0004305";
};
overlay-PFC-750-840x-localbus-p0000007 {
ovl-750-840x-localbus-p0003978 {
description = "Localbus Overlay config";
fdt = "img-overlay-PFC-750-840x-localbus-p0000007";
fdt = "img-overlay-PFC-750-840x-localbus-p0003978";
};
overlay-PFC-750-840x-localbus-p0004067 {
ovl-750-840x-localbus-p0004067 {
description = "Localbus Overlay p0004067 config";
fdt = "img-overlay-PFC-750-840x-localbus-p0004067";
};
overlay-PFC-750-840x-interaction-p0000031 {
ovl-750-840x-interaction-p0003965 {
description = "Interaction Overlay config";
fdt = "img-overlay-PFC-750-840x-interaction-p0000031";
fdt = "img-overlay-PFC-750-840x-interaction-p0003965";
};
overlay-PFC-750-840x-interaction-p0004065 {
ovl-750-840x-interaction-p0004065 {
description = "Interaction Overlay p0004065 config";
fdt = "img-overlay-PFC-750-840x-interaction-p0004065";
};
@@ -81,6 +81,10 @@
board,variant = "pfc400";
};
&slb9670 {
status = "okay";
};
&main_spi2 {
ti,spi-num-cs = <4>;
@@ -40,15 +40,13 @@
interrupt-parent = <&main_gpio0>;
interrupts = <13 IRQ_TYPE_EDGE_FALLING>;
microchip,single-led-mode;
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
label = "ethX3";
label = "ethX1";
phy-mode = "internal";
};
@@ -60,19 +58,19 @@
port@2 {
reg = <2>;
label = "ethX1";
label = "ethX3";
phy-mode = "internal";
};
port@3 {
reg = <3>;
label = "ethEM";
label = "ethX4";
phy-mode = "internal";
};
port@4 {
reg = <4>;
label = "ethX4";
label = "ethEM";
phy-mode = "internal";
};
@@ -94,7 +94,7 @@
regulators {
buck1_30_reg: buck1 {
regulator-name = "VDD_CORE";
regulator-min-microvolt = <750000>;
regulator-min-microvolt = <850000>;
regulator-max-microvolt = <850000>;
regulator-boot-on;
regulator-always-on;
@@ -286,6 +286,7 @@
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&main_uart4_pins_default>;
rts-gpios = <&main_gpio0 38 GPIO_ACTIVE_HIGH>;
};
&main_i2c0 { /* type label */
@@ -32,7 +32,6 @@
};
&main_uart4 { /* RS485 Interface */
rts-gpios = <&main_gpio0 38 GPIO_ACTIVE_HIGH>;
/* RS485 termination is controlled via GPIO userspace tools */
rs485-rts-active-high;
linux,rs485-enabled-at-boot-time;
@@ -7,3 +7,9 @@
#include <dt-bindings/leds/common.h>
#include "k3-am623-pfc-750-84xx-baseboard.dtsi"
&mcu_spi0 {
ksz9477@0 {
microchip,single-led-mode;
};
};
@@ -0,0 +1,24 @@
/dts-v1/;
/plugin/;
#include "k3-pinctrl.h"
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/leds/common.h>
#include "k3-am623-pfc-750-84xx-baseboard.dtsi"
&main_pmx0 {
main_uart4_pins_default: main-uart4-default-pins {
pinctrl-single,pins = <
AM62X_IOPAD(0x0b0, PIN_INPUT, 3) /* (K22) UART4_RXD */
AM62X_IOPAD(0x0b4, PIN_OUTPUT, 3) /* (K24) UART4_TXD */
AM62X_IOPAD(0x0098, PIN_OUTPUT_PULLDOWN, 7) /* (U23) GPIO0_37 (RS-DE) */
>;
};
};
&main_uart4 {
pinctrl-0 = <&main_uart4_pins_default>;
rts-gpios = <&main_gpio0 37 GPIO_ACTIVE_HIGH>;
};
@@ -25,6 +25,7 @@
&oms {
pinctrl-0 = <&oms_pins_default &oms_mcu_pins_default>;
poll-interval = <100>;
oms_run: run {
label = "RUN";