bus_pci.cc File Reference

Back to the index.

Classes | Macros | Functions | Variables
bus_pci.cc File Reference
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "bus_isa.h"
#include "bus_pci.h"
#include "cpu.h"
#include "device.h"
#include "devices.h"
#include "diskimage.h"
#include "machine.h"
#include "memory.h"
#include "misc.h"
#include "wdc.h"
#include "thirdparty/cpc700reg.h"

Go to the source code of this file.

Classes

struct  piix_ide_extra
 
struct  vt82c586_ide_extra
 
struct  symphony_82c105_extra
 

Macros

#define BUS_PCI_C
 
#define PCI_VENDOR_INTEGRAPHICS   0x10ea
 
#define PCI_VENDOR_S3   0x5333
 
#define PCI_PRODUCT_S3_VIRGE   0x5631
 
#define PCI_PRODUCT_S3_VIRGE_DX   0x8a01
 
#define PCI_VENDOR_ALI   0x10b9
 
#define PCI_PRODUCT_ALI_M1543   0x1533 /* NOTE: not 1543 */
 
#define PCI_PRODUCT_ALI_M5229   0x5229
 
#define PCI_VENDOR_ADP   0x9004 /* Adaptec */
 
#define PCI_VENDOR_ADP2   0x9005 /* Adaptec (2nd PCI Vendor ID) */
 
#define PCI_PRODUCT_ADP_2940U   0x8178 /* AHA-2940 Ultra */
 
#define PCI_PRODUCT_ADP_2940UP   0x8778 /* AHA-2940 Ultra Pro */
 
#define PCI_VENDOR_GALILEO   0x11ab /* Galileo Technology */
 
#define PCI_PRODUCT_GALILEO_GT64011   0x4146 /* GT-64011 System Controller */
 
#define PCI_PRODUCT_GALILEO_GT64120   0x4620 /* GT-64120 */
 
#define PCI_PRODUCT_GALILEO_GT64260   0x6430 /* GT-64260 */
 
#define PCI_VENDOR_AMD   0x1022 /* Advanced Micro Devices */
 
#define PCI_PRODUCT_AMD_PCNET_PCI   0x2000 /* PCnet-PCI Ethernet */
 
#define PCI_VENDOR_INTEL   0x8086
 
#define PCI_PRODUCT_INTEL_31244   0x3200
 
#define PCI_PRODUCT_INTEL_82371SB_ISA   0x7000
 
#define PCI_PRODUCT_INTEL_82371SB_IDE   0x7010
 
#define PCI_PRODUCT_INTEL_82371AB_ISA   0x7110
 
#define PCI_PRODUCT_INTEL_82371AB_IDE   0x7111
 
#define PCI_PRODUCT_INTEL_SIO   0x0484
 
#define PCI_VENDOR_IBM   0x1014
 
#define PCI_PRODUCT_IBM_ISABRIDGE   0x000a
 
#define PCI_VENDOR_HEURICON   0x1223
 
#define PCI_PRODUCT_HEURICON_PMPPC   0x000e
 
#define PCI_VENDOR_VIATECH   0x1106 /* VIA Technologies */
 
#define PCI_PRODUCT_VIATECH_VT82C586_IDE
 
#define PCI_PRODUCT_VIATECH_VT82C586_ISA
 
#define COBALT_PCIB_BOARD_ID_REG   0x94
 
#define COBALT_QUBE2_ID   5
 
#define PCI_VENDOR_SYMPHONY   0x10ad
 
#define PCI_PRODUCT_SYMPHONY_83C553   0x0565
 
#define PCI_PRODUCT_SYMPHONY_82C105   0x0105
 
#define PCI_VENDOR_REALTEK   0x10ec
 
#define PCI_PRODUCT_REALTEK_RT8139   0x8139
 
#define PCI_VENDOR_DEC   0x1011 /* Digital Equipment */
 
#define PCI_PRODUCT_DEC_21142   0x0019 /* DECchip 21142/21143 10/100 Ethernet */
 
#define PCI_PRODUCT_DEC_21030   0x0004 /* DECchip 21030 ("TGA") */
 
#define PCI_VENDOR_MOT   0x1057
 
#define PCI_PRODUCT_MOT_MPC105   0x0001
 
#define PCI_VENDOR_APPLE   0x106b
 
#define PCI_PRODUCT_APPLE_GC   0x0002
 
#define PCI_PRODUCT_APPLE_UNINORTH1   0x001e
 
#define PCI_VENDOR_ATI   0x1002
 
