linuxOS_D21X/doc/topics/sdk/boot/fitImage_2.html
2025-01-23 16:35:08 +08:00

270 lines
37 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-cn" lang="zh-cn" data-whc_version="27.0">
<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="description" content="ArtInChip 项目中,将 Kernel Image 改为使用 FIT Image 的原因: 快速启动的需要 减少分区的需要 安全启动的需要 支持 RISCV 的需要 快速启动 D21x 的快速启动eMMC 的方案使用未压缩的 Image 速度最快SPI NOR/SPI NAND 使用压缩的 zImage 比较合适。 同时 U-Boot 加载 Kernel 最好只读取 Kernel ..."/><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="DC.relation" content="../../../topics/sdk/boot/fitImage_0.html"/><meta name="DC.relation" content="../../../topics/sdk/boot/fitImage_1.html"/><meta name="DC.relation" content="../../../topics/sdk/advanced/fs_image.html"/><meta name="DC.contributor" content="yan.wang"/><meta name="DC.contributor" content="yan.wang"/><meta name="DC.date.modified" content="2024-01-15"/><meta name="DC.format" content="HTML5"/><meta name="DC.identifier" content="fitImage_2"/><meta name="DC.language" content="zh-CN"/><title>使用 FIT Image</title><!-- Generated with build number 2024112209. --><meta name="wh-path2root" content="../../../"/><meta name="wh-toc-id" content="fitImage_2-d4445e2748"/><meta name="wh-source-relpath" content="topics/sdk/boot/fitImage_2.dita"/><meta name="wh-out-relpath" content="topics/sdk/boot/fitImage_2.html"/>
<link rel="stylesheet" type="text/css" href="../../../webhelp/app/commons.css?buildId=2024112209"/>
<link rel="stylesheet" type="text/css" href="../../../webhelp/app/topic.css?buildId=2024112209"/>
<script src="../../../webhelp/app/options/properties.js?buildId=20250123154945"></script>
<script src="../../../webhelp/app/localization/strings.js?buildId=2024112209"></script>
<script src="../../../webhelp/app/search/index/keywords.js?buildId=20250123154945"></script>
<script defer="defer" src="../../../webhelp/app/commons.js?buildId=2024112209"></script>
<script defer="defer" src="../../../webhelp/app/topic.js?buildId=2024112209"></script>
<link rel="stylesheet" type="text/css" href="../../../webhelp/template/aic-styles-web.css?buildId=2024112209"/><link rel="stylesheet" type="text/css" href="../../../webhelp/template/notes.css?buildId=2024112209"/><link rel="stylesheet" type="text/css" href="../../../webhelp/template/aic-common.css?buildId=2024112209"/><link rel="stylesheet" type="text/css" href="../../../webhelp/template/aic-images.css?buildId=2024112209"/><link rel="stylesheet" type="text/css" href="../../../webhelp/template/footnote.css?buildId=2024112209"/><link rel="stylesheet" type="text/css" href="../../../webhelp/template/aic-web-watermark.css?buildId=2024112209"/><link rel="stylesheet" type="text/css" href="../../../webhelp/template/topic-body-list.css?buildId=2024112209"/></head>
<body id="fitImage_2" 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 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="http://www.artinchip.com" class=" wh_logo d-none d-sm-block "><img src="../../../company-logo-white.png" alt=" Linux SDK 使用指南 SDK 指南文件 "/></a>
<div class=" wh_publication_title "><a href="../../../index.html"><span class="booktitle"> <span class="ph mainbooktitle">Linux 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>
</div>
</header>
<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 class="container-fluid" id="wh_topic_container">
<div class="row">
<nav class="wh_tools d-print-none navbar-expand-md" aria-label="Tools">
<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="id"><div class="title"><a href="../../../topics/sdk/chapter-advanced-app.html">高级应用</a><div class="wh-tooltip"><p class="shortdesc">系统、存储、多媒体、接口、安全等模块的详细配置和设计说明。</p></div></div></div></li><li><div class="topicref" data-id="uBoot"><div class="title"><a href="../../../topics/sdk/boot/uboot-module.html">U-Boot</a><div class="wh-tooltip"><p class="shortdesc">启动支持的基本功能以及运行时的基本硬件环境。</p></div></div></div></li><li><div class="topicref" data-id="concept_uzy_yk3_pzb"><div class="title"><a href="../../../topics/sdk/boot/bundle-images.html">打包镜像</a></div></div></li><li><div class="topicref" data-id="fitImage_0"><div class="title"><a href="../../../topics/sdk/boot/fitImage_0.html">FIT Image 介绍</a></div></div></li><li class="active"><div class="topicref" data-id="fitImage_2"><div class="title"><a href="../../../topics/sdk/boot/fitImage_2.html">使用 FIT Image</a></div></div></li></ol></div>
<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">
<span class="navprev"><a class="- topic/link link" href="../../../topics/sdk/boot/fitImage_1.html" title="FIT Image 配置和启动" aria-label="上一主题: FIT Image 配置和启动" rel="prev"></a></span>
<span class="navnext"><a class="- topic/link link" href="../../../topics/sdk/advanced/fs_image.html" title="烧录镜像格式和工具" aria-label="下一主题: 烧录镜像格式和工具" rel="next"></a></span> </span></div>
<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">
<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-d4445e1079" 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_linux.html" id="revinfo_linux-d4445e1079-link">修订记录</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="id-d4445e1096" class="topicref" data-id="id" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action id-d4445e1096-link" class="wh-expand-btn"></span><div class="title"><a href="../../../topics/sdk/env/sdk-compile.html" id="id-d4445e1096-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="tocId-d4445e1240" class="topicref" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action tocId-d4445e1240-link" class="wh-expand-btn"></span><div class="title"><a href="../../../topics/sdk/advanced/lb_usage_commands.html" id="tocId-d4445e1240-link">使用指南</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_rcx_czh_pzb-d4445e1360" class="topicref" data-id="concept_rcx_czh_pzb" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_rcx_czh_pzb-d4445e1360-link" class="wh-expand-btn"></span><div class="title"><a href="../../../topics/sdk/chapter-app.html" id="concept_rcx_czh_pzb-d4445e1360-link">应用场景</a><div class="wh-tooltip"><p class="shortdesc">描述了 SDK 在不同应用场景中的配置和使用包括系统更新、OTA、安全方案等。</p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="id-d4445e1678" class="topicref" data-id="id" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action id-d4445e1678-link" class="wh-expand-btn"></span><div class="title"><a href="../../../topics/sdk/peripheral/peripheral-intro.html" id="id-d4445e1678-link">外设移植</a><div class="wh-tooltip"><p class="shortdesc"><span class="ph">触摸屏、显示器、WIFI 模块、按键</span>等外设的介绍和使用说明。</p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="id-d4445e1964" class="topicref" data-id="id" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action id-d4445e1964-link" class="wh-expand-btn"></span><div class="title"><a href="../../../topics/sdk/bringup/chapter-bringup.html" id="id-d4445e1964-link">BringUp</a><div class="wh-tooltip"><p class="shortdesc">在硬件上电后快速初始化系统,为操作系统的启动准备好必要的硬件环境。</p></div></div></div></li><li role="treeitem" aria-expanded="true"><div data-tocid="id-d4445e2153" class="topicref" data-id="id" data-state="expanded"><span role="button" tabindex="0" aria-labelledby="button-collapse-action id-d4445e2153-link" class="wh-expand-btn"></span><div class="title"><a href="../../../topics/sdk/chapter-advanced-app.html" id="id-d4445e2153-link">高级应用</a><div class="wh-tooltip"><p class="shortdesc">系统、存储、多媒体、接口、安全等模块的详细配置和设计说明。</p></div></div></div><ul role="group" class="navbar-nav nav-list"><li role="treeitem" aria-expanded="true"><div data-tocid="uBoot-d4445e2170" class="topicref" data-id="uBoot" data-state="expanded"><span role="button" tabindex="0" aria-labelledby="button-collapse-action uBoot-d4445e2170-link" class="wh-expand-btn"></span><div class="title"><a href="../../../topics/sdk/boot/uboot-module.html" id="uBoot-d4445e2170-link">U-Boot</a><div class="wh-tooltip"><p class="shortdesc">启动支持的基本功能以及运行时的基本硬件环境。</p></div></div></div><ul role="group" class="navbar-nav nav-list"><li role="treeitem"><div data-tocid="_65-d4445e2187" class="topicref" data-id="_65" data-state="leaf"><span role="button" class="wh-expand-btn"></span><div class="title"><a href="../../../topics/sdk/boot/uboot-hardware-env.html" id="_65-d4445e2187-link">硬件运行环境</a></div></div></li><li role="treeitem"><div data-tocid="_1601-d4445e2201" class="topicref" data-id="_1601" data-state="leaf"><span role="button" class="wh-expand-btn"></span><div class="title"><a href="../../../topics/sdk/boot/uboot-parameter.html" id="_1601-d4445e2201-link">启动参数</a></div></div></li><li role="treeitem"><div data-tocid="_1601_0-d4445e2215" class="topicref" data-id="_1601_0" data-state="leaf"><span role="button" class="wh-expand-btn"></span><div class="title"><a href="../../../topics/sdk/boot/boot-memory.html" id="_1601_0-d4445e2215-link">内存相关</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_lbx_3n3_pzb-d4445e2229" class="topicref" data-id="concept_lbx_3n3_pzb" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_lbx_3n3_pzb-d4445e2229-link" class="wh-expand-btn"></span><div class="title"><a href="../../../topics/sdk/boot/environment-variables.html" id="concept_lbx_3n3_pzb-d4445e2229-link">环境变量</a></div></div></li><li role="treeitem"><div data-tocid="dts-d4445e2271" class="topicref" data-id="dts" data-state="leaf"><span role="button" class="wh-expand-btn"></span><div class="title"><a href="../../../topics/sdk/boot/uboot-dts.html" id="dts-d4445e2271-link">DTS</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="spl-d4445e2285" class="topicref" data-id="spl" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action spl-d4445e2285-link" class="wh-expand-btn"></span><div class="title"><a href="../../../topics/sdk/boot/spl-program-stage.html" id="spl-d4445e2285-link">SPL 阶段</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="uBoot_0-d4445e2411" class="topicref" data-id="uBoot_0" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action uBoot_0-d4445e2411-link" class="wh-expand-btn"></span><div class="title"><a href="../../../topics/sdk/boot/uboot-stage.html" id="uBoot_0-d4445e2411-link">U-Boot 阶段</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_q5s_jn3_pzb-d4445e2495" class="topicref" data-id="concept_q5s_jn3_pzb" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_q5s_jn3_pzb-d4445e2495-link" class="wh-expand-btn"></span><div class="title"><a href="../../../topics/sdk/boot/uboot-driver-support.html" id="concept_q5s_jn3_pzb-d4445e2495-link">驱动支持</a></div></div></li><li role="treeitem"><div data-tocid="concept_l2d_xk3_pzb-d4445e2607" class="topicref" data-id="concept_l2d_xk3_pzb" data-state="leaf"><span role="button" class="wh-expand-btn"></span><div class="title"><a href="../../../topics/sdk/boot/uboot-partition-config.html" id="concept_l2d_xk3_pzb-d4445e2607-link">配置启动分区</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_afz_xk3_pzb-d4445e2621" class="topicref" data-id="concept_afz_xk3_pzb" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_afz_xk3_pzb-d4445e2621-link" class="wh-expand-btn"></span><div class="title"><a href="../../../topics/sdk/boot/uboot-core.html" id="concept_afz_xk3_pzb-d4445e2621-link">启动内核</a></div></div></li><li role="treeitem" aria-expanded="true"><div data-tocid="concept_uzy_yk3_pzb-d4445e2692" class="topicref" data-id="concept_uzy_yk3_pzb" data-state="expanded"><span role="button" tabindex="0" aria-labelledby="button-collapse-action concept_uzy_yk3_pzb-d4445e2692-link" class="wh-expand-btn"></span><div class="title"><a href="../../../topics/sdk/boot/bundle-images.html" id="concept_uzy_yk3_pzb-d4445e2692-link">打包镜像</a></div></div><ul role="group" class="navbar-nav nav-list"><li role="treeitem"><div data-tocid="aic-d4445e2706" class="topicref" data-id="aic" data-state="leaf"><span role="button" class="wh-expand-btn"></span><div class="title"><a href="../../../topics/sdk/boot/uboot-aic-boot-image-format.html" id="aic-d4445e2706-link">AIC 启动镜像格式</a></div></div></li><li role="treeitem" aria-expanded="true"><div data-tocid="fitImage_0-d4445e2720" class="topicref" data-id="fitImage_0" data-state="expanded"><span role="button" tabindex="0" aria-labelledby="button-collapse-action fitImage_0-d4445e2720-link" class="wh-expand-btn"></span><div class="title"><a href="../../../topics/sdk/boot/fitImage_0.html" id="fitImage_0-d4445e2720-link">FIT Image 介绍</a></div></div><ul role="group" class="navbar-nav nav-list"><li role="treeitem"><div data-tocid="fitImage_1-d4445e2734" class="topicref" data-id="fitImage_1" data-state="leaf"><span role="button" class="wh-expand-btn"></span><div class="title"><a href="../../../topics/sdk/boot/fitImage_1.html" id="fitImage_1-d4445e2734-link">FIT Image 配置和启动</a></div></div></li><li role="treeitem" class="active"><div data-tocid="fitImage_2-d4445e2748" class="topicref" data-id="fitImage_2" data-state="leaf"><span role="button" class="wh-expand-btn"></span><div class="title"><a href="../../../topics/sdk/boot/fitImage_2.html" id="fitImage_2-d4445e2748-link">使用 FIT Image</a></div></div></li></ul></li><li role="treeitem"><div data-tocid="burn-image-and-tool-d4445e2762" class="topicref" data-id="burn-image-and-tool" data-state="leaf"><span role="button" class="wh-expand-btn"></span><div class="title"><a href="../../../topics/sdk/advanced/fs_image.html" id="burn-image-and-tool-d4445e2762-link">烧录镜像格式和工具</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="burn-cfg-file-d4445e2776" class="topicref" data-id="burn-cfg-file" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action burn-cfg-file-d4445e2776-link" class="wh-expand-btn"></span><div class="title"><a href="../../../topics/sdk/advanced/burn-cfg-file.html" id="burn-cfg-file-d4445e2776-link">烧录镜像配置文件</a></div></div></li></ul></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_yfv_1l3_pzb-d4445e2832" class="topicref" data-id="concept_yfv_1l3_pzb" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_yfv_1l3_pzb-d4445e2832-link" class="wh-expand-btn"></span><div class="title"><a href="../../../topics/sdk/boot/uboot-chapter-image-burn.html" id="concept_yfv_1l3_pzb-d4445e2832-link">镜像烧录</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="userid-d4445e2888" class="topicref" data-id="userid" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action userid-d4445e2888-link" class="wh-expand-btn"></span><div class="title"><a href="../../../topics/sdk/boot/userid-burn.html" id="userid-d4445e2888-link">UserID 烧录</a></div></div></li><li role="treeitem"><div data-tocid="concept_azt_bl3_pzb-d4445e2944" class="topicref" data-id="concept_azt_bl3_pzb" data-state="leaf"><span role="button" class="wh-expand-btn"></span><div class="title"><a href="../../../topics/sdk/boot/logo-display.html" id="concept_azt_bl3_pzb-d4445e2944-link">图像显示</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="_1601_1-d4445e2958" class="topicref" data-id="_1601_1" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action _1601_1-d4445e2958-link" class="wh-expand-btn"></span><div class="title"><a href="../../../topics/sdk/boot/debug-configuration.html" id="_1601_1-d4445e2958-link">调试配置</a></div></div></li><li role="treeitem"><div data-tocid="opensbi-d4445e3000" class="topicref" data-id="opensbi" data-state="leaf"><span role="button" class="wh-expand-btn"></span><div class="title"><a href="../../../topics/sdk/boot/opensbi.html" id="opensbi-d4445e3000-link">OpenSBI</a></div></div></li><li role="treeitem"><div data-tocid="pbp-d4445e3014" class="topicref" data-id="pbp" data-state="leaf"><span role="button" class="wh-expand-btn"></span><div class="title"><a href="../../../topics/sdk/boot/pre-boot-program.html" id="pbp-d4445e3014-link">Pre-Boot Program (PBP)</a></div></div></li></ul></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_mtx_tk3_pzb-d4445e3028" class="topicref" data-id="concept_mtx_tk3_pzb" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_mtx_tk3_pzb-d4445e3028-link" class="wh-expand-btn"></span><div class="title"><a href="../../../topics/sdk/linux/chapter_linux.html" id="concept_mtx_tk3_pzb-d4445e3028-link">Linux</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="chapter-system-d4445e3198" class="topicref" data-id="chapter-system" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action chapter-system-d4445e3198-link" class="wh-expand-btn"></span><div class="title"><a href="../../../topics/chapter-title/chapter-system.html" id="chapter-system-d4445e3198-link">系统</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="chapter-memory-d4445e4054" class="topicref" data-id="chapter-memory" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action chapter-memory-d4445e4054-link" class="wh-expand-btn"></span><div class="title"><a href="../../../topics/chapter-title/chapter-memory-sdk.html" id="chapter-memory-d4445e4054-link">存储</a><div class="wh-tooltip"><p class="shortdesc">SDMC、SPI NAND、SPI NOR 等存储模块的介绍和使用说明。</p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_mcc_32s_nbc-d4445e4438" class="topicref" data-id="concept_mcc_32s_nbc" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_mcc_32s_nbc-d4445e4438-link" class="wh-expand-btn"></span><div class="title"><a href="../../../topics/chapter-title/chapter-multi-media-sdk.html" id="concept_mcc_32s_nbc-d4445e4438-link">多媒体</a><div class="wh-tooltip"><p class="shortdesc">GE、VE、Display、DVP、MPP、MPP 播放器等多媒体模块的介绍和使用说明。</p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_nww_hzh_pzb-d4445e5947" class="topicref" data-id="concept_nww_hzh_pzb" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_nww_hzh_pzb-d4445e5947-link" class="wh-expand-btn"></span><div class="title"><a href="../../../topics/chapter-title/chapter-interface-sdk.html" id="concept_nww_hzh_pzb-d4445e5947-link">接口</a><div class="wh-tooltip"><p class="shortdesc">CAN、CIR、GPAI、GPIO、I2C、PSADC、PWM 等接口模块的介绍和使用说明。</p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="chapter-safety-d4445e7944" class="topicref" data-id="chapter-safety" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action chapter-safety-d4445e7944-link" class="wh-expand-btn"></span><div class="title"><a href="../../../topics/chapter-title/chapter-safety-sdk.html" id="chapter-safety-d4445e7944-link">安全</a><div class="wh-tooltip"><p class="shortdesc">SPI ENC、CE、eFuse 等安全模块的介绍和使用说明。</p></div></div></div></li></ul></li></ul></div>
</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">
<span class="edit-link" style="font-size:12px; opacity:0.6; text-align:right; vertical-align:middle"><a target="_blank" title="Edit this document" href="http://172.16.35.88/tasks/jdssno1uvvbf2mltu9kb9v3if05d5gopuakboe8hlud18rma/edit/F:/aicdita/aicdita-cn/topics/sdk/boot/fitImage_2.dita">Edit online</a></span><h1 class="- topic/title title topictitle1" id="ariaid-title1">使用 FIT Image</h1>
<div class="date inPage">15 Jan 2024</div><div style="color: gray;">
Read time: 2 minute(s)
</div>
<div class="- topic/body concept/conbody body conbody">
<p class="- topic/p p" data-ofbid="d171281e33__20250123155218">ArtInChip 项目中,将 Kernel Image 改为使用 FIT Image 的原因:</p>
<ul class="- topic/ul ul" id="fitImage_2__ul_ebm_zdh_bzb" data-ofbid="fitImage_2__ul_ebm_zdh_bzb">
<li class="- topic/li li" data-ofbid="d171281e38__20250123155218">
<p class="- topic/p p" data-ofbid="d171281e40__20250123155218">快速启动的需要</p>
</li>
<li class="- topic/li li" data-ofbid="d171281e44__20250123155218">
<p class="- topic/p p" data-ofbid="d171281e46__20250123155218">减少分区的需要</p>
</li>
<li class="- topic/li li" data-ofbid="d171281e50__20250123155218">
<p class="- topic/p p" data-ofbid="d171281e52__20250123155218">安全启动的需要</p>
</li>
<li class="- topic/li li" data-ofbid="d171281e56__20250123155218">
<p class="- topic/p p" data-ofbid="d171281e58__20250123155218">支持 RISCV 的需要</p>
</li>
</ul>
<section class="- topic/section section" id="fitImage_2__section_d5k_wpy_nbc" data-ofbid="fitImage_2__section_d5k_wpy_nbc"><h2 class="- topic/title title sectiontitle">快速启动</h2>
<p class="- topic/p p" data-ofbid="d171281e68__20250123155218">D21x 的快速启动eMMC 的方案使用未压缩的 Image 速度最快SPI NOR/SPI NAND 使用压缩的 zImage 比较合适。</p>
<p class="- topic/p p" data-ofbid="d171281e71__20250123155218">同时 U-Boot 加载 Kernel 最好只读取 Kernel Image 实际大小的数据,避免过多读取无关数据, 才能节省启动时间。</p>
<p class="- topic/p p" data-ofbid="d171281e74__20250123155218">U-Boot 加载 Kernel 时,无论 Image 还是 zImage都没有头信息因此即读取 Kernel Image
的大小需要根据实际编译生成的镜像大小进行修改。</p>
<p class="- topic/p p" data-ofbid="d171281e77__20250123155218">如果采用 FIT Image 则可以避免上述问题。</p>
<p class="- topic/p p" data-ofbid="d171281e81__20250123155218">生成的 FIT Image 有一个信息头U-Boot 可以先读取信息头的数据,得到 Image 大小,然后按照实际大小读取 剩下的 Kernel Image
数据:</p>
<ol class="- topic/ol ol" id="fitImage_2__ol_alx_zdh_bzb" data-ofbid="fitImage_2__ol_alx_zdh_bzb">
<li class="- topic/li li" data-ofbid="d171281e86__20250123155218">
<p class="- topic/p p" data-ofbid="d171281e88__20250123155218">从存储介质读取的数据可以做到尽可能的少</p>
</li>
<li class="- topic/li li" data-ofbid="d171281e92__20250123155218">
<p class="- topic/p p" data-ofbid="d171281e94__20250123155218">开发者不需要手动修改读取的数据大小</p>
</li>
</ol>
<p class="- topic/p p" data-ofbid="d171281e99__20250123155218">当然是用了 FIT Image 之后,无论是使用压缩的 <span class="+ topic/ph sw-d/filepath ph filepath">zImage/Image.gz</span> 还是使用未压缩的
Image对启动流程/启动命令 都没有影响,开发者仅需修改 ITS 文件配置即可。</p>
</section>
<section class="- topic/section section" id="fitImage_2__section_gfv_xpy_nbc" data-ofbid="fitImage_2__section_gfv_xpy_nbc"><h2 class="- topic/title title sectiontitle">减少分区</h2>
<p class="- topic/p p" data-ofbid="d171281e111__20250123155218">在使用 FIT Image 之前Kernel 启动所需的 DTB 保存在一个独立的分区中。</p>
<p class="- topic/p p" data-ofbid="d171281e114__20250123155218">DTB 使用一个独立的分区保存对于 SPI NOR/SPI NAND 的方案而言是一种比较浪费空间的方式。</p>
<p class="- topic/p p" data-ofbid="d171281e117__20250123155218">对于 SPI NOR 而言,一般存储空间都比较小,但是分区必须按照一个擦写单元进行,一般是 64KB 而 DTB 绝大多数在 32KB 以内。</p>
<p class="- topic/p p" data-ofbid="d171281e120__20250123155218">对于 SPI NAND 而言,分区同样必须按照一个擦写块进行,一般是 128KB 或者 256KB 同时要考虑坏块的情况,需要多分配几个块进行备份。</p>
<p class="- topic/p p" data-ofbid="d171281e124__20250123155218">使用 FIT ImageKernel 所使用的 DTB 与 Kernel 一起进行打包,存放到同一个分区, 有利于提高存储空间的利用效率,同时分区划分更简单。</p>
</section>
<section class="- topic/section section" id="fitImage_2__section_ctn_ypy_nbc" data-ofbid="fitImage_2__section_ctn_ypy_nbc"><h2 class="- topic/title title sectiontitle">安全启动</h2>
<p class="- topic/p p" data-ofbid="d171281e133__20250123155218">在安全启动方案中,安全信任链的校验过程如下:</p>
<p class="- topic/p p" data-ofbid="d171281e136__20250123155218"><span class="+ topic/ph ui-d/menucascade ph menucascade"><span class="+ topic/ph ui-d/uicontrol ph uicontrol">BROM</span><abbr> &gt; </abbr><span class="+ topic/ph ui-d/uicontrol ph uicontrol">SPL</span><abbr> &gt; </abbr><span class="+ topic/ph ui-d/uicontrol ph uicontrol">U-Boot</span><abbr> &gt; </abbr><span class="+ topic/ph ui-d/uicontrol ph uicontrol">Kernel</span><abbr> &gt; </abbr><span class="+ topic/ph ui-d/uicontrol ph uicontrol">RootFS</span></span></p>
<p class="- topic/p p" data-ofbid="d171281e155__20250123155218">按照上述顺序逐级进行安全校验。</p>
<p class="- topic/p p" data-ofbid="d171281e158__20250123155218">在 SPL 校验 U-Boot 和 U-Boot 校验 Kernel 的阶段,如果使用 FIT Image则已经有成熟的安全校验方案
并且启动处理流程与非安全方案基本一致。不采用 FIT Image则安全方案和非安全方案所采用的启动流程 差异性比较大,不利于方案的开发和维护。</p>
</section>
<section class="- topic/section section" id="fitImage_2__section_mkl_zpy_nbc" data-ofbid="fitImage_2__section_mkl_zpy_nbc"><h2 class="- topic/title title sectiontitle">支持 RISCV</h2>
<p class="- topic/p p" data-ofbid="d171281e168__20250123155218">RISCV 需要 OpenSBI 协助进行启动OpenSBI 运行在 U-Boot 之前。</p>
<p class="- topic/p p" data-ofbid="d171281e171__20250123155218">启动流程:<span class="+ topic/ph ui-d/menucascade ph menucascade"><span class="+ topic/ph ui-d/uicontrol ph uicontrol">BROM</span><abbr> &gt; </abbr><span class="+ topic/ph ui-d/uicontrol ph uicontrol">SPL</span><abbr> &gt; </abbr><span class="+ topic/ph ui-d/uicontrol ph uicontrol">OpenSBI</span><abbr> &gt; </abbr><span class="+ topic/ph ui-d/uicontrol ph uicontrol">U-Boot</span><abbr> &gt; </abbr><span class="+ topic/ph ui-d/uicontrol ph uicontrol">Kernel</span></span></p>
<p class="- topic/p p" data-ofbid="d171281e191__20250123155218">RISCV 版本的 SPL 在加载运行 OpenSBI 和 U-Boot 时,仅支持使用 FIT Image 即需要将下列几个数据打包为一个 ITB
文件(uboot.itb)</p>
<ul class="- topic/ul ul" id="fitImage_2__ul_ncj_b2h_bzb" data-ofbid="fitImage_2__ul_ncj_b2h_bzb">
<li class="- topic/li li" data-ofbid="d171281e196__20250123155218">
<p class="- topic/p p" data-ofbid="d171281e198__20250123155218">OpenSBI</p>
</li>
<li class="- topic/li li" data-ofbid="d171281e202__20250123155218">
<p class="- topic/p p" data-ofbid="d171281e204__20250123155218">U-Boot</p>
</li>
<li class="- topic/li li" data-ofbid="d171281e208__20250123155218">
<p class="- topic/p p" data-ofbid="d171281e210__20250123155218">DTB</p>
</li>
</ul>
<p class="- topic/p p" data-ofbid="d171281e216__20250123155218">SPL 加载 uboot.itb读取 DTB 和 U-Boot 到对应的位置,然后运行 OpenSBI通过 OpenSBI 跳转到 U-Boot。启动的 DTB 是
OpenSBI 和 U-Boot 共用。</p>
<p class="- topic/p p" data-ofbid="d171281e219__20250123155218">Kernel 也使用 FIT Image可以简化 Image 的种类。</p>
</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="#fitImage_2__section_d5k_wpy_nbc" data-tocid="fitImage_2__section_d5k_wpy_nbc">快速启动</a></div></li><li class="section-item"><div class="section-title"><a href="#fitImage_2__section_gfv_xpy_nbc" data-tocid="fitImage_2__section_gfv_xpy_nbc">减少分区</a></div></li><li class="section-item"><div class="section-title"><a href="#fitImage_2__section_ctn_ypy_nbc" data-tocid="fitImage_2__section_ctn_ypy_nbc">安全启动</a></div></li><li class="section-item"><div class="section-title"><a href="#fitImage_2__section_mkl_zpy_nbc" data-tocid="fitImage_2__section_mkl_zpy_nbc">支持 RISCV</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-2024 广东匠芯创科技有限公司. All rights reserved.</p>
</div><div>
<div class="generation_time">
Update Time: 2025-01-23
</div>
</div>
</div>
</footer>
<button id="go2top" class="d-print-none" title="返回顶部">
<span class="oxy-icon oxy-icon-up"></span>
</button>
<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>