Merge branch 'master' of https://github.com/86Box/86Box
This commit is contained in:
68
src/pci.c
68
src/pci.c
@@ -34,9 +34,12 @@
|
||||
#include <86box/dma.h>
|
||||
#include <86box/pci.h>
|
||||
#include <86box/keyboard.h>
|
||||
#include <86box/plat_unused.h>
|
||||
|
||||
typedef struct {
|
||||
uint8_t bus, id, type;
|
||||
typedef struct pci_card_t {
|
||||
uint8_t bus;
|
||||
uint8_t id;
|
||||
uint8_t type;
|
||||
uint8_t irq_routing[4];
|
||||
|
||||
void *priv;
|
||||
@@ -44,7 +47,7 @@ typedef struct {
|
||||
uint8_t (*read)(int func, int addr, void *priv);
|
||||
} pci_card_t;
|
||||
|
||||
typedef struct {
|
||||
typedef struct pci_mirq_t {
|
||||
uint8_t enabled;
|
||||
uint8_t irq_line;
|
||||
} pci_mirq_t;
|
||||
@@ -143,7 +146,7 @@ pci_relocate_slot(int type, int new_slot)
|
||||
}
|
||||
|
||||
static void
|
||||
pci_cf8_write(uint16_t port, uint32_t val, void *priv)
|
||||
pci_cf8_write(UNUSED(uint16_t port), uint32_t val, UNUSED(void *priv))
|
||||
{
|
||||
pci_log("cf8 write: %08X\n", val);
|
||||
pci_index = val & 0xff;
|
||||
@@ -154,13 +157,13 @@ pci_cf8_write(uint16_t port, uint32_t val, void *priv)
|
||||
}
|
||||
|
||||
static uint32_t
|
||||
pci_cf8_read(uint16_t port, void *priv)
|
||||
pci_cf8_read(UNUSED(uint16_t port), UNUSED(void *priv))
|
||||
{
|
||||
return pci_index | (pci_func << 8) | (pci_card << 11) | (pci_bus << 16) | (pci_enable << 31);
|
||||
}
|
||||
|
||||
static void
|
||||
pci_write(uint16_t port, uint8_t val, void *priv)
|
||||
pci_write(uint16_t port, uint8_t val, UNUSED(void *priv))
|
||||
{
|
||||
uint8_t slot = 0;
|
||||
|
||||
@@ -193,11 +196,14 @@ pci_write(uint16_t port, uint8_t val, void *priv)
|
||||
#endif
|
||||
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
pci_writew(uint16_t port, uint16_t val, void *priv)
|
||||
pci_writew(uint16_t port, uint16_t val, UNUSED(void *priv))
|
||||
{
|
||||
uint8_t slot = 0;
|
||||
|
||||
@@ -231,11 +237,14 @@ pci_writew(uint16_t port, uint16_t val, void *priv)
|
||||
#endif
|
||||
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
pci_writel(uint16_t port, uint32_t val, void *priv)
|
||||
pci_writel(uint16_t port, uint32_t val, UNUSED(void *priv))
|
||||
{
|
||||
uint8_t slot = 0;
|
||||
|
||||
@@ -271,11 +280,14 @@ pci_writel(uint16_t port, uint32_t val, void *priv)
|
||||
#endif
|
||||
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static uint8_t
|
||||
pci_read(uint16_t port, void *priv)
|
||||
pci_read(uint16_t port, UNUSED(void *priv))
|
||||
{
|
||||
uint8_t slot = 0;
|
||||
uint8_t ret = 0xff;
|
||||
@@ -304,6 +316,10 @@ pci_read(uint16_t port, void *priv)
|
||||
else
|
||||
pci_log("Reading from unasisgned PCI card on slot %02X (pci_cards[%i]) (%02X:%02X)...\n", pci_card, slot, pci_func, pci_index | (port & 3));
|
||||
#endif
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
pci_log("Reading %02X, from PCI card on bus %i, slot %02X (pci_cards[%i]) (%02X:%02X)...\n", ret, pci_bus, pci_card, slot, pci_func, pci_index | (port & 3));
|
||||
@@ -312,7 +328,7 @@ pci_read(uint16_t port, void *priv)
|
||||
}
|
||||
|
||||
static uint16_t
|
||||
pci_readw(uint16_t port, void *priv)
|
||||
pci_readw(uint16_t port, UNUSED(void *priv))
|
||||
{
|
||||
uint8_t slot = 0;
|
||||
uint16_t ret = 0xffff;
|
||||
@@ -343,6 +359,10 @@ pci_readw(uint16_t port, void *priv)
|
||||
else
|
||||
pci_log("Reading from unasisgned PCI card on slot %02X (pci_cards[%i]) (%02X:%02X)...\n", pci_card, slot, pci_func, pci_index | (port & 3));
|
||||
#endif
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
pci_log("Reading %04X, from PCI card on bus %i, slot %02X (pci_cards[%i]) (%02X:%02X)...\n", ret, pci_bus, pci_card, slot, pci_func, pci_index | (port & 3));
|
||||
@@ -351,7 +371,7 @@ pci_readw(uint16_t port, void *priv)
|
||||
}
|
||||
|
||||
static uint32_t
|
||||
pci_readl(uint16_t port, void *priv)
|
||||
pci_readl(uint16_t port, UNUSED(void *priv))
|
||||
{
|
||||
uint8_t slot = 0;
|
||||
uint32_t ret = 0xffffffff;
|
||||
@@ -384,6 +404,10 @@ pci_readl(uint16_t port, void *priv)
|
||||
else
|
||||
pci_log("Reading from unasisgned PCI card on slot %02X (pci_cards[%i]) (%02X:%02X)...\n", pci_card, slot, pci_func, pci_index | (port & 3));
|
||||
#endif
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
pci_log("Reading %08X, from PCI card on bus %i, slot %02X (pci_cards[%i]) (%02X:%02X)...\n", ret, pci_bus, pci_card, slot, pci_func, pci_index | (port & 3));
|
||||
@@ -395,7 +419,9 @@ void
|
||||
pci_set_pmc(uint8_t pmc)
|
||||
{
|
||||
pci_log("pci_set_pmc(%02X)\n", pmc);
|
||||
// pci_reset_regs();
|
||||
#if 0
|
||||
pci_reset_regs();
|
||||
#endif
|
||||
|
||||
if (!pci_pmc && (pmc & 0x01)) {
|
||||
pci_log("PMC: Dellocating ports %04X-%04X...\n", pci_base, pci_base + pci_size - 1);
|
||||
@@ -458,7 +484,7 @@ pci_type2_write_reg(uint16_t port, uint8_t val)
|
||||
}
|
||||
|
||||
void
|
||||
pci_type2_write(uint16_t port, uint8_t val, void *priv)
|
||||
pci_type2_write(uint16_t port, uint8_t val, UNUSED(void *priv))
|
||||
{
|
||||
switch (port) {
|
||||
case 0xcf8:
|
||||
@@ -564,7 +590,7 @@ pci_type2_read_reg(uint16_t port)
|
||||
}
|
||||
|
||||
uint8_t
|
||||
pci_type2_read(uint16_t port, void *priv)
|
||||
pci_type2_read(uint16_t port, UNUSED(void *priv))
|
||||
{
|
||||
uint8_t ret = 0xff;
|
||||
|
||||
@@ -970,19 +996,19 @@ pci_slots_clear(void)
|
||||
}
|
||||
|
||||
uint32_t
|
||||
trc_readl(uint16_t port, void *priv)
|
||||
trc_readl(UNUSED(uint16_t port), UNUSED(void *priv))
|
||||
{
|
||||
return 0xffffffff;
|
||||
}
|
||||
|
||||
uint16_t
|
||||
trc_readw(uint16_t port, void *priv)
|
||||
trc_readw(UNUSED(uint16_t port), UNUSED(void *priv))
|
||||
{
|
||||
return 0xffff;
|
||||
}
|
||||
|
||||
uint8_t
|
||||
trc_read(uint16_t port, void *priv)
|
||||
trc_read(UNUSED(uint16_t port), UNUSED(void *priv))
|
||||
{
|
||||
return trc_reg & 0xfb;
|
||||
}
|
||||
@@ -1010,17 +1036,19 @@ trc_reset(uint8_t val)
|
||||
}
|
||||
|
||||
void
|
||||
trc_writel(uint16_t port, uint32_t val, void *priv)
|
||||
trc_writel(UNUSED(uint16_t port), UNUSED(uint32_t val), UNUSED(void *priv))
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
void
|
||||
trc_writew(uint16_t port, uint16_t val, void *priv)
|
||||
trc_writew(UNUSED(uint16_t port), UNUSED(uint16_t val), UNUSED(void *priv))
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
void
|
||||
trc_write(uint16_t port, uint8_t val, void *priv)
|
||||
trc_write(UNUSED(uint16_t port), uint8_t val, UNUSED(void *priv))
|
||||
{
|
||||
pci_log("TRC Write: %02X\n", val);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user