Hello (michaln),
As part of the BIOS extension I have to enumerate all of the disk controllers in the system (both PATA and SATA) to work out what drives are attached to them.
I thought that enumerating the controllers would be easy using Int 1Ah function B103h (find device by class code) and looking for class codes 0101 (IDE), 010600 (SATA) and 010601 (AHCI). It turns out that this BIOS function needs both the class code, subclass code and programming interface which is problematical on the PATA controllers as it changes depending on whether controllers are in legacy or native mode. Is there a way to get the BIOS function to ignore the PI register without me having to implement a replacement?
With the VirtualBox AHCI controller, how does a disk attached to SATA Port 0 appear to the controller? Is it accessible through the Primary Command Block Base Address (equivalent to primary master) or do I find the base address for the command block for sending commands to this disk at an alternate location?
Thanks,
Andy.
Enumerating disks and controllers at a BIOS level
-
- Volunteer
- Posts: 1631
- Joined: 25. May 2010, 23:48
- Primary OS: Mac OS X other
- VBox Version: PUEL
- Guest OSses: Assorted Linux, Windows Server 2012, DOS, Windows 10, BIOS/UEFI emulation
Enumerating disks and controllers at a BIOS level
My crystal ball is currently broken. If you want assistance you are going to have to give me all of the necessary information.
Please don't ask me to do your homework for you, I have more than enough of my own things to do.
Please don't ask me to do your homework for you, I have more than enough of my own things to do.
-
- Site Moderator
- Posts: 39134
- Joined: 4. Sep 2008, 17:09
- Primary OS: MS Windows 10
- VBox Version: PUEL
- Guest OSses: Mostly XP
Re: Enumerating disks and controllers at a BIOS level
This is hardly a "Using VirtualBox" question. Moving to "VirtualBox API" forum, for want of anything better.
-
- Oracle Corporation
- Posts: 2973
- Joined: 19. Dec 2007, 15:45
- Primary OS: MS Windows 7
- VBox Version: PUEL
- Guest OSses: Any and all
- Contact:
Re: Enumerating disks and controllers at a BIOS level
If you are interested in bootable drives then using EDD might be better. Also, what about bootable USB drives and similar?
With the VBox AHCI emulation, there is no IDE compatibility.
With the VBox AHCI emulation, there is no IDE compatibility.
-
- Volunteer
- Posts: 1631
- Joined: 25. May 2010, 23:48
- Primary OS: Mac OS X other
- VBox Version: PUEL
- Guest OSses: Assorted Linux, Windows Server 2012, DOS, Windows 10, BIOS/UEFI emulation
Re: Enumerating disks and controllers at a BIOS level
Thanks for the heads up. Looks like I can get all the information I need from the various int 13h calls and saves me having to poke around finding all of the disks and probing them myself!
Andy.
Andy.
My crystal ball is currently broken. If you want assistance you are going to have to give me all of the necessary information.
Please don't ask me to do your homework for you, I have more than enough of my own things to do.
Please don't ask me to do your homework for you, I have more than enough of my own things to do.