1*91f16700Schasinglulu /* 2*91f16700Schasinglulu * Copyright (C) 2018 Marvell International Ltd. 3*91f16700Schasinglulu * 4*91f16700Schasinglulu * SPDX-License-Identifier: BSD-3-Clause 5*91f16700Schasinglulu * https://spdx.org/licenses 6*91f16700Schasinglulu */ 7*91f16700Schasinglulu 8*91f16700Schasinglulu #ifndef MSS_SCP_BL2_FORMAT_H 9*91f16700Schasinglulu #define MSS_SCP_BL2_FORMAT_H 10*91f16700Schasinglulu 11*91f16700Schasinglulu #define MAX_NR_OF_FILES 8 12*91f16700Schasinglulu #define FILE_MAGIC 0xddd01ff 13*91f16700Schasinglulu #define HEADER_VERSION 0x1 14*91f16700Schasinglulu 15*91f16700Schasinglulu #define MSS_IDRAM_SIZE 0x10000 /* 64KB */ 16*91f16700Schasinglulu #define MSS_SRAM_SIZE 0x8000 /* 32KB */ 17*91f16700Schasinglulu 18*91f16700Schasinglulu /* Types definitions */ 19*91f16700Schasinglulu typedef struct file_header { 20*91f16700Schasinglulu /* Magic specific for concatenated file (used for validation) */ 21*91f16700Schasinglulu uint32_t magic; 22*91f16700Schasinglulu uint32_t nr_of_imgs; /* Number of images concatenated */ 23*91f16700Schasinglulu } file_header_t; 24*91f16700Schasinglulu 25*91f16700Schasinglulu /* Types definitions */ 26*91f16700Schasinglulu enum cm3_t { 27*91f16700Schasinglulu MSS_AP, 28*91f16700Schasinglulu MSS_CP0, 29*91f16700Schasinglulu MSS_CP1, 30*91f16700Schasinglulu MSS_CP2, 31*91f16700Schasinglulu MSS_CP3, 32*91f16700Schasinglulu MG_CP0, 33*91f16700Schasinglulu MG_CP1, 34*91f16700Schasinglulu MG_CP2, 35*91f16700Schasinglulu }; 36*91f16700Schasinglulu 37*91f16700Schasinglulu typedef struct img_header { 38*91f16700Schasinglulu uint32_t type; /* CM3 type, can be one of cm3_t */ 39*91f16700Schasinglulu uint32_t length; /* Image length */ 40*91f16700Schasinglulu uint32_t version; /* For sanity checks and future 41*91f16700Schasinglulu * extended functionality 42*91f16700Schasinglulu */ 43*91f16700Schasinglulu } img_header_t; 44*91f16700Schasinglulu 45*91f16700Schasinglulu #endif /* MSS_SCP_BL2_FORMAT_H */ 46