今天实验了下multi-XIP功能,大致步骤如下:
1.修改config.bib
    RAM     82b00000  01400000  RAM
    ABC     82b00000  00100000 NANDIMAGE   ;起始地址与RAM重叠
     CHAIN  83f00000 00001000 RESERVED

    AUTOSIZE=ON
   RAM_AUTOSIZE=OFF
   ROM_AUTOSIZE=OFF
    COMPRESSION=ON
    KERNELFIXUPS=ON
    DLLADDR_AUTOSIZE=ON
   XIPSCHAIN=83f00000                     ;必须等于CHAIN

2.修改platform.bib,将需要的文件放到ABC中去
    PSConfig.psr                $(_FLATRELEASEDIR)/PSConfig.psr         ABC      S
    btagext.dll                $(_FLATRELEASEDIR)/btagext.dll           ABC      SH
   
这样,PSConfig.psr与btagext.dll就放到/binfs目录里面了。

3.修改注册表,加上
[HKEY_LOCAL_MACHINE/System/StorageManager/BinFS]
   "FriendlyName"="BIN Filesystem"
   "Dll"="binfs.dll"
   "Paging"=dword:1
必须加在   ; HIVE BOOT SECTION与; END HIVE BOOT SECTION之间.

在我的系统上,关于文件系统这一块的注册表设置为
; HIVE BOOT SECTION
[HKEY_LOCAL_MACHINE/init/BootVars]
   "SYSTEMHIVE"="system.hv"
    "Start DevMgr"=dword:1
   "RegistryFlags"=dword:1

[HKEY_LOCAL_MACHINE/init/BootVars]
   "DefaultUser"="default"

[HKEY_LOCAL_MACHINE/Drivers/BlockDevice/SMFLASH]
  "Prefix"="DSK"
  "Dll"="smflash.dll"
  "Order"=dword:0
  "Ioctl"=dword:4
  "Profile"="SMFLASH"
  "FriendlyName"="MS Flash Driver"
  "MountFlags"=dword:10
  "BootPhase"=dword:0
  "Flags"=dword:1000

[HKEY_LOCAL_MACHINE/System/StorageManager/AutoLoad/SMFLASH]
  "DriverPath"="Drivers//BlockDevice//SMFLASH"
  "LoadFlags"=dword:1
  "MountFlags"=dword:11
  "BootPhase"=dword:1
  "Flags"=dword:1000

[HKEY_LOCAL_MACHINE/System/StorageManager/Profiles/SMFLASH]
  "DefaultFileSystem"="BINFS"
  "PartitionDriver"="mspart.dll"
  "AutoMount"=dword:1
  "AutoPart"=dword:1
  "AutoFormat"=dword:1
  "Folder"="ResidentFlash"
  "Name"="Microsoft Flash Disk"
  "BootPhase"=dword:0
  "Flags"=dword:1000

[HKEY_LOCAL_MACHINE/System/StorageManager/Profiles/SMFLASH/FATFS]
  "FriendlyName"="FAT FileSystem"
  "Dll"="fatfsd.dll"
  "Flags"=dword:00280014
  "Paging"=dword:1
  "CacheSize"=dword:0
  "EnableCacheWarm"=dword:0
  "EnableCache"=dword:1
  "MountFlags"=dword:2

[HKEY_LOCAL_MACHINE/System/StorageManager/BinFS]
   "FriendlyName"="BIN Filesystem"
   "Dll"="binfs.dll"
   "Paging"=dword:1


; END HIVE BOOT SECTION


4.加入Hive-based Registry,BINFS,FATFS,STORE MANAGER.我就因为忘记加BINFS而导制CPartition::MountPartition()->LoadDriver()出错.

 

5.sysgen

6.下载xip.bin.