kernel: updated rpi and kirkwood config.

This commit is contained in:
Arne Fitzenreiter
2013-09-06 13:06:09 +02:00
parent e5acf30472
commit 7419447856
9 changed files with 4524 additions and 3451 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -7,7 +7,6 @@
###############################################################################
#
# GPU Memory Settings (16,32,64 ... )
# 16MB has a issue at reboot so we use 32MB memory split
###############################################################################
gpu_mem=16

View File

@@ -26,7 +26,7 @@ include Config
VER = 3.10.10
RPI_PATCHES = linux-3.2.27-ada8b44
RPI_PATCHES = linux-3.10.10-c1af7c6
THISAPP = linux-$(VER)
DL_FILE = linux-$(VER).tar.xz
@@ -72,7 +72,7 @@ $(DL_FILE) = $(URL_IPFIRE)/$(DL_FILE)
rpi-patches-$(RPI_PATCHES).patch.xz = $(URL_IPFIRE)/rpi-patches-$(RPI_PATCHES).patch.xz
$(DL_FILE)_MD5 = 647f76225dd6bc112369ba573ba3de18
rpi-patches-$(RPI_PATCHES).patch.xz_MD5 = 966687ff27e450e04ff50e0da829dc00
rpi-patches-$(RPI_PATCHES).patch.xz_MD5 = ef9274b3ff5d05daaaa4bdbe86ad00fc
install : $(TARGET)
@@ -119,9 +119,11 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
# Grsecurity-patches
ifneq "$(KCFG)" "-headers"
ifneq "$(KCFG)" "-rpi"
cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grsecurity-2.9.1-3.10.10-201308292131.patch
cd $(DIR_APP) && rm localversion-grsec
cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.7-disable-compat_vdso.patch
endif
endif
# Disable pcspeaker autoload
@@ -148,16 +150,18 @@ endif
cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.2.33_ipg-fix-driver-name.patch
cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.27_mcs7830-fix-driver-name.patch
ifeq "$(KCFG)" "-kirkwood"
# Add dreamplug,guruplug and icy 62x0 support on ARM-kirkwood
cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.2.25-arm_kirkwood_setups.patch
cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.10.10-arm_kirkwood_setups.patch
cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.10.10-mv_cesa_disable_failing_hmac_sha1.patch
endif
ifeq "$(MACHINE_TYPE)" "arm"
cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.45_align_ssb_modtable_32bit_boundary.patch
# cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.45_align_ssb_modtable_32bit_boundary.patch
# Reverse some asm optimizations that are incompatible with older gcc
cd $(DIR_APP) && patch -p1 -R < $(DIR_SRC)/src/patches/linux-2.6-arm-asm-constraint.patch
# cd $(DIR_APP) && patch -p1 -R < $(DIR_SRC)/src/patches/linux-2.6-arm-asm-constraint.patch
endif
ifeq "$(KCFG)" "-omap"
@@ -202,8 +206,8 @@ ifeq "$(KCFG)" "-omap"
else
ifeq "$(KCFG)" "-rpi"
cd $(DIR_APP) && make $(MAKETUNING) CC="$(KGCC)" zImage
cd /boot && cat first32k.bin $(DIR_APP)/arch/arm/boot/Image > kernel.img
cd $(DIR_APP) && cp -v /boot/kernel.img /boot/vmlinuz-$(VER)-$(VERSUFIX)
cd $(DIR_APP) && cp -v arch/arm/boot/zImage /boot/vmlinuz-$(VER)-$(VERSUFIX)
cd $(DIR_APP) && cp -v arch/arm/boot/zImage /boot/kernel.img
else
cd $(DIR_APP) && make $(MAKETUNING) CC="$(KGCC)" bzImage
cd $(DIR_APP) && cp -v arch/i386/boot/bzImage /boot/vmlinuz-$(VER)-$(VERSUFIX)

32
make.sh
View File

