How to Add the Flash Driver for Eboot

The abstract of the document

The goal of this document is to guide the reader on how to modify the source code and re-build Eboot to support a new flash type on an EP93xx board. A basic familiarity with WinCE is assumed.



Note: 

(1) TE28F320C3, TE28F256P30, and AM29LV320D flash types are demonstrated. 

(2) A flash daughter card is used.

(3) Cirrus' WinCE 5.0 BSP release, Scorpius 1.0.202, is used.

(4) All of the examples have been tested on an EDB9312 evaluation board. 

	

Create the environment

Assume that Cirrus' WinCE 5.0 BSP is used and $(WINCE500)\PLATFORM\ep93xx directory exists.

For 16bits FLASH, the user should select bsp of "CIRRUS EDB9315A: ARMV4I". For 32bits FLASH, the user should select bsp of "CIRRUS EDB9307/12/15: ARMV4I".

Add the flash driver

The flash driver file list



intel_c3_2x16.c                 //intel B3,C3 2x16 flash function implementation for eboot.

intel_c3_2x16.h                 //intel B3,C3 2x16 flash function defines for eboot.

intel_c3_1x16.c                 //intel B3,C3 1x16 flash function implementation for eboot.

intel_c3_1x16.h                 //intel B3,C3 1x16 flash function defines for eboot.

intel_p30_2x16.c             	//intel P30 2x16 flash function implementation for eboot.

intel_p30_2x16.h             	//intel P30 2x16 flash function defines for eboot.

intel_p30_1x16.c             	//intel P30 1x16 flash function implementation for eboot.

intel_p30_1x16.h             	//intel P30 1x16 flash function defines for eboot.

spansion29lv320d_2x16.c      	//AMD spansion29lv320d 2x16 flash function implementation for eboot.

spansion29lv320d_2x16.h      	//AMD spansion29lv320d 2x16 flash function defines for eboot.

spansion29lv320d_1x16.c      	//AMD spansion29lv320d 1x16 flash function implementation for eboot.

spansion29lv320d_1x16.h      	//AMD spansion29lv320d 1x16 flash function defines for eboot.

flash.c                      	//Eboot Flash file driver for intel B3,C3 and P30 flash,and AMD spansion29lv320d

sources                      	//Eboot Flash file driver for intel B3,C3 and P30 flash,and AMD spansion29lv320d    

	

Copy flash.c to $(WINCE500)\PLATFORM\ep93xx\src\bootloader\common. Copy sources to $(WINCE500)\PLATFORM\ep93xx\src\bootloader\common.

Add the TE28F320C3 flash support

Copy intel_c3_2x16.c, intel_c3_2x16.h, intel_c3_1x16.c, and intel_c3_1x16.h to $(WINCE500)\PLATFORM\ep93xx\src\bootloader\common.

Add the TE28F256P30 flash support

Copy intel_p30_2x16.c, intel_p30_2x16.h, intel_p30_1x16.c, and intel_p30_1x16.h to $(WINCE500)\PLATFORM\ep93xx\src\bootloader\common.

Add the AM29LV320D flash support

Copy spansion29lv320d_2x16.c, spansion29lv320d_2x16.h, spansion29lv320d_1x16.c, and spansion29lv320d_1x16.h to $(WINCE500)\PLATFORM\ep93xx\src\bootloader\common.

Build Eboot

Build Eboot for TE28F320C3 in 32 bit mode.

Edit $(WINCE500)\PLATFORM\ep93xx\src\bootloader\common\flash.c



Add  //#define Flash_J3 

       #define Flash_C3

	
Then re-build OS. EBOOT.nb0 will be in the $(WINCE500)\PLATFORM\ep93xx\target\ARMV4I\retail directory.

Build Eboot for TE28F320C3 in 16 bit mode

Edit $(WINCE500)\PLATFORM\ep93xx\src\bootloader\common\flash.c



Add  //#define Flash_J3 

       #define Flash_C3

       #define EP93XX_16BIT

	
Then re-build OS. EBOOT.nb0 will be in the $(WINCE500)\PLATFORM\ep93xx\target\ARMV4I\retail directory.

Build the Eboot for TE28F320P30 in 32 bit mode.

Edit $(WINCE500)\PLATFORM\ep93xx\src\bootloader\common\flash.c



Add  //#define Flash_J3 

       #define Flash_C3

	
Then re-build OS. EBOOT.nb0 will be in the $(WINCE500)\PLATFORM\ep93xx\target\ARMV4I\retail directory.

Build the Eboot for TE28F320P30 in 16 bit mode

Edit $(WINCE500)\PLATFORM\ep93xx\src\bootloader\common\flash.c



Add  //#define Flash_J3 

       #define Flash_C3

       #define EP93XX_16BIT

	
Then re-build OS. EBOOT.nb0 will be in the $(WINCE500)\PLATFORM\ep93xx\target\ARMV4I\retail directory.

Build the Eboot for AM29LV320D in 32 bit mode.

Edit $(WINCE500)\PLATFORM\ep93xx\src\bootloader\common\flash.c



Add  //#define Flash_J3 

       #define Flash_AMD

	
Then re-build OS. EBOOT.nb0 will be in the $(WINCE500)\PLATFORM\ep93xx\target\ARMV4I\retail directory.

Build the Eboot for AM29LV320D in 16 bit mode

Edit $(WINCE500)\PLATFORM\ep93xx\src\bootloader\common\flash.c



Add  //#define Flash_J3 

       #define Flash_AMD

       #define EP93XX_16BIT

	
Then re-build OS. EBOOT.nb0 will be in the $(WINCE500)\PLATFORM\ep93xx\target\ARMV4I\retail directory.