SysACE driver and Ethernet support? - mainline Linux 2.6.10 and Xilinx ML310
From: Juliana Su <hidden>
Date: 2008-10-07 15:52:13
Hi All, I finally got PCI support on my Xilinx ML310 with a mainline Linux 2.6.10 kernel and gcc-3.4.5-glibc-2.3.6 (with the help of the awesome people at UNCC). Now, I'm trying to get Xilinx SystemACE device driver support and Ethernet working. Unfortunately, I do not know much about adding support for a driver that does not currently exist in the kernel. Does anybody know if it would be possible to get SysACE driver support in 2.6.10? Downloading an ELF file onto a board using a JTAG cable is slow and inconvenient... My attempt at adding SysACE driver support involved adding in drivers/block/xsysace.c and linux/platform_device.h (files pulled from mainline Linux 2.6.24) and editing drivers/block/Kconfig and drivers/block/Makefile. The kernel failed to compile, however, and spit out these errors: In file included from drivers/block/xsysace.c:93: include/linux/platform_device.h:16: error: redefinition of `struct platform_device' include/linux/platform_device.h:39: error: conflicting types for 'platform_device_register_simple' include/linux/device.h:387: error: previous declaration of 'platform_device_register_simple' was here include/linux/platform_device.h:39: error: conflicting types for 'platform_device_register_simple' include/linux/device.h:387: error: previous declaration of 'platform_device_register_simple' was here include/linux/platform_device.h:52: error: syntax error before "pm_message_t" include/linux/platform_device.h:52: warning: function declaration isn't a prototype include/linux/platform_device.h:53: error: syntax error before "pm_message_t" include/linux/platform_device.h:53: warning: function declaration isn't a prototype drivers/block/xsysace.c: In function `ace_fsm_yieldirq': drivers/block/xsysace.c:461: error: `NO_IRQ' undeclared (first use in this function) drivers/block/xsysace.c:461: error: (Each undeclared identifier is reported only once drivers/block/xsysace.c:461: error: for each function it appears in.) drivers/block/xsysace.c: In function `ace_fsm_dostate': drivers/block/xsysace.c:723: error: too many arguments to function `end_that_request_last' drivers/block/xsysace.c: At top level: drivers/block/xsysace.c:931: error: unknown field `getgeo' specified in initializer drivers/block/xsysace.c:931: warning: initialization from incompatible pointer type drivers/block/xsysace.c: In function `ace_setup': drivers/block/xsysace.c:960: warning: implicit declaration of function `setup_timer' drivers/block/xsysace.c:1009: error: `NO_IRQ' undeclared (first use in this function) drivers/block/xsysace.c:1010: warning: passing arg 2 of `request_irq' from incompatible pointer type drivers/block/xsysace.c: In function `ace_teardown': drivers/block/xsysace.c:1061: error: `NO_IRQ' undeclared (first use in this function) drivers/block/xsysace.c: In function `ace_alloc': drivers/block/xsysace.c:1081: warning: implicit declaration of function `kzalloc' drivers/block/xsysace.c:1081: warning: assignment makes pointer from integer without a cast drivers/block/xsysace.c: In function `ace_probe': drivers/block/xsysace.c:1131: error: `NO_IRQ' undeclared (first use in this function) make[2]: *** [drivers/block/xsysace.o] Error 1 make[1]: *** [drivers/block] Error 2 make: *** [drivers] Error 2 Also, is anybody familiar with the Ethernet drivers? My boot-log contains this error concerning Ethernet: eepro100.c:v1.09j-t 9/29/99 Donald Becker http://www.scyld.com/network/eepro100.html eepro100.c: $Revision: 1.36 $ 2000/11/17 Modified by Andrey V. Savochkin [off-list ref] and others eth0: Invalid EEPROM checksum 0xbf8a, check settings before activating this device! eth0: OEM i82557/i82558 10/100 Ethernet, 00:0A:35:00:7C:A0, IRQ 0. Board assembly 727095-004, Physical connectors present: RJ45 Primary interface chip i82555 PHY #1. Self test failed, status ffffffff: Failure to initialize the i82557. Verify that the card is a bus-master capable slot. I also tried another Ethernet driver and got this error instead: e100: Intel(R) PRO/100 Network Driver, 3.2.3-k2-NAPI e100: Copyright(c) 1999-2004 Intel Corporation e100: 0000:00:07.0: e100_eeprom_load: EEPROM corrupted e100: probe of 0000:00:07.0 failed with error -11 I know that newer versions of mainline and Xilinx Linux 2.6 have SysACE support, but I would prefer to stick with mainline 2.6.10 because, well, it sort of works for me at the moment (I was able to mount an ATA hard drive with an ext2 file system). Any help/suggestions would be greatly appreciated. Let me know if you need me to provide any additional information. Thanks! -Juliana