Module Name: src
Committed By: dyoung
Date: Sat May 4 02:21:49 UTC 2024
Modified Files:
src/distrib/sets/lists/dtb: ad.earmv7 ad.earmv7hf ad.earmv7hfeb
src/sys/external/gpl2/dts/dist/arch/arm/boot/dts: Makefile
Added Files:
src/sys/arch/arm/dts: zynq-red-pitaya-122-16.dts
Log Message:
Add a device tree for the Red Pitaya SDRlab 122-16.
To boot NetBSD on the 122-16, copy the .dtb built from
zynq-red-pitays-122-16.dts, the first-stage bootloader (called
boot.bin) and U-Boot that came with the 122-16 and a kernel image,
netbsd.ub, built for earmv7hf to an MS-DOS partition on an
MBR-partitioned SD card. At the U-Boot prompt, "Zynq> ", type these
commands:
i2c dev 0
eeprom read 0 0x50 0 0x1804 0x400
env import -b 0 0x400 hw_rev serial ethaddr
setenv bootargs "root=ld0a"
fatload mmc 0 0x01f00000 device~1.dtb
fatload mmc 0 0x02000000 netbsd.ub
fdt addr 0x01f00000
fdt set /axi/ethernet@e000b000 local-mac-address $ethaddr
bootm 0x02000000 - 0x01f00000
Note that the ethernet PHY will not attach unless you have applied
the patches from Lloyd Parkes in kern/58083.
To generate a diff of this commit:
cvs rdiff -u -r1.10 -r1.11 src/distrib/sets/lists/dtb/ad.earmv7 \
src/distrib/sets/lists/dtb/ad.earmv7hf \
src/distrib/sets/lists/dtb/ad.earmv7hfeb
cvs rdiff -u -r0 -r1.1 src/sys/arch/arm/dts/zynq-red-pitaya-122-16.dts
cvs rdiff -u -r1.1.1.10 -r1.2 \
src/sys/external/gpl2/dts/dist/arch/arm/boot/dts/Makefile
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/distrib/sets/lists/dtb/ad.earmv7
diff -u src/distrib/sets/lists/dtb/ad.earmv7:1.10 src/distrib/sets/lists/dtb/ad.earmv7:1.11
--- src/distrib/sets/lists/dtb/ad.earmv7:1.10 Wed Nov 1 12:51:13 2023
+++ src/distrib/sets/lists/dtb/ad.earmv7 Sat May 4 02:21:48 2024
@@ -1,4 +1,4 @@
-# $NetBSD: ad.earmv7,v 1.10 2023/11/01 12:51:13 simonb Exp $
+# $NetBSD: ad.earmv7,v 1.11 2024/05/04 02:21:48 dyoung Exp $
#
# DO NOT EDIT THIS FILE MANUALLY
# Generated by "make update-sets" in sys/dtb
@@ -580,6 +580,7 @@
./boot/dtb/zynq-ebaz4205.dtb dtb-base-boot dtb
./boot/dtb/zynq-microzed.dtb dtb-base-boot dtb
./boot/dtb/zynq-parallella.dtb dtb-base-boot dtb
+./boot/dtb/zynq-red-pitaya-122-16.dtb dtb-base-boot dtb
./boot/dtb/zynq-zc702.dtb dtb-base-boot dtb
./boot/dtb/zynq-zc706.dtb dtb-base-boot dtb
./boot/dtb/zynq-zc770-xm010.dtb dtb-base-boot dtb
Index: src/distrib/sets/lists/dtb/ad.earmv7hf
diff -u src/distrib/sets/lists/dtb/ad.earmv7hf:1.10 src/distrib/sets/lists/dtb/ad.earmv7hf:1.11
--- src/distrib/sets/lists/dtb/ad.earmv7hf:1.10 Thu May 4 13:41:46 2023
+++ src/distrib/sets/lists/dtb/ad.earmv7hf Sat May 4 02:21:48 2024
@@ -1,4 +1,4 @@
-# $NetBSD: ad.earmv7hf,v 1.10 2023/05/04 13:41:46 bouyer Exp $
+# $NetBSD: ad.earmv7hf,v 1.11 2024/05/04 02:21:48 dyoung Exp $
#
# DO NOT EDIT THIS FILE MANUALLY
# Generated by "make update-sets" in sys/dtb
@@ -580,6 +580,7 @@
./boot/dtb/zynq-ebaz4205.dtb dtb-base-boot dtb
./boot/dtb/zynq-microzed.dtb dtb-base-boot dtb
./boot/dtb/zynq-parallella.dtb dtb-base-boot dtb
+./boot/dtb/zynq-red-pitaya-122-16.dtb dtb-base-boot dtb
./boot/dtb/zynq-zc702.dtb dtb-base-boot dtb
./boot/dtb/zynq-zc706.dtb dtb-base-boot dtb
./boot/dtb/zynq-zc770-xm010.dtb dtb-base-boot dtb
Index: src/distrib/sets/lists/dtb/ad.earmv7hfeb
diff -u src/distrib/sets/lists/dtb/ad.earmv7hfeb:1.10 src/distrib/sets/lists/dtb/ad.earmv7hfeb:1.11
--- src/distrib/sets/lists/dtb/ad.earmv7hfeb:1.10 Sat May 6 08:43:20 2023
+++ src/distrib/sets/lists/dtb/ad.earmv7hfeb Sat May 4 02:21:48 2024
@@ -1,4 +1,4 @@
-# $NetBSD: ad.earmv7hfeb,v 1.10 2023/05/06 08:43:20 skrll Exp $
+# $NetBSD: ad.earmv7hfeb,v 1.11 2024/05/04 02:21:48 dyoung Exp $
#
# DO NOT EDIT THIS FILE MANUALLY
# Generated by "make update-sets" in sys/dtb
@@ -580,6 +580,7 @@
./boot/dtb/zynq-ebaz4205.dtb dtb-base-boot dtb
./boot/dtb/zynq-microzed.dtb dtb-base-boot dtb
./boot/dtb/zynq-parallella.dtb dtb-base-boot dtb
+./boot/dtb/zynq-red-pitaya-122-16.dtb dtb-base-boot dtb
./boot/dtb/zynq-zc702.dtb dtb-base-boot dtb
./boot/dtb/zynq-zc706.dtb dtb-base-boot dtb
./boot/dtb/zynq-zc770-xm010.dtb dtb-base-boot dtb
Index: src/sys/external/gpl2/dts/dist/arch/arm/boot/dts/Makefile
diff -u src/sys/external/gpl2/dts/dist/arch/arm/boot/dts/Makefile:1.1.1.10 src/sys/external/gpl2/dts/dist/arch/arm/boot/dts/Makefile:1.2
--- src/sys/external/gpl2/dts/dist/arch/arm/boot/dts/Makefile:1.1.1.10 Sun Nov 7 16:50:04 2021
+++ src/sys/external/gpl2/dts/dist/arch/arm/boot/dts/Makefile Sat May 4 02:21:49 2024
@@ -1367,6 +1367,7 @@ dtb-$(CONFIG_ARCH_ZYNQ) += \
zynq-zc770-xm011.dtb \
zynq-zc770-xm012.dtb \
zynq-zc770-xm013.dtb \
+ zynq-red-pitaya-122-16.dtb \
zynq-zed.dtb \
zynq-zturn.dtb \
zynq-zturn-v5.dtb \
Added files:
Index: src/sys/arch/arm/dts/zynq-red-pitaya-122-16.dts
diff -u /dev/null src/sys/arch/arm/dts/zynq-red-pitaya-122-16.dts:1.1
--- /dev/null Sat May 4 02:21:49 2024
+++ src/sys/arch/arm/dts/zynq-red-pitaya-122-16.dts Sat May 4 02:21:48 2024
@@ -0,0 +1,91 @@
+// SPDX-License-Identifier: GPL-2.0+
+/dts-v1/;
+#include "../../../external/gpl2/dts/dist/arch/arm/boot/dts/zynq-7000.dtsi"
+
+/ {
+ model = "Red Pitaya SDRlab 122-16";
+ compatible = "xlnx,zynq-7000";
+
+ aliases {
+ ethernet0 = &gem0;
+ serial0 = &uart0;
+ };
+
+ memory@0 {
+ device_type = "memory";
+ reg = <0x0 0x20000000>;
+ };
+
+ /* The SDRlab 122-16 comes out of the box with a bootloader that
+ * (I think) loads a bitstream to the FPGA. I reserve the same
+ * memory regions as the device tree that comes with the 122-16
+ * does, just in case the FPGA alters them. If we can come up
+ * with a new bootloader, then I think NetBSD can use all of
+ * these regions safely.
+ */
+ reserved-memory {
+ #address-cells = <0x1>;
+ #size-cells = <0x1>;
+ ranges;
+
+ linux,cma {
+ compatible = "shared-dma-pool";
+ reusable;
+ size = <0x1000000>;
+ alignment = <0x2000>;
+ linux,cma-default;
+ };
+
+ labuf@a000000 {
+ reg = <0xa000000 0x2000000>;
+ linux,phandle = <0x2f>;
+ phandle = <0x2f>;
+ };
+
+ buffer@1000000 {
+ reg = <0x1000000 0x180000>;
+ linux,phandle = <0x30>;
+ phandle = <0x30>;
+ };
+ };
+
+ chosen {
+ bootargs = "";
+ stdout-path = "serial0:115200n8";
+ };
+
+ usb_phy0: phy0 {
+ #phy-cells = <0>;
+ compatible = "usb-nop-xceiv";
+ reset-gpios = <&gpio0 46 1>;
+ };
+};
+
+&clkc {
+ ps-clk-frequency = <33333333>;
+};
+
+&gem0 {
+ status = "okay";
+ phy-mode = "rgmii-id";
+ phy-handle = <ðernet_phy>;
+
+ ethernet_phy: ethernet-phy@0 {
+ reg = <1>;
+ device_type = "ethernet-phy";
+ };
+};
+
+&sdhci0 {
+ status = "okay";
+};
+
+&uart0 {
+ status = "okay";
+};
+
+&usb0 {
+ status = "okay";
+ dr_mode = "host";
+ usb-phy = <&usb_phy0>;
+};