#define PCI_PRODUCT_ATI_RADEON_9200_2   0x5962
 

Functions

void bus_pci_decompose_1 (uint32_t t, int *bus, int *dev, int *func, int *reg)
 
void bus_pci_data_access (struct cpu *cpu, struct pci_data *pci_data, uint64_t *data, int len, int writeflag)
 
void bus_pci_setaddr (struct cpu *cpu, struct pci_data *pci_data, int bus, int device, int function, int reg)
 
void bus_pci_add (struct machine *machine, struct pci_data *pci_data, struct memory *mem, int bus, int device, int function, const char *name)
 
struct pci_data * bus_pci_init (struct machine *machine, const char *irq_path, uint64_t pci_actual_io_offset, uint64_t pci_actual_mem_offset, uint64_t pci_portbase, uint64_t pci_membase, const char *pci_irqbase, uint64_t isa_portbase, uint64_t isa_membase, const char *isa_irqbase)
 
 PCIINIT (igsfb)
 
 PCIINIT (s3_virge)
 
 PCIINIT (ali_m1543)
 
 PCIINIT (ali_m5229)
 
 PCIINIT (ahc)
 
 PCIINIT (gt64011)
 
 PCIINIT (gt64120)
 
 PCIINIT (gt64260)
 
 PCIINIT (pcn)
 
 PCIINIT (i31244)
 
int piix_isa_cfg_reg_write (struct pci_device *pd, int reg, uint32_t value)
 
 PCIINIT (piix3_isa)
 
 PCIINIT (piix4_isa)
 
 PCIINIT (i82378zb)
 
int piix_ide_cfg_reg_write (struct pci_device *pd, int reg, uint32_t value)
 
 PCIINIT (piix3_ide)
 
 PCIINIT (piix4_ide)
 
 PCIINIT (ibm_isa)
 
 PCIINIT (heuricon_pmppc)
 
 PCIINIT (vt82c586_isa)
 
int vt82c586_ide_cfg_reg_write (struct pci_device *pd, int reg, uint32_t value)
 
 PCIINIT (vt82c586_ide)
 
 PCIINIT (symphony_83c553)
 
int symphony_82c105_cfg_reg_write (struct pci_device *pd, int reg, uint32_t value)
 
 PCIINIT (symphony_82c105)
 
 PCIINIT (rtl8139c)
 
 PCIINIT (dec21143)
 
 PCIINIT (dec21030)
 
 PCIINIT (eagle)
 
 PCIINIT (gc_obio)
 
 PCIINIT (uninorth)
 
 PCIINIT (ati_radeon_9200_2)
 

Variables

int verbose
 

Macro Definition Documentation

◆ BUS_PCI_C

#define BUS_PCI_C

Definition at line 49 of file bus_pci.cc.

◆ COBALT_PCIB_BOARD_ID_REG

#define COBALT_PCIB_BOARD_ID_REG   0x94

Referenced by PCIINIT().

◆ COBALT_QUBE2_ID

#define COBALT_QUBE2_ID   5

Referenced by PCIINIT().

◆ PCI_PRODUCT_ADP_2940U

#define PCI_PRODUCT_ADP_2940U   0x8178 /* AHA-2940 Ultra */

Definition at line 529 of file bus_pci.cc.

Referenced by PCIINIT().

◆ PCI_PRODUCT_ADP_2940UP

#define PCI_PRODUCT_ADP_2940UP   0x8778 /* AHA-2940 Ultra Pro */

Definition at line 530 of file bus_pci.cc.

◆ PCI_PRODUCT_ALI_M1543

#define PCI_PRODUCT_ALI_M1543   0x1533 /* NOTE: not 1543 */

Definition at line 461 of file bus_pci.cc.

Referenced by PCIINIT().

◆ PCI_PRODUCT_ALI_M5229

#define PCI_PRODUCT_ALI_M5229   0x5229

Definition at line 462 of file bus_pci.cc.

Referenced by PCIINIT().

◆ PCI_PRODUCT_AMD_PCNET_PCI

#define PCI_PRODUCT_AMD_PCNET_PCI   0x2000 /* PCnet-PCI Ethernet */

Definition at line 638 of file bus_pci.cc.

Referenced by PCIINIT().

◆ PCI_PRODUCT_APPLE_GC

#define PCI_PRODUCT_APPLE_GC   0x0002

Definition at line 1373 of file bus_pci.cc.

Referenced by PCIINIT().

◆ PCI_PRODUCT_APPLE_UNINORTH1

#define PCI_PRODUCT_APPLE_UNINORTH1   0x001e

