summaryrefslogtreecommitdiffstats
path: root/src/arch
Commit message (Collapse)AuthorAgeFilesLines
* Guard against corruption of top half of %esp during UNDI ISRMichael Brown2008-02-131-0/+3
|
* Merge branch 'master' of rom.etherboot.org:/pub/scm/gpxeMichael Brown2008-02-111-0/+2
|\
| * undiisr.S: save/restore upper half of %eflagsH. Peter Anvin2008-02-111-0/+2
| | | | | | | | | | | | Since we don't know what the UNDI code does, it is safest to save/restore %eflags even though the lower half of %eflags is automatically saved by the interrupt itself.
| * UNDI ISR: save and restore 32-bit registersH. Peter Anvin2008-02-111-4/+7
| | | | | | | | | | | | | | | | | | | | | | As written, if the if the UNDI ISR call clobbers the upper halves of any of the GPRs (which by convention it is permitted to do, and by paranoia should be expected to do) then nothing in the interrupt handler will recover the state. Additionally, save/restore %fs and %gs out of sheer paranoia - it's a cheap enough operation, and may prevent problems due to poorly written UNDI stacks.
* | UNDI ISR: save and restore 32-bit registersH. Peter Anvin2008-02-111-4/+7
| | | | | | | | | | | | | | | | | | | | | | As written, if the if the UNDI ISR call clobbers the upper halves of any of the GPRs (which by convention it is permitted to do, and by paranoia should be expected to do) then nothing in the interrupt handler will recover the state. Additionally, save/restore %fs and %gs out of sheer paranoia - it's a cheap enough operation, and may prevent problems due to poorly written UNDI stacks.
* | Use internal 16-bit stack for added safety.Michael Brown2008-02-111-0/+4
|/
* Remove the (unused) option to override _prefix_link_addr,Michael Brown2007-12-071-14/+4Star
| | | | | | | | | | | _textdata_link_addr, _load_addr and _max_align in the linker scripts. A bug in some versions of ld causes segfaults if the DEFINED() macro is used in a linker script *and* the -Map option to ld is present. We don't currently need to override any of these values; if we need to do so in future then the solution will probably be to always specify the values on the ld command line, and have the linker script not define them at all.
* Fix compiler warnings that appear only on OpenBSD.Michael Brown2007-12-067-14/+14
|
* Add UUID to DHCP request as option 97 (if available).Michael Brown2007-11-212-0/+11
|
* Added definition of a UUID and uuid_ntoa() (for debugging), andMichael Brown2007-11-212-19/+10Star
| | | | implemented smbios_get_uuid().
* Update SMBIOS internal API to be easier to use, and not to requireMichael Brown2007-11-212-101/+214
| | | | potentially exorbitant amounts of stack space.
* Replace "Etherboot" strings with "gPXE".Michael Brown2007-11-201-4/+4
|
* Allow space for the kernel's real-mode .bss. Previously we weren'tMichael Brown2007-11-042-1/+9
| | | | | allowing any space for this, which makes it surprising that bzImage loading ever worked.
* Add missing attribute(packed) to two structures.Michael Brown2007-10-291-2/+2
|
* Ensure that empty e820 regions are skipped even at the end of theMichael Brown2007-10-101-11/+18
| | | | | | | | | memory map. (We achieve this by setting CF on the last entry if it is zero-length; this avoids the need to look ahead to see at each entry if the *next* entry would be both the last entry and zero-length). This fixes the "0kB base memory" error message upon starting Windows 2003 on a SunFire X2100.
* Redefine bzimage_exec_context::mem_limit to be the highest permissibleMichael Brown2007-09-281-3/+4
| | | | | | | | | | | byte, rather than the number of permissible bytes (i.e. subtract one from the value under the previous definition to get the value under the new definition). This avoids integer overflow on 64-bit kernels, where bzhdr.initrd_addr_max may be 0xffffffffffffffff; under the old behaviour we set mem_limit equal to initrd_addr_max+1, which meant it ended up as zero. Kernel loads would fail with ENOBUFS.
* Switch rm_ss and rm_sp back to being words; it'll make it lessMichael Brown2007-09-251-7/+7
| | | | confusing to read the code.
* Don't use the "rep ss movsb" trick to copy the RM stack to the PMMichael Brown2007-09-251-31/+34
| | | | stack; it breaks vmxassist.
* rm_ss, rm_sp, and pm_esp don't need to be accessed from anywhereMichael Brown2007-09-253-54/+0Star
| | | | outside of librm.S.
* Minor refactoring to eliminate duplication.Michael Brown2007-09-251-49/+39Star
|
* Use full protected mode for access to high memory within prefix, toMichael Brown2007-09-251-169/+237
| | | | | work around limitations in real-mode virtualisation support on Intel VT-capable chips.
* Added more verbose memory-map debugging.Michael Brown2007-09-212-11/+43
| | | | | Added redundant call to get_memmap() in int13_boot() immediately before jumping to boot sector, to assist in debugging.
* Add const attribute to byte-swapping functionsMichael Brown2007-09-211-3/+3
|
* Added missing .kpxe prefix.Michael Brown2007-09-061-0/+1
|
* Auto-assign drive number only if set to 0xff; almost all applicationsMichael Brown2007-08-231-2/+3
| | | | require that we use drive 0x80, so it should probably be the default.
* Separate out arch-independent parts of stdint.hMichael Brown2007-08-171-21/+3Star
|
* Add PXE FILE API.Michael Brown2007-08-041-0/+25
|
* Place multiboot command lines in base memory; Xen won't pick them upMichael Brown2007-08-031-36/+69
| | | | otherwise. :(
* Allow images to hold references to the originating URI.Michael Brown2007-08-022-3/+8
| | | | Some shuffling around of the image management code; this needs tidying up.
* Allowed zero-cost enforced ordering of features in startup bannerMichael Brown2007-08-024-0/+12
| | | | | | list. Added FEATURE() macros to most relevant (non-driver) files.
* remove old minorversion!=4 check (added -march a second time)Holger Lubitz2007-08-021-4/+0Star
|
* remove x86_64 comments from arch specific ConfigHolger Lubitz2007-08-021-5/+0Star
| | | | options are in main makefile now
* Add code for constructing single-file cpio archives on the flyMichael Brown2007-08-021-30/+75
|
* Initrd concatenation now workingMichael Brown2007-08-011-2/+3
|
* Allow loading of multiple initramfs images.Michael Brown2007-07-311-50/+61
|
* Centralise construction of the DHCP request and response packets.Michael Brown2007-07-311-7/+4Star
|
* Import various libgcc functions from syslinux.Michael Brown2007-07-301-336/+0Star
| | | | | | | | | | Experimentation reveals that gcc ignores -mrtd for the implicit arithmetic functions (e.g. __udivdi3), but not for the implicit memcpy() and memset() functions. Mark the implicit arithmetic functions with __attribute__((cdecl)) to compensate for this. (Note: we cannot mark with with __cdecl, because we define __cdecl to incorporate regparm(0) as well.)
* GCC's optimiser seems to screw up if this is left static...Michael Brown2007-07-301-1/+1
|
* Don't rely on retry.c's periodically calling currticks() in order toMichael Brown2007-07-291-1/+7
| | | | allow the UNDI NIC interrupt to happen.
* Applied a modified version of holger's regparm patches.Michael Brown2007-07-294-4/+16
|
* Revert "make __udivmoddi4 static" - gcc links to it implicitlyHolger Lubitz2007-07-281-1/+1
| | | | This reverts commit 9e7b165017afe1ba82c29d9e914ae85f6f2798c6.
* make multiboot_load staticHolger Lubitz2007-07-271-1/+1
|
* make nbi_load staticHolger Lubitz2007-07-271-1/+1
|
* make eltorito_load staticHolger Lubitz2007-07-271-1/+1
|
* make __udivmoddi4 staticHolger Lubitz2007-07-271-1/+1
|
* Don't overwrite %dl with a (potentially) modified drive number if weMichael Brown2007-07-251-1/+1
| | | | already handled the INT13 call.
* We probably shouldn't leave interrupts disabled when starting an OS.Michael Brown2007-07-251-0/+1
|
* Add per-file error identifiersMichael Brown2007-07-241-0/+31
|
* Remove some obsolete sections of librm.h and libkir.h.Michael Brown2007-07-242-39/+25Star
| | | | Add some of the missing parts to libkir.h.
* Minor debug improvementMichael Brown2007-07-191-1/+2
|