Changeset 38848 in vbox
- Timestamp:
- Sep 23, 2011 1:27:55 PM (13 years ago)
- Location:
- trunk/src/VBox/Devices/PC/BIOS-new
- Files:
-
- 1 added
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/PC/BIOS-new/ata.c
r38699 r38848 380 380 AtaData->channels[1].irq = 15; 381 381 #endif 382 #if 0 //@todo - temporarily removed to avoid conflict with AHCI 382 383 #if BX_MAX_ATA_INTERFACES > 2 383 384 AtaData->channels[2].iface = ATA_IFACE_ISA; … … 391 392 AtaData->channels[3].iobase2 = 0x360; 392 393 AtaData->channels[3].irq = 11; 394 #endif 393 395 #endif 394 396 #if BX_MAX_ATA_INTERFACES > 4 -
trunk/src/VBox/Devices/PC/BIOS-new/ebda.h
r38828 r38848 211 211 fdpt_t fdpt1; 212 212 213 #if 0 213 214 unsigned char filler2[0xC4]; 215 #else 216 unsigned char filler2[0xC2]; 217 uint16_t ahci_seg; 218 #endif 214 219 215 220 // ATA Driver data … … 228 233 #ifdef VBOX_WITH_BIOS_AHCI 229 234 // ahci_t ahci; 230 uint16_t SegAhci; //@todo: rename... 235 // uint16_t ahci_seg; //@todo: Someone is trashing the data here!?! 231 236 #endif 232 237 -
trunk/src/VBox/Devices/PC/BIOS-new/makefile
r38733 r38848 16 16 CFLAGS = -q -0 -wx -zu -s -oas -d1+ -ms 17 17 DEFS = -DVBOX -DVBOX_LANBOOT_SEG=0xE200 -DVBOX_VERSION_STRING=$(QUOTE)0.9$(QUOTE) & 18 -DVBOX_WITH_SCSI 18 -DVBOX_WITH_SCSI -DVBOX_WITH_BIOS_AHCI 19 19 20 20 AFLAGS = -q -0 -wx … … 30 30 OBJS = bios.obj print.obj ata.obj floppy.obj eltorito.obj boot.obj & 31 31 keyboard.obj disk.obj serial.obj system.obj timepci.obj & 32 ps2mouse.obj parallel.obj logo.obj scsi.obj pcibio32.obj orgs.obj 32 ps2mouse.obj parallel.obj logo.obj scsi.obj ahci.obj & 33 pcibio32.obj orgs.obj 33 34 34 35 vbxbios.rom : vbxbios.bin … … 41 42 clname DATA segaddr=0xF000 segment _DATA & 42 43 clname CODE & 43 segment _TEXT segaddr=0xF000 offset=0x1 400 &44 segment _TEXT segaddr=0xF000 offset=0x1600 & 44 45 segment BIOS32 segaddr=0xF000 offset=0xDE00 & 45 46 segment BIOSSEG segaddr=0xF000 offset=0xE000 & -
trunk/src/VBox/Devices/PC/BIOS-new/orgs.asm
r38789 r38848 100 100 extrn _cdemu_isactive:near 101 101 extrn _cdemu_emulated_drive:near 102 extrn _ahci_int13:near 102 103 extrn _int13_harddisk:near 103 104 extrn _int13_harddisk_ext:near … … 114 115 extrn _int74_function:near 115 116 extrn _ata_init:near 117 extrn _ahci_init:near 116 118 extrn _scsi_init:near 117 119 extrn _ata_detect:near … … 153 155 public hard_drive_post 154 156 public int13_legacy 157 public ahci_int13_handler 155 158 public int70_handler 156 159 public int75_handler … … 450 453 endif 451 454 452 call _print_bios_banner453 454 455 ;; floppy setup 455 456 call floppy_post … … 458 459 call hard_drive_post 459 460 461 C_SETUP ; in case assembly code changed things 462 ifdef VBOX_WITH_BIOS_AHCI 463 ; AHCI driver setup 464 call _ahci_init 465 endif 466 467 call _print_bios_banner 468 460 469 ;; El Torito floppy/hard disk emulation 461 C_SETUP ; in case assembly code changed things462 470 call _cdemu_init 463 471 … … 1482 1490 include pirq.inc 1483 1491 1492 ifdef VBOX_WITH_BIOS_AHCI 1493 1494 ahci_int13_handler: 1495 ;; allocate space for IRET frame used to call old INT 13h 1496 push ax 1497 push ax 1498 push ax 1499 1500 pusha 1501 push ds 1502 push es 1503 push 0 ; Room for return value (default 0) 1504 C_SETUP 1505 call _ahci_int13 1506 pop ax 1507 pop es 1508 pop ds 1509 cmp ax, 0 ; Check if interrupt was handled 1510 je ahci_int13_out 1511 1512 popa ; Restore caller's registers 1513 iret ; Call old handler 1514 1515 ahci_int13_out: 1516 popa 1517 add sp, 6 ; Remove the IRET frame 1518 iret 1519 1520 endif 1484 1521 1485 1522 ;; --------------------------------------------------------
Note:
See TracChangeset
for help on using the changeset viewer.