@@ -426,29 +426,29 @@ buildipfire() {
else
# arm-rpi (Raspberry Pi) kernel build
ipfiremake linux KCFG="-rpi"
ipfiremake v4l-dvb KCFG="-rpi"
ipfiremake mISDN KCFG="-rpi" NOPCI=1
# ipfiremake v4l-dvb KCFG="-rpi"
# ipfiremake mISDN KCFG="-rpi" NOPCI=1
ipfiremake cryptodev KCFG="-rpi"
ipfiremake compat-drivers KCFG="-rpi"
# ipfiremake compat-drivers KCFG="-rpi"
# arm-omap (Panda Board) kernel build
ipfiremake linux KCFG="-omap"
ipfiremake v4l-dvb KCFG="-omap"
ipfiremake mISDN KCFG="-omap" NOPCI=1
ipfiremake cryptodev KCFG="-omap"
ipfiremake compat-drivers KCFG="-omap"
# ipfiremake linux KCFG="-omap"
# ipfiremake v4l-dvb KCFG="-omap"
# ipfiremake mISDN KCFG="-omap" NOPCI=1
# ipfiremake cryptodev KCFG="-omap"
# ipfiremake compat-drivers KCFG="-omap"
# arm-kirkwood (Dreamplug, ICY-Box ...) kernel build
ipfiremake linux KCFG="-kirkwood"
ipfiremake v4l-dvb KCFG="-kirkwood"
ipfiremake mISDN KCFG="-kirkwood"
# ipfiremake v4l-dvb KCFG="-kirkwood"
# ipfiremake mISDN KCFG="-kirkwood"
ipfiremake cryptodev KCFG="-kirkwood"
ipfiremake compat-drivers KCFG="-kirkwood"
ipfiremake r8169 KCFG="-kirkwood"
ipfiremake r8168 KCFG="-kirkwood"
ipfiremake r8101 KCFG="-kirkwood"
# ipfiremake e1000e KCFG="-kirkwood"
ipfiremake igb KCFG="-kirkwood"
# ipfiremake compat-drivers KCFG="-kirkwood"
# ipfiremake r8169 KCFG="-kirkwood"
# ipfiremake r8168 KCFG="-kirkwood"
# ipfiremake r8101 KCFG="-kirkwood"
# ipfiremake e1000e KCFG="-kirkwood"
# ipfiremake igb KCFG="-kirkwood"
fi
ipfiremake pkg-config

View File

@@ -0,0 +1,704 @@
diff -Naur linux-3.10.10.org/arch/arm/Kconfig linux-3.10.10/arch/arm/Kconfig
--- linux-3.10.10.org/arch/arm/Kconfig 2013-08-29 18:47:51.000000000 +0200
+++ linux-3.10.10/arch/arm/Kconfig 2013-09-02 19:37:01.000000000 +0200
@@ -217,7 +217,7 @@
config ARM_PATCH_PHYS_VIRT
bool "Patch physical to virtual translations at runtime" if EMBEDDED
- default y
+ default n
depends on !XIP_KERNEL && MMU
depends on !ARCH_REALVIEW || !SPARSEMEM
help
diff -Naur linux-3.10.10.org/arch/arm/mach-kirkwood/dreamplug-setup.c linux-3.10.10/arch/arm/mach-kirkwood/dreamplug-setup.c
--- linux-3.10.10.org/arch/arm/mach-kirkwood/dreamplug-setup.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-3.10.10/arch/arm/mach-kirkwood/dreamplug-setup.c 2013-09-02 21:29:28.000000000 +0200
@@ -0,0 +1,151 @@
+/*
+ * arch/arm/mach-kirkwood/dreamplug-setup.c
+ *
+ * Marvell DreamPlug Reference 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 <linux/kernel.h>
+#include <linux/init.h>
+#include <linux/platform_device.h>
+#include <linux/mtd/mtd.h>
+#include <linux/mtd/partitions.h>
+#include <linux/ata_platform.h>
+#include <linux/mv643xx_eth.h>
+#include <linux/gpio.h>
+#include <linux/leds.h>
+#include <linux/spi/flash.h>
+#include <linux/spi/spi.h>
+#include <asm/mach-types.h>
+#include <asm/mach/arch.h>
+#include <mach/kirkwood.h>
+#include <linux/platform_data/mmc-mvsdio.h>
+#include "common.h"
+#include "mpp.h"
+
+static const struct flash_platform_data dreamplug_spi_slave_data = {
+ .type = "mx25l1606e",
+};
+
+static struct spi_board_info __initdata dreamplug_spi_slave_info[] = {
+ {
+ .modalias = "m25p80",
+ .platform_data = &dreamplug_spi_slave_data,
+ .irq = -1,
+ .max_speed_hz = 50000000,
+ .bus_num = 0,
+ .chip_select = 0,
+ },
+};
+
+static struct mv643xx_eth_platform_data dreamplug_ge00_data = {
+ .phy_addr = MV643XX_ETH_PHY_ADDR(0),
+};
+
+static struct mv643xx_eth_platform_data dreamplug_ge01_data = {
+ .phy_addr = MV643XX_ETH_PHY_ADDR(1),
+};
+
+static struct mv_sata_platform_data dreamplug_sata_data = {
+ .n_ports = 1,
+};
+
+static struct mvsdio_platform_data dreamplug_mvsdio_data = {
+ /* unfortunately the CD signal has not been connected */
+};
+
+static struct gpio_led dreamplug_led_pins[] = {
+ {
+ .name = "dreamplug:blue:bluetooth",
+ .gpio = 47,
+ .active_low = 1,
+ },
+ {
+ .name = "dreamplug:green:wlan",
+ .gpio = 48,
+ .active_low = 1,
+ },
+ {
+ .name = "dreamplug:blue:wlanap",
+ .gpio = 49,
+ .active_low = 1,
+ },
+};
+
+static struct gpio_led_platform_data dreamplug_led_data = {
+ .leds = dreamplug_led_pins,
+ .num_leds = ARRAY_SIZE(dreamplug_led_pins),
+};
+
+static struct platform_device dreamplug_leds = {
+ .name = "leds-gpio",
+ .id = -1,
+ .dev = {
+ .platform_data = &dreamplug_led_data,
+ }
+};
+
+static unsigned int dreamplug_mpp_config[] __initdata = {
+ MPP0_SPI_SCn,
+ MPP1_SPI_MOSI,
+ MPP2_SPI_SCK,
+ MPP3_SPI_MISO,
+ MPP4_GPIO,
+ MPP5_GPO,
+ MPP7_GPO,
+ MPP18_GPO,
+ MPP19_GPO,
+ MPP47_GPIO, /* B_BLED */
+ MPP48_GPIO, /* W_GLED */
+ MPP49_GPIO, /* W_BLED */
+ 0
+};
+
+static void __init dreamplug_legacy_init(void)
+{
+ /*
+ * Basic setup. Needs to be called early.
+ */
+ kirkwood_init();
+ kirkwood_mpp_conf(dreamplug_mpp_config);
+
+ kirkwood_uart0_init();
+
+ spi_register_board_info(dreamplug_spi_slave_info,
+ ARRAY_SIZE(dreamplug_spi_slave_info));
+
+ kirkwood_spi_init();
+ kirkwood_ehci_init();
+
+ kirkwood_ge00_init(&dreamplug_ge00_data);
+ kirkwood_ge01_init(&dreamplug_ge01_data);
+ kirkwood_sata_init(&dreamplug_sata_data);
+ kirkwood_sdio_init(&dreamplug_mvsdio_data);
+
+ platform_device_register(&dreamplug_leds);
+}
+
+MACHINE_START(DREAMPLUG, "Marvell DreamPlug Reference Board")
+ /* Maintainer: Siddarth Gore <gores <at> marvell.com> */
+ .atag_offset = 0x100,
+ .init_machine = dreamplug_legacy_init,
+ .map_io = kirkwood_map_io,
+ .init_early = kirkwood_init_early,
+ .init_irq = kirkwood_init_irq,
+ .init_time = kirkwood_timer_init,
+ .restart = kirkwood_restart,
+MACHINE_END
+
+MACHINE_START(DREAMPLUG1, "Marvell DreamPlug Reference Board")
+ .atag_offset = 0x100,
+ .init_machine = dreamplug_legacy_init,
+ .map_io = kirkwood_map_io,
+ .init_early = kirkwood_init_early,
+ .init_irq = kirkwood_init_irq,
+ .init_time = kirkwood_timer_init,
+ .restart = kirkwood_restart,
+
+MACHINE_END
diff -Naur linux-3.10.10.org/arch/arm/mach-kirkwood/guruplug-setup.c linux-3.10.10/arch/arm/mach-kirkwood/guruplug-setup.c
--- linux-3.10.10.org/arch/arm/mach-kirkwood/guruplug-setup.c 2013-08-29 18:47:51.000000000 +0200
+++ linux-3.10.10/arch/arm/mach-kirkwood/guruplug-setup.c 2013-09-02 19:37:02.000000000 +0200
@@ -11,6 +11,7 @@
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/platform_device.h>
+#include <linux/mtd/mtd.h>
#include <linux/mtd/partitions.h>
#include <linux/ata_platform.h>
#include <linux/mv643xx_eth.h>
@@ -27,15 +28,16 @@
{
.name = "u-boot",
.offset = 0,
- .size = SZ_1M
+ .size = SZ_1M,
+ .mask_flags = MTD_WRITEABLE, /* read only */
}, {
.name = "uImage",
.offset = MTDPART_OFS_NXTBLK,
- .size = SZ_4M
+ .size = SZ_4M,
}, {
.name = "root",
.offset = MTDPART_OFS_NXTBLK,
- .size = MTDPART_SIZ_FULL
+ .size = MTDPART_SIZ_FULL,
},
};
diff -Naur linux-3.10.10.org/arch/arm/mach-kirkwood/iconnect-setup.c linux-3.10.10/arch/arm/mach-kirkwood/iconnect-setup.c
--- linux-3.10.10.org/arch/arm/mach-kirkwood/iconnect-setup.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-3.10.10/arch/arm/mach-kirkwood/iconnect-setup.c 2013-09-02 21:31:09.000000000 +0200
@@ -0,0 +1,214 @@
+/*
+ * arch/arm/mach-kirkwood/iconnect-setup.c
+ *
+ * Iomega iConnect Wireless Data Station 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 <linux/kernel.h>
+#include <linux/init.h>
+#include <linux/platform_device.h>
+#include <linux/mtd/mtd.h>
+#include <linux/mtd/partitions.h>
+#include <linux/ata_platform.h>
+#include <linux/mv643xx_eth.h>
+#include <linux/gpio.h>
+#include <linux/gpio_keys.h>
+#include <linux/i2c.h>
+#include <linux/input.h>
+#include <linux/leds.h>
+#include <asm/mach-types.h>
+#include <asm/mach/arch.h>
+#include <mach/kirkwood.h>
+#include "common.h"
+#include "mpp.h"
+
+static struct mtd_partition iconnect_nand_parts[] = {
+ {
+ .name = "u-boot",
+ .offset = 0,
+ .size = SZ_1M,
+ .mask_flags = MTD_WRITEABLE, /* read only */
+ }, {
+ .name = "uImage",
+ .offset = MTDPART_OFS_NXTBLK,
+ .size = 0x440000,
+ }, {
+ .name = "uInit",
+ .offset = MTDPART_OFS_NXTBLK,
+ .size = 0x440000,
+ }, {
+ .name = "root",
+ .offset = MTDPART_OFS_NXTBLK,
+ .size = MTDPART_SIZ_FULL,
+ },
+};
+
+static struct mv643xx_eth_platform_data iconnect_ge00_data = {
+ .phy_addr = MV643XX_ETH_PHY_ADDR(0xB),
+};
+
+static struct gpio_led iconnect_led_pins[] = {
+ {
+ .name = "iconnect:led_level",
+ .default_trigger = "default-on",
+ .gpio = 41,
+ .active_low = 0,
+ },
+
+ {
+ .name = "iconnect:blue:power",
+ .default_trigger = "default-on",
+ .gpio = 42,
+ .active_low = 0,
+ },
+ {
+ .name = "iconnect:red:power",
+ .default_trigger = "none",
+ .gpio = 43,
+ .active_low = 0,
+ },
+ {
+ .name = "iconnect:blue:usb_1",
+ .default_trigger = "none",
+ .gpio = 44,
+ .active_low = 0,
+ },
+ {
+ .name = "iconnect:blue:usb_2",
+ .default_trigger = "none",
+ .gpio = 45,
+ .active_low = 0,
+ },
+ {
+ .name = "iconnect:blue:usb_3",
+ .default_trigger = "none",
+ .gpio = 46,
+ .active_low = 0,
+ },
+ {
+ .name = "iconnect:blue:usb_4",
+ .default_trigger = "none",
+ .gpio = 47,
+ .active_low = 0,
+ },
+ {
+ .name = "iconnect:blue:otb",
+ .default_trigger = "none",
+ .gpio = 48,
+ .active_low = 0,
+ },
+};
+
+static struct gpio_led_platform_data iconnect_led_data = {
+ .leds = iconnect_led_pins,
+ .num_leds = ARRAY_SIZE(iconnect_led_pins),
+};
+
+static struct platform_device iconnect_leds = {
+ .name = "leds-gpio",
+ .id = -1,
+ .dev = {
+ .platform_data = &iconnect_led_data,
+ }
+};
+
+static struct gpio_keys_button iconnect_buttons[] = {
+ {
+ .code = KEY_COPY,
+ .gpio = 35,
+ .desc = "OTB Button",
+ .active_low = 1,
+ },
+ {
+ .code = KEY_RESTART,
+ .gpio = 12,
+ .desc = "Reset",
+ .active_low = 1,
+ },
+};
+
+static struct gpio_keys_platform_data iconnect_button_data = {
+ .buttons = iconnect_buttons,
+ .nbuttons = ARRAY_SIZE(iconnect_buttons),
+};
+
+static struct platform_device iconnect_button_device = {
+ .name = "gpio-keys",
+ .id = -1,
+ .num_resources = 0,
+ .dev = {
+ .platform_data = &iconnect_button_data,
+ }
+};
+
+static unsigned int iconnect_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,
+ MPP12_GPIO, /* Reset Button */
+ MPP35_GPIO, /* OTB Button */
+
+ MPP41_GPIO, /* LED Level */
+ MPP42_GPIO, /* Power LED blue */
+ MPP43_GPIO, /* Power LED red */
+ MPP44_GPIO, /* USB LED 1 */
+ MPP45_GPIO, /* USB LED 2 */
+ MPP46_GPIO, /* USB LED 3 */
+ MPP47_GPIO, /* USB LED 4 */
+ MPP48_GPIO, /* OTB LED */
+ 0
+};
+
+static struct i2c_board_info __initdata iconnect_i2c = {
+ I2C_BOARD_INFO("lm63", 0x4c),
+};
+
+static void __init iconnect_legacy_init(void)
+{
+ /*
+ * Basic setup. Needs to be called early.
+ */
+ kirkwood_init();
+ kirkwood_mpp_conf(iconnect_mpp_config);
+
+ kirkwood_nand_init(ARRAY_AND_SIZE(iconnect_nand_parts), 25);
+ kirkwood_ehci_init();
+ kirkwood_ge00_init(&iconnect_ge00_data);
+
+ kirkwood_uart0_init();
+ platform_device_register(&iconnect_leds);
+ platform_device_register(&iconnect_button_device);
+
+ kirkwood_i2c_init();
+ i2c_register_board_info(0, &iconnect_i2c,1);
+}
+
+static int __init iconnect_pci_init(void)
+{
+ if (machine_is_iconnect()) {
+ kirkwood_pcie_init(KW_PCIE0);
+ }
+ return 0;
+}
+subsys_initcall(iconnect_pci_init);
+
+MACHINE_START(ICONNECT, "Iomega iConnect Wireless Data Station")
+ /* Maintainer: Arne Fitzenreiter <arne_f@ipfire.org> */
+ .atag_offset = 0x100,
+ .init_machine = iconnect_legacy_init,
+ .map_io = kirkwood_map_io,
+ .init_early = kirkwood_init_early,
+ .init_irq = kirkwood_init_irq,
+ .init_time = kirkwood_timer_init,
+ .restart = kirkwood_restart,
+
+MACHINE_END
diff -Naur linux-3.10.10.org/arch/arm/mach-kirkwood/Kconfig linux-3.10.10/arch/arm/mach-kirkwood/Kconfig
--- linux-3.10.10.org/arch/arm/mach-kirkwood/Kconfig 2013-08-29 18:47:51.000000000 +0200
+++ linux-3.10.10/arch/arm/mach-kirkwood/Kconfig 2013-09-02 19:37:02.000000000 +0200
@@ -116,6 +116,12 @@
Say 'Y' here if you want your kernel to support the
HP t5325 Thin Client.
+config MACH_DREAMPLUG
+ bool "Marvell DreamPlug Reference Board"
+ help
+ Say 'Y' here if you want your kernel to support the
+ Marvell DreamPlug Reference Board.
+
config MACH_TS219
bool "QNAP TS-110, TS-119, TS-119P+, TS-210, TS-219, TS-219P and TS-219P+ Turbo NAS"
help
@@ -317,6 +323,18 @@
or MV6282. If you have the wrong one, the buttons will not
work.
+config MACH_ICONNECT
+ bool "Iomega iConnect Wireless Data Station"
+ help
+ Say 'Y' here if you want your kernel to support the
+ Iomega iConnect Wireless Data Station.
+
+config MACH_NAS6210
+ bool "Raidsonic ICY BOX IB-62x0"
+ help
+ Say 'Y' here if you want your kernel to support the
+ Raidsonic ICY BOX IB-62x0.
+
endmenu
endif
diff -Naur linux-3.10.10.org/arch/arm/mach-kirkwood/Makefile linux-3.10.10/arch/arm/mach-kirkwood/Makefile
--- linux-3.10.10.org/arch/arm/mach-kirkwood/Makefile 2013-08-29 18:47:51.000000000 +0200
+++ linux-3.10.10/arch/arm/mach-kirkwood/Makefile 2013-09-02 19:50:19.000000000 +0200
@@ -5,6 +5,7 @@
obj-$(CONFIG_MACH_DOCKSTAR) += dockstar-setup.o
obj-$(CONFIG_MACH_ESATA_SHEEVAPLUG) += sheevaplug-setup.o
obj-$(CONFIG_MACH_GURUPLUG) += guruplug-setup.o
+obj-$(CONFIG_MACH_DREAMPLUG) += dreamplug-setup.o
obj-$(CONFIG_MACH_INETSPACE_V2) += netspace_v2-setup.o lacie_v2-common.o
obj-$(CONFIG_MACH_MV88F6281GTW_GE) += mv88f6281gtw_ge-setup.o
obj-$(CONFIG_MACH_NET2BIG_V2) += netxbig_v2-setup.o lacie_v2-common.o
@@ -18,6 +19,8 @@
obj-$(CONFIG_MACH_T5325) += t5325-setup.o
obj-$(CONFIG_MACH_TS219) += ts219-setup.o tsx1x-common.o
obj-$(CONFIG_MACH_TS41X) += ts41x-setup.o tsx1x-common.o
+obj-$(CONFIG_MACH_ICONNECT) += iconnect-setup.o
+obj-$(CONFIG_MACH_NAS6210) += nas6210-setup.o
obj-$(CONFIG_ARCH_KIRKWOOD_DT) += board-dt.o
obj-$(CONFIG_MACH_CLOUDBOX_DT) += board-ns2.o
diff -Naur linux-3.10.10.org/arch/arm/mach-kirkwood/nas6210-setup.c linux-3.10.10/arch/arm/mach-kirkwood/nas6210-setup.c
--- linux-3.10.10.org/arch/arm/mach-kirkwood/nas6210-setup.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-3.10.10/arch/arm/mach-kirkwood/nas6210-setup.c 2013-09-02 21:32:36.000000000 +0200
@@ -0,0 +1,185 @@
+/*
+ * 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 <linux/kernel.h>
+#include <linux/init.h>
+#include <linux/platform_device.h>
+#include <linux/mtd/mtd.h>
+#include <linux/mtd/partitions.h>
+#include <linux/ata_platform.h>
+#include <linux/mv643xx_eth.h>
+#include <linux/gpio.h>
+#include <linux/gpio_keys.h>
+#include <linux/i2c.h>
+#include <linux/input.h>
+#include <linux/leds.h>
+#include <asm/mach-types.h>
+#include <asm/mach/arch.h>
+#include <mach/kirkwood.h>
+#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,
+ .mask_flags = MTD_WRITEABLE, /* read only */
+ }, {
+ .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(KW_PCIE0);
+ }
+ return 0;
+}
+subsys_initcall(nas6210_pci_init);
+
+MACHINE_START(NAS6210, "RaidSonic ICY BOX IB-NAS62x0")
+ /* Maintainer: Arne Fitzenreiter <arne_f@ipfire.org> */
+ .atag_offset = 0x00000100,
+ .init_machine = nas6210_init,
+ .map_io = kirkwood_map_io,
+ .init_early = kirkwood_init_early,
+ .init_irq = kirkwood_init_irq,
+ .init_time = kirkwood_timer_init,
+ .restart = kirkwood_restart,
+MACHINE_END
diff -Naur linux-3.10.10.org/arch/arm/tools/mach-types linux-3.10.10/arch/arm/tools/mach-types
--- linux-3.10.10.org/arch/arm/tools/mach-types 2013-08-29 18:47:51.000000000 +0200
+++ linux-3.10.10/arch/arm/tools/mach-types 2013-09-02 22:06:34.000000000 +0200
@@ -447,6 +447,7 @@
smartq5 MACH_SMARTQ5 SMARTQ5 2534
davinci_dm6467tevm MACH_DAVINCI_DM6467TEVM DAVINCI_DM6467TEVM 2548
mxt_td60 MACH_MXT_TD60 MXT_TD60 2550
+guruplug MACH_GURUPLUG GURUPLUG 2601
capc7117 MACH_CAPC7117 CAPC7117 2612
icontrol MACH_ICONTROL ICONTROL 2624
gplugd MACH_GPLUGD GPLUGD 2625
@@ -454,7 +455,7 @@
mx23evk MACH_MX23EVK MX23EVK 2629
ap4evb MACH_AP4EVB AP4EVB 2630
mityomapl138 MACH_MITYOMAPL138 MITYOMAPL138 2650
-guruplug MACH_GURUPLUG GURUPLUG 2659
+dreamplug1 MACH_DREAMPLUG1 DREAMPLUG1 2659
spear310 MACH_SPEAR310 SPEAR310 2660
spear320 MACH_SPEAR320 SPEAR320 2661
aquila MACH_AQUILA AQUILA 2676
@@ -491,6 +492,7 @@
t5325 MACH_T5325 T5325 2846
income MACH_INCOME INCOME 2849
goni MACH_GONI GONI 2862
+iconnect MACH_ICONNECT ICONNECT 2870
bv07 MACH_BV07 BV07 2882
openrd_ultimate MACH_OPENRD_ULTIMATE OPENRD_ULTIMATE 2884
devixp MACH_DEVIXP DEVIXP 2885
@@ -520,6 +522,7 @@
vpr200 MACH_VPR200 VPR200 3087
torbreck MACH_TORBRECK TORBRECK 3090
prima2_evb MACH_PRIMA2_EVB PRIMA2_EVB 3103
+nas6210 MACH_NAS6210 NAS6210 3104
paz00 MACH_PAZ00 PAZ00 3128
acmenetusfoxg20 MACH_ACMENETUSFOXG20 ACMENETUSFOXG20 3129
ag5evm MACH_AG5EVM AG5EVM 3189
@@ -544,6 +547,7 @@
nspire MACH_NSPIRE NSPIRE 3503
nokia_rm696 MACH_NOKIA_RM696 NOKIA_RM696 3522
mikrap_x168 MACH_MIKRAP_X168 MIKRAP_X168 3543
+dreamplug MACH_DREAMPLUG DREAMPLUG 3550
deto_macarm9 MACH_DETO_MACARM9 DETO_MACARM9 3568
m28evk MACH_M28EVK M28EVK 3613
kota2 MACH_KOTA2 KOTA2 3616

View File

@@ -0,0 +1,19 @@
diff -Naur linux-3.10.10.org/drivers/crypto/mv_cesa.c linux-3.10.10/drivers/crypto/mv_cesa.c
--- linux-3.10.10.org/drivers/crypto/mv_cesa.c 2013-08-29 18:47:51.000000000 +0200
+++ linux-3.10.10/drivers/crypto/mv_cesa.c 2013-09-04 13:06:35.000000000 +0200
@@ -1120,6 +1120,7 @@
else
printk(KERN_WARNING MV_CESA "Could not register sha1 driver\n");
+/*
ret = crypto_register_ahash(&mv_hmac_sha1_alg);
if (ret == 0) {
cpg->has_hmac_sha1 = 1;
@@ -1127,6 +1128,7 @@
printk(KERN_WARNING MV_CESA
"Could not register hmac-sha1 driver\n");
}
+*/
return 0;
err_unreg_ecb: