Michael Brown
cd3ecac809
Avoid causing TX overflow on small TX queues.
18 years ago
Michael Brown
70ef6dbb7c
Rewrote to use the new net driver API, the updated PCI API, and the
generic three-wire serial device support for EEPROM access.
18 years ago
Michael Brown
69b1f24a97
I have no idea how this ever worked before.
18 years ago
Michael Brown
6c50564724
Make PKB_ZLEN the minimum possible size of packet buffer (to allow for
hardware that can't autopad).
18 years ago
Michael Brown
1dbafa8950
Tidied up debugging messages
18 years ago
Michael Brown
aa2468babe
Added abstraction layer for a three-wire serial device (e.g. the EEPROM
used on RTL8139 cards).
18 years ago
Michael Brown
9f86754f90
Updated to work with libprefix.
18 years ago
Michael Brown
29340d7728
Documented the fact that the prefix can prot_call(main) without
worrying about its stack being destroyed during the Etherboot run.
18 years ago
Michael Brown
0479e9f541
relocate.o is now dragged in by the objects that require it; there is no
need for a CONFIG_RELOCATE.
18 years ago
Michael Brown
3204a1e941
Removed some obsolete INIT_XXX constants.
18 years ago
Michael Brown
d82f71efd0
Also hide base memory region from E820 map.
18 years ago
Michael Brown
89da833c5d
init_librm() and prot_call() are now real-mode far calls.
install() now calls relocate(), moves the protected-mode code to the new
location, and calls hide_etherboot().
18 years ago
Michael Brown
4d81b48504
Has been obsolete for a while.
18 years ago
Michael Brown
1966945a5d
Update relocate() to work with get_memmap().
Change semantics; relocate() now just finds a suitable location; it
doesn't actually perform the relocation itself. Code in libprefix does
the copy in flat real mode.
18 years ago
Michael Brown
f939ff7cb5
Fix printf format warning error
18 years ago
Michael Brown
3bd3c13c7b
Why should pushal/popal put the registers on the stack in a logical
order?
18 years ago
Michael Brown
dd75965057
Typo.
18 years ago
Michael Brown
e4f8d6eed7
Add a "count" field to struct memory_map.
18 years ago
Michael Brown
986f6ffff1
Define a struct memory_map with a fixed number of entries, rather than
requiring each caller to decide how many entries it wants to permit.
18 years ago
Michael Brown
edcf89e2b0
Remove the automatic segment register save and restore; most users of
REAL_CODE() don't need it.
18 years ago
Michael Brown
02cf755f3f
Removed REAL_EXEC(); there is no longer any code using it.
18 years ago
Michael Brown
103aff3ae2
Added potentially required "\n\t" on the end of asm_code_str
18 years ago
Michael Brown
190276a8b6
NBI is due for removal
18 years ago
Michael Brown
52125e158c
Will be replaced with a block-device implementation.
18 years ago
Michael Brown
8110f9b082
Updated to REAL_CODE()
18 years ago
Michael Brown
595f161b51
Updated to REAL_CODE().
int13_boot() now does its own segment register save and restore, ready
for the removal of segment register restoration from the libkir
generic code.
18 years ago
Michael Brown
e8550035af
Updated to REAL_CODE()
18 years ago
Michael Brown
c4d688c005
Updated to REAL_CODE().
18 years ago
Michael Brown
04d6005d77
Update to REAL_CODE()
18 years ago
Michael Brown
6631f46999
Updated to REAL_CODE().
18 years ago
Michael Brown
53935e9dc6
Set carry flag before calling INT 15,e801 and INT 15,e820.
Ignore carry flag for INT 15,88; the Ralf Brown interrupt list says
that CF is unreliable for this call.
18 years ago
Michael Brown
7a53d07027
Split out REAL_CODE() from REAL_EXEC(), preparatory to removing REAL_EXEC
completely.
18 years ago
Michael Brown
83d80d9e79
Remove references to obsoleted REAL_CALL from documentation.
18 years ago
Michael Brown
3b525385af
Removed REAL_FRAGMENT and REAL_CALL, and left just REAL_EXEC (which is
the only one we actually use). This allows REAL_EXEC fragments to
contain proper references to constraints (e.g. "%w0"), rather than having
to force the use of specific registers.
Note that the "num_constraints" parameter is now completely obsolete, and
that we can probably reduce the syntax to something like
__asm__ __volatile__ ( REAL_CODE ( "asm statements" )
: output constraints
: input constraints
: clobber );
which would look much more natural, and avoid the need to always specify
a clobber list.
Add userptr_t to libkir.h, to allow it to at least compile.
18 years ago
Michael Brown
77a65075a6
Replaced memsizes.c with smaller memmap.c, taking advantage of __data16,
and creating a memory map that's easier to work with than the E820 map.
18 years ago
Michael Brown
5e80847827
Code to install the new E820 mangler (which doesn't require copying
down to base memory, since it is now in the base-memory-resident
.text16 section).
18 years ago
Michael Brown
897313007b
Add __{text,data}16_array, since there's no way I can see to make the
usual __{text,data}16 trick work with arrays. gcc seems to accept the
__asm__ ( asmlabel ) only after the [] of the array declaration, not
before.
18 years ago
Michael Brown
5ec2b2c251
Cope with regions bigger than 4GB.
We now split e820 regions around ourselves, rather than just
truncating the e820 region. This avoids the worst-case scenario of
losing all memory over 4GB.
It's more important to get the memory map right now that we're
expecting to still be loaded when the OS starts in several situations
(e.g. Linux with UNDI driver, any OS with iSCSI/AoE boot, etc.).
18 years ago
Dan Lynch
bef8874842
- implemented printw (formatted string output, a la printf)
- implemented hline/vline (part of wborder family)
- screen cursor now relocates at same time as window cursor when
restoring after a non-wrapping function
18 years ago
Michael Brown
84a493b88d
Allow vcprintf() to be called by external code such as the curses library.
Also trim another eight bytes from vsprintf.o. :)
18 years ago
Dan Lynch
f778500739
- fixes to _wputch to get positioning and wrap working properly
- fixes to wborder (same)
- addition of a few minor functions
18 years ago
Michael Brown
95956443e1
Fixed debug code
18 years ago
Michael Brown
9dfb9d84b4
Made the LBA48 example clearer.
18 years ago
Michael Brown
80958ff69c
Added (untested) support for ATA devices. This code should be generic
enough to support both real IDE chipsets and AoE.
18 years ago
Michael Brown
ca2519cea3
Refactored to reduce code size; now down from 1304 to 1105 bytes.
Tidied up debug messages; the log now contains one line per INT 13
operation, looking like
INT 13,08 (80): Get drive parameters
INT 13,02 (80): Read: C/H/S 0/47/14 = LBA 0xb9e <-> 1084:0000 (count 106)
18 years ago
Michael Brown
af4aacb978
Added missing @file block
18 years ago
Michael Brown
4d0a0f822d
Use insb/outsb; it's marginally faster.
18 years ago
Michael Brown
402ba15c64
READ CAPACITY (16) turns out to be an optional command (even though
READ(16) is mandatory); we must use READ CAPACITY (10) first and then
use READ CAPACITY (16) if the READ CAPACITY (10) returns "out of range".
18 years ago
Michael Brown
444b885a7d
Add EOVERFLOW==ERANGE
18 years ago
Michael Brown
b9cbae58fa
Expert advice tells me that we *do* have to explicitly state the
options even when we want to use the defaults.
18 years ago