1*54fd6939SJiyong Park/' 2*54fd6939SJiyong Park ' Copyright (c) 2020, ARM Limited and Contributors. All rights reserved. 3*54fd6939SJiyong Park ' 4*54fd6939SJiyong Park ' SPDX-License-Identifier: BSD-3-Clause 5*54fd6939SJiyong Park '/ 6*54fd6939SJiyong Park 7*54fd6939SJiyong Park@startuml 8*54fd6939SJiyong Park 9*54fd6939SJiyong Parkfolder SP_vendor_1 { 10*54fd6939SJiyong Park artifact sp_binary_1 11*54fd6939SJiyong Park artifact sp_manifest_1 [ 12*54fd6939SJiyong Park sp_manifest_1 13*54fd6939SJiyong Park === 14*54fd6939SJiyong Park UUID = xxx 15*54fd6939SJiyong Park load_address = 0xaaa 16*54fd6939SJiyong Park owner = "Sip" 17*54fd6939SJiyong Park ... 18*54fd6939SJiyong Park ] 19*54fd6939SJiyong Park} 20*54fd6939SJiyong Park 21*54fd6939SJiyong Parkfolder SP_vendor_2 { 22*54fd6939SJiyong Park artifact sp_binary_2 23*54fd6939SJiyong Park artifact sp_manifest_2 [ 24*54fd6939SJiyong Park sp_manifest_2 25*54fd6939SJiyong Park === 26*54fd6939SJiyong Park UUID = yyy 27*54fd6939SJiyong Park load_address = 0xbbb 28*54fd6939SJiyong Park owner = "Plat" 29*54fd6939SJiyong Park ] 30*54fd6939SJiyong Park} 31*54fd6939SJiyong Park 32*54fd6939SJiyong Parkartifact tb_fw_config.dts [ 33*54fd6939SJiyong Park tb_fw_config.dts 34*54fd6939SJiyong Park ---- 35*54fd6939SJiyong Park secure-partitions 36*54fd6939SJiyong Park === 37*54fd6939SJiyong Park spkg_1 UUID 38*54fd6939SJiyong Park spkg_1 load_address 39*54fd6939SJiyong Park --- 40*54fd6939SJiyong Park spkg_2 UUID 41*54fd6939SJiyong Park spkg_2 load_address 42*54fd6939SJiyong Park --- 43*54fd6939SJiyong Park ... 44*54fd6939SJiyong Park === 45*54fd6939SJiyong Park ...<rest of the nodes> 46*54fd6939SJiyong Park] 47*54fd6939SJiyong Park 48*54fd6939SJiyong Parkartifact config.json [ 49*54fd6939SJiyong Park SP_LAYOUT.json 50*54fd6939SJiyong Park === 51*54fd6939SJiyong Park path to sp_binary_1 52*54fd6939SJiyong Park path to sp_manifest_1 53*54fd6939SJiyong Park --- 54*54fd6939SJiyong Park path to sp_binary_2 55*54fd6939SJiyong Park path to sp_manifest_2 56*54fd6939SJiyong Park --- 57*54fd6939SJiyong Park ... 58*54fd6939SJiyong Park] 59*54fd6939SJiyong Park 60*54fd6939SJiyong Parkcontrol sp_mk_generator 61*54fd6939SJiyong Park 62*54fd6939SJiyong Parkartifact sp_gen [ 63*54fd6939SJiyong Park sp_gen.mk 64*54fd6939SJiyong Park === 65*54fd6939SJiyong Park FDT_SOURCE = ... 66*54fd6939SJiyong Park SPTOOL_ARGS = ... 67*54fd6939SJiyong Park FIP_ARGS = ... 68*54fd6939SJiyong Park CRT_ARGS = ... 69*54fd6939SJiyong Park] 70*54fd6939SJiyong Park 71*54fd6939SJiyong Parkcontrol dtc 72*54fd6939SJiyong Parkcontrol sptool 73*54fd6939SJiyong Park 74*54fd6939SJiyong Parkartifact tb_fw_config.dtb 75*54fd6939SJiyong Park 76*54fd6939SJiyong Parkartifact spkg_1 [ 77*54fd6939SJiyong Park sp1.pkg 78*54fd6939SJiyong Park === 79*54fd6939SJiyong Park <i>header</i> 80*54fd6939SJiyong Park --- 81*54fd6939SJiyong Park manifest 82*54fd6939SJiyong Park --- 83*54fd6939SJiyong Park binary 84*54fd6939SJiyong Park] 85*54fd6939SJiyong Park 86*54fd6939SJiyong Parkartifact spkg_2 [ 87*54fd6939SJiyong Park sp2.pkg 88*54fd6939SJiyong Park === 89*54fd6939SJiyong Park <i>header</i> 90*54fd6939SJiyong Park --- 91*54fd6939SJiyong Park manifest 92*54fd6939SJiyong Park --- 93*54fd6939SJiyong Park binary 94*54fd6939SJiyong Park] 95*54fd6939SJiyong Park 96*54fd6939SJiyong Parkartifact signed_tb_fw_config.dtb [ 97*54fd6939SJiyong Park tb_fw_config.dtb (signed) 98*54fd6939SJiyong Park] 99*54fd6939SJiyong Park 100*54fd6939SJiyong Parkartifact signed_spkg_1 [ 101*54fd6939SJiyong Park sp1.pkg (signed) 102*54fd6939SJiyong Park === 103*54fd6939SJiyong Park <i>header</i> 104*54fd6939SJiyong Park --- 105*54fd6939SJiyong Park manifest 106*54fd6939SJiyong Park --- 107*54fd6939SJiyong Park binary 108*54fd6939SJiyong Park --- 109*54fd6939SJiyong Park <i>signature</I> 110*54fd6939SJiyong Park] 111*54fd6939SJiyong Park 112*54fd6939SJiyong Parkartifact signed_spkg_2 [ 113*54fd6939SJiyong Park sp2.pkg (signed) 114*54fd6939SJiyong Park === 115*54fd6939SJiyong Park <i>header</i> 116*54fd6939SJiyong Park --- 117*54fd6939SJiyong Park manifest 118*54fd6939SJiyong Park --- 119*54fd6939SJiyong Park binary 120*54fd6939SJiyong Park --- 121*54fd6939SJiyong Park <i>signature</I> 122*54fd6939SJiyong Park] 123*54fd6939SJiyong Park 124*54fd6939SJiyong Parkcontrol crttool 125*54fd6939SJiyong Parkcontrol fiptool 126*54fd6939SJiyong Park 127*54fd6939SJiyong Parkartifact fip [ 128*54fd6939SJiyong Park fip.bin 129*54fd6939SJiyong Park === 130*54fd6939SJiyong Park tb_fw_config.dtb (signed) 131*54fd6939SJiyong Park --- 132*54fd6939SJiyong Park ... 133*54fd6939SJiyong Park --- 134*54fd6939SJiyong Park sp1.pkg (signed & SiP owned) 135*54fd6939SJiyong Park --- 136*54fd6939SJiyong Park sp2.pkg (signed & Platform owned) 137*54fd6939SJiyong Park --- 138*54fd6939SJiyong Park ... 139*54fd6939SJiyong Park] 140*54fd6939SJiyong Park 141*54fd6939SJiyong Parkconfig.json .up.> SP_vendor_1 142*54fd6939SJiyong Parkconfig.json .up.> SP_vendor_2 143*54fd6939SJiyong Parkconfig.json --> sp_mk_generator 144*54fd6939SJiyong Parksp_mk_generator --> sp_gen 145*54fd6939SJiyong Parksp_gen --> fiptool 146*54fd6939SJiyong Parksp_gen --> cert_create 147*54fd6939SJiyong Parksp_gen --> sptool 148*54fd6939SJiyong Park 149*54fd6939SJiyong Parksptool --> spkg_1 150*54fd6939SJiyong Parksptool --> spkg_2 151*54fd6939SJiyong Park 152*54fd6939SJiyong Parkspkg_1 --> cert_create 153*54fd6939SJiyong Parkspkg_2 --> cert_create 154*54fd6939SJiyong Parkcert_create --> signed_spkg_1 155*54fd6939SJiyong Parkcert_create --> signed_spkg_2 156*54fd6939SJiyong Park 157*54fd6939SJiyong Parktb_fw_config.dts --> dtc 158*54fd6939SJiyong Parkdtc --> tb_fw_config.dtb 159*54fd6939SJiyong Parktb_fw_config.dtb --> cert_create 160*54fd6939SJiyong Parkcert_create --> signed_tb_fw_config.dtb 161*54fd6939SJiyong Park 162*54fd6939SJiyong Parksigned_tb_fw_config.dtb --> fiptool 163*54fd6939SJiyong Parksigned_spkg_1 -down-> fiptool 164*54fd6939SJiyong Parksigned_spkg_2 -down-> fiptool 165*54fd6939SJiyong Parkfiptool -down-> fip 166*54fd6939SJiyong Park 167*54fd6939SJiyong Park@enduml 168