WINCE6.0+S3C2451基于FMD flash架构的BSP移植记录---系统无法完全启动
系统停在下面的串口信息处:
Microsoft Windows CE Ethernet BootloaderCommon Library Version 1.1 Built Apr 22 2014 09:28:49
+OEMPlatformInit() C5000 4444444.
Microsoft Windows CE Bootloader for theSamsung SMDK2450 Version 2.4 Built Apr 22 2014
+OALArgsInit()
Arguments area is initialized
-OALArgsInit()
InitDisplay()
InitLDI_LcdHardware() LcdValue=0X95
eboot--->TDA-InitLDI_I80_HX8347I_TDA_QVGA0320A60411()
HX8347-I_DS(T)--TDA-A60411 read id success
InitLDI_LcdHardware()pBSPArgs->dwLcdType=0X4
BP_Init
#### FMD_DRIVER:::FMD_INIT
(NAND ID:0xecd3) --> OK.
NUM_OF_BLOCKS = 8192
PAGES_PER_BLOCK = 64
SECTORS_PER_PAGE = 4
NUMBLOCKS : 8192(0x2000), SECTORSPERBLOCK =64(0x40), BYTESPERSECTOR = 2048(0x800)
NUMBLOCKS : 8192(0x2000), SECTORSPERBLOCK =64(0x40), BYTESPERSECTOR = 2048(0x800)
wNUM_BLOCKS : 8192(0x2000)
Press [ENTER] to launch image stored onboot media, or [SPACE] to enter boot monitor.
Initiating image launch in 0 seconds.
Launching image from boot media ...
OEMPlatformInit: IMAGE_TYPE_RAMIMAGE
+OEMVerifyMemorydwStartAddr=0x80200000,dwLength=0x4.
RAM image
+OEMVerifyMemorydwStartAddr=0x8022b788,dwLength=0x4.
RAM image
IsValidMBR: MBR sector = 0x180 (valid MBR)
OpenPartition: Partition Exists=0x1 forpart 0x21.
BP_SetDataPointer at 0x0
ReadData: Start = 0x0, Length = 0x1cde800.
Log2Phys: Logical 0x1c0 -> Physical0x340
System ready!
Preparing for download... aa 0 a
INFO: *** Device Name 'SMDK24500' ***
INFO: Using static IP address 0000.
INFO: Using subnet mask 2525250.
INFO: using TOC[1] dwJumpAddress:0x8022b788
INFO: OEMLaunch: Jumping to PhysicalAddress 0x3022B788h (Virtual Address 0x8022B788h)...
Windows CE Kernel for ARM (Thumb Enabled)Built on Oct 20 2009 at 18:39:19
INFO:OALLogSetZones:dpCurSettings.ulZoneMask: 0xb
DCache: 128 sets, 4 ways, 32 line size,16384 size
ICache: 128 sets, 4 ways, 32 line size,16384 size
FCLK:400000000, HCLK:133333333,PCLK:66666666
+OALArgsInit()
Arguments area has some values
-OALArgsInit()
-OEMInit
FMD_OEMIoControl: IOCTL_FMD_GET_INTERFACE
#### FMD_DRIVER:::FMD_INIT
(NAND ID:0xecd3) --> OK.
NUM_OF_BLOCKS = 8192
PAGES_PER_BLOCK = 64
SECTORS_PER_PAGE = 4
NUMBLOCKS : 8192(0x2000), SECTORSPERBLOCK =64(0x40), BYTESPERSECTOR = 2048(0x800)
#### SECC1 Uncorrectable error(0x11a80)####
#### NAND_LB_ReadSectorInfoECC_Correct_Spare1 Error
#### SECC1 Uncorrectable error(0x4c9c0)####
#### NAND_LB_ReadSectorInfo ECC_Correct_Spare1Error
#### SECC1 Uncorrectable error(0x4ebc0)####
#### NAND_LB_ReadSectorInfoECC_Correct_Spare1 Error
#### SECC1 Uncorrectable error(0x65f00)####
#### NAND_LB_ReadSectorInfoECC_Correct_Spare1 Error
#### SECC1 Uncorrectable error(0x6bdc0)####
#### NAND_LB_ReadSectorInfoECC_Correct_Spare1 Error
#### SECC1 Uncorrectable error(0x11a80)####
#### NAND_LB_ReadSectorInfoECC_Correct_Spare1 Error
#### SECC1 Uncorrectable error(0x4c9c0)####
#### NAND_LB_ReadSectorInfoECC_Correct_Spare1 Error
#### SECC1 Uncorrectable error(0x4ebc0)####
#### NAND_LB_ReadSectorInfoECC_Correct_Spare1 Error
#### SECC1 Uncorrectable error(0x65f00)####
#### NAND_LB_ReadSectorInfoECC_Correct_Spare1 Error
#### SECC1 Uncorrectable error(0x6bdc0)####
#### NAND_LB_ReadSectorInfoECC_Correct_Spare1 Error
FMD_OEMIoControl: unrecognized IOCTL(0x71c24).
相关的注册表信息如下:
; HIVE BOOT SECTION
[HKEY_LOCAL_MACHINE\Drivers\Resources\IRQ]
"Identifier"=dword:1
"Minimum"=dword:1
"Space"=dword:20
"Ranges"="1-0x20"
; "Shared"=""
[HKEY_LOCAL_MACHINE\Drivers\Resources\IO]
"Identifier"=dword:2
"Minimum"=dword:0
"Space"=dword:10000
"Ranges"="0-0xFFFF"
IF IMGHIVEREG
[HKEY_LOCAL_MACHINE\Init\BootVars]
"Flags"=dword:3
;"RegistryFlags"=dword:1
ENDIF ;IMGHIVEREG
; END HIVE BOOT SECTION
;---- NAND Flash Driver---------------------------------------------------------
IF BSP_NONANDFS !
; HIVE BOOT SECTION
[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\SMFLASH]
"DefaultFileSystem"="BINFS"
"PartitionDriver"="mspart.dll"
"MountHidden"=dword:1
"MountAsROM"=dword:1
"Folder"="ResidentFlash"
"Name"="Microsoft Flash Disk"
;added hive
;"AutoMount"=dword:1;ok
;"AutoPart"=dword:1;ok
"MountAsBootable"=dword:1;bad
;"BootPhase"=dword:0 ;ok
;"Flags"=dword:1000;ok
; Keep FATFS from trying to shadow \Windows
[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\SMFLASH\FATFS]
"MountHidden"=dword:0
"MountAsROM"=dword:0
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\SMFLASH]
"Prefix"="DSK"
"Dll"="smflash.dll"
"Index"=dword:1
"Order"=dword:0
"Profile"="SMFLASH"
"IClass"="{A4E7EDDA-E575-4252-9D6B-4195D48BB865}"
IF IMGHIVEREG
;"Flags"=dword:1000
ENDIF ;IMGHIVEREG
[HKEY_LOCAL_MACHINE\System\StorageManager\FATFS]
"Flags"=dword:00000014 ;FATFS_TFAT_ALWAYS|FATFS_FORCE_TFAT
[HKEY_LOCAL_MACHINE\System\StorageManager\AutoLoad\SMFLASH]
"DriverPath"="Drivers\\BuiltIn\\SMFLASH"
"LoadFlags"=dword:1
"BootPhase"=dword:0
; END HIVE BOOT SECTION
ENDIF ; BSP_NONANDFS
只需要在[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\SMFLASH]注册表项下面增加"MountAsBootable"=dword:1这一项即可,下面是msdn帮助文档给出此项的解释:
MountAsBootable" |
Specifies that the file system may contain the system registry. The first mounted partition on the store gets the hive. Set to 1 to enable. Replaces "MountFlags"=dword:2 |