libhd 5.0
Defines | Functions | Variables
i10_pci.c File Reference
#include <fcntl.h>
#include <unistd.h>
#include <malloc.h>
#include <stdio.h>
#include <sys/mman.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <string.h>
#include "AsmMacros.h"
#include "pci.h"

Defines

#define RESORT   1
#define FIX_ROM   0
#define PCI_EN   0x80000000

Functions

static void readConfigSpaceCfg1 (CARD32 bus, CARD32 dev, CARD32 func, CARD32 *reg)
static int checkSlotCfg1 (CARD32 bus, CARD32 dev, CARD32 func)
static int checkSlotCfg2 (CARD32 bus, int dev)
static void readConfigSpaceCfg2 (CARD32 bus, int dev, CARD32 *reg)
static CARD8 interpretConfigSpace (CARD32 *reg, int busidx, CARD8 dev, CARD8 func)
static CARD32 findBIOSMap (PciStructPtr pciP, CARD32 *biosSize)
static void restoreMem (PciStructPtr pciP)
static CARD32 readPciCfg1 (CARD32 reg)
static void writePciCfg1 (CARD32 reg, CARD32 val)
static CARD32 readPciCfg2 (CARD32 reg)
static void writePciCfg2 (CARD32 reg, CARD32 val)
void scan_pci (int pci_cfg_method)
void pciVideoDisable (void)
void pciVideoRestore (void)
void EnableCurrent ()
CARD8 PciRead8 (int offset, CARD32 Slot)
CARD16 PciRead16 (int offset, CARD32 Slot)
CARD32 PciRead32 (int offset, CARD32 Slot)
void PciWrite8 (int offset, CARD8 byte, CARD32 Slot)
void PciWrite16 (int offset, CARD16 word, CARD32 Slot)
void PciWrite32 (int offset, CARD32 lg, CARD32 Slot)
int mapPciRom (PciStructPtr pciP)
CARD32 findPci (CARD16 slotBX)
CARD16 pciSlotBX (PciStructPtr pPci)
PciStructPtr findPciDevice (CARD16 vendorID, CARD16 deviceID, char n)
PciStructPtr findPciClass (CARD8 intf, CARD8 subClass, CARD16 class, char n)
static int remapMem (PciStructPtr pciP, int num, CARD32 size)
int cfg1out (CARD16 addr, CARD32 val)
int cfg1in (CARD16 addr, CARD32 *val)
PciStructPtr findPciByIDs (int bus, int dev, int func)

Variables

PciStructPtr PciStruct = NULL
PciBusPtr PciBuses = NULL
PciStructPtr CurrentPci = NULL
PciStructPtr PciList = NULL
int pciMaxBus = 0
static CARD32 PciCfg1Addr
static CARD32(* readPci )(CARD32 reg) = readPciCfg1
static void(* writePci )(CARD32 reg, CARD32 val) = writePciCfg1
static int numbus
static int hostbridges = 1
static unsigned long pciMinMemReg = ~0
static CARD32 remapMEM_val
static int remapMEM_num

Define Documentation

#define FIX_ROM   0

Referenced by mapPciRom().

#define PCI_EN   0x80000000
#define RESORT   1

Referenced by scan_pci().


Function Documentation

int cfg1in ( CARD16  addr,
CARD32 val 
)

References PciCfg1Addr, and readPci.

int cfg1out ( CARD16  addr,
CARD32  val 
)

References PciCfg1Addr, val, and writePci.

static int checkSlotCfg1 ( CARD32  bus,
CARD32  dev,
CARD32  func 
) [static]

References PCI_EN, PCI_MODE1_ADDRESS_REG, and PCI_MODE1_DATA_REG.

Referenced by scan_pci().

static int checkSlotCfg2 ( CARD32  bus,
int  dev 
) [static]

References PCI_MODE2_ENABLE_REG, PCI_MODE2_FORWARD_REG, and val.

