Skip to content

Commit b337047

Browse files
eladnachmangclement
authored andcommitted
arm64: dts: a7k: add COM Express boards
Add support for Armada 7020 Express Type 7 CPU module board by Marvell. Define this COM Express CPU module as dtsi and provide a dtsi file for the carrier board (Marvell DB-98CX85x0 COM Express type 7 carrier board). Since memory is soldered on CPU module, memory node is on CPU module dtsi file. This Carrier board only utilizes the PCIe link, hence no special device or driver support is provided by this dtsi file. Devise a dts file for the combined com express carrier and CPU module. The Aramda 7020 CPU COM Express board offers the following features: 1. Armada 7020 CPU, with dual ARM A72 cores 2. DDR4 memory, 8GB, on board soldered 3. 1Gbit Out of Band Ethernet via RGMII to PHY and RJ45 connector, all are present on A7K CPU module (none on the carrier) 4. Optional 10G KR Ethernet going via the COM Express type 7 connector 5. On-board 8 Gbit, 8-bit bus width NAND flash 6. On-board 512 Mbit SPI flash 7. PCIe Root Complex, 4 lanes PCIe gen3 connectivity, going via the COM Express type 7 connector 8. m.2 SATA connector 9. Micro-SD card connector 10. USB 2.0 via COM Express type 7 connector 11. Two i2c interfaces - one to the CPU module, and one to the carrier board via the COM Express type 7 connector 12. UART (mini USB connector by virtue of FT2232D UART to USB converter, connected to the Armada 7020 UART0) gc: 10gbase-kr is legacy, use "10gbase-r" instead in cp0_eth0 node Signed-off-by: Elad Nachman <enachman@marvell.com> Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.com>
1 parent f6c8955 commit b337047

6 files changed

Lines changed: 220 additions & 2 deletions

File tree

arch/arm64/boot/dts/marvell/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ dtb-$(CONFIG_ARCH_MVEBU) += armada-3720-espressobin-v7-emmc.dtb
1111
dtb-$(CONFIG_ARCH_MVEBU) += armada-3720-gl-mv1000.dtb
1212
dtb-$(CONFIG_ARCH_MVEBU) += armada-3720-turris-mox.dtb
1313
dtb-$(CONFIG_ARCH_MVEBU) += armada-3720-uDPU.dtb
14+
dtb-$(CONFIG_ARCH_MVEBU) += db-falcon-carrier-a7k.dtb
1415
dtb-$(CONFIG_ARCH_MVEBU) += armada-7040-db.dtb
1516
dtb-$(CONFIG_ARCH_MVEBU) += armada-7040-mochabin.dtb
1617
dtb-$(CONFIG_ARCH_MVEBU) += armada-8040-clearfog-gt-8k.dtb
Lines changed: 161 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,161 @@
1+
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2+
/*
3+
* Copyright (C) 2023 Marvell Technology Group Ltd.
4+
*
5+
* Device Tree file for Marvell Armada 7020 Com Express CPU module board.
6+
*/
7+
8+
#include "armada-7020.dtsi"
9+
10+
/ {
11+
model = "Marvell Armada-7020 COMEXPRESS board setup";
12+
compatible = "marvell,armada7020-cpu-module", "marvell,armada7020",
13+
"marvell,armada-ap806-dual", "marvell,armada-ap806";
14+
15+
memory@0 {
16+
device_type = "memory";
17+
reg = <0x0 0x0 0x2 0x00000000>;
18+
};
19+
20+
chosen {
21+
stdout-path = "serial0:115200n8";
22+
};
23+
24+
aliases {
25+
ethernet0 = &cp0_eth0;
26+
ethernet1 = &cp0_eth1;
27+
};
28+
};
29+
30+
&ap_clk {
31+
status = "okay";
32+
};
33+
34+
&gic {
35+
status = "okay";
36+
};
37+
38+
&i2c0 {
39+
status = "okay";
40+
clock-frequency = <100000>;
41+
};
42+
43+
&spi0 {
44+
status = "okay";
45+
};
46+
47+
&uart0 {
48+
status = "okay";
49+
};
50+
51+
&cp0_mdio {
52+
status = "okay";
53+
54+
phy0: ethernet-phy@10 {
55+
reg = <0x10>;
56+
};
57+
};
58+
59+
&cp0_ethernet {
60+
status = "okay";
61+
};
62+
63+
&cp0_eth0 {
64+
status = "okay";
65+
phy-mode = "10gbase-r";
66+
managed = "in-band-status";
67+
/* Generic PHY, providing serdes lanes */
68+
phys = <&cp0_comphy4 0>;
69+
};
70+
71+
&cp0_eth1 {
72+
status = "okay";
73+
phy = <&phy0>;
74+
phy-mode = "rgmii-id";
75+
};
76+
77+
&cp0_usb3_0 {
78+
status = "okay";
79+
};
80+
81+
&cp0_usb3_1 {
82+
status = "okay";
83+
};
84+
85+
&cp0_clk {
86+
status = "okay";
87+
};
88+
89+
&cp0_i2c0 {
90+
status = "okay";
91+
clock-frequency = <100000>;
92+
};
93+
94+
&cp0_nand_controller {
95+
status = "okay";
96+
97+
nand@0 {
98+
reg = <0>;
99+
label = "main-storage";
100+
nand-rb = <0>;
101+
nand-ecc-mode = "hw";
102+
nand-on-flash-bbt;
103+
nand-ecc-strength = <8>;
104+
nand-ecc-step-size = <512>;
105+
106+
partitions {
107+
compatible = "fixed-partitions";
108+
#address-cells = <1>;
109+
#size-cells = <1>;
110+
111+
partition@0 {
112+
label = "U-Boot";
113+
reg = <0 0x400000>;
114+
};
115+
partition@200000 {
116+
label = "Linux";
117+
reg = <0x400000 0x100000>;
118+
};
119+
partition@1000000 {
120+
label = "Filesystem";
121+
reg = <0x500000 0x1e00000>;
122+
};
123+
};
124+
};
125+
};
126+
127+
&cp0_pcie0 {
128+
status = "okay";
129+
num-lanes = <4>;
130+
num-viewport = <8>;
131+
132+
ranges = <0x81000000 0x0 0xfa000000 0x0 0xfa000000 0x0 0x00010000
133+
0x82000000 0x0 0x00000000 0x0 0xc0000000 0x0 0x30000000>;
134+
135+
/* Generic PHY, providing serdes lanes */
136+
phys = <&cp0_comphy0 0
137+
&cp0_comphy1 0
138+
&cp0_comphy2 0
139+
&cp0_comphy3 0>;
140+
};
141+
142+
&cp0_sata0 {
143+
/* CPM Lane 0 - U29 */
144+
status = "okay";
145+
146+
sata-port@1 {
147+
status = "okay";
148+
/* Generic PHY, providing serdes lanes */
149+
phys = <&cp0_comphy5 1>;
150+
};
151+
};
152+
153+
&cp0_sdhci0 {
154+
pinctrl-names = "default";
155+
pinctrl-0 = <&sdhci_pins>;
156+
status = "okay";
157+
bus-width = <4>;
158+
no-1-8-v;
159+
broken-cd;
160+
};
161+

