Holger Lubitz
0ebf6cdef4
remove old minorversion!=4 check (added -march a second time)
2007-08-02 01:54:42 +01:00
Holger Lubitz
06eb725cd4
remove x86_64 comments from arch specific Config
...
options are in main makefile now
2007-08-02 01:48:28 +01:00
Michael Brown
726e366e8f
Add code for constructing single-file cpio archives on the fly
2007-08-01 23:10:30 +01:00
Michael Brown
24f32a1945
Initrd concatenation now working
2007-08-01 15:29:15 +01:00
Michael Brown
c5d9114064
Allow loading of multiple initramfs images.
2007-07-31 18:09:18 +01:00
Michael Brown
5e26df0325
Centralise construction of the DHCP request and response packets.
2007-07-31 03:02:21 +01:00
Michael Brown
4ce8d61a5c
Import various libgcc functions from syslinux.
...
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.)
2007-07-30 02:43:43 +01:00
Michael Brown
f62d6486d8
GCC's optimiser seems to screw up if this is left static...
2007-07-30 02:42:32 +01:00
Michael Brown
304d1e9fa5
Don't rely on retry.c's periodically calling currticks() in order to
...
allow the UNDI NIC interrupt to happen.
2007-07-29 15:27:47 +01:00
Michael Brown
a6a1052096
Applied a modified version of holger's regparm patches.
2007-07-29 00:17:25 +01:00
Holger Lubitz
0ae6c53bd9
Revert "make __udivmoddi4 static" - gcc links to it implicitly
...
This reverts commit 9e7b165017
.
2007-07-28 23:20:00 +02:00
Holger Lubitz
9a4790667a
make multiboot_load static
2007-07-27 22:01:23 +02:00
Holger Lubitz
dc38303ff9
make nbi_load static
2007-07-27 22:00:51 +02:00
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
Michael Brown
763a3eab8a
Add .pdsk target (padded .dsk, suitable for qemu).
2007-07-05 23:37:17 +01:00
Michael Brown
fbda4837b0
Allocate heap at first usage, rather than assuming we can fit it in
...
below _text. This should help with the gPXE-on-gPXE-via-PXE case.
2007-07-05 22:30:34 +01:00
Michael Brown
07ea125213
Use partition type 0xeb ("EtherBoot"), to avoid any attempts to mount
...
the Etherboot partition.
2007-07-05 14:20:55 +01:00
Michael Brown
6e082c9b81
Add .usb target
2007-07-05 14:15:43 +01:00
Michael Brown
a0f078d7f5
Working with multi-sector reads
2007-07-05 13:30:49 +01:00
Michael Brown
66208dd65d
hdprefix that works for LBA only
2007-07-05 12:58:16 +01:00
Michael Brown
839960276d
Miscellaneous efficiency improvements, and extend read_sectors to
...
handle multiple sectors.
2007-07-05 12:36:39 +01:00
Michael Brown
3c2d50e5de
Added active partition locator, and simple MBR built using it.
2007-07-05 00:21:01 +01:00
Michael Brown
738ebaf4a5
Revert "Added master boot record capable of locating active partition"
...
This reverts commit 844d088c51
.
2007-07-05 00:20:04 +01:00
Michael Brown
844d088c51
Added master boot record capable of locating active partition
...
(including logical partitions).
2007-07-05 00:05:26 +01:00
Michael Brown
5e3f2247e0
Kill off lots of warnings in via-velocity.c by correcting these definitions.
2007-07-04 23:36:16 +01:00
Michael Brown
ac69b85adb
UNDI loader entry point implemented; seems to work.
2007-07-04 03:23:02 +01:00
Michael Brown
1ecb9acb87
Fix typo
2007-07-04 02:25:07 +01:00
Michael Brown
dca470cb21
Add (untested) UNDI loader C-level implementation.
2007-07-03 23:41:35 +01:00
Michael Brown
7db6b4b79c
Merge branch 'master' of rom.etherboot.org:/pub/scm/gpxe
2007-07-03 23:10:16 +01:00
Michael Brown
89349d7fad
Separated out initialisation functions from startup/shutdown functions.
2007-07-03 23:09:56 +01:00
Marty Connor
79238335b0
remove obsolete file: src/arch/i386/prefix/int19exit.c
2007-07-03 16:24:06 -04:00
Michael Brown
cbd4542dc0
Merge branch 'master' of rom.etherboot.org:/pub/scm/gpxe
2007-07-03 21:09:26 +01:00
Marty Connor
9b3c4e4d79
Warnings purge: src/arch/i386, src/core/disk.c, ramdisk, autoboot
2007-07-03 16:02:15 -04:00
Michael Brown
fae10a7ca1
We don't actually use the reset functions anywhere, and nothing really
...
provides them.
2007-07-03 20:34:51 +01:00
Michael Brown
2dc8ed1eb8
Work around Etherboot 5.4 bug when multiple packets are received.
2007-07-03 15:53:29 +01:00
Michael Brown
0958726ebb
It's not just Etherboot that fails to generate TX completions.
2007-07-03 14:43:57 +01:00
Michael Brown
adb3dd03e5
Document TX completion bug.
2007-07-03 13:17:58 +01:00
Michael Brown
071356d976
Ensure that pxe_netdev is set before starting up PXE NBP.
2007-07-03 00:02:26 +01:00
Michael Brown
e42eba4af4
Use a common base-memory packet buffer for DHCP construction (as used
...
by PXE and NBI) and UNDI packets (as used by undinet and UNDI).
2007-07-02 18:33:41 +01:00
Michael Brown
5f17089b14
pxe_netdev now holds a reference to the network device.
...
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.
2007-07-02 17:43:32 +01:00
Michael Brown
d5451d210c
Add ability to resolve relative symbols as well as locate absolute ones.
2007-06-30 22:59:15 +01:00
Michael Brown
8f6a4e8140
Add gdbsym.c object to help with running gdb-to-qemu
2007-06-30 22:43:31 +01:00
Michael Brown
e1646b4080
Place the actual version string in .data16, rather than just the
...
pointer to it.
2007-06-30 21:36:54 +01:00
Michael Brown
8130443f9f
Separate out pxe_start_nbp() from pxe_image.c into pxe_call.c
...
Implement PXENV_RESTART_TFTP.
2007-06-30 14:56:35 +01:00
Michael Brown
d71b116f54
Fix stack on return from PXE NBP so that we can return properly.
2007-06-28 23:37:49 +01:00
Michael Brown
045fb24557
Use internal real-mode stack from non-returnable prefixes
2007-06-28 21:56:14 +01:00
Michael Brown
00473f0952
Revert "Move stack to below 0x7c00; leaving it at the default location"
...
This reverts commit 03ca71c38d
.
2007-06-28 21:50:36 +01:00
Michael Brown
03ca71c38d
Move stack to below 0x7c00; leaving it at the default location
...
(0x7ef4) tends to really screw up anything that loads at 0x7c00...
2007-06-28 21:15:47 +01:00
Michael Brown
f77815f2b1
Kill off hotplug.h and just make net devices normal reference-counted
...
structures.
DHCP still broken and #if 0'd out.
2007-06-27 14:48:31 +01:00
Michael Brown
1ae549b892
Add our own trivial version of stdarg.h. This makes our build
...
entirely self-hosted (which avoids problems when building the same
tree on multiple systems - e.g. when you have /home NFS-mounted).
Also saves around 50 bytes in total - not sure why.
2007-06-09 18:11:07 +01:00
Michael Brown
3e2c6b6736
pkbuff->iobuf changeover
...
Achieved via Perl using:
perl -pi -e 's/pk_buff/io_buffer/g; s/Packet buffer/I\/O buffer/ig; ' \
-e 's/pkbuff\.h/iobuf.h/g; s/pkb_/iob_/g; s/_pkb/_iob/g; ' \
-e 's/pkb/iobuf/g; s/PKB/IOB/g;'
2007-05-19 18:39:40 +00:00