timer_cpulocal.cc (8512:a508c2d92d63) timer_cpulocal.cc (8993:d5f9445010da)
1/*
2 * Copyright (c) 2010-2011 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

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

286 return;
287
288 DPRINTF(Timer, "Timer Counter reached zero\n");
289
290 rawIntTimer = true;
291 bool old_pending = pendingIntTimer;
292 if (timerControl.intEnable)
293 pendingIntTimer = true;
1/*
2 * Copyright (c) 2010-2011 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

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

286 return;
287
288 DPRINTF(Timer, "Timer Counter reached zero\n");
289
290 rawIntTimer = true;
291 bool old_pending = pendingIntTimer;
292 if (timerControl.intEnable)
293 pendingIntTimer = true;
294 if (pendingIntTimer && ~old_pending) {
294 if (pendingIntTimer && !old_pending) {
295 DPRINTF(Timer, "-- Causing interrupt\n");
296 parent->gic->sendPPInt(intNumTimer, cpuNum);
297 }
298
299 if (!timerControl.autoReload)
300 return;
301 else
302 restartTimerCounter(timerLoadValue);

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

317 if (watchdogControl.intEnable && !watchdogControl.watchdogMode)
318 pendingIntWatchdog = true;
319 else if (watchdogControl.watchdogMode) {
320 rawResetWatchdog = true;
321 fatal("gem5 ARM Model does not support true watchdog operation!\n");
322 //XXX: Should we ever support a true watchdog reset?
323 }
324
295 DPRINTF(Timer, "-- Causing interrupt\n");
296 parent->gic->sendPPInt(intNumTimer, cpuNum);
297 }
298
299 if (!timerControl.autoReload)
300 return;
301 else
302 restartTimerCounter(timerLoadValue);

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

317 if (watchdogControl.intEnable && !watchdogControl.watchdogMode)
318 pendingIntWatchdog = true;
319 else if (watchdogControl.watchdogMode) {
320 rawResetWatchdog = true;
321 fatal("gem5 ARM Model does not support true watchdog operation!\n");
322 //XXX: Should we ever support a true watchdog reset?
323 }
324
325 if (pendingIntWatchdog && ~old_pending) {
325 if (pendingIntWatchdog && !old_pending) {
326 DPRINTF(Timer, "-- Causing interrupt\n");
327 parent->gic->sendPPInt(intNumWatchdog, cpuNum);
328 }
329
330 if (watchdogControl.watchdogMode)
331 return;
332 else if (watchdogControl.autoReload)
333 restartWatchdogCounter(watchdogLoadValue);

--- 107 unchanged lines hidden ---
326 DPRINTF(Timer, "-- Causing interrupt\n");
327 parent->gic->sendPPInt(intNumWatchdog, cpuNum);
328 }
329
330 if (watchdogControl.watchdogMode)
331 return;
332 else if (watchdogControl.autoReload)
333 restartWatchdogCounter(watchdogLoadValue);

--- 107 unchanged lines hidden ---