outb(v|6, PORT_PCI_REBOOT); /* Actually do the reset */
udelay(50);
}
-
-// helper functions to access pci mmio bars from real mode
-
-u32 VISIBLE32FLAT
-pci_readl_32(u32 addr)
-{
- dprintf(9, "32: pci read : %x\n", addr);
- return readl((void*)addr);
-}
-
-u32 pci_readl(u32 addr)
-{
- if (MODESEGMENT) {
- dprintf(9, "16: pci read : %x\n", addr);
- extern void _cfunc32flat_pci_readl_32(u32 addr);
- return call32(_cfunc32flat_pci_readl_32, addr, -1);
- } else {
- return pci_readl_32(addr);
- }
-}
-
-struct reg32 {
- u32 addr;
- u32 data;
-};
-
-void VISIBLE32FLAT
-pci_writel_32(struct reg32 *reg32)
-{
- dprintf(9, "32: pci write: %x, %x (%p)\n", reg32->addr, reg32->data, reg32);
- writel((void*)(reg32->addr), reg32->data);
-}
-
-void pci_writel(u32 addr, u32 val)
-{
- struct reg32 reg32 = { .addr = addr, .data = val };
- if (MODESEGMENT) {
- dprintf(9, "16: pci write: %x, %x (%x:%p)\n",
- reg32.addr, reg32.data, GET_SEG(SS), ®32);
- void *flatptr = MAKE_FLATPTR(GET_SEG(SS), ®32);
- extern void _cfunc32flat_pci_writel_32(struct reg32 *reg32);
- call32(_cfunc32flat_pci_writel_32, (u32)flatptr, -1);
- } else {
- pci_writel_32(®32);
- }
-}