- Tue Jan 25, 2011 5:00 pm
#118417
I am trying a very simple thing.
In OPENOCD telnet cession I do
reset halt
mww 0 5 1
I get the message
memory write caused data abort (address: 0x00000000, size: 0x4, count: 0x1)
Command handler execution failed
in procedure 'mww'
My configuration is listed bellow
any clue of what is wrong with this picture would be greatly appreciated
Regards
Jean-Pierre Sainfeld
# openocd.cfg
# find more details about configuration at
# http://openfacts.berlios.de/index-en.ph ... figuration
source [ find ./interface-olimex.cfg]
source [ find ./chip-lpc3250.cfg ]
# Port on which to listen for incoming telnet connections
telnet_port 4444
#First port on which to listen for incoming GDB connections. The GDB port for the first target will be gdb_port, the second target will #listen on gdb_port + 1, and so on.
gdb_port 3333
set debug_level 3
source [ find ./target-lpc3250.cfg ]
# define the NAND flash devices
# The command is of the form
#
# nand device <name> <driver> <target> <[configparams...]>
#
# Declares a NAND device, which can be read and written to after it has been configured
# • name ... may be used to reference the NAND bank in most other NAND commands.
# A number is also available.
# • driver ... identifies the NAND controller driver associated with the NAND device being declared.
# • target ... names the target used when issuing commands to the NAND controller.
# • configparams ... controllers may support, or require, additional parameters.
nand device ournand lpc3250 0 13000
#
# This procedure is to meant to store a SE blob
# from a specified file to a specified block within
# a specified FLASH Bank
#
proc save_blob { bk_id fname blk } {
set offset [format %x [expr $blk * 16384]];
set blk_size 16384;
set size [file size $fname];
set nb_blk [ expr $size / $blk_size];
set round_up [ expr $size % $blk_size];
if { $round_up } {
incr nb_blk;
}
set erase_len [ format %x [expr $nb_blk * $blk_size]];
puts "$fname is $size bytes long";
puts "we will erase $nb_blk blocks - 0x$erase_len bytes";
puts "Storing $fname at block $blk \[0x$offset\] in NAND $bk_id";
puts "erasing $bk_id 0x$offset 0x$erase_len";
nand erase $bk_id 0x$offset 0x$erase_len;
puts "writing $fname at 0x$offset in NAND $bk_id";
nand write $bk_id $fname 0x$offset oob_raw;
puts "verifying $fname at 0x$offset from NAND $bk_id";
nand verify $bk_id $fname 0x$offset oob_raw;
puts "Done.";
}
proc nandbb { bk_id sb nb } {
set offset [format %x [expr $sb * 16384]];
set len [ format %x [expr $nb * 16384]];
puts "checking for bad blocks $bk_id 0x$offset 0x$len";
nand check_bad_blocks $bk_id 0x$offset 0x$len;
}
==============chip-lpc3250.cfg
# lpc3250 config
set _CHIPNAME lpc3250
set _ENDIAN little
set _CPUTAPID 0x17926f0f
set _SJCTAPID 0x1b900f0f
jtag newtap $_CHIPNAME sjc -irlen 4 -ircapture 0x1 -irmask 0xf -expected-id $_SJCTAPID
jtag newtap $_CHIPNAME cpu -irlen 4 -ircapture 0x1 -irmask 0xf -expected-id $_CPUTAPID
set _TARGETNAME $_CHIPNAME.cpu
target create $_TARGETNAME arm926ejs -endian little -chain-position $_TARGETNAME -work-area-phys 0x0B000000 -work-area-size 0xffffff -work-area-backup 0
proc power_restore {} { puts "Sensed power restore. No action." }
proc srst_deasserted {} { puts "Sensed nSRST deasserted. No action." }
======interface-olimex.cfg
#
# Olimex ARM-USB-TINY
#
# http://www.olimex.com/dev/arm-usb-tiny.html
#
interface ft2232
# ft2232_device_desc <description>
# The USB device description of the FTDI FT2232 device. If not specified, the FTDI default value is used. This setting is only valid if
# compiled with FTD2XX support.
ft2232_device_desc "Olimex OpenOCD JTAG TINY"
# ft2232_layout <name>
# The layout of the FT2232 GPIO signals used to control output-enables and reset signals
ft2232_layout olimex-jtag
# ft2232_vid_pid <vid> <pid>
# The vendor ID and product ID of the FTDI FT2232 device. If not specified, the FTDI default values are used
ft2232_vid_pid 0x15ba 0x0004
================target-lpc3250.cfg
#
# Olimex ARM-USB-TINY
#
# http://www.olimex.com/dev/arm-usb-tiny.html
#
interface ft2232
# ft2232_device_desc <description>
# The USB device description of the FTDI FT2232 device. If not specified, the FTDI default value is used. This setting is only valid if
# compiled with FTD2XX support.
ft2232_device_desc "Olimex OpenOCD JTAG TINY"
# ft2232_layout <name>
# The layout of the FT2232 GPIO signals used to control output-enables and reset signals
ft2232_layout olimex-jtag
# ft2232_vid_pid <vid> <pid>
# The vendor ID and product ID of the FTDI FT2232 device. If not specified, the FTDI default values are used
ft2232_vid_pid 0x15ba 0x0004
====
In OPENOCD telnet cession I do
reset halt
mww 0 5 1
I get the message
memory write caused data abort (address: 0x00000000, size: 0x4, count: 0x1)
Command handler execution failed
in procedure 'mww'
My configuration is listed bellow
any clue of what is wrong with this picture would be greatly appreciated
Regards
Jean-Pierre Sainfeld
# openocd.cfg
# find more details about configuration at
# http://openfacts.berlios.de/index-en.ph ... figuration
source [ find ./interface-olimex.cfg]
source [ find ./chip-lpc3250.cfg ]
# Port on which to listen for incoming telnet connections
telnet_port 4444
#First port on which to listen for incoming GDB connections. The GDB port for the first target will be gdb_port, the second target will #listen on gdb_port + 1, and so on.
gdb_port 3333
set debug_level 3
source [ find ./target-lpc3250.cfg ]
# define the NAND flash devices
# The command is of the form
#
# nand device <name> <driver> <target> <[configparams...]>
#
# Declares a NAND device, which can be read and written to after it has been configured
# • name ... may be used to reference the NAND bank in most other NAND commands.
# A number is also available.
# • driver ... identifies the NAND controller driver associated with the NAND device being declared.
# • target ... names the target used when issuing commands to the NAND controller.
# • configparams ... controllers may support, or require, additional parameters.
nand device ournand lpc3250 0 13000
#
# This procedure is to meant to store a SE blob
# from a specified file to a specified block within
# a specified FLASH Bank
#
proc save_blob { bk_id fname blk } {
set offset [format %x [expr $blk * 16384]];
set blk_size 16384;
set size [file size $fname];
set nb_blk [ expr $size / $blk_size];
set round_up [ expr $size % $blk_size];
if { $round_up } {
incr nb_blk;
}
set erase_len [ format %x [expr $nb_blk * $blk_size]];
puts "$fname is $size bytes long";
puts "we will erase $nb_blk blocks - 0x$erase_len bytes";
puts "Storing $fname at block $blk \[0x$offset\] in NAND $bk_id";
puts "erasing $bk_id 0x$offset 0x$erase_len";
nand erase $bk_id 0x$offset 0x$erase_len;
puts "writing $fname at 0x$offset in NAND $bk_id";
nand write $bk_id $fname 0x$offset oob_raw;
puts "verifying $fname at 0x$offset from NAND $bk_id";
nand verify $bk_id $fname 0x$offset oob_raw;
puts "Done.";
}
proc nandbb { bk_id sb nb } {
set offset [format %x [expr $sb * 16384]];
set len [ format %x [expr $nb * 16384]];
puts "checking for bad blocks $bk_id 0x$offset 0x$len";
nand check_bad_blocks $bk_id 0x$offset 0x$len;
}
==============chip-lpc3250.cfg
# lpc3250 config
set _CHIPNAME lpc3250
set _ENDIAN little
set _CPUTAPID 0x17926f0f
set _SJCTAPID 0x1b900f0f
jtag newtap $_CHIPNAME sjc -irlen 4 -ircapture 0x1 -irmask 0xf -expected-id $_SJCTAPID
jtag newtap $_CHIPNAME cpu -irlen 4 -ircapture 0x1 -irmask 0xf -expected-id $_CPUTAPID
set _TARGETNAME $_CHIPNAME.cpu
target create $_TARGETNAME arm926ejs -endian little -chain-position $_TARGETNAME -work-area-phys 0x0B000000 -work-area-size 0xffffff -work-area-backup 0
proc power_restore {} { puts "Sensed power restore. No action." }
proc srst_deasserted {} { puts "Sensed nSRST deasserted. No action." }
======interface-olimex.cfg
#
# Olimex ARM-USB-TINY
#
# http://www.olimex.com/dev/arm-usb-tiny.html
#
interface ft2232
# ft2232_device_desc <description>
# The USB device description of the FTDI FT2232 device. If not specified, the FTDI default value is used. This setting is only valid if
# compiled with FTD2XX support.
ft2232_device_desc "Olimex OpenOCD JTAG TINY"
# ft2232_layout <name>
# The layout of the FT2232 GPIO signals used to control output-enables and reset signals
ft2232_layout olimex-jtag
# ft2232_vid_pid <vid> <pid>
# The vendor ID and product ID of the FTDI FT2232 device. If not specified, the FTDI default values are used
ft2232_vid_pid 0x15ba 0x0004
================target-lpc3250.cfg
#
# Olimex ARM-USB-TINY
#
# http://www.olimex.com/dev/arm-usb-tiny.html
#
interface ft2232
# ft2232_device_desc <description>
# The USB device description of the FTDI FT2232 device. If not specified, the FTDI default value is used. This setting is only valid if
# compiled with FTD2XX support.
ft2232_device_desc "Olimex OpenOCD JTAG TINY"
# ft2232_layout <name>
# The layout of the FT2232 GPIO signals used to control output-enables and reset signals
ft2232_layout olimex-jtag
# ft2232_vid_pid <vid> <pid>
# The vendor ID and product ID of the FTDI FT2232 device. If not specified, the FTDI default values are used
ft2232_vid_pid 0x15ba 0x0004
====