Flashing Atmel AT76C114 and Lattice ISPMACH4064V

We are searching for an universal solution programming the two devices mentioned in the subject.

For the PC-interface we plan to use the Amontec JTAGkey USB interface.

But I’m not sure, if both device can be programmed using this interface.

The AT76C114 has a ARM946E-S core and an associated Flash (ST NAND512W3A2CZA6E) with 512Mbit in capacity.

We need to write the configuration to the CPLD and Bootloader as well as Firmware to the Atmel’s Flash memory.

Can anybody please give me some feedback, if this woul work and wchich appropriate software to use?

Can you configure the CPLD using the AT76C114? I did this once with a DSP and FPGA. The DSP had its own external flash memory which contained its code and the configuration data for the FPGA. The flash memory was programmed by the development system. The main reason I did it that way was to save the cost of an FPGA configuration device.

The first thing the DSP did when it was booted was to run the code to configure the FPGA. It then loaded its application software and ran it.

Leon

CPU and CPLD are not in a boundary scan line. Both have to be programmed via JTAG, but each device has only testpoints connected to its JTAG interface.

Your approach is a good idea in fact. We also had enough space in flash, but unfortunately the system’s design is already finished.

Which interface have you been using for the connection between CPLD and DSP? Would be interesting to know, because probably we can plan this for the next redesign.

Thomas

I just used three bits of an output port, IIRC. Altera FPGAs have a special configuration mode for microcontrollers, as do Xilinx devices, they don’t use JTAG for this. I had to bit-bang the interface, using the Altera algorithm; it was quite easy The hardest part was getting the compiler and linker working properly and putting the various memory blocks in the right place. I’m not sure if CPLDs can be configured in a similar manner as their memory is non-volatile, unlike most FPGAs, and it isn’t usually needed.

Leon

OK, it is maybe the the best feedback you will receive since we are the creator of the JTAGkey.

The big advantage of the Amontec JTAGkey is to be an undedicated universal USB JTAG solution. Not only for ARM debug topics, but all JTAG topics

Actually, you may use your JTAGkey

  • to debug and to flash a large part of ARM7 / AMR9 processors via the open source OpenOCD JTAG server software.

  • to debug and to flash a large part of ARM7 / AMR9 processors + Cortex and XSCALE via the excellent Rowley Crossworks software.

  • to ERASE / PROGRAM / VERIFY Xilinx FPGA CPLD via the Amontec SVF Playe

  • to ERASE / PROGRAM / VERIFY Atlera FPGA CPLD via the Amontec SVF Player

  • same for Cypress / Lattice FPGA / CPLD

  • to ERASE / PROGRAM / VERIFY ATMEL AVR processors via the Amontec SVF Player

  • to look under your BGA via a Boundary Scan software (we will plublish very soon, please wait)

Amontec amtsvfplayer + JTAGkey performances :

  • 7.9 Mbits Xilinx Virtex download time at 2.8 secondes

  • 16.9 Mbits Altera EPC2S60 download time at 4.4 secondes

  • Xilinx Coolrunner XCR30128XL ERASE / PROG / VERIFY at 0.66 secondes

Some great features of the amt svf player :

  • auto-detection of the JTAG chain

  • auto-detection of each device IDCODE (ready for BSDL insertion)

  • auto-detection of the maximum stable JTAG frequency of your specific JTAG chain

  • RUNTEST GUARD mechanism (new from Amontec)

  • RUNTEST factor insertion

  • FREQUENCY factor insertion

  • FREQUENCY optimizer (new from Amontec)

  • HDR HIR TDR TIR support

  • Infinite scans (new from Amontec)

amtsvfplayer was designed to test our low level JTAG Hardware Abstraction Layer ( the Amontec AMTXHAL )

The AMTXHAL interface comes as free and public. You could create your own specific JTAG sofware very quickly. AMTXHAL is the good choice for merging a parallel port Wiggler emulator to a USB JTAG solution.

For resuming :

Yes, you may Flash your external AT76C114 via OpenOCD + JTAGkey

Yes, you may Program your Lattice CPLD via the Amontec SVF player.

amtsvfplayer and AMTXHAL will come for Linux and Cygwin before the end of the month.

  • Laurent

http://www.amontec.com

typo !

I wrote :

"OK, it is maybe the the best feedback you will receive since we are the creator of the JTAGkey. "

thinking :

"OK, it is maybe NOT the best feedback you will receive since we are the creator of the JTAGkey. "

Sorry,

  • Laurent

http://www.amontec.com

@leon_heller

Well, this may be a good choice for the next redesign, currently I’d have to program both devices alone.

@AMONTEC

I joined this forum to get the information, if both devices, the CPLD and CPU-Flash can be programmed. As far as I coud find out now, both is possible, the only thing is, that the data-files fpr the CPLD have to be converted to SVF format, chich shall be possible using the Lattice ispVM System as I noticed the information on http://www.latticesemi.com/products/des … atsnew.cfm

You could place both devices in the same chain, no problem.

But you have to think “HOW TO UPDATE MY PRODUCT”

Yes, and this is a very big advantage for the JTAGkey.

Now, you may use your favoirte :

  • Altera Quartus,

  • Atmel ProChip Designer

  • Cypress Warp

  • Lattice ISP Lever,

  • Xilinx Impact

for generating the SVF.

Then play the SVF via the Amontec amt svf player .exe !

Note that you may Program an AVR via Atmel AVRSVF too !

Laurent

Update procedure wouldn’t be a problem. Update of the CPLD is not planned, the ARM CPU can be updated using a USB connection.

Bit for initial programming in production JTAG programming is neccessary.

So, when daisy-chained, I can program CPLD and CPU at once?

Currently I have:

.xcf and .jed file for the CPLD

. bin for the ARM

So I have to convert all the files to .svf? Which tools can I use for this purpose and how do I configure your svfplayer to corectly program both devices when daisy-chained?

Using the svfplayer is an idea I like very much, because we use a PC with a measuring tool software we have to create anyway, it would be very easy to call a command-line tool to do the programming.

And I like the idea behind your product, because I didn’t find any other device, that was that flexible, even if it costs more than a 1000€

The software developers on our side just told me, that CPLD-flashing is no problem, but the ARM is.

The Amontec tools shall work fine with the AT76C114, but they told me, that flashing the associated NAND-Flash is the big problem, I have beentold that the only way to flash it was using the ARM MultiICE, which is quite expensive.

Can you give me a hint, what’s right now?

Hi,

the OpenOCD has NAND flash support, but up till now the only supported NAND controller is the NXP LPC3180 SLC/MLC controller (more like two controllers in one). This has been tested using a LPC3180 and a 256mbit ST NAND flash.

In order to support your AT76C114 you would have to implement the NAND controller interface as defined in flash/nand.h, similar to the implementation in lpc3180_nand_controller.c.

I tried looking up your target on Atmel’s website but all I cound find was a 6 page product brief with no information on the NAND controller.

The OpenMoko project uses the OpenOCD to program their S3C2410 based target, but only uploads an u-boot version to SDRAM that’s then used to write the NAND flash, as that functionality is needed in u-boot anyway. Maybe you could achieve something similar with your bootloader, provided it supports NAND writing.

I’m sure there are other debuggers beside MultiICE that support NAND flash writing, but they’re probably all in the same price range.

Best regards,

Dominic

@Dominic

So in fact, at the moment the JTAGkey with OpenOCD is more or less useless for our application and we have to buy the MulltiIce anyway?

Programming the external Flash IS in fact a problem, as I found out and many suppliers told me.

So I’d need to buy the MultiIce, I suppose.