Referenced by scan_pci().

void EnableCurrent ( void  )
static CARD32 findBIOSMap ( PciStructPtr  pciP,
CARD32 biosSize 
) [static]
CARD32 findPci ( CARD16  slotBX)
PciStructPtr findPciByIDs ( int  bus,
int  dev,
int  func 
)
PciStructPtr findPciClass ( CARD8  intf,
CARD8  subClass,
CARD16  class,
char  n 
)
PciStructPtr findPciDevice ( CARD16  vendorID,
CARD16  deviceID,
char  n 
)
static CARD8 interpretConfigSpace ( CARD32 reg,
int  busidx,
CARD8  dev,
CARD8  func 
) [static]
int mapPciRom ( PciStructPtr  pciP)
CARD16 PciRead16 ( int  offset,
CARD32  Slot 
)

References readPci.

Referenced by int1A_handler().

CARD32 PciRead32 ( int  offset,
CARD32  Slot 
)

References readPci.

Referenced by findBIOSMap(), int1A_handler(), mapPciRom(), and remapMem().

CARD8 PciRead8 ( int  offset,
CARD32  Slot 
)

References readPci.

Referenced by int1A_handler().

CARD16 pciSlotBX ( PciStructPtr  pPci)

References PciSlot::l, and pciStructRec::Slot.

Referenced by int1A_handler().

void pciVideoDisable ( void  )
void pciVideoRestore ( void  )
void PciWrite16 ( int  offset,
CARD16  word,
CARD32  Slot 
)

References readPci, val, and writePci.

Referenced by int1A_handler().

void PciWrite32 ( int  offset,
CARD32  lg,
CARD32  Slot 
)
void PciWrite8 ( int  offset,
CARD8  byte,
CARD32  Slot 
)

References readPci, val, and writePci.

Referenced by int1A_handler().

static void readConfigSpaceCfg1 ( CARD32  bus,
CARD32  dev,
CARD32  func,
CARD32 reg 
) [static]

References PCI_EN, PCI_MODE1_ADDRESS_REG, and PCI_MODE1_DATA_REG.

Referenced by scan_pci().

static void readConfigSpaceCfg2 ( CARD32  bus,
int  dev,
CARD32 reg 
) [static]

References PCI_MODE2_ENABLE_REG, and PCI_MODE2_FORWARD_REG.

Referenced by scan_pci().

static CARD32 readPciCfg1 ( CARD32  reg) [static]
static CARD32 readPciCfg2 ( CARD32  reg) [static]

References PCI_MODE2_ENABLE_REG, PCI_MODE2_FORWARD_REG, and val.

Referenced by scan_pci().

static int remapMem ( PciStructPtr  pciP,
int  num,
CARD32  size 
) [static]
static void restoreMem ( PciStructPtr  pciP) [static]

References PciSlot::l, PciWrite32(), and pciStructRec::Slot.

Referenced by mapPciRom().

void scan_pci ( int  pci_cfg_method)
static void writePciCfg1 ( CARD32  reg,
CARD32  val 
) [static]
static void writePciCfg2 ( CARD32  reg,
CARD32  val 
) [static]

References PCI_MODE2_ENABLE_REG, and PCI_MODE2_FORWARD_REG.

Referenced by scan_pci().


Variable Documentation

int hostbridges = 1 [static]
int numbus [static]
CARD32 PciCfg1Addr [static]

Referenced by cfg1in(), and cfg1out().

Referenced by findPciByIDs().

int pciMaxBus = 0

Referenced by int1A_handler(), and scan_pci().

unsigned long pciMinMemReg = ~0 [static]

Referenced by interpretConfigSpace().

CARD32(* readPci)(CARD32 reg) = readPciCfg1 [static]
int remapMEM_num [static]
CARD32 remapMEM_val [static]
void(* writePci)(CARD32 reg, CARD32 val) = writePciCfg1 [static]