kirkwood: add support for Cisco ON100

The Cisco ON100 device is a Kirkwood based router:

    SoC: Marvell 88F6282 1600Mhz
    SDRAM memory: 512MB DDR3 1333Mhz
    Gigabit ethernet: 2x Marvell 88E1310 (over RGMII)
    Flash memory: 512MB
    2 bi-colour status LEDs (green/red)
    1 Reset button
    1 USB 2.0 port (on back)
    1 SDIO slot (on back)

This commit adds a target profile of "Cisco Systems ON100" under the target
system "Marvell Kirkwood".

Flashing can be performed over tftp, once "dhcp" has been issued:
 tftpboot ${loadaddr} lede-kirkwood-on100-squashfs-factory.bin
 nand erase 0x0c0000 ${filesize}
 nand write ${loadaddr} 0x0c0000 ${filesize}

Once flashed, set environment variables to boot:
 setenv bootcmd nand read \${loadaddr} 0x0c0000 0x540000\; setenv bootargs
  \; bootm
 saveenv

Signed-off-by: Makoto Takeuchi <mak0@lxsys.co.uk>
This commit is contained in:
Makoto Takeuchi 2017-05-24 16:37:24 +01:00 committed by Mathias Kresin
parent c2f052acae
commit ca27b3d370
5 changed files with 195 additions and 1 deletions

View file

@ -35,6 +35,9 @@ case "$board" in
ucidef_set_interface_lan "eth0" "dhcp"
ucidef_set_interface_macaddr "lan" $( mtd_get_mac_ascii uboot_env ethaddr )
;;
"on100")
ucidef_set_interface_lan "eth0 eth1"
;;
*)
ucidef_set_interface_lan "eth0"
;;

View file

@ -23,6 +23,9 @@ get_status_led() {
nsa310b)
status_led="nsa310:green:sys"
;;
on100)
status_led="on100:green:health"
;;
esac
}

View file

@ -33,6 +33,10 @@ kirkwood_board_detect() {
name="ib62x0"
;;
"Cisco Systems ON100")
name="on100"
;;
"Cloud Engines Pogoplug E02")
name="pogo_e02"
;;

View file

@ -11,7 +11,7 @@ include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/image.mk
KERNEL_LOADADDR:=0x8000
TARGET_DEVICES = linksys-audi linksys-viper dockstar goflexnet goflexhome iconnect pogo_e02 ib62x0 nsa310b nsa325
TARGET_DEVICES = linksys-audi linksys-viper dockstar goflexnet goflexhome iconnect pogo_e02 ib62x0 nsa310b nsa325 on100
UBI_OPTS := -m 2048 -p 128KiB -s 512
UBIFS_OPTS := -m 2048 -e 126KiB -c 4096
@ -94,6 +94,17 @@ $(Device/dockstar)
DEVICE_PACKAGES := kmod-gpio-button-hotplug kmod-rtc-pcf8563 kmod-usb3
endef
define Device/on100
DEVICE_TITLE := Cisco Systems ON100
DEVICE_DTS := kirkwood-on100
# DEVICE_PACKAGES := kmod-mvsdio kmod-usb-storage kmod-i2c-core kmod-i2c-mv64xxx kmod-ata-core kmod-btmrvl kmod-btmrvl-sdio kmod-libertas kmod-libertas-sdio
DEVICE_PACKAGES := kmod-i2c-mv64xxx
KERNEL_SIZE := 5376k
IMAGES += factory.bin
IMAGE/factory.bin := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-ubi
UBINIZE_OPTS := -E 5
endef
define Device/pogo_e02
$(Device/dockstar)
DEVICE_TITLE := Cloud Engines Pogoplug E02

View file

