Author: wmb Date: Tue Jul 10 21:16:44 2012 New Revision: 3046 URL: http://tracker.coreboot.org/trac/openfirmware/changeset/3046
Log: ARM MMP2 - added io!@ routine for accessing slow IO registers that need to be read back after writing.
Modified: cpu/arm/mmp2/mfpr.fth cpu/arm/mmp2/socregs.fth
Modified: cpu/arm/mmp2/mfpr.fth ============================================================================== --- cpu/arm/mmp2/mfpr.fth Tue Jul 10 10:50:12 2012 (r3045) +++ cpu/arm/mmp2/mfpr.fth Tue Jul 10 21:16:44 2012 (r3046) @@ -46,9 +46,11 @@
: no-update, ( -- ) 8 w, ; \ 8 is a reserved bit; the code skips these : af@ ( gpio# -- function# ) gpio>mfpr io@ ; -: af! ( function# gpio# -- ) gpio>mfpr io! ; +: af! ( function# gpio# -- ) gpio>mfpr io!@ ;
: +edge-clr ( n -- n' ) h# 40 or ; +: +very-slow ( n -- n' ) h# 0000 or ; +: +slow ( n -- n' ) h# 0800 or ; : +medium ( n -- n' ) h# 1000 or ; : +fast ( n -- n' ) h# 1800 or ; : +twsi ( n -- n' ) h# 400 or ;
Modified: cpu/arm/mmp2/socregs.fth ============================================================================== --- cpu/arm/mmp2/socregs.fth Tue Jul 10 10:50:12 2012 (r3045) +++ cpu/arm/mmp2/socregs.fth Tue Jul 10 21:16:44 2012 (r3046) @@ -4,6 +4,7 @@ : +io ( offset -- va ) io-va + ; : io! ( value offset -- ) +io l! ; : io@ ( offset -- value ) +io l@ ; +: io!@ ( value offset -- ) tuck io! io@ drop ; \ For slow registers like MFPRs
: +apbc ( offset -- io-offset ) h# 01.5000 + ; \ APB Clock Unit : +pmua ( offset -- io-offset ) h# 28.2800 + ; \ CPU Power Management Unit
openfirmware@openfirmware.info