summaryrefslogtreecommitdiffstats
path: root/src/drivers/bus
Commit message (Collapse)AuthorAgeFilesLines
* [pci] Save and restore PCI command registerBernhard Kohl2010-01-221-0/+5
| | | | | | | | | | | This seems to be necessary for some types of PCI devices. We had problems when using gPXE in KVM virtual machines with direct PCI device access. Signed-off-by: Bernhard Kohl <bernhard.kohl@nsn.com> Signed-off-by: Shao Miller <shao.miller@yrdsb.edu.on.ca> Modified-by: Marty Connor <mdc@etherboot.org> Signed-off-by: Marty Connor <mdc@etherboot.org>
* [pci] Add generic configuration space backup/restore facilityMichael Brown2009-10-141-0/+90
| | | | | | Some devices can only be reset via a mechanism that also resets the card's PCI core, thus necessitating a backup and restore of all or part of the PCI configuration space across a reset.
* [legal] Add a selection of FILE_LICENCE declarationsMichael Brown2009-05-186-0/+12
| | | | | Add FILE_LICENCE declarations to almost all files that make up the various standard builds of gPXE.
* [tables] Redefine methods for accessing linker tablesMichael Brown2009-03-135-30/+5Star
| | | | | | | | | | | | | | | Intel's C compiler (icc) chokes on the zero-length arrays that we currently use as part of the mechanism for accessing linker table entries. Abstract away the zero-length arrays, to make a port to icc easier. Introduce macros such as for_each_table_entry() to simplify the common case of iterating over all entries in a linker table. Represent table names as #defined string constants rather than unquoted literals; this avoids visual confusion between table names and C variable or type names, and also allows us to force a compilation error in the event of incorrect table names.
* [pci] Enable memory cycles in adjust_pci_device()Michael Brown2008-12-121-1/+2
| | | | | | | adjust_pci_device() has historically enabled bus-mastering and I/O cycles, but has never previously needed to enable memory cycles. Some EFI systems seem not to enable memory cycles by default, so add that to the list of PCI command register bits that we force on.
* [virtio] Split virtio-net.c into several files.Laurent Vivier2008-11-192-0/+198
| | | | Signed-off-by: Laurent Vivier <Laurent.Vivier@bull.net>
* [i386] Change [u]int32_t to [unsigned] int, rather than [unsigned] longMichael Brown2008-11-192-2/+2
| | | | | | This brings us in to line with Linux definitions, and also simplifies adding x86_64 support since both platforms have 2-byte shorts, 4-byte ints and 8-byte long longs.
* [isa] Fix a small typo in isa.c.Pantelis Koukousoulas2008-11-081-2/+2
| | | | | | | With this patch ISA drivers actually get probed so they have a fair chance of working now. Signed-off-by: Pantelis Koukousoulas <pktoss@gmail.com>
* [ioapi] Remove old io.h file and switch all users over to <gpxe/io.h>Michael Brown2008-10-124-4/+4
|
* Modify gPXE core and drivers to work with the new timer subsystemAlexey Zaytsev2008-03-023-3/+2Star
| | | | Signed-off-by: Alexey Zaytsev <alexey.zaytsev@gmail.com>
* Revert "convert to zalloc"Holger Lubitz2007-07-071-1/+2
| | | | This reverts commit a4bea78974620820774a59f49646eafbdb481148.
* Revert "convert to zalloc"Holger Lubitz2007-07-071-1/+2
| | | | This reverts commit 3414fd8df8c514947254fd065d407e8db115221f.
* Revert "convert to zalloc"Holger Lubitz2007-07-071-1/+2
| | | | This reverts commit 636bd2cd0abfd9ae774456cd1c00e3f8bb63e7d8.
* Revert "convert to zalloc"Holger Lubitz2007-07-071-1/+2
| | | | This reverts commit 7297f04481f6737b0a40161da6d8413ca0f478d2.
* Revert "convert to zalloc"Holger Lubitz2007-07-071-1/+2
| | | | This reverts commit 5ce16b03a1cb036ad0ab818473fe8f9c158949ed.
* convert to zallocHolger Lubitz2007-07-061-2/+1Star
|
* convert to zallocHolger Lubitz2007-07-061-2/+1Star
|
* convert to zallocHolger Lubitz2007-07-061-2/+1Star
|
* convert to zallocHolger Lubitz2007-07-061-2/+1Star
|
* convert to zallocHolger Lubitz2007-07-061-2/+1Star
|
* This comment is no longer relevant.Michael Brown2007-07-031-5/+0Star
|
* Implemented (untested) PXENV_START_UNDI.Michael Brown2007-07-031-1/+1
|
* pxe_netdev now holds a reference to the network device.Michael Brown2007-07-022-0/+5
| | | | | | | | | Use generic fields in struct device_description rather than assuming that the struct device * is contained within a pci_device or isapnp_device; this assumption is broken when using the undionly driver. Add PXENV_UNDI_SET_STATION_ADDRESS.
* Updated ISAPnP, EISA, MCA and ISA buses to current device model.Michael Brown2007-03-106-744/+696Star
| | | | | | | ISA 3c509 is currently non-functional, although the EISA (3c509-eisa) and MCA (3c529) variants should build OK. None of this code is yet tested.
* Use stdio.h instead of vsprintf.hMichael Brown2007-01-191-1/+1
|
* Add device description fields to struct device.Michael Brown2007-01-101-0/+4
|
* Add "name" field to struct device to allow human-readable hardware deviceMichael Brown2007-01-102-7/+15
| | | | | | | | | | | names. Add "dev" pointer in struct net_device to tie network interfaces back to a hardware device. Force natural alignment of data types in __table() macros. This seems to prevent gcc from taking the unilateral decision to occasionally increase their alignment (which screws up the table packing).
* Added support for wildcard device/vendor ID matchesMichael Brown2007-01-081-1/+4
|
* Add device to hierarchy before calling the driver's probe() function; thisMichael Brown2007-01-081-21/+16Star
| | | | | way everything remains consistent if the probe() ends up creating child devices.
* Remove warning (at least on platforms with uint32_t == unsigned long).Michael Brown2006-12-201-1/+1
|
* Use stdlib.h for malloc() instead of malloc.h.Michael Brown2006-12-201-1/+1
|
* We don't actually have a stdio.h header file. Our printf() functions areMichael Brown2006-09-272-2/+0Star
| | | | | | | | defined in vsprintf.h. (This may change, since vsprintf.h is a non-standard name, but for now it's the one to use.) There should be no need to include vsprintf.h just for DBG() statements, since include/compiler.h forces it in for a debug build anyway.
* added stdio.h to includes for DBG compilationMarty Connor2006-09-272-0/+2
|
* Added soon-to-be-requisite missing include.Michael Brown2006-06-054-0/+4
|
* Strip down i386 PCI configuration space I/O to the bare minimum. AMichael Brown2006-05-171-11/+4Star
| | | | | | | | | | typical build will now include 880 bytes of PCI support code, compared to 2327 bytes in Etherboot 5.4. (There is a slight cost of around 5 extra bytes per access to a non-constant config space address; this should be an overall win. Driver-specific accesses will usually be to constant addresses, for which there is no additional cost.)
* Restructured PCI subsystem to fit the new device model.Michael Brown2006-05-162-298/+349
| | | | | | | | | | | | | | Generic PCI code now handles 64-bit BARs correctly when setting "membase"; drivers should need to call pci_bar_start() only if they want to use BARs other than the first memory or I/O BAR. Split rarely-used PCI functions out into pciextra.c. Core PCI code is now 662 bytes (down from 1308 bytes in Etherboot 5.4). 284 bytes of this saving comes from the pci/pciextra split. Cosmetic changes to lots of drivers (e.g. vendor_id->vendor in order to match the names used in Linux).
* Header rearrangement.Michael Brown2006-04-241-1/+1
| | | | | | | | | I want to get to the point where any header in include/ reflects a standard user-level header (e.g. a POSIX header), while everything that's specific to gPXE lives in include/gpxe/. Headers that reflect a Linux header (e.g. if_ether.h) should also be in include/gpxe/, with the same name as the Linux header and, preferably, the same names used for the definitions.
* Merge from Etherboot 5.4Michael Brown2006-03-161-4/+5
|\
* | Some versions of doxygen seem to object to "@ret None" or similar.Michael Brown2005-05-241-19/+19
| |
* | Use "#var" rather than "@c var" for doxygen.Michael Brown2005-05-201-7/+7
| |
* | DoxygenationMichael Brown2005-05-191-58/+196
|/
* isa.c uses the new table infrastructure.Michael Brown2005-04-271-2/+2
|
* Add isapnp_max_csn to reduce scan time.Michael Brown2005-04-261-2/+20
|
* ISA bus driver updated to report devices as present only if a driverMichael Brown2005-04-261-38/+52
| | | | | thinks they are. Other bus drivers modified for consistency.
* Added "name" field to bus structure.Michael Brown2005-04-255-63/+84
|
* Debug message fixes.Michael Brown2005-04-223-3/+7
|
* Need to leave structure zeroedMichael Brown2005-04-222-2/+2
|
* Must not go beyond end of driver's probe list.Michael Brown2005-04-221-1/+4
|
* ConsistencyMichael Brown2005-04-221-1/+1
|
* Fix up fill_mca_nic.Michael Brown2005-04-221-2/+1Star
|