Author: gordon-guest Date: Sat Feb 2 09:46:12 2008 New Revision: 10372 Log: arm/ixp4xx: Update Ethernet driver and support. The driver is now loaded by udev automatically.
Modified: dists/sid/linux-2.6/debian/patches/features/arm/ixp4xx-net-drivers.patch dists/sid/linux-2.6/debian/patches/features/arm/ixp4xx-net-headers.patch dists/sid/linux-2.6/debian/patches/features/arm/nas100d-net-driver-support.patch dists/sid/linux-2.6/debian/patches/features/arm/nslu2-net-driver-support.patch Modified: dists/sid/linux-2.6/debian/patches/features/arm/ixp4xx-net-drivers.patch ============================================================================== --- dists/sid/linux-2.6/debian/patches/features/arm/ixp4xx-net-drivers.patch (original) +++ dists/sid/linux-2.6/debian/patches/features/arm/ixp4xx-net-drivers.patch Sat Feb 2 09:46:12 2008 @@ -27,10 +27,10 @@ +obj-$(CONFIG_IXP4XX_ETH) += ixp4xx_eth.o diff --git a/drivers/net/arm/ixp4xx_eth.c b/drivers/net/arm/ixp4xx_eth.c new file mode 100644 -index 0000000..b654060 +index 0000000..0ee490b --- /dev/null +++ b/drivers/net/arm/ixp4xx_eth.c -@@ -0,0 +1,1261 @@ +@@ -0,0 +1,1262 @@ +/* + * Intel IXP4xx Ethernet driver for Linux + * @@ -1290,5 +1290,6 @@ +MODULE_AUTHOR("Krzysztof Halasa"); +MODULE_DESCRIPTION("Intel IXP4xx Ethernet driver"); +MODULE_LICENSE("GPL v2"); ++MODULE_ALIAS("platform:ixp4xx_eth"); +module_init(eth_init_module); +module_exit(eth_cleanup_module); Modified: dists/sid/linux-2.6/debian/patches/features/arm/ixp4xx-net-headers.patch ============================================================================== --- dists/sid/linux-2.6/debian/patches/features/arm/ixp4xx-net-headers.patch (original) +++ dists/sid/linux-2.6/debian/patches/features/arm/ixp4xx-net-headers.patch Sat Feb 2 09:46:12 2008 @@ -1,20 +1,10 @@ diff --git a/include/asm-arm/arch-ixp4xx/platform.h b/include/asm-arm/arch-ixp4xx/platform.h -index 2a44d3d..695b9c4 100644 +index 2a44d3d..aee915f 100644 --- a/include/asm-arm/arch-ixp4xx/platform.h +++ b/include/asm-arm/arch-ixp4xx/platform.h -@@ -77,8 +77,7 @@ extern unsigned long ixp4xx_exp_bus_size; +@@ -102,6 +102,27 @@ struct ixp4xx_pata_data { - /* - * The IXP4xx chips do not have an I2C unit, so GPIO lines are just -- * used to -- * Used as platform_data to provide GPIO pin information to the ixp42x -+ * used as platform_data to provide GPIO pin information to the ixp42x - * I2C driver. - */ - struct ixp4xx_i2c_pins { -@@ -86,6 +85,27 @@ struct ixp4xx_i2c_pins { - unsigned long scl_pin; - }; + struct sys_timer; +#define IXP4XX_ETH_NPEA 0x00 +#define IXP4XX_ETH_NPEB 0x10 @@ -38,7 +28,5 @@ +}; + /* - * This structure provide a means for the board setup code - * to give information to th pata_ixp4xx driver. It is - - + * Frequency of clock used for primary clocksource + */ Modified: dists/sid/linux-2.6/debian/patches/features/arm/nas100d-net-driver-support.patch ============================================================================== --- dists/sid/linux-2.6/debian/patches/features/arm/nas100d-net-driver-support.patch (original) +++ dists/sid/linux-2.6/debian/patches/features/arm/nas100d-net-driver-support.patch Sat Feb 2 09:46:12 2008 @@ -1,8 +1,16 @@ diff --git a/arch/arm/mach-ixp4xx/nas100d-setup.c b/arch/arm/mach-ixp4xx/nas100d-setup.c -index 54d884f..39d7d90 100644 +index 54d884f..2cbcd41 100644 --- a/arch/arm/mach-ixp4xx/nas100d-setup.c +++ b/arch/arm/mach-ixp4xx/nas100d-setup.c -@@ -21,6 +21,7 @@ +@@ -12,6 +12,7 @@ + * + */ + ++#include <linux/if_ether.h> + #include <linux/kernel.h> + #include <linux/serial.h> + #include <linux/serial_8250.h> +@@ -21,6 +22,7 @@ #include <asm/mach-types.h> #include <asm/mach/arch.h> #include <asm/mach/flash.h> @@ -10,7 +18,7 @@ static struct flash_platform_data nas100d_flash_data = { .map_name = "cfi_probe", -@@ -125,12 +126,30 @@ static struct platform_device nas100d_uart = { +@@ -125,12 +127,30 @@ static struct platform_device nas100d_uart = { .resource = nas100d_uart_resources, }; @@ -41,47 +49,39 @@ }; static void nas100d_power_off(void) -@@ -146,6 +165,9 @@ static void nas100d_power_off(void) +@@ -146,6 +166,10 @@ static void nas100d_power_off(void) static void __init nas100d_init(void) { ++ DECLARE_MAC_BUF(mac_buf); + uint8_t __iomem *f; + int i; + ixp4xx_sys_init(); /* gpio 14 and 15 are _not_ clocks */ -@@ -165,6 +187,33 @@ static void __init nas100d_init(void) +@@ -165,6 +189,24 @@ static void __init nas100d_init(void) (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))) { ++ f = ioremap(IXP4XX_EXP_BUS_BASE(0), 0x1000000); ++ if (f) { ++ for (i = 0; i < 6; i++) +#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); ++ nas100d_plat_eth[0].hwaddr[i] = readb(f + 0xFC0FD8 + (i^3)); +#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]); -+ ++ printk(KERN_INFO "NAS100D: Using MAC address %s for port 0\n", ++ print_mac(mac_buf, nas100d_plat_eth[0].hwaddr)); } MACHINE_START(NAS100D, "Iomega NAS 100d") Modified: dists/sid/linux-2.6/debian/patches/features/arm/nslu2-net-driver-support.patch ============================================================================== --- dists/sid/linux-2.6/debian/patches/features/arm/nslu2-net-driver-support.patch (original) +++ dists/sid/linux-2.6/debian/patches/features/arm/nslu2-net-driver-support.patch Sat Feb 2 09:46:12 2008 @@ -1,8 +1,16 @@ diff --git a/arch/arm/mach-ixp4xx/nslu2-setup.c b/arch/arm/mach-ixp4xx/nslu2-setup.c -index 77277d2..f5e9cf7 100644 +index 77277d2..fcd4fa6 100644 --- a/arch/arm/mach-ixp4xx/nslu2-setup.c +++ b/arch/arm/mach-ixp4xx/nslu2-setup.c -@@ -24,6 +24,7 @@ +@@ -14,6 +14,7 @@ + * Changed to conform to new style __init ixdp425 kas11 10/22/04 + */ + ++#include <linux/if_ether.h> + #include <linux/kernel.h> + #include <linux/serial.h> + #include <linux/serial_8250.h> +@@ -24,6 +25,7 @@ #include <asm/mach/arch.h> #include <asm/mach/flash.h> #include <asm/mach/time.h> @@ -10,7 +18,7 @@ static struct flash_platform_data nslu2_flash_data = { .map_name = "cfi_probe", -@@ -140,6 +141,23 @@ static struct platform_device nslu2_uart = { +@@ -140,6 +142,23 @@ static struct platform_device nslu2_uart = { .resource = nslu2_uart_resources, }; @@ -34,7 +42,7 @@ static struct platform_device *nslu2_devices[] __initdata = { &nslu2_i2c_gpio, &nslu2_flash, -@@ -147,6 +165,7 @@ static struct platform_device *nslu2_devices[] __initdata = { +@@ -147,6 +166,7 @@ static struct platform_device *nslu2_devices[] __initdata = { #ifdef CONFIG_LEDS_IXP4XX &nslu2_leds, #endif @@ -42,46 +50,39 @@ }; static void nslu2_power_off(void) -@@ -175,6 +194,9 @@ static struct sys_timer nslu2_timer = { +@@ -175,6 +195,10 @@ static struct sys_timer nslu2_timer = { static void __init nslu2_init(void) { ++ DECLARE_MAC_BUF(mac_buf); + uint8_t __iomem *f; + int i; + ixp4xx_sys_init(); nslu2_flash_resource.start = IXP4XX_EXP_BUS_BASE(0); -@@ -191,6 +213,33 @@ static void __init nslu2_init(void) +@@ -191,6 +215,25 @@ static void __init nslu2_init(void) (void)platform_device_register(&nslu2_uart); platform_add_devices(nslu2_devices, ARRAY_SIZE(nslu2_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), 0x40000))) { ++ f = ioremap(IXP4XX_EXP_BUS_BASE(0), 0x40000); ++ if (f) { ++ for (i = 0; i < 6; i++) +#ifdef __ARMEB__ -+ for (i = 0; i < 6; i++) { + nslu2_plat_eth[0].hwaddr[i] = readb(f + 0x3FFB0 + i); -+ } +#else -+ nslu2_plat_eth[0].hwaddr[0] = readb(f + 0x3FFB0 + 3); -+ nslu2_plat_eth[0].hwaddr[1] = readb(f + 0x3FFB0 + 2); -+ nslu2_plat_eth[0].hwaddr[2] = readb(f + 0x3FFB0 + 1); -+ nslu2_plat_eth[0].hwaddr[3] = readb(f + 0x3FFB0 + 0); -+ nslu2_plat_eth[0].hwaddr[4] = readb(f + 0x3FFB0 + 7); -+ nslu2_plat_eth[0].hwaddr[5] = readb(f + 0x3FFB0 + 6); ++ nslu2_plat_eth[0].hwaddr[i] = readb(f + 0x3FFB0 + (i^3)); +#endif + iounmap(f); + } -+ printk(KERN_INFO "NSLU2: Using MAC address %.2x:%.2x:%.2x:%.2x:%.2x:%.2x for port 0\n", -+ nslu2_plat_eth[0].hwaddr[0], nslu2_plat_eth[0].hwaddr[1], -+ nslu2_plat_eth[0].hwaddr[2], nslu2_plat_eth[0].hwaddr[3], -+ nslu2_plat_eth[0].hwaddr[4], nslu2_plat_eth[0].hwaddr[5]); ++ printk(KERN_INFO "NSLU2: Using MAC address %s for port 0\n", ++ print_mac(mac_buf, nslu2_plat_eth[0].hwaddr)); + } _______________________________________________ Kernel-svn-changes mailing list Kernel-svn-changes@lists.alioth.debian.org http://lists.alioth.debian.org/mailman/listinfo/kernel-svn-changes