This forum is in permanent archive mode. Our new active community can be found here.

The BIOS/EFI Discussion

edited October 2008 in Technology
"Oh man, that's a pretty awesome job making the Phoenix BIOS. What are you guys doing about BIOS replacements like EFI and such?"

**Edit - I didn't notice there is a Technology section...oops, haha. I'm guessing this discussion would be better suited for there, if someone can move it.**

I thought I'd bring this discussion outside of the introduction section. First I'd like to disclose that I'm not working in the EFI (codename Tiano) section of Phoenix, and my knowledge regarding it is fairly limited to talking with the developers that do.

What one has to understood is the role of BIOS in computer systems. From my understanding of BIOS after working here for a few months is that a system can be interpreted as made up of three layers: hardware, software, and firmware (BIOS/EFI). The role of BIOS is to effectively be an initialization layer for the software (such as on OS) to use the hardware. This includes things like memory, CPU control, and in general the entire chipset of the platform. After all this is done, the BIOS will hand-off control to the operating system.

Now for EFI, it essentially is the same thing. The big deal is that Intel is pushing it, not because it's better, but because they make it. I said a bit more there than I probably meant. EFI has it's advantages, as well. One of the main advantages is that it is extremely modular, with generic modules. Updates can be added quickly and not interfere with other parts of the firmware, this is done to an extent with legacy BIOS, I believe legacy as much more specific modules. The bigger advantage is that it will be a standard. A standard interface does exist, but not to a huge extent and not well documented either. I've often had to include very specific tricks in code to get pieces of hardware to work with an OS (most of times a linux distro, but also with Windows).

One other point is that, to my knowledge, EFI and UEFI solutions both still require at least some firmware to do a few platform specific initialization before they can do their thing.

The biggest resistance to Tiano is that BIOS does everything Tiano does already. In addition, the Tiano code base is much larger due to it having to 'just work' with both new and old hardware. For most systems this isn't a problem. But, when you move to the embedded side of the market Tiano is bulky and excessive, which embedded people hate (I'm an embedded guy, it's what I studied at the university). It's also slightly slower as a result, and with the push for the all-wanted instant-on approach to computers. It'll take more time and updates for them to figure it out, in my opinion.

Will legacy BIOS be replaced with EFI? For the most part yes, BIOS vendors will provide Tiano capable support for EVERY new Intel platform because, well, we don't have much a choice if we want Intel on our side. And with Intel advertising it more and more to OEMs the demand will most likely go up. But, legacy BIOS will also continue to exist for the rest of the market as it always has, most likely as a separate option.

Like I said, my knowledge is very limited. I would love to work on it myself, but they're leaving it to the more senior developers.


  • This is all really fascinating to me. Maybe we will get you on a Monday show for interviewing.

    What do you think about the open source BIOS projects like Linux BIOS, Open BIOS, etc.?
  • A show about this would be a great Monday show. I'd look forward to it!
  • I don't really know all that much about them. I'm still pretty green in the field. Like with all open source projects I'm impressed that people are taking the initiative make them, if they feel that it is needed. Like I said though, BIOS tend to be very platform specific because it involves hardware initialization, and hardware can very from board to board. I would suppose that the key to them is have a solid core down and going with the modular approach. Browsing websites for them very briefly, it looks like they did they're coding in C. Which would be amazing to me. 1) I think the abstraction from ASM to C for BIOS work would be very complicated. When working at the bit level with registers, maybe it's just me, but ASM would seem more logical. 2) I have trouble fitting all the features that I would want, with ASM optimization, so with C I'm guessing that either the BIOS's are not as fully featured or they've done some impressive work that might be worth checking out sometime (I have to make sure to read over the companies policies on doing so...I remember a long chapter about their policy of looking at open source code). Also, there is confidential information regarding chipsets and boards that are given to BIOS vendors from Intel and others, so it'd be interesting to figure out how they managed to figure out some of the minors points that could cause some blue smoke to come out.

    As for a show, I don't know about that. I don't want to come off as modest if that's how I'm coming off, I really am pretty new to all of this still (and am certainly still learning a ton). So, I'm not sure how much exactly I can say or how many question I could actually answer.
  • I would like to hear more on the subject. Usually I tend to find areas of computer systems very interesting when I'm not familiar with them. Just last weekend I have written my first bootable x86 program (using BIOS interrupts in ASM of course) and its really cool. Going to try and get a basic boot loader working this weekend ^^

    Anyways before I run to wikipi-tan for more reading on the subject, I'd like to encourage Scott that a Monday show like this would be great and that geeknights interviews have a habit of being kick-ass.

  • As for a show, I don't know about that. I don't want to come off as modest if that's how I'm coming off, I really am pretty new to all of this still (and am certainly still learning a ton). So, I'm not sure how much exactly I can say or how many question I could actually answer.
    If you don't want to be on the show, I can't make you. Is there perhaps some other BIOS genius at Phoenix who would like to be interviewed? Perhaps some awesome old UNIX santa claus with a giant beard who has been there for over a decade?
  • I would like to hear more about BIOS and EFI as well. I got a very broad IT education and I love getting into specifics about computers.
  • edited October 2008
    The linux bios project is currently called coreboot. (are they trying to lure me in?)

    Anyways I might do the following tutorial when I free up some time: QEMU Build Tutorial
    "If you don't have a mainboard supported by coreboot don't worry: QEMU can help you to emulate one. Using coreboot with QEMU may serve the purpose to familiarize you as a developer with coreboot and may be a reference system during development."
    Post edited by Apreche on
  • I just talked to a few of my fellow developers that I'm closer with, but the interest in doing an interview was definitely lacking. I know a few of those old UNIX guys, but they're extremely busy with their work at the moment (which is normal for them). I'm not sure if I mentioned, but my former company General Software was bought by Phoenix at the beginning of September. So, there is a huge rush of pushing to get things done, to start new projects and learning of each others code base making their busy schedules even busier. I wish I could get them on the show, as well, since they are the geeky people that I think we all enjoy talking to. I wouldn't personally mind doing the interview, under the understanding that I am green and learning and if I say things that are wrong, well, I'm learning.

    I certainly don't mind answering questions here on the forum. If there are things I don't know, they will be a benefit for me to learn, and I'll get back to you as soon as I can.

    C-o-r-e: Very nice on getting you're first bootable x86 program running. I was excited when I first got mine working. Is there any kind of project you have in mind for the future or are you going for a learning experience type of thing?
  • Yea its really cool to stick an old floppy into a 486 machine missing any other drives and having a program actually work! I find it impossible to explain this to my "Visual Basic" friends how I get such enjoyment from writing 200 lines of code that enables me to do "nothing"

    I guess it could classify in to a learning exercise but I wouldn't call it that. There is definitely some type of gratification I get by digging lower down in to a computer, its almost as if my power level gets that much closer to 9000 every time I get something more fundamental and or more complicated to work. I suppose you could say that its true that I am gaining a type of power but realistically its all for fun ^^

    Currently I'm working on a larger project of my own witch I should probably pay more attention to. However that is a topic for an other thread on an other day.
Sign In or Register to comment.