super(640, 480);
this.driver = driver;
final PCIHeaderType0 pciCfg = device.getConfig().asHeaderType0();
final PCIBaseAddress fbAddr = pciCfg.getBaseAddresses()[0];
final PCIBaseAddress mmioAddr = pciCfg.getBaseAddresses()[1];
log.info("Found "
+ model
+ ", chipset 0x"
+ NumberUtils.hex(pciCfg.getRevision())
+ ", device-vendor ID 0x"
+ NumberUtils.hex(pciCfg.getDeviceID() << 16 + pciCfg
.getVendorID()));
try {
final ResourceManager rm = (ResourceManager) InitialNaming
.lookup(ResourceManager.NAME);
final IOResource ports = claimPorts(rm, device, CIRRUS_FIRST_PORT,
CIRRUS_LAST_PORT - CIRRUS_FIRST_PORT);
final int mmioBase = (int) mmioAddr.getMemoryBase() & 0xFF000000;
final int mmioSize = mmioAddr.getSize();
final int fbBase = (int) fbAddr.getMemoryBase() & 0xFF000000;
final int fbSize = fbAddr.getSize();
log.info("Found Cirrus, FB at 0x" + NumberUtils.hex(fbBase)
+ " s0x" + NumberUtils.hex(fbSize) + ", MMIO at 0x"