energy_ctrl.cc (12086:069c529a76fd) energy_ctrl.cc (13230:2988dc5d1d6f)
1/*
2 * Copyright (c) 2012-2014 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

--- 58 unchanged lines hidden (view full) ---

67 assert(pkt->getSize() == 4);
68
69 Addr daddr = pkt->getAddr() - pioAddr;
70 assert((daddr & 3) == 0);
71 Registers reg = Registers(daddr / 4);
72
73 if (!dvfsHandler->isEnabled()) {
74 // NB: Zero is a good response if the handler is disabled
1/*
2 * Copyright (c) 2012-2014 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

--- 58 unchanged lines hidden (view full) ---

67 assert(pkt->getSize() == 4);
68
69 Addr daddr = pkt->getAddr() - pioAddr;
70 assert((daddr & 3) == 0);
71 Registers reg = Registers(daddr / 4);
72
73 if (!dvfsHandler->isEnabled()) {
74 // NB: Zero is a good response if the handler is disabled
75 pkt->set(0);
75 pkt->setLE<uint32_t>(0);
76 warn_once("EnergyCtrl: Disabled handler, ignoring read from reg %i\n",
77 reg);
78 DPRINTF(EnergyCtrl, "dvfs handler disabled, return 0 for read from "\
79 "reg %i\n", reg);
80 pkt->makeAtomicResponse();
81 return pioDelay;
82 }
83

--- 52 unchanged lines hidden (view full) ---

136 result = toMicroVolt(voltage);
137 DPRINTF(EnergyCtrl, "reading voltage %d u-volt at perf level: %d\n",
138 result, perfLevelToRead);
139 break;
140 default:
141 panic("Tried to read EnergyCtrl at offset %#x / reg %i\n", daddr,
142 reg);
143 }
76 warn_once("EnergyCtrl: Disabled handler, ignoring read from reg %i\n",
77 reg);
78 DPRINTF(EnergyCtrl, "dvfs handler disabled, return 0 for read from "\
79 "reg %i\n", reg);
80 pkt->makeAtomicResponse();
81 return pioDelay;
82 }
83

--- 52 unchanged lines hidden (view full) ---

136 result = toMicroVolt(voltage);
137 DPRINTF(EnergyCtrl, "reading voltage %d u-volt at perf level: %d\n",
138 result, perfLevelToRead);
139 break;
140 default:
141 panic("Tried to read EnergyCtrl at offset %#x / reg %i\n", daddr,
142 reg);
143 }
144 pkt->set(result);
144 pkt->setLE<uint32_t>(result);
145 pkt->makeAtomicResponse();
146 return pioDelay;
147}
148
149Tick
150EnergyCtrl::write(PacketPtr pkt)
151{
152 assert(pkt->getAddr() >= pioAddr && pkt->getAddr() < pioAddr + pioSize);
153 assert(pkt->getSize() == 4);
154
155 uint32_t data;
145 pkt->makeAtomicResponse();
146 return pioDelay;
147}
148
149Tick
150EnergyCtrl::write(PacketPtr pkt)
151{
152 assert(pkt->getAddr() >= pioAddr && pkt->getAddr() < pioAddr + pioSize);
153 assert(pkt->getSize() == 4);
154
155 uint32_t data;
156 data = pkt->get();
156 data = pkt->getLE<uint32_t>();
157
158 Addr daddr = pkt->getAddr() - pioAddr;
159 assert((daddr & 3) == 0);
160 Registers reg = Registers(daddr / 4);
161
162 if (!dvfsHandler->isEnabled()) {
163 // Ignore writes to a disabled controller
164 warn_once("EnergyCtrl: Disabled handler, ignoring write %u to "\

--- 100 unchanged lines hidden ---
157
158 Addr daddr = pkt->getAddr() - pioAddr;
159 assert((daddr & 3) == 0);
160 Registers reg = Registers(daddr / 4);
161
162 if (!dvfsHandler->isEnabled()) {
163 // Ignore writes to a disabled controller
164 warn_once("EnergyCtrl: Disabled handler, ignoring write %u to "\

--- 100 unchanged lines hidden ---