ok, got some patches ready to hopefully get your wpn824n supported in trunk. i also ran a successful build, so now its up to you to test if it works. at best by just loading it into ram in u-boot and see how it goes. no warranty.
so, here is the patch:
Index: target/linux/ar71xx/config-2.6.37
===================================================================
--- target/linux/ar71xx/config-2.6.37 (Revision 27279)
+++ target/linux/ar71xx/config-2.6.37 (Arbeitskopie)
@@ -45,6 +45,7 @@
CONFIG_AR71XX_MACH_WNDR3700=y
CONFIG_AR71XX_MACH_WNR2000=y
CONFIG_AR71XX_MACH_WP543=y
+CONFIG_AR71XX_MACH_WPN824N=y
CONFIG_AR71XX_MACH_WRT160NL=y
CONFIG_AR71XX_MACH_WRT400N=y
CONFIG_AR71XX_MACH_WZR_HP_AG300H=y
Index: target/linux/ar71xx/config-2.6.38
===================================================================
--- target/linux/ar71xx/config-2.6.38 (Revision 27279)
+++ target/linux/ar71xx/config-2.6.38 (Arbeitskopie)
@@ -45,6 +45,7 @@
CONFIG_AR71XX_MACH_WNDR3700=y
CONFIG_AR71XX_MACH_WNR2000=y
CONFIG_AR71XX_MACH_WP543=y
+CONFIG_AR71XX_MACH_WPN824N=y
CONFIG_AR71XX_MACH_WRT160NL=y
CONFIG_AR71XX_MACH_WRT400N=y
CONFIG_AR71XX_MACH_WZR_HP_G300NH=y
Index: target/linux/ar71xx/files/arch/mips/ar71xx/Makefile
===================================================================
--- target/linux/ar71xx/files/arch/mips/ar71xx/Makefile (Revision 27279)
+++ target/linux/ar71xx/files/arch/mips/ar71xx/Makefile (Arbeitskopie)
@@ -59,6 +59,7 @@
obj-$(CONFIG_AR71XX_MACH_UBNT) += mach-ubnt.o
obj-$(CONFIG_AR71XX_MACH_WNDR3700) += mach-wndr3700.o
obj-$(CONFIG_AR71XX_MACH_WNR2000) += mach-wnr2000.o
+obj-$(CONFIG_AR71XX_MACH_WPN824N) += mach-wpn824n.o
obj-$(CONFIG_AR71XX_MACH_WP543) += mach-wp543.o
obj-$(CONFIG_AR71XX_MACH_WRT160NL) += mach-wrt160nl.o
obj-$(CONFIG_AR71XX_MACH_WRT400N) += mach-wrt400n.o
Index: target/linux/ar71xx/files/arch/mips/ar71xx/machtype.h
===================================================================
--- target/linux/ar71xx/files/arch/mips/ar71xx/machtype.h (Revision 27279)
+++ target/linux/ar71xx/files/arch/mips/ar71xx/machtype.h (Arbeitskopie)
@@ -59,6 +59,7 @@
AR71XX_MACH_WNDR3700, /* NETGEAR WNDR3700 */
AR71XX_MACH_WNDR3700V2, /* NETGEAR WNDR3700v2 */
AR71XX_MACH_WNR2000, /* NETGEAR WNR2000 */
+ AR71XX_MACH_WPN824N, /* NETGEAR WPN824N */
AR71XX_MACH_WP543, /* Compex WP543 */
AR71XX_MACH_WRT160NL, /* Linksys WRT160NL */
AR71XX_MACH_WRT400N, /* Linksys WRT400N */
Index: target/linux/ar71xx/files/arch/mips/ar71xx/Kconfig
===================================================================
--- target/linux/ar71xx/files/arch/mips/ar71xx/Kconfig (Revision 27279)
+++ target/linux/ar71xx/files/arch/mips/ar71xx/Kconfig (Arbeitskopie)
@@ -216,6 +216,15 @@
select AR71XX_DEV_LEDS_GPIO
default n
+config AR71XX_MACH_WPN824N
+ bool "NETGEAR WPN824N board support"
+ select SOC_AR724X
+ select AR71XX_DEV_M25P80
+ select AR71XX_DEV_AP91_PCI if PCI
+ select AR71XX_DEV_GPIO_BUTTONS
+ select AR71XX_DEV_LEDS_GPIO
+ default n
+
config AR71XX_MACH_MZK_W04NU
bool "Planex MZK-W04NU board support"
select SOC_AR913X
Index: target/linux/ar71xx/files/arch/mips/ar71xx/mach-wpn824n.c
===================================================================
--- target/linux/ar71xx/files/arch/mips/ar71xx/mach-wpn824n.c (Revision 0)
+++ target/linux/ar71xx/files/arch/mips/ar71xx/mach-wpn824n.c (Revision 0)
@@ -0,0 +1,164 @@
+/*
+ * NETGEAR WPN824N board support
+ *
+ * Copyright (C) 2009-2010 Gabor Juhos <juhosg@openwrt.org>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 as published
+ * by the Free Software Foundation.
+ */
+
+#include <linux/mtd/mtd.h>
+#include <linux/mtd/partitions.h>
+
+#include <asm/mach-ar71xx/ar71xx.h>
+
+#include "machtype.h"
+#include "devices.h"
+#include "dev-m25p80.h"
+#include "dev-ap91-pci.h"
+#include "dev-gpio-buttons.h"
+#include "dev-leds-gpio.h"
+
+#define WPN824N_GPIO_LED_TEST 10 /* amber */
+#define WPN824N_GPIO_LED_POWER 0 /* green */
+#define WPN824N_GPIO_LED_STATUS 1
+
+#define WPN824N_GPIO_BTN_PUSH 6
+#define WPN824N_GPIO_BTN_RESET 7
+#define WPN824N_GPIO_BTN_WLAN 8
+
+#define WPN824N_KEYS_POLL_INTERVAL 100 /* msecs */
+#define WPN824N_KEYS_DEBOUNCE_INTERVAL (3 * WPN824N_KEYS_POLL_INTERVAL)
+
+#ifdef CONFIG_MTD_PARTITIONS
+static struct mtd_partition wpn824n_partitions[] = {
+ {
+ .name = "u-boot",
+ .offset = 0,
+ .size = 0x040000,
+ .mask_flags = MTD_WRITEABLE,
+ }, {
+ .name = "u-boot-env",
+ .offset = 0x040000,
+ .size = 0x010000,
+ }, {
+ .name = "rootfs",
+ .offset = 0x050000,
+ .size = 0x350000,
+ }, {
+ .name = "config",
+ .offset = 0x3a0000,
+ .size = 0x010000,
+ }, {
+ .name = "language_table",
+ .offset = 0x3b0000,
+ .size = 0x020000,
+ }, {
+ .name = "pot",
+ .offset = 0x3d0000,
+ .size = 0x010000,
+ }, {
+ .name = "traffic_meter",
+ .offset = 0x3e0000,
+ .size = 0x010000,
+ }, {
+ .name = "art",
+ .offset = 0x3f0000,
+ .size = 0x010000,
+ .mask_flags = MTD_WRITEABLE,
+ }, {
+ .name = "mount_fs",
+ .offset = 0x050040,
+ .size = 0x34ffc0,
+ }
+};
+#endif /* CONFIG_MTD_PARTITIONS */
+
+static struct flash_platform_data wpn824n_flash_data = {
+#ifdef CONFIG_MTD_PARTITIONS
+ .parts = wpn824n_partitions,
+ .nr_parts = ARRAY_SIZE(wpn824n_partitions),
+#endif
+};
+
+static struct gpio_led wpn824n_leds_gpio[] __initdata = {
+ {
+ .name = "wpn824nd:green:power",
+ .gpio = WPN824N_GPIO_LED_POWER,
+ .active_low = 1,
+ }, {
+ .name = "wpn824nd:green:status",
+ .gpio = WPN824N_GPIO_LED_STATUS,
+ .active_low = 1,
+ }, {
+ .name = "wpn824n:amber:test",
+ .gpio = WPN824N_GPIO_LED_TEST,
+ .active_low = 1,
+ }
+};
+
+static struct gpio_keys_button wpn824n_gpio_keys[] __initdata = {
+ {
+ .desc = "reset",
+ .type = EV_KEY,
+ .code = KEY_RESTART,
+ .debounce_interval = WPN824N_KEYS_DEBOUNCE_INTERVAL,
+ .gpio = WPN824N_GPIO_BTN_RESET,
+ .active_low = 1,
+ }, {
+ .desc = "wps",
+ .type = EV_KEY,
+ .code = KEY_WPS_BUTTON,
+ .debounce_interval = WPN824N_KEYS_DEBOUNCE_INTERVAL,
+ .gpio = WPN824N_GPIO_BTN_PUSH,
+ .active_low = 1,
+ }, {
+ .desc = "wifi",
+ .type = EV_KEY,
+ .code = BTN_2,
+ .debounce_interval = WPN824N_KEYS_DEBOUNCE_INTERVAL,
+ .gpio = WPN824N_GPIO_BTN_WLAN,
+ .active_low = 1,
+ }
+};
+
+static void __init wpn824n_setup(void)
+{
+ u8 *mac = (u8 *) KSEG1ADDR(0x9f3f0000);
+ u8 *ee = (u8 *) KSEG1ADDR(0xbfff1000);
+
+ ar71xx_add_device_m25p80(&wpn824n_flash_data);
+
+ ar71xx_add_device_leds_gpio(-1, ARRAY_SIZE(wpn824n_leds_gpio),
+ wpn824n_leds_gpio);
+
+ ar71xx_register_gpio_keys_polled(-1, WPN824N_KEYS_POLL_INTERVAL,
+ ARRAY_SIZE(wpn824n_gpio_keys),
+ wpn824n_gpio_keys);
+
+ ar71xx_eth1_data.has_ar7240_switch = 1;
+ ar71xx_init_mac(ar71xx_eth0_data.mac_addr, mac, 0);
+ ar71xx_init_mac(ar71xx_eth1_data.mac_addr, mac, 1);
+
+ /* WAN port */
+ ar71xx_eth0_data.phy_if_mode = PHY_INTERFACE_MODE_RMII;
+ ar71xx_eth0_data.speed = SPEED_100;
+ ar71xx_eth0_data.duplex = DUPLEX_FULL;
+ ar71xx_eth0_data.phy_mask = BIT(4);
+
+ /* LAN ports */
+ ar71xx_eth1_data.phy_if_mode = PHY_INTERFACE_MODE_RMII;
+ ar71xx_eth1_data.speed = SPEED_1000;
+ ar71xx_eth1_data.duplex = DUPLEX_FULL;
+
+ ar71xx_add_device_mdio(0x0);
+ ar71xx_add_device_eth(1);
+ ar71xx_add_device_eth(0);
+
+ ap91_pci_setup_wmac_led_pin(1);
+
+ ap91_pci_init(ee, mac);
+}
+MIPS_MACHINE(AR71XX_MACH_WPN824N, "WPN824N", "NETGEAR WPN824N",
+ wpn824n_setup);
Index: target/linux/ar71xx/image/Makefile
===================================================================
--- target/linux/ar71xx/image/Makefile (Revision 27279)
+++ target/linux/ar71xx/image/Makefile (Arbeitskopie)
@@ -753,6 +753,12 @@
$(call Image/Build/Template/$(fs_64k)/$(1),Netgear,wndr3700v2,$(wndr3700v2_cmdline),wndr3700v2_mtdlayout,3701,WNDR3700v2,"",-H 29763654+16+64)
endef
+wpn824n_cmdline=board=WPN824N console=ttyS0,115200
+wpn824n_mtdlayout=mtdparts=ar7240-nor0:256k(u-boot),64k(u-boot-env),3392k(rootfs),64k(config),128k(language_table),64k(pot),64k(traffic_meter),64k(ART),3473344@327744(mount_fs)
+define Image/Build/Profile/WPN824N
+ $(call Image/Build/Template/$(fs_64k)/$(1),Netgear,wpn824n,$(wpn824n_cmdline),wpn824n_mtdlayout,1100,WPN824N,"" NA,)
+endef
+
ap96_cmdline=board=AP96 console=ttyS0,115200
define Image/Build/Profile/AP96
$(call Image/Build/Template/$(fs_64k)/$(1),AP83,ap96,$(ap96_cmdline))
Index: target/linux/ar71xx/generic/profiles/netgear.mk
===================================================================
--- target/linux/ar71xx/generic/profiles/netgear.mk (Revision 27279)
+++ target/linux/ar71xx/generic/profiles/netgear.mk (Arbeitskopie)
@@ -17,3 +17,15 @@
endef
$(eval $(call Profile,WNDR3700))
+
+define Profile/WPN824N
+ NAME:=NETGEAR WPN824N
+ PACKAGES:=kmod-ath9k wpad-mini
+endef
+
+define Profile/WPN824N/Description
+ Package set optimized for the NETGEAR WPN824N
+endef
+
+$(eval $(call Profile,WPN824N))
+