Signed-off-by: Øyvind Harboe <oyvind.har...@zylin.com> --- tcl/target/lpc2378.cfg | 42 +++--------------------------------------- tcl/target/lpc2478.cfg | 47 ++++------------------------------------------- tcl/target/lpc2x78.cfg | 32 ++++++++++++++++++++++++++++++++ 3 files changed, 39 insertions(+), 82 deletions(-) create mode 100644 tcl/target/lpc2x78.cfg
diff --git a/tcl/target/lpc2378.cfg b/tcl/target/lpc2378.cfg index 21fdd1b..924c317 100644 --- a/tcl/target/lpc2378.cfg +++ b/tcl/target/lpc2378.cfg @@ -1,43 +1,7 @@ # NXP LPC2378 ARM7TDMI-S with 512kB Flash and 32kB Local On-Chip SRAM (58kB total), clocked with 4MHz internal RC oscillator -if { [info exists CHIPNAME] } { - set _CHIPNAME $CHIPNAME -} else { - set _CHIPNAME lpc2378 +source [find target/lpc2x78.cfg] +proc init_targets {cclk} { + setup_lpc2x78 lpc2478 0x4f1f0f0f 0x8000 500 0x0007D000 4000 } -if { [info exists CPUTAPID ] } { - set _CPUTAPID $CPUTAPID -} else { - set _CPUTAPID 0x4f1f0f0f -} - -#delays on reset lines -adapter_nsrst_delay 200 -jtag_ntrst_delay 200 - -reset_config trst_and_srst - -jtag newtap $_CHIPNAME cpu -irlen 4 -ircapture 0x1 -irmask 0xf -expected-id $_CPUTAPID - -set _TARGETNAME $_CHIPNAME.cpu -target create $_TARGETNAME arm7tdmi -chain-position $_TARGETNAME - -# LPC2378 has 32kB of SRAM on its main system bus (so-called Local On-Chip SRAM) -$_TARGETNAME configure -work-area-phys 0x40000000 -work-area-size 0x8000 -work-area-backup 0 - -$_TARGETNAME configure -event reset-init { - # Force target into ARM state - arm core_state arm - #do not remap 0x0000-0x0020 to anything but the flash - mwb 0xE01FC040 0x01 -} - -# LPC2378 has 512kB of FLASH, but upper 8kB are occupied by bootloader. -# After reset the chip uses its internal 4MHz RC oscillator -# flash bank <name> lpc2000 <base> <size> 0 0 <target#> <variant> <clock> [calc checksum] -set _FLASHNAME $_CHIPNAME.flash -flash bank $_FLASHNAME lpc2000 0x0 0x0007D000 0 0 $_TARGETNAME lpc2000_v2 4000 calc_checksum - -# 4MHz / 6 = 666kHz, so use 500 -adapter_khz 500 diff --git a/tcl/target/lpc2478.cfg b/tcl/target/lpc2478.cfg index 3b14c87..59aca12 100644 --- a/tcl/target/lpc2478.cfg +++ b/tcl/target/lpc2478.cfg @@ -1,46 +1,7 @@ # NXP LPC2478 ARM7TDMI-S with 512kB Flash and 64kB Local On-Chip SRAM (98kB total), clocked with 4MHz internal RC oscillator -if { [info exists CHIPNAME] } { - set _CHIPNAME $CHIPNAME -} else { - set _CHIPNAME lpc2478 +source [find target/lpc2x78.cfg] +#cclk is required to set up flash correctly +proc setup_lpc2478 {cclk} { + setup_lpc2x78 lpc2478 0x4f1f0f0f 0x10000 500 0x7E000 $cclk } - -if { [info exists CPUTAPID ] } { - set _CPUTAPID $CPUTAPID -} else { - set _CPUTAPID 0x4f1f0f0f -} - -if { [info exists CCLK ] } { - set _CCLK $CCLK -} else { - error "You must specify the CCLK that will be used for flash programming!" -} - -#delays on reset lines -adapter_nsrst_delay 100 -jtag_ntrst_delay 100 - -reset_config trst_and_srst - -jtag newtap $_CHIPNAME cpu -irlen 4 -ircapture 0x1 -irmask 0xf -expected-id $_CPUTAPID - -set _TARGETNAME $_CHIPNAME.cpu -target create $_TARGETNAME arm7tdmi -chain-position $_TARGETNAME - -# LPC2478 has 64kB of SRAM on its main system bus (so-called Local On-Chip SRAM) -$_TARGETNAME configure -work-area-phys 0x40000000 -work-area-size 0x10000 -work-area-backup 0 - -$_TARGETNAME configure -event reset-init { - # Force target into ARM state - arm core_state arm - # Do not remap 0x0000-0x0020 to anything but the Flash - mwb 0xE01FC040 0x01 -} - -# LPC2378 has 512kB of FLASH, but upper 8kB are occupied by bootloader. -# flash bank <name> lpc2000 <base> <size> 0 0 <target#> <variant> <clock> [calc checksum] -set _FLASHNAME $_CHIPNAME.flash -flash bank $_FLASHNAME lpc2000 0x0 0x7E000 0 0 $_TARGETNAME lpc2000_v2 $_CCLK calc_checksum - diff --git a/tcl/target/lpc2x78.cfg b/tcl/target/lpc2x78.cfg new file mode 100644 index 0000000..f70de27 --- /dev/null +++ b/tcl/target/lpc2x78.cfg @@ -0,0 +1,32 @@ +# NXP LPC2378 ARM7TDMI-S with 512kB Flash and 32kB Local On-Chip SRAM (58kB total), clocked with 4MHz internal RC oscillator + +proc setup_lpc2x78 {chipname cputapid sramsize jtagrate flashsize cclk} { + #delays on reset lines + adapter_nsrst_delay 200 + jtag_ntrst_delay 200 + + reset_config trst_and_srst + + jtag newtap $chipname cpu -irlen 4 -ircapture 0x1 -irmask 0xf -expected-id $cputapid + + set _TARGETNAME $chipname.cpu + target create $_TARGETNAME arm7tdmi -chain-position $_TARGETNAME + + # LPC2378 has 32kB of SRAM on its main system bus (so-called Local On-Chip SRAM) + $_TARGETNAME configure -work-area-phys 0x40000000 -work-area-size $sramsize -work-area-backup 0 + + $_TARGETNAME configure -event reset-init { + # Force target into ARM state + arm core_state arm + #do not remap 0x0000-0x0020 to anything but the flash + mwb 0xE01FC040 0x01 + } + + # LPC2378 has 512kB of FLASH, but upper 8kB are occupied by bootloader. + # After reset the chip uses its internal 4MHz RC oscillator + # flash bank <name> lpc2000 <base> <size> 0 0 <target#> <variant> <clock> [calc checksum] + set _FLASHNAME $chipname.flash + flash bank $_FLASHNAME lpc2000 0x0 $flashsize 0 0 $_TARGETNAME lpc2000_v2 $cclk calc_checksum + + adapter_khz $jtagrate +} -- 1.7.0.4 _______________________________________________ Openocd-development mailing list Openocd-development@lists.berlios.de https://lists.berlios.de/mailman/listinfo/openocd-development