summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* [umalloc] Formalise the user memory allocation APIMichael Brown2008-10-137-30/+95
|
* [uaccess] Formalise the uaccess APIMichael Brown2008-10-1321-760/+569Star
| | | | | | The userptr_t is now the fundamental type that gets used for conversions. For example, virt_to_phys() is implemented in terms of virt_to_user() and user_to_phys().
* [timer] Remove now-obsolete references to TIMER_BIOS and TIMER_RDTSCMichael Brown2008-10-132-12/+0Star
|
* [nap] Formalise the CPU sleeping APIMichael Brown2008-10-1312-20/+138
|
* [monojob] Allow for extremely slow system timersMichael Brown2008-10-121-1/+1
| | | | | The EFI timer runs at one tick per second, so using ">" rather than ">=" results in a two-second gap between dots.
* [timer] Formalise the timer APIMichael Brown2008-10-1222-284/+386
| | | | | | We now have two implementations for the timer API: one using the time-of-day counter at 40:70 and one using RDTSC. Both make use of timer2_udelay().
* [process] Add DBG2() messages to help track down frozen processesMichael Brown2008-10-121-0/+2
|
* [retry] Use a separate flag to indicate that a retry timer is runningMichael Brown2008-10-122-9/+12
| | | | | Using start==0 to indicate a stopped timer is dangerous, because 0 is a valid value for the current tick counter.
* [commands] Fix config command to accept zero argumentsMichael Brown2008-10-121-1/+1
|
* [pci] Formalise the PCI I/O APIMichael Brown2008-10-1210-81/+220
|
* [legacy] Add missing #include <gpxe/io.h>Michael Brown2008-10-121-0/+1
|
* [phantom] Add missing #include <gpxe/io.h>Michael Brown2008-10-121-0/+1
|
* [config] Split console configuration out to config/console.hMichael Brown2008-10-124-26/+26
|
* [ioapi] Absorb virt_to_phys() and phys_to_virt() into the I/O APIMichael Brown2008-10-124-39/+60
|
* [i386] Remove obsolete functions from virtaddr.hMichael Brown2008-10-121-21/+2Star
| | | | | | | The copy_{to,from}_phys() functions were obsoleted long ago by copy_{to,from}_user(). relocate_to() also disappeared some time ago.
* [rtl8139] Add missing #include <string.h>Michael Brown2008-10-121-0/+1
|
* [natsemi] Add missing #include <string.h>Michael Brown2008-10-121-0/+1
|
* [e1000] Add missing #include <string.h>Michael Brown2008-10-121-0/+1
|
* [ioapi] Remove old io.h file and switch all users over to <gpxe/io.h>Michael Brown2008-10-1222-291/+26Star
|
* [ioapi] Formalise the I/O API as used in i386-pcbiosMichael Brown2008-10-128-0/+850
|
* [cs89x0] Simplify obscure loop syntaxMichael Brown2008-10-121-2/+2
|
* [e1000] Fix dubious syntax in e1000 I/O wrapper macrosMichael Brown2008-10-121-24/+24
|
* [makefile] Add -Wformat-nonliteral as an extra warning categoryMichael Brown2008-10-106-26/+47
| | | | | | | | | | | -Wformat-nonliteral is not enabled by -Wall and needs to be explicitly specified. Modified the few files that use nonliteral format strings to work with this new setting in place. Inspired by a patch from Carl Karsten <carl@personnelware.com> and an identical patch from Rorschach <r0rschach@lavabit.com>.
* [efi] Add EFI headers from the EFI Development Kit (edk2)Michael Brown2008-10-1025-0/+9013
| | | | | | | | | | | The intention is to include near-verbatim copies of the EFI headers required by gPXE. This is achieved using the import.pl script in src/include/gpxe/efi. Note that import.pl will modify any #include lines in each imported header to reflect its new location within the gPXE tree. It will also tidy up the file by removing carriage return characters and trailing whitespace.
* [i386] Simplify linker script and standardise linker-defined symbol namesMichael Brown2008-10-1011-236/+153Star
| | | | | | | | | | | | | Reduce the number of sections within the linker script to match the number of practical sections within the output file. Define _section, _msection, _esection, _section_filesz, _section_memsz, and _section_lma for each section, replacing the mixture of symbols that previously existed. In particular, replace _text and _end with _textdata and _etextdata, to make it explicit within code that uses these symbols that the .text and .data sections are always treated as a single contiguous block.
* [makefile] Reduce verbosity of various NON_AUTO_MEDIA rulesMichael Brown2008-10-103-10/+17
|
* [makefile] Split platform-dependent portions out of arch/i386/MakefileMichael Brown2008-10-102-50/+56
|
* [makefile] Inhibit warnings if AUTO_DEPS or MEDIA_DEPS are empty listsMichael Brown2008-10-101-0/+4
|
* [makefile] Add missing dependency on arch/$(ARCH)/Makefile to MAKEDEPSMichael Brown2008-10-101-0/+1
|
* [util] Don't die on undefined symbols in sortobjdump.plMichael Brown2008-10-101-1/+1
| | | | | Undefined symbols shouldn't reach sortobjdump.pl, but if they do then it is not a helpful place to report the error.
* [util] Add optional debug messages to zbin.cMichael Brown2008-10-101-0/+27
|
* [makefile] Split config.h out into config/*.h and kill off mkconfig.plMichael Brown2008-10-087-293/+57Star
|
* [makefile] Add support for multiple build platformsMichael Brown2008-10-083-219/+378
| | | | | | | | | | | | | | | | | | | | | | Allow for the build CPU architecture and platform to be specified as part of the make command goals. For example: make bin/rtl8139.rom # Standard i386 PC-BIOS build make bin-efi/rtl8139.efi # i386 EFI build The generic syntax is "bin[-[arch-]platform]", with the default architecture being "i386" (regardless of the host architecture) and the default platform being "pcbios". Non-path targets such as "srcs" can be specified using e.g. make bin-efi srcs Note that this changeset is merely Makefile restructuring to allow the build architecture and platform to be determined by the make command goals, and to export these to compiled code via the ARCH and PLATFORM defines. It doesn't actually introduce any new build platforms.
* [makefile] Kill off arch/$(ARCH)/ConfigMichael Brown2008-10-073-166/+56Star
| | | | | | The arch/i386/Config file has long been marked as deprecated. Move all the pertinent bits to arch/i386/Makefile instead and remove arch/i386/Config.
* [libc] Define wchar_t in a gcc-compatible wayMichael Brown2008-10-071-0/+6
| | | | | gcc defines the magic __WCHAR_TYPE__ macro, in order to convey information about whether or not the user selected -fshort-wchar.
* [libc] Add function declaration for main() in stdlib.hMichael Brown2008-10-071-0/+1
|
* [crypto] Rename <gpxe/bitops.h> to <gpxe/rotate.h>Michael Brown2008-10-012-4/+4
|
* [i2c] Generalise i2c bit-bashing support to addressless devicesMichael Brown2008-10-013-47/+174
| | | | | | | | | | | | | | | | | | | | | | Some devices (e.g. the Atmel AT24C11) have no concept of a device address; they respond to every device address and use this value as the word address. Some other devices use part of the device address field to extend the word address field. Generalise the i2c bit-bashing support to handle this by defining the device address length and word address length as properties of an i2c device. The word address is assumed to overflow into the device address field if the address used exceeds the width of the word address field. Also add a bus reset mechanism. i2c chips don't usually have a reset line, so rebooting the host will not clear any bizarre state that the chip may be in. We reset the bus by clocking SCL until we see SDA high, at which point we know we can generate a start condition and have it seen by all devices. We then generate a stop condition to leave the bus in a known state prior to use. Finally, add some extra debugging messages to i2c_bit.c.
* [makefile] Fix -fno-stack-protector test on older versions of gccMichael Brown2008-10-011-1/+2
| | | | | | | | | Some older versions of gcc don't complain about unknown compiler flags unless you ask them to actually compile; asking them to merely preprocess won't trigger the error. Fix the -fno-stack-protector test by making it attempt to compile an empty file, rather than preprocess an empty file.
* [compiler] Allow for selective disabling of debug levels at runtimeMichael Brown2008-10-011-2/+17
| | | | | | | | | | | | | The usefulness of DBGLVL_IO is limited by the fact that many cards require large numbers of uninteresting I/O reads/writes at device probe time, typically when driving a bit-bashing I2C/SPI bus to read the MAC address. This patch adds the DBG_DISABLE() and DBG_ENABLE() macros, which can be used to temporarily disable and re-enable selected debug levels. Note that debug levels must still be enabled in the build in order to function at all: you can't use DBG_ENABLE(DBGLVL_IO) in an object built with DEBUG=object:1 and expect it to do anything.
* [compiler] Add __always_inline macroMichael Brown2008-10-011-0/+3
|
* [release] Update version to 0.9.5+ post releaseMarty Connor2008-10-012-2/+2
|
* [release] Update version to 0.9.5 for releasev0.9.5Marty Connor2008-10-012-3/+3
|
* [arbel] Fix off-by-one error in the failure path in arbel_probe()Michael Brown2008-10-011-4/+4
|
* [hermon] Fix off-by-one error in the failure path in hermon_probe()Michael Brown2008-10-011-4/+4
|
* [makefile] Quote argument to sed containing []H. Peter Anvin2008-09-301-1/+1
| | | | | | | [] are shell metacharacters, and they can get confused by files in the local directory. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* [makefile] Avoid using ?=H. Peter Anvin2008-09-302-6/+6
| | | | | | | | ?= in a Makefile means that that variable can be overridden by the environment. This is confusing to users, especially with a generic name like "ARCH". Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* [tg3] Add PCI IDMichael Brown2008-09-291-0/+1
| | | | Reported working by Martin Kreiner <m.kreiner@levigo.de>
* [pcbios] Allow for larger-than-20-byte buffers in e820mangler.SMichael Brown2008-09-291-14/+45
| | | | | | | | | | Although the E820 API allows for a caller to provide only a 20-byte buffer, there exists at least one combination (HP BIOS, 32-bit WinPE) that relies on information found only in the "extended attributes" field, which requires a 24-byte buffer. Allow for up to a 64-byte E820 buffer, in the hope of coping with future idiocies like this one.
* [pcbios] Print INT 15,E820 extended attributes, if presentMichael Brown2008-09-291-3/+43
| | | | | | | | | | | | | The ACPI specification defines an additional 4-byte field at offset 20 for an E820 memory map entry. This field is presumably optional, since generally E820 gets given only a 20-byte buffer to fill. However, the bits of this optional field are defined as: bit 0 : region is enabled bit 1 : region is non-volatile memory rather than RAM so it seems as though callers that pass in only a 20-byte buffer may be missing out on some rather important information.