Intel provides an implementation of at least part of EFI that we can use which has various licenses associated with it. The open source parts are here https://www.tianocore.org/. I have a copy of the Beyond BIOS book listed in the upper right from work which I've started working through. I don't know enough about EFI at the moment or about what that provides to know how much we'd need to add. EFI actually comes closer to an operating system than the thin flimsy firmware interface the traditional BIOS provides, so it would likely be a lot of work to cook one up totally from scratch. Before anyone jumps to the conclusion that we should therefore use a traditional BIOS, keep in mind that those are almost always written entirely in assembly and in 16 bit real mode with severe space limitations. They work in such a way that there are basically no higher language compilers that target them, so the tools you have to work with are an assembler and maybe gdb. The interfaces are also VERY crufty and also complex and poorly documented. Something like linuxbios helps to get partway there, but just figuring out linuxbios itself is purported to not be for the faint of heart.
Gabe nathan binkert wrote: > My only question would be, is there an existing bios from qemu or > linuxbios or something like that which we can adapt and will be > easier/faster? I think it's acceptable to use GPL code for that sort > of thing since it will be totally separate from M5. > > Nate > > On Sat, Jan 10, 2009 at 6:22 PM, Steve Reinhardt <[email protected]> wrote: > >> I think the only reason it's in a separate repository is because it's >> derived from some Compaq/HP code and probably has a different license. >> If we were to implement an EFI BIOS from scratch (presumably just a >> fake one that follows the API) then I think it could live in the main >> repo. >> >> Steve >> >> On Sat, Jan 10, 2009 at 4:44 PM, Ali Saidi <[email protected]> wrote: >> >>> Yea the alpha-system repository. Although it could be called something >>> else. At one point we talked about having a system directory in m5 >>> that contained alpha/sparc/... code. That is probably a good bet. >>> >>> Ali >>> >>> On Jan 10, 2009, at 8:48 PM, Gabe Black wrote: >>> >>> >>>> We actually have an implementation for Alpha's equivalent, right? The >>>> console binary? Do we have that in a separate repository? Would we do >>>> that for our BIOS of whichever flavor? >>>> >>>> Gabe >>>> >>>> nathan binkert wrote: >>>> >>>>> My guess is that people want to run Linux, OpenSolaris, and maybe >>>>> someday windows. I think that OpenSolaris can probably do EFI. >>>>> Also, >>>>> the bios emulation is a software thing that you can probably load >>>>> as a >>>>> loader and runs on top of EFI, so maybe we can use that if it >>>>> matters. >>>>> >>>>> I guess this is a vote in favor of EFI if it is indeed easier to >>>>> implement. >>>>> >>>>> Nate >>>>> >>>>> >>>>> On Fri, Jan 9, 2009 at 1:20 PM, <[email protected]> wrote: >>>>> >>>>> >>>>>> According to Wikipedia, the following started supporting EFI at >>>>>> some point: >>>>>> >>>>>> Linux with elilo >>>>>> HP-UX on IA-64 >>>>>> OpenVMS >>>>>> OSX >>>>>> Windows 2000 on Itanium >>>>>> Windows Server 2003 for IA-64 >>>>>> Windows XP 64-bit Edition >>>>>> Windows blah blah. >>>>>> >>>>>> EFI is the only supported mechanism to boot OSX, I believe, and >>>>>> BIOS is the only >>>>>> supported mechanism to boot basically anything not in the list >>>>>> above. The list >>>>>> fortunately has most important OSes, but that would include DOS >>>>>> for example. >>>>>> >>>>>> Basically, OSX has switched completely because they control the >>>>>> whole hardware >>>>>> stack. I think everyone else is switching too, but because people >>>>>> apparently >>>>>> still want to run windows 95 on their 16 way super servers they're >>>>>> taking >>>>>> longer. >>>>>> >>>>>> Gabe >>>>>> >>>>>> Quoting nathan binkert <[email protected]>: >>>>>> >>>>>> >>>>>> >>>>>>> I'd say whichever is easier. What guests are in each camp? >>>>>>> >>>>>>> Nate >>>>>>> >>>>>>> On Fri, Jan 9, 2009 at 10:50 AM, <[email protected]> wrote: >>>>>>> >>>>>>> >>>>>>>> I don't plan on doing any work on this in the near future, but >>>>>>>> what are >>>>>>>> >>>>>>>> >>>>>>> people's >>>>>>> >>>>>>> >>>>>>>> opinions about implementing an EFI BIOS for m5 rather than a >>>>>>>> traditional >>>>>>>> >>>>>>>> >>>>>>> BIOS? I >>>>>>> >>>>>>> >>>>>>>> think EFI would be easier to implement and work with and easier >>>>>>>> to get >>>>>>>> documentation and support tools for, but a traditional BIOS would >>>>>>>> >>>>>>>> >>>>>>> potentially >>>>>>> >>>>>>> >>>>>>>> be compatible with more guests. EFI supports a compatibility >>>>>>>> layer, but at >>>>>>>> >>>>>>>> >>>>>>> that >>>>>>> >>>>>>> >>>>>>>> point we'd be approximating implementing both, I think. That may >>>>>>>> be ok >>>>>>>> >>>>>>>> >>>>>>> because I >>>>>>> >>>>>>> >>>>>>>> think most BIOS services are ignored by most modern guests, with >>>>>>>> the fairly >>>>>>>> minor exception of a boot loader. >>>>>>>> >>>>>>>> Gabe >>>>>>>> >>>>>>>> _______________________________________________ >>>>>>>> m5-dev mailing list >>>>>>>> [email protected] >>>>>>>> http://m5sim.org/mailman/listinfo/m5-dev >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>> _______________________________________________ >>>>>>> m5-dev mailing list >>>>>>> [email protected] >>>>>>> http://m5sim.org/mailman/listinfo/m5-dev >>>>>>> >>>>>>> >>>>>>> >>>>>> >>>>>> >>>>>> >>>>> _______________________________________________ >>>>> m5-dev mailing list >>>>> [email protected] >>>>> http://m5sim.org/mailman/listinfo/m5-dev >>>>> >>>>> >>>> _______________________________________________ >>>> m5-dev mailing list >>>> [email protected] >>>> http://m5sim.org/mailman/listinfo/m5-dev >>>> >>>> >>> _______________________________________________ >>> m5-dev mailing list >>> [email protected] >>> http://m5sim.org/mailman/listinfo/m5-dev >>> >>> >> _______________________________________________ >> m5-dev mailing list >> [email protected] >> http://m5sim.org/mailman/listinfo/m5-dev >> >> >> > _______________________________________________ > m5-dev mailing list > [email protected] > http://m5sim.org/mailman/listinfo/m5-dev > _______________________________________________ m5-dev mailing list [email protected] http://m5sim.org/mailman/listinfo/m5-dev
