This is the mail archive of the crossgcc@cygnus.com mailing list for the crossgcc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: Macraigor wiggler(BDM) on ppc860 under Linux


Hi,

> I took a closer look at the code and I believe that
> ppc-bdm.c file supports the wiggler in two different
> ways (I think, as its hard to tell).  

That's what I found, too.

> You can run
> ppc860 on WIN32 with Macraigor windows dll and
> parallel wiggler.  The command is 
>  
> 	target ocd wiggler /dev/lpt0
> 
> This was what I had originally thought gdb had support
> for.

Wigglers are those parallel port BDM adaptors manufactured by Macraigor.

Gdb-4.17 for cygwin32 makes use of a Win32-dll, which is distributed by
Macraigor, and uses a well defined interface from the application, eg.
debuggers, flash tools, etc.

This .dll is only available for Win32, hence vanilla-gdb-4.17 only supports
wigglers on a Win32 host.

Ocd, however is a whole different story: OCD (== OnChipDebugging) defines
only how the processor is accessed. For ocd, you may also
use another line of Macraigor gadgets, namely a RS232-BDM converter box.
This box can be connected via any serial channel to your debug host, and
the host may be any host with a serial port (or maybe a LAN connection + a
terminal server box). OTOH, the serial interface is quite a lot more
expensive..

[...]

> All of the code for this second target seems to be
> talking to a serial device. Does anyone know if this
> is accurate?  

Yes.
In fact, there are 2 different serial protocol standards to talk to such
RS232-BDM-converters: SDI (serial debug interface) by Motorola (within the
MMDS1632 packet), and those used by Macraigor. I have started to support
SDI within gdb, but had been sidetracked.

> Is there a different target line
> that supports the parallel wiggler?

No. 

The problem is the device driver. As the wiggler is a pretty cheap box
(both pricely and technically), most of the BDM stuff must be done in SW.

For a serial interface, the operating system takes care of the different
serial chips via the serial device driver, and you can just use it,
implement your serial protocol, and you are flying.

BDM drivers are not that common, so the operating system manufacturers dont
care for that. Macraigor made a "device driver" available in form of the
Win32-dll. That is reasonable, as Macraigor has the know-how for the BDM
side, and many HW-manufacturers supply their products with a Win32 (sigh)
device driver.

To add another dimension of the problem: There are different brands of BDM
interfaces: 68k-BDM, PPC-BDM, ColdFire-BDM, HC12-BDM, MCore-BDM, JTAG (kind
of BDM), etc. All require different device drivers. 

And another problem (from my experience with 68k-BDM): There are different
types of parallelport-BDM interfaces available, which use different timing,
PP-pinning, etc. 

Wigglers by Macraigor for PPC under Win32 are somehow supported within
vanilla gdb. 

Having said the above, I am still desperately searching for this .dll.
Anybody knows? Cygnus people? 

At least, all this has been done by Cygnus in cooperation with Macraigor &
under contract with Motorola, as you can read between the lines in:

http://www.cygnus.com/news/foundryships-980331.html
http://www.cygnus.com/product/foundry/foundry_faqs.html


Cheers
gm
-- 
Gunter Magin                                       magin[AT]skil.camelot.de
________________________________________________
To get help for the crossgcc list, send mail to
crossgcc-request@cygnus.com with the text 'help'
(without the quotes) in the body of the message.