Deleted Added
sdiff udiff text old ( 8245:a9d06c894afe ) new ( 8524:1ddd1aa0e55b )
full compact
1/*
2 * Copyright (c) 2010 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

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

80 pkt->makeAtomicResponse();
81 return pioDelay;
82}
83
84
85void
86Sp804::Timer::read(PacketPtr pkt, Addr daddr)
87{
88 DPRINTF(Timer, "Reading from Timer at offset: %#x\n", daddr);
89
90 switch(daddr) {
91 case LoadReg:
92 pkt->set<uint32_t>(loadValue);
93 break;
94 case CurrentReg:
95 DPRINTF(Timer, "Event schedule for %d, clock=%d, prescale=%d\n",
96 zeroEvent.when(), clock, control.timerPrescale);
97 Tick time;

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

111 break;
112 case BGLoad:
113 pkt->set<uint32_t>(loadValue);
114 break;
115 default:
116 panic("Tried to read SP804 timer at offset %#x\n", daddr);
117 break;
118 }
119}
120
121Tick
122Sp804::write(PacketPtr pkt)
123{
124 assert(pkt->getAddr() >= pioAddr && pkt->getAddr() < pioAddr + pioSize);
125 assert(pkt->getSize() == 4);
126 Addr daddr = pkt->getAddr() - pioAddr;

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

135 panic("Tried to write SP804 at offset %#x that doesn't exist\n", daddr);
136 pkt->makeAtomicResponse();
137 return pioDelay;
138}
139
140void
141Sp804::Timer::write(PacketPtr pkt, Addr daddr)
142{
143 DPRINTF(Timer, "Writing to Timer at offset: %#x\n", daddr);
144 switch (daddr) {
145 case LoadReg:
146 loadValue = pkt->get<uint32_t>();
147 restartCounter(loadValue);
148 break;
149 case CurrentReg:
150 // Spec says this value can't be written, but linux writes it anyway
151 break;

--- 145 unchanged lines hidden ---