Marvell ARMADA 16x Applications Processor Family
7 Marvell ® ARMADA 16x Applications Processor Family ...
7 Marvell ® ARMADA 16x Applications Processor Family ...
- No tags were found...
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
<strong>Marvell</strong> ® <strong>ARMADA</strong> <strong>16x</strong> <strong>Applications</strong> <strong>Processor</strong> <strong>Family</strong><br />
Version 3.2.x Boot ROM Reference Manual<br />
3.1 Image Module Format<br />
Table 5:<br />
The Image Module format for the boot operation consists of the structures described in this section.<br />
Table 5 provides information on required fields and optional fields for NTIM headers. The constant<br />
part of the Image Module (CTIM struct) is defined below. This structure is used to calculate<br />
dynamically the size of the NTIM. The structures IMAGE_INFO (or IMAGE_INFO_3_1_0 for NTIM<br />
v3.1), and KEY_MOD are stored as arrays of structures. The size of the array is specified by the<br />
NumImages and NumKeys variables, respectively, in the constant part of the NTIM. The<br />
SizeOfReserved variable is used to specify the number of reserved bytes stored in the NTIM header<br />
for optional parameters.<br />
typedef struct{<br />
{ VERSION_I VersionBind;<br />
FLASH_I FlashInfo;<br />
unsigned int NumImages;<br />
unsigned int NumKeys;<br />
unsigned int SizeOfReserved;<br />
}CTIM, *pCTIM;<br />
}CTIM, *pCTIM;<br />
Non-Trusted Image Module Structures<br />
Structure Field NTIM<br />
VERSION INFORMATION<br />
Version<br />
Identifier<br />
Trusted<br />
IssueDate<br />
OEMUniqueID<br />
Y<br />
Y<br />
Y<br />
Y<br />
O<br />
FLASH INFORMATION<br />
IMAGE MODULE SIZING INFORMATION<br />
IMAGE INFORMATION ARRAY IMAGE[NumImages]<br />
OEM RESERVED AREA[SizeOfReserved]<br />
Reserved[5]<br />
BootFlashSign<br />
NumImages<br />
SizeOfReserved<br />
ImageID<br />
NextImage<br />
FlashEntryAddr<br />
LoadAddr<br />
ImageSize<br />
Partition Number<br />
Based on the information in the CTIM structure, the NTIM can be sized using the following<br />
calculation:<br />
• Size of NTIM = sizeof(CTIM) + (NumImages * sizeof(IMAGE_INFO)) + (NumKeys *<br />
sizeof(KEY_MOD)) + SizeOfReserved<br />
Optionally, a master structure such as the NTIM structure below could be used to set pointers to the<br />
start of each section of the NTIM. The SetTIMPointers() below show C code examples. The<br />
SetTIMPointers() check the version of the NTIM to determine which Image information structure to<br />
use. Two versions of the NTIM header are currently supported: version 3.1.x (0x00030100) and<br />
version 3.2.x (0x00030200). The version identifier determines features supported in the header.<br />
typedef struct<br />
{<br />
pCTIM pConsTIM; // Constant part<br />
pIMAGE_INFO pImg; // Pointer to Images<br />
R<br />
Y<br />
Y<br />
O<br />
Y<br />
Y<br />
Y<br />
Y<br />
Y<br />
Y<br />
O<br />
1<br />
2<br />
3<br />
4<br />
5<br />
6<br />
7<br />
8<br />
9<br />
10<br />
11<br />
12<br />
13<br />
14<br />
15<br />
16<br />
17<br />
18<br />
19<br />
20<br />
21<br />
22<br />
23<br />
24<br />
25<br />
26<br />
27<br />
28<br />
29<br />
30<br />
31<br />
32<br />
33<br />
34<br />
35<br />
36<br />
37<br />
38<br />
39<br />
40<br />
41<br />
42<br />
43<br />
44<br />
45<br />
46<br />
47<br />
48<br />
49<br />
50<br />
51<br />
52<br />
53<br />
54<br />
55<br />
56<br />
57<br />
58<br />
Doc. No. MV-S301208-00 Rev. - Copyright © 11/15/10 <strong>Marvell</strong><br />
Page 20<br />
November 2010 PUBLIC RELEASE