i82094aa.hh (6135:9327451a8e7a) | i82094aa.hh (6136:4f8af2f3185f) |
---|---|
1/* 2 * Copyright (c) 2008 The Regents of The University of Michigan 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions are 7 * met: redistributions of source code must retain the above copyright 8 * notice, this list of conditions and the following disclaimer; --- 54 unchanged lines hidden (view full) --- 63 64 protected: 65 Tick latency; 66 Addr pioAddr; 67 68 I8259 * extIntPic; 69 70 uint8_t regSel; | 1/* 2 * Copyright (c) 2008 The Regents of The University of Michigan 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions are 7 * met: redistributions of source code must retain the above copyright 8 * notice, this list of conditions and the following disclaimer; --- 54 unchanged lines hidden (view full) --- 63 64 protected: 65 Tick latency; 66 Addr pioAddr; 67 68 I8259 * extIntPic; 69 70 uint8_t regSel; |
71 uint8_t initialApicId; |
|
71 uint8_t id; 72 uint8_t arbId; 73 74 static const uint8_t TableSize = 24; 75 // This implementation is based on version 0x11, but 0x14 avoids having 76 // to deal with the arbitration and APIC bus guck. 77 static const uint8_t APICVersion = 0x14; 78 --- 19 unchanged lines hidden (view full) --- 98 range_list.clear(); 99 range_list.push_back(RangeEx(pioAddr, pioAddr + 4)); 100 range_list.push_back(RangeEx(pioAddr + 16, pioAddr + 20)); 101 } 102 103 void getIntAddrRange(AddrRangeList &range_list) 104 { 105 range_list.clear(); | 72 uint8_t id; 73 uint8_t arbId; 74 75 static const uint8_t TableSize = 24; 76 // This implementation is based on version 0x11, but 0x14 avoids having 77 // to deal with the arbitration and APIC bus guck. 78 static const uint8_t APICVersion = 0x14; 79 --- 19 unchanged lines hidden (view full) --- 99 range_list.clear(); 100 range_list.push_back(RangeEx(pioAddr, pioAddr + 4)); 101 range_list.push_back(RangeEx(pioAddr + 16, pioAddr + 20)); 102 } 103 104 void getIntAddrRange(AddrRangeList &range_list) 105 { 106 range_list.clear(); |
106 range_list.push_back(RangeEx(x86InterruptAddress(id, 0), 107 x86InterruptAddress(id, 0) + PhysAddrAPICRangeSize)); | 107 range_list.push_back(RangeEx(x86InterruptAddress(initialApicId, 0), 108 x86InterruptAddress(initialApicId, 0) + 109 PhysAddrAPICRangeSize)); |
108 } 109 110 void writeReg(uint8_t offset, uint32_t value); 111 uint32_t readReg(uint8_t offset); 112 113 Port *getPort(const std::string &if_name, int idx = -1) 114 { 115 if (if_name == "int_port") --- 12 unchanged lines hidden --- | 110 } 111 112 void writeReg(uint8_t offset, uint32_t value); 113 uint32_t readReg(uint8_t offset); 114 115 Port *getPort(const std::string &if_name, int idx = -1) 116 { 117 if (if_name == "int_port") --- 12 unchanged lines hidden --- |