[openfirmware] [commit] r2659 - cpu/arm/olpc/1.75

repository service svn at openfirmware.info
Tue Nov 1 06:29:33 CET 2011


Author: quozl
Date: Tue Nov  1 06:29:32 2011
New Revision: 2659
URL: http://tracker.coreboot.org/trac/openfirmware/changeset/2659

Log:
OLPC XO-1.75 - split accelerometer debugging code into a separate file.

Added:
   cpu/arm/olpc/1.75/accelerometer.txt
Modified:
   cpu/arm/olpc/1.75/accelerometer.fth

Modified: cpu/arm/olpc/1.75/accelerometer.fth
==============================================================================
--- cpu/arm/olpc/1.75/accelerometer.fth	Mon Oct 31 10:10:14 2011	(r2658)
+++ cpu/arm/olpc/1.75/accelerometer.fth	Tue Nov  1 06:29:32 2011	(r2659)
@@ -14,259 +14,6 @@
 : accelerometer-on  ( -- )  h# 47 ctl1!  ;
 : accelerometer-off  ( -- )  h# 07 ctl1!  ;
 
-0 [if]
-
-select /accelerometer
-
-: temperature-on  ( -- )  h# c0 h# 1f acc-reg!  ;
-: bdu  ( -- )  h# 23 acc-reg@  h# 80 or  h# 23 acc-reg!  ;
-: adc1@  ( -- )  h# 08 acc-reg@ h# 09 acc-reg@ bwjoin wext 5 >>a  ;
-: adc2@  ( -- )  h# 0a acc-reg@ h# 0b acc-reg@ bwjoin wext 5 >>a  ;
-
-: wait-adc3  begin  h# 07 acc-reg@ h# 04 and until  ;
-: adc3@  ( -- l h )
-    h# 0c acc-reg@ h# 0d acc-reg@ bwjoin wext 5 >>a
-;
-: 1hz  ( -- )  h# 20 acc-reg@  h# 0f and  h# 10 or  h# 20 acc-reg!  ;
-
-: .xr  ( n -- )  push-hex      2 .r  pop-base  space ;
-: .dr  ( n -- )  push-decimal  3 .r  pop-base  space ;
-: .br  ( n -- )
-   push-binary  0  <# # # # # [char] . hold # # # # #>  type  pop-base  space ;
-: .status-aux  h# 07 acc-reg@  .br  ;
-
-: .reg  ( register -- value )
-   space
-   dup .xr ."  : "       ( register )
-   acc-reg@              ( value )
-   dup .br
-   dup .xr
-   dup .dr
-;
-
-: .ureg  ( register -- )
-    ."              " .reg drop
-;
-
-: .regs  ( -- )
-    h# 07 h# 00  do i  .ureg cr  loop
-
-    ." STATUS_AUX   " h# 07 .reg
-    dup h# 80 and if ." 321OR " then
-    dup h# 40 and if ." 3OR " then
-    dup h# 20 and if ." 2OR " then
-    dup h# 10 and if ." 1OR " then
-    dup h# 08 and if ." 321DA " then
-    dup h# 04 and if ." 3DA " then
-    dup h# 02 and if ." 2DA " then
-    dup h# 01 and if ." 1DA " then
-    drop cr
-
-    ." OUT_1_L      " h# 08 .reg cr
-    ." OUT_1_H      " h# 09 .reg
-    bwjoin wext 5 >>a ." ( " .d ." )" cr
-
-    ." OUT_2_L      " h# 0A .reg cr
-    ." OUT_2_H      " h# 0B .reg
-    bwjoin wext 5 >>a ." ( " .d ." )" cr
-
-    ." OUT_3_L      " h# 0C .reg cr
-    ." OUT_3_H      " h# 0D .reg
-    bwjoin wext 5 >>a ." ( " .d ." )" cr
-
-    ." INT_COUNTER  " h# 0E .reg drop cr
-    ." WHO_AM_I     " h# 0F .reg b# 0011.0011 = if ." ok" else ." bad" then cr
-
-    h# 1f h# 10  do  i .ureg cr  loop
-
-    ." TEMP_CFG_REG " h# 1F .reg
-    dup h# 80 and if ." ADC_PD " then
-    dup h# 40 and if ." TEMP_EN " then
-    dup h# 3f and if ." mbz " then
-    drop cr
-
-    ." CTRL_REG1    " h# 20 .reg
-    dup h# f0 and 4 rshift
-    dup h# 00 = if ." [power-down] " then
-    dup h# 01 = if ." [1 Hz] " then
-    dup h# 02 = if ." [10 Hz] " then
-    dup h# 03 = if ." [25 Hz] " then
-    dup h# 04 = if ." [50 Hz] " then
-    dup h# 05 = if ." [100 Hz] " then
-    dup h# 06 = if ." [200 Hz] " then
-    dup h# 07 = if ." [400 Hz] " then
-    dup h# 08 = if ." [1.6 kHz] " then
-    dup h# 09 = if ." [1.25 kHz / 5 kHz] " then
-    drop
-    dup h# 08 and if ." LPen " then
-    dup h# 04 and if ." Zen " then
-    dup h# 02 and if ." Yen " then
-    dup h# 01 and if ." Xen " then
-    drop cr
-
-    ." CTRL_REG2    " h# 21 .reg
-    dup h# 80 and if ." HPM1 " then
-    dup h# 40 and if ." HPM0 " then
-    dup h# 20 and if ." HPCF2 " then
-    dup h# 10 and if ." HPCF1 " then
-    dup h# 08 and if ." FDS " then
-    dup h# 04 and if ." HPCLICK " then
-    dup h# 02 and if ." HPIS2  " then
-    dup h# 01 and if ." HPIS1 " then
-    drop cr
-
-    ." CTRL_REG3    " h# 22 .reg
-    dup h# 80 and if ." I1_CLICK " then
-    dup h# 40 and if ." I1_AOI1 " then
-    dup h# 20 and if ." I1_AOI2 " then
-    dup h# 10 and if ." I1_DRDY1 " then
-    dup h# 08 and if ." I1_DRDY2 " then
-    dup h# 04 and if ." I1_WTM " then
-    dup h# 02 and if ." I1_OVERRUN  " then
-    dup h# 01 and if ." rsvd " then
-    drop cr
-
-    ." CTRL_REG4    " h# 23 .reg
-    dup h# 80 and if ." BDU " then
-    dup h# 40 and if ." BLE " then
-    dup h# 20 and if ." FS1 " then
-    dup h# 10 and if ." FS2 " then
-    dup h# 08 and if ." HR " then
-    dup h# 04 and if ." ST1 " then
-    dup h# 02 and if ." ST0 " then
-    dup h# 01 and if ." SIM " then
-    drop cr
-
-    ." CTRL_REG5    " h# 24 .reg
-    dup h# 80 and if ." BOOT " then
-    dup h# 40 and if ." FIFO_EN " then
-    dup h# 20 and if ." rsvd " then
-    dup h# 10 and if ." rsvd " then
-    dup h# 08 and if ." LIR_INT1 " then
-    dup h# 04 and if ." D4D_INT1 " then
-    dup h# 02 and if ." mbz " then
-    dup h# 01 and if ." mbz " then
-    drop cr
-
-    ." CTRL_REG6    " h# 25 .reg
-    dup h# 80 and if ." I2_CLICKen " then
-    dup h# 40 and if ." I2_INT1 " then
-    dup h# 20 and if ." mbz " then
-    dup h# 10 and if ." BOOT_I1 " then
-    dup h# 08 and if ." mbz " then
-    dup h# 04 and if ." rsvd " then
-    dup h# 02 and if ." H_LACTIVE " then
-    dup h# 01 and if ." rsvd " then
-    drop cr
-
-    ." REFERENCE    " h# 26 .reg drop cr
-
-    ." STATUS_REG   " h# 27 .reg
-    dup h# 80 and if ." ZYXOR " then
-    dup h# 40 and if ." ZOR " then
-    dup h# 20 and if ." YOR " then
-    dup h# 10 and if ." XOR " then
-    dup h# 08 and if ." ZYXDA " then
-    dup h# 04 and if ." ZDA " then
-    dup h# 02 and if ." YDA " then
-    dup h# 01 and if ." ZDA " then
-    drop cr
-
-    ." OUT_X_L      " h# 28 .reg cr
-    ." OUT_X_H      " h# 29 .reg
-    bwjoin wext 5 >>a ." ( " .d ." )" cr
-
-    ." OUT_Y_L      " h# 2a .reg cr
-    ." OUT_Y_H      " h# 2b .reg
-    bwjoin wext 5 >>a ." ( " .d ." )" cr
-
-    ." OUT_Z_L      " h# 2c .reg cr
-    ." OUT_Z_H      " h# 2d .reg
-    bwjoin wext 5 >>a ." ( " .d ." )" cr
-
-    ." FIFO_CTRL_REG" h# 2e .reg
-    dup h# 80 and if ." FM1 " then
-    dup h# 40 and if ." FM0 " then
-    dup h# 20 and if ." TR " then
-    dup h# 10 and if ." FTH4 " then
-    dup h# 08 and if ." FTH3 " then
-    dup h# 04 and if ." FTH2 " then
-    dup h# 02 and if ." FTH1 " then
-    dup h# 01 and if ." FTH0 " then
-    drop cr
-
-    ." FIFO_SRC_REG " h# 2f .reg
-    dup h# 80 and if ." WTM " then
-    dup h# 40 and if ." OVRN_FIFO " then
-    dup h# 20 and if ." EMPTY " then
-    dup h# 10 and if ." FSS4 " then
-    dup h# 08 and if ." FSS3 " then
-    dup h# 04 and if ." FSS2 " then
-    dup h# 02 and if ." FSS1 " then
-    dup h# 01 and if ." FSS0 " then
-    drop cr
-
-    ." INT1_CFG     " h# 30 .reg
-    dup h# 80 and if ." AOI " then
-    dup h# 40 and if ." 6D " then
-    dup h# 20 and if ." ZHIE/ZUPE " then
-    dup h# 10 and if ." ZLIE/ZDOWNE " then
-    dup h# 08 and if ." YHIE/YUPE " then
-    dup h# 04 and if ." YLIE/YDOWNE " then
-    dup h# 02 and if ." XHIE/XUPE " then
-    dup h# 01 and if ." XLIE/XDOWNE " then
-    drop cr
-
-    ." INT1_SRC     " h# 31 .reg
-    dup h# 80 and if ." mbz " then
-    dup h# 40 and if ." IA " then
-    dup h# 20 and if ." ZH " then
-    dup h# 10 and if ." ZL " then
-    dup h# 08 and if ." YH " then
-    dup h# 04 and if ." YL " then
-    dup h# 02 and if ." XH " then
-    dup h# 01 and if ." XL " then
-    drop cr
-
-    ." INT1_THS     " h# 32 .reg drop cr
-    ." INT1_DURATION" h# 33 .reg drop cr
-
-    h# 38 h# 34  do  i .ureg cr  loop
-
-    ." CLICK_CFG    " h# 38 .reg
-    dup h# 80 and if ." rsvd " then
-    dup h# 40 and if ." rsvd " then
-    dup h# 20 and if ." ZD " then
-    dup h# 10 and if ." ZS " then
-    dup h# 08 and if ." YD " then
-    dup h# 04 and if ." YS " then
-    dup h# 02 and if ." XD " then
-    dup h# 01 and if ." XS " then
-    drop cr
-
-    ." CLICK_SRC    " h# 39 .reg
-    dup h# 80 and if ." rsvd " then
-    dup h# 40 and if ." IA " then
-    dup h# 20 and if ." DCLICK " then
-    dup h# 10 and if ." SCLICK " then
-    dup h# 08 and if ." Sign " then
-    dup h# 04 and if ." Z " then
-    dup h# 02 and if ." Y " then
-    dup h# 01 and if ." X " then
-    drop cr
-
-    ." CLICK_THS    " h# 3a .reg drop cr
-    ." TIME_LIMIT   " h# 3b .reg drop cr
-    ." TIME_LATENCY " h# 3c .reg drop cr
-    ." TIME_WINDOW  " h# 3d .reg drop cr
-    h# 3e .ureg cr
-    h# 3f .ureg cr
-
-    \ register decode window is 00-7f, then 80-ff is a mirror
-;
-[then]
-
-: bext  ( b -- n )  dup h# 80 and  if  h# ffffff00 or  then  ;
 : wext  ( b -- n )  dup h# 8000 and  if  h# ffff0000 or  then  ;
 : acceleration@  ( -- x y z )
    h# 28 acc-reg@ h# 29 acc-reg@ bwjoin wext 5 >>a

