Exemplo n.º 1
0
    def scan(self, Bus=0, Dev=0, Func=0, Reg=0):

        reg = pci.PCI_CONFIG_ACCESS_CF8((Reg & 0xFC, Func, Dev, Bus, 0, 1))

        self.params.p1 = reg.Uint32
        ret = self.proc.execute(self.code, params=self.params, mode='int')

        return ret
Exemplo n.º 2
0
def PciIo16(Bus, Dev, Func):

    try:
        return PciIo16Cache[(Bus, Dev, Func)]
    except:
        pass

    if PciMmioBase != 0:
        PciIoCellExt["CellBase"] = lambda Reg: PciMmioBase + (Bus << 20) + (
            Dev << 15) + (Func << 12) + Reg
        PciIo16CellClass = _Mem16
    else:
        PciIoCellExt["CellBase"] = lambda Reg: pci.PCI_CONFIG_ACCESS_CF8(
            (Reg, Func, Dev, Bus, 0, 1)).Uint32
        PciIo16CellClass = _PciIo16Cell

    _PciIo16Obj = _MemArray("PciIo16(%02X:%02X:%02X)" % (Bus, Dev, Func),
                            16,
                            CellClass=PciIo16CellClass,
                            CellExt=PciIoCellExt)
    PciIo16Cache[(Bus, Dev, Func)] = _PciIo16Obj
    return _PciIo16Obj
Exemplo n.º 3
0
def PciIo32(Bus, Dev, Func):

    try:
        return PciIo32Cache[(Bus, Dev, Func)]
    except:
        pass

    if PciMmioBase != 0:
        PciIoCellExt["CellBase"] = lambda Reg: PciMmioBase + (Bus << 20) + (
            Dev << 15) + (Func << 12) + Reg
        PciIo32CellClass = _Mem32
    else:
        PciIoCellExt["CellBase"] = lambda Reg: pci.PCI_CONFIG_ACCESS_CF8(
            (Reg, Func, Dev, Bus, 0, 1)).Uint32
        PciIo32CellClass = _PciIo32Cell

    _PciIo32Obj = _MemArray("PciIo32(%02X:%02X:%02X)" % (Bus, Dev, Func),
                            32,
                            CellClass=PciIo32CellClass,
                            CellExt=PciIoCellExt,
                            DictKey=PciHeaderS)
    PciIo32Cache[(Bus, Dev, Func)] = _PciIo32Obj
    return _PciIo32Obj
Exemplo n.º 4
0
def _PciIoW8(Bus, Dev, Func, Reg, Val):

    reg = pci.PCI_CONFIG_ACCESS_CF8((Reg, Func, Dev, Bus, 0, 1))
    Io32[0xCF8] = reg.Uint32
    Io8[0xCFC + (Reg & 3)] = Val
Exemplo n.º 5
0
def _PciIoR8(Bus, Dev, Func, Reg):

    reg = pci.PCI_CONFIG_ACCESS_CF8((Reg, Func, Dev, Bus, 0, 1))
    Io32[0xCF8] = reg.Uint32
    return int(Io8[0xCFC + (Reg & 3)])
Exemplo n.º 6
0

def PciIo32(Bus, Dev, Func):

    try:
        return PciIo32Cache[(Bus, Dev, Func)]
    except:
        pass

    if PciMmioBase != 0:
        PciIoCellExt["CellBase"] = lambda Reg: PciMmioBase + (Bus << 20) + (
            Dev << 15) + (Func << 12) + Reg
        PciIo32CellClass = _Mem32
    else:
        PciIoCellExt["CellBase"] = lambda Reg: pci.PCI_CONFIG_ACCESS_CF8(
            (Reg, Func, Dev, Bus, 0, 1)).Uint32
        PciIo32CellClass = _PciIo32Cell

    _PciIo32Obj = _MemArray("PciIo32(%02X:%02X:%02X)" % (Bus, Dev, Func),
                            32,
                            CellClass=PciIo32CellClass,
                            CellExt=PciIoCellExt,
                            DictKey=PciHeaderS)
    PciIo32Cache[(Bus, Dev, Func)] = _PciIo32Obj
    return _PciIo32Obj


PciIoConfigAddress = lambda Bus, Dev, Func, Reg: pci.PCI_CONFIG_ACCESS_CF8(
    (Reg, Func, Dev, Bus, 0, 1)).Uint32
PciMmioConfigOffset = lambda Bus, Dev, Func, Reg: (Bus << 20) + (Dev << 15) + (
    Func << 12) + Reg