RTEMS PORT OF THE 'le' ETHERNET DRIVER ====================================== This is a port of the FreeBSD 'le' driver as of 2007/7/21 (checked out from FreeBSD/head on that date). SUPPORTED BSPs: - you need 'libbsdport' which in turn needs 'libbspExt' These work for i386/pc386 and powerpc/new-exception-processing BSPs, i.e., the BSP must implement and . USAGE: - to attach this driver: * define a NULL terminated list with all libbsdport supported drivers you want to include with your application: extern driver_t libbsdport_le_pci_driver; driver_t *libbsdport_netdriver_table[] = { &libbsdport_le_pci_driver, /* other drivers here or upstream of 'le' if they support * the same hardware but are preferred. */ 0 }; * specify libbsdport_netdriver_attach for the 'attach' function pointer in struct rtems_bsdnet_ifconfig. * use the 'name' field in struct rtems_bsdnet_ifconfig to filter drivers and device instances: either may be omitted which means that the next available driver/hardware device is to be used. Here are a few examples: "" /* use first device found supported by any driver in the * libbsdport_driver_table[]. */ "le1" /* use first device supported by the 'le' driver */ Notes: Counting instances begins with 1 (not 0). Consult libbsdport/README for more information. KNOWN ISSUES: - only the PCI module has been ported, so far. No ISA (yet). This means that only the am79900*.* lance*.* if_le_pci.c files are really used. Other files are left here for reference. - media status (SIOCGIFMEDIA) doesn't work. sc_mediastatus is not set so the media is always reported as 0. - 'ignore_broadcast' and 'mtu' settings from struct rtems_bsdnet_ifconfig are ignored. I haven't seen many drivers that honour 'ignore_broadcast' and 'mtu' can be set using a ioctl(). I'm trying to keep changes to BSD sources minimal... - ring sizes are restricted to powers of 2. OTHER NOTES: - you can use the 'pcn' driver for 79C971 and upwards chips. 'pcn' supposedly uses more advanced features of those chips. - 'le' works with qemu's 'pcnet32' Am79C970A emulation :-) TESTED WITH: Technobox 10/100-TX Ethernet PMC (AMD Am79C973 chip) qemu 'pcnet32' emulation TESTED ON: rtems-4.7 powerpc/beatnik (motorola MVME5500 and MVME6100 VME boards) i386/pc686 (concurrent technologies PP410 compact PCI) qemu emulator T.S, 200707