@ -0,0 +1,173 @@
--- /dev/null
+++ b/arch/arm/boot/dts/kirkwood-on100.dts
@@ -0,0 +1,160 @@
+/dts-v1/;
+
+#include "kirkwood.dtsi"
+#include "kirkwood-6282.dtsi"
+
+/ {
+ model = "Cisco Systems ON100";
+ compatible = "cisco,on100", "marvell,kirkwood-88f6282", "marvell,kirkwood";
+
+ memory {
+ device_type = "memory";
+ reg = <0x00000000 0x20000000>;
+ };
+
+ aliases {
+ serial0 = &uart0;
+ };
+
+ chosen {
+ bootargs = "console=ttyS0,115200n8 earlyprintk";
+ stdout-path = "serial0:115200n8";
+ };
+
+ gpio_keys {
+ compatible = "gpio-keys";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ pinctrl-0 = <&pmx_btn_reset>;
+ pinctrl-names = "default";
+
+ button@1 {
+ label = "Reset Button";
+ linux,code = <KEY_RESTART>;
+ gpios = <&gpio1 9 GPIO_ACTIVE_LOW>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+ pinctrl-0 = < &pmx_led_health_r &pmx_led_health_g >;
+ pinctrl-names = "default";
+
+ health-g {
+ label = "on100:green:health";
+ gpios = <&gpio1 12 GPIO_ACTIVE_LOW>;
+ };
+
+ health-r {
+ label = "on100:red:health";
+ gpios = <&gpio1 13 GPIO_ACTIVE_LOW>;
+ };
+
+ health2-g {
+ label = "on100:green:health2";
+ gpios = <&gpio1 14 GPIO_ACTIVE_LOW>;
+ };
+
+ health2-r {
+ label = "on100:red:health2";
+ gpios = <&gpio1 15 GPIO_ACTIVE_LOW>;
+ };
+ };
+};
+
+&eth0 {
+ status = "okay";
+
+ ethernet0-port@0 {
+ phy-handle = <&ethphy0>;
+ phy-connection-type = "rgmii-id";
+ };
+};
+
+&eth1 {
+ status = "okay";
+
+ ethernet1-port@0 {
+ phy-handle = <&ethphy1>;
+ phy-connection-type = "rgmii-id";
+ };
+};
+
+&mdio {
+ status = "okay";
+
+ ethphy0: ethernet-phy@0 {
+ /* Marvell 88E1121R */
+ compatible = "ethernet-phy-id0141.0cb0",
+ "ethernet-phy-ieee802.3-c22";
+ reg = <0>;
+ };
+
+ ethphy1: ethernet-phy@1 {
+ /* Marvell 88E1121R */
+ compatible = "ethernet-phy-id0141.0cb0",
+ "ethernet-phy-ieee802.3-c22";
+ reg = <1>;
+ };
+};
+
+&nand {
+ status = "okay";
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x00000000 0x000a0000>;
+ read-only;
+ };
+
+ partition@a0000 {
+ label = "u-boot environment";
+ reg = <0x000a0000 0x00020000>;
+ read-only;
+ };
+
+ partition@c0000 {
+ label = "kernel";
+ reg = <0x000c0000 0x00540000>;
+ };
+
+ partition@600000 {
+ label = "ubi";
+ reg = <0x00600000 0x1fa00000>;
+ };
+};
+
+&pinctrl {
+ pmx_led_health_r: pmx-led-health-r {
+ marvell,pins = "mpp45";
+ marvell,function = "gpio";
+ };
+
+ pmx_led_health_g: pmx-led-health-g {
+ marvell,pins = "mpp44";
+ marvell,function = "gpio";
+ };
+
+ pmx_led_health2_r: pmx-led-health2-r {
+ marvell,pins = "mpp47";
+ marvell,function = "gpio";
+ };
+
+ pmx_led_health2_g: pmx-led-health2-g {
+ marvell,pins = "mpp46";
+ marvell,function = "gpio";
+ };
+
+ pmx_btn_reset: pmx-led-reset {
+ marvell,pins = "mpp31";
+ marvell,function = "gpio";
+ };
+};
+
+&sdio {
+ status = "okay";
+};
+
+&uart0 {
+ status = "okay";
+};
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -206,6 +206,7 @@ dtb-$(CONFIG_MACH_KIRKWOOD) += \
kirkwood-nsa310b.dtb \
kirkwood-nsa310s.dtb \
kirkwood-nsa325.dtb \
+ kirkwood-on100.dtb \
kirkwood-openblocks_a6.dtb \
kirkwood-openblocks_a7.dtb \
kirkwood-openrd-base.dtb \