1/* 2 * Copyright (c) 2007-2008 The Hewlett-Packard Development Company 3 * All rights reserved. 4 * 5 * The license below extends only to copyright in the software and shall 6 * not be construed as granting a license to any other intellectual 7 * property including but not limited to intellectual property relating 8 * to a hardware implementation of the functionality of the software --- 497 unchanged lines hidden (view full) --- 506 Addr IOPort = vaddr & ~IntAddrPrefixMask; 507 // Make sure the address fits in the expected 16 bit IO address 508 // space. 509 assert(!(IOPort & ~0xFFFF)); 510 if (IOPort == 0xCF8 && req->getSize() == 4) { 511 req->setFlags(Request::MMAPED_IPR); 512 req->setPaddr(MISCREG_PCI_CONFIG_ADDRESS * sizeof(MiscReg)); 513 } else if ((IOPort & ~mask(2)) == 0xCFC) { |
514 req->setFlags(Request::UNCACHEABLE); |
515 Addr configAddress = 516 tc->readMiscRegNoEffect(MISCREG_PCI_CONFIG_ADDRESS); 517 if (bits(configAddress, 31, 31)) { 518 req->setPaddr(PhysAddrPrefixPciConfig | 519 mbits(configAddress, 30, 2) | 520 (IOPort & mask(2))); 521 } 522 } else { |
523 req->setFlags(Request::UNCACHEABLE); |
524 req->setPaddr(PhysAddrPrefixIO | IOPort); 525 } 526 return NoFault; 527 } else { 528 panic("Access to unrecognized internal address space %#x.\n", 529 prefix); 530 } 531} --- 213 unchanged lines hidden --- |