Revision d1b5c20d
b/hw/ide.c | ||
---|---|---|
569 | 569 |
put_le16(p + 59, 0x100 | s->mult_sectors); |
570 | 570 |
put_le16(p + 60, s->nb_sectors); |
571 | 571 |
put_le16(p + 61, s->nb_sectors >> 16); |
572 |
put_le16(p + 62, 0x07); /* single word dma0-2 supported */ |
|
572 | 573 |
put_le16(p + 63, 0x07); /* mdma0-2 supported */ |
573 | 574 |
put_le16(p + 65, 120); |
574 | 575 |
put_le16(p + 66, 120); |
... | ... | |
620 | 621 |
#ifdef USE_DMA_CDROM |
621 | 622 |
put_le16(p + 49, 1 << 9 | 1 << 8); /* DMA and LBA supported */ |
622 | 623 |
put_le16(p + 53, 7); /* words 64-70, 54-58, 88 valid */ |
624 |
put_le16(p + 62, 7); /* single word dma0-2 supported */ |
|
623 | 625 |
put_le16(p + 63, 7); /* mdma0-2 supported */ |
624 | 626 |
put_le16(p + 64, 0x3f); /* PIO modes supported */ |
625 | 627 |
#else |
... | ... | |
2194 | 2196 |
switch (s->nsector >> 3) { |
2195 | 2197 |
case 0x00: /* pio default */ |
2196 | 2198 |
case 0x01: /* pio mode */ |
2199 |
put_le16(s->identify_data + 62,0x07); |
|
2200 |
put_le16(s->identify_data + 63,0x07); |
|
2201 |
put_le16(s->identify_data + 88,0x3f); |
|
2202 |
break; |
|
2203 |
case 0x02: /* sigle word dma mode*/ |
|
2204 |
put_le16(s->identify_data + 62,0x07 | (1 << (val + 8))); |
|
2197 | 2205 |
put_le16(s->identify_data + 63,0x07); |
2198 | 2206 |
put_le16(s->identify_data + 88,0x3f); |
2199 | 2207 |
break; |
2200 | 2208 |
case 0x04: /* mdma mode */ |
2209 |
put_le16(s->identify_data + 62,0x07); |
|
2201 | 2210 |
put_le16(s->identify_data + 63,0x07 | (1 << (val + 8))); |
2202 | 2211 |
put_le16(s->identify_data + 88,0x3f); |
2203 | 2212 |
break; |
2204 | 2213 |
case 0x08: /* udma mode */ |
2214 |
put_le16(s->identify_data + 62,0x07); |
|
2205 | 2215 |
put_le16(s->identify_data + 63,0x07); |
2206 | 2216 |
put_le16(s->identify_data + 88,0x3f | (1 << (val + 8))); |
2207 | 2217 |
break; |
Also available in: Unified diff