diff options
Diffstat (limited to 'target/linux')
5 files changed, 55 insertions, 10 deletions
diff --git a/target/linux/adm5120/files/arch/mips/adm5120/boards/edimax.c b/target/linux/adm5120/files/arch/mips/adm5120/boards/edimax.c index 6b7e7e696..e53e83613 100644 --- a/target/linux/adm5120/files/arch/mips/adm5120/boards/edimax.c +++ b/target/linux/adm5120/files/arch/mips/adm5120/boards/edimax.c @@ -30,9 +30,14 @@ #include <asm/gpio.h> #include <adm5120_board.h> +#include <adm5120_irq.h> #include <adm5120_platform.h> -static struct mtd_partition br6104k_partitions[] = { +static struct adm5120_pci_irq br61xx_pci_irqs[] __initdata = { + PCIIRQ(2, 0, 1, ADM5120_IRQ_PCI0), +}; + +static struct mtd_partition br61xx_partitions[] = { { .name = "admboot", .offset = 0, @@ -54,31 +59,48 @@ static struct platform_device *br6104k_devices[] __initdata = { &adm5120_hcd_device, }; -static void __init br6104k_setup(void) { +static struct platform_device *br61x4wg_devices[] __initdata = { + &adm5120_flash0_device, +}; + +static void __init br61xx_setup(void) { /* setup data for flash0 device */ - adm5120_flash0_data.nr_parts = ARRAY_SIZE(br6104k_partitions); - adm5120_flash0_data.parts = br6104k_partitions; + adm5120_flash0_data.nr_parts = ARRAY_SIZE(br61xx_partitions); + adm5120_flash0_data.parts = br61xx_partitions; /* TODO: setup mac addresses, if possible */ } -unsigned char br6104k_vlans[6] = { +unsigned char br61xx_vlans[6] = { 0x41, 0x42, 0x44, 0x48, 0x50, 0x00 }; static struct adm5120_board br6104k_board __initdata = { .mach_type = MACH_ADM5120_BR6104K, - .name = "Edimax BR-6104K", - .board_setup = br6104k_setup, + .name = "Edimax BR-6104K/6104KP", + .board_setup = br61xx_setup, .eth_num_ports = 5, - .eth_vlans = br6104k_vlans, + .eth_vlans = br61xx_vlans, .num_devices = ARRAY_SIZE(br6104k_devices), .devices = br6104k_devices, }; +static struct adm5120_board br61x4wg_board __initdata = { + .mach_type = MACH_ADM5120_BR61x4WG, + .name = "Edimax BR-6104WG/6114WG", + .board_setup = br61xx_setup, + .eth_num_ports = 5, + .eth_vlans = br61xx_vlans, + .num_devices = ARRAY_SIZE(br61x4wg_devices), + .devices = br61x4wg_devices, + .pci_nr_irqs = ARRAY_SIZE(br61xx_pci_irqs), + .pci_irq_map = br61xx_pci_irqs, +}; + static int __init register_boards(void) { adm5120_board_register(&br6104k_board); + adm5120_board_register(&br61x4wg_board); return 0; } diff --git a/target/linux/adm5120/files/arch/mips/adm5120/prom.c b/target/linux/adm5120/files/arch/mips/adm5120/prom.c index 2f6fb918c..786668b8d 100644 --- a/target/linux/adm5120/files/arch/mips/adm5120/prom.c +++ b/target/linux/adm5120/files/arch/mips/adm5120/prom.c @@ -62,6 +62,7 @@ static struct board_desc common_boards[] __initdata = { /* Edimax boards */ DEFBOARD("BR-6104K", MACH_ADM5120_BR6104K), DEFBOARD("BR-6104KP", MACH_ADM5120_BR6104K), + DEFBOARD("BR-6104WG", MACH_ADM5120_BR61x4WG), /* Infineon boards */ DEFBOARD("EASY 5120P-ATA", MACH_ADM5120_EASY5120PATA), DEFBOARD("EASY 5120-RT", MACH_ADM5120_EASY5120RT), diff --git a/target/linux/adm5120/image/lzma-loader/src/config.h b/target/linux/adm5120/image/lzma-loader/src/config.h index 310189c6d..74ae9afa2 100644 --- a/target/linux/adm5120/image/lzma-loader/src/config.h +++ b/target/linux/adm5120/image/lzma-loader/src/config.h @@ -69,6 +69,11 @@ # define CONFIG_FLASH_SIZE FLASH_2M #endif +#if defined(CONFIG_BOARD_BR6104WG) +# define CONFIG_BOARD_NAME "BR-6104WG" +# define CONFIG_FLASH_SIZE FLASH_2M +#endif + /* * Infineon boards */ diff --git a/target/linux/adm5120/image/router_le.mk b/target/linux/adm5120/image/router_le.mk index f91097159..ec7673f6e 100644 --- a/target/linux/adm5120/image/router_le.mk +++ b/target/linux/adm5120/image/router_le.mk @@ -204,6 +204,21 @@ define Image/Build/Board/BR6104K/Initramfs endef # +# Edimax BR-6104WG +# +define Image/Build/Board/BR6104WG + $(call Image/Build/Edimax,$(1),br-6104wg) +endef + +define Image/Build/Board/BR6104WG/squashfs + $(call Image/Build/Board/BR6104WG,squashfs) +endef + +define Image/Build/Board/BR6104WG/Initramfs + $(call Image/Build/LZMAKernel/Admboot,br-6104wg,gz) +endef + +# # Infineon EASY 83000 # define Image/Build/Board/EASY83000 @@ -254,6 +269,7 @@ endef define Image/Build/Group/Edimax $(call Image/Build/Board/BR6104K/$(1)) + $(call Image/Build/Board/BR6104WG/$(1)) endef define Image/Build/Group/Infineon diff --git a/target/linux/adm5120/patches-2.6.23/001-adm5120.patch b/target/linux/adm5120/patches-2.6.23/001-adm5120.patch index b197b3f65..c8586eb91 100644 --- a/target/linux/adm5120/patches-2.6.23/001-adm5120.patch +++ b/target/linux/adm5120/patches-2.6.23/001-adm5120.patch @@ -54,7 +54,7 @@ Index: linux-2.6.23/include/asm-mips/bootinfo.h =================================================================== --- linux-2.6.23.orig/include/asm-mips/bootinfo.h +++ linux-2.6.23/include/asm-mips/bootinfo.h -@@ -208,6 +208,58 @@ +@@ -208,6 +208,59 @@ #define MACH_GROUP_WINDRIVER 28 /* Windriver boards */ #define MACH_WRPPMC 1 @@ -107,8 +107,9 @@ Index: linux-2.6.23/include/asm-mips/bootinfo.h +#define MACH_ADM5120_EASY5120RT 43 /* Infineon EASY 5120-RT */ +#define MACH_ADM5120_EASY5120WVOIP 44 /* Infineon EASY 5120-WVoIP */ +#define MACH_ADM5120_EASY83000 45 /* Infineon EASY-83000 */ -+#define MACH_ADM5120_BR6104K 46 /* Edimax BR-6104K */ ++#define MACH_ADM5120_BR6104K 46 /* Edimax BR-6104K/BR-6104KP */ +#define MACH_ADM5120_RB_192 47 /* Mikrotik RouterBOARD 192 */ ++#define MACH_ADM5120_BR61x4WG 48 /* Edimax BR-6104Wg/BR-6114WG */ + #define CL_SIZE COMMAND_LINE_SIZE |