[U-Boot] [PATCH 1/2] nios2: remap and translate reg address in device tree

Thomas Chou thomas at wytron.com.tw
Sun Sep 13 10:32:09 CEST 2015


As the io space remapping ioremap() and bridge address
translation fdt_translate_address() are not usually used
in u-boot driver model by dev_get_addr(). We would better
convert the reg address map in the device tree of nios2
boards, so that it is io mapped and bridge translated.

Signed-off-by: Thomas Chou <thomas at wytron.com.tw>
---
 arch/nios2/dts/3c120_devboard.dts | 171 +++++++++++++++-----------------------
 1 file changed, 69 insertions(+), 102 deletions(-)

diff --git a/arch/nios2/dts/3c120_devboard.dts b/arch/nios2/dts/3c120_devboard.dts
index 02524ab..70d71a5 100644
--- a/arch/nios2/dts/3c120_devboard.dts
+++ b/arch/nios2/dts/3c120_devboard.dts
@@ -14,6 +14,73 @@
 	#address-cells = <1>;
 	#size-cells = <1>;
 
+	aliases {
+		console = &jtag_uart;
+	};
+
+	timer_1ms: timer at 0x400000 {
+		compatible = "altr,timer-1.0";
+		reg = <0xe8400000 0x00000020>;
+		interrupt-parent = <&cpu>;
+		interrupts = <11>;
+		clock-frequency = <125000000>;
+		u-boot,dm-pre-reloc;
+	};
+
+	jtag_uart: serial at 0x4d50 {
+		compatible = "altr,juart-1.0";
+		reg = <0xe8004d50 0x00000008>;
+		interrupt-parent = <&cpu>;
+		interrupts = <1>;
+		u-boot,dm-pre-reloc;
+	};
+
+	tse_mac: ethernet at 0x4000 {
+		compatible = "altr,tse-1.0";
+		reg = <0xe8004000 0x00000400>,
+			<0xe8004400 0x00000040>,
+			<0xe8004800 0x00000040>,
+			<0xe8002000 0x00002000>;
+		reg-names = "control_port", "rx_csr", "tx_csr", "s1";
+		interrupt-parent = <&cpu>;
+		interrupts = <2 3>;
+		interrupt-names = "rx_irq", "tx_irq";
+		rx-fifo-depth = <8192>;
+		tx-fifo-depth = <8192>;
+		max-frame-size = <1518>;
+		local-mac-address = [ 00 00 00 00 00 00 ];
+		phy-mode = "rgmii-id";
+		phy-handle = <&phy0>;
+		tse_mac_mdio: mdio {
+			compatible = "altr,tse-mdio";
+			#address-cells = <1>;
+			#size-cells = <0>;
+			phy0: ethernet-phy at 18 {
+				reg = <18>;
+				device_type = "ethernet-phy";
+			};
+		};
+	};
+
+	uart: serial at 0x4c80 {
+		compatible = "altr,uart-1.0";
+		reg = <0xe8004c80 0x00000020>;
+		interrupt-parent = <&cpu>;
+		interrupts = <10>;
+		current-speed = <115200>;
+		clock-frequency = <62500000>;
+		u-boot,dm-pre-reloc;
+	};
+
+	user_led_pio_8out: gpio at 0x4cc0 {
+		compatible = "altr,pio-1.0";
+		reg = <0xe8004cc0 0x00000010>;
+		resetvalue = <255>;
+		width = <8>;
+		#gpio-cells = <2>;
+		gpio-controller;
+	};
+
 	cpus {
 		#address-cells = <1>;
 		#size-cells = <0>;
@@ -46,108 +113,8 @@
 
 	memory at 0 {
 		device_type = "memory";
-		reg = <0x10000000 0x08000000>,
-			<0x07fff400 0x00000400>;
+		reg = <0xd0000000 0x08000000>,
+			<0xc7fff400 0x00000400>;
 	};
 
-	sopc at 0 {
-		device_type = "soc";
-		ranges;
-		#address-cells = <1>;
-		#size-cells = <1>;
-		compatible = "altr,avalon", "simple-bus";
-		bus-frequency = <125000000>;
-
-		pb_cpu_to_io: bridge at 0x8000000 {
-			compatible = "simple-bus";
-			reg = <0x08000000 0x00800000>;
-			#address-cells = <1>;
-			#size-cells = <1>;
-			ranges = <0x00002000 0x08002000 0x00002000>,
-				<0x00004000 0x08004000 0x00000400>,
-				<0x00004400 0x08004400 0x00000040>,
-				<0x00004800 0x08004800 0x00000040>,
-				<0x00004c80 0x08004c80 0x00000020>,
-				<0x00004d50 0x08004d50 0x00000008>,
-				<0x00008000 0x08008000 0x00000020>,
-				<0x00400000 0x08400000 0x00000020>;
-
-			timer_1ms: timer at 0x400000 {
-				compatible = "altr,timer-1.0";
-				reg = <0x00400000 0x00000020>;
-				interrupt-parent = <&cpu>;
-				interrupts = <11>;
-				clock-frequency = <125000000>;
-			};
-
-			timer_0: timer at 0x8000 {
-				compatible = "altr,timer-1.0";
-				reg = < 0x00008000 0x00000020 >;
-				interrupt-parent = < &cpu >;
-				interrupts = < 5 >;
-				clock-frequency = < 125000000 >;
-			};
-
-			jtag_uart: serial at 0x4d50 {
-				compatible = "altr,juart-1.0";
-				reg = <0x00004d50 0x00000008>;
-				interrupt-parent = <&cpu>;
-				interrupts = <1>;
-			};
-
-			tse_mac: ethernet at 0x4000 {
-				compatible = "altr,tse-1.0";
-				reg = <0x00004000 0x00000400>,
-					<0x00004400 0x00000040>,
-					<0x00004800 0x00000040>,
-					<0x00002000 0x00002000>;
-				reg-names = "control_port", "rx_csr", "tx_csr", "s1";
-				interrupt-parent = <&cpu>;
-				interrupts = <2 3>;
-				interrupt-names = "rx_irq", "tx_irq";
-				rx-fifo-depth = <8192>;
-				tx-fifo-depth = <8192>;
-				max-frame-size = <1518>;
-				local-mac-address = [ 00 00 00 00 00 00 ];
-				phy-mode = "rgmii-id";
-				phy-handle = <&phy0>;
-				tse_mac_mdio: mdio {
-					compatible = "altr,tse-mdio";
-					#address-cells = <1>;
-					#size-cells = <0>;
-					phy0: ethernet-phy at 18 {
-						reg = <18>;
-						device_type = "ethernet-phy";
-					};
-				};
-			};
-
-			uart: serial at 0x4c80 {
-				compatible = "altr,uart-1.0";
-				reg = <0x00004c80 0x00000020>;
-				interrupt-parent = <&cpu>;
-				interrupts = <10>;
-				current-speed = <115200>;
-				clock-frequency = <62500000>;
-			};
-		};
-
-		cfi_flash_64m: flash at 0x0 {
-			compatible = "cfi-flash";
-			reg = <0x00000000 0x04000000>;
-			bank-width = <2>;
-			device-width = <1>;
-			#address-cells = <1>;
-			#size-cells = <1>;
-
-			partition at 800000 {
-				reg = <0x00800000 0x01e00000>;
-				label = "JFFS2 Filesystem";
-			};
-		};
-	};
-
-	chosen {
-		bootargs = "debug console=ttyJ0,115200";
-	};
 };
-- 
2.1.4



More information about the U-Boot mailing list