tsunami_pchip.cc (11260:bedcc64f6145) | tsunami_pchip.cc (13232:0e63107dae56) |
---|---|
1/* 2 * Copyright (c) 2004-2005 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; --- 73 unchanged lines hidden (view full) --- 82 Addr daddr = (pkt->getAddr() - pioRange.start()) >> 6;; 83 assert(pkt->getSize() == sizeof(uint64_t)); 84 85 86 DPRINTF(Tsunami, "read va=%#x size=%d\n", pkt->getAddr(), pkt->getSize()); 87 88 switch(daddr) { 89 case TSDEV_PC_WSBA0: | 1/* 2 * Copyright (c) 2004-2005 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; --- 73 unchanged lines hidden (view full) --- 82 Addr daddr = (pkt->getAddr() - pioRange.start()) >> 6;; 83 assert(pkt->getSize() == sizeof(uint64_t)); 84 85 86 DPRINTF(Tsunami, "read va=%#x size=%d\n", pkt->getAddr(), pkt->getSize()); 87 88 switch(daddr) { 89 case TSDEV_PC_WSBA0: |
90 pkt->set(wsba[0]); | 90 pkt->setLE(wsba[0]); |
91 break; 92 case TSDEV_PC_WSBA1: | 91 break; 92 case TSDEV_PC_WSBA1: |
93 pkt->set(wsba[1]); | 93 pkt->setLE(wsba[1]); |
94 break; 95 case TSDEV_PC_WSBA2: | 94 break; 95 case TSDEV_PC_WSBA2: |
96 pkt->set(wsba[2]); | 96 pkt->setLE(wsba[2]); |
97 break; 98 case TSDEV_PC_WSBA3: | 97 break; 98 case TSDEV_PC_WSBA3: |
99 pkt->set(wsba[3]); | 99 pkt->setLE(wsba[3]); |
100 break; 101 case TSDEV_PC_WSM0: | 100 break; 101 case TSDEV_PC_WSM0: |
102 pkt->set(wsm[0]); | 102 pkt->setLE(wsm[0]); |
103 break; 104 case TSDEV_PC_WSM1: | 103 break; 104 case TSDEV_PC_WSM1: |
105 pkt->set(wsm[1]); | 105 pkt->setLE(wsm[1]); |
106 break; 107 case TSDEV_PC_WSM2: | 106 break; 107 case TSDEV_PC_WSM2: |
108 pkt->set(wsm[2]); | 108 pkt->setLE(wsm[2]); |
109 break; 110 case TSDEV_PC_WSM3: | 109 break; 110 case TSDEV_PC_WSM3: |
111 pkt->set(wsm[3]); | 111 pkt->setLE(wsm[3]); |
112 break; 113 case TSDEV_PC_TBA0: | 112 break; 113 case TSDEV_PC_TBA0: |
114 pkt->set(tba[0]); | 114 pkt->setLE(tba[0]); |
115 break; 116 case TSDEV_PC_TBA1: | 115 break; 116 case TSDEV_PC_TBA1: |
117 pkt->set(tba[1]); | 117 pkt->setLE(tba[1]); |
118 break; 119 case TSDEV_PC_TBA2: | 118 break; 119 case TSDEV_PC_TBA2: |
120 pkt->set(tba[2]); | 120 pkt->setLE(tba[2]); |
121 break; 122 case TSDEV_PC_TBA3: | 121 break; 122 case TSDEV_PC_TBA3: |
123 pkt->set(tba[3]); | 123 pkt->setLE(tba[3]); |
124 break; 125 case TSDEV_PC_PCTL: | 124 break; 125 case TSDEV_PC_PCTL: |
126 pkt->set(pctl); | 126 pkt->setLE(pctl); |
127 break; 128 case TSDEV_PC_PLAT: 129 panic("PC_PLAT not implemented\n"); 130 case TSDEV_PC_RES: 131 panic("PC_RES not implemented\n"); 132 case TSDEV_PC_PERROR: | 127 break; 128 case TSDEV_PC_PLAT: 129 panic("PC_PLAT not implemented\n"); 130 case TSDEV_PC_RES: 131 panic("PC_RES not implemented\n"); 132 case TSDEV_PC_PERROR: |
133 pkt->set((uint64_t)0x00); | 133 pkt->setLE((uint64_t)0x00); |
134 break; 135 case TSDEV_PC_PERRMASK: | 134 break; 135 case TSDEV_PC_PERRMASK: |
136 pkt->set((uint64_t)0x00); | 136 pkt->setLE((uint64_t)0x00); |
137 break; 138 case TSDEV_PC_PERRSET: 139 panic("PC_PERRSET not implemented\n"); 140 case TSDEV_PC_TLBIV: 141 panic("PC_TLBIV not implemented\n"); 142 case TSDEV_PC_TLBIA: | 137 break; 138 case TSDEV_PC_PERRSET: 139 panic("PC_PERRSET not implemented\n"); 140 case TSDEV_PC_TLBIV: 141 panic("PC_TLBIV not implemented\n"); 142 case TSDEV_PC_TLBIA: |
143 pkt->set((uint64_t)0x00); // shouldn't be readable, but linux | 143 pkt->setLE((uint64_t)0x00); // shouldn't be readable, but linux |
144 break; 145 case TSDEV_PC_PMONCTL: 146 panic("PC_PMONCTL not implemented\n"); 147 case TSDEV_PC_PMONCNT: 148 panic("PC_PMONCTN not implemented\n"); 149 default: 150 panic("Default in PChip Read reached reading 0x%x\n", daddr); 151 } --- 14 unchanged lines hidden (view full) --- 166 Addr daddr = (pkt->getAddr() - pioRange.start()) >> 6; 167 168 assert(pkt->getSize() == sizeof(uint64_t)); 169 170 DPRINTF(Tsunami, "write - va=%#x size=%d \n", pkt->getAddr(), pkt->getSize()); 171 172 switch(daddr) { 173 case TSDEV_PC_WSBA0: | 144 break; 145 case TSDEV_PC_PMONCTL: 146 panic("PC_PMONCTL not implemented\n"); 147 case TSDEV_PC_PMONCNT: 148 panic("PC_PMONCTN not implemented\n"); 149 default: 150 panic("Default in PChip Read reached reading 0x%x\n", daddr); 151 } --- 14 unchanged lines hidden (view full) --- 166 Addr daddr = (pkt->getAddr() - pioRange.start()) >> 6; 167 168 assert(pkt->getSize() == sizeof(uint64_t)); 169 170 DPRINTF(Tsunami, "write - va=%#x size=%d \n", pkt->getAddr(), pkt->getSize()); 171 172 switch(daddr) { 173 case TSDEV_PC_WSBA0: |
174 wsba[0] = pkt->get | 174 wsba[0] = pkt->getLE<uint64_t>(); |
175 break; 176 case TSDEV_PC_WSBA1: | 175 break; 176 case TSDEV_PC_WSBA1: |
177 wsba[1] = pkt->get | 177 wsba[1] = pkt->getLE<uint64_t>(); |
178 break; 179 case TSDEV_PC_WSBA2: | 178 break; 179 case TSDEV_PC_WSBA2: |
180 wsba[2] = pkt->get | 180 wsba[2] = pkt->getLE<uint64_t>(); |
181 break; 182 case TSDEV_PC_WSBA3: | 181 break; 182 case TSDEV_PC_WSBA3: |
183 wsba[3] = pkt->get | 183 wsba[3] = pkt->getLE<uint64_t>(); |
184 break; 185 case TSDEV_PC_WSM0: | 184 break; 185 case TSDEV_PC_WSM0: |
186 wsm[0] = pkt->get | 186 wsm[0] = pkt->getLE<uint64_t>(); |
187 break; 188 case TSDEV_PC_WSM1: | 187 break; 188 case TSDEV_PC_WSM1: |
189 wsm[1] = pkt->get | 189 wsm[1] = pkt->getLE<uint64_t>(); |
190 break; 191 case TSDEV_PC_WSM2: | 190 break; 191 case TSDEV_PC_WSM2: |
192 wsm[2] = pkt->get | 192 wsm[2] = pkt->getLE<uint64_t>(); |
193 break; 194 case TSDEV_PC_WSM3: | 193 break; 194 case TSDEV_PC_WSM3: |
195 wsm[3] = pkt->get | 195 wsm[3] = pkt->getLE<uint64_t>(); |
196 break; 197 case TSDEV_PC_TBA0: | 196 break; 197 case TSDEV_PC_TBA0: |
198 tba[0] = pkt->get | 198 tba[0] = pkt->getLE<uint64_t>(); |
199 break; 200 case TSDEV_PC_TBA1: | 199 break; 200 case TSDEV_PC_TBA1: |
201 tba[1] = pkt->get | 201 tba[1] = pkt->getLE<uint64_t>(); |
202 break; 203 case TSDEV_PC_TBA2: | 202 break; 203 case TSDEV_PC_TBA2: |
204 tba[2] = pkt->get | 204 tba[2] = pkt->getLE<uint64_t>(); |
205 break; 206 case TSDEV_PC_TBA3: | 205 break; 206 case TSDEV_PC_TBA3: |
207 tba[3] = pkt->get | 207 tba[3] = pkt->getLE<uint64_t>(); |
208 break; 209 case TSDEV_PC_PCTL: | 208 break; 209 case TSDEV_PC_PCTL: |
210 pctl = pkt->get | 210 pctl = pkt->getLE<uint64_t>(); |
211 break; 212 case TSDEV_PC_PLAT: 213 panic("PC_PLAT not implemented\n"); 214 case TSDEV_PC_RES: 215 panic("PC_RES not implemented\n"); 216 case TSDEV_PC_PERROR: 217 break; 218 case TSDEV_PC_PERRMASK: --- 132 unchanged lines hidden --- | 211 break; 212 case TSDEV_PC_PLAT: 213 panic("PC_PLAT not implemented\n"); 214 case TSDEV_PC_RES: 215 panic("PC_RES not implemented\n"); 216 case TSDEV_PC_PERROR: 217 break; 218 case TSDEV_PC_PERRMASK: --- 132 unchanged lines hidden --- |