Patches para kirkwood-iomega_ix2_200.dts


Primeiramente gostaria de salientar que não sou o autor principal do conteúdo deste artigo. A minha intenção é de mostrar o que outros autores tem realizado (referenciando links para o conteúdo original) neste blog até como um guia pessoal para uso próprio e ainda compartilhar minhas anotações e pequenas modificações que realizo no conteúdo, desejando que possa ajudar mais alguém em algum lugar.
First and foremost, I take no credit for any of this post’s content. I am really just taking what others have done (which I have links to bellow) and am putting it on my blog for a personal reference and hopefully the small changes that I made to their guides will help someone somewhere.


link: https://gitlab.labs.nic.cz/turris/openwrt/blob/c1c44ffaf54385e9ad93acd64fa3349abfa9f4f8/target/linux/kirkwood/patches-3.14/171-ix2_200_poweroff.patch

--- a/arch/arm/boot/dts/kirkwood-iomega_ix2_200.dts
+++ b/arch/arm/boot/dts/kirkwood-iomega_ix2_200.dts
@@ -168,6 +168,10 @@
 			gpios = <&gpio1 3 GPIO_ACTIVE_LOW>;
 		};
 	};
+	gpio-poweroff {
+		compatible = "gpio-poweroff";
+		gpios = <&gpio0 17 GPIO_ACTIVE_LOW>;
+	};
 };
 
 &nand {




link: https://gitlab.labs.nic.cz/turris/openwrt/blob/c1c44ffaf54385e9ad93acd64fa3349abfa9f4f8/target/linux/kirkwood/patches-3.14/120-iomega_ix2_200.patch


--- a/arch/arm/boot/dts/kirkwood-iomega_ix2_200.dts
+++ b/arch/arm/boot/dts/kirkwood-iomega_ix2_200.dts
@@ -191,8 +191,8 @@
 	};
 
 	partition@400000 {
-		label = "uInitrd";
-		reg = <0x540000 0x1000000>;
+		label = "rootfs";
+		reg = <0x400000 0x1C00000>;
 	};
 };



CRia uma partição uInitrd e o restante rootfs
--- a/arch/arm/boot/dts/kirkwood-iomega_ix2_200.dts
+++ b/arch/arm/boot/dts/kirkwood-iomega_ix2_200.dts
@@ -192,8 +192,8 @@
 	};
 
 	partition@400000 {
-		label = "uInitrd";
-		reg = <0x540000 0x1000000>;
+		label = "rootfs";
+		reg = <0x400000 0x1C00000>;
 	};
 };


linux 4.6 dts



/dts-v1/;

#include "kirkwood.dtsi"
#include "kirkwood-6281.dtsi"

