Learn how easy it is to sync an existing GitHub or Google Code repo to a SourceForge project! See Demo

Close

Using actual BIOS bin in Bochs?

Help
2005-03-17
2013-07-02
  • Steve Ellenoff
    Steve Ellenoff
    2005-03-17

    I'm new to Bochs so I apologize if this question is obvious, but can actual bios bins that I've read off the flash roms be used in Bochs?

    I see that Bochs uses a custom made ( I assume ), main & video bios..

    I realize this is probably done so as to avoid the million and one variations of hardware and corresponding bios that go with it, but I was just curious if it was even possible to get an actual bios to work..

    I tried several and they all crash or cause panics in some form or the other..

    I'm curious why this is.. If the hardware is emulated fully, shouldn't it work?

    Granted, the mobo specific registers & special vendor specific bios codes won't work, but I wouldn't think it would crash bochs... At most I just figured it wouldn't work, ie, the bios code would hit some kind of abort/endless loop code since the POST was probably detected as failed..

     
    • Renan Birck
      Renan Birck
      2005-03-19

      I've tried this also, using the BIOS from an old Pentium II motherboard (Amptron PM-7900), and it doesn't work.

      I think that all BIOS'es are manufacturer-specific in one way or another.

      Bochs would then need to emulate various chipsets (e.g. the Amptron motherboard I used had an Intel chipset; my current one has a SiS chipset) and features such as "onboard" network/audio/video/modem.

      And also, I think that using the BIOS for a motherboard made for AMD processors wouldn't work... (Bochs emulates a Pentium, right?)

      So, I think that using a real BIOS in Bochs is currently impossible.

      The same goes for a video BIOS.

       
    • Alex Sutton
      Alex Sutton
      2005-03-26

      "So, I think that using a real BIOS in Bochs is currently impossible.

      The same goes for a video BIOS. "

      While I agree that using a real BIOS looks like it doesn't work, I have managed to find a video bios which does work - my old SIS6326 PCI card had a .rom file for download off the website, and I tried it and it worked! Obviously it didn't do much though because it wasn't running on the proper hardware - the 6326 card isn't emulated - but DOS things worked fine, if i remember correctly

       
    • Alex Sutton
      Alex Sutton
      2005-03-27

      "So, I think that using a real BIOS in Bochs is currently impossible."

      Me again! I was just messing around in Bochs tonight, and managed to get an actual BIOS to show up - ok it didn't do much and there were errors on the way, but it shows that it's not impossible! Don't know what all the 20Mhz is about though, but then i'm a newbie so there's your answer. I've uploaded a pic to: (have to copy and paste, wasn't sure if i could use HTML!)

      http://uk.geocities.com/alex_sutton_2000_uk/bios_screen.jpg

       
    • Alex Sutton
      Alex Sutton
      2005-03-27

      Also, i tried "pressing DEL to enter setup", but got:

      01344453000i[KBD ] internal keyboard buffer full, ignoring scancode.(d3)
      01344598500i[KBD ] internal keyboard buffer full, ignoring scancode.(e0)
      01344598500i[KBD ] internal keyboard buffer full, ignoring scancode.(53)
      01344651675e[KBD ] keyboard disabled & send of byte ff to kbd

      No idea what all that means and whenever i press a key it reports that it's been ignored, but i'm sure someone here knows what it's all about.

       
    • Steve Ellenoff
      Steve Ellenoff
      2005-04-04

      I had the same trouble with a 256K file..
      I'm sure you can overwrite the code to let it load that size file, I just haven't had time to try it yet..

       
      • Renan Birck
        Renan Birck
        2005-04-09

        Bochs loads a BIOS in address 0xf0000-0xfffff (ffff bytes = 65535 bytes = 64KB).

        To use a 256KB BIOS, I think we would need to make Bochs load into addresses from 0xf0000 to (0xf0000 + 262144 bytes - 0x3FFFF? My hex math is not very good).

         
    • Renan Birck
      Renan Birck
      2005-04-09

      Just for a try, I tried using the video BIOS from a GeForce FX 5200 video card and IT WORKS!
      Windows 3.1 boots (in VGA 640x480x16 only), MSD tells that the video card manufacturer is NVidia...

      Look here:

      http://img231.exs.cx/img231/1928/bochswithfx5200video5gu.jpg

       
      • lsproc
        lsproc
        2005-04-10

        Not trying to be supprising or anything but this could be a big movement for bochs! Did you have any AwardBIOSes that could boot up most OSs you tried.

        If anyone wants a support form I have made one:
        On blank brackets area fill in the text. In the one with brackets and a X delete the wrong X.
        EMAIL [ ]
        NOTE: If you used a own VGA bios skip this bit.
        Bios maker [ ] (e.g. Award, Phonix)
        Bios ver [ ] (e.g. 4.0pg
        If you used a VGA bios do this bit.
        Did it boot YES [X] NO[X]
        If not what errors did you get [ ]
        If yes what OSs worked


        Did any crash. YES [X] NO [X]
        If YES what happened [ ]
        IF YOU USED A OWN VGABIOS
        Who made it

        What model

        What version [ ] (e.g. 4.1)
        How much video mem [ ]mb
        Thanks

         
    • Alex Sutton
      Alex Sutton
      2005-04-10

      Has anyone managed to get any AMIBIOS roms working? I've had a look but I can only find 256K ones on the net, not 64k/128k Roms.

       
      • lsproc
        lsproc
        2005-04-10

        Find a very early BIOS. About 1996 should be sufficient.
        What are your big sucsesses so far?

         
    • Alex Sutton
      Alex Sutton
      2005-03-27

      Got another one working, actually got into the BIOS this time and had a RAM count:

      http://uk.geocities.com/alex_sutton_2000_uk/in_bios.jpg

      Sorry, i just find it interesting!

       
    • Alex Sutton
      Alex Sutton
      2005-03-29

      Noticed something else with these real BIOS images, the ones that "work" anyway. They get upto a stage where it says "CMOS error, defaults loaded" and am i right in thinking this is because you cannot write to the "ROM"? As the output below might show:

      00015007232p[CMOS ] >>PANIC<< unsupported cmos io write to reg F, case 0x10!
      00015007279p[CMOS ] >>PANIC<< unsupported cmos io write to reg F, case 0x20!
      00015007326p[CMOS ] >>PANIC<< unsupported cmos io write to reg F, case 0x40!
      00015007373p[CMOS ] >>PANIC<< unsupported cmos io write to reg F, case 0x80!

      Also i've tried saving the settings in the BIOS setup but this obviously has no effect, so i was wondering if there was anyway around this? I've explored using the CMOS Image file option but don't even know if it is for this purpose. This is all purely out of interest, i don't expect to get anything working, it's just interesting to play around with.

      Anyway, i've put some screenshots in http://uk.geocities.com/alex_sutton_2000_uk/bochs if anybody is interested that is!

       
    • Steve Ellenoff
      Steve Ellenoff
      2005-03-31

      That is very cool Alex!

      Exactly what I was looking to see.. When I tried it, (this was 6 months ago), the bios crashed hard..
      I might try some others to see if I can get it to work, would be more "authentic" for me.. :)
      If nothing else, it makes the "cool" factor more real..

       
    • Renan Birck
      Renan Birck
      2005-04-03

      The successful results using a real BIOS gave me an idea:

      • What about using a real BIOS from a Cirrus Logic GD5430 video card for emulating it, instead of the 'custom' video BIOS?

      And BTW, I just tried it with a BIOS from an ASUS P4S800-D motherboard.

      Fails because the BIOS file is 512KB (4Mbit) while Bochs uses a 64KB BIOS.

       
    • Alex Sutton
      Alex Sutton
      2005-04-09

      With regard to what address at which the BIOS is loaded, I don't know much about this, all i know is that to have any luck with 128K BIOS Rom images, you must load them at 0xe0000.

      Like I said I don't know much about memory addresses, so would i sound totally dumb if i said to load 256K files, you would put set the address at 0xd0000? Probably totally wrong but never mind :)

       
    • I suggest you to move this discussion to Bochs-Developers mailing list. And please write some minutes of thread above s.t. people will understand what going on.

      Thanks,
      Stanislav

      P.S> All BIOS bins that I have are bigger than 64K used by Bochs. I need a support of bigger BIOS images before I try smth ...

       
      • lsproc
        lsproc
        2005-04-10

        Great idea. We could be emulating our own hardware soon. (Technicly wouldnt that speed up the emulation), Talking about graphics. If I set bochs to use the SDL driver would I get faster Bochs?

         
  • Alex Sutton
    Alex Sutton
    2011-12-06

    Sorry to drag this up after 6 (can't believe it's been that long!) years.

    I haven't used Bochs for years now but came back to having a play around with
    it to see where it's at now. Did anyone ever have any more luck using a real
    BIOS image? I've still not found a working AMIBIOS but I read in the
    documentation that now 512K BIOS images are supported, anyone had a go at
    using one?

    On another note, where would you be able to obtain 386/486 BIOS images on the
    net? Back in the day I'm guessing they wouldn't have been available as they
    weren't flash BIOS' but are there any images out there?

    Bochs has made so many strides since I last used it.

     
  • Alex Sutton
    Alex Sutton
    2011-12-06

    Just if anyone's interested, answered one of my own questions: found a whole
    page full of 386/486 ROM dumps! This should be fun haha

    http://chukaev.ru54.com/bios_cs.htm

     
  • Volker Ruppert
    Volker Ruppert
    2011-12-06

    A BIOS heavily depends on the installed hardware. That's why you usually
    cannot use a BIOS designed for machine A on machine B. But now you can use
    SeaBIOS with Bochs. That is an attempt to write a universal BIOS.