VirtualBox

Changeset 16537 in vbox


Ignore:
Timestamp:
Feb 5, 2009 5:55:47 PM (16 years ago)
Author:
vboxsync
Message:

BIOS part to make Vista boot from the LsiLogic controller and boot speedup

Location:
trunk/src/VBox/Devices/PC/BIOS
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/PC/BIOS/logo.c

    r9534 r16537  
    305305        device = read_byte(ebda_seg, &EbdaData->ata.hdidmap[actual_device]);
    306306    }
     307
     308    if ((first_ctrl_printed == 0) && (second_ctrl_printed == 0))
     309        printf("No hard disks found");
    307310
    308311    printf("\n");
  • trunk/src/VBox/Devices/PC/BIOS/rombios.c

    r15712 r16537  
    220220
    221221#ifdef VBOX_WITH_SCSI
    222 #    define BX_MAX_SCSI_DEVICES 1
     222#    define BX_MAX_SCSI_DEVICES 2
    223223#endif
    224224
     
    55395539
    55405540      // Get logical geometry from table
    5541       nlc   = read_word(ebda_seg, &EbdaData->ata.devices[device].lchs.cylinders);
    5542       nlh   = read_word(ebda_seg, &EbdaData->ata.devices[device].lchs.heads);
    5543       nlspt = read_word(ebda_seg, &EbdaData->ata.devices[device].lchs.spt);
     5541#ifdef VBOX_WITH_SCSI
     5542      if (!VBOX_IS_SCSI_DEVICE(device))
     5543#endif
     5544      {
     5545        nlc   = read_word(ebda_seg, &EbdaData->ata.devices[device].lchs.cylinders);
     5546        nlh   = read_word(ebda_seg, &EbdaData->ata.devices[device].lchs.heads);
     5547        nlspt = read_word(ebda_seg, &EbdaData->ata.devices[device].lchs.spt);
     5548      }
     5549#ifdef VBOX_WITH_SCSI
     5550      else
     5551      {
     5552        Bit8u scsi_device = VBOX_GET_SCSI_DEVICE(device);
     5553        nlc   = read_word(ebda_seg, &EbdaData->scsi.devices[scsi_device].device_info.lchs.cylinders);
     5554        nlh   = read_word(ebda_seg, &EbdaData->scsi.devices[scsi_device].device_info.lchs.heads);
     5555        nlspt = read_word(ebda_seg, &EbdaData->scsi.devices[scsi_device].device_info.lchs.spt);
     5556      }
     5557#endif
     5558
    55445559      count = read_byte(ebda_seg, &EbdaData->ata.hdcount);
    5545 
    55465560#ifndef VBOX
    55475561      nlc = nlc - 2; /* 0 based , last sector not used */
     
    55785592
    55795593      // Get physical geometry from table
    5580       npc   = read_word(ebda_seg, &EbdaData->ata.devices[device].pchs.cylinders);
    5581       nph   = read_word(ebda_seg, &EbdaData->ata.devices[device].pchs.heads);
    5582       npspt = read_word(ebda_seg, &EbdaData->ata.devices[device].pchs.spt);
     5594#ifdef VBOX_WITH_SCSI
     5595      if (!VBOX_IS_SCSI_DEVICE(device))
     5596#endif
     5597      {
     5598        npc   = read_word(ebda_seg, &EbdaData->ata.devices[device].pchs.cylinders);
     5599        nph   = read_word(ebda_seg, &EbdaData->ata.devices[device].pchs.heads);
     5600        npspt = read_word(ebda_seg, &EbdaData->ata.devices[device].pchs.spt);
     5601      }
     5602#ifdef VBOX_WITH_SCSI
     5603      else
     5604      {
     5605        Bit8u scsi_device = VBOX_GET_SCSI_DEVICE(device);
     5606        npc   = read_word(ebda_seg, &EbdaData->scsi.devices[scsi_device].device_info.pchs.cylinders);
     5607        nph   = read_word(ebda_seg, &EbdaData->scsi.devices[scsi_device].device_info.pchs.heads);
     5608        npspt = read_word(ebda_seg, &EbdaData->scsi.devices[scsi_device].device_info.pchs.spt);
     5609      }
     5610#endif
    55835611
    55845612      // Compute sector count seen by int13
     
    57145742        Bit16u   blksize;
    57155743
    5716         npc     = read_word(ebda_seg, &EbdaData->ata.devices[device].pchs.cylinders);
    5717         nph     = read_word(ebda_seg, &EbdaData->ata.devices[device].pchs.heads);
    5718         npspt   = read_word(ebda_seg, &EbdaData->ata.devices[device].pchs.spt);
    5719         lba     = read_dword(ebda_seg, &EbdaData->ata.devices[device].sectors);
    5720         blksize = read_word(ebda_seg, &EbdaData->ata.devices[device].blksize);
     5744#ifdef VBOX_WITH_SCSI
     5745        if (!VBOX_IS_SCSI_DEVICE(device))
     5746#endif
     5747        {
     5748          npc     = read_word(ebda_seg, &EbdaData->ata.devices[device].pchs.cylinders);
     5749          nph     = read_word(ebda_seg, &EbdaData->ata.devices[device].pchs.heads);
     5750          npspt   = read_word(ebda_seg, &EbdaData->ata.devices[device].pchs.spt);
     5751          lba     = read_dword(ebda_seg, &EbdaData->ata.devices[device].sectors);
     5752          blksize = read_word(ebda_seg, &EbdaData->ata.devices[device].blksize);
     5753        }
     5754#ifdef VBOX_WITH_SCSI
     5755        else
     5756        {
     5757          Bit8u scsi_device = VBOX_GET_SCSI_DEVICE(device);
     5758          npc     = read_word(ebda_seg, &EbdaData->scsi.devices[scsi_device].device_info.pchs.cylinders);
     5759          nph     = read_word(ebda_seg, &EbdaData->scsi.devices[scsi_device].device_info.pchs.heads);
     5760          npspt   = read_word(ebda_seg, &EbdaData->scsi.devices[scsi_device].device_info.pchs.spt);
     5761          lba     = read_dword(ebda_seg, &EbdaData->scsi.devices[scsi_device].device_info.sectors);
     5762          blksize = read_word(ebda_seg, &EbdaData->scsi.devices[scsi_device].device_info.blksize);
     5763        }
     5764#endif
    57215765
    57225766        write_word(DS, SI+(Bit16u)&Int13DPT->size, 0x1a);
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette