| /* SPDX-License-Identifier: (GPL-2.0+ OR MIT) */ |
| /* |
| * Copyright (c) 2019 Amlogic, Inc. All rights reserved. |
| */ |
| |
| #ifndef __STORE_WRAPPER_H__ |
| #define __STORE_WRAPPER_H__ |
| #include <amlogic/storage.h> |
| |
| //logic write/read, if not MTD, same as store_write |
| int store_logic_write(const char *name, loff_t off, size_t size, void *buf); |
| |
| int store_logic_read(const char *name, loff_t off, size_t size, void *buf); |
| |
| u64 store_logic_cap(const char* partName); |
| |
| int store_gpt_ops(size_t sz, void* buf, int isWr); |
| |
| #define AML_MAGIC_HDR_L (0x4c4d4140) //"@AML" |
| #define AML_MAGIC_HDR_R (0x544f4f42) //"BOOT" |
| |
| #define AML_MAGIC_CORE (0X54534242) //"BBST" |
| #define AML_MAGIC_BL2E (0x45324c42) //"BL2E" |
| #define AML_MAGIC_BL2X (0x58324c42) //"BL2X" |
| #define AML_MAGIC_DDRF (0x46524444) //"DDRF" |
| #define AML_MAGIC_DEVF (0x46564544) //"DEVF" |
| typedef struct{ |
| unsigned int nMagic; //"BBST", "BL2E", "BL2X", "DDRF", "DEVF" |
| unsigned int nOffset; //offset from file head of file |
| unsigned int nPayLoadSize; //size of payload |
| unsigned int nReserved; //reserved for future |
| }payload_info_item_t, *p_payload_info_item_t; |
| |
| typedef struct{ |
| unsigned char szSHA2[32]; //sha256 of sizeof(payload_info_t) - sizeof(szSHA2) |
| unsigned int nMagicL; //"@AML" |
| unsigned int nMagicR; //"BOOT" |
| unsigned char byVersion; //version:0,1,2,.... |
| unsigned char byItemNum; //number of items |
| unsigned short nSize; //sizeof(this) = sizeof(hdr) + sizeof(item) * byItemNum |
| unsigned char szReserved1[4]; |
| char szTimeStamp[16];//"SC2-YYYYMMDDHHmm" e.g "SC2-202007082259" |
| |
| }payload_info_hdr_t, *p_payload_info_hdr_t; |
| |
| typedef struct{ |
| payload_info_hdr_t hdr; //header |
| payload_info_item_t arrItems[1]; //items |
| }payload_info_t, *p_payload_info_t; |
| |
| #endif//#ifndef __STORE_WRAPPER_H__ |
| |