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

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

LucaCalligaris
Tue May 16 07:42:02 CDT 2006

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

Re: FlashROM as as a FAT-disk in CE 5.0? by Rolf

Rolf
Thu May 18 08:36:23 CDT 2006

Hi,

Thanks. Also found a file in the directory you pointed out with the
neccessary registry settings. This was really of help to me :-)

Rolf

"Luca Calligaris" <LucaCalligaris@discussions.microsoft.com> wrote in
message news:24CD1B5E-3E63-442A-AD4F-EB2BC30A01B7@microsoft.com...
> 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
>>
>>
>>