|
| 1 | +/** |
| 2 | + * @file flash_blob.c |
| 3 | + * @brief Flash algorithm for the rza1h |
| 4 | + * |
| 5 | + * DAPLink Interface Firmware |
| 6 | + * Copyright (c) 2009-2016, ARM Limited, All Rights Reserved |
| 7 | + * SPDX-License-Identifier: Apache-2.0 |
| 8 | + * |
| 9 | + * Licensed under the Apache License, Version 2.0 (the "License"); you may |
| 10 | + * not use this file except in compliance with the License. |
| 11 | + * You may obtain a copy of the License at |
| 12 | + * |
| 13 | + * http://www.apache.org/licenses/LICENSE-2.0 |
| 14 | + * |
| 15 | + * Unless required by applicable law or agreed to in writing, software |
| 16 | + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT |
| 17 | + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| 18 | + * See the License for the specific language governing permissions and |
| 19 | + * limitations under the License. |
| 20 | + */ |
| 21 | + |
| 22 | +#include "flash_blob.h" |
| 23 | + |
| 24 | +#define RAM_START 0x20020000 |
| 25 | + |
| 26 | +static const uint32_t RZA1H_FLM[] = { |
| 27 | + 0xE1200070, 0x062D780D, 0x24084068, 0xD3000040, 0x1E644058, 0x1C49D1FA, 0x2A001E52, 0x4770D1F2, |
| 28 | + 0xe59f1064, 0xe92d4010, 0xe0811009, 0xe5810000, 0xeb00024e, 0xe3500000, 0x13a00001, 0xe8bd8010, |
| 29 | + 0xe92d4010, 0xeb000257, 0xe3a00000, 0xe8bd8010, 0xea00025d, 0xe92d4010, 0xeb000257, 0xe3500000, |
| 30 | + 0x13a00001, 0xe8bd8010, 0xe59f301c, 0xe92d4010, 0xe0833009, 0xe5933000, 0xe0400003, 0xeb000256, |
| 31 | + 0xe3500000, 0x13a00001, 0xe8bd8010, 0x00000004, 0xe59f002c, 0xe3a01001, 0xe5801000, 0xe5900000, |
| 32 | + 0xe3011035, 0xe59f001c, 0xe1c011b0, 0xe3a01003, 0xe1c011b4, 0xe3a0000f, 0xe59f100c, 0xe1c100b8, |
| 33 | + 0xe12fff1e, 0x3fffff80, 0xfcfe0000, 0xfcfe0400, 0xe59f0460, 0xe5901000, 0xe3110102, 0x0a000006, |
| 34 | + 0xe5901048, 0xe3110002, 0x05901000, 0x03c11102, 0x05801000, 0x13e00000, 0x112fff1e, 0xe3a00000, |
| 35 | + 0xe12fff1e, 0xe59f042c, 0xe5901000, 0xe3110102, 0x0a000001, 0xe3a00000, 0xe12fff1e, 0xe5901048, |
| 36 | + 0xe3110002, 0x05901000, 0x13e00000, 0x03811102, 0x05801000, 0x0afffff6, 0xe12fff1e, 0xe59f13f4, |
| 37 | + 0xe5912048, 0xe3120002, 0x13a00001, 0x112fff1e, 0xe5912000, 0xe2022003, 0xe1520000, 0x0a000018, |
| 38 | + 0xe3500001, 0x1a00000f, 0xe59f23cc, 0xe1d230bc, 0xe38330fc, 0xe1c232b4, 0xe2822c01, 0xe1d230bc, |
| 39 | + 0xe3c330fc, 0xe1c232b4, 0xe2822b01, 0xe1d230bc, 0xe3c330fc, 0xe1c232b4, 0xe2422c06, 0xe1d230bc, |
| 40 | + 0xe38330fc, 0xe1c232b4, 0xe5912000, 0xe3c22003, 0xe1800002, 0xe5810000, 0xe5910000, 0xe3800c02, |
| 41 | + 0xe581000c, 0xe3a00000, 0xe12fff1e, 0xe59f0364, 0xe5900000, 0xe2000003, 0xe12fff1e, 0xe59f135c, |
| 42 | + 0xe92d4030, 0xe5d12000, 0xe3c22008, 0xe5c12000, 0xe59f134c, 0xe1d122b4, 0xe38220fc, 0xe1c122b4, |
| 43 | + 0xe2411c3f, 0xe1d122b4, 0xe3c220fc, 0xe1c122b4, 0xe2812c02, 0xe1d212b4, 0xe38110fc, 0xe1c212b4, |
| 44 | + 0xe2823c01, 0xe1d312b4, 0xe3c110fc, 0xe1c312b4, 0xe2821c05, 0xe1d142b4, 0xe3c440fc, 0xe1c142b4, |
| 45 | + 0xe2414c06, 0xe1d452b4, 0xe38550fc, 0xe1c452b4, 0xe3500001, 0x1a00000b, 0xe1d250bc, 0xe3855b0f, |
| 46 | + 0xe1c250bc, 0xe1d320bc, 0xe3c22b0f, 0xe1c320bc, 0xe1d120bc, 0xe3c22b0f, 0xe1c120bc, 0xe1d410bc, |
| 47 | + 0xe3811b0f, 0xe1c410bc, 0xe59f42a8, 0xe5941048, 0xe3110002, 0x13a00001, 0x18bd8030, 0xe5941000, |
| 48 | + 0xe38118ff, 0xe3811cf3, 0xe5841000, 0xe5941000, 0xe3c11078, 0xe3811020, 0xe5841000, 0xebffff9e, |
| 49 | + 0xe5940004, 0xe59f127c, 0xe0000001, 0xe5840004, 0xe5940008, 0xe30f1f03, 0xe1c00001, 0xe3800c02, |
| 50 | + 0xe5840008, 0xe3a00000, 0xe8bd8030, 0xe59f2244, 0xe92d4018, 0xe5921000, 0xe3110102, 0x0a000070, |
| 51 | + 0xe5921048, 0xe3110001, 0x0a00006b, 0xe5921030, 0xe1d030b0, 0xe3c11901, 0xe7e03553, 0xe1811703, |
| 52 | + 0xe5821030, 0xe1d010b0, 0xe3110b01, 0x0a000008, 0xe5921024, 0xe5d03004, 0xe3c118ff, 0xe1811803, |
| 53 | + 0xe5821024, 0xe5d01000, 0xe5923030, 0xe7df3f11, 0xe5823030, 0xe5921030, 0xe1d030b0, 0xe3c11a01, |
| 54 | + 0xe7e035d3, 0xe1811603, 0xe5821030, 0xe1d010b0, 0xe3110b02, 0x0a00000a, 0xe5921024, 0xe5d03005, |
| 55 | + 0xe3c110ff, 0xe1811003, 0xe5821024, 0xe5921030, 0xe5d03000, 0xe3c11203, 0xe7e13153, 0xe1811e03, |
| 56 | + 0xe5821030, 0xe5921030, 0xe1d030b0, 0xe3c11c0f, 0xe7e33653, 0xe1811403, 0xe5821030, 0xe1d010b0, |
| 57 | + 0xe3110a0f, 0x0a000007, 0xe5901008, 0xe5821028, 0xe5921030, 0xe5d03000, 0xe3c11403, 0xe7e13253, |
| 58 | + 0xe1811c03, 0xe5821030, 0xe5921030, 0xe5903000, 0xe3c110f0, 0xe7e33853, 0xe1811203, 0xe5821030, |
| 59 | + 0xe5901000, 0xe311080f, 0x0a00000b, 0xe590100c, 0xe5d0300f, 0xe6bf1f31, 0xe3c110ff, 0xe1811003, |
| 60 | + 0xe582102c, 0xe5921030, 0xe5d03000, 0xe3c11603, 0xe7e13353, 0xe1811a03, 0xe5821030, 0xe5921030, |
| 61 | + 0xe5903000, 0xe3c1100f, 0xe7e33a53, 0xe1811003, 0xe5821030, 0xe5901000, 0xe311060f, 0x0a000009, |
| 62 | + 0xe5901018, 0xe5821040, 0xe590101c, 0xe5821044, 0xe5921030, 0xe1d030b0, 0xe3c11803, 0xe7e13453, |
| 63 | + 0xe1811803, 0xe5821030, 0xe5921020, 0xe5903000, 0xe3c11c01, 0xe7e03c53, 0xe1811403, 0xe5821020, |
| 64 | + 0xe5901000, 0xe3110c03, 0x1311060f, 0x0a00000b, 0xe3110402, 0x13110301, 0x0a000008, 0xe3a00001, |
| 65 | + 0xe8bd8018, 0xe5921048, 0xe3110002, 0x05921000, 0x03811102, 0x05821000, 0x1afffff7, 0xeaffff87, |
| 66 | + 0xe5923020, 0xe7e04cd1, 0xe3c33007, 0xe7e01d51, 0xe1833104, 0xe1831081, 0xe3811001, 0xe5821020, |
| 67 | + 0xe5921048, 0xe5921048, 0xe5921048, 0xe5921048, 0xe58d1000, 0xe5921048, 0xe3110001, 0x0afffffc, |
| 68 | + 0xe5921038, 0xe5801010, 0xe592103c, 0xe5801014, 0xe3a00000, 0xe8bd8018, 0x3fefa000, 0xfcfe3500, |
| 69 | + 0xfcfe0438, 0xfcfe7200, 0xfffcfcfc, 0xe92d41f0, 0xe1a07000, 0xe59f4410, 0xe3a05000, 0xe1a06001, |
| 70 | + 0xe0844009, 0xe5940000, 0xe3c00003, 0xe3c008ff, 0xe3c00cfb, 0xe3800b01, 0xe2802503, 0xe3c22401, |
| 71 | + 0xe3820406, 0xe5840000, 0xe3a00005, 0xe5c40004, 0xe2840000, 0xe5845018, 0xe584501c, 0xebffff52, |
| 72 | + 0xe5940010, 0xe1a00c20, 0xe5c70000, 0xe5c65000, 0xe8bd81f0, 0xe59f03b0, 0xe0800009, 0xe5901000, |
| 73 | + 0xe3c11003, 0xe3c117ff, 0xe3c11bfe, 0xe3c11301, 0xe3811b01, 0xe5801000, 0xe3a01006, 0xe5c01004, |
| 74 | + 0xeaffff41, 0xe92d4070, 0xe1a04001, 0xe1a05000, 0xebffffef, 0xe59f2370, 0xe0822009, 0xe5920000, |
| 75 | + 0xe3c000c3, 0xe3c00703, 0xe3c00bfe, 0xe3800b01, 0xe2803703, 0xe3c3067f, 0xe5820000, 0xe3a00001, |
| 76 | + 0xe5c20004, 0xe2050043, 0xe5c2000c, 0xe2820000, 0xe5c2400d, 0xebffff2c, 0xe8bd4070, 0xea0000a4, |
| 77 | + 0xe92d401f, 0xe3a00000, 0xebfffee3, 0xe28d1008, 0xe1a0000d, 0xebffffbc, 0xe28d100c, 0xe28d0004, |
| 78 | + 0xeb0000a7, 0xe5dd0000, 0xe5dd1004, 0xe3800040, 0xebffffdb, 0xe8bd801f, 0xe92d4010, 0xebffffcc, |
| 79 | + 0xe59f02e4, 0xe0800009, 0xe5901000, 0xe3c11003, 0xe3c117ff, 0xe3c11bfe, 0xe3c11301, 0xe3811b01, |
| 80 | + 0xe5801000, 0xe3a010c7, 0xe5c01004, 0xebffff0e, 0xe8bd4010, 0xea000086, 0xe92d4010, 0xe1a04000, |
| 81 | + 0xebffffbb, 0xe59f12a0, 0xe0811009, 0xe5910000, 0xe3c00033, 0xe3c00b3e, 0xe3800b01, 0xe2802a07, |
| 82 | + 0xe3c20407, 0xe3c008ff, 0xe5810000, 0xe3a000d8, 0xe5c10004, 0xe2810000, 0xe5814008, 0xebfffefa, |
| 83 | + 0xe8bd4010, 0xea000072, 0xe92d41f0, 0xe1a06002, 0xe1a04001, 0xe1a05000, 0xebffffa5, 0xe59f7248, |
| 84 | + 0xe0877009, 0xe5970000, 0xe3c00033, 0xe2800020, 0xe3c00b3e, 0xe3800b01, 0xe2800a07, 0xe3c00406, |
| 85 | + 0xe3c008ff, 0xe3800401, 0xe5870000, 0xe3a00038, 0xe5c70004, 0xebfffe9c, 0xe3500001, 0x01a000a5, |
| 86 | + 0x05870008, 0xe59f0200, 0x15875008, 0xe0800009, 0xebfffedd, 0xe5970000, 0xe3c00c03, 0xe2800c02, |
| 87 | + 0xe3c00783, 0xe3c00bff, 0xe3800301, 0xe5870000, 0xebfffe8d, 0xe3500001, 0x0a00000c, 0xe3160003, |
| 88 | + 0x05970000, 0x0380060f, 0x0a00001c, 0xe5970000, 0xe3160001, 0x13a05001, 0xe3c0060f, 0x02800503, |
| 89 | + 0x12800502, 0x15870000, 0x0a00000c, 0xea00003c, 0xe3160007, 0x0a00000c, 0xe3160003, 0x05970000, |
| 90 | + 0x03c0060f, 0x02800503, 0x0a00000c, 0xe3160001, 0x05970000, 0x03c0060f, 0x02800502, 0x18bd81f0, |
| 91 | + 0xe3a05002, 0xe5870000, 0xea00002d, 0xe5970000, 0xe3a05008, 0xe380060f, 0xe5870000, 0xea000028, |
| 92 | + 0xe3a05004, 0xe5870000, 0xea000025, 0xe4d40001, 0xe3550002, 0xe5870018, 0xba000002, 0xe4d41001, |
| 93 | + 0xe1800401, 0xe5870018, 0xe3550004, 0xba000006, 0xe5d41000, 0xe1800801, 0xe5870018, 0xe5d41001, |
| 94 | + 0xe2844002, 0xe1800c01, 0xe5870018, 0xe3550008, 0xba00000b, 0xe5d40000, 0xe587001c, 0xe5d41001, |
| 95 | + 0xe1800401, 0xe587001c, 0xe5d41002, 0xe1800801, 0xe587001c, 0xe5d41003, 0xe2844004, 0xe1800c01, |
| 96 | + 0xe587001c, 0xe0466005, 0xe3560000, 0xd5970000, 0xd3c00401, 0xd5870000, 0xe59f00ac, 0xe0800009, |
| 97 | + 0xebfffe89, 0xe3560000, 0xcaffffd7, 0xe8bd41f0, 0xe1a00000, 0xe92d401c, 0xe28d1004, 0xe1a0000d, |
| 98 | + 0xebffff19, 0xebfffe38, 0xe3500001, 0xe5dd0000, 0x05dd1004, 0x01800001, 0xe3100001, 0x1afffff5, |
| 99 | + 0xe8bd801c, 0xe92d41f0, 0xe1a07000, 0xe59f4058, 0xe3a05000, 0xe1a06001, 0xe0844009, 0xe5940000, |
| 100 | + 0xe3c00003, 0xe3c008ff, 0xe3c00cfb, 0xe3800b01, 0xe2802503, 0xe3c22401, 0xe3820406, 0xe5840000, |
| 101 | + 0xe3a00015, 0xe5c40004, 0xe2840000, 0xe5845018, 0xe584501c, 0xebfffe64, 0xe5940010, 0xe1a00c20, |
| 102 | + 0xe5c70000, 0xe5c65000, 0xe8bd81f0, 0x00000008, 0xe59f1080, 0xe3a00000, 0xe92d4010, 0xe3e02000, |
| 103 | + 0xe4812004, 0xe2800001, 0xe3500010, 0xbafffffb, 0xebfffdbe, 0xebffff29, 0xebfffdd9, 0xe3500000, |
| 104 | + 0x13e00000, 0xe8bd8010, 0xe92d4010, 0xebfffdc7, 0xe3500000, 0x13e00000, 0xe8bd8010, 0xe92d4010, |
| 105 | + 0xebffff3c, 0xe3a00000, 0xe8bd8010, 0xe92d4010, 0xebffff28, 0xe3a00000, 0xe8bd8010, 0xe1a03002, |
| 106 | + 0xe1a02001, 0xe92d4010, 0xe1a01003, 0xebffff45, 0xe3a00000, 0xe8bd8010, 0xe8201180, 0x00000000, |
| 107 | + 0x00000000, |
| 108 | +}; |
| 109 | + |
| 110 | +static const program_target_t flash = { |
| 111 | + 0x20020020, // Init |
| 112 | + 0x20020040, // UnInit |
| 113 | + 0x20020050, // EraseChip |
| 114 | + 0x20020054, // EraseSector |
| 115 | + 0x20020068, // ProgramPage |
| 116 | + |
| 117 | + // RSB : base address is address of Execution Region PrgData in map file |
| 118 | + // to access global/static data |
| 119 | + // RSP : Initial stack pointer |
| 120 | + {RAM_START, (RAM_START + sizeof(RZA1H_FLM)), RAM_START + 0x00010000}, // {breakpoint, RSB, RSP} |
| 121 | + |
| 122 | + RAM_START + 0x00004000, // program_buffer |
| 123 | + RAM_START, // algo_start |
| 124 | + sizeof(RZA1H_FLM), // algo_size |
| 125 | + RZA1H_FLM, // image |
| 126 | + |
| 127 | + 256 // ram_to_flash_bytes_to_be_written |
| 128 | +}; |
0 commit comments