1 /* 2 $License: 3 Copyright (C) 2012 InvenSense Corporation, All Rights Reserved. 4 $ 5 */ 6 7 /****************************************************************************** 8 * 9 * $Id:$ 10 * 11 *****************************************************************************/ 12 13 /** 14 * @defgroup ML_LOAD_DMP 15 * 16 * @{ 17 * @file ml_load_dmp.c 18 * @brief functions for writing dmp firmware. 19 */ 20 #include <stdio.h> 21 22 #undef MPL_LOG_TAG 23 #define MPL_LOG_TAG "MPL-loaddmp" 24 25 #include "ml_load_dmp.h" 26 #include "log.h" 27 #include "mlos.h" 28 29 #define LOADDMP_LOG MPL_LOGI 30 #define LOADDMP_LOG MPL_LOGI 31 32 #define NUM_LOCAL_KEYS (sizeof(dmpTConfig)/sizeof(dmpTConfig[0])) 33 #define DMP_CODE_SIZE 2639 34 35 static const unsigned char dmpMemory[DMP_CODE_SIZE] = { 36 /* bank # 0 */ 37 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 38 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 39 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 40 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 41 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x00, 0x07, 42 0x00, 0x20, 0x00, 0x00, 0x00, 0x05, 0x00, 0x64, 0x00, 0x64, 0x00, 0x28, 0x04, 0xcc, 0x03, 0xe8, 43 0x00, 0x3e, 0x03, 0x30, 0x40, 0x00, 0x00, 0x00, 0x02, 0xca, 0xe3, 0x09, 0x3e, 0x80, 0x00, 0x00, 44 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 45 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x18, 0x6e, 0x00, 0x00, 0x06, 0x92, 0x0a, 0x16, 0xc0, 0xdf, 46 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x07, 47 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x0b, 0x2b, 0x00, 0x00, 0x16, 0x57, 0x00, 0x00, 0x03, 0x59, 48 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1d, 0xfa, 0x00, 0x02, 0x6c, 0x1d, 0x00, 0x00, 0x00, 0x00, 49 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 50 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 51 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 52 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 53 /* bank # 1 */ 54 0x01, 0x6c, 0x16, 0xc1, 0x00, 0x01, 0x9b, 0xdf, 0x00, 0x08, 0x17, 0x42, 0x00, 0x00, 0x13, 0x88, 55 0x00, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 56 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 57 0x00, 0x00, 0x10, 0x72, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 58 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0x20, 0x00, 0x00, 0x00, 59 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x58, 0x05, 0xdc, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, 60 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0f, 61 0x08, 0x00, 0x02, 0x00, 0x04, 0x00, 0x00, 0x00, 0x80, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 62 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 63 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 64 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 65 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb2, 0x6a, 0x00, 0x00, 0x00, 0x00, 66 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 67 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 68 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 69 0x00, 0x00, 0x10, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x00, 0x01, 0xf4, 0x00, 0x00, 0x10, 0x00, 70 /* bank # 2 */ 71 0x00, 0x28, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 72 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 73 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 74 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 75 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 76 0x00, 0x1b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 77 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 78 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 79 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 80 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 81 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 82 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 83 0x00, 0x1b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 84 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x05, 0x00, 0x05, 85 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x05, 0x00, 0x05, 86 0xff, 0xe5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 87 /* bank # 3 */ 88 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 89 0x00, 0x01, 0x80, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x24, 0x26, 0xd3, 90 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x10, 0x00, 0x96, 0x00, 0x3c, 91 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 92 0x0c, 0x0a, 0x4e, 0x68, 0xcd, 0xcf, 0x77, 0x09, 0x50, 0x16, 0x67, 0x59, 0xc6, 0x19, 0xce, 0x82, 93 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 94 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 95 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 96 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x3c, 97 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x03, 0x18, 0x85, 0x00, 0x00, 0x40, 0x00, 98 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 99 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 100 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 101 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 102 0x00, 0x00, 0x00, 0x00, 0x67, 0x7d, 0xdf, 0x7e, 0x72, 0x90, 0x2e, 0x55, 0x4c, 0xf6, 0xe6, 0x88, 103 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0xb8, 0x51, 0xec, 0x01, 0x47, 0xae, 0x14, 104 105 /* bank # 4 */ 106 0xd8, 0xb0, 0xb5, 0xb9, 0xf3, 0xa6, 0xf8, 0xf9, 0xd1, 0xd9, 0x81, 0x96, 0xf8, 0xf7, 0x3e, 0xd8, 107 0xf3, 0xb1, 0x86, 0x96, 0xa3, 0x31, 0xd1, 0xda, 0xf1, 0xff, 0xd8, 0xf3, 0xb9, 0xab, 0xf8, 0xf9, 108 0xd1, 0xda, 0xf1, 0xb8, 0xa8, 0xdf, 0xdf, 0xdf, 0xf2, 0xb0, 0x81, 0xa8, 0xc1, 0xc9, 0xc3, 0xb0, 109 0xb6, 0xb9, 0x88, 0x90, 0xad, 0xf0, 0x2c, 0x50, 0x78, 0x91, 0x24, 0x48, 0x70, 0x3c, 0x92, 0x48, 110 0x70, 0xb1, 0xb5, 0x8e, 0x9d, 0xad, 0xf1, 0x2d, 0x55, 0x7d, 0xd8, 0xb1, 0xb5, 0x8d, 0x9d, 0xa0, 111 0xf0, 0x2c, 0x50, 0x78, 0xf5, 0x80, 0x94, 0x30, 0xf2, 0xab, 0xde, 0xd9, 0xf8, 0xf8, 0xd8, 0xa0, 112 0xcb, 0xf3, 0xde, 0xf1, 0x1e, 0x90, 0x52, 0xa4, 0xc2, 0xf1, 0xa0, 0x36, 0x94, 0x29, 0xf5, 0x30, 113 0xca, 0xf3, 0xde, 0xf1, 0x90, 0x04, 0x52, 0xa0, 0x36, 0xa0, 0x08, 0xad, 0x9d, 0x0e, 0x16, 0x1e, 114 0x84, 0x90, 0xbb, 0xaf, 0x02, 0xb3, 0xb7, 0x8f, 0x9f, 0xf0, 0x34, 0x18, 0xd0, 0xf1, 0x0d, 0xf5, 115 0x9d, 0x18, 0xf2, 0xd9, 0xb9, 0xab, 0xf8, 0xd8, 0xb3, 0xb7, 0xbb, 0x8e, 0x9e, 0xae, 0xf1, 0x32, 116 0xf5, 0x1b, 0xf1, 0xb4, 0xb8, 0xb0, 0x80, 0x97, 0xf1, 0xa9, 0xdf, 0xdf, 0xdf, 0xaa, 0xdf, 0xdf, 117 0xdf, 0xf2, 0xaa, 0xc5, 0xcd, 0xc7, 0xa9, 0x0c, 0xc9, 0x2c, 0x97, 0xf1, 0xa9, 0x89, 0x26, 0x46, 118 0x66, 0xb2, 0x89, 0x99, 0xa9, 0x2d, 0x55, 0x7d, 0xb0, 0x8a, 0xa8, 0x96, 0x36, 0x56, 0x76, 0xd8, 119 0xf1, 0xb0, 0x89, 0xb9, 0xa3, 0xc3, 0xc5, 0xc7, 0xb1, 0x81, 0xb4, 0x97, 0xa3, 0x11, 0xb5, 0x93, 120 0xa1, 0xf0, 0x24, 0x08, 0x44, 0x10, 0x64, 0x18, 0xf1, 0x93, 0x81, 0xa3, 0x2d, 0x55, 0x3d, 0xf2, 121 0xa6, 0xfa, 0xf9, 0xd1, 0xd9, 0xf8, 0xf1, 0x83, 0xa2, 0xc3, 0xc5, 0xc7, 0xd8, 0xf3, 0xa2, 0xde, 122 /* bank # 5 */ 123 0xf1, 0x82, 0x93, 0xa3, 0x2d, 0x55, 0x7d, 0x83, 0x95, 0xf5, 0xa3, 0x30, 0xd9, 0xf3, 0xa2, 0xf8, 124 0xd8, 0xf5, 0xa3, 0x50, 0xd9, 0xf3, 0xa2, 0xf8, 0xd8, 0xf5, 0xa3, 0x70, 0xd9, 0xf3, 0xa2, 0xf8, 125 0xd8, 0xf2, 0xb9, 0xa2, 0xf8, 0xf9, 0xd1, 0xd9, 0xa6, 0xde, 0xdf, 0xf4, 0x1c, 0xd8, 0xf2, 0xa6, 126 0xf8, 0xf9, 0xd1, 0xd9, 0xf4, 0x14, 0xd8, 0xf2, 0xf9, 0xd1, 0xd9, 0xf8, 0xf4, 0x1e, 0xd8, 0xf2, 127 0xf9, 0xd1, 0xd9, 0xf8, 0xf8, 0xf4, 0x14, 0xd8, 0xf4, 0x10, 0xd8, 0xf3, 0xa2, 0xf8, 0xf9, 0xd1, 128 0xda, 0xf2, 0xa6, 0xf8, 0xf1, 0xa5, 0xde, 0xd8, 0xf4, 0xa3, 0x14, 0x14, 0xd8, 0xf1, 0xa5, 0xf8, 129 0xa3, 0x85, 0x95, 0x09, 0xd9, 0xf1, 0xa5, 0xde, 0xf2, 0xa6, 0xf8, 0xdf, 0xd8, 0xf4, 0xa3, 0x09, 130 0xd8, 0xf3, 0xa2, 0xf8, 0xf9, 0xd1, 0xf4, 0xd9, 0x08, 0x17, 0xda, 0x42, 0xf2, 0xa2, 0xde, 0xf4, 131 0x0b, 0xd8, 0xf1, 0xa5, 0xf8, 0xa3, 0x85, 0x95, 0x19, 0xda, 0xf4, 0x05, 0xd8, 0xf2, 0xa6, 0xde, 132 0xdf, 0xd8, 0xf1, 0xb8, 0xaa, 0xb3, 0x8d, 0xb4, 0x98, 0x0d, 0x35, 0x5d, 0xb2, 0xb6, 0xba, 0xaf, 133 0x8c, 0x96, 0x19, 0x8f, 0x9f, 0xb8, 0xa8, 0x0e, 0x16, 0x1e, 0xb4, 0x9a, 0xaa, 0x88, 0x2c, 0x54, 134 0x7c, 0xd8, 0xf1, 0xb8, 0xb4, 0xb0, 0x97, 0x86, 0xa8, 0x31, 0x9b, 0x06, 0x99, 0x07, 0xab, 0x97, 135 0x28, 0x88, 0x9b, 0xf0, 0x0c, 0x20, 0x14, 0x40, 0xb8, 0xb0, 0xb4, 0xa8, 0x8c, 0x9c, 0xf0, 0x04, 136 0x28, 0x51, 0x79, 0x1d, 0x30, 0x14, 0x38, 0xb1, 0x8d, 0xab, 0xd0, 0x98, 0x2c, 0x50, 0x50, 0x78, 137 0x78, 0x9b, 0xf1, 0x1a, 0xb0, 0xb5, 0xb9, 0x8b, 0x90, 0xa3, 0xf5, 0x78, 0xf2, 0xd9, 0xab, 0xf8, 138 0xd8, 0xab, 0xf9, 0xf9, 0xb4, 0xb8, 0xd9, 0xf1, 0x9b, 0xab, 0xd0, 0x7c, 0x78, 0x78, 0x78, 0x78, 139 /* bank # 6 */ 140 0x78, 0xd8, 0xd8, 0xf6, 0xb4, 0xb8, 0xb0, 0x8a, 0x95, 0xad, 0xde, 0x24, 0xad, 0xd9, 0xf8, 0xd8, 141 0x44, 0xad, 0xd9, 0xf8, 0xd8, 0x64, 0xad, 0xd9, 0xf8, 0xd8, 0xf8, 0xf9, 0xd1, 0xd0, 0xd9, 0xde, 142 0xda, 0xf8, 0xd8, 0x8d, 0x48, 0xf7, 0xd9, 0xde, 0xd8, 0xf8, 0x48, 0xad, 0xda, 0xde, 0xd8, 0xf2, 143 0x8f, 0x99, 0xae, 0x19, 0x83, 0xa3, 0x49, 0x75, 0xae, 0xdf, 0x8e, 0x9f, 0xf6, 0x19, 0xd9, 0xf9, 144 0xd8, 0xfc, 0x61, 0xd9, 0xf8, 0xd8, 0x94, 0xad, 0xf2, 0x25, 0xd9, 0xae, 0xdf, 0xd8, 0xf6, 0x8e, 145 0x9e, 0xaf, 0x00, 0x83, 0x93, 0xa3, 0xd0, 0x00, 0x2c, 0xae, 0xd0, 0xdf, 0x8e, 0x95, 0xad, 0x14, 146 0xda, 0xae, 0xdf, 0xd9, 0xae, 0xd0, 0xfa, 0xdb, 0x15, 0xf8, 0xd8, 0xf2, 0x9e, 0xae, 0xd0, 0x3c, 147 0xd8, 0xf6, 0x8f, 0x93, 0xad, 0x14, 0xdb, 0x18, 0xf2, 0xad, 0xdf, 0x8e, 0x9d, 0xad, 0x6d, 0xae, 148 0xd0, 0xde, 0xf9, 0xd8, 0xf7, 0x8d, 0x95, 0xad, 0xf8, 0x10, 0xda, 0xf2, 0xae, 0xd0, 0xde, 0xd8, 149 0xf7, 0xad, 0xd0, 0xfa, 0x78, 0xd9, 0xae, 0xd0, 0xdf, 0xf9, 0xd8, 0xf2, 0xad, 0xd0, 0xdf, 0xae, 150 0xd0, 0xf8, 0xf9, 0xd9, 0xad, 0xf7, 0xde, 0xd0, 0xdf, 0xae, 0xd0, 0xfa, 0x8e, 0x94, 0x78, 0xf2, 151 0x8f, 0x9e, 0xad, 0xd0, 0x5d, 0x8e, 0xaf, 0xd0, 0xc6, 0xd8, 0xad, 0xd0, 0xfa, 0xf9, 0xd1, 0xda, 152 0xf3, 0xae, 0xd0, 0xdf, 0xd8, 0xf2, 0xae, 0xd0, 0xf8, 0xf9, 0xd9, 0x84, 0x94, 0xad, 0x54, 0x8d, 153 0x9d, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0xdb, 0x28, 0xf1, 0x8e, 0xa4, 0xc7, 0xf2, 0x8d, 154 0xad, 0x2c, 0xf3, 0x84, 0x94, 0xad, 0x35, 0xf4, 0x48, 0xd8, 0xf6, 0xad, 0x95, 0x8e, 0x1c, 0xd9, 155 0xaf, 0xdf, 0xd0, 0xc0, 0xd8, 0xaf, 0x8f, 0x94, 0xfa, 0x38, 0xf2, 0x89, 0xaf, 0xc6, 0xa3, 0xd0, 156 /* bank # 7 */ 157 0xc2, 0xc5, 0xb0, 0xb4, 0xb8, 0xf0, 0xa8, 0x8a, 0x9a, 0x28, 0x50, 0x78, 0xb7, 0x9b, 0xa8, 0x29, 158 0x51, 0x79, 0x24, 0x70, 0x59, 0x44, 0x69, 0x38, 0x64, 0x48, 0x31, 0xf1, 0xbb, 0xab, 0x88, 0x00, 159 0x2c, 0x54, 0x7c, 0xf0, 0xb3, 0x8b, 0xb8, 0xa8, 0x04, 0x28, 0x50, 0x78, 0xf1, 0xb0, 0x88, 0xb4, 160 0x97, 0x26, 0xa8, 0x59, 0x98, 0xbb, 0xab, 0xb3, 0x8b, 0x02, 0x26, 0x46, 0x66, 0xb0, 0xb8, 0xf0, 161 0x8a, 0x9c, 0xa8, 0x29, 0x51, 0x79, 0x8b, 0x29, 0x51, 0x79, 0x8a, 0x24, 0x70, 0x59, 0x8b, 0x20, 162 0x58, 0x71, 0x8a, 0x44, 0x69, 0x38, 0x8b, 0x39, 0x40, 0x68, 0x8a, 0x64, 0x48, 0x31, 0x8b, 0x30, 163 0x49, 0x60, 0x88, 0xf1, 0xac, 0x00, 0x2c, 0x54, 0x7c, 0xf0, 0x8c, 0xa8, 0x04, 0x28, 0x50, 0x78, 164 0xf1, 0x88, 0x97, 0x26, 0xa8, 0x59, 0x98, 0xac, 0x8c, 0x02, 0x26, 0x46, 0x66, 0xf0, 0x89, 0x9c, 165 0xa8, 0x29, 0x51, 0x79, 0x24, 0x70, 0x59, 0x44, 0x69, 0x38, 0x64, 0x48, 0x31, 0xa9, 0x88, 0x09, 166 0x20, 0x59, 0x70, 0xab, 0x11, 0x38, 0x40, 0x69, 0xa8, 0x19, 0x31, 0x48, 0x60, 0x8c, 0xa8, 0x3c, 167 0x41, 0x5c, 0x20, 0x7c, 0x00, 0xf1, 0x87, 0x98, 0x19, 0x86, 0xa8, 0x6e, 0x76, 0x7e, 0xa9, 0x99, 168 0x88, 0x2d, 0x55, 0x7d, 0xd8, 0xf1, 0xb3, 0x8b, 0xb4, 0x97, 0xbb, 0xab, 0xf8, 0xf9, 0xb9, 0xa3, 169 0xda, 0xc3, 0xc5, 0xc7, 0xd9, 0x2d, 0x4d, 0x6d, 0xd8, 0xb0, 0x8c, 0xb8, 0xac, 0xf8, 0xf9, 0xa8, 170 0xda, 0xc3, 0xc5, 0xc7, 0xd9, 0x2d, 0x4d, 0x6d, 0xd8, 0xf3, 0xb9, 0xac, 0xde, 0xd8, 0xb1, 0xb6, 171 0xb9, 0xf1, 0xa8, 0xf8, 0xf3, 0xb9, 0xaa, 0xfa, 0xf9, 0xd1, 0xda, 0xf2, 0x8a, 0xca, 0xf4, 0x0e, 172 0xf3, 0xb1, 0x88, 0xdd, 0xc2, 0xc2, 0xf1, 0x88, 0xc0, 0xdc, 0xf3, 0xb9, 0xac, 0xf8, 0xd8, 0xf2, 173 /* bank # 8 */ 174 0xb2, 0xb6, 0xba, 0xad, 0xfa, 0x8d, 0x9d, 0xab, 0x39, 0xd9, 0xad, 0xdf, 0xf4, 0x13, 0xdd, 0xf2, 175 0xb1, 0x87, 0xb5, 0x9a, 0x08, 0x08, 0xf1, 0xb1, 0x83, 0xc2, 0xc4, 0xc6, 0xdc, 0xf3, 0xb9, 0xac, 176 0xf8, 0xd8, 0xf3, 0xb2, 0xb6, 0xba, 0xad, 0xf8, 0x8d, 0x9d, 0xab, 0x11, 0xd9, 0xad, 0xde, 0xf4, 177 0x13, 0xdd, 0xf2, 0xb1, 0x87, 0xb5, 0x9a, 0x28, 0x28, 0xf1, 0xb0, 0x88, 0xc2, 0xc4, 0xc6, 0xdc, 178 0xf3, 0xb9, 0xac, 0xf8, 0xd8, 0xf3, 0xb2, 0xb6, 0xba, 0xad, 0xfa, 0x8d, 0x9d, 0xab, 0x39, 0xd9, 179 0xad, 0xdf, 0xf4, 0x12, 0xdd, 0xf3, 0xb1, 0x87, 0xb5, 0x9a, 0x08, 0xf2, 0xf2, 0x88, 0xc2, 0xc4, 180 0xc6, 0xdc, 0xf3, 0xb9, 0xac, 0xf8, 0xd8, 0xf2, 0xb2, 0xb6, 0xba, 0xae, 0xf8, 0x8e, 0x9e, 0xab, 181 0x11, 0xd9, 0xae, 0xde, 0xf4, 0x12, 0xdd, 0xf3, 0xb1, 0x87, 0xb5, 0x9a, 0x68, 0xf2, 0xb0, 0x80, 182 0xc0, 0xc8, 0xc2, 0xdc, 0xf3, 0xb9, 0xac, 0xf8, 0xd8, 0xf2, 0xb2, 0xb6, 0xba, 0xae, 0xfa, 0x8e, 183 0x9e, 0xab, 0x39, 0xd9, 0xae, 0xdf, 0xf4, 0x12, 0xdd, 0xf2, 0xb1, 0x87, 0xb5, 0x9a, 0x68, 0xf2, 184 0xb0, 0x80, 0xc4, 0xcc, 0xc6, 0xdc, 0xf3, 0xb9, 0xac, 0xf8, 0xd8, 0xf3, 0xb2, 0xb6, 0xba, 0xae, 185 0xf8, 0x8e, 0x9e, 0xab, 0x11, 0xd9, 0xae, 0xde, 0xf4, 0x12, 0xdd, 0xf3, 0xb1, 0x87, 0xb5, 0x9a, 186 0x48, 0xf2, 0xb0, 0x81, 0xc0, 0xc8, 0xc2, 0xdc, 0xf3, 0xb9, 0xac, 0xf8, 0xd8, 0xf3, 0xb2, 0xb6, 187 0xba, 0xae, 0xfa, 0x8e, 0x9e, 0xab, 0x39, 0xd9, 0xae, 0xdf, 0xf4, 0x12, 0xdd, 0xf2, 0xb1, 0x87, 188 0xb5, 0x9a, 0x48, 0xf2, 0xb0, 0x81, 0xc4, 0xcc, 0xc6, 0xdc, 0xf3, 0xb9, 0xac, 0xf8, 0xd8, 0xf2, 189 0xb0, 0x88, 0xb9, 0xa8, 0xc3, 0xc5, 0xc7, 0xd8, 0xf3, 0xb9, 0xac, 0xf8, 0xf9, 0xd1, 0xd9, 0xf4, 190 /* bank # 9 */ 191 0x1f, 0xd8, 0xf1, 0xb9, 0xaa, 0xdf, 0xf3, 0xac, 0xfa, 0xf9, 0xd1, 0xd9, 0xf4, 0x1a, 0xd8, 0xf2, 192 0xb1, 0xb5, 0x8c, 0xac, 0xf8, 0xf9, 0xd1, 0xd9, 0xc2, 0xd8, 0xf2, 0xf9, 0xd9, 0xde, 0xf4, 0x09, 193 0x13, 0xda, 0xf2, 0xdd, 0xc6, 0xdc, 0xf4, 0x31, 0x11, 0xd8, 0xf2, 0xab, 0xfa, 0x8b, 0x9b, 0xa3, 194 0x49, 0xd9, 0xf4, 0x07, 0x06, 0xda, 0xf2, 0xb9, 0xab, 0xdf, 0xfe, 0xd8, 0xf1, 0xbb, 0xb3, 0xb7, 195 0xaa, 0xf9, 0xda, 0xff, 0xd9, 0x80, 0x9a, 0xaa, 0x28, 0xb4, 0x80, 0x98, 0xa7, 0x20, 0xd8, 0xf1, 196 0xb3, 0xb7, 0xbb, 0x87, 0xaa, 0xd0, 0xc1, 0xa7, 0x81, 0x97, 0x62, 0x93, 0xf0, 0x71, 0x71, 0x60, 197 0x85, 0x94, 0x01, 0x29, 0x51, 0x79, 0x90, 0xa5, 0xf1, 0x28, 0x4c, 0x6c, 0x87, 0x0c, 0x95, 0x18, 198 0x85, 0x78, 0xa3, 0x83, 0x90, 0x28, 0x4c, 0x6c, 0x8a, 0x6c, 0xd8, 0xf3, 0xa2, 0x82, 0x00, 0xf2, 199 0x10, 0xa8, 0x92, 0x19, 0x80, 0xa2, 0xf2, 0xd9, 0x26, 0xd8, 0xf1, 0xa8, 0x89, 0x95, 0x19, 0xa9, 200 0x80, 0xd9, 0x38, 0xd8, 0xa8, 0x89, 0x39, 0xa9, 0x80, 0xda, 0x3c, 0xd8, 0xa8, 0x2e, 0x85, 0xf5, 201 0x75, 0xda, 0xff, 0xd8, 0x71, 0x80, 0xa9, 0xda, 0xf1, 0xff, 0xd8, 0x82, 0xa7, 0xf3, 0xc1, 0xf2, 202 0x80, 0xc2, 0xf1, 0x97, 0x86, 0x49, 0x2e, 0xa6, 0xd0, 0x50, 0x96, 0x86, 0xa7, 0xd0, 0x75, 0xd9, 203 0x88, 0xa2, 0xd0, 0xf3, 0xc4, 0xc7, 0xf1, 0xda, 0x87, 0x96, 0xa2, 0xd0, 0xf3, 0xc6, 0xc7, 0x82, 204 0x78, 0x78, 0xf1, 0xd8, 0x80, 0x90, 0xa8, 0x0d, 0x89, 0x99, 0xa8, 0x10, 0x80, 0x98, 0x21, 0xda, 205 0x2e, 0xd8, 0x89, 0x99, 0xa8, 0x31, 0x80, 0xda, 0x2e, 0xd8, 0xa8, 0x82, 0x92, 0xf3, 0x41, 0x80, 206 0xf1, 0xd9, 0x2e, 0xd8, 0xa8, 0x82, 0xf3, 0x19, 0x80, 0xf1, 0xd9, 0x2e, 0xd8, 0x82, 0xac, 0xf3, 207 /* bank # 10 */ 208 0xc0, 0xa2, 0x80, 0x22, 0xf1, 0xa9, 0x22, 0x26, 0x98, 0xa8, 0x29, 0xda, 0xac, 0xde, 0xff, 0xd8, 209 0xa2, 0xf2, 0x2a, 0xf1, 0xa9, 0x2e, 0x82, 0x92, 0xa8, 0xf2, 0x31, 0x80, 0xa6, 0x96, 0xf1, 0xd9, 210 0x00, 0xf1, 0xf1, 0xf1, 0xac, 0x8c, 0x9c, 0x0c, 0x30, 0xac, 0xde, 0xd0, 0xde, 0xf3, 0xf3, 0xb9, 211 0xaa, 0xfa, 0xf1, 0xff, 0xd8, 0x8c, 0x9c, 0xac, 0xd0, 0x10, 0xac, 0xde, 0x80, 0x92, 0xa2, 0xf2, 212 0x4c, 0x82, 0xa8, 0xf1, 0xca, 0xf2, 0x35, 0xf1, 0x96, 0x88, 0xa6, 0xd9, 0x00, 0xd8, 0xff 213 }; 214 215 #define DMP_VERSION (dmpMemory) 216 217 inv_error_t inv_write_dmp_data(FILE *fd, const unsigned char *dmp, size_t len) 218 { 219 inv_error_t result = INV_SUCCESS; 220 int bytesWritten = 0; 221 222 if (len <= 0) { 223 MPL_LOGE("Nothing to write"); 224 return INV_ERROR_FILE_WRITE; 225 } 226 else { 227 MPL_LOGI("dmp firmware size to write = %d", len); 228 } 229 if ( fd == NULL ) { 230 return INV_ERROR_FILE_OPEN; 231 } 232 bytesWritten = fwrite(dmp, 1, len, fd); 233 if (bytesWritten != len) { 234 MPL_LOGE("bytes written (%d) don't match requested length (%d)\n", 235 bytesWritten, len); 236 result = INV_ERROR_FILE_WRITE; 237 } 238 else { 239 MPL_LOGI("Bytes written = %d", bytesWritten); 240 } 241 return result; 242 } 243 244 inv_error_t inv_load_dmp(FILE *fd) 245 { 246 inv_error_t result = INV_SUCCESS; 247 result = inv_write_dmp_data(fd, DMP_VERSION, DMP_CODE_SIZE); 248 return result; 249 } 250 251 void read_dmp_img(char *dmp_path, char* out_file) 252 { 253 MPL_LOGI("read_dmp_img"); 254 FILE *fp; 255 int i; 256 int dmpSize = DMP_CODE_SIZE; 257 char dmp_img[dmpSize]; 258 259 if ((fp = fopen(dmp_path, "rb")) < 0) { 260 perror("dmp fail"); 261 } 262 i = fread(dmp_img, 1, dmpSize, fp); 263 MPL_LOGI("Result=%d", i); 264 fclose(fp); 265 fp = fopen(out_file, "wt"); 266 if(fp == NULL) { 267 MPL_LOGE("error open out file:%s", out_file); 268 return; 269 } 270 fprintf(fp, "char rec[]={\n"); 271 for(i = 0; i < dmpSize; i++) { 272 fprintf(fp, "0x%02x, ", dmp_img[i]); 273 if(((i + 1) % 16) == 0) { 274 fprintf(fp, "\n"); 275 } 276 } 277 fprintf(fp, "};\n "); 278 fclose(fp); 279 } 280 281 /** 282 * @} 283 */ 284