/*************************************************************************** * Copyright (c) 2010, Broadcom Corporation * All Rights Reserved * Confidential Property of Broadcom Corporation * * THIS SOFTWARE MAY ONLY BE USED SUBJECT TO AN EXECUTED SOFTWARE LICENSE * AGREEMENT BETWEEN THE USER AND BROADCOM. YOU HAVE NO RIGHT TO USE OR * EXPLOIT THIS MATERIAL EXCEPT SUBJECT TO THE TERMS OF SUCH AN AGREEMENT. * * $brcm_Workfile: $ * $brcm_Revision: $ * $brcm_Date: $ * * Module Description: ram executable image header * * Revision History: * * $brcm_Log: $q * * ***************************************************************************/ #if !defined(__RAMHEADER_H__) #define __RAMHEADER_H__ #define DTA_MAGIC 0x41544448 #define SCM_MAGIC 0x4c4d4353 #define FMAP_MAGIC 0x50414d46 #define BHDR_MAGIC 0x52444842 #define CHIP_ID 0x7574 #if !defined(__ASSEMBLY__) /* software image boot header */ typedef struct boot_header_t { unsigned long boot_order; /* updated by application before storing */ unsigned long chip_id; unsigned long bhdr_magic; unsigned long dummy; /* filler to align to 0x10 */ } boot_header_t; typedef struct application_info_header_t { unsigned long image_size; /* size of image, must be multiple of 0x40 */ unsigned long epoch; /* epoch number */ unsigned long chip_id; /* chip id to recognize image version */ unsigned long dta_magic; /* HDTA - 0x41544448 */ unsigned char version[64]; /* version string */ unsigned long dummy[12]; /* pad to 0x40 boundary */ } application_info_header_t; typedef struct scm_info_header_t { unsigned long image_size; /* size of the image */ unsigned long epoch; /* epoch */ unsigned long chip_id; /* chip id */ unsigned long scm_magic; /* SCML - 0x4c4d4353 */ unsigned long dummy[12]; /* pad to 0x40 boundary */ } scm_info_header_t; typedef struct flash_map_info_t { unsigned long fmap_magic; unsigned long image0_offset; unsigned long image1_offset; unsigned long settings_offset; unsigned long settings_size; } flash_map_info_t; #endif /* Flash map section (may be moved to separate file in the future) */ /* (FLASH_BOOTLOADER_SIZE+FLASH_DATA_SIZE/2) must be divisible by 0x10000 to fit on one erasable flash block (64K) */ #define FLASH_BASE 0xbec00000 #define FLASH_SIZE 0xC00000 #define FLASH_BOOTLOADER_START FLASH_BASE #define FLASH_BOOTLOADER_SIZE 0x30000 #define FLASH_APP0_START (FLASH_BOOTLOADER_START + FLASH_BOOTLOADER_SIZE) #define FLASH_APP0_SIZE ((FLASH_SIZE - (FLASH_BOOTLOADER_SIZE + FLASH_DATA_SIZE))/2) #define FLASH_APP1_START (FLASH_APP0_START + FLASH_APP0_SIZE) #define FLASH_APP1_SIZE FLASH_APP0_SIZE #define FLASH_DATA_START (FLASH_APP1_START + FLASH_APP1_SIZE) #define FLASH_DATA_SIZE 0x30000 #define FMAP_APP0_OFFSET FLASH_BOOTLOADER_SIZE #define FMAP_APP1_OFFSET (FMAP_APP0_OFFSET + FLASH_APP0_SIZE) #define FMAP_DATA_OFFSET (FMAP_APP1_OFFSET + FLASH_APP1_SIZE) #define FMAP_DATA_SIZE FLASH_DATA_SIZE #endif