david/ipxe
Archived
1
0
Commit Graph

453 Commits

Author SHA1 Message Date
Holger Lubitz
5ec4e2ad50 make eltorito_load static 2007-07-27 21:58:31 +02:00
Holger Lubitz
9e7b165017 make __udivmoddi4 static 2007-07-27 21:39:58 +02:00
Michael Brown
09118cd5bf Don't overwrite %dl with a (potentially) modified drive number if we
already handled the INT13 call.
2007-07-25 02:03:29 +01:00
Michael Brown
d5e39286f7 We probably shouldn't leave interrupts disabled when starting an OS. 2007-07-25 02:02:24 +01:00
Michael Brown
9aa61ad5a2 Add per-file error identifiers 2007-07-24 17:11:31 +01:00
Michael Brown
75912b3b77 Remove some obsolete sections of librm.h and libkir.h.
Add some of the missing parts to libkir.h.
2007-07-24 12:46:07 +01:00
Michael Brown
07e11f8af9 Minor debug improvement 2007-07-19 17:01:21 +01:00
Michael Brown
2cfe0dee1f Don't trash the %ecx value returned by relocate(). This was causing
us to round down the size for the relocation copy to the nearest 64kB
(+0x10 bytes); this just happened to work on most machines because the
last 64kB of the image is all-zeroes anyway (it's the .bss).
2007-07-19 16:07:31 +01:00
Michael Brown
a8111e8ab7 Remove INT 13,4b handler; it represents an incomplete feature (CD-ROM
emulation support) for an unknown purpose, and breaks grub.
2007-07-19 11:16:05 +01:00
Michael Brown
0d9d2ccbae Completed definition of struct int13_cdrom_specification, and moved to
int13.h.
2007-07-19 11:15:01 +01:00
Michael Brown
013d381e3c Real-mode code might set the direction flag, which would cause carnage. 2007-07-17 13:46:37 +01:00
Michael Brown
c94cdf2b7d Move .zinfo to libprefix.S; it doesn't belong with the decompression code. 2007-07-17 12:52:54 +01:00
Michael Brown
dc52db4920 Removed dead code identified by symcheck 2007-07-17 01:43:19 +01:00
Michael Brown
38dbe14bbe Kill off redundant references to the .zprefixes. 2007-07-16 17:26:07 +01:00
Michael Brown
84551d485e Update all prefixes currently referring to _load_size to include a
compressor fixup section.
2007-07-16 17:17:26 +01:00
Michael Brown
0929142a15 Rename _rom_size to _load_size_sect, since hdprefix.S also uses it. 2007-07-16 17:03:19 +01:00
Michael Brown
048bbeeebc Compressed ROM images now work. 2007-07-16 16:58:38 +01:00
Michael Brown
6d2e4e719c Move uninitialised .data16 variables to .bss16; saves around 2000
bytes of useless zeroes in the final image.
2007-07-16 13:22:12 +01:00
Michael Brown
389204713f Kill off some long-redundant CFLAGS 2007-07-16 13:15:12 +01:00
Michael Brown
833d6cc8ec Add __bss16() macro, and allow use of .bss16 section by removing
link-time check for section overlaps.  (In order to avoid wasting
space in the executable image, .bss16 will overlap with the following
section, which is .text).
2007-07-16 13:10:49 +01:00
Michael Brown
ab859a5355 Use a single _payload_offset linker-defined variable to locate the
start of the non-prefix blocks in the loaded image, and rely on the
image ordering.  This should make introducing compression much easier.
2007-07-15 02:52:02 +01:00
Michael Brown
0b5059c40b Skip the length field prepended by util/nrv2b.c 2007-07-15 02:01:17 +01:00
Michael Brown
b37e267d1b Modified calling convention: we now update %esi and %edi just like a
"rep movsb".
2007-07-15 01:51:32 +01:00
Michael Brown
3feac9465e "not" doesn't affect flags, "xor $-1" does. 2007-07-15 01:25:13 +01:00
Michael Brown
26473105cd On advice of hpa: be more patient with the KBC and SCPA methods; retry
in a long loop before giving up on them.  Record method which worked
and default to that method on next attempt.
2007-07-14 20:56:12 +01:00
Michael Brown
adf192f566 Shrink cpu.c and render it useful for our purposes. 2007-07-14 19:12:13 +01:00
Michael Brown
e330db3c74 Dead code removal.
Kill off use of etherboot.h outside drivers/net.
2007-07-14 15:42:26 +01:00
Michael Brown
95c07736cb Be more aggressive in attempts to enable A20, now that we have the
optimisation of only trying to do so when necessary.
2007-07-14 14:21:18 +01:00
Michael Brown
8624fdc445 Kill off the enforced RX quota; it only seems to hurt on real hardware. 2007-07-14 00:30:11 +01:00
Michael Brown
57b5e227ff Use fast in-situ test for gate A20 being set, to cut down on the
number of (potentially very slow) gateA20_set operations.

Die with a fatal error if we are unable to set gate A20; if this fails
then we are bound to experience memory corruption at a later stage,
and I'd prefer to pick it up early.
2007-07-13 13:32:49 +01:00
Michael Brown
2ac7694c3e Improve error reporting for strange length combinations reported by
the UNDI stack.

Ignore obviously invalid length combinations (as returned by
e.g. VMWare's PXE stack).

Limit to one packet per poll to avoid memory exhaustion.
2007-07-10 20:59:21 +01:00
Michael Brown
efd322091d Set up %ds *before* testing a value in our data segment (d'oh!).
Always send EOI; do not chain to BIOS's default interrupt handler.
They are just too unpredictable; at least VMware's seems to kill the
machine if you go anywhere near it.

Disable interrupts after return from PXENV_UNDI_ISR, just in case some
dumb PXE stack enables them.
2007-07-10 17:08:32 +01:00
Michael Brown
f6f9a3098d Report RX errors via netdev_rx_err() 2007-07-10 17:01:18 +01:00
Michael Brown
fb16f90699 Dump first 64 bytes of chained ISR when debugging is enabled. 2007-07-10 16:57:55 +01:00
Michael Brown
edc4648c39 Protect ISR against failure to unhook. 2007-07-10 04:34:53 +01:00
Michael Brown
4e14b020a5 Master IRQ should be EOIed first, I think. 2007-07-10 04:33:59 +01:00
Michael Brown
19871cbb96 We probably ought not to call INT13 with interrupts disabled. 2007-07-10 04:32:30 +01:00
Michael Brown
027fed72c1 Working code to call the PXE stack from within the ISR. 2007-07-10 04:21:24 +01:00
Michael Brown
cd7e296cbe Always increase number of BIOS drives when registering 2007-07-09 20:42:04 +01:00
Michael Brown
b90d321dfb Change %dl fixup rules for INT13:
INT 13,08 : read number of drives from 40:75
INT 13,15 : do nothing
all others : restore original value of %dl
2007-07-09 20:37:39 +01:00
Michael Brown
c7d9fdb5b9 Proof of concept; works, but has several hard-coded hacks. 2007-07-09 20:28:40 +01:00
Michael Brown
8bce52d348 Set CF by default, clear on success (rather than clearing and setting
on failure).
2007-07-09 19:02:41 +01:00
Holger Lubitz
4ff85d9f15 Add -mpreferred-stack-boundary=2 to i386 CFLAGS as it's almost always a win. 2007-07-09 03:32:54 +01:00
Michael Brown
4c418d2100 Use net_device_operations structure and netdev_nullify() to allow for
safe dropping of the netdev ref by the driver while other refs still
exist.

Add netdev_irq() method.  Net device open()/close() methods should no
longer enable or disable IRQs.

Remove rx_quota; it wasn't used anywhere and added too much complexity
to implementing correct interrupt-masking behaviour in pxe_undi.c.
2007-07-07 16:43:39 +01:00
Holger Lubitz
c7549bcebe convert to zalloc 2007-07-06 20:19:06 +02:00
Holger Lubitz
bb61774ee4 convert to zalloc 2007-07-06 20:19:06 +02:00
Michael Brown
311637503d Merge branch 'master' of rom.etherboot.org:/pub/scm/gpxe 2007-07-06 13:31:58 +01:00
Michael Brown
f660e8ef58 Add strlen_user() (will be needed for PXE API extensions) 2007-07-06 13:07:10 +01:00
Marty Connor
74a1c77820 Merge branch 'master' of /pub/scm/gpxe 2007-07-06 08:04:55 -04:00
Marty Connor
28d8d828b3 Rename .lilo extension to .lkrn and updated dependencies 2007-07-06 08:04:06 -04:00