The Flash Project Documentation | ||
---|---|---|
<<< Previous |
The goal of this document is to guide the reader on how to modify the source code and re-build CE image 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. |
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".
fsd-intel //Intel B3,C3,P30 2X16 mode and 1X16 mode flash function implementation for WinCE. fsd-amd32 //AMD spansion29lv320d 2x16 mode flash function implementation for WinCE. fsd-amd16 //AMD spansion29lv320d 1x16 mode flash function implementation for WinCE. |
Copy all files in the \fsd-intel directory to $(WINCE500)\PLATFORM\ep93xx\src\drivers\fsd directory.
Copy all files in the \fsd-intel directory to $(WINCE500)\PLATFORM\ep93xx\src\drivers\fsd directory.
Copy all files in the \fsd-amd32 directory to $(WINCE500)\PLATFORM\ep93xx\src\drivers\fsd directory.
Copy all files in the \fsd-amd16 directory to $(WINCE500)\PLATFORM\ep93xx\src\drivers\fsd directory.
Edit $(WINCE500)\PLATFORM\ep93xx\files\platform-15a.reg
Change: IF BSP_EP93XX_STRATA_FLASH ; This file is to be included in platform.reg if required. ; ; It use the top 4MB space of flash (EDB931x): ; uncached base address = A9C00000 ; memory size = 400000 [HKEY_LOCAL_MACHINE\Drivers\BuiltIn\StrataFMD] "Dll"="ep931xstratad.dll" "Order"=dword:2 "Prefix"="DSK" "Ioctl"=dword:4 "Profile"="MSFlash" "IClass"="{A4E7EDDA-E575-4252-9D6B-4195D48BB865}" "MemBase"=dword:A8C00000 "MemLen"=dword:400000 ; Override names in default profile [HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\MSFlash] "Name"="MSFLASH for STRATAFLASH" "Folder"="NOR Flash" [HKEY_LOCAL_MACHINE\System\StorageManager\AutoLoad\MSFlash] "DriverPath"="Drivers\\BuiltIn\\StrataFMD" ; LoadFlags 0x01 == load synchronously "LoadFlags"=dword:1 "Order"=dword:0 ;;;******************************************************************* ;;; ;;; HIVE REGISTRY BOOT SECTION ;;; ;;;******************************************************************* ;; ;;[HKEY_LOCAL_MACHINE\init\BootVars] ;; "SystemHive"="\\Registry\\system.hv" ;; "Start DevMgr"=dword:1 ;; "DefaultUser"="john" ;; "Flags"=dword:1 ;; ENDIF To: IF BSP_EP93XX_STRATA_FLASH ; This file is to be included in platform.reg if required. ; In the WinCE, the uncached flash base address is 0xA8000000 ; MemBase and MemLen should be defined by multi-value: ; The 1st value of "MemBase" is the base address of flash chip (physical address). ; The 2nd value of "MemBase" is the start address of flash file system(physical address). ; The 1st value of "MemLen" is the entire size of the flash chip (in bytes). ; The 2nd value of "MemLen" is the size of flash file system (in bytes). ; MemBase1 MemBase2 ; |_______________|_______________|______________| ; | |_______________| | ; | MemLen2 | ; |______________________________________________| ; MemLen1 ; Constrains: ; 1. Membase2 - Membase1 > size of nk.bin(If Environment Variable BSP_EP93XX_COPY_FLASH_TO_RAM =1) ; 2. Membase1 + Memlen1 > MemBase2 + Memlen2 [HKEY_LOCAL_MACHINE\Drivers\BuiltIn\StrataFMD] "Dll"="ep931xstratad.dll" "Order"=dword:2 "Prefix"="DSK" "Ioctl"=dword:4 "Profile"="MSFlash" "IClass"="{A4E7EDDA-E575-4252-9D6B-4195D48BB865}" ;"MemBase"=dword:A9C00000 ;"MemLen"=dword:400000 ;"MemBase"=multi_sz:"60000000","200000" "MemBase"=multi_sz:"A8000000","A8200000" "MemLen" =multi_sz:"400000","200000" ; Override names in default profile [HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\MSFlash] "Name"="MSFLASH for STRATAFLASH" "Folder"="NOR Flash" "DefaultFileSystem"="FATFS" "PartitionDriver"="mspart.dll" "AutoMount"=dword:1 "AutoPart"=dword:1 "AutoFormat"=dword:1 [HKEY_LOCAL_MACHINE\System\StorageManager\AutoLoad\MSFlash] "DriverPath"="Drivers\\BuiltIn\\StrataFMD" ; LoadFlags 0x01 == load synchronously "LoadFlags"=dword:1 "Order"=dword:0 ;;;******************************************************************* ;;; ;;; HIVE REGISTRY BOOT SECTION ;;; ;;;******************************************************************* ;; ;;[HKEY_LOCAL_MACHINE\init\BootVars] ;; "SystemHive"="\\Registry\\system.hv" ;; "Start DevMgr"=dword:1 ;; "DefaultUser"="john" ;; "Flags"=dword:1 ;; ENDIF |
Change ldr r0, =((4:SHL:SMCBCR_WST2_SHIFT) :or: \ (15:SHL:SMCBCR_WSindex_SHIFT) :or: \ (1 :and:SMCBCR_IDCY_MASK) :or: \ SMCBCR_MW_16BIT :or: \ SMCBCR_WP :or: \ SMCBCR_PME :or: \ SMCBCR_RBLE) To: ldr r0, =0x1000FFEF |
Edit $(WINCE500)\PLATFORM\ep93xx\src\inc\memorymap-9315a.h
Change: #define SIZE_FLASH_INTEL 0x01000000 To: #define SIZE_FLASH_INTEL 0x02000000 |
Edit $(WINCE500)\PLATFORM\ep93xx\files\platform-1x07.reg
Change: IF BSP_EP93XX_STRATA_FLASH ; This file is to be included in platform.reg if required. ; ; It use the top 4MB space of flash (EDB931x): ; uncached base address = A8000000 ; memory size = 400000 [HKEY_LOCAL_MACHINE\Drivers\BuiltIn\StrataFMD] "Dll"="ep931xstratad.dll" "Order"=dword:2 "Prefix"="DSK" "Ioctl"=dword:4 "Profile"="MSFlash" "IClass"="{A4E7EDDA-E575-4252-9D6B-4195D48BB865}" "MemBase"=dword:A9C00000 "MemLen"=dword:400000 ; Override names in default profile [HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\MSFlash] "Name"="MSFLASH for STRATAFLASH" "Folder"="NOR Flash" [HKEY_LOCAL_MACHINE\System\StorageManager\AutoLoad\MSFlash] "DriverPath"="Drivers\\BuiltIn\\StrataFMD" ; LoadFlags 0x01 == load synchronously "LoadFlags"=dword:1 "Order"=dword:0 ;;;******************************************************************* ;;; ;;; HIVE REGISTRY BOOT SECTION ;;; ;;;******************************************************************* ;; ;;[HKEY_LOCAL_MACHINE\init\BootVars] ;; "SystemHive"="\\Registry\\system.hv" ;; "Start DevMgr"=dword:1 ;; "DefaultUser"="john" ;; "Flags"=dword:1 ;; ENDIF To: IF BSP_EP93XX_STRATA_FLASH ; This file is to be included in platform.reg if required. ; In the WinCE,the uncached flash base address is 0xA8000000 ; MemBase and MemLen should be defined by multi-value: ; The 1st value of "MemBase" is the base address of flash chip (physical address). ; The 2nd value of "MemBase" is the start address of flash file system(physical address). ; The 1st value of "MemLen" is the entire size of the flash chip (in bytes). ; The 2nd value of "MemLen" is the size of flash file system (in bytes). ; MemBase1 MemBase2 ; |_______________|_______________|______________| ; | |_______________| | ; | MemLen2 | ; |______________________________________________| ; MemLen1 ; Constrains: ; 1. Membase2 - Membase1 > size of nk.bin(If Environment Variable BSP_EP93XX_COPY_FLASH_TO_RAM =1) ; 2. Membase1 + Memlen1 > MemBase2 + Memlen2 [HKEY_LOCAL_MACHINE\Drivers\BuiltIn\StrataFMD] "Dll"="ep931xstratad.dll" "Order"=dword:2 "Prefix"="DSK" "Ioctl"=dword:4 "Profile"="MSFlash" "IClass"="{A4E7EDDA-E575-4252-9D6B-4195D48BB865}" ;"MemBase"=dword:A9C00000 ;"MemLen"=dword:400000 "MemBase"=multi_sz:"A8000000","A8400000" "MemLen" =multi_sz:"800000","200000" ; Override names in default profile [HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\MSFlash] "Name"="MSFLASH for STRATAFLASH" "Folder"="NOR Flash" "DefaultFileSystem"="FATFS" "PartitionDriver"="mspart.dll" "AutoMount"=dword:1 "AutoPart"=dword:1 "AutoFormat"=dword:1 [HKEY_LOCAL_MACHINE\System\StorageManager\AutoLoad\MSFlash] "DriverPath"="Drivers\\BuiltIn\\StrataFMD" ; LoadFlags 0x01 == load synchronously "LoadFlags"=dword:1 "Order"=dword:0 ;;;******************************************************************* ;;; ;;; HIVE REGISTRY BOOT SECTION ;;; ;;;******************************************************************* ;; ;;[HKEY_LOCAL_MACHINE\init\BootVars] ;; "SystemHive"="\\Registry\\system.hv" ;; "Start DevMgr"=dword:1 ;; "DefaultUser"="john" ;; "Flags"=dword:1 ;; ENDIF |
Change ldr r0, =((4:SHL:SMCBCR_WST2_SHIFT) :or: \ (15:SHL:SMCBCR_WSindex_SHIFT) :or: \ (1 :and:SMCBCR_IDCY_MASK) :or: \ SMCBCR_MW_16BIT :or: \ SMCBCR_WP :or: \ SMCBCR_PME :or: \ SMCBCR_RBLE) To: ldr r0, =0x2000FFEF |
Edit $(WINCE500)\PLATFORM\ep93xx\src\inc\memorymap-1215.h
Change: #define SIZE_FLASH_INTEL 0x02000000 To: #define SIZE_FLASH_INTEL 0x04000000 |
<<< Previous | Home | |
How to Add the Flash Driver for Eboot |