|
最近在分析freescal 的I.Mx27的eboot的code,有个问题请请教大侠:
我在分析 函数 ReadKernelRegionFromNand()的时候在这句上想不通了
// Read kernel region info from parameters
if(BP_ReadData(hPart, (LPBYTE)&nandParams, sizeof(EBOOT_NANDCFG)))
{
if(nandParams.ConfigMagicNumber != EbootCFGMagicNumber)
{
EdbgOutputDebugString("ERROR: invalid BOOTSECTION data!\r\n");
return FALSE;
}
}
参数1 hPart是的到的MBR中分区表项的入口,
参数2 是一个结构,其内容如下
typedef struct {
DWORD ConfigMagicNumber;
DWORD dwLaunchAddr;
DWORD dwRegionStart;
DWORD dwRegionLength;
DWORD dwImageOffset;
DWORD dwChainStart;
DWORD dwChainLength;
DWORD dwChainOffset;
} EBOOT_NANDCFG;
现在就产生问题了:1)一个分区表项的大小是16个字节,而这里的nandParams是32个字节,这里为什么会一次从分区表项里读32个字节,难道是要读2个分区表项的内容?
2)搞不清楚,结构EBOOT_NANDCFG里每个成员的含义,不知道这些个成员与分区表项里的有什么关系?
|
|