10fd61a2dSPhilippe Mathieu-Daudé /* 20fd61a2dSPhilippe Mathieu-Daudé * QEMU i440FX North Bridge Emulation 30fd61a2dSPhilippe Mathieu-Daudé * 40fd61a2dSPhilippe Mathieu-Daudé * Copyright (c) 2006 Fabrice Bellard 50fd61a2dSPhilippe Mathieu-Daudé * 60fd61a2dSPhilippe Mathieu-Daudé * This work is licensed under the terms of the GNU GPL, version 2 or later. 70fd61a2dSPhilippe Mathieu-Daudé * See the COPYING file in the top-level directory. 80fd61a2dSPhilippe Mathieu-Daudé * 90fd61a2dSPhilippe Mathieu-Daudé */ 100fd61a2dSPhilippe Mathieu-Daudé 110fd61a2dSPhilippe Mathieu-Daudé #ifndef HW_PCI_I440FX_H 120fd61a2dSPhilippe Mathieu-Daudé #define HW_PCI_I440FX_H 130fd61a2dSPhilippe Mathieu-Daudé 140fd61a2dSPhilippe Mathieu-Daudé #include "hw/pci/pci_bus.h" 1534020760SPhilippe Mathieu-Daudé #include "hw/pci-host/pam.h" 16db1015e9SEduardo Habkost #include "qom/object.h" 170fd61a2dSPhilippe Mathieu-Daudé 180fd61a2dSPhilippe Mathieu-Daudé #define TYPE_I440FX_PCI_HOST_BRIDGE "i440FX-pcihost" 190fd61a2dSPhilippe Mathieu-Daudé #define TYPE_I440FX_PCI_DEVICE "i440FX" 200fd61a2dSPhilippe Mathieu-Daudé 218063396bSEduardo Habkost OBJECT_DECLARE_SIMPLE_TYPE(PCII440FXState, I440FX_PCI_DEVICE) 2234020760SPhilippe Mathieu-Daudé 23db1015e9SEduardo Habkost struct PCII440FXState { 2434020760SPhilippe Mathieu-Daudé /*< private >*/ 2534020760SPhilippe Mathieu-Daudé PCIDevice parent_obj; 2634020760SPhilippe Mathieu-Daudé /*< public >*/ 2734020760SPhilippe Mathieu-Daudé 2834020760SPhilippe Mathieu-Daudé MemoryRegion *system_memory; 2934020760SPhilippe Mathieu-Daudé MemoryRegion *pci_address_space; 3034020760SPhilippe Mathieu-Daudé MemoryRegion *ram_memory; 31f6a3c86eSPhilippe Mathieu-Daudé PAMMemoryRegion pam_regions[PAM_REGIONS_COUNT]; 3234020760SPhilippe Mathieu-Daudé MemoryRegion smram_region; 3334020760SPhilippe Mathieu-Daudé MemoryRegion smram, low_smram; 34db1015e9SEduardo Habkost }; 3534020760SPhilippe Mathieu-Daudé 360fd61a2dSPhilippe Mathieu-Daudé #define TYPE_IGD_PASSTHROUGH_I440FX_PCI_DEVICE "igd-passthrough-i440FX" 370fd61a2dSPhilippe Mathieu-Daudé 38*48767787SJoao Martins PCIBus *i440fx_init(const char *pci_type, 39*48767787SJoao Martins DeviceState *dev, 400fd61a2dSPhilippe Mathieu-Daudé MemoryRegion *address_space_mem, 410fd61a2dSPhilippe Mathieu-Daudé MemoryRegion *address_space_io, 420fd61a2dSPhilippe Mathieu-Daudé ram_addr_t ram_size, 430fd61a2dSPhilippe Mathieu-Daudé ram_addr_t below_4g_mem_size, 440fd61a2dSPhilippe Mathieu-Daudé ram_addr_t above_4g_mem_size, 450fd61a2dSPhilippe Mathieu-Daudé MemoryRegion *pci_memory, 460fd61a2dSPhilippe Mathieu-Daudé MemoryRegion *ram_memory); 470fd61a2dSPhilippe Mathieu-Daudé 480fd61a2dSPhilippe Mathieu-Daudé 490fd61a2dSPhilippe Mathieu-Daudé #endif 50