Michael Brown
9a2a52693d
Initial AoE implementation. Limitations are:
Cannot yet handle reads of more than two sectors
No retransmission
No way to find out a target's MAC address (this proof of concept uses
broadcasts)
These limitations shall not last long! :)
18 jaren geleden
Michael Brown
6f998cecb3
Use separate data-in and data-out buffers.
Increase code simplicity at the expense of around 64 bytes.
18 jaren geleden
Michael Brown
6d6252067f
Add ETH_P_AOE
18 jaren geleden
Michael Brown
35b04b1514
Tidy up comment
18 jaren geleden
Michael Brown
041a04335e
Fixed assembly on old versions of gas
18 jaren geleden
Michael Brown
f743de4858
Added tcp_kick(). This speed up LILO and GRUB booting by almost two
orders of magnitude.
18 jaren geleden
Michael Brown
cd3ecac809
Avoid causing TX overflow on small TX queues.
18 jaren geleden
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 jaren geleden
Michael Brown
69b1f24a97
I have no idea how this ever worked before.
18 jaren geleden
Michael Brown
6c50564724
Make PKB_ZLEN the minimum possible size of packet buffer (to allow for
hardware that can't autopad).
18 jaren geleden
Michael Brown
1dbafa8950
Tidied up debugging messages
18 jaren geleden
Michael Brown
aa2468babe
Added abstraction layer for a three-wire serial device (e.g. the EEPROM
used on RTL8139 cards).
18 jaren geleden
Michael Brown
2f392ee13e
Need write permission to /dev/net/tun, not just read.
18 jaren geleden
Michael Brown
9f86754f90
Updated to work with libprefix.
18 jaren geleden
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 jaren geleden
Michael Brown
0479e9f541
relocate.o is now dragged in by the objects that require it; there is no
need for a CONFIG_RELOCATE.
18 jaren geleden
Michael Brown
3204a1e941
Removed some obsolete INIT_XXX constants.
18 jaren geleden
Michael Brown
d82f71efd0
Also hide base memory region from E820 map.
18 jaren geleden
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 jaren geleden
Michael Brown
4d81b48504
Has been obsolete for a while.
18 jaren geleden
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 jaren geleden
Michael Brown
f939ff7cb5
Fix printf format warning error
18 jaren geleden
Michael Brown
3bd3c13c7b
Why should pushal/popal put the registers on the stack in a logical
order?
18 jaren geleden
Michael Brown
dd75965057
Typo.
18 jaren geleden
Michael Brown
e4f8d6eed7
Add a "count" field to struct memory_map.
18 jaren geleden
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 jaren geleden
Michael Brown
edcf89e2b0
Remove the automatic segment register save and restore; most users of
REAL_CODE() don't need it.
18 jaren geleden
Michael Brown
02cf755f3f
Removed REAL_EXEC(); there is no longer any code using it.
18 jaren geleden
Michael Brown
103aff3ae2
Added potentially required "\n\t" on the end of asm_code_str
18 jaren geleden
Michael Brown
190276a8b6
NBI is due for removal
18 jaren geleden
Michael Brown
52125e158c
Will be replaced with a block-device implementation.
18 jaren geleden
Michael Brown
8110f9b082
Updated to REAL_CODE()
18 jaren geleden
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 jaren geleden
Michael Brown
e8550035af
Updated to REAL_CODE()
18 jaren geleden
Michael Brown
c4d688c005
Updated to REAL_CODE().
18 jaren geleden
Michael Brown
04d6005d77
Update to REAL_CODE()
18 jaren geleden
Michael Brown
6631f46999
Updated to REAL_CODE().
18 jaren geleden
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 jaren geleden
Michael Brown
7a53d07027
Split out REAL_CODE() from REAL_EXEC(), preparatory to removing REAL_EXEC
completely.
18 jaren geleden
Michael Brown
83d80d9e79
Remove references to obsoleted REAL_CALL from documentation.
18 jaren geleden
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 jaren geleden
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 jaren geleden
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 jaren geleden
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 jaren geleden
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 jaren geleden
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 jaren geleden
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 jaren geleden
Dan Lynch
f778500739
- fixes to _wputch to get positioning and wrap working properly
- fixes to wborder (same)
- addition of a few minor functions
18 jaren geleden
Michael Brown
95956443e1
Fixed debug code
18 jaren geleden
Michael Brown
9dfb9d84b4
Made the LBA48 example clearer.
18 jaren geleden