arch/arm64/boot/dts/marvell/armada-70x0.dtsi

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,13 @@
4747
cp0_pinctrl: pinctrl {
4848
compatible = "marvell,armada-7k-pinctrl";
4949

50+
51+
sdhci_pins: sdhci-pins {
52+
marvell,pins = "mpp56", "mpp57", "mpp58",
53+
"mpp59", "mpp60", "mpp61", "mpp62";
54+
marvell,function = "sdio";
55+
};
56+
5057
nand_pins: nand-pins {
5158
marvell,pins =
5259
"mpp15", "mpp16", "mpp17", "mpp18",

arch/arm64/boot/dts/marvell/armada-ap806-dual.dtsi

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@
5454
};
5555

5656
thermal-zones {
57-
/delete-node/ ap-thermal-cpu2;
58-
/delete-node/ ap-thermal-cpu3;
57+
/delete-node/ ap-cpu2-thermal;
58+
/delete-node/ ap-cpu3-thermal;
5959
};
6060
};
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2+
/*
3+
* Copyright (C) 2023 Marvell International Ltd.
4+
*
5+
* Device tree for the Falcon DB Type 7 Com Express carrier board,
6+
* Utilizing the Armada 7020 COM Express CPU module board.
7+
* This specific carrier board (DB-98CX8540/80)
8+
* only maintains a PCIe link with the CPU module,
9+
* which does not require any special DTS definitions.
10+
*
11+
* There is no Linux CPU booting in this mode on the carrier, only on the
12+
* Armada 7020 COM Express CPU module.
13+
* What runs the Linux is the Armada 7020 on the COM Express CPU module,
14+
* And it accesses the switch end-point on the Falcon DB portion of the carrier
15+
* via PCIe.
16+
*/
17+
18+
#include "armada-7020-comexpress.dtsi"
19+
#include "db-falcon-carrier.dtsi"
20+
21+
/ {
22+
model = "Marvell Falcon DB COM EXPRESS type 7 carrier board with Armada 7020 CPU module";
23+
compatible = "marvell,armada7020-falcon-carrier", "marvell,db-falcon-carrier",
24+
"marvell,armada7020-cpu-module", "marvell,armada7020",
25+
"marvell,armada-ap806-dual", "marvell,armada-ap806";
26+
27+
};
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2+
/*
3+
* Copyright (C) 2023 Marvell International Ltd.
4+
*
5+
* Device tree for the Falcon DB Type 7 Com Express carrier board,
6+
* This (DB-98CX8540/80) specific carrier board only maintains
7+
* a PCIe link with the COM Express CPU module, which does not
8+
* require any special DTS definitions.
9+
*
10+
* The board contains the 98CX8540/80 Switch, which connects by
11+
* PCIe to the COM Express CPU module.
12+
* This CPU module can be any standard COM Express CPU module with
13+
* PCIe support.
14+
*
15+
* There is no Linux CPU booting in this mode on the carrier,
16+
* only on the COM Express CPU module.
17+
*/
18+
19+
/ {
20+
model = "Marvell Armada Falcon DB COM EXPRESS type 7 carrier board";
21+
compatible = "marvell,db-falcon-carrier";
22+
};

0 commit comments

Comments
 (0)