/ {
	model = "Iomega StorCenter ix2-200";
	compatible = "iom,ix2-200", "marvell,kirkwood-88f6281", "marvell,kirkwood";

	memory {
		device_type = "memory";
		reg = <0x00000000 0x10000000>;
	};

	chosen {
		bootargs = "console=ttyS0,115200n8 earlyprintk";
		stdout-path = &uart0;
	};

	ocp@f1000000 {
		pinctrl: pin-controller@10000 {
			pinctrl-0 = < &pmx_led_sata_brt_ctrl_1
				      &pmx_led_sata_brt_ctrl_2
				      &pmx_led_backup_brt_ctrl_1
				      &pmx_led_backup_brt_ctrl_2
				      &pmx_led_power_brt_ctrl_1
				      &pmx_led_power_brt_ctrl_2
				      &pmx_led_health_brt_ctrl_1
				      &pmx_led_health_brt_ctrl_2
				      &pmx_led_rebuild_brt_ctrl_1
				      &pmx_led_rebuild_brt_ctrl_2 >;
			pinctrl-names = "default";

			pmx_button_reset: pmx-button-reset {
				marvell,pins = "mpp12";
				marvell,function = "gpio";
			};
			pmx_button_power: pmx-button-power {
				marvell,pins = "mpp14";
				marvell,function = "gpio";
			};
			pmx_led_backup: pmx-led-backup {
				marvell,pins = "mpp15";
				marvell,function = "gpio";
			};
			pmx_led_power: pmx-led-power {
				marvell,pins = "mpp16";
				marvell,function = "gpio";
			};
			pmx_button_otb: pmx-button-otb {
				marvell,pins = "mpp35";
				marvell,function = "gpio";
			};
			pmx_led_rebuild: pmx-led-rebuild {
				marvell,pins = "mpp36";
				marvell,function = "gpio";
			};
			pmx_led_health: pmx-led_health {
				marvell,pins = "mpp37";
				marvell,function = "gpio";
			};
			pmx_led_sata_brt_ctrl_1: pmx-led-sata-brt-ctrl-1 {
				marvell,pins = "mpp38";
				marvell,function = "gpio";
			};
			pmx_led_sata_brt_ctrl_2: pmx-led-sata-brt-ctrl-2 {
				marvell,pins = "mpp39";
				marvell,function = "gpio";
			};
			pmx_led_backup_brt_ctrl_1: pmx-led-backup-brt-ctrl-1 {
				marvell,pins = "mpp40";
				marvell,function = "gpio";
			};
			pmx_led_backup_brt_ctrl_2: pmx-led-backup-brt-ctrl-2 {
				marvell,pins = "mpp41";
				marvell,function = "gpio";
			};
			pmx_led_power_brt_ctrl_1: pmx-led-power-brt-ctrl-1 {
				marvell,pins = "mpp42";
				marvell,function = "gpio";
			};
			pmx_led_power_brt_ctrl_2: pmx-led-power-brt-ctrl-2 {
				marvell,pins = "mpp43";
				marvell,function = "gpio";
			};
			pmx_led_health_brt_ctrl_1: pmx-led-health-brt-ctrl-1 {
				marvell,pins = "mpp44";
				marvell,function = "gpio";
			};
			pmx_led_health_brt_ctrl_2: pmx-led-health-brt-ctrl-2 {
				marvell,pins = "mpp45";
				marvell,function = "gpio";
			};
			pmx_led_rebuild_brt_ctrl_1: pmx-led-rebuild-brt-ctrl-1 {
				marvell,pins = "mpp46";
				marvell,function = "gpio";
			};
			pmx_led_rebuild_brt_ctrl_2: pmx-led-rebuild-brt-ctrl-2 {
				marvell,pins = "mpp47";
				marvell,function = "gpio";
			};

		};
		i2c@11000 {
			status = "okay";

			lm63: lm63@4c {
				compatible = "national,lm63";
				reg = <0x4c>;
			};
		};

		serial@12000 {
			status = "ok";
		};

		sata@80000 {
			status = "okay";
			nr-ports = <2>;
		};

	};
	gpio-leds {
		compatible = "gpio-leds";
		pinctrl-0 = < &pmx_led_backup &pmx_led_power
			      &pmx_led_rebuild &pmx_led_health >;
		pinctrl-names = "default";

		power_led {
			label = "status:white:power_led";
			gpios = <&gpio0 16 GPIO_ACTIVE_HIGH>;
			default-state = "keep";
		};
		rebuild_led {
			label = "status:white:rebuild_led";
			gpios = <&gpio1 4 GPIO_ACTIVE_HIGH>;
		};
		health_led {
			label = "status:red:health_led";
			gpios = <&gpio1 5 GPIO_ACTIVE_HIGH>;
		};
		backup_led {
			label = "status:blue:backup_led";
			gpios = <&gpio0 15 GPIO_ACTIVE_HIGH>;
		};
	};
	gpio-keys {
		compatible = "gpio-keys";
		#address-cells = <1>;
		#size-cells = <0>;
		pinctrl-0 = <&pmx_button_reset &pmx_button_power
			     &pmx_button_otb>;
		pinctrl-names = "default";


		Power {
			label = "Power Button";
			linux,code = <KEY_POWER>;
			gpios = <&gpio0 14 GPIO_ACTIVE_LOW>;
		};
		Reset {
			label = "Reset Button";
			linux,code = <KEY_RESTART>;
			gpios = <&gpio0 12 GPIO_ACTIVE_LOW>;
		};
		OTB {
			label = "OTB Button";
			linux,code = <KEY_COPY>;
			gpios = <&gpio1 3 GPIO_ACTIVE_LOW>;
		};
	};
	gpio-poweroff {
		compatible = "gpio-poweroff";
		gpios = <&gpio0 17 GPIO_ACTIVE_LOW>;
	};
};

