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