qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH] hw/pci-host/uninorth.c: Add support for Apple's


From: Programmingkid
Subject: Re: [Qemu-devel] [PATCH] hw/pci-host/uninorth.c: Add support for Apple's PCI bridge register 0x48
Date: Fri, 22 Jan 2016 13:26:14 -0500

On Jan 22, 2016, at 11:46 AM, Mark Cave-Ayland wrote:

> On 22/01/16 16:09, Programmingkid wrote:
> 
>> Apple has custom PCI bridge registers that are not a part of any known 
>> standard. This patch implements register 0x48. With this patch the 
>> AppleMacRiscPCI kernel extension no longer prints these error messages for 
>> the mac99 target:
>> AppleMacRiscPCI: bad range 2(80000000:01000000)
>> AppleMacRiscPCI: bad range 2(81000000:00001000)
>> AppleMacRiscPCI: bad range 2(81080000:00080000)
>> 
>> Signed-off-by: John Arbuckle <address@hidden>
>> 
>> ---
>> hw/pci-host/uninorth.c |    4 ++++
>> 1 files changed, 4 insertions(+), 0 deletions(-)
>> 
>> diff --git a/hw/pci-host/uninorth.c b/hw/pci-host/uninorth.c
>> index 215b64f..6541b10 100644
>> --- a/hw/pci-host/uninorth.c
>> +++ b/hw/pci-host/uninorth.c
>> @@ -330,6 +330,10 @@ static void unin_agp_pci_host_realize(PCIDevice *d, 
>> Error **errp)
>>     d->config[0x0C] = 0x08; // cache_line_size
>>     d->config[0x0D] = 0x10; // latency_timer
>>     //    d->config[0x34] = 0x80; // capabilities_pointer
>> +    d->config[0x48] = 0x0;
>> +    d->config[0x49] = 0x0;
>> +    d->config[0x4a] = 0x0;
>> +    d->config[0x4b] = 0x1;
>> }
>> 
>> static void u3_agp_pci_host_realize(PCIDevice *d, Error **errp)
> 
> Tested-by: Mark Cave-Ayland <address@hidden>
> 
> As this config space register is seemingly an Apple custom option (or at
> least I can't find a mention of it in the PCI-PCI bridge spec) I think
> this should have a comment explaining exactly what it does, and should
> reference both AppleMacRiscPCI.cpp filename and the enum for the
> register value (0x48 == kMacRISCPCIAddressSelect).

Is this what you want:

Apple has custom PCI bridge registers that are not a part of any known 
standard. This patch implements register 0x48. With this patch the 
AppleMacRiscPCI kernel extension no longer prints these error messages for the 
mac99 target:
AppleMacRiscPCI: bad range 2(80000000:01000000)
AppleMacRiscPCI: bad range 2(81000000:00001000)
AppleMacRiscPCI: bad range 2(81080000:00080000)

In Apple's AppleMacRiscPCI.h source code, the register is defined as 
kMacRISCPCIAddressSelect. It is accessed in the AppleMacRiscPCI.cpp file. What 
this register is used for is determining the address a pci bridge range that is 
kept track of by the operating system. 

> I'd also like to see a note explaining that this sets up the register to
> match the PCI memory region base/size currently used in QEMU/OpenBIOS
> too in order to provide a hint that if one changes, so must the other.

Note: OpenBIOS in the arch/ppc/qemu/init.c file has a structure with an index 
of [ARCH_MAC99]. It keeps track of the PCI MMIO range for the mac99 target. If 
a change happens to either this file or the AppleMacRiscPCI kernel extension, 
the other would have to be changed as well.

> 
> BTW is the register required for any of the other uni-north realize
> functions? Alex?


My guess is no. Only the AppleMacRiscPCI kernel extension needs to know those 
details.

Since this is only a change to the patch's comment, do I still need to use v2 
in the "[PATCH]" text?



reply via email to

[Prev in Thread] Current Thread [Next in Thread]