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 ---