/* * drivers/soc/sunxi/pm/resume1/resume1_head.c * (C) Copyright 2010-2016 * Allwinner Technology Co., Ltd. * Gary.Wang * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License as * published by the Free Software Foundation; either version 2 of * the License, or (at your option) any later version. */ #include #pragma arm section rodata = "head" #define RESUMEX_MAGIC "eGON.BT0" #define STAMP_VALUE 0x5F0A6C39 #define RESUME_FILE_HEAD_VERSION "1100" /* X.X.XX */ #define RESUME_VERSION "1100" /* X.X.XX */ #define PLATFORM "1633" #define NF_ALIGN_SIZE 1024 #define RESUMEX_ALIGN_SIZE NF_ALIGN_SIZE #define RESUME_PUB_HEAD_VERSION "1100" /* X.X.XX */ #define RESUMEX_FILE_HEAD_VERSION "1230" /* X.X.XX */ #define RESUMEX_VERSION "1230" /* X.X.XX */ #define EGON_VERSION "1100" /* X.X.XX */ struct resume_file_head_t { __u32 jump_instruction; /* one intruction jumping to real code */ __u8 magic[8]; /* ="eGON.BT0" or "eGON.BT1", not C-style string. */ __u32 check_sum; /* generated by PC */ __u32 length; /* generated by PC */ __u32 pub_head_size; /* the size of resume_file_head_t */ __u8 pub_head_vsn[4]; /* the version of resume_file_head_t */ __u8 file_head_vsn[4]; /* the version of resume0_file_head_t or resume1_file_head_t */ __u8 Resume_vsn[4]; /* Resume version */ __u8 eGON_vsn[4]; /* eGON version */ __u8 platform[8]; /* platform information */ }; const struct resume_file_head_t resume_head = { /* jump_instruction */ (0xEA000000 | (((sizeof(struct resume_file_head_t) + sizeof(int) - 1) / sizeof(int) - 2) & 0x00FFFFFF)), /* 0xe3a0f000, */ RESUMEX_MAGIC, STAMP_VALUE, RESUMEX_ALIGN_SIZE, sizeof(struct resume_file_head_t), RESUME_PUB_HEAD_VERSION, RESUMEX_FILE_HEAD_VERSION, RESUMEX_VERSION, EGON_VERSION, };