Definition at line 1374 of file bus_pci.cc.

Referenced by PCIINIT().

◆ PCI_PRODUCT_ATI_RADEON_9200_2

#define PCI_PRODUCT_ATI_RADEON_9200_2   0x5962

Definition at line 1418 of file bus_pci.cc.

Referenced by PCIINIT().

◆ PCI_PRODUCT_DEC_21030

#define PCI_PRODUCT_DEC_21030   0x0004 /* DECchip 21030 ("TGA") */

Definition at line 1293 of file bus_pci.cc.

Referenced by PCIINIT().

◆ PCI_PRODUCT_DEC_21142

#define PCI_PRODUCT_DEC_21142   0x0019 /* DECchip 21142/21143 10/100 Ethernet */

Definition at line 1217 of file bus_pci.cc.

Referenced by PCIINIT().

◆ PCI_PRODUCT_GALILEO_GT64011

#define PCI_PRODUCT_GALILEO_GT64011   0x4146 /* GT-64011 System Controller */

Definition at line 592 of file bus_pci.cc.

Referenced by PCIINIT().

◆ PCI_PRODUCT_GALILEO_GT64120

#define PCI_PRODUCT_GALILEO_GT64120   0x4620 /* GT-64120 */

Definition at line 593 of file bus_pci.cc.

Referenced by PCIINIT().

◆ PCI_PRODUCT_GALILEO_GT64260

#define PCI_PRODUCT_GALILEO_GT64260   0x6430 /* GT-64260 */

Definition at line 594 of file bus_pci.cc.

Referenced by PCIINIT().

◆ PCI_PRODUCT_HEURICON_PMPPC

#define PCI_PRODUCT_HEURICON_PMPPC   0x000e

Definition at line 932 of file bus_pci.cc.

Referenced by PCIINIT().

◆ PCI_PRODUCT_IBM_ISABRIDGE

#define PCI_PRODUCT_IBM_ISABRIDGE   0x000a

Definition at line 911 of file bus_pci.cc.

Referenced by PCIINIT().

◆ PCI_PRODUCT_INTEL_31244

#define PCI_PRODUCT_INTEL_31244   0x3200

Definition at line 682 of file bus_pci.cc.

Referenced by PCIINIT().

◆ PCI_PRODUCT_INTEL_82371AB_IDE

#define PCI_PRODUCT_INTEL_82371AB_IDE   0x7111

Definition at line 686 of file bus_pci.cc.

Referenced by PCIINIT().

◆ PCI_PRODUCT_INTEL_82371AB_ISA

#define PCI_PRODUCT_INTEL_82371AB_ISA   0x7110

Definition at line 685 of file bus_pci.cc.

Referenced by PCIINIT().

◆ PCI_PRODUCT_INTEL_82371SB_IDE

#define PCI_PRODUCT_INTEL_82371SB_IDE   0x7010

Definition at line 684 of file bus_pci.cc.

Referenced by PCIINIT().

◆ PCI_PRODUCT_INTEL_82371SB_ISA

#define PCI_PRODUCT_INTEL_82371SB_ISA   0x7000

Definition at line 683 of file bus_pci.cc.

Referenced by PCIINIT().

◆ PCI_PRODUCT_INTEL_SIO

#define PCI_PRODUCT_INTEL_SIO   0x0484

Definition at line 687 of file bus_pci.cc.

Referenced by PCIINIT().

◆ PCI_PRODUCT_MOT_MPC105

#define PCI_PRODUCT_MOT_MPC105   0x0001

Definition at line 1349 of file bus_pci.cc.

Referenced by PCIINIT().

◆ PCI_PRODUCT_REALTEK_RT8139

#define PCI_PRODUCT_REALTEK_RT8139   0x8139

Definition at line 1172 of file bus_pci.cc.

Referenced by PCIINIT().

◆ PCI_PRODUCT_S3_VIRGE

#define PCI_PRODUCT_S3_VIRGE   0x5631

Definition at line 437 of file bus_pci.cc.

◆ PCI_PRODUCT_S3_VIRGE_DX

#define PCI_PRODUCT_S3_VIRGE_DX   0x8a01

Definition at line 438 of file bus_pci.cc.

Referenced by PCIINIT().

◆ PCI_PRODUCT_SYMPHONY_82C105

#define PCI_PRODUCT_SYMPHONY_82C105   0x0105

Definition at line 1060 of file bus_pci.cc.

Referenced by PCIINIT().

◆ PCI_PRODUCT_SYMPHONY_83C553

