Browse Source

TCL scripts: collect duplicated procedures

TCL procedures mrw and mmw, originally in DaVinci target code,
are duplicated in other TCL scripts.
Moved in a common helper file, and added help/usage description.

Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com>
tags/v0.5.0-rc1
Antonio Borneo 13 years ago
committed by Øyvind Harboe
parent
commit
edefee9880
4 changed files with 25 additions and 35 deletions
  1. +22
    -0
      tcl/mem_helper.tcl
  2. +1
    -15
      tcl/target/c100helper.tcl
  3. +1
    -14
      tcl/target/davinci.cfg
  4. +1
    -6
      tcl/target/stellaris.cfg

+ 22
- 0
tcl/mem_helper.tcl View File

@@ -0,0 +1,22 @@
# Helper for common memory read/modify/write procedures

# mrw: "memory read word", returns value of $reg
proc mrw {reg} {
set value ""
ocd_mem2array value 32 $reg 1
return $value(0)
}

add_usage_text mrw "address"
add_help_text mrw "Returns value of word in memory."

# mmw: "memory modify word", updates value of $reg
# $reg <== ((value & ~$clearbits) | $setbits)
proc mmw {reg setbits clearbits} {
set old [mrw $reg]
set new [expr ($old & ~$clearbits) | $setbits]
mww $reg $new
}

add_usage_text mmw "address setbits clearbits"
add_help_text mmw "Modify word in memory. new_val = (old_val & ~clearbits) | setbits;"

+ 1
- 15
tcl/target/c100helper.tcl View File

@@ -25,13 +25,7 @@ proc helpC100 {} {
puts "22) flashUBOOT: will prgram NOR sectors 0-3 with u-boot.bin"
}

# mrw,mmw from davinci.cfg
# mrw: "memory read word", returns value of $reg
proc mrw {reg} {
set value ""
mem2array value 32 $reg 1
return $value(0)
}
source [find mem_helper.tcl]

# read a 64-bit register (memory mapped)
proc mr64bit {reg} {
@@ -50,14 +44,6 @@ proc mw64bit {reg value} {
mww [expr $reg+4] $high
}

# mmw: "memory modify word", updates value of $reg
# $reg <== ((value & ~$clearbits) | $setbits)
proc mmw {reg setbits clearbits} {
set old [mrw $reg]
set new [expr ($old & ~$clearbits) | $setbits]
mww $reg $new
}


proc showNOR {} {
puts "This is the current NOR setup"


+ 1
- 14
tcl/target/davinci.cfg View File

@@ -7,20 +7,7 @@ proc davinci_pinmux {soc reg value} {
mww [expr [dict get $soc sysbase] + 4 * $reg] $value
}

# mrw: "memory read word", returns value of $reg
proc mrw {reg} {
set value ""
mem2array value 32 $reg 1
return $value(0)
}

# mmw: "memory modify word", updates value of $reg
# $reg <== ((value & ~$clearbits) | $setbits)
proc mmw {reg setbits clearbits} {
set old [mrw $reg]
set new [expr ($old & ~$clearbits) | $setbits]
mww $reg $new
}
source [find mem_helper.tcl]

#
# pll_setup: initialize PLL


+ 1
- 6
tcl/target/stellaris.cfg View File

@@ -46,12 +46,7 @@ $_TARGETNAME configure -work-area-phys 0x20000000 -work-area-size $_WORKAREASIZE
# this, if you're using a slower clock.
adapter_khz 500

# mrw: "memory read word", returns value of $reg
proc mrw {reg} {
set value ""
mem2array value 32 $reg 1
return $value(0)
}
source [find mem_helper.tcl]

$_TARGETNAME configure -event reset-start {
adapter_khz 500


Loading…
Cancel
Save