1 /* 2 * Copyright (c) 2016, ARM Limited and Contributors. All rights reserved. 3 * 4 * Redistribution and use in source and binary forms, with or without 5 * modification, are permitted provided that the following conditions are met: 6 * 7 * Redistributions of source code must retain the above copyright notice, this 8 * list of conditions and the following disclaimer. 9 * 10 * Redistributions in binary form must reproduce the above copyright notice, 11 * this list of conditions and the following disclaimer in the documentation 12 * and/or other materials provided with the distribution. 13 * 14 * Neither the name of ARM nor the names of its contributors may be used 15 * to endorse or promote products derived from this software without specific 16 * prior written permission. 17 * 18 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 19 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 20 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 21 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE 22 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 23 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 24 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 25 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 26 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 27 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 28 * POSSIBILITY OF SUCH DAMAGE. 29 */ 30 31 #include <stddef.h> 32 33 #include "firmware_image_package.h" 34 #include "tbbr_config.h" 35 36 /* The images used depends on the platform. */ 37 toc_entry_t toc_entries[] = { 38 { 39 .name = "SCP Firmware Updater Configuration FWU SCP_BL2U", 40 .uuid = UUID_TRUSTED_UPDATE_FIRMWARE_SCP_BL2U, 41 .cmdline_name = "scp-fwu-cfg", 42 .action = 0, 43 .action_arg = NULL 44 }, 45 { 46 .name = "AP Firmware Updater Configuration BL2U", 47 .uuid = UUID_TRUSTED_UPDATE_FIRMWARE_BL2U, 48 .cmdline_name = "ap-fwu-cfg", 49 .action = 0, 50 .action_arg = NULL 51 }, 52 { 53 .name = "Firmware Updater NS_BL2U", 54 .uuid = UUID_TRUSTED_UPDATE_FIRMWARE_NS_BL2U, 55 .cmdline_name = "fwu", 56 .action = 0, 57 .action_arg = NULL 58 }, 59 { 60 .name = "Non-Trusted Firmware Updater certificate", 61 .uuid = UUID_TRUSTED_FWU_CERT, 62 .cmdline_name = "fwu-cert", 63 .action = 0, 64 .action_arg = NULL 65 }, 66 { 67 .name = "Trusted Boot Firmware BL2", 68 .uuid = UUID_TRUSTED_BOOT_FIRMWARE_BL2, 69 .cmdline_name = "tb-fw", 70 .action = 0, 71 .action_arg = NULL 72 }, 73 { 74 .name = "SCP Firmware SCP_BL2", 75 .uuid = UUID_SCP_FIRMWARE_SCP_BL2, 76 .cmdline_name = "scp-fw", 77 .action = 0, 78 .action_arg = NULL 79 }, 80 { 81 .name = "EL3 Runtime Firmware BL31", 82 .uuid = UUID_EL3_RUNTIME_FIRMWARE_BL31, 83 .cmdline_name = "soc-fw", 84 .action = 0, 85 .action_arg = NULL 86 }, 87 { 88 .name = "Secure Payload BL32 (Trusted OS)", 89 .uuid = UUID_SECURE_PAYLOAD_BL32, 90 .cmdline_name = "tos-fw", 91 .action = 0, 92 .action_arg = NULL 93 }, 94 { 95 .name = "Non-Trusted Firmware BL33", 96 .uuid = UUID_NON_TRUSTED_FIRMWARE_BL33, 97 .cmdline_name = "nt-fw", 98 .action = 0, 99 .action_arg = NULL 100 }, 101 /* Key Certificates */ 102 { 103 .name = "Root Of Trust key certificate", 104 .uuid = UUID_ROT_KEY_CERT, 105 .cmdline_name = "rot-cert", 106 .action = 0, 107 .action_arg = NULL 108 }, 109 { 110 .name = "Trusted key certificate", 111 .uuid = UUID_TRUSTED_KEY_CERT, 112 .cmdline_name = "trusted-key-cert", 113 .action = 0, 114 .action_arg = NULL 115 }, 116 { 117 .name = "SCP Firmware key certificate", 118 .uuid = UUID_SCP_FW_KEY_CERT, 119 .cmdline_name = "scp-fw-key-cert", 120 .action = 0, 121 .action_arg = NULL 122 }, 123 { 124 .name = "SoC Firmware key certificate", 125 .uuid = UUID_SOC_FW_KEY_CERT, 126 .cmdline_name = "soc-fw-key-cert", 127 .action = 0, 128 .action_arg = NULL 129 }, 130 { 131 .name = "Trusted OS Firmware key certificate", 132 .uuid = UUID_TRUSTED_OS_FW_KEY_CERT, 133 .cmdline_name = "tos-fw-key-cert", 134 .action = 0, 135 .action_arg = NULL 136 }, 137 { 138 .name = "Non-Trusted Firmware key certificate", 139 .uuid = UUID_NON_TRUSTED_FW_KEY_CERT, 140 .cmdline_name = "nt-fw-key-cert", 141 .action = 0, 142 .action_arg = NULL 143 }, 144 /* Content certificates */ 145 { 146 .name = "Trusted Boot Firmware BL2 certificate", 147 .uuid = UUID_TRUSTED_BOOT_FW_CERT, 148 .cmdline_name = "tb-fw-cert", 149 .action = 0, 150 .action_arg = NULL 151 }, 152 { 153 .name = "SCP Firmware content certificate", 154 .uuid = UUID_SCP_FW_CONTENT_CERT, 155 .cmdline_name = "scp-fw-cert", 156 .action = 0, 157 .action_arg = NULL 158 }, 159 { 160 .name = "SoC Firmware content certificate", 161 .uuid = UUID_SOC_FW_CONTENT_CERT, 162 .cmdline_name = "soc-fw-cert", 163 .action = 0, 164 .action_arg = NULL 165 }, 166 { 167 .name = "Trusted OS Firmware content certificate", 168 .uuid = UUID_TRUSTED_OS_FW_CONTENT_CERT, 169 .cmdline_name = "tos-fw-cert", 170 .action = 0, 171 .action_arg = NULL 172 }, 173 { 174 .name = "Non-Trusted Firmware content certificate", 175 .uuid = UUID_NON_TRUSTED_FW_CONTENT_CERT, 176 .cmdline_name = "nt-fw-cert", 177 .action = 0, 178 .action_arg = NULL 179 }, 180 { 181 .name = NULL, 182 .uuid = { 0 }, 183 .cmdline_name = NULL, 184 .action = 0, 185 .action_arg = NULL 186 } 187 }; 188 189 size_t toc_entries_len = sizeof(toc_entries) / sizeof(toc_entries[0]); 190