From ec6bd3f4f9f6752ee7c7a755f3a67bcb8fedea82 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Arnim=20L=C3=A4uger?= Date: Sat, 9 May 2009 22:34:12 +0000 Subject: [PATCH] hint for non-standard flash commands git-svn-id: https://urjtag.svn.sourceforge.net/svnroot/urjtag/trunk@1585 b68d4a1b-bc3d-0410-92ed-d4ac073336b7 --- urjtag/ChangeLog | 4 ++++ urjtag/doc/UrJTAG.txt | 45 ++++++++++++++++++++++++++++--------------- 2 files changed, 34 insertions(+), 15 deletions(-) diff --git a/urjtag/ChangeLog b/urjtag/ChangeLog index 02207dc1..75e00ee0 100644 --- a/urjtag/ChangeLog +++ b/urjtag/ChangeLog @@ -1,3 +1,7 @@ +2009-05-10 Arnim Laeuger + + * doc/UrJTAG.txt: hint for non-standard flash commands + 2009-05-09 Rutger Hofman * configure.ac, **/Makefile.am: Add automake magic to have -Werror except diff --git a/urjtag/doc/UrJTAG.txt b/urjtag/doc/UrJTAG.txt index 415bb02a..ce20f0c5 100644 --- a/urjtag/doc/UrJTAG.txt +++ b/urjtag/doc/UrJTAG.txt @@ -623,6 +623,36 @@ or: Done. jtag> +==== Non-standard flash commands ==== + +Erasing and programming flash devices is covered by standard procedures +in UrJTAG. Apart from these, many flash chips implement a lot more +functionality via dedicated commands that vary from between manufacturers +and device families. UrJTAG can't cover them all natively. + +It's however possible to send any command stream to the flash by using +the poke and peek commands. You just need to clarify two things: + + 1. base address of the flash (BA) + + it's the same that's used for detectflash + 2. data width, x8 or x16 + + defined by the width of the bus where the flash is attached + +Next look up the address/data pairs for the command in question. The data +sheet for your particular flash should document all commands in a table e.g. +If your flash is attached in x16 mode, the address must be shifted by one +position. Addresses in x8 mode are not affected. + +The "Read Manufacturer ID" command in x16 mode would look like + + poke BA+(0x555*2) 0xaa + poke BA+(0x2aa*2) 0x55 + poke BA+(0x555*2) 0x90 + peek BA+(0x000*2) + +Note that the calculations must be done beforehand. UrJTAG can't evaluate +expressions on the command line. + //------------------------------------------------------------------------ === JTAG commands === @@ -956,21 +986,6 @@ through the SVF file, specify 'progress' at the svf command. ***************************** Several limitations exist for the SVF player. -It has been tested so far with files generated by these tools: - - - Xilinx ISE WebPack 6.3.02i - 9.1.02i - - Altera Quartus II 4.1sp1 - 7.0 - -Configuration for these devices has been tested so far: - - - Altera EPC1C12Q240 - - Altera MAX3032, EPM3032ALC44 - - Altera MAX3064, EPM3064ALC44 - - Altera MAX7032, EPM7032SLC44 - - Altera MAX7064, EPM7064SLC44, EPM7064STC44 - - Xilinx Spartan-IIE, XC2S300E-PQ208 - - Xilinx Spartan-3, XC3S1000-FG456, XC3S5000-FG900 - The implementation of some SVF commands has deficiencies. - HIR, HDR commands not supported. +