1. 23 8月, 2011 38 次提交
  2. 22 8月, 2011 2 次提交
    • A
      440fx: fix PAM, PCI holes · ae0a5466
      Avi Kivity 提交于
      The current implementation of PAM and the PCI holes is broken in several
      ways:
      
        - PCI BARs are not restricted to the PCI hole (a BAR may hide memory)
        - PCI devices do not respect PAM (if a PCI device maps a region while
          PAM maps the region to RAM, the request will be honored)
      
      This patch fixes things by introducing a pci address space, and using
      memory region aliases to represent PAM regions, SMRAM, and PCI holes.
      
      The memory hierarchy looks something like
      
      system_memory
       |
       +--- low memory alias (0-0xe0000000)
       |      |
       |      +-- ram@0
       |
       +--- high memory alias (0x100000000-EOM)
       |      |
       |      +-- ram@0xe0000000
       |
       +--- pci hole alias (end of low memory-0x100000000)
       |      |
       |      +-- pci@end-of-low-memory
       |
       |
       +--- pam[n] (0xc0000-0xc3fff etc) (when set to pci, priority 1)
       |      |
       |      +-- pci@0xc4000 etc
       |
       +--- smram (0xa0000-0xbffff) (when set to pci/vga, priority 1)
              |
              +-- pci@0xa0000 etc
      
      ram (simple ram region)
      
      pci
       |
       +--- BARn
       |
       +--- VGA 0xa0000-0xbffff
       |
       +--- ROMs
      Signed-off-by: NAvi Kivity <avi@redhat.com>
      Signed-off-by: NAnthony Liguori <aliguori@us.ibm.com>
      ae0a5466
    • A
      vga: drop get_system_memory() from vga devices and derivatives · be20f9e9
      Avi Kivity 提交于
      Instead, use the bus accessors, or get the address space directly
      from the board constructor.
      Signed-off-by: NAvi Kivity <avi@redhat.com>
      Signed-off-by: NAnthony Liguori <aliguori@us.ibm.com>
      be20f9e9