Hi,



I am trying to build and download an image into NAND flash with BINFS on my
platform. The built OS image is about 19MB in size. However I would like to
extend the region size for the NK.bin with AUTOSIZE_ROMGAP to about 32MB, so
that I can expand this XIP region in the future without affecting other
regions/partitions in my NAND flash memory. I have set ' AUTOSIZE_ROMGAP
NK D34508 ' and ' ROM_AUTOSIZE=ON '. However the NK.bin built is still
19MB only, instead of 32MB. Does anyone know what the problem might be and
how to resolve it? Below are the config.bib settings used:



=======================================================================

MEMORY



#define CHAIN_ADDRESS 82000000
CHAIN $(CHAIN_ADDRESS) 00001000 RESERVED
pdwXIPLoc 00000000 $(CHAIN_ADDRESS) FIXUPVAR



NK 80001000 01FFF000 RAMIMAGE
CHAIN 82000000 00001000 RESERVED


IF IMGNOKITL
RAM 82001000 01FFF000 RAM
ELSE
RAM 82001000 01FDF000 RAM
KITL 83FE0000 0001F800 RESERVED
BOOTARGS 83FFF800 00000800 RESERVED
ENDIF
FLASH 9E000000 01C00000 RESERVED



CONFIG
COMPRESSION=ON
KERNELFIXUPS=ON


; Multi-Region
;
AUTOSIZE=ON ; AUTOSIZE is used to enable the following flags.
RAM_AUTOSIZE=ON

ROM_AUTOSIZE=ON

DLLADDR_AUTOSIZE=ON



XIPSCHAIN=$(CHAIN_ADDRESS)

AUTOSIZE_ROMGAP NK D34508
AUTOSIZE_DLLADDRGAP=0
AUTOSIZE_DLLDATAADDRGAP=0
AUTOSIZE_DLLCODEADDRGAP=0






IF IMGPROFILER
PROFILE=ON
ELSE
PROFILE=OFF
ENDIF



IF IMGSRE
SRE=ON
ELSE
SRE=OFF
ENDIF



;
; ROMFLAGS is a bitmask of options for the kernel
; ROMFLAGS 0x0001 Disallow Paging
; ROMFLAGS 0x0002 Not all KMode
; ROMFLAGS 0x0010 Trust Module only
;
IF IMGTRUSTROMONLY
IF IMGNOTALLKMODE
ROMFLAGS=12
ELSE
ROMFLAGS=10
ENDIF
ELSE
IF IMGNOTALLKMODE
ROMFLAGS=02
ELSE
ROMFLAGS=00
ENDIF
ENDIF


----------------------------------------------------------------------------
-------------------------------------------


The build output is as follows:





8100effc 4 80b37ffc 4 80967ffc 4 81059ffc
4
80658ffc 4 800c6ffc 4 804e1ffc 4 80530ffc
4
80213ffc 4 80d9effc 4 81061ffc 4
total space 97012 in 87 ranges
Warning: FixupVar pdwXIPLoc not found in kernel. Variable not fixed up.
Writing C:\WINCE420\PUBLIC\MSDBAu1500\RelDir\AMD_DB~2\NK.bin
Table of contents 812c93e8 00001688 ( 5768)
Writing ROM signature and TOC pointer at 80001040
Kernel data copy section 804e2ec4 00000020 ( 32)
ROM Header 812c9394 00000054 ( 84)
First DLL code Address: 02c90000
Last DLL code Address: 04000000
First DLL Address: 01ed01f3
Last DLL Address: 02000000
Physical Start Address: 80001000
Physical End Address: 812caa70
Start RAM: 82000000
Start of free RAM: 82049000
End of RAM: 83fdf000
Number of Modules: 105
Number of Copy Sections: 2
Copy Section Offset: 804e2ec4
Kernel Flags: 00000002
FileSys 4K Chunks/Mbyte: 128 <2Mbyte 128 2-4Mbyte 0 4-6Mbyte 0 >6Mbyte
CPU Type: 0166h
Extensions Pointer: 80005370
Total ROM size: 012c9a70 ( 19700336)
Starting ip: 80001004
Raw files size: 002d6327
Compressed files size: 001707b7
Compacting bin file...
Combining bin files...
Compacting bin file...
Done!
Failed calling bin2xip.exe
C:\WINCE420\PUBLIC\MSDBAu1500\RelDir\AMD_DB~2\chain.bin
C:\WINCE420\PUBLIC\MSDBAu1500\RelDir\AMD_DB~2\privkey.dat
makeimg: Check for
C:\WINCE420\PUBLIC\MSDBAu1500\RelDir\AMD_DB~2\PostRomImage.bat to run.
makeimg: Check for
C:\WINCE420\PUBLIC\MSDBAu1500\RelDir\AMD_DB~2\PostMakeImg.bat to run.




