From: Arne Fitzenreiter Date: Sun, 16 Oct 2011 09:57:07 +0000 (+0200) Subject: kernel-arm-kirkwood: add icy-box 62x0 setup. X-Git-Tag: v2.9-core54~13^2~30 X-Git-Url: http://git.ipfire.org/?p=people%2Fummeegge%2Fipfire-2.x.git;a=commitdiff_plain;h=c05f6df0ecf902f73999d46ede508b158a74469b kernel-arm-kirkwood: add icy-box 62x0 setup. disabled dma_net_client (reason for some crashes). --- diff --git a/config/kernel/kernel.config.armv5tel-ipfire-kirkwood b/config/kernel/kernel.config.armv5tel-ipfire-kirkwood index 43a0297a17..13a80e5fdf 100644 --- a/config/kernel/kernel.config.armv5tel-ipfire-kirkwood +++ b/config/kernel/kernel.config.armv5tel-ipfire-kirkwood @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit # Linux kernel version: 2.6.32.45 -# Mon Sep 26 04:58:26 2011 +# Sat Oct 15 08:52:52 2011 # CONFIG_ARM=y CONFIG_SYS_SUPPORTS_APM_EMULATION=y @@ -193,12 +193,13 @@ CONFIG_ARCH_KIRKWOOD=y CONFIG_MACH_DB88F6281_BP=y CONFIG_MACH_RD88F6192_NAS=y CONFIG_MACH_RD88F6281=y -# CONFIG_MACH_MV88F6281GTW_GE is not set +CONFIG_MACH_MV88F6281GTW_GE=y CONFIG_MACH_SHEEVAPLUG=y -CONFIG_MACH_GURUPLUG=y CONFIG_MACH_DREAMPLUG=y +CONFIG_MACH_GURUPLUG=y CONFIG_MACH_TS219=y CONFIG_MACH_OPENRD_BASE=y +CONFIG_MACH_NAS6210=y CONFIG_PLAT_ORION=y # @@ -916,7 +917,18 @@ CONFIG_MTD_PHYSMAP=m # CONFIG_MTD_DOC2000 is not set # CONFIG_MTD_DOC2001 is not set # CONFIG_MTD_DOC2001PLUS is not set -# CONFIG_MTD_NAND is not set +CONFIG_MTD_NAND=m +# CONFIG_MTD_NAND_VERIFY_WRITE is not set +# CONFIG_MTD_NAND_ECC_SMC is not set +# CONFIG_MTD_NAND_MUSEUM_IDS is not set +# CONFIG_MTD_NAND_GPIO is not set +CONFIG_MTD_NAND_IDS=m +# CONFIG_MTD_NAND_DISKONCHIP is not set +# CONFIG_MTD_NAND_CAFE is not set +# CONFIG_MTD_NAND_NANDSIM is not set +CONFIG_MTD_NAND_PLATFORM=m +# CONFIG_MTD_ALAUDA is not set +CONFIG_MTD_NAND_ORION=m # CONFIG_MTD_ONENAND is not set # @@ -1256,18 +1268,21 @@ CONFIG_MDIO_BITBANG=m CONFIG_MDIO_GPIO=m CONFIG_NET_ETHERNET=y CONFIG_MII=m -# CONFIG_AX88796 is not set +CONFIG_AX88796=m +CONFIG_AX88796_93CX6=y CONFIG_HAPPYMEAL=m # CONFIG_SUNGEM is not set CONFIG_CASSINI=m CONFIG_NET_VENDOR_3COM=y CONFIG_VORTEX=m CONFIG_TYPHOON=m -# CONFIG_SMC91X is not set -# CONFIG_DM9000 is not set +CONFIG_SMC91X=m +CONFIG_DM9000=m +CONFIG_DM9000_DEBUGLEVEL=4 +# CONFIG_DM9000_FORCE_SIMPLE_PHY_POLL is not set CONFIG_ETHOC=m -# CONFIG_SMC911X is not set -# CONFIG_SMSC911X is not set +CONFIG_SMC911X=m +CONFIG_SMSC911X=m CONFIG_DNET=m CONFIG_NET_TULIP=y CONFIG_DE2104X=m @@ -1685,7 +1700,7 @@ CONFIG_INPUT_MOUSEDEV=y CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 # CONFIG_INPUT_JOYDEV is not set -# CONFIG_INPUT_EVDEV is not set +CONFIG_INPUT_EVDEV=y # CONFIG_INPUT_EVBUG is not set # @@ -2936,8 +2951,8 @@ CONFIG_DMA_ENGINE=y # # DMA Clients # -CONFIG_NET_DMA=y -CONFIG_ASYNC_TX_DMA=y +# CONFIG_NET_DMA is not set +# CONFIG_ASYNC_TX_DMA is not set CONFIG_DMATEST=m # CONFIG_AUXDISPLAY is not set CONFIG_UIO=m diff --git a/lfs/linux b/lfs/linux index 590c7503d3..8326023ed3 100644 --- a/lfs/linux +++ b/lfs/linux @@ -164,8 +164,8 @@ endif cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.27_mcs7830-fix-driver-name.patch ifeq "$(KCFG)" "-kirkwood" - # Add dreamplug support on ARM-kirkwood - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.45-arm_kirkwood_dreamplug.patch + # Add dreamplug,guruplug and icy 62x0 support on ARM-kirkwood + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.45-arm_kirkwood_setups.patch endif diff --git a/src/patches/linux-2.6.32.45-arm_kirkwood_dreamplug.patch b/src/patches/linux-2.6.32.45-arm_kirkwood_setups.patch similarity index 61% rename from src/patches/linux-2.6.32.45-arm_kirkwood_dreamplug.patch rename to src/patches/linux-2.6.32.45-arm_kirkwood_setups.patch index 71809b7673..9db9c2e52d 100644 --- a/src/patches/linux-2.6.32.45-arm_kirkwood_dreamplug.patch +++ b/src/patches/linux-2.6.32.45-arm_kirkwood_setups.patch @@ -1,6 +1,6 @@ diff -Naur linux-2.6.32.45.org/arch/arm/mach-kirkwood/dreamplug-setup.c linux-2.6.32.45/arch/arm/mach-kirkwood/dreamplug-setup.c ---- linux-2.6.32.45.org/arch/arm/mach-kirkwood/dreamplug-setup.c 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.32.45/arch/arm/mach-kirkwood/dreamplug-setup.c 2011-09-26 17:21:05.000000000 +0000 +--- linux-2.6.32.45.org/arch/arm/mach-kirkwood/dreamplug-setup.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-2.6.32.45/arch/arm/mach-kirkwood/dreamplug-setup.c 2011-10-11 15:35:37.000000000 +0200 @@ -0,0 +1,140 @@ +/* + * arch/arm/mach-kirkwood/dreamplug-setup.c @@ -143,8 +143,8 @@ diff -Naur linux-2.6.32.45.org/arch/arm/mach-kirkwood/dreamplug-setup.c linux-2. + .timer = &kirkwood_timer, +MACHINE_END diff -Naur linux-2.6.32.45.org/arch/arm/mach-kirkwood/guruplug-setup.c linux-2.6.32.45/arch/arm/mach-kirkwood/guruplug-setup.c ---- linux-2.6.32.45.org/arch/arm/mach-kirkwood/guruplug-setup.c 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.32.45/arch/arm/mach-kirkwood/guruplug-setup.c 2011-09-26 17:22:21.000000000 +0000 +--- linux-2.6.32.45.org/arch/arm/mach-kirkwood/guruplug-setup.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-2.6.32.45/arch/arm/mach-kirkwood/guruplug-setup.c 2011-10-11 15:35:37.000000000 +0200 @@ -0,0 +1,131 @@ +/* + * arch/arm/mach-kirkwood/guruplug-setup.c @@ -278,8 +278,8 @@ diff -Naur linux-2.6.32.45.org/arch/arm/mach-kirkwood/guruplug-setup.c linux-2.6 + .timer = &kirkwood_timer, +MACHINE_END diff -Naur linux-2.6.32.45.org/arch/arm/mach-kirkwood/Kconfig linux-2.6.32.45/arch/arm/mach-kirkwood/Kconfig ---- linux-2.6.32.45.org/arch/arm/mach-kirkwood/Kconfig 2011-08-16 01:57:37.000000000 +0000 -+++ linux-2.6.32.45/arch/arm/mach-kirkwood/Kconfig 2011-09-26 17:22:21.000000000 +0000 +--- linux-2.6.32.45.org/arch/arm/mach-kirkwood/Kconfig 2011-08-16 03:57:37.000000000 +0200 ++++ linux-2.6.32.45/arch/arm/mach-kirkwood/Kconfig 2011-10-15 17:06:55.816070291 +0200 @@ -32,6 +32,18 @@ Say 'Y' here if you want your kernel to support the Marvell SheevaPlug Reference Board. @@ -299,10 +299,23 @@ diff -Naur linux-2.6.32.45.org/arch/arm/mach-kirkwood/Kconfig linux-2.6.32.45/ar config MACH_TS219 bool "QNAP TS-119 and TS-219 Turbo NAS" help +@@ -44,6 +56,12 @@ + Say 'Y' here if you want your kernel to support the + Marvell OpenRD Base Board. + ++config MACH_NAS6210 ++ bool "RaidSonic ICY BOX IB-NAS62x0" ++ help ++ Say 'Y' here if you want your kernel to support the ++ RaidSonic ICY BOX IB-NAS62x0 device. ++ + endmenu + + endif diff -Naur linux-2.6.32.45.org/arch/arm/mach-kirkwood/Makefile linux-2.6.32.45/arch/arm/mach-kirkwood/Makefile ---- linux-2.6.32.45.org/arch/arm/mach-kirkwood/Makefile 2011-08-16 01:57:37.000000000 +0000 -+++ linux-2.6.32.45/arch/arm/mach-kirkwood/Makefile 2011-09-26 17:23:30.000000000 +0000 -@@ -5,6 +5,8 @@ +--- linux-2.6.32.45.org/arch/arm/mach-kirkwood/Makefile 2011-08-16 03:57:37.000000000 +0200 ++++ linux-2.6.32.45/arch/arm/mach-kirkwood/Makefile 2011-10-15 17:07:16.346068829 +0200 +@@ -5,7 +5,10 @@ obj-$(CONFIG_MACH_RD88F6281) += rd88f6281-setup.o obj-$(CONFIG_MACH_MV88F6281GTW_GE) += mv88f6281gtw_ge-setup.o obj-$(CONFIG_MACH_SHEEVAPLUG) += sheevaplug-setup.o @@ -310,13 +323,200 @@ diff -Naur linux-2.6.32.45.org/arch/arm/mach-kirkwood/Makefile linux-2.6.32.45/a +obj-$(CONFIG_MACH_DREAMPLUG) += dreamplug-setup.o obj-$(CONFIG_MACH_TS219) += ts219-setup.o obj-$(CONFIG_MACH_OPENRD_BASE) += openrd_base-setup.o ++obj-$(CONFIG_MACH_NAS6210) += nas6210-setup.o + obj-$(CONFIG_CPU_IDLE) += cpuidle.o +diff -Naur linux-2.6.32.45.org/arch/arm/mach-kirkwood/nas6210-setup.c linux-2.6.32.45/arch/arm/mach-kirkwood/nas6210-setup.c +--- linux-2.6.32.45.org/arch/arm/mach-kirkwood/nas6210-setup.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-2.6.32.45/arch/arm/mach-kirkwood/nas6210-setup.c 2011-10-16 09:57:35.268409525 +0200 +@@ -0,0 +1,180 @@ ++/* ++ * arch/arm/mach-kirkwood/nas6210-setup.c ++ * ++ * Raidsonic ICYBOX NAS6210 and 6220 Board Setup ++ * ++ * This file is licensed under the terms of the GNU General Public ++ * License version 2. This program is licensed "as is" without any ++ * warranty of any kind, whether express or implied. ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include "common.h" ++#include "mpp.h" ++ ++#define NAS6210_GPIO_POWER_OFF 24 ++ ++static struct mtd_partition nas6210_nand_parts[] = { ++ { ++ .name = "u-boot", ++ .offset = 0, ++ .size = SZ_1M ++ }, { ++ .name = "uImage", ++ .offset = MTDPART_OFS_NXTBLK, ++ .size = (SZ_1M*6) ++ }, { ++ .name = "root", ++ .offset = MTDPART_OFS_NXTBLK, ++ .size = MTDPART_SIZ_FULL ++ }, ++}; ++ ++static struct mv643xx_eth_platform_data nas6210_ge00_data = { ++ .phy_addr = MV643XX_ETH_PHY_ADDR(8), ++}; ++ ++static struct mv_sata_platform_data nas6210_sata_data = { ++ .n_ports = 2, ++}; ++ ++static struct gpio_led nas6210_led_pins[] = { ++ { ++ .name = "nas6210:green:power", ++ .default_trigger = "default-on", ++ .gpio = 25, ++ .active_low = 0, ++ }, ++ { ++ .name = "nas6210:red:power", ++ .default_trigger = "none", ++ .gpio = 22, ++ .active_low = 0, ++ }, ++ { ++ .name = "nas6210:red:usb_copy", ++ .default_trigger = "none", ++ .gpio = 27, ++ .active_low = 0, ++ }, ++}; ++ ++static struct gpio_led_platform_data nas6210_led_data = { ++ .leds = nas6210_led_pins, ++ .num_leds = ARRAY_SIZE(nas6210_led_pins), ++}; ++ ++static struct platform_device nas6210_leds = { ++ .name = "leds-gpio", ++ .id = -1, ++ .dev = { ++ .platform_data = &nas6210_led_data, ++ } ++}; ++ ++static struct gpio_keys_button nas6210_buttons[] = { ++ { ++ .code = KEY_COPY, ++ .gpio = 29, ++ .desc = "USB Copy", ++ .active_low = 1, ++ }, ++ { ++ .code = KEY_RESTART, ++ .gpio = 28, ++ .desc = "Reset", ++ .active_low = 1, ++ }, ++}; ++ ++static struct gpio_keys_platform_data nas6210_button_data = { ++ .buttons = nas6210_buttons, ++ .nbuttons = ARRAY_SIZE(nas6210_buttons), ++}; ++ ++static struct platform_device nas6210_button_device = { ++ .name = "gpio-keys", ++ .id = -1, ++ .num_resources = 0, ++ .dev = { ++ .platform_data = &nas6210_button_data, ++ } ++}; ++ ++static unsigned int nas6210_mpp_config[] __initdata = { ++ MPP0_NF_IO2, ++ MPP1_NF_IO3, ++ MPP2_NF_IO4, ++ MPP3_NF_IO5, ++ MPP4_NF_IO6, ++ MPP5_NF_IO7, ++ MPP18_NF_IO0, ++ MPP19_NF_IO1, ++ MPP22_GPIO, /* Power LED red */ ++ MPP24_GPIO, /* Power off */ ++ MPP25_GPIO, /* Power LED green */ ++ MPP27_GPIO, /* USB transfer LED */ ++ MPP28_GPIO, /* Reset button */ ++ MPP29_GPIO, /* USB Copy button */ ++ 0 ++}; ++ ++void nas6210_power_off(void) ++{ ++ gpio_set_value(NAS6210_GPIO_POWER_OFF, 1); ++ while(1); ++} ++ ++static void __init nas6210_init(void) ++{ ++ /* ++ * Basic setup. Needs to be called early. ++ */ ++ kirkwood_init(); ++ kirkwood_mpp_conf(nas6210_mpp_config); ++ ++ kirkwood_nand_init(ARRAY_AND_SIZE(nas6210_nand_parts), 25); ++ kirkwood_ehci_init(); ++ kirkwood_ge00_init(&nas6210_ge00_data); ++ kirkwood_sata_init(&nas6210_sata_data); ++ kirkwood_uart0_init(); ++ platform_device_register(&nas6210_leds); ++ platform_device_register(&nas6210_button_device); ++ ++ if (gpio_request(NAS6210_GPIO_POWER_OFF, "power-off") == 0 && ++ gpio_direction_output(NAS6210_GPIO_POWER_OFF, 0) == 0) ++ pm_power_off = nas6210_power_off; ++ ++ else ++ pr_err("nas6210: failed to configure power-off gpio pin"); ++} ++ ++static int __init nas6210_pci_init(void) ++{ ++ if (machine_is_nas6210()) { ++ kirkwood_pcie_init(); ++ } ++ return 0; ++} ++subsys_initcall(nas6210_pci_init); ++ ++MACHINE_START(NAS6210, "RaidSonic ICY BOX IB-NAS62x0") ++ /* Maintainer: Arne Fitzenreiter */ ++ .boot_params = 0x00000100, ++ .init_machine = nas6210_init, ++ .map_io = kirkwood_map_io, ++ .init_irq = kirkwood_init_irq, ++ .timer = &kirkwood_timer, ++MACHINE_END diff -Naur linux-2.6.32.45.org/arch/arm/tools/mach-types linux-2.6.32.45/arch/arm/tools/mach-types ---- linux-2.6.32.45.org/arch/arm/tools/mach-types 2011-08-16 01:57:37.000000000 +0000 -+++ linux-2.6.32.45/arch/arm/tools/mach-types 2011-09-26 17:33:30.000000000 +0000 -@@ -2536,3 +2536,5 @@ +--- linux-2.6.32.45.org/arch/arm/tools/mach-types 2011-08-16 03:57:37.000000000 +0200 ++++ linux-2.6.32.45/arch/arm/tools/mach-types 2011-10-15 17:05:46.486069811 +0200 +@@ -2536,3 +2536,6 @@ mxt_td60 MACH_MXT_TD60 MXT_TD60 2550 esyx MACH_ESYX ESYX 2551 bulldog MACH_BULLDOG BULLDOG 2553 +guruplug MACH_GURUPLUG GURUPLUG 2601 +dreamplug MACH_DREAMPLUG DREAMPLUG 2659 ++nas6210 MACH_NAS6210 NAS6210 3104