Added: cpu/arm/olpc/1.75/accelerometer.txt
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ cpu/arm/olpc/1.75/accelerometer.txt	Tue Nov  1 06:29:32 2011	(r2659)
@@ -0,0 +1,268 @@
+\ accelerometer code for potential future use or debugging
+
+\ analog to digital converter
+: adc1@  ( -- )  h# 08 acc-reg@ h# 09 acc-reg@ bwjoin wext 5 >>a  ;
+: adc2@  ( -- )  h# 0a acc-reg@ h# 0b acc-reg@ bwjoin wext 5 >>a  ;
+
+\ temperature sensor
+: temperature-on  ( -- )  h# c0 h# 1f acc-reg!  ;
+: temperature@  ( -- l h )
+    begin  h# 07 acc-reg@ h# 04 and until
+    h# 0c acc-reg@ h# 0d acc-reg@ bwjoin wext 5 >>a
+;
+
+\ block data update
+: bdu  ( -- )  h# 23 acc-reg@  h# 80 or  h# 23 acc-reg!  ;
+
+\ sample rate setting
+: odr!  ( n -- )  4 lshift  h# 20 acc-reg@  h# 0f and  or  h# 20 acc-reg!  ;
+
+: 1hz     ( -- )  1 odr!  ;
+: 10hz    ( -- )  2 odr!  ;
+: 25hz    ( -- )  3 odr!  ;
+: 50hz    ( -- )  4 odr!  ;  \ power up default
+: 100hz   ( -- )  5 odr!  ;
+: 200hz   ( -- )  6 odr!  ;
+: 400hz   ( -- )  7 odr!  ;
+: 1.6khz  ( -- )  8 odr!  ;
+: 5khz    ( -- )  9 odr!  ;
+
+\ sign extend a byte
+: bext  ( b -- n )  dup h# 80 and  if  h# ffffff00 or  then  ;
+
+\ register dump
+
+: .xr  ( n -- )  push-hex      2 .r  pop-base  space ;
+: .dr  ( n -- )  push-decimal  3 .r  pop-base  space ;
+: .br  ( n -- )
+   push-binary  0  <# # # # # [char] . hold # # # # #>  type  pop-base  space ;
+
+: .reg  ( register -- value )
+   space
+   dup .xr ."  : "       ( register )
+   acc-reg@              ( value )
+   dup .br
+   dup .xr
+   dup .dr
+;
+
+: .ureg  ( register -- )
+    ."              " .reg drop
+;
+
+: .regs  ( -- )
+    h# 07 h# 00  do i  .ureg cr  loop
+
+    ." STATUS_AUX   " h# 07 .reg
+    dup h# 80 and if ." 321OR " then
+    dup h# 40 and if ." 3OR " then
+    dup h# 20 and if ." 2OR " then
+    dup h# 10 and if ." 1OR " then
+    dup h# 08 and if ." 321DA " then
+    dup h# 04 and if ." 3DA " then
+    dup h# 02 and if ." 2DA " then
+    dup h# 01 and if ." 1DA " then
+    drop cr
+
+    ." OUT_1_L      " h# 08 .reg cr
+    ." OUT_1_H      " h# 09 .reg
+    bwjoin wext 5 >>a ." ( " .d ." )" cr
+
+    ." OUT_2_L      " h# 0A .reg cr
+    ." OUT_2_H      " h# 0B .reg
+    bwjoin wext 5 >>a ." ( " .d ." )" cr
+
+    ." OUT_3_L      " h# 0C .reg cr
+    ." OUT_3_H      " h# 0D .reg
+    bwjoin wext 5 >>a ." ( " .d ." )" cr
+
+    ." INT_COUNTER  " h# 0E .reg drop cr
+    ." WHO_AM_I     " h# 0F .reg b# 0011.0011 = if ." ok" else ." bad" then cr
+
+    h# 1f h# 10  do  i .ureg cr  loop
+
+    ." TEMP_CFG_REG " h# 1F .reg
+    dup h# 80 and if ." ADC_PD " then
+    dup h# 40 and if ." TEMP_EN " then
+    dup h# 3f and if ." mbz " then
+    drop cr
+
+    ." CTRL_REG1    " h# 20 .reg
+    dup h# f0 and 4 rshift
+    dup h# 00 = if ." [power-down] " then
+    dup h# 01 = if ." [1 Hz] " then
+    dup h# 02 = if ." [10 Hz] " then
+    dup h# 03 = if ." [25 Hz] " then
+    dup h# 04 = if ." [50 Hz] " then
+    dup h# 05 = if ." [100 Hz] " then
+    dup h# 06 = if ." [200 Hz] " then
+    dup h# 07 = if ." [400 Hz] " then
+    dup h# 08 = if ." [1.6 kHz] " then
+    dup h# 09 = if ." [1.25 kHz / 5 kHz] " then
+    drop
+    dup h# 08 and if ." LPen " then
+    dup h# 04 and if ." Zen " then
+    dup h# 02 and if ." Yen " then
+    dup h# 01 and if ." Xen " then
+    drop cr
+
+    ." CTRL_REG2    " h# 21 .reg
+    dup h# 80 and if ." HPM1 " then
+    dup h# 40 and if ." HPM0 " then
+    dup h# 20 and if ." HPCF2 " then
+    dup h# 10 and if ." HPCF1 " then
+    dup h# 08 and if ." FDS " then
+    dup h# 04 and if ." HPCLICK " then
+    dup h# 02 and if ." HPIS2  " then
+    dup h# 01 and if ." HPIS1 " then
+    drop cr
+
+    ." CTRL_REG3    " h# 22 .reg
+    dup h# 80 and if ." I1_CLICK " then
+    dup h# 40 and if ." I1_AOI1 " then
+    dup h# 20 and if ." I1_AOI2 " then
+    dup h# 10 and if ." I1_DRDY1 " then
+    dup h# 08 and if ." I1_DRDY2 " then
+    dup h# 04 and if ." I1_WTM " then
+    dup h# 02 and if ." I1_OVERRUN  " then
+    dup h# 01 and if ." rsvd " then
+    drop cr
+
+    ." CTRL_REG4    " h# 23 .reg
+    dup h# 80 and if ." BDU " then
+    dup h# 40 and if ." BLE " then
+    dup h# 20 and if ." FS1 " then
+    dup h# 10 and if ." FS2 " then
+    dup h# 08 and if ." HR " then
+    dup h# 04 and if ." ST1 " then
+    dup h# 02 and if ." ST0 " then
+    dup h# 01 and if ." SIM " then
+    drop cr
+
+    ." CTRL_REG5    " h# 24 .reg
+    dup h# 80 and if ." BOOT " then
+    dup h# 40 and if ." FIFO_EN " then
+    dup h# 20 and if ." rsvd " then
+    dup h# 10 and if ." rsvd " then
+    dup h# 08 and if ." LIR_INT1 " then
+    dup h# 04 and if ." D4D_INT1 " then
+    dup h# 02 and if ." mbz " then
+    dup h# 01 and if ." mbz " then
+    drop cr
+
+    ." CTRL_REG6    " h# 25 .reg
+    dup h# 80 and if ." I2_CLICKen " then
+    dup h# 40 and if ." I2_INT1 " then
+    dup h# 20 and if ." mbz " then
+    dup h# 10 and if ." BOOT_I1 " then
+    dup h# 08 and if ." mbz " then
+    dup h# 04 and if ." rsvd " then
+    dup h# 02 and if ." H_LACTIVE " then
+    dup h# 01 and if ." rsvd " then
+    drop cr
+
+    ." REFERENCE    " h# 26 .reg drop cr
+
+    ." STATUS_REG   " h# 27 .reg
+    dup h# 80 and if ." ZYXOR " then
+    dup h# 40 and if ." ZOR " then
+    dup h# 20 and if ." YOR " then
+    dup h# 10 and if ." XOR " then
+    dup h# 08 and if ." ZYXDA " then
+    dup h# 04 and if ." ZDA " then
+    dup h# 02 and if ." YDA " then
+    dup h# 01 and if ." ZDA " then
+    drop cr
+
+    ." OUT_X_L      " h# 28 .reg cr
+    ." OUT_X_H      " h# 29 .reg
+    bwjoin wext 5 >>a ." ( " .d ." )" cr
+
+    ." OUT_Y_L      " h# 2a .reg cr
+    ." OUT_Y_H      " h# 2b .reg
+    bwjoin wext 5 >>a ." ( " .d ." )" cr
+
+    ." OUT_Z_L      " h# 2c .reg cr
+    ." OUT_Z_H      " h# 2d .reg
+    bwjoin wext 5 >>a ." ( " .d ." )" cr
+
+    ." FIFO_CTRL_REG" h# 2e .reg
+    dup h# 80 and if ." FM1 " then
+    dup h# 40 and if ." FM0 " then
+    dup h# 20 and if ." TR " then
+    dup h# 10 and if ." FTH4 " then
+    dup h# 08 and if ." FTH3 " then
+    dup h# 04 and if ." FTH2 " then
+    dup h# 02 and if ." FTH1 " then
+    dup h# 01 and if ." FTH0 " then
+    drop cr
+
+    ." FIFO_SRC_REG " h# 2f .reg
+    dup h# 80 and if ." WTM " then
+    dup h# 40 and if ." OVRN_FIFO " then
+    dup h# 20 and if ." EMPTY " then
+    dup h# 10 and if ." FSS4 " then
+    dup h# 08 and if ." FSS3 " then
+    dup h# 04 and if ." FSS2 " then
+    dup h# 02 and if ." FSS1 " then
+    dup h# 01 and if ." FSS0 " then
+    drop cr
+
+    ." INT1_CFG     " h# 30 .reg
+    dup h# 80 and if ." AOI " then
+    dup h# 40 and if ." 6D " then
+    dup h# 20 and if ." ZHIE/ZUPE " then
+    dup h# 10 and if ." ZLIE/ZDOWNE " then
+    dup h# 08 and if ." YHIE/YUPE " then
+    dup h# 04 and if ." YLIE/YDOWNE " then
+    dup h# 02 and if ." XHIE/XUPE " then
+    dup h# 01 and if ." XLIE/XDOWNE " then
+    drop cr
+
+    ." INT1_SRC     " h# 31 .reg
+    dup h# 80 and if ." mbz " then
+    dup h# 40 and if ." IA " then
+    dup h# 20 and if ." ZH " then
+    dup h# 10 and if ." ZL " then
+    dup h# 08 and if ." YH " then
+    dup h# 04 and if ." YL " then
+    dup h# 02 and if ." XH " then
+    dup h# 01 and if ." XL " then
+    drop cr
+
+    ." INT1_THS     " h# 32 .reg drop cr
+    ." INT1_DURATION" h# 33 .reg drop cr
+
+    h# 38 h# 34  do  i .ureg cr  loop
+
+    ." CLICK_CFG    " h# 38 .reg
+    dup h# 80 and if ." rsvd " then
+    dup h# 40 and if ." rsvd " then
+    dup h# 20 and if ." ZD " then
+    dup h# 10 and if ." ZS " then
+    dup h# 08 and if ." YD " then
+    dup h# 04 and if ." YS " then
+    dup h# 02 and if ." XD " then
+    dup h# 01 and if ." XS " then
+    drop cr
+
+    ." CLICK_SRC    " h# 39 .reg
+    dup h# 80 and if ." rsvd " then
+    dup h# 40 and if ." IA " then
+    dup h# 20 and if ." DCLICK " then
+    dup h# 10 and if ." SCLICK " then
+    dup h# 08 and if ." Sign " then
+    dup h# 04 and if ." Z " then
+    dup h# 02 and if ." Y " then
+    dup h# 01 and if ." X " then
+    drop cr
+
+    ." CLICK_THS    " h# 3a .reg drop cr
+    ." TIME_LIMIT   " h# 3b .reg drop cr
+    ." TIME_LATENCY " h# 3c .reg drop cr
+    ." TIME_WINDOW  " h# 3d .reg drop cr
+    h# 3e .ureg cr
+    h# 3f .ureg cr
+
+    \ register decode window is 00-7f, msb determines autoincrement
+;



More information about the openfirmware mailing list