Use Mono's dts

This commit is contained in:
2026-03-21 21:23:43 +08:00
parent b4078979d6
commit dd9cde3fb0
9 changed files with 1095 additions and 14 deletions

View File

@@ -1,9 +1,20 @@
# monok8s # monok8s
Kubernetes image for Mono Gateway Development Kit Kubernetes image for Mono Gateway Development Kit
https://docs.mono.si/gateway-development-kit/getting-started https://docs.mono.si/gateway-development-kit/getting-started
### The device's dts files are located at here
https://github.com/we-are-mono/OpenWRT-ASK/tree/mono-25.12.0-rc3/target/linux/layerscape/files/arch/arm64/boot/dts/freescale
* We need both `mono-gateway-dk-sdk.dts` and `mono-gateway-dk.dts` since the sdk one includes the non-sdk one.
* The actual dts being used is the `mono-gateway-dk-sdk.dts`
## Build ## Build
To avoid frequent downloading on rebuild. Find and download the latest [kernel](https://github.com/nxp-qoriq/linux/archive/refs/tags/) and [busybox](https://github.com/mirror/busybox/archive/refs/tags/).
Put them into `dev/nxplinux.tar.gz` and `dev/busybox.tar.gz` respectively.
```bash ```bash
make itb # for out/board.itb make itb # for out/board.itb
make release # WORK IN PROGRESS make release # WORK IN PROGRESS

View File

@@ -17,7 +17,7 @@
}; };
fdt { fdt {
description = "DTB"; description = "DTB";
data = /incbin/("fsl-ls1046a-rdb-sdk.dtb"); data = /incbin/("${DEVICE_TREE_TARGET}.dtb");
type = "flat_dt"; type = "flat_dt";
arch = "arm64"; arch = "arm64";
compression = "none"; compression = "none";

View File

@@ -8,7 +8,7 @@ NXP_VERSION=lf-6.18.2-1.0.0
# Mono's tutorial said fsl-ls1046a-rdb.dtb but our shipped board is not that one # Mono's tutorial said fsl-ls1046a-rdb.dtb but our shipped board is not that one
# We need fsl-ls1046a-rdb-sdk.dtb here # We need fsl-ls1046a-rdb-sdk.dtb here
DTB_TARGET=fsl-ls1046a-rdb-sdk.dtb DEVICE_TREE_TARGET=mono-gateway-dk-sdk
# Arch, should always be arm64 for our board. This is here in case branching off to other devices # Arch, should always be arm64 for our board. This is here in case branching off to other devices

View File

@@ -1,4 +1,4 @@
FROM --platform=linux/amd64 debian:bookworm AS kernel-build FROM --platform=linux/amd64 debian:bookworm-slim AS kernel-build
ENV DEBIAN_FRONTEND=noninteractive ENV DEBIAN_FRONTEND=noninteractive
@@ -14,6 +14,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
file \ file \
flex \ flex \
git \ git \
gettext-base \
kmod \ kmod \
libelf-dev \ libelf-dev \
libssl-dev \ libssl-dev \

View File

@@ -5,7 +5,7 @@ FROM ${DOCKER_IMAGE_ROOT}/fit-build:${TAG} AS fit
FROM --platform=linux/amd64 ${DOCKER_IMAGE_ROOT}/build-base:${TAG} AS build FROM --platform=linux/amd64 ${DOCKER_IMAGE_ROOT}/build-base:${TAG} AS build
ARG DTB_TARGET ARG DEVICE_TREE_TARGET
RUN mkdir /image RUN mkdir /image
WORKDIR /image WORKDIR /image
@@ -14,10 +14,11 @@ COPY --from=kernel /out/kernel/Image.gz ./Image.gz
COPY --from=kernel /out/kernel/System.map ./ COPY --from=kernel /out/kernel/System.map ./
COPY --from=kernel /out/kernel/.config ./ COPY --from=kernel /out/kernel/.config ./
COPY --from=fit /out/initramfs.cpio.gz ./ COPY --from=fit /out/initramfs.cpio.gz ./
COPY --from=kernel /out/${DTB_TARGET} ./ COPY --from=kernel /out/${DEVICE_TREE_TARGET}.dtb ./
COPY ./board.its ./ COPY ./board.its ./_board.its
RUN envsubst < _board.its > board.its
RUN mkimage -f board.its board.itb RUN mkimage -f board.its board.itb
FROM scratch FROM scratch

View File

@@ -5,12 +5,14 @@ FROM --platform=linux/amd64 ${DOCKER_IMAGE_ROOT}/build-base:${TAG}
ARG NXP_VERSION ARG NXP_VERSION
ARG ARCH ARG ARCH
ARG CROSS_COMPILE ARG CROSS_COMPILE
ARG DEVICE_TREE_TARGET
WORKDIR /build WORKDIR /build
RUN test -n "${NXP_VERSION}" || (echo "Please specify NXP_VERSION" >&2; exit 1); \ RUN test -n "${NXP_VERSION}" || (echo "Please specify NXP_VERSION" >&2; exit 1); \
test -n "${ARCH}" || (echo "Please specify ARCH" >&2; exit 1); \ test -n "${ARCH}" || (echo "Please specify ARCH" >&2; exit 1); \
test -n "${CROSS_COMPILE}" || (echo "Please specify CROSS_COMPILE" >&2; exit 1) test -n "${CROSS_COMPILE}" || (echo "Please specify CROSS_COMPILE" >&2; exit 1); \
test -n "${DEVICE_TREE_TARGET}" || (echo "Please specify DEVICE_TREE_TARGET" >&2; exit 1)
# Dev-only shortcut # Dev-only shortcut
COPY dev/nxplinux.tar.gz ./ COPY dev/nxplinux.tar.gz ./
@@ -27,6 +29,12 @@ RUN tar -xf nxplinux.tar.gz \
WORKDIR /build/nxplinux WORKDIR /build/nxplinux
COPY kernel-extra.config /tmp/kernel-extra.config COPY kernel-extra.config /tmp/kernel-extra.config
COPY kernel-build/dts/*.dts ./arch/arm64/boot/dts/freescale/
RUN grep -q "^dtb-\\\$(CONFIG_ARCH_LAYERSCAPE) += ${DEVICE_TREE_TARGET}.dtb$" \
arch/arm64/boot/dts/freescale/Makefile \
|| echo "dtb-\$(CONFIG_ARCH_LAYERSCAPE) += ${DEVICE_TREE_TARGET}.dtb" \
>> arch/arm64/boot/dts/freescale/Makefile
# NXP tree: use the LSDK defconfig target # NXP tree: use the LSDK defconfig target
RUN make ARCH="${ARCH}" CROSS_COMPILE="${CROSS_COMPILE}" defconfig lsdk.config \ RUN make ARCH="${ARCH}" CROSS_COMPILE="${CROSS_COMPILE}" defconfig lsdk.config \
@@ -43,7 +51,5 @@ RUN mkdir -p /out/kernel /out/rootfs \
RUN depmod -b /out/rootfs $(ls /out/rootfs/lib/modules/) RUN depmod -b /out/rootfs $(ls /out/rootfs/lib/modules/)
ARG DTB_TARGET RUN find /out/kernel -name "${DEVICE_TREE_TARGET}.dtb" -exec cp {} /out/ \;
RUN test -f "/out/${DEVICE_TREE_TARGET}.dtb"
RUN find /out/kernel -name "${DTB_TARGET}" -exec cp {} /out/ \;
RUN test -f "/out/${DTB_TARGET}"

View File

@@ -0,0 +1,531 @@
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
* Device Tree file for Freescale Layerscape-1046A family SoC.
*
* Copyright 2025 Mono Technologies Inc.
*
* Author: Tomaz Zaman <tomaz@mono.si>
*/
#include "mono-gateway-dk.dts"
#include "qoriq-qman-portals-sdk.dtsi"
#include "qoriq-bman-portals-sdk.dtsi"
/ {
/* Boot memory regions for SDK DPAA driver */
bootmem0@a0000000 {
reg = <0x00 0xa0000000 0x00 0x4000000 0x00 0xa4000000 0x00 0x6000000>;
};
bootmem1@aa000000 {
reg = <0x00 0xaa000000 0x00 0x4000000 0x00 0xae000000 0x00 0x6000000>;
};
cpus {
fman0-extended-args {
cell-index = <0x00>;
compatible = "fsl,fman-extended-args";
total-fifo-size = <0x3e500>;
/* Offline ports for CDX - cell-index overridden for SDK compatibility:
* fman0_oh_0x3 (port@83000) = cell-index 1 (SDK style)
* fman0_oh_0x4 (port@84000) = cell-index 2 (SDK style)
*/
fman0_oh_0x3-extended-args {
cell-index = <0x01>; /* matches port@83000 SDK cell-index */
compatible = "fsl,fman-port-op-extended-args";
fifo-size = <0x3200 0x00>;
buffer-layout = <0x60 0x40>;
};
fman0_oh_0x4-extended-args {
cell-index = <0x02>; /* matches port@84000 SDK cell-index */
compatible = "fsl,fman-port-op-extended-args";
fifo-size = <0x900 0x00>;
buffer-layout = <0x60 0x40>;
};
/* All 1G ports need extended-args (SDK driver requirement) */
/* MAC1 (ethernet@e0000) - cell-index 0 - disabled but needed */
fman0_rx0-extended-args {
cell-index = <0x00>;
compatible = "fsl,fman-port-1g-rx-extended-args";
fifo-size = <0x3200 0x00>;
buffer-layout = <0x60 0x40>;
vsp-window = <0x02 0x00>;
};
fman0_tx0-extended-args {
cell-index = <0x00>;
compatible = "fsl,fman-port-1g-tx-extended-args";
fifo-size = <0x3200 0x00>;
buffer-layout = <0x60 0x40>;
};
/* MAC2 (ethernet@e2000) - cell-index 1 */
fman0_rx1-extended-args {
cell-index = <0x01>;
compatible = "fsl,fman-port-1g-rx-extended-args";
fifo-size = <0x3200 0x00>;
buffer-layout = <0x60 0x40>;
vsp-window = <0x02 0x00>;
};
fman0_tx1-extended-args {
cell-index = <0x01>;
compatible = "fsl,fman-port-1g-tx-extended-args";
fifo-size = <0x3200 0x00>;
buffer-layout = <0x60 0x40>;
};
/* MAC3 (ethernet@e4000) - cell-index 2 - disabled but needed */
fman0_rx2-extended-args {
cell-index = <0x02>;
compatible = "fsl,fman-port-1g-rx-extended-args";
fifo-size = <0x3200 0x00>;
buffer-layout = <0x60 0x40>;
vsp-window = <0x02 0x00>;
};
fman0_tx2-extended-args {
cell-index = <0x02>;
compatible = "fsl,fman-port-1g-tx-extended-args";
fifo-size = <0x3200 0x00>;
buffer-layout = <0x60 0x40>;
};
/* MAC4 (ethernet@e6000) - cell-index 3 - disabled but needed */
fman0_rx3-extended-args {
cell-index = <0x03>;
compatible = "fsl,fman-port-1g-rx-extended-args";
fifo-size = <0x3200 0x00>;
buffer-layout = <0x60 0x40>;
vsp-window = <0x02 0x00>;
};
fman0_tx3-extended-args {
cell-index = <0x03>;
compatible = "fsl,fman-port-1g-tx-extended-args";
fifo-size = <0x3200 0x00>;
buffer-layout = <0x60 0x40>;
};
/* MAC5 (ethernet@e8000) - cell-index 4 */
fman0_rx4-extended-args {
cell-index = <0x04>;
compatible = "fsl,fman-port-1g-rx-extended-args";
fifo-size = <0x3200 0x00>;
buffer-layout = <0x60 0x40>;
vsp-window = <0x02 0x00>;
};
fman0_tx4-extended-args {
cell-index = <0x04>;
compatible = "fsl,fman-port-1g-tx-extended-args";
fifo-size = <0x3200 0x00>;
buffer-layout = <0x60 0x40>;
};
/* MAC6 (ethernet@ea000) - cell-index 5 */
fman0_rx5-extended-args {
cell-index = <0x05>;
compatible = "fsl,fman-port-1g-rx-extended-args";
fifo-size = <0x3200 0x00>;
buffer-layout = <0x60 0x40>;
vsp-window = <0x02 0x00>;
};
fman0_tx5-extended-args {
cell-index = <0x05>;
compatible = "fsl,fman-port-1g-tx-extended-args";
fifo-size = <0x3200 0x00>;
buffer-layout = <0x60 0x40>;
};
/* MAC9 (ethernet@f0000) - 10G cell-index 0 */
fman0_rx6-extended-args {
cell-index = <0x00>;
compatible = "fsl,fman-port-10g-rx-extended-args";
fifo-size = <0x6000 0x00>;
buffer-layout = <0x60 0x40>;
vsp-window = <0x02 0x00>;
};
fman0_tx6-extended-args {
cell-index = <0x00>;
compatible = "fsl,fman-port-10g-tx-extended-args";
fifo-size = <0x4000 0x00>;
buffer-layout = <0x60 0x40>;
};
/* MAC10 (ethernet@f2000) - 10G cell-index 1 */
fman0_rx7-extended-args {
cell-index = <0x01>;
compatible = "fsl,fman-port-10g-rx-extended-args";
fifo-size = <0x6000 0x00>;
buffer-layout = <0x60 0x40>;
vsp-window = <0x02 0x00>;
};
fman0_tx7-extended-args {
cell-index = <0x01>;
compatible = "fsl,fman-port-10g-tx-extended-args";
fifo-size = <0x4000 0x00>;
buffer-layout = <0x60 0x40>;
};
};
};
};
&bman_fbpr {
compatible = "fsl,bman-fbpr";
alloc-ranges = <0 0 0x10000 0>;
};
&qman_fqd {
compatible = "fsl,qman-fqd";
alloc-ranges = <0 0 0x10000 0>;
};
&qman_pfdr {
compatible = "fsl,qman-pfdr";
alloc-ranges = <0 0 0x10000 0>;
};
&soc {
/delete-property/ dma-coherent;
#include "qoriq-dpaa-eth.dtsi"
/* Note: We override cell-index values in &fman0 section to match
* SDK driver expectations (0-5 instead of mainline 2-7).
* Port@82000 with cell-index=0 becomes the HC port for PCD.
*/
pcie@3400000 {
/delete-property/ iommu-map;
};
pcie@3500000 {
/delete-property/ iommu-map;
};
pcie@3600000 {
/delete-property/ iommu-map;
};
/delete-node/ iommu@9000000;
};
&fsldpaa {
ethernet@0 {
status = "disabled"; /* MAC1 - not on Mono Gateway DK */
};
ethernet@2 {
status = "disabled"; /* MAC3 - not on Mono Gateway DK */
};
ethernet@3 {
status = "disabled"; /* MAC4 - not on Mono Gateway DK */
};
/* Enabled from qoriq-dpaa-eth.dtsi:
* ethernet@1 = enet1 = MAC2
* ethernet@4 = enet4 = MAC5
* ethernet@5 = enet5 = MAC6
* ethernet@8 = enet6 = MAC9 (10G)
*/
/* Add MAC10 - not in qoriq-dpaa-eth.dtsi */
ethernet@9 {
compatible = "fsl,dpa-ethernet";
fsl,fman-mac = <&enet7>;
dma-coherent;
};
};
&fman0 {
compatible = "fsl,fman", "simple-bus";
/* Core FMan sub-modules */
muram@0 {
compatible = "fsl,fman-muram";
reg = <0x0 0x60000>;
};
bmi@80000 {
compatible = "fsl,fman-bmi";
reg = <0x80000 0x400>;
};
qmi@80400 {
compatible = "fsl,fman-qmi";
reg = <0x80400 0x400>;
};
/* PCD sub-modules required for FMC/CDX */
cc {
compatible = "fsl,fman-cc";
};
policer@c0000 {
compatible = "fsl,fman-policer";
reg = <0xc0000 0x1000>;
};
keygen@c1000 {
compatible = "fsl,fman-keygen";
reg = <0xc1000 0x1000>;
};
dma@c2000 {
compatible = "fsl,fman-dma";
reg = <0xc2000 0x1000>;
};
fpm@c3000 {
compatible = "fsl,fman-fpm";
reg = <0xc3000 0x1000>;
};
parser@c7000 {
compatible = "fsl,fman-parser";
reg = <0xc7000 0x1000>;
};
vsps@dc000 {
compatible = "fsl,fman-vsps";
reg = <0xdc000 0x1000>;
};
ethernet@f0000 {
/delete-property/ managed;
fixed-link = <0 1 10000 0 0>;
phy-connection-type = "xgmii";
};
ethernet@f2000 {
/delete-property/ managed;
fixed-link = <0 1 10000 0 0>;
phy-connection-type = "xgmii";
};
/* DPA Offline port bindings - required for CDX.
* Use phandles fman0_oh_0x3 (port@83000) and fman0_oh_0x4 (port@84000).
* Cell-index overridden to SDK-style (1 and 2) in port nodes above.
*/
dpa-fman0-oh@2 {
compatible = "fsl,dpa-oh";
fsl,qman-frame-queues-oh = <0x60 0x01 0x61 0x01>;
fsl,fman-oh-port = <&fman0_oh_0x3>;
};
dpa-fman0-oh@3 {
compatible = "fsl,dpa-oh";
fsl,qman-frame-queues-oh = <0x62 0x01 0x63 0x01>;
fsl,fman-oh-port = <&fman0_oh_0x4>;
};
/* Override OH port cell-index values for SDK driver compatibility.
* SDK driver expects cell-index 0 for HC (Host Command/PCD) port.
* Mainline qoriq-fman3-0.dtsi uses cell-index 2-7, but SDK needs 0-5.
*/
port@82000 {
cell-index = <0>; /* HC port - required for PCD initialization */
compatible = "fsl,fman-port-oh";
};
port@83000 {
cell-index = <1>;
compatible = "fsl,fman-port-oh";
};
port@84000 {
cell-index = <2>;
compatible = "fsl,fman-port-oh";
};
port@85000 {
cell-index = <3>;
compatible = "fsl,fman-port-oh";
};
port@86000 {
cell-index = <4>;
compatible = "fsl,fman-port-oh";
};
port@87000 {
cell-index = <5>;
compatible = "fsl,fman-port-oh";
};
};
&clockgen {
dma-coherent;
};
&scfg {
dma-coherent;
};
&crypto {
dma-coherent;
};
&dcfg {
dma-coherent;
};
&ifc {
dma-coherent;
};
&qspi {
dma-coherent;
};
&esdhc {
dma-coherent;
};
&ddr {
dma-coherent;
};
&tmu {
dma-coherent;
};
&qman {
dma-coherent;
};
&bman {
dma-coherent;
};
&bportals {
dma-coherent;
};
&qportals {
dma-coherent;
};
&dspi {
dma-coherent;
};
&i2c0 {
dma-coherent;
};
&i2c1 {
dma-coherent;
};
&i2c2 {
dma-coherent;
};
&i2c3 {
dma-coherent;
};
&duart0 {
dma-coherent;
};
&duart1 {
dma-coherent;
};
&duart2 {
dma-coherent;
};
&duart3 {
dma-coherent;
};
&gpio0 {
dma-coherent;
};
&gpio1 {
dma-coherent;
};
&gpio2 {
dma-coherent;
};
&gpio3 {
dma-coherent;
};
&lpuart0 {
dma-coherent;
};
&lpuart1 {
dma-coherent;
};
&lpuart2 {
dma-coherent;
};
&lpuart3 {
dma-coherent;
};
&lpuart4 {
dma-coherent;
};
&lpuart5 {
dma-coherent;
};
&ftm_alarm0 {
dma-coherent;
};
&wdog0 {
dma-coherent;
};
&edma0 {
dma-coherent;
};
&sata {
dma-coherent;
};
&qdma {
dma-coherent;
};
&msi1 {
dma-coherent;
};
&msi2 {
dma-coherent;
};
&msi3 {
dma-coherent;
};
&fman0 {
dma-coherent;
};
&ptp_timer0 {
dma-coherent;
};
&fsldpaa {
dma-coherent;
};

View File

@@ -0,0 +1,531 @@
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
* Device Tree file for Freescale Layerscape-1046A family SoC.
*
* Copyright 2025 Mono Technologies Inc.
*
* Author: Tomaz Zaman <tomaz@mono.si>
*/
/dts-v1/;
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/leds/common.h>
#include <dt-bindings/pwm/pwm.h>
#include "fsl-ls1046a.dtsi"
/ {
model = "Mono Gateway Development Kit";
compatible = "mono,gateway-dk", "fsl,ls1046a";
aliases {
serial0 = &duart0;
serial1 = &duart1;
/* Physical port order: left to right */
ethernet0 = &enet4; /* MAC5 - 1G leftmost */
ethernet1 = &enet5; /* MAC6 - 1G middle */
ethernet2 = &enet1; /* MAC2 - 1G rightmost */
ethernet3 = &enet6; /* MAC9 - 10G left */
ethernet4 = &enet7; /* MAC10 - 10G right */
};
chosen {
stdout-path = "serial0:115200n8";
};
leds {
compatible = "gpio-leds";
/* SFP+ Port 0 LEDs - Activity/Link */
led_sfp0_link: sfp0_link {
label = "sfp0:link";
gpios = <&gpio2 17 GPIO_ACTIVE_HIGH>;
default-state = "off";
};
led_sfp0_activity: sfp0_activity {
label = "sfp0:activity";
gpios = <&gpio2 18 GPIO_ACTIVE_HIGH>;
default-state = "off";
};
/* SFP+ Port 1 LEDs - Activity/Link */
led_sfp1_link: sfp1_link {
label = "sfp1:link";
gpios = <&gpio2 15 GPIO_ACTIVE_HIGH>;
default-state = "off";
};
led_sfp1_activity: sfp1_activity {
label = "sfp1:activity";
gpios = <&gpio2 16 GPIO_ACTIVE_HIGH>;
default-state = "off";
};
};
/* SFP 1 */
sfp_xfi0: sfp-xfi0 {
compatible = "sff,sfp";
i2c-bus = <&sfp0_i2c>;
tx-disable-gpios = <&gpio2 14 GPIO_ACTIVE_HIGH>;
mod-def0-gpios = <&gpio2 12 GPIO_ACTIVE_LOW>;
los-gpios = <&gpio2 11 GPIO_ACTIVE_HIGH>;
maximum-power-milliwatt = <3000>;
leds = <&led_sfp0_link>, <&led_sfp0_activity>;
};
/* SFP 2 */
sfp_xfi1: sfp-xfi1 {
compatible = "sff,sfp";
i2c-bus = <&sfp1_i2c>;
tx-disable-gpios = <&gpio2 13 GPIO_ACTIVE_HIGH>;
mod-def0-gpios = <&gpio2 10 GPIO_ACTIVE_LOW>;
los-gpios = <&gpio2 9 GPIO_ACTIVE_HIGH>;
maximum-power-milliwatt = <3000>;
leds = <&led_sfp1_link>, <&led_sfp1_activity>;
};
/* SFP LED Controller */
sfp_led_controller: sfp-led-controller {
compatible = "mono,sfp-led";
sfp-ports = <&sfp_xfi0>, <&sfp_xfi1>;
};
};
&pcie3 {
status = "okay";
};
&gpio2 {
2R-enable {
gpio-hog;
gpios = <6 GPIO_ACTIVE_LOW>;
output-high;
line-name = "2r-enable";
};
3R-enable {
gpio-hog;
gpios = <2 GPIO_ACTIVE_LOW>;
output-low;
line-name = "3r-enable";
};
uart-mux {
gpio-hog;
gpios = <26 GPIO_ACTIVE_HIGH>;
output-high; /* "output-high" for 2R, "output-low" for 3R */
line-name = "uart-mux";
};
};
&duart0 {
status = "okay";
};
&duart1 {
status = "okay";
uart-has-rtscts;
bluetooth {
compatible = "nxp,88w8987-bt";
fw-init-baudrate = <3000000>;
};
};
&usb0 {
status = "okay";
dr_mode = "host";
};
&usb1 {
status = "disabled";
disable-over-current;
};
&usb2 {
status = "disabled";
disable-over-current;
};
&dspi {
status = "okay";
};
&esdhc {
status = "okay";
mmc-hs200-1_8v;
bus-width = <4>;
};
&i2c0 {
status = "okay";
/* Thermal sensors, retimer, clock genenerator, PWM fan */
i2c-mux@70 {
compatible = "nxp,pca9545";
reg = <0x70>;
#address-cells = <1>;
#size-cells = <0>;
i2c@0 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0>;
retimer: retimer@18 {
compatible = "ti,ds100df410";
reg = <0x18>;
status = "okay";
};
};
i2c@1 {
#address-cells = <1>;
#size-cells = <0>;
reg = <1>;
temp-sensor@4c {
compatible = "ti,tmp431";
reg = <0x4c>;
};
};
i2c@2 {
#address-cells = <1>;
#size-cells = <0>;
reg = <2>;
temp-sensor@4c {
compatible = "ti,tmp431";
reg = <0x4c>;
};
};
i2c@3 {
#address-cells = <1>;
#size-cells = <0>;
reg = <3>;
fan_controller: fan-controller@2e {
compatible = "microchip,emc2305";
reg = <0x2e>;
#address-cells = <1>;
#size-cells = <0>;
#pwm-cells = <3>;
fan0: fan@0 {
reg = <0>;
label = "System Fan 1";
pwms = <&fan_controller 26000 1 1>;
#cooling-cells = <2>;
};
fan1: fan@1 {
reg = <1>;
label = "System Fan 2";
pwms = <&fan_controller 26000 1 1>;
#cooling-cells = <2>;
};
};
};
};
};
&i2c1 {
status = "okay";
/* SFP+ modules */
sfpmux: i2c-mux@70 {
compatible = "nxp,pca9545";
reg = <0x70>;
#address-cells = <1>;
#size-cells = <0>;
sfp0_i2c: i2c@0 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0>;
};
sfp1_i2c: i2c@1 {
#address-cells = <1>;
#size-cells = <0>;
reg = <1>;
};
};
};
&i2c2 {
status = "okay";
i2c-mux@70 {
compatible = "nxp,pca9545";
reg = <0x70>;
#address-cells = <1>;
#size-cells = <0>;
i2c@0 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0>;
power_sensor@40 {
compatible = "ti,ina234";
reg = <0x40>;
label = "USB Power Delivery";
#io-channel-cells = <1>;
shunt-resistor = <1000>;
};
power_sensor@41 {
compatible = "ti,ina234";
reg = <0x41>;
label = "5V PSU";
#io-channel-cells = <1>;
shunt-resistor = <1000>;
};
power_sensor@42 {
compatible = "ti,ina234";
reg = <0x42>;
label = "1V Core PSU";
#io-channel-cells = <1>;
shunt-resistor = <1000>;
};
power_sensor@43 {
compatible = "ti,ina234";
reg = <0x43>;
label = "1.2V DDR PSU";
#io-channel-cells = <1>;
shunt-resistor = <5000>;
};
};
i2c@1 {
#address-cells = <1>;
#size-cells = <0>;
reg = <1>;
power_sensor@40 {
compatible = "ti,ina234";
reg = <0x40>;
label = "1.35V SerDes PSU";
#io-channel-cells = <1>;
shunt-resistor = <5000>;
};
power_sensor@41 {
compatible = "ti,ina234";
reg = <0x41>;
label = "1.8V PSU";
#io-channel-cells = <1>;
shunt-resistor = <5000>;
};
power_sensor@42 {
compatible = "ti,ina234";
reg = <0x42>;
label = "2.5V DDR PSU";
#io-channel-cells = <1>;
shunt-resistor = <5000>;
};
power_sensor@43 {
compatible = "ti,ina234";
reg = <0x43>;
label = "3.3V PSU";
#io-channel-cells = <1>;
shunt-resistor = <1000>;
};
};
i2c@2 {
#address-cells = <1>;
#size-cells = <0>;
reg = <2>;
rtc@53 {
compatible = "nxp,pcf2131";
reg = <0x53>;
status = "okay";
};
typec: hd3ss3220@47 {
compatible = "ti,hd3ss3220";
reg = <0x47>;
};
};
i2c@3 {
#address-cells = <1>;
#size-cells = <0>;
reg = <3>;
lp5810@6c {
compatible = "ti,lp5812";
reg = <0x6c>;
#address-cells = <1>;
#size-cells = <0>;
led@0 {
reg = <0>;
color = <LED_COLOR_ID_WHITE>;
label = "status:white";
led-max-microamp = <25500>;
};
led@1 {
reg = <1>;
color = <LED_COLOR_ID_BLUE>;
label = "status:blue";
led-max-microamp = <25500>;
};
led@2 {
reg = <2>;
color = <LED_COLOR_ID_GREEN>;
label = "status:green";
led-max-microamp = <25500>;
};
led@3 {
reg = <3>;
color = <LED_COLOR_ID_RED>;
label = "status:red";
led-max-microamp = <25500>;
};
};
};
};
};
&i2c3 {
status = "okay";
};
&qspi {
status = "okay";
mt25qu512a0: flash@0 {
#address-cells = <1>;
#size-cells = <1>;
compatible = "jedec,spi-nor";
spi-max-frequency = <50000000>;
reg = <0>;
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
partition@flash {
label = "flash";
reg = <0x0 0x4000000>;
};
partition@0 {
label = "rcw-bl2";
reg = <0x0 0x100000>;
};
partition@100000 {
label = "uboot";
reg = <0x100000 0x200000>;
};
partition@300000 {
label = "uboot-env";
reg = <0x300000 0x100000>;
};
partition@400000 {
label = "fman-ucode";
reg = <0x400000 0x100000>;
};
partition@500000 {
label = "recovery-dtb";
reg = <0x500000 0x100000>;
};
partition@600000 {
label = "backup";
reg = <0x600000 0x400000>;
};
partition@a00000 {
label = "kernel-initramfs";
reg = <0xa00000 0x1600000>;
};
partition@2000000 {
label = "unallocated";
reg = <0x2000000 0x2000000>;
};
};
};
};
#include "fsl-ls1046-post.dtsi"
&fman0 {
ethernet@e0000 {
status = "disabled";
};
ethernet@e4000 {
status = "disabled";
};
ethernet@e6000 {
status = "disabled";
};
ethernet@e8000 {
phy-handle = <&sgmii_phy0>;
phy-connection-type = "sgmii";
status = "okay";
};
ethernet@ea000 {
phy-handle = <&sgmii_phy1>;
phy-connection-type = "sgmii";
status = "okay";
};
ethernet@e2000 {
phy-handle = <&sgmii_phy2>;
phy-connection-type = "sgmii";
status = "okay";
};
fm1_mac9: ethernet@f0000 { /* 10GEC1 */
sfp = <&sfp_xfi0>;
phy-connection-type = "10gbase-r";
managed = "in-band-status";
pcs-handle-names = "xfi"; /* Match enet7 for consistency */
};
fm1_mac10: ethernet@f2000 { /* 10GEC2 */
sfp = <&sfp_xfi1>;
phy-connection-type = "10gbase-r";
managed = "in-band-status";
};
mdio@fc000 {
status = "disabled";
};
mdio@fd000 {
sgmii_phy0: ethernet-phy@0 {
reg = <0x0>;
};
sgmii_phy1: ethernet-phy@1 {
reg = <0x1>;
};
sgmii_phy2: ethernet-phy@2 {
reg = <0x2>;
};
};
};

