[SeaBIOS] [PATCH] EDD fixes

Kevin O'Connor kevin at koconnor.net
Sat Jul 31 18:32:51 CEST 2010


On Sat, Jul 31, 2010 at 05:26:09PM +0200, Sebastian Herbszt wrote:
> Fix data returned in the int13dpt structure.
[...]
> -    if (size < 66) {
> +    if (size < 74) {
>         disk_ret(regs, DISK_RET_SUCCESS);
>         return;
>     }

This is not correct - the EDD v3.0 spec has a 66 byte structure.  The
link in the bochs bug is for a proposed EDD v4 spec - but that hasn't
been ratified - see:

http://www.t13.org/Standards/Default.aspx?DocumentType=3

Should EDD v4 be ratified and we add support for it, we'd need to
support both v3 and v4 calls.

You should be able to find the current spec by googling for
"specsedd30.pdf".

To be honest though, in my tests, I didn't find any OSs that use
anything beyond the basic EDD v1 calls.  Indeed, if you look at the
Bochs code you'll see that it has an incorrect checksum calculation
for EDD v2 and EDD v3.  (It uses "checksum = ~checksum" where it
should do "checksum = -checksum").

-Kevin



More information about the SeaBIOS mailing list