03.09.2015 Views

Marvell ARMADA 16x Applications Processor Family

7 Marvell ® ARMADA 16x Applications Processor Family ...

7 Marvell ® ARMADA 16x Applications Processor Family ...

SHOW MORE
SHOW LESS
  • 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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!