aboutsummaryrefslogtreecommitdiff
path: root/rmi4update/firmware_image.h
diff options
context:
space:
mode:
Diffstat (limited to 'rmi4update/firmware_image.h')
-rwxr-xr-xrmi4update/firmware_image.h45
1 files changed, 40 insertions, 5 deletions
diff --git a/rmi4update/firmware_image.h b/rmi4update/firmware_image.h
index 3ce1c59..3558b07 100755
--- a/rmi4update/firmware_image.h
+++ b/rmi4update/firmware_image.h
@@ -45,16 +45,16 @@
// Leon add for BL_V7
#define RMI_IMG_V10_CNTR_ADDR_OFFSET 0x0C
+#define RMI_IMG_V10_SIGNATURE_VERSION_NUMBER 0x11
+#define RMI_IMG_V10_SIGNATURE_LENGTH_OFFSET 0x8
+#define RMI_IMG_V10_SIGNATURE_LENGTH_SIZE 4
struct container_descriptor {
unsigned char content_checksum[4];
unsigned char container_id[2];
unsigned char minor_version;
unsigned char major_version;
- unsigned char reserved_08;
- unsigned char reserved_09;
- unsigned char reserved_0a;
- unsigned char reserved_0b;
+ unsigned char signature_size[4];
unsigned char container_option_flags[4];
unsigned char content_options_length[4];
unsigned char content_options_address[4];
@@ -87,6 +87,22 @@ enum container_id {
EXTERNAL_TOUCH_AFE_CONFIG_CONTAINER,
UTILITY_CONTAINER,
UTILITY_PARAMETER_CONTAINER,
+ // Reserved : 24 ~ 26
+ // V10 above
+ FIXED_LOCATION_DATA_CONTAINER = 27,
+};
+
+enum signature_BLv7 {
+ BLv7_CORE_CODE = 0,
+ BLv7_CORE_CONFIG,
+ BLv7_FLASH_CONFIG,
+ BLv7_FLD,
+ BLv7_MAX
+};
+
+struct signature_info {
+ bool bExisted;
+ unsigned short size;
};
// BL_V7 end
@@ -94,7 +110,8 @@ class FirmwareImage
{
public:
FirmwareImage() : m_firmwareBuildID(0), m_packageID(0), m_firmwareData(NULL), m_configData(NULL), m_lockdownData(NULL),
- m_memBlock(NULL)
+ m_memBlock(NULL), m_hasSignature(false), m_fldData(NULL), m_fldSize(0), m_globalparaData(NULL), m_globalparaSize(0),
+ m_firmwareVersion(0), m_hasFirmwareVersion(false)
{}
int Initialize(const char * filename);
int VerifyImageMatchesDevice(unsigned long deviceFirmwareSize,
@@ -103,11 +120,20 @@ public:
unsigned char * GetConfigData() { return m_configData; }
unsigned char * GetFlashConfigData() { return m_flashConfigData; }
unsigned char * GetLockdownData() { return m_lockdownData; }
+ unsigned char * GetFLDData() { return m_fldData; }
+ unsigned char * GetGlobalParametersData() { return m_globalparaData; }
unsigned long GetFirmwareSize() { return m_firmwareSize; }
unsigned long GetConfigSize() { return m_configSize; }
unsigned long GetFlashConfigSize() { return m_flashConfigSize; }
unsigned long GetLockdownSize() { return m_lockdownSize; }
unsigned long GetFirmwareID() { return m_firmwareBuildID; }
+ unsigned long GetFLDSize() { return m_fldSize; }
+ unsigned long GetGlobalParametersSize() { return m_globalparaSize; }
+ unsigned short GetFirmwareVersion() { return m_firmwareVersion; }
+ signature_info *GetSignatureInfo() { return m_signatureInfo; }
+ int VerifyImageProductID(char* deviceProductID);
+ bool IsImageHasFirmwareVersion() { return m_hasFirmwareVersion; }
+
bool HasIO() { return m_io; }
~FirmwareImage();
@@ -136,6 +162,15 @@ private:
unsigned char * m_lockdownData;
unsigned char * m_memBlock;
unsigned long m_cntrAddr; // BL_V7
+ bool m_hasSignature;
+ unsigned char * m_fldData;
+ unsigned long m_fldSize;
+ unsigned char * m_globalparaData;
+ unsigned long m_globalparaSize;
+ unsigned short m_firmwareVersion;
+ bool m_hasFirmwareVersion;
+
+ signature_info m_signatureInfo[BLv7_MAX];
};
#endif // _FIRMWAREIMAGE_H_