&nand {
	status = "okay";

	partition@0 {
		label = "u-boot";
		reg = <0x0000000 0x100000>;
		read-only;
	};

	partition@a0000 {
		label = "env";
		reg = <0xa0000 0x20000>;
		read-only;
	};

	partition@100000 {
		label = "uImage";
		reg = <0x100000 0x300000>;
	};

	partition@400000 {
		label = "rootfs";
		reg = <0x400000 0x1C00000>;
	};
};

&mdio {
	status = "okay";

	ethphy1: ethernet-phy@11 {
		reg = <11>;
	};
};

&eth0 {
	status = "okay";
	ethernet0-port@0 {
		speed = <1000>;
		duplex = <1>;
	};
};

&eth1 {
	status = "okay";
	ethernet1-port@0 {
		phy-handle = <&ethphy1>;
	};
};


Para incluir um bootarg mais específico e ainda desabilitar a porta ethernet que não implementada neste aparelho temos as seguintes modificações pessoais (destacadas em vermelho):

/dts-v1/;

#include "kirkwood.dtsi"
#include "kirkwood-6281.dtsi"

/ {
	model = "Iomega StorCenter ix2-200";
	compatible = "iom,ix2-200", "marvell,kirkwood-88f6281", "marvell,kirkwood";

	memory {
		device_type = "memory";
		reg = <0x00000000 0x10000000>;
	};

	chosen {
		bootargs = "console=ttyS0,115200n8 earlyprintk mtdparts=orion_nand:0x100000@0x000000(u-boot)ro,0x20000@0xA0000(env)ro,0x300000@0x100000(uImage),0x1C00000@0x400000(rootfs)";
		stdout-path = &uart0;
	};

	ocp@f1000000 {
		pinctrl: pin-controller@10000 {
			pinctrl-0 = < &pmx_led_sata_brt_ctrl_1
				      &pmx_led_sata_brt_ctrl_2
				      &pmx_led_backup_brt_ctrl_1
				      &pmx_led_backup_brt_ctrl_2
				      &pmx_led_power_brt_ctrl_1
				      &pmx_led_power_brt_ctrl_2
				      &pmx_led_health_brt_ctrl_1
				      &pmx_led_health_brt_ctrl_2
				      &pmx_led_rebuild_brt_ctrl_1
				      &pmx_led_rebuild_brt_ctrl_2 >;
			pinctrl-names = "default";

			pmx_button_reset: pmx-button-reset {
				marvell,pins = "mpp12";
				marvell,function = "gpio";
			};
			pmx_button_power: pmx-button-power {
				marvell,pins = "mpp14";
				marvell,function = "gpio";
			};
			pmx_led_backup: pmx-led-backup {
				marvell,pins = "mpp15";
				marvell,function = "gpio";
			};
			pmx_led_power: pmx-led-power {
				marvell,pins = "mpp16";
				marvell,function = "gpio";
			};
			pmx_button_otb: pmx-button-otb {
				marvell,pins = "mpp35";
				marvell,function = "gpio";
			};
			pmx_led_rebuild: pmx-led-rebuild {
				marvell,pins = "mpp36";
				marvell,function = "gpio";
			};
			pmx_led_health: pmx-led_health {
				marvell,pins = "mpp37";
				marvell,function = "gpio";
			};
			pmx_led_sata_brt_ctrl_1: pmx-led-sata-brt-ctrl-1 {
				marvell,pins = "mpp38";
				marvell,function = "gpio";
			};
			pmx_led_sata_brt_ctrl_2: pmx-led-sata-brt-ctrl-2 {
				marvell,pins = "mpp39";
				marvell,function = "gpio";
			};
			pmx_led_backup_brt_ctrl_1: pmx-led-backup-brt-ctrl-1 {
				marvell,pins = "mpp40";
				marvell,function = "gpio";
			};
			pmx_led_backup_brt_ctrl_2: pmx-led-backup-brt-ctrl-2 {
				marvell,pins = "mpp41";
				marvell,function = "gpio";
			};
			pmx_led_power_brt_ctrl_1: pmx-led-power-brt-ctrl-1 {
				marvell,pins = "mpp42";
				marvell,function = "gpio";
			};
			pmx_led_power_brt_ctrl_2: pmx-led-power-brt-ctrl-2 {
				marvell,pins = "mpp43";
				marvell,function = "gpio";
			};
			pmx_led_health_brt_ctrl_1: pmx-led-health-brt-ctrl-1 {
				marvell,pins = "mpp44";
				marvell,function = "gpio";
			};
			pmx_led_health_brt_ctrl_2: pmx-led-health-brt-ctrl-2 {
				marvell,pins = "mpp45";
				marvell,function = "gpio";
			};
			pmx_led_rebuild_brt_ctrl_1: pmx-led-rebuild-brt-ctrl-1 {
				marvell,pins = "mpp46";
				marvell,function = "gpio";
			};
			pmx_led_rebuild_brt_ctrl_2: pmx-led-rebuild-brt-ctrl-2 {
				marvell,pins = "mpp47";
				marvell,function = "gpio";
			};

		};
		i2c@11000 {
			status = "okay";

			lm63: lm63@4c {
				compatible = "national,lm63";
				reg = <0x4c>;
			};
		};

		serial@12000 {
			status = "ok";
		};

		sata@80000 {
			status = "okay";
			nr-ports = <2>;
		};

	};
	gpio-leds {
		compatible = "gpio-leds";
		pinctrl-0 = < &pmx_led_backup &pmx_led_power
			      &pmx_led_rebuild &pmx_led_health >;
		pinctrl-names = "default";

		power_led {
			label = "status:white:power_led";
			gpios = <&gpio0 16 GPIO_ACTIVE_HIGH>;
			default-state = "keep";
		};
		rebuild_led {
			label = "status:white:rebuild_led";
			gpios = <&gpio1 4 GPIO_ACTIVE_HIGH>;
		};
		health_led {
			label = "status:red:health_led";
			gpios = <&gpio1 5 GPIO_ACTIVE_HIGH>;
		};
		backup_led {
			label = "status:blue:backup_led";
			gpios = <&gpio0 15 GPIO_ACTIVE_HIGH>;
		};
	};
	gpio-keys {
		compatible = "gpio-keys";
		#address-cells = <1>;
		#size-cells = <0>;
		pinctrl-0 = <&pmx_button_reset &pmx_button_power
			     &pmx_button_otb>;
		pinctrl-names = "default";


		Power {
			label = "Power Button";
			linux,code = <KEY_POWER>;
			gpios = <&gpio0 14 GPIO_ACTIVE_LOW>;
		};
		Reset {
			label = "Reset Button";
			linux,code = <KEY_RESTART>;
			gpios = <&gpio0 12 GPIO_ACTIVE_LOW>;
		};
		OTB {
			label = "OTB Button";
			linux,code = <KEY_COPY>;
			gpios = <&gpio1 3 GPIO_ACTIVE_LOW>;
		};
	};
	gpio-poweroff {
		compatible = "gpio-poweroff";
		gpios = <&gpio0 17 GPIO_ACTIVE_LOW>;
	};
};

&nand {
	status = "okay";

	partition@0 {
		label = "u-boot";
		reg = <0x0000000 0x100000>;
		read-only;
	};

	partition@a0000 {
		label = "env";
		reg = <0xa0000 0x20000>;
		read-only;
	};

	partition@100000 {
		label = "uImage";
		reg = <0x100000 0x300000>;
	};

	partition@400000 {
		label = "rootfs";
		reg = <0x400000 0x1C00000>;
	};
};

&mdio {
	status = "okay";

	ethphy1: ethernet-phy@11 {
		reg = <11>;
	};
};

&eth1 {
	status = "fail";
	ethernet0-port@0 {
		speed = <1000>;
		duplex = <1>;
	};
};

&eth0 {
	status = "okay";
	ethernet1-port@0 {
		phy-handle = <&ethphy1>;
	};
};


Ċ
Ademar Arvati Filho,
18 de jun de 2016 08:52
Comments