pl111.cc (12086:069c529a76fd) | pl111.cc (13230:2988dc5d1d6f) |
---|---|
1/* 2 * Copyright (c) 2010-2012, 2015 ARM Limited 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 --- 171 unchanged lines hidden (view full) --- 180 data = clcdCrsrRis; 181 break; 182 case ClcdCrsrMis: 183 data = clcdCrsrMis; 184 break; 185 default: 186 if (readId(pkt, AMBA_ID, pioAddr)) { 187 // Hack for variable size accesses | 1/* 2 * Copyright (c) 2010-2012, 2015 ARM Limited 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 --- 171 unchanged lines hidden (view full) --- 180 data = clcdCrsrRis; 181 break; 182 case ClcdCrsrMis: 183 data = clcdCrsrMis; 184 break; 185 default: 186 if (readId(pkt, AMBA_ID, pioAddr)) { 187 // Hack for variable size accesses |
188 data = pkt->get | 188 data = pkt->getLE<uint32_t>(); |
189 break; 190 } else if (daddr >= CrsrImage && daddr <= 0xBFC) { 191 // CURSOR IMAGE 192 int index; 193 index = (daddr - CrsrImage) >> 2; 194 data= cursorImage[index]; 195 break; 196 } else if (daddr >= LcdPalette && daddr <= 0x3FC) { --- 6 unchanged lines hidden (view full) --- 203 panic("Tried to read CLCD register at offset %#x that " 204 "doesn't exist\n", daddr); 205 break; 206 } 207 } 208 209 switch(pkt->getSize()) { 210 case 1: | 189 break; 190 } else if (daddr >= CrsrImage && daddr <= 0xBFC) { 191 // CURSOR IMAGE 192 int index; 193 index = (daddr - CrsrImage) >> 2; 194 data= cursorImage[index]; 195 break; 196 } else if (daddr >= LcdPalette && daddr <= 0x3FC) { --- 6 unchanged lines hidden (view full) --- 203 panic("Tried to read CLCD register at offset %#x that " 204 "doesn't exist\n", daddr); 205 break; 206 } 207 } 208 209 switch(pkt->getSize()) { 210 case 1: |
211 pkt->set | 211 pkt->setLE<uint8_t>(data); |
212 break; 213 case 2: | 212 break; 213 case 2: |
214 pkt->set | 214 pkt->setLE<uint16_t>(data); |
215 break; 216 case 4: | 215 break; 216 case 4: |
217 pkt->set | 217 pkt->setLE<uint32_t>(data); |
218 break; 219 default: 220 panic("CLCD controller read size too big?\n"); 221 break; 222 } 223 224 pkt->makeAtomicResponse(); 225 return pioDelay; --- 5 unchanged lines hidden (view full) --- 231{ 232 // use a temporary data since the LCD registers are read/written with 233 // different size operations 234 // 235 uint32_t data = 0; 236 237 switch(pkt->getSize()) { 238 case 1: | 218 break; 219 default: 220 panic("CLCD controller read size too big?\n"); 221 break; 222 } 223 224 pkt->makeAtomicResponse(); 225 return pioDelay; --- 5 unchanged lines hidden (view full) --- 231{ 232 // use a temporary data since the LCD registers are read/written with 233 // different size operations 234 // 235 uint32_t data = 0; 236 237 switch(pkt->getSize()) { 238 case 1: |
239 data = pkt->get | 239 data = pkt->getLE<uint8_t>(); |
240 break; 241 case 2: | 240 break; 241 case 2: |
242 data = pkt->get | 242 data = pkt->getLE<uint16_t>(); |
243 break; 244 case 4: | 243 break; 244 case 4: |
245 data = pkt->get | 245 data = pkt->getLE<uint32_t>(); |
246 break; 247 default: 248 panic("PL111 CLCD controller write size too big?\n"); 249 break; 250 } 251 252 assert(pkt->getAddr() >= pioAddr && 253 pkt->getAddr() < pioAddr + pioSize); 254 255 Addr daddr = pkt->getAddr() - pioAddr; 256 257 DPRINTF(PL111, " write register %#x value %#x size=%d\n", daddr, | 246 break; 247 default: 248 panic("PL111 CLCD controller write size too big?\n"); 249 break; 250 } 251 252 assert(pkt->getAddr() >= pioAddr && 253 pkt->getAddr() < pioAddr + pioSize); 254 255 Addr daddr = pkt->getAddr() - pioAddr; 256 257 DPRINTF(PL111, " write register %#x value %#x size=%d\n", daddr, |
258 pkt->get | 258 pkt->getLE<uint8_t>(), pkt->getSize()); |
259 260 switch (daddr) { 261 case LcdTiming0: 262 lcdTiming0 = data; 263 // width = 16 * (PPL+1) 264 width = (lcdTiming0.ppl + 1) << 4; 265 break; 266 case LcdTiming1: --- 518 unchanged lines hidden --- | 259 260 switch (daddr) { 261 case LcdTiming0: 262 lcdTiming0 = data; 263 // width = 16 * (PPL+1) 264 width = (lcdTiming0.ppl + 1) << 4; 265 break; 266 case LcdTiming1: --- 518 unchanged lines hidden --- |