gic_v2.cc (13112:c31596a933a3) | gic_v2.cc (13230:2988dc5d1d6f) |
---|---|
1/* 2 * Copyright (c) 2010, 2013, 2015-2018 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 --- 131 unchanged lines hidden (view full) --- 140 const ContextID ctx = pkt->req->contextId(); 141 142 DPRINTF(GIC, "gic distributor read register %#x\n", daddr); 143 144 const uint32_t resp = readDistributor(ctx, daddr, pkt->getSize()); 145 146 switch (pkt->getSize()) { 147 case 1: | 1/* 2 * Copyright (c) 2010, 2013, 2015-2018 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 --- 131 unchanged lines hidden (view full) --- 140 const ContextID ctx = pkt->req->contextId(); 141 142 DPRINTF(GIC, "gic distributor read register %#x\n", daddr); 143 144 const uint32_t resp = readDistributor(ctx, daddr, pkt->getSize()); 145 146 switch (pkt->getSize()) { 147 case 1: |
148 pkt->set | 148 pkt->setLE<uint8_t>(resp); |
149 break; 150 case 2: | 149 break; 150 case 2: |
151 pkt->set | 151 pkt->setLE<uint16_t>(resp); |
152 break; 153 case 4: | 152 break; 153 case 4: |
154 pkt->set | 154 pkt->setLE<uint32_t>(resp); |
155 break; 156 default: 157 panic("Invalid size while reading Distributor regs in GIC: %d\n", 158 pkt->getSize()); 159 } 160 161 pkt->makeAtomicResponse(); 162 return distPioDelay; --- 128 unchanged lines hidden (view full) --- 291 292 assert(pkt->req->hasContextId()); 293 const ContextID ctx = pkt->req->contextId(); 294 assert(ctx < sys->numRunningContexts()); 295 296 DPRINTF(GIC, "gic cpu read register %#x cpu context: %d\n", daddr, 297 ctx); 298 | 155 break; 156 default: 157 panic("Invalid size while reading Distributor regs in GIC: %d\n", 158 pkt->getSize()); 159 } 160 161 pkt->makeAtomicResponse(); 162 return distPioDelay; --- 128 unchanged lines hidden (view full) --- 291 292 assert(pkt->req->hasContextId()); 293 const ContextID ctx = pkt->req->contextId(); 294 assert(ctx < sys->numRunningContexts()); 295 296 DPRINTF(GIC, "gic cpu read register %#x cpu context: %d\n", daddr, 297 ctx); 298 |
299 pkt->set | 299 pkt->setLE<uint32_t>(readCpu(ctx, daddr)); |
300 301 pkt->makeAtomicResponse(); 302 return cpuPioDelay; 303} 304 305uint32_t 306GicV2::readCpu(ContextID ctx, Addr daddr) 307{ --- 82 unchanged lines hidden (view full) --- 390 assert(pkt->req->hasContextId()); 391 const ContextID ctx = pkt->req->contextId(); 392 const size_t data_sz = pkt->getSize(); 393 394 uint32_t pkt_data M5_VAR_USED; 395 switch (data_sz) 396 { 397 case 1: | 300 301 pkt->makeAtomicResponse(); 302 return cpuPioDelay; 303} 304 305uint32_t 306GicV2::readCpu(ContextID ctx, Addr daddr) 307{ --- 82 unchanged lines hidden (view full) --- 390 assert(pkt->req->hasContextId()); 391 const ContextID ctx = pkt->req->contextId(); 392 const size_t data_sz = pkt->getSize(); 393 394 uint32_t pkt_data M5_VAR_USED; 395 switch (data_sz) 396 { 397 case 1: |
398 pkt_data = pkt->get | 398 pkt_data = pkt->getLE<uint8_t>(); |
399 break; 400 case 2: | 399 break; 400 case 2: |
401 pkt_data = pkt->get | 401 pkt_data = pkt->getLE<uint16_t>(); |
402 break; 403 case 4: | 402 break; 403 case 4: |
404 pkt_data = pkt->get | 404 pkt_data = pkt->getLE<uint32_t>(); |
405 break; 406 default: 407 panic("Invalid size when writing to priority regs in Gic: %d\n", 408 data_sz); 409 } 410 411 DPRINTF(GIC, "gic distributor write register %#x size %#x value %#x \n", 412 daddr, data_sz, pkt_data); --- 140 unchanged lines hidden (view full) --- 553 554Tick 555GicV2::writeCpu(PacketPtr pkt) 556{ 557 const Addr daddr = pkt->getAddr() - cpuRange.start(); 558 559 assert(pkt->req->hasContextId()); 560 const ContextID ctx = pkt->req->contextId(); | 405 break; 406 default: 407 panic("Invalid size when writing to priority regs in Gic: %d\n", 408 data_sz); 409 } 410 411 DPRINTF(GIC, "gic distributor write register %#x size %#x value %#x \n", 412 daddr, data_sz, pkt_data); --- 140 unchanged lines hidden (view full) --- 553 554Tick 555GicV2::writeCpu(PacketPtr pkt) 556{ 557 const Addr daddr = pkt->getAddr() - cpuRange.start(); 558 559 assert(pkt->req->hasContextId()); 560 const ContextID ctx = pkt->req->contextId(); |
561 const uint32_t data = pkt->get | 561 const uint32_t data = pkt->getLE<uint32_t>(); |
562 563 DPRINTF(GIC, "gic cpu write register cpu:%d %#x val: %#x\n", 564 ctx, daddr, data); 565 566 writeCpu(ctx, daddr, data); 567 568 pkt->makeAtomicResponse(); 569 return cpuPioDelay; --- 513 unchanged lines hidden --- | 562 563 DPRINTF(GIC, "gic cpu write register cpu:%d %#x val: %#x\n", 564 ctx, daddr, data); 565 566 writeCpu(ctx, daddr, data); 567 568 pkt->makeAtomicResponse(); 569 return cpuPioDelay; --- 513 unchanged lines hidden --- |