RE: FlashROM as as a FAT-disk in CE 5.0?



You need a flash media driver ( see PB help ): it contains all of the
device-specific code necessary to
communicate to the device; you can link your FMD to the flash abstraction
layer (FAL) to
create a block driver that FAT can use.
In %_WINCEROOT%\PUBLIC\COMMON\OAK\DRIVERS\BLOCK\MSFLASHFMD\STRATA you can
find a FMD for Strataflash.


"Rolf" wrote:

Hi,

I have a system with 64 MB flashROM (Intel Strataflash P30 series) where I
would like to use half of it as a FAT-disk in CE 5.0. What changes are
required to the Config.bib, Eboot.bib and virtual memory map and possibly
elsewhere? What drivers do I need (do I need to write my own flashROM
storage block driver)? I would like it to appear as a folder below CE root,
for example with the name "\FLASH\". The following is an excerpt from the
files I mentioned:
_____________________________________________________________
;CONFIG.BIB

MEMORY

IF IMGFLASH!

; Name Start Size Type
; ------- -------- -------- ----
RSVD 80000000 000FF000 RESERVED
ARGS 800FF000 00001000 RESERVED
NK 80100000 03000000 RAMIMAGE
RAM 83100000 $(NKRAM_SIZE) RAM
ENDIF

IF IMGFLASH
IF BUILD_ROM_BIN
RSVD 80000000 000FF000 RESERVED
ARGS 800FF000 00001000 RESERVED
NK 92600000 03FE0000 RAMIMAGE ;Locate above EBOT image and
configuration block
RAM 80100000 $(NKRAM_SIZE) RAM
ENDIF

IF BUILD_ROM_NB0
RSVD 80000000 000FF000 RESERVED
ARGS 800FF000 00001000 RESERVED
NK 92500000 03FF0000 RAMIMAGE ;Replace EBOOT Image
RAM 80100000 $(NKRAM_SIZE) RAM
ENDIF
ENDIF

; Reserve ZBANK virtual block (No physical memory
; is required to back this virtual range).
ZBANK 96500000 00100000 RESERVED


CONFIG

IF IMGFLASH
ROMSTART=92500000 ; Virtual starting address
ROMWIDTH=32
ROMSIZE=03FF0000 ; 64 MB flashROM
ELSE
AUTOSIZE = ON
ENDIF

_______________________________________________________________________________
;EBOOT.BIB

; Ethernet Boot Loader Source Module
;
; Memory Map
; ----------
;
; 8000.0000 -+
; | Bootloader Stack (64KB)
; 8001.0000 -+
; | Bootloader RAM (64KB)
; 8002.0000 -+
; | Bootloader Code (256KB)
; 8006.0000 -+
; | GAP (reserved for future)
; 800F.F000 -+
; | ARGS (4KB)
; 8010.0000 -+
; |
; | OS (NK) Code (48MB)
; |
; 8310.0000 -+ **auto-size**
; |
; | OS (NK) RAM (15MB)
; |
; 8400.0000 -+
;
; ----------

MEMORY

; Name Start Size Type
; ------- -------- -------- ----
STACK 80000000 00010000 RESERVED
RAM 80010000 00010000 RAM
EBOOT 80020000 00040000 RAMIMAGE
RSVD 80060000 0009F000 RESERVED
ARGS 80FF0000 00001000 RESERVED


CONFIG

AUTOSIZE=OFF
COMPRESSION=OFF
PROFILE=OFF
KERNELFIXUPS=ON

ROMSTART=80020000
ROMWIDTH=32
ROMSIZE=00040000

; The bootloader is fixed up to run from RAM, but is stored in flash.
ROMOFFSET
; adjusts the .bin file record headers to that they lie in flash (this
tells the
; bootloader already on the device to store the image in flash).
ROMOFFSET=3C9E0000

MODULES

; Name Path Memory
Type
; ------ ---------------------------------------------- -----------
nk.exe $(_TARGETPLATROOT)\target\$(_TGTCPU)\$(WINCEDEBUG)\eboot.exe
EBOOT

_____________________________________________________________________________________
:Virtual memory map:

