|
From: | Avi Kivity |
Subject: | Re: [Qemu-devel] [PATCH] pci: add standard bridge device |
Date: | Sun, 04 Sep 2011 15:40:58 +0300 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:6.0) Gecko/20110816 Thunderbird/6.0 |
On 09/04/2011 03:30 PM, Michael S. Tsirkin wrote:
> > Create a memory region for the bridge's address space. This region > is not directly added to system_memory or its descendants. I do this for each bridge in the hierarchy, right?
Each bridge does this independently (so yes).
> fx440 does exactly this, with the following cosmetic changes: > > - the windows are different (vga, pci hole, 64-bit pci area, PAMx, SMRAM) > - instead of mapping them to the parent bridge's > pci_address_space(), we map them to get_system_memory() Hmm, what ties the windows of a child bridge to be within the windows of a parent?
system_memory | +--- pci0_alias0 (aliases part of pci0) pci0 | +--- pci1_alias0 (a bridge) pci1 | +--- pci2_alias0 (another bridge) pci2 | +--- BARWhen rendering the memory hierarchy, the only parts of BAR which are visible are those that fit the clipping regions pci0_alias0 ^ pci1_alias0 ^ pci2_alias0. If there are multiple aliases (like the low and high PCI holes, and PAM, it becomes (pci0_alias0 v pci0_alias1) ^ (pci1_alias0v pci1_alias1) ^ (pci2_alias0 v pci2_alias1). ( "^" == intersection, "v" == union )
-- error compiling committee.c: too many arguments to function
[Prev in Thread] | Current Thread | [Next in Thread] |