Flash Memory Programmer for Intel Development Platforms

Release Notes

Version 5.01.007                                                                                                        April 2, 2004

Order Number: 278600-013


Contents

1.    Description. 3

2.    Kit Contents. 4

3.    Requirements. 5

4.    Software Installation. 5

4.1     Installing the JFlashMM Software on Windows* 98. 5

4.2     Installing the GIVEIO.SYS driver on Windows* NT and Windows* 2000. 6

4.3     Installing the GIVEIO.SYS driver on Windows* XP.. 6

5.    Operation. 6

5.1     Example Commands. 7

5.1.1     Using Default Parameters. 7

5.1.2     Programming a Flash at a Different Base Address. 7

5.1.3     Using Debug Mode. 7

5.1.4     Erasing the Flash. 8

6.    Data File Modification Guidelines. 8

6.1     Banner Strings. 8

6.2     JTAG Chain. 8

6.3     Memory Map. 9

6.4     Programming Mode. 9

7.    Changes Since Last Release. 9

8.    Known Problems. 9

9.    Bugs Fixed Since Last Release. 10

10.  Supported Development Platform Hardware Revisions. 10

11.  Software, Hardware, and Documentation Updates. 10

12.  Copyright 10

 


 

1.  Description

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.


2.  Kit Contents

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.

 

3.  Requirements

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

 

4.  Software Installation

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.

4.1   Installing the JFlashMM Software on Windows* 98

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.

4.2   Installing the GIVEIO.SYS driver on Windows* NT and Windows* 2000

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.        Select Ports from the hardware list and then choose NEXT.

6.        Select “Have Disk” and browse to the giveio.inf file.

7.        Confirm and finish the installation by choosing NEXT and then FINISH.

4.3   Installing the GIVEIO.SYS driver on Windows* XP

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 Ports from the hardware list and then choose NEXT.

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.

5.  Operation

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 (Normal) or DEBug mode

[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

 

5.1   Example Commands

This section provides descriptions of commonly used commands.

Note:       Command parameters are NOT case sensitive.

5.1.1   Using Default Parameters

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.

5.1.2   Programming a Flash at a Different Base Address

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.

5.1.3   Using Debug Mode

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. 

5.1.4   Erasing the Flash

JFlashMM myplatform myfile.bin E

This command erases every block of the flash memory.

6.  Data File Modification Guidelines

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.

6.1   Banner Strings

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 */

6.2   JTAG Chain

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 --> */

 

 

6.3   Memory Map

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

 

6.4   Programming Mode

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 */

7.  Changes Since Last Release

·         No additional features were added

8.  Known Problems

·         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. 

9.  Bugs Fixed Since Last Release

·         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.

10.              Supported Development Platform Hardware Revisions

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.

 

11.              Software, Hardware, and Documentation Updates

For the latest software and hardware updates, contact your AE.

 

12.              Copyright

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 18005484725 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 United States and other countries.

* Other names and brands may be claimed as the property of others.

Copyright © Intel Corporation, 2004