[openfirmware] [commit] r1984 - in cpu/arm: . mmp2

repository service svn at openfirmware.info
Fri Oct 15 00:13:42 CEST 2010


Author: wmb
Date: Fri Oct 15 00:13:42 2010
New Revision: 1984
URL: http://tracker.coreboot.org/trac/openfirmware/changeset/1984

Log:
ARM - enabled stdin-idle.

Modified:
   cpu/arm/irqdispatch.fth
   cpu/arm/mmp2/irq.fth
   cpu/arm/mmp2/timer.fth

Modified: cpu/arm/irqdispatch.fth
==============================================================================
--- cpu/arm/irqdispatch.fth	Thu Oct 14 23:58:27 2010	(r1983)
+++ cpu/arm/irqdispatch.fth	Fri Oct 15 00:13:42 2010	(r1984)
@@ -4,6 +4,7 @@
 0 value pic-node
 : enable-interrupt   ( level -- )  " enable-irq"  pic-node $call-method  ;
 : disable-interrupt  ( level -- )  " disable-irq" pic-node $call-method  ;
+: interrupt-enabled?  ( level -- flag )  " irq-enabled?" pic-node $call-method  ;
 
 : stray-interrupt  ( level -- )
    ." Unexpected interrupt on IRQ" dup .d cr

Modified: cpu/arm/mmp2/irq.fth
==============================================================================
--- cpu/arm/mmp2/irq.fth	Thu Oct 14 23:58:27 2010	(r1983)
+++ cpu/arm/mmp2/irq.fth	Fri Oct 15 00:13:42 2010	(r1984)
@@ -15,6 +15,7 @@
 : block-irqs  ( -- )  1 h# 110 ic!  ;
 : unblock-irqs  ( -- )  0 h# 110 ic!  ;
 
+: irq-enabled?  ( level -- flag )  /l* ic@ h# 20 and 0<>  ;
 : enable-irq  ( level -- )  h# 21 swap /l* ic!  ;  \ Enable for IRQ1
 : disable-irq  ( level -- )  0 swap /l* ic!  ;
 

Modified: cpu/arm/mmp2/timer.fth
==============================================================================
--- cpu/arm/mmp2/timer.fth	Thu Oct 14 23:58:27 2010	(r1983)
+++ cpu/arm/mmp2/timer.fth	Fri Oct 15 00:13:42 2010	(r1984)
@@ -154,3 +154,17 @@
    d# 15 enable-interrupt
 ;
 ' (set-tick-limit) to set-tick-limit
+
+: can-idle?  ( -- flag )
+   interrupts-enabled?  if
+      d# 15 interrupt-enabled?
+   else
+      false
+   then
+;
+: do-idle  ( -- )  c7-wfi  ;
+: safe-idle  ( -- )
+   can-idle?  if  do-idle  then
+   \ do-lid
+;
+' safe-idle to stdin-idle



More information about the openfirmware mailing list