After the built, I can see the NK.bin(19,138MB), chain.bin(1KB),
XIP.bin(19,139MB), and chain.lst in the _FLATRELEASEDIR .
Is the following warning messages the cause of my problem? Does anyone know
why I am getting this messages and how to resolve it?? Thanks in advance!

>> Warning: FixupVar pdwXIPLoc not found in kernel. Variable not fixed up.
>> Failed calling bin2xip.exe
C:\WINCE420\PUBLIC\MSDBAu1500\RelDir\AMD_DB~2\chain.bin
C:\WINCE420\PUBLIC\MSDBAu1500\RelDir\AMD_DB~2\privkey.dat


Paul W

RE: MultiXIP and AUTOSIZE_ROMGAP problem by damonac

damonac
Fri Oct 17 15:43:57 CDT 2003

-The problem is that a .bin file only contains descriptions for data used
in the image, any unused space is not contained in the file.
-The autosize romgap only starts the next section that far from the last
when first building an image, this will allow the first region to grow when
updated builds are made.
-Then you only have one region so that's why you don't see any effect of
the autosize_romgap, it would be seen in the start of the second region.
-This looks like you are building a multixip image with just one region.
This is no different than just building a single region image. And even
then, when building a multixip image you should turn off autosize before
building the "final" release versions of the image.

Damon
DamonAc@nospam.microsoft.com