DCD 0x80000000, 0xA0000000, 128 ; SANDGATEII: SDRAM (128MB).
DCD 0x88000000, 0x5C000000, 1 ; BULVERDE: Internal SRAM
(64KB bank 0).
DCD 0x88100000, 0x58000000, 1 ; BULVERDE: Internal memory
PM registers.
DCD 0x88200000, 0x4C000000, 1 ; BULVERDE: USB host
controller.
DCD 0x88300000, 0x48000000, 1 ; BULVERDE: Memory
controller.
DCD 0x88400000, 0x44000000, 1 ; BULVERDE: LCD controller.
DCD 0x88500000, 0x40000000, 32 ; BULVERDE: Memory-mapped
registers (peripherals).
DCD 0x8A500000, 0x2C000000, 64 ; BULVERDE: PCMCIA S0 common
memory space.
DCD 0x8E500000, 0x28000000, 32 ; BULVERDE: PCMCIA S0
attribute memory space.
DCD 0x90500000, 0x20000000, 32 ; BULVERDE: PCMCIA S0 I/O
space.
DCD 0x96500000, 0xE0000000, 1 ; SANDGATEII: Zero-bank (in
reserved slot - no physical memory required).
DCD 0x96600000, 0x14000000, 64 ; SANDGATEII: nCS5:
eXpansion board header.
DCD 0x9A600000, 0x10000000, 1 ; SANDGATEII: nCS4:
USB2.0/IDE controller.
DCD 0x9A700000, 0x0C000000, 1 ; SANDGATEII: nCS3: SMSC
91C111 Ethernet controller.
DCD 0x9A800000, 0x0A000000, 1 ; SANDGATEII: nCS2 (upper
half): Board registers (CPLD).
DCD 0x9A900000, 0x04000000, 32 ; SANDGATEII: nCS1:
Secondary flash (32MB).
DCD 0x92500000, 0x00000000, 64 ; SANDGATEII: nCS0: Boot
Flash (64MB).
DCD 0x9F900000, 0x50000000, 1 ; BULVERDE: Camera
peripheral interface.

DCD 0x00000000, 0x00000000, 0 ; end of table
_________________________________________________________________________________

In advance, thanks for any help!

Regards,
Rolf



.



Relevant Pages

  • Re: Memory configuration of WinCE Image
    ... Actually I am not sure how to configure my PB to dowload image in RAM? ... As the error is pointing of lack of memory, I have configured memory in my ... Board registers. ... for the new boot flash address: ...
    (microsoft.public.windowsce.platbuilder)
  • Re: Windows 2000 Server StandardEdition /PAE Question
    ... I would like to add here that the reserved memory address space by the devices is not necessarily reserved to talk to the processor. ... They may not necessarily talk to the processor at those addresses but the end result is the same, the private addresses will be marked as off limits to the processor and the RAM will still end up short of addresses in the lower 4GB memory arena. ... For example, the BIOS and system board will reserve and use a bit less than 1 megabyte of address space directly at the processor, when the processor needs to talk with the BIOS or motherboard it will do so directly by using their reserved addresses, the addresses reserved by and given to the system board cannot be used by the RAM. ... Windows 2000 Professional, Windows 2000 Server, Windows XP 32-bits and Vista 32-bits do not make full use of this /PAE feature, they are unable to use RAM addressed above the 4GB boundary. ...
    (microsoft.public.win2000.general)
  • Re: FlashROM as a disk in CE 5.0
    ... The flash is 64 MB starting at 92500000, ... RAM 83100000 $RAM ... Reserve ZBANK virtual block (No physical memory ... attribute memory space. ...
    (microsoft.public.windowsce.embedded)
  • Re: Windows 2000 Server StandardEdition /PAE Question
    ... Every bit of data comes in to the processor from a memory address and every bit leaving the processor goes to a memory address. ... The problem is that if the processor gave all the addresses to the RAM it would have none left for other things, anything and everything that needs to talk to the processor would have to do it through the RAM or the processor would have to dump RAM addresses to talk to other devices! ... For example, the BIOS and system board will reserve and use a bit less than 1 megabyte of address space directly at the processor, when the processor needs to talk with the BIOS or motherboard it will do so directly by using their reserved addresses, the addresses reserved by and given to the system board cannot be used by the RAM. ... Windows 2000 Professional, Windows 2000 Server, Windows XP 32-bits and Vista 32-bits do not make full use of this /PAE feature, they are unable to use RAM addressed above the 4GB boundary. ...
    (microsoft.public.win2000.general)
  • Re: FlashROM as a disk in CE 5.0
    ... Will try to build debug and look for messages related to flash. ... RAM 83100000 $RAM ... Reserve ZBANK virtual block (No physical memory ... attribute memory space. ...
    (microsoft.public.windowsce.embedded)