[SeaBIOS] [PATCH] support T13 EDD3.0 spec
Sebastian Herbszt
herbszt at gmx.de
Sun Jan 9 14:10:51 CET 2011
Gleb Natapov wrote:
> On Sat, Jan 08, 2011 at 01:48:00PM +0100, Sebastian Herbszt wrote:
>> Kevin O'Connor wrote:
>> >On Thu, Jan 06, 2011 at 04:24:13PM +0200, Gleb Natapov wrote:
>> >>On Thu, Jan 06, 2011 at 09:00:00AM -0500, Kevin O'Connor wrote:
>> >>> On Thu, Jan 06, 2011 at 03:53:57PM +0200, Gleb Natapov wrote:
>> >>> > On Thu, Jan 06, 2011 at 08:41:11AM -0500, Kevin O'Connor wrote:
>> >>> > > On Thu, Jan 06, 2011 at 07:09:27AM +0200, Gleb Natapov wrote:
>> >>> > > > On Wed, Jan 05, 2011 at 09:32:33PM -0500, Kevin O'Connor wrote:
>> >>> > > > > > - SET_INT13DPT(regs, host_bus[3], 0);
>> >>> > > > > > + SET_INT13DPT(regs, host_bus[3], ' ');
>> >>> > > > > > > > > > What if we're not in t13 mode? Should this
>> >>be:
>> >>> > > > > u8 fillchar = t13 ? ' ' : 0;
>> >>> > > > > SET_INT13DPT(regs, host_bus[3], fillchar);
>> >>> > > > > > > > > Phoenix does not specify padding. Are you sure
>> >>phoenix has to have zero
>> >>> > > > padding?
>> >>> > > > > > I think RBIL documented 0s. It may not be
>> >>important.
>> >>> > > > > What is RBIL?
>> >>> > Sorry - Ralph Brown's interrupt list:
>> >>> > http://www.cs.cmu.edu/~ralf/files.html
>> >>> Ah, I have it, just didn't know it is called RBIL :).
>> >>
>> >>Do you want me to resend with fillchar = t13 ? ' ' : 0; or space should
>> >>be good enough?
>> >
>> >I just tested winxp, and it doesn't seem to call 1348 with a size
>> >bigger than 26 bytes. So, thinking about it further, I'm not sure it
>> >matters - the spec isn't clear and I don't know of anything that would
>> >care. (To be clear, I think we should support the 66 byte buffer
>> >size, however I'm not sure the padding matters.)
>> >
>> >Sebastian - do you know of anything that calls 1348 with a buffer size
>> >that could observe the difference?
>>
>> I think syslinux and FreeDOS call 1348 - will check their buffers later.
>>
>> I have tested 1348 on VMware Player 3.0.0 build-203739. It runs
>> PhoenixBIOS 4.0 Release 6.0, VMware BIOS build 314. Results:
>> Input Buffer length -> Output Buffer length
>> 1a -> 1a
>> 1e -> 1e
>> 42 -> 1e (looks like it doesn't support 42!)
>> 4a -> 4a (wrong output buffer length, should be 1e; uses space padding)
>>
>> Will do more tests later.
>>
> RBIL mention that:
> Dell machines using PhoenixBIOS 4.0 Release 6.0 fail to correctly
> handle this function if the flag word at DS:[SI+2] is not 0000h on
> entry
> Make sure to have it set to zero in you testing. May be VMware's
> build has the same problem.
I cleared the buffer on each test. Here are the resulting buffers:
1a
00: 1a 00 01 00 ff 3f 00 00 - 0f 00 00 00 3f 00 00 00
10: 00 00 40 01 00 00 00 00 - 00 02 -- -- -- -- -- --
1e
00: 1e 00 01 00 ff 3f 00 00 - 0f 00 00 00 3f 00 00 00
10: 00 00 40 01 00 00 00 00 - 00 02 c6 00 40 00 -- --
42
00: 1e 00 01 00 ff 3f 00 00 - 0f 00 00 00 3f 00 00 00
10: 00 00 40 01 00 00 00 00 - 00 02 c6 00 40 00 -- --
4a
00: 4a 00 01 00 ff 3f 00 00 - 0f 00 00 00 3f 00 00 00
10: 00 00 40 01 00 00 00 00 - 00 02 c6 00 40 00 dd be
20: 2c 00 00 00 50 43 49 20 - 41 54 41 20 20 20 20 20
30: 00 07 01 00 00 00 00 00 - 00 00 00 00 00 00 00 00
40: 00 00 00 00 00 00 00 00 - 00 bf -- -- -- -- -- --
Sebastian
More information about the SeaBIOS
mailing list