This patch adds support for Iomega iConnect Wireless board. It overrides 
Marvell RD-88F6281 board since they share same mach id.

This board has already serial header installed with following pinout:
+3.3 || TX || GND || RX

I have tested ramdisk image from u-boot with:
>> tftpboot 0x2000000 openwrt-kirkwood-uImage
>> bootm 0x2000000

Working:
 - ethernet
 - usb

TODO:
 - flashing to NAND (haven't tested it yet)
 - get crypto driver loaded
 - add support for on-board LM63 sensor
 - add support for RT3090 wireless card
 - eventually get mach id for this board and add separate setup file



Signed-off-by: Wojciech Dubowik <wojciech.dubo...@neratec.com>




Index: target/linux/kirkwood/profiles/300-iConnect.mk
===================================================================
--- target/linux/kirkwood/profiles/300-iConnect.mk      (revision 0)
+++ target/linux/kirkwood/profiles/300-iConnect.mk      (revision 0)
@@ -0,0 +1,17 @@
+#
+# Copyright (C) 2006 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+define Profile/Iconnect
+  NAME:=Iomega iConnect Wireless
+  PACKAGES:=
+endef
+
+define Profile/Iconnect/Description
+        Iomega iConnect Wireless
+endef
+
+$(eval $(call Profile,Iconnect))
Index: target/linux/kirkwood/patches/200-iconnect.patch
===================================================================
--- target/linux/kirkwood/patches/200-iconnect.patch    (revision 0)
+++ target/linux/kirkwood/patches/200-iconnect.patch    (revision 0)
@@ -0,0 +1,112 @@
+--- a/arch/arm/mach-kirkwood/Kconfig
++++ b/arch/arm/mach-kirkwood/Kconfig 
+@@ -105,6 +105,14 @@
+         Say 'Y' here if you want your kernel to support the
+         Seagate FreeAgent DockStar.
+ 
++config MACH_ICONNECT
++      bool "Iomega iConnect Wireless"
++      depends on MACH_RD88F6281
++      help
++        Say 'Y' here if you want your kernel to support the
++        Iomega iConnect Wireless. Overrides Marvell RD-88F6281
++        Reference Board.
++
+ endmenu
+ 
+ endif
+--- a/arch/arm/mach-kirkwood/rd88f6281-setup.c
++++ b/arch/arm/mach-kirkwood/rd88f6281-setup.c 
+@@ -24,6 +24,31 @@
+ #include "common.h"
+ #include "mpp.h"
+ 
++#ifdef CONFIG_MACH_ICONNECT
++static struct mtd_partition rd88f6281_nand_parts[] = {
++      {
++              .name = "u-boot",
++              .offset = 0,
++              .size = SZ_1M
++      }, {
++              .name = "uImage",
++              .offset = MTDPART_OFS_NXTBLK,
++              .size = SZ_1M + SZ_2M
++      }, {
++              .name = "rootfs",
++              .offset = MTDPART_OFS_NXTBLK,
++              .size = SZ_32M,
++      }, {
++              .name = "data",
++              .offset = MTDPART_OFS_NXTBLK,
++              .size = MTDPART_SIZ_FULL
++      },
++};
++
++static struct mv643xx_eth_platform_data rd88f6281_ge00_data = {
++      .phy_addr       = MV643XX_ETH_PHY_ADDR(11),
++};
++#else
+ static struct mtd_partition rd88f6281_nand_parts[] = {
+       {
+               .name = "u-boot",
+@@ -41,9 +66,7 @@
+ };
+ 
+ static struct mv643xx_eth_platform_data rd88f6281_ge00_data = {
+-      .phy_addr       = MV643XX_ETH_PHY_NONE,
+-      .speed          = SPEED_1000,
+-      .duplex         = DUPLEX_FULL,
++      .phy_addr       = MV643XX_ETH_PHY_ADDR(11),
+ };
+ 
+ static struct dsa_chip_data rd88f6281_switch_chip_data = {
+@@ -70,7 +93,7 @@
+ static struct mvsdio_platform_data rd88f6281_mvsdio_data = {
+       .gpio_card_detect = 28,
+ };
+-
++#endif
+ static unsigned int rd88f6281_mpp_config[] __initdata = {
+       MPP28_GPIO,
+       0
+@@ -91,6 +114,7 @@
+ 
+       kirkwood_ge00_init(&rd88f6281_ge00_data);
+       kirkwood_pcie_id(&dev, &rev);
++#ifndef CONFIG_MACH_ICONNECT
+       if (rev == MV88F6281_REV_A0) {
+               rd88f6281_switch_chip_data.sw_addr = 10;
+               kirkwood_ge01_init(&rd88f6281_ge01_data);
+@@ -101,6 +125,7 @@
+ 
+       kirkwood_sata_init(&rd88f6281_sata_data);
+       kirkwood_sdio_init(&rd88f6281_mvsdio_data);
++#endif
+       kirkwood_uart0_init();
+ }
+ 
+@@ -113,6 +138,18 @@
+ }
+ subsys_initcall(rd88f6281_pci_init);
+ 
++#ifdef CONFIG_MACH_ICONNECT
++MACHINE_START(RD88F6281, "Iomega iConnect Wireless")
++      /* Maintainer: Saeed Bishara <sa...@marvell.com> */
++      .phys_io        = KIRKWOOD_REGS_PHYS_BASE,
++      .io_pg_offst    = ((KIRKWOOD_REGS_VIRT_BASE) >> 18) & 0xfffc,
++      .boot_params    = 0x00000100,
++      .init_machine   = rd88f6281_init,
++      .map_io         = kirkwood_map_io,
++      .init_irq       = kirkwood_init_irq,
++      .timer          = &kirkwood_timer,
++MACHINE_END
++#else
+ MACHINE_START(RD88F6281, "Marvell RD-88F6281 Reference Board")
+       /* Maintainer: Saeed Bishara <sa...@marvell.com> */
+       .phys_io        = KIRKWOOD_REGS_PHYS_BASE,
+@@ -123,3 +160,4 @@
+       .init_irq       = kirkwood_init_irq,
+       .timer          = &kirkwood_timer,
+ MACHINE_END
++#endif
+\ No newline at end of file
Index: target/linux/kirkwood/config-default
===================================================================
--- target/linux/kirkwood/config-default        (revision 23057)
+++ target/linux/kirkwood/config-default        (working copy)
@@ -95,6 +95,7 @@
 CONFIG_MACH_DOCKSTAR=y
 # CONFIG_MACH_ESATA_SHEEVAPLUG is not set
 # CONFIG_MACH_GURUPLUG is not set
+CONFIG_MACH_ICONNECT=y
 # CONFIG_MACH_INETSPACE_V2 is not set
 # CONFIG_MACH_MV88F6281GTW_GE is not set
 # CONFIG_MACH_NET2BIG_V2 is not set
@@ -103,7 +104,7 @@
 # CONFIG_MACH_OPENRD_BASE is not set
 # CONFIG_MACH_OPENRD_CLIENT is not set
 # CONFIG_MACH_RD88F6192_NAS is not set
-# CONFIG_MACH_RD88F6281 is not set
+CONFIG_MACH_RD88F6281=y
 CONFIG_MACH_SHEEVAPLUG=y
 # CONFIG_MACH_TS219 is not set
 # CONFIG_MACH_TS41X is not set
_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to