Hi Nico, On Wed, 2009-04-08 at 13:12 +0200, Nico Coesel wrote: > I did some debugging and found that the Pracc flag needs to be polled > for the AU1100 device to work properly. I've attached a patch against > mips32_pracc.c. I assume the (minor) changes do not affect other MIPS > targets.
Hmm, but your patch does more than poll. It loops clearing PRACC each time through the loop till it reads clear. This will miss processor accesses after the access your trying to process. When mips32_pracc_exec_read/write() is called, the PRACC bit is supposed to be already set. PRACC set means the CPU is waiting for a read or write from the the EJTAG debug memory region. If the AU1100 needs polling then you should do it in wait_for_pracc_rw(), waiting from PRACC to become set. Once PRACC is set then the original code in mips32_pracc_exec_read/write() should work fine. PRACC should always be clear on return (it just releases the CPU to perform another instruction). Setting PRACC is a no-op, only clearing it has an effect and only when it was set by an active CPU access to the EJTAG debug region. Can you try polling in wait_for_pracc_rw() with the original code in mips32_pracc_exec_read/write()? The code in your patch would not work on other MIPS targets and I'm surprised it works on the AU1100. Cheers, John McCarthy. > > Nico Coesel > > > -----Oorspronkelijk bericht----- > Van: Nico Coesel > Verzonden: dinsdag 7 april 2009 17:00 > Aan: '[email protected]' > Onderwerp: AU1100 (MIPS) problems > > Hello all, > I'm trying to get Openocd + a wiggler interface working with an AU1100 > MIPS based SOC. It seems the chip is recognized correctly (the JTAG > interface is working) but I can't access the memory. When I try to read > or write data the debug shows 'No memory access in progress!'. Anyone > has some suggestions on where to start looking? I've included the output > from OpenOCD below: > > > Debug: 7 0 command.c:91 script_command(): script_command - reset_config > Debug: 8 0 command.c:108 script_command(): script_command - > reset_config, argv[0]=ocd_reset_config > Debug: 9 0 command.c:108 script_command(): script_command - > reset_config, argv[1]=trst_and_srst > Debug: 11 0 command.c:91 script_command(): script_command - interface > Debug: 12 0 command.c:108 script_command(): script_command - interface, > argv[0]=ocd_interface > Debug: 13 0 command.c:108 script_command(): script_command - interface, > argv[1]=parport > Debug: 15 0 command.c:91 script_command(): script_command - parport_port > Debug: 16 0 command.c:108 script_command(): script_command - > parport_port, argv[0]=ocd_parport_port > Debug: 17 0 command.c:108 script_command(): script_command - > parport_port, argv[1]=0x378 > Debug: 19 0 command.c:91 script_command(): script_command - > parport_cable > Debug: 20 0 command.c:108 script_command(): script_command - > parport_cable, argv[0]=ocd_parport_cable > Debug: 21 0 command.c:108 script_command(): script_command - > parport_cable, argv[1]=wiggler2 > Debug: 23 0 command.c:91 script_command(): script_command - > jtag_nsrst_delay > Debug: 24 0 command.c:108 script_command(): script_command - > jtag_nsrst_delay, argv[0]=ocd_jtag_nsrst_delay > Debug: 25 0 command.c:108 script_command(): script_command - > jtag_nsrst_delay, argv[1]=100 > Debug: 27 0 command.c:91 script_command(): script_command - > jtag_ntrst_delay > Debug: 28 0 command.c:108 script_command(): script_command - > jtag_ntrst_delay, argv[0]=ocd_jtag_ntrst_delay > Debug: 29 0 command.c:108 script_command(): script_command - > jtag_ntrst_delay, argv[1]=100 > Debug: 31 0 command.c:91 script_command(): script_command - jtag_speed > Debug: 32 0 command.c:108 script_command(): script_command - jtag_speed, > argv[0]=ocd_jtag_speed > Debug: 33 0 command.c:108 script_command(): script_command - jtag_speed, > argv[1]=0 > Debug: 34 0 jtag.c:2620 handle_jtag_speed_command(): handle jtag speed > User : 35 0 command.c:383 command_print(): jtag_speed: 0 > Debug: 36 0 jtag.c:1892 jim_newtap_cmd(): Creating New Tap, Chip: > _CHIPNAME, Tap: cpu, Dotted: _CHIPNAME.cpu, 6 params > Debug: 37 0 jtag.c:1911 jim_newtap_cmd(): Processing option: -irlen > Debug: 38 0 jtag.c:1911 jim_newtap_cmd(): Processing option: -ircapture > Debug: 39 0 jtag.c:1911 jim_newtap_cmd(): Processing option: -irmask > Debug: 40 0 jtag.c:2024 jim_newtap_cmd(): Created Tap: _CHIPNAME.cpu @ > abs position 0, irlen 5, capture: 0x1 mask: 0x1 > Debug: 41 0 target.c:3911 jim_target(): Target command params: > Debug: 42 0 target.c:3912 jim_target(): target create _CHIPNAME.cpu > mips_m4k -endian big -chain-position _CHIPNAME.cpu -variant ejtag_srst > Debug: 44 0 command.c:91 script_command(): script_command - bank > Debug: 45 0 command.c:108 script_command(): script_command - bank, > argv[0]=ocd_flash_bank > Debug: 46 0 command.c:108 script_command(): script_command - bank, > argv[1]=cfi > Debug: 47 0 command.c:108 script_command(): script_command - bank, > argv[2]=0xbf000000 > Debug: 48 0 command.c:108 script_command(): script_command - bank, > argv[3]=0x1000000 > Debug: 49 0 command.c:108 script_command(): script_command - bank, > argv[4]=2 > Debug: 50 0 command.c:108 script_command(): script_command - bank, > argv[5]=4 > Debug: 51 0 command.c:108 script_command(): script_command - bank, > argv[6]=0 User : 52 0 command.c:494 command_run_line(): > Debug: 54 0 command.c:91 script_command(): script_command - init > Debug: 55 0 command.c:108 script_command(): script_command - init, > argv[0]=ocd_init > Debug: 56 0 openocd.c:144 handle_init_command(): target init complete > Debug: 57 0 parport.c:402 parport_init(): requesting privileges for > parallel port 0x378... > Debug: 58 0 parport.c:412 parport_init(): ...privileges granted > Debug: 59 0 parport.c:237 parport_reset(): trst: 0, srst: 0 > Debug: 60 0 openocd.c:151 handle_init_command(): jtag interface init > complete > Debug: 61 0 jtag.c:2240 jtag_init_inner(): Init JTAG chain > Debug: 62 0 jtag.c:434 jtag_call_event_callbacks(): jtag event: JTAG > controller reset (RESET or TRST) > Debug: 63 0 jtag.c:1487 jtag_reset_callback(): - > Debug: 64 0 jtag.c:434 jtag_call_event_callbacks(): jtag event: JTAG > controller reset (RESET or TRST) > Debug: 65 0 jtag.c:1487 jtag_reset_callback(): -Info : 66 15 jtag.c:1607 > jtag_examine_chain(): JTAG tap: CHIPNAME.cpu tap/devic e found: > 0x4020228f (Manufacturer: 0x147, Part: 0x0202, Version: 0x4) > Debug: 67 15 jtag.c:434 jtag_call_event_callbacks(): jtag event: JTAG > controller reset (RESET or TRST) > Debug: 68 15 jtag.c:1487 jtag_reset_callback(): - > Debug: 69 15 openocd.c:157 handle_init_command(): jtag init complete > Debug: 70 15 mips_ejtag.c:269 mips_ejtag_init(): impcode: 0x20404000 > Debug: 71 15 mips_ejtag.c:280 mips_ejtag_init(): EJTAG: Version 2.5 > Detected > Debug: 72 15 mips_ejtag.c:300 mips_ejtag_init(): EJTAG: features: R4k > ASID_8 noDMA MIPS32 > Debug: 73 15 openocd.c:160 handle_init_command(): jtag examine complete > Debug: 74 15 openocd.c:166 handle_init_command(): flash init complete > Debug: 75 15 openocd.c:170 handle_init_command(): mflash init complete > Debug: 76 15 openocd.c:174 handle_init_command(): NAND init complete > Debug: 77 15 openocd.c:178 handle_init_command(): pld init complete Warn > : 78 15 gdb_server.c:2201 gdb_init(): no gdb port specified, using > default port 3333 > Debug: 79 15 gdb_server.c:2225 gdb_init(): gdb service for target > mips_m4k at port 3333 Warn : 80 15 tcl_server.c:178 tcl_init(): no tcl > port specified, using default port 6666 User : 81 15 command.c:494 > command_run_line(): > Debug: 82 109 mips_m4k.c:182 mips_m4k_poll(): Reset Detected Info : 83 > 2921 server.c:89 add_connection(): accepting 'telnet' connection from 0 > Debug: 85 8078 command.c:91 script_command(): script_command - halt > Debug: 86 8078 command.c:108 script_command(): script_command - halt, > argv[0]=ocd_halt > Debug: 87 8078 target.c:1744 handle_halt_command(): - > Debug: 88 8078 mips_m4k.c:226 mips_m4k_halt(): target->state: running > Debug: 89 8078 mips_ejtag.c:217 mips_ejtag_enter_debug(): ejtag_ctrl: > 0x4004c008 > > Debug: 90 8078 mips32_pracc.c:54 wait_for_pracc_rw(): DEBUGMODULE: No > memory access in progress! > > Debug: 91 8078 mips_m4k.c:729 mips_m4k_read_memory(): address: > 0xff300000, size: 0x00000004, count: 0x00000001 > Debug: 92 8078 mips32_pracc.c:54 wait_for_pracc_rw(): DEBUGMODULE: No > memory access in progress! > > Debug: 93 8078 target.c:1190 target_read_u32(): address: 0xff300000 > failed > Debug: 94 8078 mips32_pracc.c:54 wait_for_pracc_rw(): DEBUGMODULE: No > memory access in progress! > > Debug: 95 8078 mips_m4k.c:154 mips_m4k_debug_entry(): entered debug > state at PC0x0, target->state: halted > Debug: 96 8078 target.c:696 target_call_event_callbacks(): target event > 4 (early-halted) > Debug: 97 8078 target.c:3054 target_handle_event(): event: 4 > early-halted - no action > Debug: 98 8078 target.c:696 target_call_event_callbacks(): target event > 5 (halted) > Debug: 99 8078 target.c:3054 target_handle_event(): event: 5 halted - no > action User : 100 8078 target.c:959 target_arch_state(): target state: > halted User : 101 8078 mips32.c:273 mips32_arch_state(): target halted > due to debug-request, pc: 0x00000000 User : 102 8078 command.c:494 > command_run_line(): > Debug: 104 11468 command.c:91 script_command(): script_command - mdw > Debug: 105 11468 command.c:108 script_command(): script_command - mdw, > argv[0]=ocd_mdw > Debug: 106 11468 command.c:108 script_command(): script_command - mdw, > argv[1]=0xb1900000 > Debug: 107 11468 command.c:108 script_command(): script_command - mdw, > argv[2]=2 > > Debug: 108 11468 mips_m4k.c:729 mips_m4k_read_memory(): address: > 0xb1900000, size: 0x00000004, count: 0x00000002 > Debug: 109 11468 mips32_pracc.c:54 wait_for_pracc_rw(): DEBUGMODULE: No > memory access in progress! > > Debug: 110 11468 command.c:427 run_command(): Command failed with error > code -107 User : 111 11468 command.c:626 openocd_jim_vfprintf(): Runtime > error, file "command.c", line 456: > User : 112 11468 command.c:626 openocd_jim_vfprintf(): > > > Met vriendelijke groet / Best regards, > DEA bv > > Nico Coesel > _______________________________________________ > 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