View File

@@ -17,7 +17,7 @@ kernel-build: build-base
--build-arg ARCH=$(ARCH) \ --build-arg ARCH=$(ARCH) \
--build-arg CROSS_COMPILE=$(CROSS_COMPILE) \ --build-arg CROSS_COMPILE=$(CROSS_COMPILE) \
--build-arg NXP_VERSION=$(NXP_VERSION) \ --build-arg NXP_VERSION=$(NXP_VERSION) \
--build-arg DTB_TARGET=$(DTB_TARGET) \ --build-arg DEVICE_TREE_TARGET=$(DEVICE_TREE_TARGET) \
-t $(DOCKER_IMAGE_ROOT)/kernel-build:$(TAG) . -t $(DOCKER_IMAGE_ROOT)/kernel-build:$(TAG) .
fit-build: kernel-build fit-build: kernel-build
@@ -36,6 +36,6 @@ itb: fit-build
--build-arg DOCKER_IMAGE_ROOT=$(DOCKER_IMAGE_ROOT) \ --build-arg DOCKER_IMAGE_ROOT=$(DOCKER_IMAGE_ROOT) \
--build-arg TAG=$(TAG) \ --build-arg TAG=$(TAG) \
--build-arg ARCH=$(ARCH) \ --build-arg ARCH=$(ARCH) \
--build-arg DTB_TARGET=$(DTB_TARGET) \ --build-arg DEVICE_TREE_TARGET=$(DEVICE_TREE_TARGET) \
--output type=local,dest=./out \ --output type=local,dest=./out \
-t $(DOCKER_IMAGE_ROOT)/itb:$(TAG) . -t $(DOCKER_IMAGE_ROOT)/itb:$(TAG) .