Files
luban-lite/doc/topics/sdk/secure/spienc-generate-efuse-V2.html

411 lines
51 KiB
HTML
Raw Normal View History

2025-04-23 17:54:31 +08:00
<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-cn" lang="zh-cn" data-whc_version="26.1">
2025-07-22 11:15:46 +08:00
<head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><meta name="DC.rights.owner" content="(C) 版权 2025"/><meta name="copyright" content="(C) 版权 2025"/><meta name="generator" content="DITA-OT"/><meta name="DC.type" content="concept"/><meta name="description" content="使用 SPIENC 加密功能,需要将一个 128 位的 AES 密钥烧录到芯片 eFuse 中。制作加密镜像时也需要使用上述值。因此,使用过程中,确保上述值保持不变且已妥善管理,以免泄露。 本节描述了生成 eFuse 烧录程序的详细流程。在示例方案中,提供了设置 AES 密钥的输入 txt 文件和一个用于生成及更新密钥的脚本: 开发板示例: ..."/><meta name="DC.relation" content="../../../topics/sdk/secure/spienc_function_v2-V2.html"/><meta name="DC.relation" content="../../../topics/sdk/secure/spienc_function_v2-V2.html"/><meta name="DC.relation" content="../../../topics/sdk/secure/spienc-generate-production-firmware-V2.html"/><meta name="DC.contributor" content="yan.wang"/><meta name="DC.creator" content="yan.wang"/><meta name="DC.date.modified" content="2025-05-16"/><meta name="DC.format" content="HTML5"/><meta name="DC.identifier" content="spienc-generate-efuse"/>
<title>烧录 eFuse</title><!-- Generated with build number 2025051600. --><meta name="wh-path2root" content="../../../"/><meta name="wh-toc-id" content="spienc-generate-efuse-d3752e1581"/><meta name="wh-source-relpath" content="topics/sdk/secure/spienc-generate-efuse.dita"/><meta name="wh-out-relpath" content="topics/sdk/secure/spienc-generate-efuse-V2.html"/>
2025-04-23 17:54:31 +08:00
<link rel="stylesheet" type="text/css" href="../../../webhelp/app/commons.css?buildId=2024041900"/>
<link rel="stylesheet" type="text/css" href="../../../webhelp/app/topic.css?buildId=2024041900"/>
2025-07-22 11:15:46 +08:00
<script src="../../../webhelp/app/options/properties.js?buildId=20250519091401"></script>
2025-04-23 17:54:31 +08:00
<script src="../../../webhelp/app/localization/strings.js?buildId=2024041900"></script>
2025-07-22 11:15:46 +08:00
<script src="../../../webhelp/app/search/index/keywords.js?buildId=20250519091401"></script>
2025-04-23 17:54:31 +08:00
<script defer="defer" src="../../../webhelp/app/commons.js?buildId=2024041900"></script>
<script defer="defer" src="../../../webhelp/app/topic.js?buildId=2024041900"></script>
<link rel="stylesheet" type="text/css" href="../../../webhelp/template/css/aic-styles-web-internal.css?buildId=2024041900"/><link rel="stylesheet" type="text/css" href="../../../webhelp/template/css/notes.css?buildId=2024041900"/><link rel="stylesheet" type="text/css" href="../../../webhelp/template/css/aic-common.css?buildId=2024041900"/><link rel="stylesheet" type="text/css" href="../../../webhelp/template/css/aic-images.css?buildId=2024041900"/><link rel="stylesheet" type="text/css" href="../../../webhelp/template/css/footnote.css?buildId=2024041900"/><link rel="stylesheet" type="text/css" href="../../../webhelp/template/css/aic-highlight-changes.css?buildId=2024041900"/><link rel="stylesheet" type="text/css" href="../../../webhelp/template/css/search-in-header.css?buildId=2024041900"/><link rel="stylesheet" type="text/css" href="../../../webhelp/template/css/topic-body-list.css?buildId=2024041900"/></head>
<body id="spienc-generate-efuse" class="wh_topic_page frmBody">
<a href="#wh_topic_body" class="sr-only sr-only-focusable">
跳转到主要内容
</a>
<header class="navbar navbar-default wh_header">
<div class="container-fluid">
<div xmlns:whc="http://www.oxygenxml.com/webhelp/components" class="wh_header_flex_container navbar-nav navbar-expand-md navbar-dark">
<div class="wh_logo_and_publication_title_container">
<div class="wh_logo_and_publication_title">
<a href="https://www.artinchip.com" class=" wh_logo d-none d-sm-block "><img src="../../../company-logo.png" alt=" RTOS SDK 使用指南 SDK 指南文件 "/></a>
<div class=" wh_publication_title "><a href="../../../index.html"><span class="booktitle"> <span class="ph mainbooktitle">RTOS SDK 使用指南</span> <span class="ph booktitlealt">SDK 指南文件</span> </span></a></div>
</div>
</div>
<div class="wh_top_menu_and_indexterms_link collapse navbar-collapse" id="wh_top_menu_and_indexterms_link">
</div>
<div class=" wh_search_input navbar-form wh_topic_page_search search " role="form">
<form id="searchForm" method="get" role="search" action="../../../search.html"><div><input type="search" placeholder="搜索 " class="wh_search_textfield" id="textToSearch" name="searchQuery" aria-label="搜索查询" required="required"/><button type="submit" class="wh_search_button" aria-label="搜索"><span class="search_input_text">搜索</span></button></div></form>
</div></div>
</div>
</header>
<div class="container-fluid" id="wh_topic_container">
<div class="row">
<nav class="wh_tools d-print-none navbar-expand-md" aria-label="Tools">
2025-07-22 11:15:46 +08:00
<div data-tooltip-position="bottom" class=" wh_breadcrumb "><ol class="d-print-none"><li><span class="home"><a href="../../../index.html"><span>主页</span></a></span></li><li><div class="topicref" data-id="concept_rcx_czh_pzb"><div class="title"><a href="../../../topics/sdk/chapter-app.html">应用场景</a><div class="wh-tooltip"><p class="shortdesc">描述了 SDK 在不同应用场景中的配置和使用包括系统更新、OTA、安全方案等。</p></div></div></div></li><li><div class="topicref" data-id="id"><div class="title"><a href="../../../topics/sdk/secure/chapter-secure.html">安全方案</a></div></div></li><li><div class="topicref" data-id="spi-flash-enc-function"><div class="title"><a href="../../../topics/sdk/secure/spi_flash_enc_function.html">SPI Flash 防抄板方案</a></div></div></li><li><div class="topicref" data-id="id"><div class="title"><a href="../../../topics/sdk/secure/spienc_function_v2-V2.html">方案 V2</a></div></div></li><li class="active"><div class="topicref" data-id="spienc-generate-efuse"><div class="title"><a href="../../../topics/sdk/secure/spienc-generate-efuse-V2.html">烧录 eFuse</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li></ol></div>
2025-04-23 17:54:31 +08:00
<div class="wh_right_tools">
<button class="wh_hide_highlight" aria-label="切换搜索突出显示" title="切换搜索突出显示"></button>
<button class="webhelp_expand_collapse_sections" data-next-state="collapsed" aria-label="折叠截面" title="折叠截面"></button>
<div class=" wh_navigation_links "><span id="topic_navigation_links" class="navheader">
2025-07-22 11:15:46 +08:00
<span class="navprev"><a class="- topic/link link" href="../../../topics/sdk/secure/spienc_function_v2-V2.html" title="方案 V2" aria-label="上一主题: 方案 V2" rel="prev"></a></span>
<span class="navnext"><a class="- topic/link link" href="../../../topics/sdk/secure/spienc-generate-production-firmware-V2.html" title="生成量产固件" aria-label="下一主题: 生成量产固件" rel="next"></a></span> </span></div>
2025-04-23 17:54:31 +08:00
<div class=" wh_print_link print d-none d-md-inline-block "><button onClick="window.print()" title="打印此页" aria-label="打印此页"></button></div>
<button type="button" id="wh_toc_button" class="custom-toggler navbar-toggler collapsed wh_toggle_button navbar-light" aria-expanded="false" aria-label="Toggle publishing table of content" aria-controls="wh_publication_toc">
<span class="navbar-toggler-icon"></span>
</button>
</div>
</nav>
</div>
<div class="wh_content_area">
<div class="row">
<nav id="wh_publication_toc" class="col-lg-3 col-md-3 col-sm-12 d-md-block d-none d-print-none" aria-label="Table of Contents Container">
<div id="wh_publication_toc_content">
2025-07-22 11:15:46 +08:00
<div class=" wh_publication_toc " data-tooltip-position="right"><span class="expand-button-action-labels"><span id="button-expand-action" role="button" aria-label="Expand"></span><span id="button-collapse-action" role="button" aria-label="Collapse"></span><span id="button-pending-action" role="button" aria-label="Pending"></span></span><ul role="tree" aria-label="Table of Contents"><li role="treeitem"><div data-tocid="revinfo_linux-d3752e463" class="topicref" data-id="revinfo_linux" data-state="leaf"><span role="button" class="wh-expand-btn"></span><div class="title"><a href="../../../topics/revinfo/revinfo_rtos.html" id="revinfo_linux-d3752e463-link">修订记录</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="id-d3752e480" class="topicref" data-id="id" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action id-d3752e480-link" class="wh-expand-btn"></span><div class="title"><a href="../../../topics/sdk/env/sdk-compile.html" id="id-d3752e480-link">SDK 编译</a><div class="wh-tooltip"><p class="shortdesc">介绍不同编译环境下 SDK 的详细编译流程。</p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="id-d3752e604" class="topicref" data-id="id" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action id-d3752e604-link" class="wh-expand-btn"></span><div class="title"><a href="../../../topics/sdk/advanced/sdk-usage.html" id="id-d3752e604-link">使用指南</a><div class="wh-tooltip"><p class="shortdesc">命令详解,编译选项,镜像和分区配置,添加应用和驱动等的详细使用说明。</p></div></div></div></li><li role="treeitem" aria-expanded="true"><div data-tocid="concept_rcx_czh_pzb-d3752e1004" class="topicref" data-id="concept_rcx_czh_pzb" data-state="expanded"><span role="button" tabindex="0" aria-labelledby="button-collapse-action concept_rcx_czh_pzb-d3752e1004-link" class="wh-expand-btn"></span><div class="title"><a href="../../../topics/sdk/chapter-app.html" id="concept_rcx_czh_pzb-d3752e1004-link">应用场景</a><div class="wh-tooltip"><p class="shortdesc">描述了 SDK 在不同应用场景中的配置和使用包括系统更新、OTA、安全方案等。</p></div></div></div><ul role="group" class="navbar-nav nav-list"><li role="treeitem"><div data-tocid="id-d3752e1021" class="topicref" data-id="id" data-state="leaf"><span role="button" class="wh-expand-btn"></span><div class="title"><a href="../../../topics/sdk/usb/udisk.html" id="id-d3752e1021-link">挂载 U 盘 </a></div></div></li><li role="treeitem"><div data-tocid="id-d3752e1035" class="topicref" data-id="id" data-state="leaf"><span role="button" class="wh-expand-btn"></span><div class="title"><a href="../../../topics/sdk/sdmc/sdcard.html" id="id-d3752e1035-link">挂载 SD 卡</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="id-d3752e1049" class="topicref" data-id="id" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action id-d3752e1049-link" class="wh-expand-btn"></span><div class="title"><a href="../../../topics/sdk/burnsys/burnsys_user_guide.html" id="id-d3752e1049-link">系统更新</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="id-d3752e1163" class="topicref" data-id="id" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action id-d3752e1163-link" class="wh-expand-btn"></span><div class="title"><a href="../../../topics/sdk/ota/ota_guide.html" id="id-d3752e1163-link">OTA 方案</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="id-d3752e1283" class="topicref" data-id="id" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action id-d3752e1283-link" class="wh-expand-btn"></span><div class="title"><a href="../../../topics/sdk/xip/xip_user_guide.html" id="id-d3752e1283-link">XIP 方案 </a></div></div></li><li role="treeitem" aria-expanded="false"><div dat
2025-04-23 17:54:31 +08:00
</div>
</nav>
<div class="col-lg-7 col-md-9 col-sm-12" id="wh_topic_body">
<button id="wh_close_publication_toc_button" class="close-toc-button d-none" aria-label="Toggle publishing table of content" aria-controls="wh_publication_toc" aria-expanded="true">
<span class="close-toc-icon-container">
<span class="close-toc-icon"></span>
</span>
</button>
<button id="wh_close_topic_toc_button" class="close-toc-button d-none" aria-label="Toggle topic table of content" aria-controls="wh_topic_toc" aria-expanded="true">
<span class="close-toc-icon-container">
<span class="close-toc-icon"></span>
</span>
</button>
<div class=" wh_topic_content body "><main role="main"><article class="- topic/topic concept/concept topic concept" role="article" aria-labelledby="ariaid-title1">
2025-07-22 11:15:46 +08:00
<span class="edit-link" style="font-size:12px; opacity:0.6; text-align:right; vertical-align:middle"><a target="_blank" href="http://aicdocco/taskstopics/sdk/secure/spienc-generate-efuse.dita">Edit online</a></span><h1 class="- topic/title title topictitle1" id="ariaid-title1">烧录 eFuse</h1>
2025-04-23 17:54:31 +08:00
2025-07-22 11:15:46 +08:00
<div class="date inPage">16 May 2025</div><div style="color: gray;">
2025-04-23 17:54:31 +08:00
Read time: 3 minute(s)
</div>
<div class="- topic/body concept/conbody body conbody"><p class="- topic/shortdesc shortdesc"></p>
<div class="- topic/div div">
2025-07-22 11:15:46 +08:00
<p class="- topic/p p" data-ofbid="d111943e32__20250519091516">使用 SPIENC 加密功能,需要将一个 128 位的 AES 密钥烧录到芯片 eFuse 中。制作加密镜像时也需要使用上述值。因此,使用过程中,确保上述值保持不变且已妥善管理,以免泄露。</p>
2025-04-23 17:54:31 +08:00
<div class="- topic/div div">
2025-07-22 11:15:46 +08:00
<p class="- topic/p p" data-ofbid="d111943e37__20250519091516">本节描述了生成 eFuse 烧录程序的详细流程。在示例方案中,提供了设置 AES
2025-04-23 17:54:31 +08:00
密钥的输入 <span class="+ topic/ph sw-d/filepath ph filepath">txt</span> 文件和一个用于生成及更新密钥的脚本:</p>
2025-07-22 11:15:46 +08:00
<div class="- topic/p p" data-ofbid="d111943e43__20250519091516">开发板示例:<ul class="- topic/ul ul" id="spienc-generate-efuse__ul_b5s_5zy_52c" data-ofbid="spienc-generate-efuse__ul_b5s_5zy_52c">
<li class="- topic/li li" data-ofbid="d111943e47__20250519091516">
<p class="- topic/p p" data-ofbid="d111943e49__20250519091516"><span class="+ topic/ph sw-d/filepath ph filepath">SDK/target/d12x/demo68-nor/pack/keys/set_aes_key.txt</span>:设置加密密钥</p>
2025-04-23 17:54:31 +08:00
</li>
2025-07-22 11:15:46 +08:00
<li class="- topic/li li" data-ofbid="d111943e55__20250519091516">
<p class="- topic/p p" data-ofbid="d111943e57__20250519091516"><span class="+ topic/ph sw-d/filepath ph filepath">SDK/target/d12x/demo68-nor/pack/keys/gen_spienc_key.bat</span>Windows
2025-04-23 17:54:31 +08:00
上执行编译时,使用该脚本</p>
</li>
2025-07-22 11:15:46 +08:00
<li class="- topic/li li" data-ofbid="d111943e63__20250519091516">
<p class="- topic/p p" data-ofbid="d111943e65__20250519091516"><span class="+ topic/ph sw-d/filepath ph filepath">SDK/target/d12x/demo68-nor/pack/keys/gen_spienc_key.sh</span>Linux
2025-04-23 17:54:31 +08:00
上执行编译时,使用该脚本</p>
</li>
</ul></div>
</div>
</div>
<section class="- topic/section section" id="spienc-generate-efuse__section_in3_5rx_52c" data-ofbid="spienc-generate-efuse__section_in3_5rx_52c"><h2 class="- topic/title title sectiontitle">生成密钥</h2>
2025-07-22 11:15:46 +08:00
<div class="- topic/p p" data-ofbid="d111943e79__20250519091516">根据运行环境执行对应命令,运行生成密钥的脚本:<ul class="- topic/ul ul" id="spienc-generate-efuse__ul_pwh_3vd_jdc" data-ofbid="spienc-generate-efuse__ul_pwh_3vd_jdc">
<li class="- topic/li li" data-ofbid="d111943e83__20250519091516"><strong class="+ topic/ph hi-d/b ph b">Linux 环境</strong>下:<ol class="- topic/ol ol" id="spienc-generate-efuse__ol_mp2_s42_jdc" data-ofbid="spienc-generate-efuse__ol_mp2_s42_jdc">
<li class="- topic/li li" data-ofbid="d111943e90__20250519091516">
<p class="- topic/p p" data-ofbid="d111943e92__20250519091516">确保已经安装 OpenSSL。如未安装可执行以下命令进行安装</p>
2025-04-23 17:54:31 +08:00
<pre class="+ topic/pre pr-d/codeblock pre codeblock language-c" id="spienc-generate-efuse__pre_x1g_s42_jdc" data-ofbid="spienc-generate-efuse__pre_x1g_s42_jdc">sudo apt-get install openssl</pre>
</li>
<li class="- topic/li li" id="spienc-generate-efuse__li_ivh_w3x_52c" data-ofbid="spienc-generate-efuse__li_ivh_w3x_52c">
2025-07-22 11:15:46 +08:00
<p class="- topic/p p" data-ofbid="d111943e101__20250519091516">准备初始密钥文件 <span class="+ topic/ph sw-d/filepath ph filepath">set_aes_key.txt</span></p>
<p class="- topic/p p" data-ofbid="d111943e107__20250519091516"><span class="+ topic/ph sw-d/filepath ph filepath">set_aes_key.txt</span>
2025-04-23 17:54:31 +08:00
中有一个初始密钥,需要手动修改其中的 <code class="+ topic/ph pr-d/codeph ph codeph">HEX</code> 密钥内容。</p>
</li>
2025-07-22 11:15:46 +08:00
<li class="- topic/li li" id="spienc-generate-efuse__li_qlh_vfz_52c" data-ofbid="spienc-generate-efuse__li_qlh_vfz_52c">进入开发板根目录:<pre class="+ topic/pre pr-d/codeblock pre codeblock language-c" id="spienc-generate-efuse__codeblock_on1_lfz_52c" data-ofbid="spienc-generate-efuse__codeblock_on1_lfz_52c">cd SDK/target/&lt;soc&gt;/&lt;board&gt;/pack/keys/</pre><p class="- topic/p p" data-ofbid="d111943e120__20250519091516">例如:</p><pre class="+ topic/pre pr-d/codeblock pre codeblock language-c" id="spienc-generate-efuse__codeblock_lvd_d1z_52c" data-ofbid="spienc-generate-efuse__codeblock_lvd_d1z_52c">cd SDK/target/d12x/demo68-nor/pack/keys/</pre></li>
<li class="- topic/li li" data-ofbid="d111943e125__20250519091516">
<div class="- topic/p p" data-ofbid="d111943e127__20250519091516">使用下列命令运行脚本生成所需的密钥文件和头文件:<pre class="+ topic/pre pr-d/codeblock pre codeblock language-c" id="spienc-generate-efuse__codeblock_it5_g1z_52c" data-ofbid="spienc-generate-efuse__codeblock_it5_g1z_52c">./gen_spienc_key.sh</pre></div>
2025-04-23 17:54:31 +08:00
<div class="- topic/p p" id="spienc-generate-efuse__p_lkf_1jx_52c" data-ofbid="spienc-generate-efuse__p_lkf_1jx_52c">生成的文件如下所示:<ul class="- topic/ul ul" id="spienc-generate-efuse__ul_ovx_n52_jdc" data-ofbid="spienc-generate-efuse__ul_ovx_n52_jdc">
2025-07-22 11:15:46 +08:00
<li class="- topic/li li" data-ofbid="d111943e136__20250519091516">
<p class="- topic/p p" data-ofbid="d111943e138__20250519091516">AES 密钥 <span class="+ topic/ph sw-d/filepath ph filepath">spi_aes.key</span></p>
2025-04-23 17:54:31 +08:00
</li>
2025-07-22 11:15:46 +08:00
<li class="- topic/li li" data-ofbid="d111943e144__20250519091516">
<p class="- topic/p p" data-ofbid="d111943e146__20250519091516">AES 对应的 C 语言头文件
2025-04-23 17:54:31 +08:00
<span class="+ topic/ph sw-d/filepath ph filepath">spi_aes_key.h</span></p>
</li>
</ul></div>
</li>
<li class="- topic/li li" id="spienc-generate-efuse__li_cbr_jjx_52c" data-ofbid="spienc-generate-efuse__li_cbr_jjx_52c">
2025-07-22 11:15:46 +08:00
<p class="- topic/p p" data-ofbid="d111943e156__20250519091516"><span class="+ topic/ph sw-d/filepath ph filepath">spi_aes_key.h</span> 文件复制粘贴至
2025-04-23 17:54:31 +08:00
<span class="+ topic/ph sw-d/filepath ph filepath">lite/bsp/examples_bare/test-efuse/</span>
目录中,供编译烧录 eFuse 的程序时使用。</p>
2025-07-22 11:15:46 +08:00
<p class="- topic/p p" data-ofbid="d111943e165__20250519091516"><span class="+ topic/ph sw-d/filepath ph filepath">spi_aes.key</span> 和其它文件则保留在
2025-04-23 17:54:31 +08:00
<span class="+ topic/ph sw-d/filepath ph filepath">SDK/target/&lt;SoC&gt;/&lt;board&gt;/pack/keys/</span>,在使用
<span class="+ topic/ph sw-d/filepath ph filepath">mk_image.py</span> 生成加密固件时使用,例如<span class="+ topic/ph sw-d/filepath ph filepath">SDK/target/d12x/demo68-nor/pack/keys/</span></p>
<div class="- topic/note note important note_important" id="spienc-generate-efuse__note_y45_1p2_jdc" data-ofbid="spienc-generate-efuse__note_y45_1p2_jdc"><span class="note__title">重要:</span>
生成的密钥务必妥善保管,以免丢失或者泄露。</div>
</li>
</ol></li>
2025-07-22 11:15:46 +08:00
<li class="- topic/li li" data-ofbid="d111943e183__20250519091516">
<p class="- topic/p p" data-ofbid="d111943e185__20250519091516"><strong class="+ topic/ph hi-d/b ph b">Windows 环境</strong> 下:</p>
<div class="- topic/p p" data-ofbid="d111943e191__20250519091516">
2025-04-23 17:54:31 +08:00
<ol class="- topic/ol ol arabic simple" id="spienc-generate-efuse__ol_in4_dp4_fdc" data-ofbid="spienc-generate-efuse__ol_in4_dp4_fdc">
2025-07-22 11:15:46 +08:00
<li class="- topic/li li" data-ofbid="d111943e195__20250519091516">
<p class="- topic/p p" data-ofbid="d111943e197__20250519091516">准备初始密钥文件 <span class="+ topic/ph sw-d/filepath ph filepath">set_aes_key.txt</span><span class="- topic/ph ph">
<span class="+ topic/ph sw-d/filepath ph filepath">set_nonce.txt</span></span></p>
<p class="- topic/p p" data-ofbid="d111943e207__20250519091516"><span class="+ topic/ph sw-d/filepath ph filepath">set_aes_key.txt</span>
<span class="- topic/ph ph"><span class="+ topic/ph sw-d/filepath ph filepath">set_nonce.txt</span>
文件</span>中有一个初始密钥,需要手动修改其中的 <code class="+ topic/ph pr-d/codeph ph codeph">HEX</code> 密钥内容。</p>
</li>
<li class="- topic/li li" data-ofbid="d111943e222__20250519091516">进入开发板根目录:<pre class="+ topic/pre pr-d/codeblock pre codeblock language-c" id="spienc-generate-efuse__d394e150" data-ofbid="spienc-generate-efuse__d394e150">cd SDK/target/&lt;soc&gt;/&lt;board&gt;/pack/keys/</pre><p class="- topic/p p" data-ofbid="d111943e226__20250519091516">例如:</p><pre class="+ topic/pre pr-d/codeblock pre codeblock language-c" id="spienc-generate-efuse__codeblock_ifx_lr2_jdc" data-ofbid="spienc-generate-efuse__codeblock_ifx_lr2_jdc">cd SDK/target/d21x/demo88-nand/pack/keys/</pre><pre class="+ topic/pre pr-d/codeblock pre codeblock language-c" id="spienc-generate-efuse__d394e156" data-ofbid="spienc-generate-efuse__d394e156">cd SDK/target/d12x/demo68-nor/pack/keys/</pre></li>
<li class="- topic/li li" data-ofbid="d111943e233__20250519091516">
<div class="- topic/p p" data-ofbid="d111943e235__20250519091516">使用下列命令运行脚本生成所需的密钥文件和头文件:<pre class="+ topic/pre pr-d/codeblock pre codeblock language-c" id="spienc-generate-efuse__codeblock_jdw_l1z_52c" data-ofbid="spienc-generate-efuse__codeblock_jdw_l1z_52c">./gen_spienc_key.bat</pre></div>
<div class="- topic/p p" data-ofbid="d111943e240__20250519091516">生成的文件如下所示:<ul class="- topic/ul ul" id="spienc-generate-efuse__d394e168" data-ofbid="spienc-generate-efuse__d394e168">
<li class="- topic/li li" data-ofbid="d111943e244__20250519091516">
<p class="- topic/p p" data-ofbid="d111943e246__20250519091516">AES 密钥 <span class="+ topic/ph sw-d/filepath ph filepath">spi_aes.key</span></p>
2025-04-23 17:54:31 +08:00
</li>
2025-07-22 11:15:46 +08:00
<li class="- topic/li li" data-ofbid="d111943e252__20250519091516">
<p class="- topic/p p" data-ofbid="d111943e254__20250519091516">AES 对应的 C 语言头文件 <span class="+ topic/ph sw-d/filepath ph filepath">spi_aes_key.h</span></p>
</li>
</ul><ul class="- topic/ul ul" id="spienc-generate-efuse__ul_mqc_bvq_z2c" data-ofbid="spienc-generate-efuse__ul_mqc_bvq_z2c">
<li class="- topic/li li" data-ofbid="d111943e262__20250519091516">
<p class="- topic/p p" data-ofbid="d111943e264__20250519091516"><span class="+ topic/ph sw-d/filepath ph filepath">spi_nonce.key</span></p>
</li>
<li class="- topic/li li" data-ofbid="d111943e269__20250519091516">
<p class="- topic/p p" data-ofbid="d111943e271__20250519091516"><span class="+ topic/ph sw-d/filepath ph filepath">rotpk.bin</span></p>
</li>
<li class="- topic/li li" data-ofbid="d111943e276__20250519091516">
<p class="- topic/p p" data-ofbid="d111943e278__20250519091516"><span class="+ topic/ph sw-d/filepath ph filepath">rsa_private_key.der</span></p>
</li>
<li class="- topic/li li" data-ofbid="d111943e283__20250519091516">
<p class="- topic/p p" data-ofbid="d111943e285__20250519091516"><span class="+ topic/ph sw-d/filepath ph filepath">rsa_private_key.pem</span></p>
</li>
<li class="- topic/li li" data-ofbid="d111943e290__20250519091516">
<p class="- topic/p p" data-ofbid="d111943e292__20250519091516"><span class="+ topic/ph sw-d/filepath ph filepath">rsa_public_key.der</span></p>
</li>
<li class="- topic/li li" data-ofbid="d111943e298__20250519091516">
<p class="- topic/p p" data-ofbid="d111943e300__20250519091516"><span class="+ topic/ph sw-d/filepath ph filepath">rsa_public_key.pem</span></p>
</li>
</ul></div>
2025-04-23 17:54:31 +08:00
<div class="- topic/note note important note_important" id="spienc-generate-efuse__note_wb5_jp2_jdc" data-ofbid="spienc-generate-efuse__note_wb5_jp2_jdc"><span class="note__title">重要:</span>
生成的密钥请妥善保管,以免丢失或者泄露。</div>
</li>
2025-07-22 11:15:46 +08:00
<li class="- topic/li li" data-ofbid="d111943e310__20250519091516">
<p class="- topic/p p" data-ofbid="d111943e312__20250519091516"><span class="+ topic/ph sw-d/filepath ph filepath">spi_aes_key.h</span> 文件复制粘贴至
<span class="+ topic/ph sw-d/filepath ph filepath">lite/bsp/examples_bare/test-efuse/</span> 目录中,供编译烧录 eFuse
的程序时使用。</p>
<p class="- topic/p p" data-ofbid="d111943e321__20250519091516"><span class="+ topic/ph sw-d/filepath ph filepath">spi_aes.key</span> 和其它文件则保留在
<span class="+ topic/ph sw-d/filepath ph filepath">SDK/target/&lt;SoC&gt;/&lt;board&gt;/pack/keys/</span>,在使用
<span class="+ topic/ph sw-d/filepath ph filepath">mk_image.py</span> 生成加密固件时使用,例如<span class="+ topic/ph sw-d/filepath ph filepath">SDK/target/d21x/demo88-nand/pack/keys/</span><span class="+ topic/ph sw-d/filepath ph filepath">SDK/target/d12x/demo68-nor/pack/keys/</span></p>
<div class="- topic/note note important note_important" id="spienc-generate-efuse__d394e259" data-ofbid="spienc-generate-efuse__d394e259"><span class="note__title">重要:</span> 生成的密钥务必妥善保管,以免丢失或者泄露。</div>
</li>
2025-04-23 17:54:31 +08:00
</ol>
</div>
</li>
</ul></div>
</section>
<section class="- topic/section section" id="spienc-generate-efuse__section_ctb_1sx_52c" data-ofbid="spienc-generate-efuse__section_ctb_1sx_52c"><h2 class="- topic/title title sectiontitle">编译程序</h2>
2025-07-22 11:15:46 +08:00
<div class="- topic/p p" data-ofbid="d111943e350__20250519091516">
2025-04-23 17:54:31 +08:00
<div class="- topic/div div section" id="spienc-generate-efuse__id5">
2025-07-22 11:15:46 +08:00
<p class="- topic/p p" data-ofbid="d111943e354__20250519091516">按照以下步骤配置和编译 BootLoader并生成烧录固件。</p>
2025-04-23 17:54:31 +08:00
<ol class="- topic/ol ol" id="spienc-generate-efuse__ol_b3x_nv2_jdc" data-ofbid="spienc-generate-efuse__ol_b3x_nv2_jdc">
2025-07-22 11:15:46 +08:00
<li class="- topic/li li" data-ofbid="d111943e359__20250519091516">
<div class="- topic/p p" data-ofbid="d111943e361__20250519091516">进入 SDK 根目录,并应用 BootLoader
2025-04-23 17:54:31 +08:00
的配置:<pre class="+ topic/pre pr-d/codeblock pre codeblock language-c" id="spienc-generate-efuse__codeblock_dmr_bbz_52c" data-ofbid="spienc-generate-efuse__codeblock_dmr_bbz_52c">cd &lt;SDK_ROOT&gt;</pre></div>
2025-07-22 11:15:46 +08:00
<p class="- topic/p p" data-ofbid="d111943e366__20250519091516">例如,应用下列 BootLoader 配置:</p>
2025-04-23 17:54:31 +08:00
<pre class="+ topic/pre pr-d/codeblock pre codeblock language-c" id="spienc-generate-efuse__codeblock_ihl_51z_52c" data-ofbid="spienc-generate-efuse__codeblock_ihl_51z_52c">scons --apply-def=d12x_demo68-nor_baremetal_bootloader_defconfig</pre>
</li>
2025-07-22 11:15:46 +08:00
<li class="- topic/li li" data-ofbid="d111943e373__20250519091516">
<div class="- topic/p p" data-ofbid="d111943e375__20250519091516">打开 BootLoader 的 menuconfig
2025-04-23 17:54:31 +08:00
菜单:<pre class="+ topic/pre pr-d/codeblock pre codeblock language-c" id="spienc-generate-efuse__pre_kn4_dp4_fdc" data-ofbid="spienc-generate-efuse__pre_kn4_dp4_fdc">scons --menuconfig</pre></div>
</li>
2025-07-22 11:15:46 +08:00
<li class="- topic/li li" data-ofbid="d111943e381__20250519091516">
<div class="- topic/p p" data-ofbid="d111943e383__20250519091516">分别勾选或者确认已勾选下列参数:<pre class="+ topic/pre pr-d/codeblock pre codeblock language-c" id="spienc-generate-efuse__pre_ln4_dp4_fdc" data-ofbid="spienc-generate-efuse__pre_ln4_dp4_fdc">AIC_USING_SID
2025-04-23 17:54:31 +08:00
EFUSE_WRITE_SUPPORT
AIC_SID_BURN_SPIENC_KEY_TEST
AIC_USING_SPIENC
AICUPG_FIRMWARE_SECURITY</pre></div>
2025-07-22 11:15:46 +08:00
<p class="- topic/p p" data-ofbid="d111943e388__20250519091516">参数对应的界面配置具体如下:</p>
2025-04-23 17:54:31 +08:00
<pre class="+ topic/pre pr-d/codeblock pre codeblock language-c" id="spienc-generate-efuse__pre_mn4_dp4_fdc" data-ofbid="spienc-generate-efuse__pre_mn4_dp4_fdc">Board options ---&gt;
[*] Using Spienc
[*] Enc qspi0
(<span class="hl-number">0</span>) set qspi0 tweak
[*] Using Efuse/SID
SID Parameter ---&gt;
[*] support efuse write
(<span class="hl-number">64</span>) set efuse max word
Bootloader options ---&gt;
[*] Upgrading ---&gt;
[*] Secure transfer firmware and burn</pre>
<pre class="+ topic/pre pr-d/codeblock pre codeblock language-c" id="spienc-generate-efuse__pre_nn4_dp4_fdc" data-ofbid="spienc-generate-efuse__pre_nn4_dp4_fdc">Drivers options ---&gt;
Drivers examples ---&gt;
[*] Enable SID burn spienc key command</pre>
</li>
2025-07-22 11:15:46 +08:00
<li class="- topic/li li" data-ofbid="d111943e398__20250519091516">
<p class="- topic/p p" data-ofbid="d111943e400__20250519091516">修改代码调用命令烧写 eFuse</p>
2025-04-23 17:54:31 +08:00
<ul class="- topic/ul ul" id="spienc-generate-efuse__ul_zcv_1w2_jdc" data-ofbid="spienc-generate-efuse__ul_zcv_1w2_jdc">
2025-07-22 11:15:46 +08:00
<li class="- topic/li li" data-ofbid="d111943e405__20250519091516">
<p class="- topic/p p" data-ofbid="d111943e407__20250519091516"><span class="+ topic/ph sw-d/filepath ph filepath">application/baremetal/bootloader/main.c</span>:</p>
<div class="- topic/p p" data-ofbid="d111943e412__20250519091516"><code class="+ topic/ph pr-d/codeph ph codeph">console_set_usrname</code> 之后,添加上一个命令执行代码
2025-04-23 17:54:31 +08:00
<code class="+ topic/ph pr-d/codeph ph codeph">console_run_cmd(“efuse_spienc”);</code>,如下所示。<pre class="+ topic/pre pr-d/codeblock pre codeblock language-c" id="spienc-generate-efuse__codeblock_uts_cw2_jdc" data-ofbid="spienc-generate-efuse__codeblock_uts_cw2_jdc"><strong class="hl-keyword">int</strong> main(<strong class="hl-keyword">void</strong>)
{
console_init();
console_set_usrname(<span class="hl-string">"aic"</span>);
console_run_cmd(<span class="hl-string">"efuse_spienc"</span>); <em class="hl-comment">// 加上此句</em>
...
}</pre></div>
</li>
2025-07-22 11:15:46 +08:00
<li class="- topic/li li" data-ofbid="d111943e424__20250519091516">
<p class="- topic/p p" data-ofbid="d111943e426__20250519091516"><span class="+ topic/ph sw-d/filepath ph filepath">bsp/examples_bare/test-efuse/efuse_burn_spienc_key_cmd.c:</span></p>
<p class="- topic/p p" data-ofbid="d111943e430__20250519091516">如果不需要关闭 JTAG可以将 <span class="+ topic/keyword pr-d/apiname keyword apiname">burn_jtag_lock_bit()</span>
2025-04-23 17:54:31 +08:00
相关的调用注释掉。</p>
</li>
</ul>
</li>
2025-07-22 11:15:46 +08:00
<li class="- topic/li li" data-ofbid="d111943e439__20250519091516">
<div class="- topic/p p" data-ofbid="d111943e441__20250519091516">编译程序
2025-04-23 17:54:31 +08:00
BootLoader<pre class="+ topic/pre pr-d/codeblock pre codeblock language-c" id="spienc-generate-efuse__pre_rn4_dp4_fdc" data-ofbid="spienc-generate-efuse__pre_rn4_dp4_fdc">scons # build BootLoader</pre></div>
</li>
2025-07-22 11:15:46 +08:00
<li class="- topic/li li" data-ofbid="d111943e448__20250519091516">
<div class="- topic/p p" data-ofbid="d111943e450__20250519091516">编译程序 APP
2025-04-23 17:54:31 +08:00
并且生成烧录固件:<pre class="+ topic/pre pr-d/codeblock pre codeblock language-c" id="spienc-generate-efuse__codeblock_vm4_p2z_52c" data-ofbid="spienc-generate-efuse__codeblock_vm4_p2z_52c">scons --apply-def=d12x_demo68-nor_rt-thread_helloworld_defconfig</pre><pre class="+ topic/pre pr-d/codeblock pre codeblock language-c" id="spienc-generate-efuse__codeblock_wfh_p2z_52c" data-ofbid="spienc-generate-efuse__codeblock_wfh_p2z_52c">scons</pre></div>
2025-07-22 11:15:46 +08:00
<p class="- topic/p p" data-ofbid="d111943e457__20250519091516"> 编译结果会保存至 <span class="+ topic/ph sw-d/filepath ph filepath">SDK/output/&lt;SoC name&gt;_&lt;board
2025-04-23 17:54:31 +08:00
name_rt-thread_helloworld/images</span> 目录。例如,<span class="+ topic/ph sw-d/filepath ph filepath">SDK/output/d12x_demo68-nor_rt-thread_helloworld/images</span></p>
</li>
</ol>
</div>
</div>
</section>
<section class="- topic/section section" id="spienc-generate-efuse__section_fdt_yrx_52c" data-ofbid="spienc-generate-efuse__section_fdt_yrx_52c"><h2 class="- topic/title title sectiontitle">AiBurn 烧录</h2>
2025-07-22 11:15:46 +08:00
<p class="- topic/p p" data-ofbid="d111943e475__20250519091516">使用 AiBurn 烧录生成的镜像。 </p>
2025-04-23 17:54:31 +08:00
</section>
<section class="- topic/section section" id="spienc-generate-efuse__section_xbz_wrx_52c" data-ofbid="spienc-generate-efuse__section_xbz_wrx_52c"><h2 class="- topic/title title sectiontitle">SD 卡烧录</h2>
2025-07-22 11:15:46 +08:00
<p class="- topic/p p" data-ofbid="d111943e484__20250519091516">准备一张 SD 卡,确保该卡只有一个分区,并且格式化为 FAT32/ exFAT 文件系统。</p>
<p class="- topic/p p" data-ofbid="d111943e487__20250519091516"> 将编译输出目录下的文件复制到 SD 卡的根目录:</p>
2025-04-23 17:54:31 +08:00
<ul class="- topic/ul ul simple" id="spienc-generate-efuse__ul_vn4_dp4_fdc" data-ofbid="spienc-generate-efuse__ul_vn4_dp4_fdc">
2025-07-22 11:15:46 +08:00
<li class="- topic/li li" data-ofbid="d111943e492__20250519091516">
<p class="- topic/p p" data-ofbid="d111943e494__20250519091516"><span class="+ topic/ph sw-d/filepath ph filepath">bootcfg.txt</span></p>
2025-04-23 17:54:31 +08:00
</li>
2025-07-22 11:15:46 +08:00
<li class="- topic/li li" data-ofbid="d111943e499__20250519091516">
<p class="- topic/p p" data-ofbid="d111943e501__20250519091516"><span class="+ topic/ph sw-d/filepath ph filepath">bootloader.aic</span></p>
2025-04-23 17:54:31 +08:00
</li>
</ul>
2025-07-22 11:15:46 +08:00
<p class="- topic/p p" data-ofbid="d111943e507__20250519091516">并且将 <span class="+ topic/ph sw-d/filepath ph filepath">bootcfg.txt</span> 中的内容修改为:</p>
2025-04-23 17:54:31 +08:00
<pre class="+ topic/pre pr-d/codeblock pre codeblock language-c" id="spienc-generate-efuse__pre_wn4_dp4_fdc" data-ofbid="spienc-generate-efuse__pre_wn4_dp4_fdc">boot0=bootloader.aic</pre>
2025-07-22 11:15:46 +08:00
<p class="- topic/p p" data-ofbid="d111943e517__20250519091516">将该卡插到板卡中,上电运行,即可完成相关 eFuse 的烧录。</p>
2025-04-23 17:54:31 +08:00
</section>
<section class="- topic/section section" id="spienc-generate-efuse__section_pnc_wrx_52c" data-ofbid="spienc-generate-efuse__section_pnc_wrx_52c"><h2 class="- topic/title title sectiontitle">烧录日志</h2>
2025-07-22 11:15:46 +08:00
<div class="- topic/p p" data-ofbid="d111943e527__20250519091516">
2025-04-23 17:54:31 +08:00
<pre class="+ topic/pre pr-d/codeblock pre codeblock language-c" id="spienc-generate-efuse__codeblock_dps_rkx_52c" data-ofbid="spienc-generate-efuse__codeblock_dps_rkx_52c">tinySPL [Built on Feb <span class="hl-number">27</span> <span class="hl-number">2025</span> <span class="hl-number">11</span>:<span class="hl-number">21</span>:<span class="hl-number">57</span>]
BROM SPIENC is ENABLED
JTAG LOCK is ENABLED
SPI ENC KEY:
<span class="hl-number">0x406efde8</span> : <span class="hl-number">00</span> <span class="hl-number">00</span> <span class="hl-number">00</span> <span class="hl-number">00</span> <span class="hl-number">00</span> <span class="hl-number">00</span> <span class="hl-number">00</span> <span class="hl-number">00</span> <span class="hl-number">00</span> <span class="hl-number">00</span> <span class="hl-number">00</span> <span class="hl-number">00</span> <span class="hl-number">00</span> <span class="hl-number">00</span> <span class="hl-number">00</span> <span class="hl-number">00</span> <em class="hl-comment">//烧录后的 key 对 CPU 不可见,所以无法读出</em>
SPI ENC Key is read DISABLED
SPI ENC Key is write DISABLED</pre>
</div>
</section>
</div>
</article></main></div>
</div>
<nav role="navigation" id="wh_topic_toc" aria-label="On this page" class="col-lg-2 d-none d-lg-block navbar d-print-none">
<div id="wh_topic_toc_content">
<div class=" wh_topic_toc "><div class="wh_topic_label">在本页上</div><ul><li class="section-item"><div class="section-title"><a href="#spienc-generate-efuse__section_in3_5rx_52c" data-tocid="spienc-generate-efuse__section_in3_5rx_52c">生成密钥</a></div></li><li class="section-item"><div class="section-title"><a href="#spienc-generate-efuse__section_ctb_1sx_52c" data-tocid="spienc-generate-efuse__section_ctb_1sx_52c">编译程序</a></div></li><li class="section-item"><div class="section-title"><a href="#spienc-generate-efuse__section_fdt_yrx_52c" data-tocid="spienc-generate-efuse__section_fdt_yrx_52c">AiBurn 烧录</a></div></li><li class="section-item"><div class="section-title"><a href="#spienc-generate-efuse__section_xbz_wrx_52c" data-tocid="spienc-generate-efuse__section_xbz_wrx_52c">SD 卡烧录</a></div></li><li class="section-item"><div class="section-title"><a href="#spienc-generate-efuse__section_pnc_wrx_52c" data-tocid="spienc-generate-efuse__section_pnc_wrx_52c">烧录日志</a></div></li></ul></div>
</div>
</nav>
</div>
</div>
</div>
<footer class="navbar navbar-default wh_footer">
<div class=" footer-container mx-auto ">
<title>footer def</title>
<style>
.p1 {
font-family: FangZhengShuSong, Times, serif;
}
.p2 {
font-family: Arial, Helvetica, sans-serif;
}
.p3 {
font-family: "Lucida Console", "Courier New", monospace;
}
</style>
<div class="webhelp.fragment.footer">
<p class="p1">Copyright © 2019-2025 广东匠芯创科技有限公司. All rights reserved.</p>
</div>
<div>
<div class="generation_time">
2025-07-22 11:15:46 +08:00
Update Time: 2025-05-19
2025-04-23 17:54:31 +08:00
</div>
</div>
</div>
</footer>
<div id="go2top" class="d-print-none">
<span class="oxy-icon oxy-icon-up"></span>
</div>
<div id="modal_img_large" class="modal">
<span class="close oxy-icon oxy-icon-remove"></span>
<div id="modal_img_container"></div>
<div id="caption"></div>
</div>
<script src="${pd}/publishing/publishing-styles-AIC-template/js/custom.js" defer="defer"></script>
</body>
</html>