X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?p=palacios.git;a=blobdiff_plain;f=palacios%2Fsrc%2Fdevices%2Fata.h;h=e31377a3f329c213bc9cd5c22b373bce95c4415e;hp=1e8df43526bd4592c12eca9abd82c168341efc7a;hb=a7dc3322984b3c76fe990de506418e180ec1b0de;hpb=92d5e22e6c67ea0164ff6e94059989971eb85b99 diff --git a/palacios/src/devices/ata.h b/palacios/src/devices/ata.h index 1e8df43..e31377a 100644 --- a/palacios/src/devices/ata.h +++ b/palacios/src/devices/ata.h @@ -56,10 +56,10 @@ static void ata_identify_device(struct ide_drive * drive) { // 32 bits access drive_id->dword_io = 1; -#if 0 + // enable DMA access drive_id->dma_enable = 1; -#endif + // enable LBA access drive_id->lba_enable = 1; @@ -69,19 +69,21 @@ static void ata_identify_device(struct ide_drive * drive) { // Drive Capacity (48 bit LBA) drive_id->lba_capacity_2 = drive->hd_ops->get_capacity(drive->private_data); -#if 0 + // lower byte is the maximum multiple sector size... drive_id->rw_multiples = 0x8000 | MAX_MULT_SECTORS; -#endif -#if 0 + + // words 64-70, 54-58 valid drive_id->field_valid = 0x0007; // DMA + pkg cmd valid -#endif + // copied from CFA540A - drive_id->buf[63] = 0x0103; // variable (DMA stuff) + // drive_id->buf[63] = 0x0103; // variable (DMA stuff) //drive_id->buf[63] = 0x0000; // variable (DMA stuff) + drive_id->buf[63] = 0x0007; + // drive_id->buf[64] = 0x0001; // PIO drive_id->buf[65] = 0x00b4; @@ -95,12 +97,12 @@ static void ata_identify_device(struct ide_drive * drive) { // drive_id->buf[80] = 0x1e; // supports up to ATA/ATAPI-4 drive_id->major_rev_num = 0x0040; // supports up to ATA/ATAPI-6 -#if 0 + drive_id->buf[83] |= 0x0400; // supports 48 bit LBA drive_id->dma_ultra = 0x2020; // Ultra_DMA_Mode_5_Selected | Ultra_DMA_Mode_5_Supported; -#endif + }