diff options
| author | kaloz <kaloz@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2008-01-04 16:18:05 +0000 | 
|---|---|---|
| committer | kaloz <kaloz@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2008-01-04 16:18:05 +0000 | 
| commit | c5eb10ed85a193982ff46197ff58d024e7061a51 (patch) | |
| tree | 9a6752029ae2b139a1fe2b1248fd056aab194e1a /target/linux/ixp4xx/patches-2.6.23/067-nas100d_fetch_mac.patch | |
| parent | ef10c590d94cd701131fbd53a41b5c8ae3a82df5 (diff) | |
use the newer mac handling patches from nslu2-linux
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@10116 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux/ixp4xx/patches-2.6.23/067-nas100d_fetch_mac.patch')
| -rw-r--r-- | target/linux/ixp4xx/patches-2.6.23/067-nas100d_fetch_mac.patch | 56 | 
1 files changed, 56 insertions, 0 deletions
diff --git a/target/linux/ixp4xx/patches-2.6.23/067-nas100d_fetch_mac.patch b/target/linux/ixp4xx/patches-2.6.23/067-nas100d_fetch_mac.patch new file mode 100644 index 000000000..fdaaffdd4 --- /dev/null +++ b/target/linux/ixp4xx/patches-2.6.23/067-nas100d_fetch_mac.patch @@ -0,0 +1,56 @@ +Index: linux-2.6.23.11-armeb/arch/arm/mach-ixp4xx/nas100d-setup.c +=================================================================== +--- linux-2.6.23.11-armeb.orig/arch/arm/mach-ixp4xx/nas100d-setup.c	2007-12-29 23:19:07.000000000 +1030 ++++ linux-2.6.23.11-armeb/arch/arm/mach-ixp4xx/nas100d-setup.c	2007-12-29 23:24:06.000000000 +1030 +@@ -21,6 +21,7 @@ + #include <asm/mach-types.h> + #include <asm/mach/arch.h> + #include <asm/mach/flash.h> ++#include <asm/io.h> +  + static struct flash_platform_data nas100d_flash_data = { + 	.map_name		= "cfi_probe", +@@ -164,6 +165,9 @@ +  + static void __init nas100d_init(void) + { ++	uint8_t __iomem *f; ++	int i; ++ + 	ixp4xx_sys_init(); +  + 	/* gpio 14 and 15 are _not_ clocks */ +@@ -183,6 +187,33 @@ + 	(void)platform_device_register(&nas100d_uart); +  + 	platform_add_devices(nas100d_devices, ARRAY_SIZE(nas100d_devices)); ++ ++ ++	/* ++	 * Map in a portion of the flash and read the MAC address. ++	 * Since it is stored in BE in the flash itself, we need to ++	 * byteswap it if we're in LE mode. ++	 */ ++	if ((f = ioremap(IXP4XX_EXP_BUS_BASE(0), 0x1000000))) { ++#ifdef __ARMEB__ ++		for (i = 0; i < 6; i++) { ++			nas100d_plat_eth[0].hwaddr[i] = readb(f + 0xFC0FD8 + i); ++		} ++#else ++		nas100d_plat_eth[0].hwaddr[0] = readb(f + 0xFC0FD8 + 3); ++		nas100d_plat_eth[0].hwaddr[1] = readb(f + 0xFC0FD8 + 2); ++		nas100d_plat_eth[0].hwaddr[2] = readb(f + 0xFC0FD8 + 1); ++		nas100d_plat_eth[0].hwaddr[3] = readb(f + 0xFC0FD8 + 0); ++		nas100d_plat_eth[0].hwaddr[4] = readb(f + 0xFC0FD8 + 7); ++		nas100d_plat_eth[0].hwaddr[5] = readb(f + 0xFC0FD8 + 6); ++#endif ++		iounmap(f); ++	} ++	printk(KERN_INFO "NAS100D: Using MAC address %.2x:%.2x:%.2x:%.2x:%.2x:%.2x for port 0\n", ++	       nas100d_plat_eth[0].hwaddr[0], nas100d_plat_eth[0].hwaddr[1], ++	       nas100d_plat_eth[0].hwaddr[2], nas100d_plat_eth[0].hwaddr[3], ++	       nas100d_plat_eth[0].hwaddr[4], nas100d_plat_eth[0].hwaddr[5]); ++ + } +  + MACHINE_START(NAS100D, "Iomega NAS 100d")  | 
