Avi Kivity ae0a54664c 440fx: fix PAM, PCI holes
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: Avi Kivity <avi@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2011-08-22 10:47:49 -05:00
2011-08-22 10:19:00 -05:00
2011-08-12 08:31:30 -05:00
2011-08-22 10:47:49 -05:00
2011-06-20 15:13:34 -03:00
2011-08-10 17:34:13 +02:00
2011-08-10 17:34:13 +02:00
2011-08-22 18:26:15 +04:00
2011-08-02 15:53:40 +02:00
2011-08-22 10:17:52 -05:00
2011-08-02 15:53:40 +02:00
2011-06-20 17:08:57 +01:00
2011-07-21 16:48:13 -03:00
2011-08-22 10:20:10 -05:00
2011-08-22 10:17:44 -05:00
2011-08-12 13:07:58 +01:00
2011-06-26 18:25:35 +00:00
2011-08-04 15:51:22 +02:00
2011-07-30 09:41:14 +00:00
2011-06-07 13:52:10 -05:00
2011-08-04 15:51:22 +02:00
2011-08-04 15:51:22 +02:00
2011-06-14 03:08:57 +02:00
2011-08-05 10:57:34 -05:00
2011-08-22 10:20:10 -05:00
2011-08-20 23:01:08 -05:00
2011-07-21 16:48:13 -03:00
2011-07-25 14:38:56 +00:00
2011-08-21 15:33:33 +00:00
2011-08-21 15:33:22 +00:00
2011-08-22 10:17:44 -05:00
2011-08-20 23:01:08 -05:00
2011-08-02 15:53:40 +02:00
2011-08-02 15:53:40 +02:00
2011-08-05 10:57:35 -05:00
2011-08-21 18:27:34 -05:00
2011-07-21 16:48:13 -03:00
2011-08-22 10:20:10 -05:00
2011-07-23 11:26:12 -05:00
2011-07-29 08:25:44 -05:00
2011-07-23 11:57:53 -05:00

Read the documentation in qemu-doc.html.

Fabrice Bellard.
Description
No description provided
Readme 404 MiB
Languages
C 82.6%
C++ 6.5%
Python 3.4%
Dylan 2.9%
Shell 1.6%
Other 2.8%