EBDA layout ????

Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
Post Reply
User avatar
kmtdk
Member
Member
Posts: 263
Joined: Sat May 17, 2008 4:05 am
Location: Cyperspace, Denmark
Contact:

EBDA layout ????

Post by kmtdk »

Hi..
well
searching both the wiki, and google, im not able to find any information on the EBDA layout ( what it excatly contain, and where....)
so i woul like to hear if any had some documents on it, or just something, since all says that it is usefull for os ..

KMT dk
well, what to say, to much to do in too little space.
when it goes up hill, increase work, when it goes straight, test yourself but when going down, slow down.
User avatar
Troy Martin
Member
Member
Posts: 1686
Joined: Fri Apr 18, 2008 4:40 pm
Location: Langley, Vancouver, BC, Canada
Contact:

Re: EBDA layout ????

Post by Troy Martin »

The EBDA isn't standard, unlike a good chunk of the BDA. It really depends on the BIOS itself, unfortunately :(
Image
Image
Solar wrote:It keeps stunning me how friendly we - as a community - are towards people who start programming "their first OS" who don't even have a solid understanding of pointers, their compiler, or how a OS is structured.
I wish I could add more tex
User avatar
NickJohnson
Member
Member
Posts: 1249
Joined: Tue Mar 24, 2009 8:11 pm
Location: Sunnyvale, California

Re: EBDA layout ????

Post by NickJohnson »

So what exactly is the point of the EBDA if there's no way you can consistently interface with it? It seems like it benefits no one for the BIOS writers to be inconsistent.
User avatar
Troy Martin
Member
Member
Posts: 1686
Joined: Fri Apr 18, 2008 4:40 pm
Location: Langley, Vancouver, BC, Canada
Contact:

Re: EBDA layout ????

Post by Troy Martin »

Let me rephrase that; the EBDA isn't universally standardized, therefore there may be three or four different "standards" and implementations. I'm not sure what the most "standard" of these standards is, however.
Image
Image
Solar wrote:It keeps stunning me how friendly we - as a community - are towards people who start programming "their first OS" who don't even have a solid understanding of pointers, their compiler, or how a OS is structured.
I wish I could add more tex
User avatar
kop99
Member
Member
Posts: 120
Joined: Fri May 15, 2009 2:58 am

Re: EBDA layout ????

Post by kop99 »

User avatar
Brendan
Member
Member
Posts: 8561
Joined: Sat Jan 15, 2005 12:00 am
Location: At his keyboard!
Contact:

Re: EBDA layout ????

Post by Brendan »

Hi,
NickJohnson wrote:So what exactly is the point of the EBDA if there's no way you can consistently interface with it? It seems like it benefits no one for the BIOS writers to be inconsistent.
Could you imagine writing a kernel, where during run-time the kernel can only modify data in 2 areas (".bss1" and ".bss2"), and both areas must comply with established standards dating back several decades? It'd be virtually impossible to do anything differently - no new features, no improvements on old features, no support for new hardware, etc.

It's the same for the BIOS. During run-time the BIOS can only modify data in the BDA or the EBDA, and the BDA must comply with established standards dating back several decades. Thankfully, the BIOS can use the EBDA in any way it likes, which is the only reason why the BIOS is able to support things that didn't exist when the EBDA was first invented.

Of course the downside here is that the EBDA isn't standardized, but that only means that software can't understand data that it doesn't need to understand. ;)


Cheers,

Brendan
For all things; perfection is, and will always remain, impossible to achieve in practice. However; by striving for perfection we create things that are as perfect as practically possible. Let the pursuit of perfection be our guide.
User avatar
Troy Martin
Member
Member
Posts: 1686
Joined: Fri Apr 18, 2008 4:40 pm
Location: Langley, Vancouver, BC, Canada
Contact:

Re: EBDA layout ????

Post by Troy Martin »

Brendan, you're more knowledgeable about this kind of crap than me; is there at least a chunk of the EBDA that is either standardized or roughly the same in most implementations?
Image
Image
Solar wrote:It keeps stunning me how friendly we - as a community - are towards people who start programming "their first OS" who don't even have a solid understanding of pointers, their compiler, or how a OS is structured.
I wish I could add more tex
User avatar
Brendan
Member
Member
Posts: 8561
Joined: Sat Jan 15, 2005 12:00 am
Location: At his keyboard!
Contact:

Re: EBDA layout ????

Post by Brendan »

Hi,
Troy Martin wrote:Brendan, you're more knowledgeable about this kind of crap than me; is there at least a chunk of the EBDA that is either standardized or roughly the same in most implementations?
From what I remember, the first word is meant to contain the size of the EBDA in KiB. Of course "meant to" doesn't necessarily imply "always will, on all past, present and future systems".

There's also some things that may be inside the EBDA that do comply with certain specifications; like the MP specification tables (the floating pointer structure and/or the tables themselves), the ACPI "FACS" (Firmware ACPI Control Structure), and maybe data for SMBIOS, APM, etc. The corresponding specifications will tell you how you're meant to find things - you can't assume that any of these things will be at any specific address in the EBDA, or that they'll actually be in the EBDA at all.


Cheers,

Brendan
For all things; perfection is, and will always remain, impossible to achieve in practice. However; by striving for perfection we create things that are as perfect as practically possible. Let the pursuit of perfection be our guide.
Post Reply