On Thu, Apr 16, 2009 at 5:04 AM, Xiaochen Zhou <[email protected]> wrote:
> Hi, all
>
> This issue seemed to be relative to cache. When I disable the I cache,
> gdb runs very ok, the command 's' 'n' and 'c' do their work exactly.
>
> The breakpoint instruction "0xe1200070" write to the memory when I set
> the breakpoint. When the breakpoint is triggered, breakpoint instruction
> "0xe1200070" need to replace by the original instruction by writing
> memory. The bug maybe exist in writing memory without invalidate the I
> cache.


So if I understand correctly, this problem has nothing to do with
arm946es specifically,
but is rather related to OpenOCD not invalidating the instruction cache upon
writing a breakpoint instruction?

That seems like a much more widespread problem.


> Openocd did not support arm946es, so I set the target to arm966e at my
> config file. The arm966e did not contain cache, so maybe this is the
> problem.
>
> Does openocd have plan to support arm946es in future? Thanks!

Is this a separate problem? You probably need to write a separate posting
if you want to get answers to this...

>
> Xiaochen Zhou
>
> Xiaochen Zhou 写道:
>> Hi, all
>>
>> I'm using openocd v0.1.0 + wiggler to debug Marvell 88E6218(ARM946ES).
>> Openocd is running in Windows 2000 workstation and the remote gdb v6.8
>> is running in Fedora core 4.
>>
>> I set a breakpoint, and when the breakpoint is triggered, the cpu halt
>> successfully. When I press 'c', the same breakpoint is triggered again
>> except I delete the breakpoint. When I press 's' and 'n', the status is
>> same.
>>
>> The openocd + wiggler is OK for debugging ARM922T, so the hardware is OK.
>>
>> Below is the gdb console and cfg file.
>>
>> Thanks for advance,
>>
>> Xiaochen Zhou
>>
>> ------------------------------------------------------
>> [zhouxiaoc...@fedoradell sdk]$ arm-elf-gdb demo
>> GNU gdb 6.8
>> Copyright (C) 2008 Free Software Foundation, Inc.
>> License GPLv3+: GNU GPL version 3 or later
>> <http://gnu.org/licenses/gpl.html>
>> This is free software: you are free to change and redistribute it.
>> There is NO WARRANTY, to the extent permitted by law. Type "show copying"
>> and "show warranty" for details.
>> This GDB was configured as "--host=i686-pc-linux-gnu --target=arm-elf"...
>> (gdb) target remote 192.200.200.196:2001
>> Remote debugging using 192.200.200.196:2001
>> hal_idle_thread_action (count=1686108302)
>> at
>> /home/zhouxiaochen/br104h/d009/ecos-2.0/packages/hal/arm/arch/v2_0/src/hal_misc.c:225
>> 225 }
>> (gdb) break os_show_threads
>> Breakpoint 1 at 0x1bc14: file os_cmd.c, line 58.
>> (gdb) c
>> Continuing.
>>
>> Breakpoint 1, os_show_threads (argc=0, argv=0x0) at os_cmd.c:58
>> 58 cyg_handle_t thread = 0;
>> (gdb) c
>> Continuing.
>>
>> Breakpoint 1, os_show_threads (argc=0, argv=0x0) at os_cmd.c:58
>> 58 cyg_handle_t thread = 0;
>> (gdb) c
>> Continuing.
>>
>> Breakpoint 1, os_show_threads (argc=0, argv=0x0) at os_cmd.c:58
>> 58 cyg_handle_t thread = 0;
>> (gdb) c
>> Continuing.
>>
>> Breakpoint 1, os_show_threads (argc=0, argv=0x0) at os_cmd.c:58
>> 58 cyg_handle_t thread = 0;
>> (gdb) c
>> Continuing.
>>
>> Breakpoint 1, os_show_threads (argc=0, argv=0x0) at os_cmd.c:58
>> 58 cyg_handle_t thread = 0;
>> (gdb)
>>
>> ------------------------------------------------------
>> # script for Insilica IS-5114
>> # AKA: Atmel AT76C114 - an ARM946 chip
>> # ATMEL sold his product line to Insilica...
>>
>> if { [info exists CHIPNAME] } {
>> set _CHIPNAME $CHIPNAME
>> } else {
>> set _CHIPNAME br104h
>> }
>>
>> if { [info exists ENDIAN] } {
>> set _ENDIAN $ENDIAN
>> } else {
>> # this defaults to a little endian
>> set _ENDIAN little
>> }
>>
>> if { [info exists CPUTAPID ] } {
>> set _CPUTAPID $CPUTAPID
>> } else {
>> # force an error till we get a good number
>> set _CPUTAPID 0x159463d3
>> }
>>
>> # jtag speed. We need to stick to 16kHz until we've finished reset.
>> #jtag_rclk 16
>>
>> reset_config trst_only
>>
>> jtag newtap $_CHIPNAME cpu -irlen 4 -ircapture 0x01 -irmask 0xf
>>
>> #arm946e-s and
>> set _TARGETNAME [format "%s.cpu" $_CHIPNAME]
>> target create $_TARGETNAME arm966e -endian $_ENDIAN -chain-position
>> $_TARGETNAME -variant arm966e
>>
>> $_TARGETNAME configure -work-area-phys 0xfff80000 -work-area-virt
>> 0xfff80000 -work-area-size 0x80000 -work-area-backup 1
>>
>>
>> _______________________________________________
>> Openocd-development mailing list
>> [email protected]
>> https://lists.berlios.de/mailman/listinfo/openocd-development
>>
>>
>
> _______________________________________________
> Openocd-development mailing list
> [email protected]
> https://lists.berlios.de/mailman/listinfo/openocd-development
>



-- 
Øyvind Harboe
PayBack incident management system
Reduce costs and increase quality, free Starter Edition
http://www.payback.no/index_en.html
_______________________________________________
Openocd-development mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/openocd-development

Reply via email to