--------------------
| From: "Paul W." <mwt@triwe.net>
| Subject: MultiXIP and AUTOSIZE_ROMGAP problem
| Date: Thu, 31 Jul 2003 15:34:27 +1200
| Lines: 178
| X-Priority: 3
| X-MSMail-Priority: Normal
| X-Newsreader: Microsoft Outlook Express 6.00.2800.1106
| X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1106
| Message-ID: <#GsaESxVDHA.1816@TK2MSFTNGP09.phx.gbl>
| Newsgroups: microsoft.public.windowsce.platbuilder
| NNTP-Posting-Host: penrose1-61.waverider.maxnet.co.nz 202.89.37.61
| Path: cpmsftngxa06.phx.gbl!TK2MSFTNGP08.phx.gbl!TK2MSFTNGP09.phx.gbl
| Xref: cpmsftngxa06.phx.gbl microsoft.public.windowsce.platbuilder:36946
| X-Tomcat-NG: microsoft.public.windowsce.platbuilder
|
| Hi,
|
|
|
| I am trying to build and download an image into NAND flash with BINFS on
my
| platform. The built OS image is about 19MB in size. However I would like
to
| extend the region size for the NK.bin with AUTOSIZE_ROMGAP to about 32MB,
so
| that I can expand this XIP region in the future without affecting other
| regions/partitions in my NAND flash memory. I have set '
AUTOSIZE_ROMGAP
| NK D34508 ' and ' ROM_AUTOSIZE=ON '. However the NK.bin built is still
| 19MB only, instead of 32MB. Does anyone know what the problem might be
and
| how to resolve it? Below are the config.bib settings used:
|
|
|
| =======================================================================
|
| MEMORY
|
|
|
| #define CHAIN_ADDRESS 82000000
| CHAIN $(CHAIN_ADDRESS) 00001000 RESERVED
| pdwXIPLoc 00000000 $(CHAIN_ADDRESS) FIXUPVAR
|
|
|
| NK 80001000 01FFF000 RAMIMAGE
| CHAIN 82000000 00001000 RESERVED
|
|
| IF IMGNOKITL
| RAM 82001000 01FFF000 RAM
| ELSE
| RAM 82001000 01FDF000 RAM
| KITL 83FE0000 0001F800 RESERVED
| BOOTARGS 83FFF800 00000800 RESERVED
| ENDIF
| FLASH 9E000000 01C00000 RESERVED
|
|
|
| CONFIG
| COMPRESSION=ON
| KERNELFIXUPS=ON
|
|
| ; Multi-Region
| ;
| AUTOSIZE=ON ; AUTOSIZE is used to enable the following flags.
| RAM_AUTOSIZE=ON
|
| ROM_AUTOSIZE=ON
|
| DLLADDR_AUTOSIZE=ON
|
|
|
| XIPSCHAIN=$(CHAIN_ADDRESS)
|
| AUTOSIZE_ROMGAP NK D34508
| AUTOSIZE_DLLADDRGAP=0
| AUTOSIZE_DLLDATAADDRGAP=0
| AUTOSIZE_DLLCODEADDRGAP=0
|
|
|
|
|
|
| IF IMGPROFILER
| PROFILE=ON
| ELSE
| PROFILE=OFF
| ENDIF
|
|
|
| IF IMGSRE
| SRE=ON
| ELSE
| SRE=OFF
| ENDIF
|
|
|
| ;
| ; ROMFLAGS is a bitmask of options for the kernel
| ; ROMFLAGS 0x0001 Disallow Paging
| ; ROMFLAGS 0x0002 Not all KMode
| ; ROMFLAGS 0x0010 Trust Module only
| ;
| IF IMGTRUSTROMONLY
| IF IMGNOTALLKMODE
| ROMFLAGS=12
| ELSE
| ROMFLAGS=10
| ENDIF
| ELSE
| IF IMGNOTALLKMODE
| ROMFLAGS=02
| ELSE
| ROMFLAGS=00
| ENDIF
| ENDIF
|
|
|
----------------------------------------------------------------------------
| -------------------------------------------
|
|
| The build output is as follows:
|
|
|
|
|
| 8100effc 4 80b37ffc 4 80967ffc 4 81059ffc
| 4
| 80658ffc 4 800c6ffc 4 804e1ffc 4 80530ffc
| 4
| 80213ffc 4 80d9effc 4 81061ffc 4
| total space 97012 in 87 ranges
| Warning: FixupVar pdwXIPLoc not found in kernel. Variable not fixed up.
| Writing C:\WINCE420\PUBLIC\MSDBAu1500\RelDir\AMD_DB~2\NK.bin
| Table of contents 812c93e8 00001688 ( 5768)
| Writing ROM signature and TOC pointer at 80001040
| Kernel data copy section 804e2ec4 00000020 ( 32)
| ROM Header 812c9394 00000054 ( 84)
| First DLL code Address: 02c90000
| Last DLL code Address: 04000000
| First DLL Address: 01ed01f3
| Last DLL Address: 02000000
| Physical Start Address: 80001000
| Physical End Address: 812caa70
| Start RAM: 82000000
| Start of free RAM: 82049000
| End of RAM: 83fdf000
| Number of Modules: 105
| Number of Copy Sections: 2
| Copy Section Offset: 804e2ec4
| Kernel Flags: 00000002
| FileSys 4K Chunks/Mbyte: 128 <2Mbyte 128 2-4Mbyte 0 4-6Mbyte 0 >6Mbyte
| CPU Type: 0166h
| Extensions Pointer: 80005370
| Total ROM size: 012c9a70 ( 19700336)
| Starting ip: 80001004
| Raw files size: 002d6327
| Compressed files size: 001707b7
| Compacting bin file...
| Combining bin files...
| Compacting bin file...
| Done!
| Failed calling bin2xip.exe
| C:\WINCE420\PUBLIC\MSDBAu1500\RelDir\AMD_DB~2\chain.bin
| C:\WINCE420\PUBLIC\MSDBAu1500\RelDir\AMD_DB~2\privkey.dat
| makeimg: Check for
| C:\WINCE420\PUBLIC\MSDBAu1500\RelDir\AMD_DB~2\PostRomImage.bat to run.
| makeimg: Check for
| C:\WINCE420\PUBLIC\MSDBAu1500\RelDir\AMD_DB~2\PostMakeImg.bat to run.
|
|
|
|
| After the built, I can see the NK.bin(19,138MB), chain.bin(1KB),
| XIP.bin(19,139MB), and chain.lst in the _FLATRELEASEDIR .
| Is the following warning messages the cause of my problem? Does anyone
know
| why I am getting this messages and how to resolve it?? Thanks in advance!
|
| >> Warning: FixupVar pdwXIPLoc not found in kernel. Variable not fixed
up.
| >> Failed calling bin2xip.exe
| C:\WINCE420\PUBLIC\MSDBAu1500\RelDir\AMD_DB~2\chain.bin
| C:\WINCE420\PUBLIC\MSDBAu1500\RelDir\AMD_DB~2\privkey.dat
|
|
| Paul W
|
|
|