#define PCI_PRODUCT_SYMPHONY_83C553   0x0565

Definition at line 1059 of file bus_pci.cc.

Referenced by PCIINIT().

◆ PCI_PRODUCT_VIATECH_VT82C586_IDE

#define PCI_PRODUCT_VIATECH_VT82C586_IDE
Value:
0x1571 /* VT82C586 (Apollo VP)
IDE Controller */

Definition at line 958 of file bus_pci.cc.

Referenced by PCIINIT().

◆ PCI_PRODUCT_VIATECH_VT82C586_ISA

#define PCI_PRODUCT_VIATECH_VT82C586_ISA
Value:
0x0586 /* VT82C586 (Apollo VP)
PCI-ISA Bridge */

Definition at line 960 of file bus_pci.cc.

Referenced by PCIINIT().

◆ PCI_VENDOR_ADP

#define PCI_VENDOR_ADP   0x9004 /* Adaptec */

Definition at line 527 of file bus_pci.cc.

Referenced by PCIINIT().

◆ PCI_VENDOR_ADP2

#define PCI_VENDOR_ADP2   0x9005 /* Adaptec (2nd PCI Vendor ID) */

Definition at line 528 of file bus_pci.cc.

◆ PCI_VENDOR_ALI

#define PCI_VENDOR_ALI   0x10b9

Definition at line 460 of file bus_pci.cc.

Referenced by PCIINIT().

◆ PCI_VENDOR_AMD

#define PCI_VENDOR_AMD   0x1022 /* Advanced Micro Devices */

Definition at line 637 of file bus_pci.cc.

Referenced by PCIINIT().

◆ PCI_VENDOR_APPLE

#define PCI_VENDOR_APPLE   0x106b

Definition at line 1372 of file bus_pci.cc.

Referenced by PCIINIT().

◆ PCI_VENDOR_ATI

#define PCI_VENDOR_ATI   0x1002

Definition at line 1417 of file bus_pci.cc.

Referenced by PCIINIT().

◆ PCI_VENDOR_DEC

#define PCI_VENDOR_DEC   0x1011 /* Digital Equipment */

Definition at line 1216 of file bus_pci.cc.

Referenced by PCIINIT().

◆ PCI_VENDOR_GALILEO

#define PCI_VENDOR_GALILEO   0x11ab /* Galileo Technology */

Definition at line 591 of file bus_pci.cc.

Referenced by PCIINIT().

◆ PCI_VENDOR_HEURICON

#define PCI_VENDOR_HEURICON   0x1223

Definition at line 931 of file bus_pci.cc.

Referenced by PCIINIT().

◆ PCI_VENDOR_IBM

#define PCI_VENDOR_IBM   0x1014

Definition at line 910 of file bus_pci.cc.

Referenced by PCIINIT().

◆ PCI_VENDOR_INTEGRAPHICS

#define PCI_VENDOR_INTEGRAPHICS   0x10ea

Definition at line 407 of file bus_pci.cc.

Referenced by PCIINIT().

◆ PCI_VENDOR_INTEL

#define PCI_VENDOR_INTEL   0x8086

Definition at line 681 of file bus_pci.cc.

Referenced by PCIINIT().

◆ PCI_VENDOR_MOT

#define PCI_VENDOR_MOT   0x1057

Definition at line 1348 of file bus_pci.cc.

Referenced by PCIINIT().

◆ PCI_VENDOR_REALTEK

#define PCI_VENDOR_REALTEK   0x10ec

Definition at line 1171 of file bus_pci.cc.

Referenced by PCIINIT().

◆ PCI_VENDOR_S3

#define PCI_VENDOR_S3   0x5333

Definition at line 436 of file bus_pci.cc.

Referenced by PCIINIT().

◆ PCI_VENDOR_SYMPHONY

#define PCI_VENDOR_SYMPHONY   0x10ad

Definition at line 1058 of file bus_pci.cc.

Referenced by PCIINIT().

◆ PCI_VENDOR_VIATECH

#define PCI_VENDOR_VIATECH   0x1106 /* VIA Technologies */

Definition at line 957 of file bus_pci.cc.

Referenced by PCIINIT().

Function Documentation

◆ bus_pci_add()

void bus_pci_add ( struct machine machine,
struct pci_data *  pci_data,
struct memory mem,
int  bus,
int  device,
int  function,
const char *  name 
)

◆ bus_pci_data_access()

void bus_pci_data_access ( struct cpu cpu,
struct pci_data *  pci_data,
uint64_t *  data,
int  len,
int  writeflag 
)

