David Anders wrote

> the ICEPick works as a JTAG Route Controler(JRC), 
[snip]

 > due to the number of multi-core arm devices becoming available, a 
vast majority of the vendors will be providing JRC's as their primary 
means of jtag.

This is what I think needs to be done to make a beagle board work. (I 
don't have one - so I can't make it happen).

(1) a new "target event" to occur at a specific spot in the reset 
sequence, and/or tap configuration sequence or some where.
Inserting it is easy - It is the "where to insert it" that I don't know.

ie: "The where" -is the point in time when TAP must be reconfigured.
      Perhaps this only occurs at HARD reset?
      Or only at INIT - because it survives hard reset?
      Or anytime it needs to be redone?
      I do not know.

If you must add a new one, this is how:

    (a) src/target/target.h - "enum target_event"
         Add the new event name enum.

    (b) src/target/target.c - "const Jim_Nvp nvp_target_events[]"
       Add new entries.

    (c) Where needed, call the function:

             target_handle_event(  target,  <EVENT_ENUMERATION> )

(2)  In your openocd.cfg file - define the "event function"

       Required, after you create the target, add a line like this:

                [new_target_name]  configure -event  NEWEVENTNAME    TCLBODY

       Where NEWEVENTNAME, is what you added in the NVP table (1)(b).

       The TCLBODY can done one of many ways, for example:

       Option #1
             [new_target_name] configure -event   FOOBAR   "source 
somefile.foo"
          Would read & execute commands from a file.

       Option #2
              proc   my_funky_proc {  } {
                         .... various commands here ...
              }
              [new_target_name] configure -event FOOBAR  my_funky_proc

          Creates a function - and calls that function instead.

Examples are here:
       
https://lists.berlios.de/pipermail/openocd-development/2008-October/003312.html
      I create a "gdb-attach" event script, and change the "reset event".

    Other examples can be found in: "src/target/target/*.cfg

(3) The only question that I can think of is if we need a few more 
"helper" commands put in place.

-Duane.


   


_______________________________________________
Openocd-development mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/openocd-development

Reply via email to