Eboot中InitPartitionMgr()分区格式化问题

zhanghui9191   2009-9-24 09:41 楼主
当进入Eboot后想格FLASH
在InitPartitionMgr()中

  1. BOOL InitPartitionMgr(void)
  2. {
  3.         PCI_REG_INFO RegInfo;        // No PCI here, just need registry structure...

  4.         memset(&RegInfo, 0, sizeof(PCI_REG_INFO));
  5.         RegInfo.MemBase.Num    = 1;
  6.         RegInfo.MemLen.Num     = 1;
  7.         RegInfo.MemBase.Reg[0] = FLASH_BIN_START;                // Flash base address.
  8.         RegInfo.MemLen.Reg[0]  = BOOT_FLASH_SIZE - (FLASH_BIN_START - FLASH_START);        // Total flash length.

  9.         if (!BP_Init((LPBYTE)BLOCK_SAVE_START, BLOCK_SAVE_LENGTH, NULL, &RegInfo, NULL))
  10.         {
  11.                 EdbgOutputDebugString("ERROR: InitPartitionMgr: failed to initialize partition manager.\r\n");
  12.                 return(FALSE);
  13.         }

  14.         return(TRUE);
  15. }

按上面的肯定会提示:ERROR: InitPartitionMgr: failed to initialize partition manager

我把它改成从物理地址0开始格,对应的虚拟地址是:FLASH_START,长度是BOOT_FLASH_SIZE
这时候能成功,不过把EBOOT及CFG的信息全格没了。
我只想格除EBOOT及CFG所在的其它空间?是哪里的问题呀?
各位英雄!

回复评论 (10)

MS的原始BP_Init里只调用了FMD_Init、FMD_GetInfo,然后就初始化内存地址。难道LZ是在FMD_Init里自己做的格式化?那就要看看flash驱动了。
点赞  2009-9-24 09:58
你直接到BP_Init这个函数里面去看看。。。。。
点赞  2009-9-24 09:58
当然没了有。只是这里初始化内存地址错误,初始化后才会调用其它的格式化函数!
英雄,哪里出了点问题呢?
我可以全部格,但不能只格一部分FLASH
点赞  2009-9-24 10:00
不说了。。。。。
点赞  2009-9-24 10:03
是FMD_Init()失败
为什么FMD_Init()整个FLASH的区域就可以,只初始化除EBOOT以外的分区就不行呢?
点赞  2009-9-24 10:05
你在取看看FMD_Init()这个函数干了什么。。。什么叫初始化eboot以外的分区啊。。你eboot要写NK,eboot以外的分区包括些什么呢。。。eboot还干别的事情。。。。FMD_Init()只是让nandflash能正常工作而已。。。。
点赞  2009-9-24 10:08
EBOOT所占的那部分内存空间我不想格。
我这里没有NANDFLASH。只有NORFLASH
点赞  2009-9-24 10:10
哦。。。你不是nand啊。。一般前一部分不想格式化那么就将这些部分都写上保护。。。我不知道nor怎么搞的。。你也可以添加个标志位来标记下
点赞  2009-9-24 10:16
BOOLEAN InitializeFlash(volatile PULONG pBaseAddress, ULONG FlashLength)
这是方返回FALSE
换成InitializeFlash(FLASH_START,LEN)可以
InitializeFlash(FLASH_BIN_START,LEN)就出错。!
两个地址分别是:FLASH_START 0xB8300000
FLASH_BIN_START 0xB8380000
为什么把EBOOT的地址加上去就出错?
点赞  2009-9-24 10:52
InitializeFlash这个函数贴出来
点赞  2009-9-24 17:14
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复