◆ bus_pci_decompose_1()

void bus_pci_decompose_1 ( uint32_t  t,
int *  bus,
int *  dev,
int *  func,
int *  reg 
)

Definition at line 77 of file bus_pci.cc.

References fatal().

Referenced by DEVICE_ACCESS().

◆ bus_pci_init()

struct pci_data* bus_pci_init ( struct machine machine,
const char *  irq_path,
uint64_t  pci_actual_io_offset,
uint64_t  pci_actual_mem_offset,
uint64_t  pci_portbase,
uint64_t  pci_membase,
const char *  pci_irqbase,
uint64_t  isa_portbase,
uint64_t  isa_membase,
const char *  isa_irqbase 
)

Definition at line 356 of file bus_pci.cc.

References CHECK_ALLOCATION.

Referenced by dev_gt_init(), dev_macepci_init(), dev_uninorth_init(), and DEVINIT().

◆ bus_pci_setaddr()

void bus_pci_setaddr ( struct cpu cpu,
struct pci_data *  pci_data,
int  bus,
int  device,
int  function,
int  reg 
)

Definition at line 197 of file bus_pci.cc.

References fatal(), and reg.

Referenced by DEVICE_ACCESS().

◆ PCIINIT() [1/28]

PCIINIT ( igsfb  )

◆ PCIINIT() [2/28]

PCIINIT ( s3_virge  )

◆ PCIINIT() [3/28]

PCIINIT ( ali_m1543  )

◆ PCIINIT() [4/28]

PCIINIT ( ali_m5229  )

◆ PCIINIT() [5/28]

PCIINIT ( ahc  )

◆ PCIINIT() [6/28]

PCIINIT ( gt64011  )

◆ PCIINIT() [7/28]

PCIINIT ( gt64120  )

◆ PCIINIT() [8/28]

PCIINIT ( gt64260  )

◆ PCIINIT() [9/28]

PCIINIT ( pcn  )

◆ PCIINIT() [10/28]

PCIINIT ( i31244  )

◆ PCIINIT() [11/28]

PCIINIT ( piix3_isa  )

◆ PCIINIT() [12/28]

PCIINIT ( piix4_isa  )

◆ PCIINIT() [13/28]

PCIINIT ( i82378zb  )

◆ PCIINIT() [14/28]

PCIINIT ( piix3_ide  )

◆ PCIINIT() [15/28]

PCIINIT ( piix4_ide  )

◆ PCIINIT() [16/28]

PCIINIT ( ibm_isa  )

◆ PCIINIT() [17/28]

PCIINIT ( heuricon_pmppc  )

◆ PCIINIT() [18/28]

PCIINIT ( vt82c586_isa  )

◆ PCIINIT() [19/28]

PCIINIT ( vt82c586_ide  )

◆ PCIINIT() [20/28]

PCIINIT ( symphony_83c553  )

◆ PCIINIT() [21/28]

PCIINIT ( symphony_82c105  )

◆ PCIINIT() [22/28]

PCIINIT ( rtl8139c  )

◆ PCIINIT() [23/28]

PCIINIT ( dec21143  )

◆ PCIINIT() [24/28]

PCIINIT ( dec21030  )

◆ PCIINIT() [25/28]

PCIINIT ( eagle  )

◆ PCIINIT() [26/28]

PCIINIT ( gc_obio  )

◆ PCIINIT() [27/28]

PCIINIT ( uninorth  )

◆ PCIINIT() [28/28]

PCIINIT ( ati_radeon_9200_2  )

◆ piix_ide_cfg_reg_write()

int piix_ide_cfg_reg_write ( struct pci_device *  pd,
int  reg,
uint32_t  value 
)

◆ piix_isa_cfg_reg_write()

int piix_isa_cfg_reg_write ( struct pci_device *  pd,
int  reg,
uint32_t  value 
)

Definition at line 726 of file bus_pci.cc.

References PCI_MAPREG_START.

Referenced by PCIINIT().

◆ symphony_82c105_cfg_reg_write()

int symphony_82c105_cfg_reg_write ( struct pci_device *  pd,
int  reg,
uint32_t  value 
)

◆ vt82c586_ide_cfg_reg_write()

int vt82c586_ide_cfg_reg_write ( struct pci_device *  pd,
int  reg,
uint32_t  value 
)

Variable Documentation

◆ verbose

int verbose

Definition at line 77 of file main.cc.


Generated on Sun Sep 30 2018 16:05:18 for GXemul by doxygen 1.8.13