Flash Memory Programmer for Intel Development Platforms
Release Notes
Version 5.01.007 April 2, 2004
Order Number: 278600-013
Contents
4.1 Installing the JFlashMM Software on
Windows* 98
4.2 Installing the GIVEIO.SYS driver on
Windows* NT and Windows* 2000
4.3 Installing the GIVEIO.SYS driver on
Windows* XP
5.1.1 Using Default Parameters
5.1.2 Programming a Flash at a Different
Base Address
6. Data File Modification Guidelines
9. Bugs Fixed Since Last Release
10. Supported Development Platform Hardware
Revisions
11. Software, Hardware, and Documentation
Updates
JFlashMM is a generic JTAG
flash memory programmer that uses configuration data files to describe the
target development platform. JFlashMM is a Windows* console application that
uses various cables to interface a parallel port to the JTAG TAP on a
development system. The supported cable types are as follows:
·
Insight* IJC-1 connector and IJC-2 cable
·
Intel® JTAG cable
Since there is no platform
information contained within the JFlashMM executable, you will always need at
least two data files to use this software with your development platform. One
data file describes the development platform and processor, and the other data
file contains information about the flash memory device that is being
programmed. The data files are ASCII text files that may be edited with any
text editor. The data files are heavily commented and may be modified in minor
ways for your convenience. For more
information on modifying data files, see Data file modification guidelines.
Note:
See the Requirements section for information on obtaining a
development platform data file.
This software went through validation
testing and is intended for EXAMPLE CODE ONLY. It cannot be used "as
is" for production systems. No warranty, expressed or implied, is to be
associated with this software and the User assumes all risk.
This kit contains the
following files:
·
RelNote_JFlashMM.htm
– This file
·
JFlashmm.exe –
JFlash executable image
·
Source.zip –
Source code for JFlashMM
o
Compile_switches.h
- Header for setting build instructions
o
Global_Variables.h
– Global variables
o
jflash.cpp – Main
program file
o
jflash.h – Header
file for device and program constants
o
jflashmm.dsp –
Microsoft Visual C++ project file
o
jflashmm.dsw –
Microsoft Visual C++ project file
o
jflashmm.mak –
Microsoft Make file
o
jtag.h – JTAG
common and platform specific assignments
·
giveio.inf -
Required for device driver installation
·
giveio.INI -
Required for device driver installation
·
giveio.zip –
Source code for the giveio.sys device driver
·
GIVEIO.SYS - The
giveio device driver
·
testfile.bin – A
small binary file to be used with debug mode
·
SWLicense.pdf -
End-user license agreement
·
Flash_16_2_32.dat
– Data file for 28F320J3A
·
Flash_18_2_32.dat
– Data file for 28F128J3A
·
Flash_8802_1_16.dat
– Data file for 28F128K3
·
Flash_8802_2_32.dat
– Data file for 28F128K3
·
Flash_8803_2_32.dat
– Data file for 28F256K3
·
Flash_8806_2_32.dat
– Data file for 28F128K18
·
Flash_8807_2_32.dat
– Data file for 28F256K18
·
Flash_880B_2_32.dat
– Data file for 28F640L18T
·
Flash_880C_2_32.dat
– Data file for 28F128L18T
·
Flash_880D_2_32.dat
– Data file for 28F256L18T
·
Flash_880E_2_32.dat
– Data file for 28F640L18B
·
Flash_880F_2_32.dat
– Data file for 28F128L18B
·
Flash_8810_2_32.dat
– Data file for 28F256L18B
·
Flash_8811_2_32.dat
– Data file for 28F640L30T
·
Flash_8812_2_32.dat
– Data file for 28F128L30T
·
Flash_8813_2_32.dat
– Data file for 28F256L30T
·
Flash_8814_2_32.dat
– Data file for 28F640L30B
·
Flash_8815_2_32.dat
– Data file for 28F128L30B
·
Flash_8816_2_32.dat
– Data file for 28F256L30B
·
Flash_880C_1_16.dat
- Data file for 28F128L18T
·
Flash_880D_1_16.dat
- Data file for 28F256L18T
·
Flash_880F_1_16.dat
- Data file for 28F128L18B
·
Flash_8810_1_16.dat
- Data file for 28F256L18B
·
Flash_8812_1_16.dat
- Data file for 28F128L30T
·
Flash_8815_1_16.dat
- Data file for 28F128L30B
Note: The
release package was built for extraction through Microsoft Windows* platforms.
This installation kit
provides you with generic JFlashMM executable and flash data files, but does not
include the required data file that describes your development platform and
processor. A data file specifically for your Intel manufactured development
platform is available from Intel’s website for developers or your Application
Engineer (AE).
For development platforms
that were not manufactured by Intel, contact your Intel AE for a data file that
matches your platform descriptions. These non-Intel development platforms
require the following connections for JFlashMM:
·
TDI
·
TDO
·
TMS
·
TCK
·
NReset
·
3.3 Volt power
with at least 30mA of capacity
This section details how to
install the JFlashMM software on Windows* 98, Windows* 2000, Windows* NT, and
Windows* XP.
Note:
The GIVEIO.SYS device
driver is required for JFlashMM to operate. The parallel port on your PC must
be set to ECP mode.
1.
Create a new
folder and copy the JFlash_MM_V5_01_007.exe self-extracting installation file
into it.
2.
Run the
JFlash_MM_V5_01_007.exe self-extracting file.
Optionally, you can also
add the path to your Autoexec.bat file (requires reboot for path to take
affect). No other action is required to run the application on Windows* 98.
1.
Copy the included
GIVEIO.SYS file to your C:\WINNT\system32\drivers directory.
2.
Open the Control
Panel and select Add/Remove
Hardware Wizard.
3.
Follow the
directions for adding a new device.
4.
Select “Select hardware from list” and then choose NEXT.
5.
6.
Select “Have Disk” and browse to the giveio.inf file.
7.
Confirm and
finish the installation by choosing NEXT and then FINISH.
1.
Copy the included
GIVEIO.SYS file to your C:\WINNT\system32\drivers directory.
2.
Choose “Add Hardware” from the Control Panel
3.
Choose NEXT when the Add Hardware Wizard appears.
4.
Check “Yes, I have already added the
hardware” button; then choose NEXT.
5.
Scroll down and
select “Add a new
hardware device”, then choose NEXT.
6.
Select “Install hardware manually from
list”, then choose NEXT.
7.
Select
8.
Select “Have Disk” and browse to the giveio.inf file.
9.
Choose OK, then NEXT, then NEXT, then CONTINUE ANYWAY when the digital signing warning message
appears.
10. Confirm and finish the installation by choosing NEXT and then FINISH.
JFlashMM is executed from a
console window and accepts the following command arguments:
>JFLASHMM
[PLAT][IMAGE][P,V,E,T,I,N][ADDR][INS,PAR][NOD,DEB][A,D]
PLAT and IMAGE are required parameters.
For optional parameters, the
first value listed is the default. Optional parameters are position-dependent.
That is, if you specify any optional parameters, all the preceding parameters
must be specified. See Programming a Flash at a
Different Base Address and Using Debug Mode
for examples that illustrate the use of optional parameters.
Where:
[PLAT] = The name of the platform data file without
the .DAT.
[IMAGE] = The name of the image to program in flash.
[P,V,E,T,I,N] = See Function Table below
[ADDR] = Hex byte address to start. No leading 0X,
assumes 0
[INS,
PAR] = (INS) Insight IJC and Intel® JTAG
Cable, (PAR) passive parallel cable
[NOD,
DEB] = NODebug (
[A,D] =
(A)sk questions or (D)on’t ask questions. Used for batch operation.
Note:
JFLASHMM is the executable
name in this example.
Function Table
Command
Parameter |
Description |
P |
Program and verify the flash memory (Default value if no command specified). |
V |
Verify the image in flash memory with a binary file. |
E |
Erase every block of flash memory. |
T |
Test the flash memory by programming an image to every block. It is recommended that you use Testfile.bin as the binary image. Testfile.bin is a small file with internal data patterns suitable for detecting address or data line defects. |
I |
Identify the processor and flash type. No programming of flash memory is done. |
N |
Program the flash but omit (skip) the verify cycle. Use this when you are confident about the stability of your system |
This section provides
descriptions of commonly used commands.
Note:
Command
parameters are NOT case sensitive.
JFlashMM
myplatform myfile.bin
Where myplatform is the name of the .dat file that
describes the platform.
Note:
This example assumes that there is a file named myplatform.dat in
the same directory as the JFlashMM executable.
JFlashMM
myplatform myfile.bin P 01EC0000
The parameter P is required in this example because all of the parameters are counted and
therefore position dependent. The parameter P also
specifies that the operation is to program and verify. The address 01EC0000 is the hex byte address where the flash programming is
to begin.
JFlashMM
myplatform myfile.bin P 0 INS DEB > debuglog.txt
The debug parameter DEB generates a lot of screen messages. This example captures
the screen messages and routes them to a file named debuglog.txt.
To restrict the size of the
log file, you can debug the program using the small test file testfile.bin . Using this file allows your Intel AE to compare
your debug results with the same file on a reference platform.
JFlashMM
myplatform myfile.bin E
This command erases every
block of the flash memory.
As described in the Description section, there are a minimum of two data
files required for any one platform: a platform data file and at least one
flash device data file.
The names of the data files
are very important. The flash device data files are constructed using the
internal ID of the flash device along with information about the layout of the
flash and the width of the data bus used. The flash data files are not
specified on the command line because they are constructed at runtime by the
program. The platform data file can be any name as long as the filename
extension is .DAT. The filename itself is the first parameter required
by JFlashMM.
All strings in the data
files are case sensitive. Comment blocks are similar to old-style C coding
comments with the exception that there must be white space on both sides of the
delimiters. The data files that are supplied by Intel are heavily commented and
contain additional information about the content and construction.
Normally these data files
will not require modification by the user. This section describes some of the
possible ways that the files may be modified to suit a particular variation of
a development board.
When a platform data file
is used, JFlashMM uses the following text strings as a banner to display the
current selected platform. If you modify a data file, Intel recommends that you
change the corresponding text string to aid in the identification of the data
file.
PXA123 /* Supported Processor
Code Name or Number */
BigBoard /* Supported Development
platform name or number */
1.0 /* Version number of
this data file */
JFlashMM supports up to
five JTAG devices in the scan chain. In order to add devices, the word
“Disabled” must be changed to “Enabled” and the number of bits, using the
instruction register for the device, must be specified. The following comments
are examples of how to describe the position of the devices relative to TDI and
TDO.
/* TDI --> */ Enabled
5 Controller Last
Disabled 0
Other More
Disabled 0
Other More
Disabled 0
Other More
Disabled 0
Other More /* TDO --> */
If the memory map of your development
system requires modification, the values in this section of the data file may
be modified.
Note The address columns have Hex numbers preceded by the letter
X. The X signals that the numeric value is to be treated as a Hexadecimal
constant.
/* Lower Address Upper Address Chip Select */
X00000000 X02000000 0
X04000000 X06000000 1
X08000000 X08000100 2
X0C000000 X0E100000 3
X10000000 X10400000 4
X14000000 X18000000 5
This version of JFlashMM
allows for WORD or BUFFER programming modes. Each mode has advantages and
disadvantages depending on the environment. The WORD programming mode is about
30% slower than the BUFFER programming mode, but is more compatible with some
flash configurations.
BUFFER /* WORD or BUFFER is
the allowed entry */
· No additional features were added
·
Problem: Unexpected power cycles may have left the flash memory in a
state that JFlashMM cannot control.
Workaround: In most cases, a power
cycle of your development platform will reset the flash memory components.
·
Problem:
There are occassional “verify” errors after programming some flash
families. There errors generally occur
while programming the flash at non-zero base addresses.
Workaround: Erase the flash completely using the E command (for
more information, see Erasing the Flash). If you are programming multiple images at
different addresses, always program the lowest address first.
·
Patches to the programming
alogorithms for some flash families were affecting the operation of other flash
families. This version isolates the patches so that there is no collision of
patches across the various flash families.
This version of the
software supports multiple platforms defined by data files that are available
from your Intel AE, or are already included in a software kit shipped with your
development platform.
Warning: All applicable
ECOs must be implemented on your platform. Failure to implement all of the ECOs
required on your platform may cause physical damage to your hardware and may
result in software instability.
For the latest software and
hardware updates, contact your AE.
INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH
INTEL® PRODUCTS. NO LICENSE, EXPRESS OR IMPLIED, BY ESTOPPEL OR
OTHERWISE, TO ANY INTELLECTUAL PROPERTY RIGHTS IS GRANTED BY THIS DOCUMENT.
EXCEPT AS PROVIDED IN INTEL'S TERMS AND CONDITIONS OF SALE FOR SUCH PRODUCTS,
INTEL ASSUMES NO LIABILITY WHATSOEVER, AND INTEL DISCLAIMS ANY EXPRESS OR
IMPLIED WARRANTY, RELATING TO SALE AND/OR USE OF INTEL PRODUCTS INCLUDING
LIABILITY OR WARRANTIES RELATING TO FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABILITY, OR INFRINGEMENT OF ANY PATENT, COPYRIGHT OR OTHER INTELLECTUAL
PROPERTY RIGHT. Intel products are not intended for use in medical, life
saving, life sustaining applications
Intel may make changes
to specifications and product descriptions at any time, without notice.
The
development platforms and processors may contain design defects or errors known
as errata which may cause the product to deviate from published specifications.
Current characterized errata are available on request.
This document and the
software described in it are furnished under license and may only be used or
copied in accordance with the terms of the license. The information in this
document is furnished for informational use only, is subject to change without
notice, and should not be construed as a commitment by Intel Corporation. Intel
Corporation assumes no responsibility or liability for any errors or
inaccuracies that may appear in this document or any software that may be provided
in association with this document. Except as permitted by such license, no part
of this document may be reproduced, stored in a retrieval system, or
transmitted in any form or by any means without the express written consent of
Intel Corporation.
Copies of documents
which have an ordering number and are referenced in this document, or other
Intel literature may be obtained by calling 1‑800‑548‑4725 or by visiting
Intel's website at http://www.intel.com.
Intel and the Intel logo are trademarks or registered
trademarks of Intel Corporation or its subsidiaries in the
*
Other names and brands may be claimed as the property of others.
Copyright © Intel Corporation, 2004