zhuxiaofeng
驱动小牛
驱动小牛
  • 注册日期2007-04-06
  • 最后登录2010-04-15
  • 粉丝0
  • 关注0
  • 积分1013分
  • 威望243点
  • 贡献值0点
  • 好评度202点
  • 原创分0分
  • 专家分0分
阅读:1538回复:2

有关Nand Boot 的问题

楼主#
更多 发布于:2007-12-17 20:44
2K大页面的NAND FLASH。
 
目前用工具将NK和boot都烧到NAND里面,
如果不加Nand flash驱动的话,NK可以正常从NAND启动。
但是加了NAND 驱动之后,驱动会把NAND Flash给全部格式话掉(包括放NK和eboot的部分)。
这一部分我是设置成reserved的了。怎么会格式化掉了哪?
不知道是不是注册表设置的问题?
本人注册表设置如下:
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\MSFlash]
        "Profile"="FlashDisk"
        "IClass"=multi_sz:"{A4E7EDDA-E575-4252-9D6B-4195D48BB865}"
        "Order"=dword:0
        ;"FriendlyName"="MSFLASH Driver"
        "Dll"="smflash.dll"
        "Prefix"="DSK"
      "FriendlyName"="WB910_NANDFLASH"
        "BmlVolumeId"=dword:0
        "BmlPartitionId"=dword:8
        "Index"=dword:7

[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\FlashDisk]
    "Name"="WB910NAND "
    "Folder"="NANDFLASH"  
    "DefaultFileSystem"="FATFS"
    "AutoMount"=dword:1  
    "AutoPart"=dword:1
    "AutoFormat"=dword:1
    "PartitionDriver"="mspart.dll"
    "Ioctl"=dword:4
    "BootPhase"=dword:0

[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\FlashDisk\FATFS]
    "Flags"=dword:00000024        
    "Dll"="fatfsd.dll"
    "Paging"=dword:1
    "EnableCacheWarm"=dword:0
    "CacheSize"=dword:0
    ;"MountAsBootable"=dword:1    ;;have changed. add
    ;"MountAsRoot"=dword:1

[HKEY_LOCAL_MACHINE\System\StorageManager\AutoLoad\MSFlash]
    "DriverPath"="Drivers\\BuiltIn\\MSFlash"
    ; LoadFlags 0x01 == load synchronously
    "LoadFlags"=dword:1
    "Order"=dword:0
    "BootPhase"=dword:0

512小页面的NAND FLASH可以正常启动。启动也不会格式化掉nk和boot这一部分。
不知道到底咋回事。
还请高手指教。。谢谢。
做一个出色的程序员!
microsun
论坛版主
论坛版主
  • 注册日期2002-11-11
  • 最后登录2014-07-18
  • 粉丝0
  • 关注0
  • 积分1052分
  • 威望1159点
  • 贡献值0点
  • 好评度848点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2007-12-17 21:25
应该是分区做的不对吧,既然512BYTE的没有问题,说明你的程序对2048BYTE的分区做的不对,

其实,你把OS放在NAND的头上,把余下的部分做NAND存储就行,就容易做了.
学海无涯
zhuxiaofeng
驱动小牛
驱动小牛
  • 注册日期2007-04-06
  • 最后登录2010-04-15
  • 粉丝0
  • 关注0
  • 积分1013分
  • 威望243点
  • 贡献值0点
  • 好评度202点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2007-12-18 09:15
引用第1楼microsun于2007-12-17 21:25发表的  :
应该是分区做的不对吧,既然512BYTE的没有问题,说明你的程序对2048BYTE的分区做的不对,

其实,你把OS放在NAND的头上,把余下的部分做NAND存储就行,就容易做了.



我就是这样做的。把boot和Nk放在NAND Flash的开头的部分,
然后在boot里面调用BP_OpenPartition()先分一个存储NK的binfs分区。
再将剩下的分成FAT分区的。

现在的问题是:

加载上OS之后,2K大页面的不认识我后面的分区,会把NAND的分区。会整个格式化NAND.
NK和boot部分也会被格式化掉。
做一个出色的程序员!
游客

返回顶部