Dear Matthias,
I've taken a closer look at the from you recommanded structure.
The AHBL, saying the TAP-Controller, does support special routines of reading
and writing consecutive words.
In the structure below there are only routines provided for a single word. Are
you saying I shoul use the existing code, or write my own abstraction layer for
my special case?
struct dap_ops {
/** connect operation for SWD */
int (*connect)(struct adiv5_dap *dap);
/** DP register read. */
int (*queue_dp_read)(struct adiv5_dap *dap, unsigned reg,
uint32_t *data);
/** DP register write. */
int (*queue_dp_write)(struct adiv5_dap *dap, unsigned reg,
uint32_t data);
BR,
Xense
> Gesendet: Freitag, 25. Januar 2019 um 12:14 Uhr
> Von: "Xen Mann" <[email protected]>
> An: "Matthias Welwarsky" <[email protected]>
> Cc: [email protected]
> Betreff: Re: [OpenOCD-devel] adding new interface(TAP): need to shift 36 bit
> to read 8 bit, how to handle Buffer?
>
> Dear Matthias,
> you probably hit the nail on the head!
>
> Yes I do not want to add a new target, so this is the wrong approach, i think.
>
> So my entry point would be the following structure and my exit point remains
> in the functions from jtag/jtag.h?
>
> struct dap_ops {
> /** connect operation for SWD */
> int (*connect)(struct adiv5_dap *dap);
> /** DP register read. */
> int (*queue_dp_read)(struct adiv5_dap *dap, unsigned reg,
> uint32_t *data);
> /** DP register write. */
> int (*queue_dp_write)(struct adiv5_dap *dap, unsigned reg,
> uint32_t data);
> ...
> }
>
> I have to provide a read(), write(), and the AHBL needs to have a init().
> If I've fit this in in the structure, how can I tell a RISCV or a arm
> tarteg_type to actually make use of those functions AHBL provides?
> Is this done in config file, or do I need some more glue and stings which tie
> which tie my addon into the system?
>
> #AHBL-Spec
> I'll have a look for the spec. Righ now it's just internal, but there should
> be a draft providing more infos, arround Monday.
> Perhaps some words to describe the unit some more:
> - It's the interlink between TAP/JTAG and AHB.
> - It is only designed for this purpose
> - It does not support any paging
> - It is only ment for a single processor with one core
> - It can't do memory paging or any advanced stuff the coresight can do.
> - For now it's used to counicate withe one Arm9 or one RISCV
> -- for one controller with limited 32bit addresspace where memory and
> registers are mapped in, this is fully ok
> - You can activate the AHBL with the IR-Register, every following
> communication is done via the DR-Regirster
> - There are just 6 commands for excanging data and 3 additional for read and
> writes with less overhead
> - The benefit is a simpel interface and a really small footprint on the
> silicon
>
>
> > Gesendet: Donnerstag, 24. Januar 2019 um 08:52 Uhr
> > Von: "Matthias Welwarsky" <[email protected]>
> > An: [email protected]
> > Cc: "Xen Mann" <[email protected]>, "Matthias Welwarsky"
> > <[email protected]>
> > Betreff: Re: [OpenOCD-devel] adding new interface(TAP): need to shift 36
> > bit to read 8 bit, how to handle Buffer?
> >
> > On Mittwoch, 23. Januar 2019 13:18:31 CET Xen Mann wrote:
> > > >Von: "Matthias Welwarsky" <[email protected]>
> > > >An: [email protected]
> > > >Cc: "Xen Mann" <[email protected]>
> > > >Betreff: Re: [OpenOCD-devel] adding new interface(TAP): need to shift 36
> > > >bit to read 8 bit, how to handle Buffer?>
> > > >On Montag, 21. Januar 2019 16:36:10 CET Xen Mann wrote:
> > > >> I' m implementing a new TAP-Interface.
> > > >> The dr-regiter of the TAP is 36bit wide.
> > > >> [35:32] status/opcode etc
> > > >> [31:0] data (32/16/8 bit)
> > > >>
> > > >> The read/write wrapper for the target has a buffer which has only the
> > > >> length for the exact number of bytes. target_type.read_memory() / ...
> > > >
> > > >Hm. If you're implementing a new TAP interface, why do you bother with
> > > >target_type? Just curious ...
> > > >
> > > >BR,
> > > >Matthias
> > >
> > > Hey Matthias,
> > >
> > > to add a new interface for OpenOCD I used the arm7_9 files as a sample.
> > > This and all other implementations of interfaces are based on the
> > > structure
> > > "struct target_type". So to make this interface usable at least a minimal
> > > subset of those have to be implemented.
> >
> > Actually, take a look at e.g. adi_v5_jtag.c to see how a tap interface is
> > supposed to work.
> >
> > "struct target_type" is an interface for objects that can be debugged, i.e.
> > a
> > gdb can be attached to it. Your TAP interface is a transport mechanism
> > only,
> > so that's the wrong abstraction.
> >
> > What you need to implement is the "glue" that allows the existing target
> > code
> > for arm9 or RISCV to talk to the hardware through the AHBLite.
> >
> > BTW is the documentation for AHBLite public? I would like to have a look.
> >
> > BR,
> > Matthias
> >
> > >
> > > To archive JTAG-Transactions I need functions provided in <jtag/jtag.h>.
> > >
> > > So those both are my entry and exit points into openOCD when implementing
> > > a
> > > new TAP-Interace.
> > >
> > > This is my innocent point of view, which took me some time to figure
> > > out.^^
> > > But if there is an other possibilety to design a new interface, please let
> > > me know =). As I've said, I'm new to open source projects and such huge
> > > codebases. Does this answer your question?
> > >
> > > The idea was that ARM uses in it's arm7/9 implementatiion a 32 bit
> > > dr-register and sends it output dirctly to the provided buffer from the
> > > upper level functions if I'm correct. This does not work for me, because I
> > > clock out 36 bit. So thats why I ask if there's a solution out there
> > > without allocating additional memory. Something like an intermediate step
> > > done on the fly.
> > >
> > > Greatings Xense =)
> > >
> > >
> > > _______________________________________________
> > > OpenOCD-devel mailing list
> > > [email protected]
> > > https://lists.sourceforge.net/lists/listinfo/openocd-devel
> >
> >
> >
> >
> >
>
>
> _______________________________________________
> OpenOCD-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/openocd-devel
>
_______________________________________________
OpenOCD-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openocd-devel