Am 21.09.2011 14:34, schrieb Kevin Wolf:
> Am 27.08.2011 11:12, schrieb Daniel Verkamp:
>> Implement an I/O space index-data register pair as defined by the AHCI
>> spec, including the corresponding SATA PCI capability and BAR.
>>
>> This allows real-mode code to access the AHCI registers; real-mode
>> code cannot address the memory-mapped register space because it is
>> beyond the first megabyte.
>>
>> Signed-off-by: Daniel Verkamp <dan...@drv.nu>
> 
> Thanks, applied to the block branch.
> 
>> --- a/hw/ide/ich.c
>> +++ b/hw/ide/ich.c
>> @@ -72,6 +72,14 @@
>>  #include <hw/ide/pci.h>
>>  #include <hw/ide/ahci.h>
>>  
>> +#define ICH9_SATA_CAP_OFFSET    0xA8
>> +
>> +#define ICH9_IDP_BAR            4
>> +#define ICH9_MEM_BAR            5
>> +
>> +#define ICH9_IDP_INDEX          0x10
>> +#define ICH9_IDP_INDEX_LOG2     0x04
> 
> Just wondering, why did you choose 0x10 and not 0? The spec reads as if
> the implementation could freely choose this, and I can't see what the
> first 16 Bytes are used for.

I forgot that we're not implementing a generic AHCI controller here but
an ICH9 one, which does define the offsets used. Now I'm convinced. :-)

Kevin

Reply via email to