Merge patch series "EFI: ti: Enable EFI capsule updates"

Jonathan Humphreys <j-humphreys@ti.com> says:

Enable on disk capsule updates, which includes defining the firmware
components (tiboot3, spl, u-boot) and enabling processing of raw capsule
updates.

This is enabled for several TI SoC based platforms: AM64, AM62, AM62p,
AM69, BeaglePlay, J7, and BeagleboneAI. The configs to enable this are in a
single base config file. This will make it more scalable to add additional
EFI capsule features (like authentication) across all TI boards that have
capsules enabled.

This series also includes enabling serial flash DFU for AM62 and MMC DFU
for beagleplay.
This commit is contained in:
Tom Rini 2024-06-18 10:47:10 -06:00
commit 01a5d7547e
35 changed files with 3857 additions and 677 deletions

View file

@ -37,7 +37,7 @@ config SYS_VENDOR
default "beagle"
config SYS_CONFIG_NAME
default "j721e_evm"
default "beagleboneai64"
source "board/ti/common/Kconfig"
@ -52,7 +52,7 @@ config SYS_VENDOR
default "beagle"
config SYS_CONFIG_NAME
default "j721e_evm"
default "beagleboneai64"
source "board/ti/common/Kconfig"

View file

@ -7,6 +7,7 @@
* Copyright (C) 2022-2023 Robert Nelson, BeagleBoard.org Foundation
*/
#include <efi_loader.h>
#include <cpu_func.h>
#include <env.h>
#include <fdt_support.h>
@ -14,6 +15,44 @@
DECLARE_GLOBAL_DATA_PTR;
struct efi_fw_image fw_images[] = {
{
.image_type_id = BEAGLEBONEAI64_TIBOOT3_IMAGE_GUID,
.fw_name = u"BEAGLEBONEAI64_TIBOOT3",
.image_index = 1,
},
{
.image_type_id = BEAGLEBONEAI64_SPL_IMAGE_GUID,
.fw_name = u"BEAGLEBONEAI64_SPL",
.image_index = 2,
},
{
.image_type_id = BEAGLEBONEAI64_UBOOT_IMAGE_GUID,
.fw_name = u"BEAGLEBONEAI64_UBOOT",
.image_index = 3,
},
{
.image_type_id = BEAGLEBONEAI64_SYSFW_IMAGE_GUID,
.fw_name = u"BEAGLEBONEAI64_SYSFW",
.image_index = 4,
}
};
struct efi_capsule_update_info update_info = {
.dfu_string = "mmc 0=tiboot3.bin raw 0 2000 mmcpart 1;"
"tispl.bin fat 0 1;u-boot.img fat 0 1; sysfw.itb fat 0 1",
.num_images = ARRAY_SIZE(fw_images),
.images = fw_images,
};
#if IS_ENABLED(CONFIG_SET_DFU_ALT_INFO)
void set_dfu_alt_info(char *interface, char *devstr)
{
if (IS_ENABLED(CONFIG_EFI_HAVE_CAPSULE_SUPPORT))
env_set("dfu_alt_info", update_info.dfu_string);
}
#endif
int board_init(void)
{
return 0;

View file

@ -35,7 +35,7 @@ config SYS_VENDOR
default "beagle"
config SYS_CONFIG_NAME
default "am62x_evm"
default "beagleplay"
source "board/ti/common/Kconfig"
@ -50,7 +50,7 @@ config SYS_VENDOR
default "beagle"
config SYS_CONFIG_NAME
default "am62x_evm"
default "beagleplay"
config SPL_LDSCRIPT
default "arch/arm/mach-omap2/u-boot-spl.lds"

View file

@ -6,6 +6,7 @@
* Copyright (C) 2022-2023 Robert Nelson, BeagleBoard.org Foundation
*/
#include <efi_loader.h>
#include <cpu_func.h>
#include <env.h>
#include <fdt_support.h>
@ -15,6 +16,39 @@
DECLARE_GLOBAL_DATA_PTR;
struct efi_fw_image fw_images[] = {
{
.image_type_id = BEAGLEPLAY_TIBOOT3_IMAGE_GUID,
.fw_name = u"BEAGLEPLAY_TIBOOT3",
.image_index = 1,
},
{
.image_type_id = BEAGLEPLAY_SPL_IMAGE_GUID,
.fw_name = u"BEAGLEPLAY_SPL",
.image_index = 2,
},
{
.image_type_id = BEAGLEPLAY_UBOOT_IMAGE_GUID,
.fw_name = u"BEAGLEPLAY_UBOOT",
.image_index = 3,
}
};
struct efi_capsule_update_info update_info = {
.dfu_string = "mmc 0=tiboot3.bin raw 0 2000 mmcpart 1;"
"tispl.bin fat 0 1;u-boot.img fat 0 1",
.num_images = ARRAY_SIZE(fw_images),
.images = fw_images,
};
#if IS_ENABLED(CONFIG_SET_DFU_ALT_INFO)
void set_dfu_alt_info(char *interface, char *devstr)
{
if (IS_ENABLED(CONFIG_EFI_HAVE_CAPSULE_SUPPORT))
env_set("dfu_alt_info", update_info.dfu_string);
}
#endif
int board_init(void)
{
return 0;

View file

@ -6,6 +6,7 @@
*
*/
#include <efi_loader.h>
#include <asm/arch/hardware.h>
#include <asm/io.h>
#include <dm/uclass.h>
@ -13,6 +14,39 @@
#include <fdt_support.h>
#include <spl.h>
struct efi_fw_image fw_images[] = {
{
.image_type_id = AM62PX_SK_TIBOOT3_IMAGE_GUID,
.fw_name = u"AM62PX_SK_TIBOOT3",
.image_index = 1,
},
{
.image_type_id = AM62PX_SK_SPL_IMAGE_GUID,
.fw_name = u"AM62PX_SK_SPL",
.image_index = 2,
},
{
.image_type_id = AM62PX_SK_UBOOT_IMAGE_GUID,
.fw_name = u"AM62PX_SK_UBOOT",
.image_index = 3,
}
};
struct efi_capsule_update_info update_info = {
.dfu_string = "sf 0:0=tiboot3.bin raw 0 80000;"
"tispl.bin raw 80000 200000;u-boot.img raw 280000 400000",
.num_images = ARRAY_SIZE(fw_images),
.images = fw_images,
};
#if IS_ENABLED(CONFIG_SET_DFU_ALT_INFO)
void set_dfu_alt_info(char *interface, char *devstr)
{
if (IS_ENABLED(CONFIG_EFI_HAVE_CAPSULE_SUPPORT))
env_set("dfu_alt_info", update_info.dfu_string);
}
#endif
int board_init(void)
{
return 0;

View file

@ -7,6 +7,7 @@
*
*/
#include <efi_loader.h>
#include <env.h>
#include <spl.h>
#include <init.h>
@ -46,6 +47,39 @@ int splash_screen_prepare(void)
}
#endif
struct efi_fw_image fw_images[] = {
{
.image_type_id = AM62X_SK_TIBOOT3_IMAGE_GUID,
.fw_name = u"AM62X_SK_TIBOOT3",
.image_index = 1,
},
{
.image_type_id = AM62X_SK_SPL_IMAGE_GUID,
.fw_name = u"AM62X_SK_SPL",
.image_index = 2,
},
{
.image_type_id = AM62X_SK_UBOOT_IMAGE_GUID,
.fw_name = u"AM62X_SK_UBOOT",
.image_index = 3,
}
};
struct efi_capsule_update_info update_info = {
.dfu_string = "sf 0:0=tiboot3.bin raw 0 80000;"
"tispl.bin raw 80000 200000;u-boot.img raw 280000 400000",
.num_images = ARRAY_SIZE(fw_images),
.images = fw_images,
};
#if IS_ENABLED(CONFIG_SET_DFU_ALT_INFO)
void set_dfu_alt_info(char *interface, char *devstr)
{
if (IS_ENABLED(CONFIG_EFI_HAVE_CAPSULE_SUPPORT))
env_set("dfu_alt_info", update_info.dfu_string);
}
#endif
int board_init(void)
{
return 0;

View file

@ -7,6 +7,7 @@
*
*/
#include <efi_loader.h>
#include <asm/io.h>
#include <dm/uclass.h>
#include <k3-ddrss.h>
@ -27,6 +28,39 @@
DECLARE_GLOBAL_DATA_PTR;
struct efi_fw_image fw_images[] = {
{
.image_type_id = AM64X_SK_TIBOOT3_IMAGE_GUID,
.fw_name = u"AM64X_SK_TIBOOT3",
.image_index = 1,
},
{
.image_type_id = AM64X_SK_SPL_IMAGE_GUID,
.fw_name = u"AM64X_SK_SPL",
.image_index = 2,
},
{
.image_type_id = AM64X_SK_UBOOT_IMAGE_GUID,
.fw_name = u"AM64X_SK_UBOOT",
.image_index = 3,
}
};
struct efi_capsule_update_info update_info = {
.dfu_string = "sf 0:0=tiboot3.bin raw 0 100000;"
"tispl.bin raw 100000 200000;u-boot.img raw 300000 400000",
.num_images = ARRAY_SIZE(fw_images),
.images = fw_images,
};
#if IS_ENABLED(CONFIG_SET_DFU_ALT_INFO)
void set_dfu_alt_info(char *interface, char *devstr)
{
if (IS_ENABLED(CONFIG_EFI_HAVE_CAPSULE_SUPPORT))
env_set("dfu_alt_info", update_info.dfu_string);
}
#endif
int board_init(void)
{
return 0;

View file

@ -7,6 +7,7 @@
*
*/
#include <efi_loader.h>
#include <generic-phy.h>
#include <image.h>
#include <net.h>
@ -32,6 +33,45 @@
DECLARE_GLOBAL_DATA_PTR;
struct efi_fw_image fw_images[] = {
{
.image_type_id = J721E_SK_TIBOOT3_IMAGE_GUID,
.fw_name = u"J721E_SK_TIBOOT3",
.image_index = 1,
},
{
.image_type_id = J721E_SK_SPL_IMAGE_GUID,
.fw_name = u"J721E_SK_SPL",
.image_index = 2,
},
{
.image_type_id = J721E_SK_UBOOT_IMAGE_GUID,
.fw_name = u"J721E_SK_UBOOT",
.image_index = 3,
},
{
.image_type_id = J721E_SK_SYSFW_IMAGE_GUID,
.fw_name = u"J721E_SK_SYSFW",
.image_index = 4,
}
};
struct efi_capsule_update_info update_info = {
.dfu_string = "sf 0:0=tiboot3.bin raw 0 80000;"
"tispl.bin raw 80000 200000;u-boot.img raw 280000 400000;"
"sysfw.itb raw 6C0000 100000",
.num_images = ARRAY_SIZE(fw_images),
.images = fw_images,
};
#if IS_ENABLED(CONFIG_SET_DFU_ALT_INFO)
void set_dfu_alt_info(char *interface, char *devstr)
{
if (IS_ENABLED(CONFIG_EFI_HAVE_CAPSULE_SUPPORT))
env_set("dfu_alt_info", update_info.dfu_string);
}
#endif
int board_init(void)
{
return 0;

View file

@ -7,12 +7,46 @@
*
*/
#include <efi_loader.h>
#include <init.h>
#include <spl.h>
#include "../common/fdt_ops.h"
DECLARE_GLOBAL_DATA_PTR;
struct efi_fw_image fw_images[] = {
{
.image_type_id = AM69_SK_TIBOOT3_IMAGE_GUID,
.fw_name = u"AM69_SK_TIBOOT3",
.image_index = 1,
},
{
.image_type_id = AM69_SK_SPL_IMAGE_GUID,
.fw_name = u"AM69_SK_SPL",
.image_index = 2,
},
{
.image_type_id = AM69_SK_UBOOT_IMAGE_GUID,
.fw_name = u"AM69_SK_UBOOT",
.image_index = 3,
}
};
struct efi_capsule_update_info update_info = {
.dfu_string = "sf 0:0=tiboot3.bin raw 0 80000;"
"tispl.bin raw 80000 200000;u-boot.img raw 280000 400000",
.num_images = ARRAY_SIZE(fw_images),
.images = fw_images,
};
#if IS_ENABLED(CONFIG_SET_DFU_ALT_INFO)
void set_dfu_alt_info(char *interface, char *devstr)
{
if (IS_ENABLED(CONFIG_EFI_HAVE_CAPSULE_SUPPORT))
env_set("dfu_alt_info", update_info.dfu_string);
}
#endif
int board_init(void)
{
return 0;

View file

@ -179,3 +179,5 @@ CONFIG_USB_GADGET_PRODUCT_NUM=0x6165
CONFIG_SPL_DFU=y
CONFIG_FS_FAT_MAX_CLUSTSIZE=16384
CONFIG_EFI_SET_TIME=y
#include <configs/k3_efi_capsule.config>

View file

@ -71,6 +71,9 @@ CONFIG_SPL_OF_TRANSLATE=y
CONFIG_CLK=y
CONFIG_SPL_CLK=y
CONFIG_CLK_TI_SCI=y
CONFIG_DFU_MMC=y
CONFIG_SYS_DFU_DATA_BUF_SIZE=0x40000
CONFIG_SYS_DFU_MAX_FILE_SIZE=0x180000
CONFIG_DMA_CHANNELS=y
CONFIG_TI_K3_NAVSS_UDMA=y
CONFIG_TI_SCI_PROTOCOL=y
@ -123,4 +126,5 @@ CONFIG_FS_FAT_MAX_CLUSTSIZE=16384
CONFIG_LZO=y
CONFIG_EFI_SET_TIME=y
#include <configs/k3_efi_capsule.config>
#include <configs/am62x_a53_usbdfu.config>

View file

@ -114,4 +114,5 @@ CONFIG_SYSRESET_TI_SCI=y
CONFIG_FS_FAT_MAX_CLUSTSIZE=16384
CONFIG_EFI_SET_TIME=y
#include <configs/k3_efi_capsule.config>
#include <configs/am62x_a53_usbdfu.config>

View file

@ -178,3 +178,5 @@ CONFIG_USB_FUNCTION_MASS_STORAGE=y
CONFIG_SPL_DFU=y
CONFIG_FS_FAT_MAX_CLUSTSIZE=16384
CONFIG_EFI_SET_TIME=y
#include <configs/k3_efi_capsule.config>

View file

@ -172,3 +172,5 @@ CONFIG_USB_GADGET_PRODUCT_NUM=0x6163
CONFIG_SPL_DFU=y
CONFIG_LZO=y
CONFIG_EFI_SET_TIME=y
#include <configs/k3_efi_capsule.config>

View file

@ -211,3 +211,5 @@ CONFIG_UFS=y
CONFIG_CADENCE_UFS=y
CONFIG_TI_J721E_UFS=y
CONFIG_EFI_SET_TIME=y
#include <configs/k3_efi_capsule.config>

View file

@ -85,6 +85,9 @@ CONFIG_CLK=y
CONFIG_SPL_CLK=y
CONFIG_CLK_CCF=y
CONFIG_CLK_TI_SCI=y
CONFIG_DFU_SF=y
CONFIG_SYS_DFU_DATA_BUF_SIZE=0x40000
CONFIG_SYS_DFU_MAX_FILE_SIZE=0x800000
CONFIG_DMA_CHANNELS=y
CONFIG_TI_K3_NAVSS_UDMA=y
CONFIG_TI_SCI_PROTOCOL=y
@ -158,3 +161,5 @@ CONFIG_SPL_SYSRESET=y
CONFIG_SYSRESET_TI_SCI=y
CONFIG_DM_THERMAL=y
CONFIG_EFI_SET_TIME=y
#include <configs/k3_efi_capsule.config>

View file

@ -0,0 +1,2 @@
CONFIG_EFI_CAPSULE_ON_DISK=y
CONFIG_EFI_CAPSULE_FIRMWARE_RAW=y

View file

@ -156,6 +156,30 @@ Image formats:
.. image:: img/dm_tispl.bin.svg
:alt: tispl.bin image format
OSPI:
-----
ROM supports booting from OSPI from offset 0x0.
Flashing images to OSPI:
Below commands can be used to download tiboot3.bin, tispl.bin, and u-boot.img,
over tftp and then flash those to OSPI at their respective addresses.
.. prompt:: bash =>
sf probe
tftp ${loadaddr} tiboot3.bin
sf update $loadaddr 0x0 $filesize
tftp ${loadaddr} tispl.bin
sf update $loadaddr 0x80000 $filesize
tftp ${loadaddr} u-boot.img
sf update $loadaddr 0x280000 $filesize
Flash layout for OSPI:
.. image:: img/ospi_sysfw2.svg
:alt: OSPI flash partition layout
A53 SPL DDR Memory Layout
-------------------------

View file

@ -164,6 +164,30 @@ Image formats:
.. image:: img/dm_tispl.bin.svg
:alt: tispl.bin image format
OSPI:
-----
ROM supports booting from OSPI from offset 0x0.
Flashing images to OSPI:
Below commands can be used to download tiboot3.bin, tispl.bin, and u-boot.img,
over tftp and then flash those to OSPI at their respective addresses.
.. prompt:: bash =>
sf probe
tftp ${loadaddr} tiboot3.bin
sf update $loadaddr 0x0 $filesize
tftp ${loadaddr} tispl.bin
sf update $loadaddr 0x80000 $filesize
tftp ${loadaddr} u-boot.img
sf update $loadaddr 0x280000 $filesize
Flash layout for OSPI:
.. image:: img/ospi_sysfw2.svg
:alt: OSPI flash partition layout
A53 SPL DDR Memory Layout
-------------------------

View file

@ -140,6 +140,30 @@ Image formats:
.. image:: img/nodm_tispl.bin.svg
:alt: tispl.bin image format
OSPI:
-----
ROM supports booting from OSPI from offset 0x0.
Flashing images to OSPI:
Below commands can be used to download tiboot3.bin, tispl.bin, and u-boot.img,
over tftp and then flash those to OSPI at their respective addresses.
.. prompt:: bash =>
sf probe
tftp ${loadaddr} tiboot3.bin
sf update $loadaddr 0x0 $filesize
tftp ${loadaddr} tispl.bin
sf update $loadaddr 0x100000 $filesize
tftp ${loadaddr} u-boot.img
sf update $loadaddr 0x300000 $filesize
Flash layout for OSPI:
.. image:: img/ospi_sysfw-am64.svg
:alt: OSPI flash partition layout
Switch Setting for Boot Mode
----------------------------

View file

@ -0,0 +1,802 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!--SPDX-License-Identifier: GPL-2.0-or-later OR BSD-3-Clause-->
<!--Copyright (C) 2024 Texas Instruments Incorporated - https://www.ti.com/-->
<svg
version="1.1"
width="321px"
height="336px"
viewBox="-0.5 -0.5 321 336"
id="svg28701"
sodipodi:docname="ospi_sysfw-am64.svg"
inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:xhtml="http://www.w3.org/1999/xhtml">
<sodipodi:namedview
id="namedview28703"
pagecolor="#505050"
bordercolor="#eeeeee"
borderopacity="1"
inkscape:pageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="0"
showgrid="false"
inkscape:zoom="2.5982143"
inkscape:cx="160.49485"
inkscape:cy="168"
inkscape:window-width="3370"
inkscape:window-height="1376"
inkscape:window-x="70"
inkscape:window-y="27"
inkscape:window-maximized="1"
inkscape:current-layer="g28699" />
<defs
id="defs28505" />
<g
id="g28699">
<g
id="g28509">
<rect
x="120"
y="15"
width="200"
height="40"
fill="none"
stroke="rgb(0, 0, 0)"
pointer-events="all"
id="rect28507" />
</g>
<g
id="g28517">
<g
transform="translate(-0.5 -0.5)"
id="g28515">
<switch
id="switch28513">
<foreignObject
pointer-events="none"
width="100%"
height="100%"
requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"
style="overflow: visible; text-align: left;">
<xhtml:div
style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 198px; height: 1px; padding-top: 35px; margin-left: 121px;">
<xhtml:div
data-drawio-colors="color: rgb(0, 0, 0); "
style="box-sizing: border-box; font-size: 0px; text-align: center;">
<xhtml:div
style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">ospi.tiboot3(1M)</xhtml:div>
</xhtml:div>
</xhtml:div>
</foreignObject>
<text
x="220"
y="39"
fill="rgb(0, 0, 0)"
font-family="Helvetica"
font-size="12px"
text-anchor="middle"
id="text28511">ospi.tiboot3(1M)</text>
</switch>
</g>
</g>
<g
id="g28521">
<rect
x="60"
y="5"
width="60"
height="30"
fill="none"
stroke="none"
pointer-events="all"
id="rect28519" />
</g>
<g
id="g28529">
<g
transform="translate(-0.5 -0.5)"
id="g28527">
<switch
id="switch28525">
<foreignObject
pointer-events="none"
width="100%"
height="100%"
requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"
style="overflow: visible; text-align: left;">
<xhtml:div
style="display: flex; align-items: unsafe center; justify-content: unsafe flex-end; width: 58px; height: 1px; padding-top: 20px; margin-left: 60px;">
<xhtml:div
data-drawio-colors="color: rgb(0, 0, 0); "
style="box-sizing: border-box; font-size: 0px; text-align: right;">
<xhtml:div
style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">
<xhtml:pre
style="box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &quot;Liberation Mono&quot;, &quot;Courier New&quot;, Courier, monospace; line-height: 1.4; margin-top: 0px; margin-bottom: 0px; padding: 12px; overflow: auto; color: rgb(64, 64, 64); text-align: start;">0x0</xhtml:pre>
</xhtml:div>
</xhtml:div>
</xhtml:div>
</foreignObject>
<text
x="118"
y="24"
fill="rgb(0, 0, 0)"
font-family="Helvetica"
font-size="12px"
text-anchor="end"
id="text28523">0x0</text>
</switch>
</g>
</g>
<g
id="g28533">
<rect
x="120"
y="55"
width="200"
height="40"
fill="none"
stroke="rgb(0, 0, 0)"
pointer-events="all"
id="rect28531" />
</g>
<g
id="g28541">
<g
transform="translate(-0.5 -0.5)"
id="g28539">
<switch
id="switch28537">
<foreignObject
pointer-events="none"
width="100%"
height="100%"
requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"
style="overflow: visible; text-align: left;">
<xhtml:div
style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 198px; height: 1px; padding-top: 75px; margin-left: 121px;">
<xhtml:div
data-drawio-colors="color: rgb(0, 0, 0); "
style="box-sizing: border-box; font-size: 0px; text-align: center;">
<xhtml:div
style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">ospi.tispl(2M)</xhtml:div>
</xhtml:div>
</xhtml:div>
</foreignObject>
<text
x="220"
y="79"
fill="rgb(0, 0, 0)"
font-family="Helvetica"
font-size="12px"
text-anchor="middle"
id="text28535">ospi.tispl(2M)</text>
</switch>
</g>
</g>
<g
id="g28545">
<rect
x="0"
y="45"
width="120"
height="30"
fill="none"
stroke="none"
pointer-events="all"
id="rect28543" />
</g>
<g
id="g28553">
<g
transform="translate(-0.5 -0.5)"
id="g28551">
<switch
id="switch28549">
<foreignObject
pointer-events="none"
width="100%"
height="100%"
requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"
style="overflow: visible; text-align: left;">
<xhtml:div
style="display: flex; align-items: unsafe center; justify-content: unsafe flex-end; width: 118px; height: 1px; padding-top: 60px; margin-left: 0px;">
<xhtml:div
data-drawio-colors="color: rgb(0, 0, 0); "
style="box-sizing: border-box; font-size: 0px; text-align: right;">
<xhtml:div
style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">
<xhtml:pre
style="box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &quot;Liberation Mono&quot;, &quot;Courier New&quot;, Courier, monospace; line-height: 1.4; margin-top: 0px; margin-bottom: 0px; padding: 12px; overflow: auto; color: rgb(64, 64, 64); text-align: start;">0x100000</xhtml:pre>
</xhtml:div>
</xhtml:div>
</xhtml:div>
</foreignObject>
<text
x="118"
y="64"
fill="rgb(0, 0, 0)"
font-family="Helvetica"
font-size="12px"
text-anchor="end"
id="text28547">0x100000</text>
</switch>
</g>
</g>
<g
id="g28557">
<rect
x="120"
y="95"
width="200"
height="40"
fill="none"
stroke="rgb(0, 0, 0)"
pointer-events="all"
id="rect28555" />
</g>
<g
id="g28565">
<g
transform="translate(-0.5 -0.5)"
id="g28563">
<switch
id="switch28561">
<foreignObject
pointer-events="none"
width="100%"
height="100%"
requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"
style="overflow: visible; text-align: left;">
<xhtml:div
style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 198px; height: 1px; padding-top: 115px; margin-left: 121px;">
<xhtml:div
data-drawio-colors="color: rgb(0, 0, 0); "
style="box-sizing: border-box; font-size: 0px; text-align: center;">
<xhtml:div
style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">ospi.u-boot(4M)</xhtml:div>
</xhtml:div>
</xhtml:div>
</foreignObject>
<text
x="220"
y="119"
fill="rgb(0, 0, 0)"
font-family="Helvetica"
font-size="12px"
text-anchor="middle"
id="text28559">ospi.u-boot(4M)</text>
</switch>
</g>
</g>
<g
id="g28569">
<rect
x="0"
y="85"
width="120"
height="30"
fill="none"
stroke="none"
pointer-events="all"
id="rect28567" />
</g>
<g
id="g28577">
<g
transform="translate(-0.5 -0.5)"
id="g28575">
<switch
id="switch28573">
<foreignObject
pointer-events="none"
width="100%"
height="100%"
requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"
style="overflow: visible; text-align: left;">
<xhtml:div
style="display: flex; align-items: unsafe center; justify-content: unsafe flex-end; width: 118px; height: 1px; padding-top: 100px; margin-left: 0px;">
<xhtml:div
data-drawio-colors="color: rgb(0, 0, 0); "
style="box-sizing: border-box; font-size: 0px; text-align: right;">
<xhtml:div
style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">
<xhtml:pre
style="box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &quot;Liberation Mono&quot;, &quot;Courier New&quot;, Courier, monospace; line-height: 1.4; margin-top: 0px; margin-bottom: 0px; padding: 12px; overflow: auto; color: rgb(64, 64, 64); text-align: start;">0x300000</xhtml:pre>
</xhtml:div>
</xhtml:div>
</xhtml:div>
</foreignObject>
<text
x="118"
y="104"
fill="#000000"
font-family="Helvetica"
font-size="12px"
text-anchor="end"
id="text28571">0x300000</text>
</switch>
</g>
</g>
<g
id="g28581">
<rect
x="120"
y="135"
width="200"
height="40"
fill="none"
stroke="rgb(0, 0, 0)"
pointer-events="all"
id="rect28579" />
</g>
<g
id="g28589">
<g
transform="translate(-0.5 -0.5)"
id="g28587">
<switch
id="switch28585">
<foreignObject
pointer-events="none"
width="100%"
height="100%"
requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"
style="overflow: visible; text-align: left;">
<xhtml:div
style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 198px; height: 1px; padding-top: 155px; margin-left: 121px;">
<xhtml:div
data-drawio-colors="color: rgb(0, 0, 0); "
style="box-sizing: border-box; font-size: 0px; text-align: center;">
<xhtml:div
style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">ospi.env(128K)</xhtml:div>
</xhtml:div>
</xhtml:div>
</foreignObject>
<text
x="220"
y="159"
fill="rgb(0, 0, 0)"
font-family="Helvetica"
font-size="12px"
text-anchor="middle"
id="text28583">ospi.env(128K)</text>
</switch>
</g>
</g>
<g
id="g28593">
<rect
x="0"
y="125"
width="120"
height="30"
fill="none"
stroke="none"
pointer-events="all"
id="rect28591" />
</g>
<g
id="g28601">
<g
transform="translate(-0.5 -0.5)"
id="g28599">
<switch
id="switch28597">
<foreignObject
pointer-events="none"
width="100%"
height="100%"
requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"
style="overflow: visible; text-align: left;">
<xhtml:div
style="display: flex; align-items: unsafe center; justify-content: unsafe flex-end; width: 118px; height: 1px; padding-top: 140px; margin-left: 0px;">
<xhtml:div
data-drawio-colors="color: rgb(0, 0, 0); "
style="box-sizing: border-box; font-size: 0px; text-align: right;">
<xhtml:div
style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">
<xhtml:pre
style="box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &quot;Liberation Mono&quot;, &quot;Courier New&quot;, Courier, monospace; line-height: 1.4; margin-top: 0px; margin-bottom: 0px; padding: 12px; overflow: auto; color: rgb(64, 64, 64); text-align: start;">0x700000</xhtml:pre>
</xhtml:div>
</xhtml:div>
</xhtml:div>
</foreignObject>
<text
x="118"
y="144"
fill="rgb(0, 0, 0)"
font-family="Helvetica"
font-size="12px"
text-anchor="end"
id="text28595">0x700000</text>
</switch>
</g>
</g>
<g
id="g28605">
<rect
x="120"
y="175"
width="200"
height="40"
fill="none"
stroke="rgb(0, 0, 0)"
pointer-events="all"
id="rect28603" />
</g>
<g
id="g28613">
<g
transform="translate(-0.5 -0.5)"
id="g28611">
<switch
id="switch28609">
<foreignObject
pointer-events="none"
width="100%"
height="100%"
requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"
style="overflow: visible; text-align: left;">
<xhtml:div
style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 198px; height: 1px; padding-top: 195px; margin-left: 121px;">
<xhtml:div
data-drawio-colors="color: rgb(0, 0, 0); "
style="box-sizing: border-box; font-size: 0px; text-align: center;">
<xhtml:div
style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">ospi.env.backup(128K)</xhtml:div>
</xhtml:div>
</xhtml:div>
</foreignObject>
<text
x="220"
y="199"
fill="rgb(0, 0, 0)"
font-family="Helvetica"
font-size="12px"
text-anchor="middle"
id="text28607">ospi.env.backup(128K)</text>
</switch>
</g>
</g>
<g
id="g28617">
<rect
x="0"
y="165"
width="120"
height="30"
fill="none"
stroke="none"
pointer-events="all"
id="rect28615" />
</g>
<g
id="g28625">
<g
transform="translate(-0.5 -0.5)"
id="g28623">
<switch
id="switch28621">
<foreignObject
pointer-events="none"
width="100%"
height="100%"
requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"
style="overflow: visible; text-align: left;">
<xhtml:div
style="display: flex; align-items: unsafe center; justify-content: unsafe flex-end; width: 118px; height: 1px; padding-top: 180px; margin-left: 0px;">
<xhtml:div
data-drawio-colors="color: rgb(0, 0, 0); "
style="box-sizing: border-box; font-size: 0px; text-align: right;">
<xhtml:div
style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">
<xhtml:pre
style="box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &quot;Liberation Mono&quot;, &quot;Courier New&quot;, Courier, monospace; line-height: 1.4; margin-top: 0px; margin-bottom: 0px; padding: 12px; overflow: auto; color: rgb(64, 64, 64); text-align: start;">0x720000</xhtml:pre>
</xhtml:div>
</xhtml:div>
</xhtml:div>
</foreignObject>
<text
x="118"
y="184"
fill="rgb(0, 0, 0)"
font-family="Helvetica"
font-size="12px"
text-anchor="end"
id="text28619">0x720000</text>
</switch>
</g>
</g>
<g
id="g28629">
<rect
x="120"
y="215"
width="200"
height="40"
fill="none"
stroke="rgb(0, 0, 0)"
pointer-events="all"
id="rect28627" />
</g>
<g
id="g28637">
<g
transform="translate(-0.5 -0.5)"
id="g28635">
<switch
id="switch28633">
<foreignObject
pointer-events="none"
width="100%"
height="100%"
requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"
style="overflow: visible; text-align: left;">
<xhtml:div
style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 198px; height: 1px; padding-top: 235px; margin-left: 121px;">
<xhtml:div
data-drawio-colors="color: rgb(0, 0, 0); "
style="box-sizing: border-box; font-size: 0px; text-align: center;">
<xhtml:div
style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">padding(768K)</xhtml:div>
</xhtml:div>
</xhtml:div>
</foreignObject>
<text
x="220"
y="239"
fill="rgb(0, 0, 0)"
font-family="Helvetica"
font-size="12px"
text-anchor="middle"
id="text28631">padding(768K)</text>
</switch>
</g>
</g>
<g
id="g28641">
<rect
x="0"
y="205"
width="120"
height="30"
fill="none"
stroke="none"
pointer-events="all"
id="rect28639" />
</g>
<g
id="g28649">
<g
transform="translate(-0.5 -0.5)"
id="g28647">
<switch
id="switch28645">
<foreignObject
pointer-events="none"
width="100%"
height="100%"
requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"
style="overflow: visible; text-align: left;">
<xhtml:div
style="display: flex; align-items: unsafe center; justify-content: unsafe flex-end; width: 118px; height: 1px; padding-top: 220px; margin-left: 0px;">
<xhtml:div
data-drawio-colors="color: rgb(0, 0, 0); "
style="box-sizing: border-box; font-size: 0px; text-align: right;">
<xhtml:div
style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">
<xhtml:pre
style="box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &quot;Liberation Mono&quot;, &quot;Courier New&quot;, Courier, monospace; line-height: 1.4; margin-top: 0px; margin-bottom: 0px; padding: 12px; overflow: auto; color: rgb(64, 64, 64); text-align: start;">0x740000</xhtml:pre>
</xhtml:div>
</xhtml:div>
</xhtml:div>
</foreignObject>
<text
x="118"
y="224"
fill="rgb(0, 0, 0)"
font-family="Helvetica"
font-size="12px"
text-anchor="end"
id="text28643">0x740000</text>
</switch>
</g>
</g>
<g
id="g28653">
<rect
x="120"
y="255"
width="200"
height="40"
fill="none"
stroke="rgb(0, 0, 0)"
pointer-events="all"
id="rect28651" />
</g>
<g
id="g28661">
<g
transform="translate(-0.5 -0.5)"
id="g28659">
<switch
id="switch28657">
<foreignObject
pointer-events="none"
width="100%"
height="100%"
requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"
style="overflow: visible; text-align: left;">
<xhtml:div
style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 198px; height: 1px; padding-top: 275px; margin-left: 121px;">
<xhtml:div
data-drawio-colors="color: rgb(0, 0, 0); "
style="box-sizing: border-box; font-size: 0px; text-align: center;">
<xhtml:div
style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">ospi.rootfs(UBIFS)</xhtml:div>
</xhtml:div>
</xhtml:div>
</foreignObject>
<text
x="220"
y="279"
fill="rgb(0, 0, 0)"
font-family="Helvetica"
font-size="12px"
text-anchor="middle"
id="text28655">ospi.rootfs(UBIFS)</text>
</switch>
</g>
</g>
<g
id="g28665">
<rect
x="0"
y="245"
width="120"
height="30"
fill="none"
stroke="none"
pointer-events="all"
id="rect28663" />
</g>
<g
id="g28673">
<g
transform="translate(-0.5 -0.5)"
id="g28671">
<switch
id="switch28669">
<foreignObject
pointer-events="none"
width="100%"
height="100%"
requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"
style="overflow: visible; text-align: left;">
<xhtml:div
style="display: flex; align-items: unsafe center; justify-content: unsafe flex-end; width: 118px; height: 1px; padding-top: 260px; margin-left: 0px;">
<xhtml:div
data-drawio-colors="color: rgb(0, 0, 0); "
style="box-sizing: border-box; font-size: 0px; text-align: right;">
<xhtml:div
style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">
<xhtml:pre
style="box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &quot;Liberation Mono&quot;, &quot;Courier New&quot;, Courier, monospace; line-height: 1.4; margin-top: 0px; margin-bottom: 0px; padding: 12px; overflow: auto; color: rgb(64, 64, 64); text-align: start;">0x800000</xhtml:pre>
</xhtml:div>
</xhtml:div>
</xhtml:div>
</foreignObject>
<text
x="118"
y="264"
fill="rgb(0, 0, 0)"
font-family="Helvetica"
font-size="12px"
text-anchor="end"
id="text28667">0x800000</text>
</switch>
</g>
</g>
<g
id="g28677">
<rect
x="120"
y="295"
width="200"
height="40"
fill="none"
stroke="rgb(0, 0, 0)"
pointer-events="all"
id="rect28675" />
</g>
<g
id="g28685">
<g
transform="translate(-0.5 -0.5)"
id="g28683">
<switch
id="switch28681">
<foreignObject
pointer-events="none"
width="100%"
height="100%"
requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"
style="overflow: visible; text-align: left;">
<xhtml:div
style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 198px; height: 1px; padding-top: 315px; margin-left: 121px;">
<xhtml:div
data-drawio-colors="color: rgb(0, 0, 0); "
style="box-sizing: border-box; font-size: 0px; text-align: center;">
<xhtml:div
style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">ospi.phypattern(256k)</xhtml:div>
</xhtml:div>
</xhtml:div>
</foreignObject>
<text
x="220"
y="319"
fill="rgb(0, 0, 0)"
font-family="Helvetica"
font-size="12px"
text-anchor="middle"
id="text28679">ospi.phypattern(256k)</text>
</switch>
</g>
</g>
<g
id="g28689">
<rect
x="0"
y="285"
width="120"
height="30"
fill="none"
stroke="none"
pointer-events="all"
id="rect28687" />
</g>
<g
id="g28697">
<g
transform="translate(-0.5 -0.5)"
id="g28695">
<switch
id="switch28693">
<foreignObject
pointer-events="none"
width="100%"
height="100%"
requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"
style="overflow: visible; text-align: left;">
<xhtml:div
style="display: flex; align-items: unsafe center; justify-content: unsafe flex-end; width: 118px; height: 1px; padding-top: 300px; margin-left: 0px;">
<xhtml:div
data-drawio-colors="color: rgb(0, 0, 0); "
style="box-sizing: border-box; font-size: 0px; text-align: right;">
<xhtml:div
style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">
<xhtml:pre
style="box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &quot;Liberation Mono&quot;, &quot;Courier New&quot;, Courier, monospace; line-height: 1.4; margin-top: 0px; margin-bottom: 0px; padding: 12px; overflow: auto; color: rgb(64, 64, 64); text-align: start;">0x3FC0000</xhtml:pre>
</xhtml:div>
</xhtml:div>
</xhtml:div>
</foreignObject>
<text
x="118"
y="304"
fill="rgb(0, 0, 0)"
font-family="Helvetica"
font-size="12px"
text-anchor="end"
id="text28691">0x3FC0000</text>
</switch>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 29 KiB

File diff suppressed because it is too large Load diff

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 32 KiB

View file

@ -0,0 +1,802 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!--SPDX-License-Identifier: GPL-2.0-or-later OR BSD-3-Clause-->
<!--Copyright (C) 2024 Texas Instruments Incorporated - https://www.ti.com/-->
<svg
version="1.1"
width="321px"
height="336px"
viewBox="-0.5 -0.5 321 336"
id="svg24863"
sodipodi:docname="ospi_sysfw2.svg"
inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:xhtml="http://www.w3.org/1999/xhtml">
<sodipodi:namedview
id="namedview24865"
pagecolor="#505050"
bordercolor="#eeeeee"
borderopacity="1"
inkscape:pageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="0"
showgrid="false"
inkscape:zoom="2.5982143"
inkscape:cx="160.49485"
inkscape:cy="168"
inkscape:window-width="3370"
inkscape:window-height="1376"
inkscape:window-x="70"
inkscape:window-y="27"
inkscape:window-maximized="1"
inkscape:current-layer="g24861" />
<defs
id="defs24667" />
<g
id="g24861">
<g
id="g24671">
<rect
x="120"
y="15"
width="200"
height="40"
fill="none"
stroke="rgb(0, 0, 0)"
pointer-events="all"
id="rect24669" />
</g>
<g
id="g24679">
<g
transform="translate(-0.5 -0.5)"
id="g24677">
<switch
id="switch24675">
<foreignObject
pointer-events="none"
width="100%"
height="100%"
requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"
style="overflow: visible; text-align: left;">
<xhtml:div
style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 198px; height: 1px; padding-top: 35px; margin-left: 121px;">
<xhtml:div
data-drawio-colors="color: rgb(0, 0, 0); "
style="box-sizing: border-box; font-size: 0px; text-align: center;">
<xhtml:div
style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">ospi.tiboot3(512k)</xhtml:div>
</xhtml:div>
</xhtml:div>
</foreignObject>
<text
x="220"
y="39"
fill="rgb(0, 0, 0)"
font-family="Helvetica"
font-size="12px"
text-anchor="middle"
id="text24673">ospi.tiboot3(512k)</text>
</switch>
</g>
</g>
<g
id="g24683">
<rect
x="60"
y="5"
width="60"
height="30"
fill="none"
stroke="none"
pointer-events="all"
id="rect24681" />
</g>
<g
id="g24691">
<g
transform="translate(-0.5 -0.5)"
id="g24689">
<switch
id="switch24687">
<foreignObject
pointer-events="none"
width="100%"
height="100%"
requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"
style="overflow: visible; text-align: left;">
<xhtml:div
style="display: flex; align-items: unsafe center; justify-content: unsafe flex-end; width: 58px; height: 1px; padding-top: 20px; margin-left: 60px;">
<xhtml:div
data-drawio-colors="color: rgb(0, 0, 0); "
style="box-sizing: border-box; font-size: 0px; text-align: right;">
<xhtml:div
style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">
<xhtml:pre
style="box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &quot;Liberation Mono&quot;, &quot;Courier New&quot;, Courier, monospace; line-height: 1.4; margin-top: 0px; margin-bottom: 0px; padding: 12px; overflow: auto; color: rgb(64, 64, 64); text-align: start;">0x0</xhtml:pre>
</xhtml:div>
</xhtml:div>
</xhtml:div>
</foreignObject>
<text
x="118"
y="24"
fill="rgb(0, 0, 0)"
font-family="Helvetica"
font-size="12px"
text-anchor="end"
id="text24685">0x0</text>
</switch>
</g>
</g>
<g
id="g24695">
<rect
x="120"
y="55"
width="200"
height="40"
fill="none"
stroke="rgb(0, 0, 0)"
pointer-events="all"
id="rect24693" />
</g>
<g
id="g24703">
<g
transform="translate(-0.5 -0.5)"
id="g24701">
<switch
id="switch24699">
<foreignObject
pointer-events="none"
width="100%"
height="100%"
requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"
style="overflow: visible; text-align: left;">
<xhtml:div
style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 198px; height: 1px; padding-top: 75px; margin-left: 121px;">
<xhtml:div
data-drawio-colors="color: rgb(0, 0, 0); "
style="box-sizing: border-box; font-size: 0px; text-align: center;">
<xhtml:div
style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">ospi.tispl(2M)</xhtml:div>
</xhtml:div>
</xhtml:div>
</foreignObject>
<text
x="220"
y="79"
fill="rgb(0, 0, 0)"
font-family="Helvetica"
font-size="12px"
text-anchor="middle"
id="text24697">ospi.tispl(2M)</text>
</switch>
</g>
</g>
<g
id="g24707">
<rect
x="0"
y="45"
width="120"
height="30"
fill="none"
stroke="none"
pointer-events="all"
id="rect24705" />
</g>
<g
id="g24715">
<g
transform="translate(-0.5 -0.5)"
id="g24713">
<switch
id="switch24711">
<foreignObject
pointer-events="none"
width="100%"
height="100%"
requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"
style="overflow: visible; text-align: left;">
<xhtml:div
style="display: flex; align-items: unsafe center; justify-content: unsafe flex-end; width: 118px; height: 1px; padding-top: 60px; margin-left: 0px;">
<xhtml:div
data-drawio-colors="color: rgb(0, 0, 0); "
style="box-sizing: border-box; font-size: 0px; text-align: right;">
<xhtml:div
style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">
<xhtml:pre
style="box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &quot;Liberation Mono&quot;, &quot;Courier New&quot;, Courier, monospace; line-height: 1.4; margin-top: 0px; margin-bottom: 0px; padding: 12px; overflow: auto; color: rgb(64, 64, 64); text-align: start;">0x80000</xhtml:pre>
</xhtml:div>
</xhtml:div>
</xhtml:div>
</foreignObject>
<text
x="118"
y="64"
fill="rgb(0, 0, 0)"
font-family="Helvetica"
font-size="12px"
text-anchor="end"
id="text24709">0x80000</text>
</switch>
</g>
</g>
<g
id="g24719">
<rect
x="120"
y="95"
width="200"
height="40"
fill="none"
stroke="rgb(0, 0, 0)"
pointer-events="all"
id="rect24717" />
</g>
<g
id="g24727">
<g
transform="translate(-0.5 -0.5)"
id="g24725">
<switch
id="switch24723">
<foreignObject
pointer-events="none"
width="100%"
height="100%"
requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"
style="overflow: visible; text-align: left;">
<xhtml:div
style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 198px; height: 1px; padding-top: 115px; margin-left: 121px;">
<xhtml:div
data-drawio-colors="color: rgb(0, 0, 0); "
style="box-sizing: border-box; font-size: 0px; text-align: center;">
<xhtml:div
style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">ospi.u-boot(4M)</xhtml:div>
</xhtml:div>
</xhtml:div>
</foreignObject>
<text
x="220"
y="119"
fill="rgb(0, 0, 0)"
font-family="Helvetica"
font-size="12px"
text-anchor="middle"
id="text24721">ospi.u-boot(4M)</text>
</switch>
</g>
</g>
<g
id="g24731">
<rect
x="0"
y="85"
width="120"
height="30"
fill="none"
stroke="none"
pointer-events="all"
id="rect24729" />
</g>
<g
id="g24739">
<g
transform="translate(-0.5 -0.5)"
id="g24737">
<switch
id="switch24735">
<foreignObject
pointer-events="none"
width="100%"
height="100%"
requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"
style="overflow: visible; text-align: left;">
<xhtml:div
style="display: flex; align-items: unsafe center; justify-content: unsafe flex-end; width: 118px; height: 1px; padding-top: 100px; margin-left: 0px;">
<xhtml:div
data-drawio-colors="color: rgb(0, 0, 0); "
style="box-sizing: border-box; font-size: 0px; text-align: right;">
<xhtml:div
style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">
<xhtml:pre
style="box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &quot;Liberation Mono&quot;, &quot;Courier New&quot;, Courier, monospace; line-height: 1.4; margin-top: 0px; margin-bottom: 0px; padding: 12px; overflow: auto; color: rgb(64, 64, 64); text-align: start;">0x280000</xhtml:pre>
</xhtml:div>
</xhtml:div>
</xhtml:div>
</foreignObject>
<text
x="118"
y="104"
fill="rgb(0, 0, 0)"
font-family="Helvetica"
font-size="12px"
text-anchor="end"
id="text24733">0x280000</text>
</switch>
</g>
</g>
<g
id="g24743">
<rect
x="120"
y="135"
width="200"
height="40"
fill="none"
stroke="rgb(0, 0, 0)"
pointer-events="all"
id="rect24741" />
</g>
<g
id="g24751">
<g
transform="translate(-0.5 -0.5)"
id="g24749">
<switch
id="switch24747">
<foreignObject
pointer-events="none"
width="100%"
height="100%"
requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"
style="overflow: visible; text-align: left;">
<xhtml:div
style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 198px; height: 1px; padding-top: 155px; margin-left: 121px;">
<xhtml:div
data-drawio-colors="color: rgb(0, 0, 0); "
style="box-sizing: border-box; font-size: 0px; text-align: center;">
<xhtml:div
style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">ospi.env(128K)</xhtml:div>
</xhtml:div>
</xhtml:div>
</foreignObject>
<text
x="220"
y="159"
fill="rgb(0, 0, 0)"
font-family="Helvetica"
font-size="12px"
text-anchor="middle"
id="text24745">ospi.env(128K)</text>
</switch>
</g>
</g>
<g
id="g24755">
<rect
x="0"
y="125"
width="120"
height="30"
fill="none"
stroke="none"
pointer-events="all"
id="rect24753" />
</g>
<g
id="g24763">
<g
transform="translate(-0.5 -0.5)"
id="g24761">
<switch
id="switch24759">
<foreignObject
pointer-events="none"
width="100%"
height="100%"
requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"
style="overflow: visible; text-align: left;">
<xhtml:div
style="display: flex; align-items: unsafe center; justify-content: unsafe flex-end; width: 118px; height: 1px; padding-top: 140px; margin-left: 0px;">
<xhtml:div
data-drawio-colors="color: rgb(0, 0, 0); "
style="box-sizing: border-box; font-size: 0px; text-align: right;">
<xhtml:div
style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">
<xhtml:pre
style="box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &quot;Liberation Mono&quot;, &quot;Courier New&quot;, Courier, monospace; line-height: 1.4; margin-top: 0px; margin-bottom: 0px; padding: 12px; overflow: auto; color: rgb(64, 64, 64); text-align: start;">0x680000</xhtml:pre>
</xhtml:div>
</xhtml:div>
</xhtml:div>
</foreignObject>
<text
x="118"
y="144"
fill="#000000"
font-family="Helvetica"
font-size="12px"
text-anchor="end"
id="text24757">0x680000</text>
</switch>
</g>
</g>
<g
id="g24767">
<rect
x="120"
y="175"
width="200"
height="40"
fill="none"
stroke="rgb(0, 0, 0)"
pointer-events="all"
id="rect24765" />
</g>
<g
id="g24775">
<g
transform="translate(-0.5 -0.5)"
id="g24773">
<switch
id="switch24771">
<foreignObject
pointer-events="none"
width="100%"
height="100%"
requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"
style="overflow: visible; text-align: left;">
<xhtml:div
style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 198px; height: 1px; padding-top: 195px; margin-left: 121px;">
<xhtml:div
data-drawio-colors="color: rgb(0, 0, 0); "
style="box-sizing: border-box; font-size: 0px; text-align: center;">
<xhtml:div
style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">ospi.env.backup(128K)</xhtml:div>
</xhtml:div>
</xhtml:div>
</foreignObject>
<text
x="220"
y="199"
fill="rgb(0, 0, 0)"
font-family="Helvetica"
font-size="12px"
text-anchor="middle"
id="text24769">ospi.env.backup(128K)</text>
</switch>
</g>
</g>
<g
id="g24779">
<rect
x="0"
y="165"
width="120"
height="30"
fill="none"
stroke="none"
pointer-events="all"
id="rect24777" />
</g>
<g
id="g24787">
<g
transform="translate(-0.5 -0.5)"
id="g24785">
<switch
id="switch24783">
<foreignObject
pointer-events="none"
width="100%"
height="100%"
requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"
style="overflow: visible; text-align: left;">
<xhtml:div
style="display: flex; align-items: unsafe center; justify-content: unsafe flex-end; width: 118px; height: 1px; padding-top: 180px; margin-left: 0px;">
<xhtml:div
data-drawio-colors="color: rgb(0, 0, 0); "
style="box-sizing: border-box; font-size: 0px; text-align: right;">
<xhtml:div
style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">
<xhtml:pre
style="box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &quot;Liberation Mono&quot;, &quot;Courier New&quot;, Courier, monospace; line-height: 1.4; margin-top: 0px; margin-bottom: 0px; padding: 12px; overflow: auto; color: rgb(64, 64, 64); text-align: start;">0x6C0000</xhtml:pre>
</xhtml:div>
</xhtml:div>
</xhtml:div>
</foreignObject>
<text
x="118"
y="184"
fill="rgb(0, 0, 0)"
font-family="Helvetica"
font-size="12px"
text-anchor="end"
id="text24781">0x6C0000</text>
</switch>
</g>
</g>
<g
id="g24791">
<rect
x="120"
y="215"
width="200"
height="40"
fill="none"
stroke="rgb(0, 0, 0)"
pointer-events="all"
id="rect24789" />
</g>
<g
id="g24799">
<g
transform="translate(-0.5 -0.5)"
id="g24797">
<switch
id="switch24795">
<foreignObject
pointer-events="none"
width="100%"
height="100%"
requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"
style="overflow: visible; text-align: left;">
<xhtml:div
style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 198px; height: 1px; padding-top: 235px; margin-left: 121px;">
<xhtml:div
data-drawio-colors="color: rgb(0, 0, 0); "
style="box-sizing: border-box; font-size: 0px; text-align: center;">
<xhtml:div
style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">padding(768K)</xhtml:div>
</xhtml:div>
</xhtml:div>
</foreignObject>
<text
x="220"
y="239"
fill="rgb(0, 0, 0)"
font-family="Helvetica"
font-size="12px"
text-anchor="middle"
id="text24793">padding(768K)</text>
</switch>
</g>
</g>
<g
id="g24803">
<rect
x="0"
y="205"
width="120"
height="30"
fill="none"
stroke="none"
pointer-events="all"
id="rect24801" />
</g>
<g
id="g24811">
<g
transform="translate(-0.5 -0.5)"
id="g24809">
<switch
id="switch24807">
<foreignObject
pointer-events="none"
width="100%"
height="100%"
requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"
style="overflow: visible; text-align: left;">
<xhtml:div
style="display: flex; align-items: unsafe center; justify-content: unsafe flex-end; width: 118px; height: 1px; padding-top: 220px; margin-left: 0px;">
<xhtml:div
data-drawio-colors="color: rgb(0, 0, 0); "
style="box-sizing: border-box; font-size: 0px; text-align: right;">
<xhtml:div
style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">
<xhtml:pre
style="box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &quot;Liberation Mono&quot;, &quot;Courier New&quot;, Courier, monospace; line-height: 1.4; margin-top: 0px; margin-bottom: 0px; padding: 12px; overflow: auto; color: rgb(64, 64, 64); text-align: start;">0x740000</xhtml:pre>
</xhtml:div>
</xhtml:div>
</xhtml:div>
</foreignObject>
<text
x="118"
y="224"
fill="rgb(0, 0, 0)"
font-family="Helvetica"
font-size="12px"
text-anchor="end"
id="text24805">0x740000</text>
</switch>
</g>
</g>
<g
id="g24815">
<rect
x="120"
y="255"
width="200"
height="40"
fill="none"
stroke="rgb(0, 0, 0)"
pointer-events="all"
id="rect24813" />
</g>
<g
id="g24823">
<g
transform="translate(-0.5 -0.5)"
id="g24821">
<switch
id="switch24819">
<foreignObject
pointer-events="none"
width="100%"
height="100%"
requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"
style="overflow: visible; text-align: left;">
<xhtml:div
style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 198px; height: 1px; padding-top: 275px; margin-left: 121px;">
<xhtml:div
data-drawio-colors="color: rgb(0, 0, 0); "
style="box-sizing: border-box; font-size: 0px; text-align: center;">
<xhtml:div
style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">ospi.rootfs(UBIFS)</xhtml:div>
</xhtml:div>
</xhtml:div>
</foreignObject>
<text
x="220"
y="279"
fill="rgb(0, 0, 0)"
font-family="Helvetica"
font-size="12px"
text-anchor="middle"
id="text24817">ospi.rootfs(UBIFS)</text>
</switch>
</g>
</g>
<g
id="g24827">
<rect
x="0"
y="245"
width="120"
height="30"
fill="none"
stroke="none"
pointer-events="all"
id="rect24825" />
</g>
<g
id="g24835">
<g
transform="translate(-0.5 -0.5)"
id="g24833">
<switch
id="switch24831">
<foreignObject
pointer-events="none"
width="100%"
height="100%"
requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"
style="overflow: visible; text-align: left;">
<xhtml:div
style="display: flex; align-items: unsafe center; justify-content: unsafe flex-end; width: 118px; height: 1px; padding-top: 260px; margin-left: 0px;">
<xhtml:div
data-drawio-colors="color: rgb(0, 0, 0); "
style="box-sizing: border-box; font-size: 0px; text-align: right;">
<xhtml:div
style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">
<xhtml:pre
style="box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &quot;Liberation Mono&quot;, &quot;Courier New&quot;, Courier, monospace; line-height: 1.4; margin-top: 0px; margin-bottom: 0px; padding: 12px; overflow: auto; color: rgb(64, 64, 64); text-align: start;">0x800000</xhtml:pre>
</xhtml:div>
</xhtml:div>
</xhtml:div>
</foreignObject>
<text
x="118"
y="264"
fill="rgb(0, 0, 0)"
font-family="Helvetica"
font-size="12px"
text-anchor="end"
id="text24829">0x800000</text>
</switch>
</g>
</g>
<g
id="g24839">
<rect
x="120"
y="295"
width="200"
height="40"
fill="none"
stroke="rgb(0, 0, 0)"
pointer-events="all"
id="rect24837" />
</g>
<g
id="g24847">
<g
transform="translate(-0.5 -0.5)"
id="g24845">
<switch
id="switch24843">
<foreignObject
pointer-events="none"
width="100%"
height="100%"
requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"
style="overflow: visible; text-align: left;">
<xhtml:div
style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 198px; height: 1px; padding-top: 315px; margin-left: 121px;">
<xhtml:div
data-drawio-colors="color: rgb(0, 0, 0); "
style="box-sizing: border-box; font-size: 0px; text-align: center;">
<xhtml:div
style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">ospi.phypattern(256k)</xhtml:div>
</xhtml:div>
</xhtml:div>
</foreignObject>
<text
x="220"
y="319"
fill="rgb(0, 0, 0)"
font-family="Helvetica"
font-size="12px"
text-anchor="middle"
id="text24841">ospi.phypattern(256k)</text>
</switch>
</g>
</g>
<g
id="g24851">
<rect
x="0"
y="285"
width="120"
height="30"
fill="none"
stroke="none"
pointer-events="all"
id="rect24849" />
</g>
<g
id="g24859">
<g
transform="translate(-0.5 -0.5)"
id="g24857">
<switch
id="switch24855">
<foreignObject
pointer-events="none"
width="100%"
height="100%"
requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"
style="overflow: visible; text-align: left;">
<xhtml:div
style="display: flex; align-items: unsafe center; justify-content: unsafe flex-end; width: 118px; height: 1px; padding-top: 300px; margin-left: 0px;">
<xhtml:div
data-drawio-colors="color: rgb(0, 0, 0); "
style="box-sizing: border-box; font-size: 0px; text-align: right;">
<xhtml:div
style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">
<xhtml:pre
style="box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &quot;Liberation Mono&quot;, &quot;Courier New&quot;, Courier, monospace; line-height: 1.4; margin-top: 0px; margin-bottom: 0px; padding: 12px; overflow: auto; color: rgb(64, 64, 64); text-align: start;">0x3FC0000</xhtml:pre>
</xhtml:div>
</xhtml:div>
</xhtml:div>
</foreignObject>
<text
x="118"
y="304"
fill="rgb(0, 0, 0)"
font-family="Helvetica"
font-size="12px"
text-anchor="end"
id="text24853">0x3FC0000</text>
</switch>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 29 KiB

View file

@ -0,0 +1,802 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!--SPDX-License-Identifier: GPL-2.0-or-later OR BSD-3-Clause-->
<!--Copyright (C) 2024 Texas Instruments Incorporated - https://www.ti.com/-->
<svg
version="1.1"
width="321px"
height="336px"
viewBox="-0.5 -0.5 321 336"
id="svg205"
sodipodi:docname="ospi_sysfw3.svg"
inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:xhtml="http://www.w3.org/1999/xhtml">
<sodipodi:namedview
id="namedview207"
pagecolor="#505050"
bordercolor="#eeeeee"
borderopacity="1"
inkscape:pageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="0"
showgrid="false"
inkscape:zoom="3.4732143"
inkscape:cx="160.37018"
inkscape:cy="168"
inkscape:window-width="3370"
inkscape:window-height="1376"
inkscape:window-x="70"
inkscape:window-y="27"
inkscape:window-maximized="1"
inkscape:current-layer="g203" />
<defs
id="defs9" />
<g
id="g203">
<g
id="g13">
<rect
x="120"
y="15"
width="200"
height="40"
fill="none"
stroke="rgb(0, 0, 0)"
pointer-events="all"
id="rect11" />
</g>
<g
id="g21">
<g
transform="translate(-0.5 -0.5)"
id="g19">
<switch
id="switch17">
<foreignObject
pointer-events="none"
width="100%"
height="100%"
requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"
style="overflow: visible; text-align: left;">
<xhtml:div
style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 198px; height: 1px; padding-top: 35px; margin-left: 121px;">
<xhtml:div
data-drawio-colors="color: rgb(0, 0, 0); "
style="box-sizing: border-box; font-size: 0px; text-align: center;">
<xhtml:div
style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">ospi.tiboot3(512k)</xhtml:div>
</xhtml:div>
</xhtml:div>
</foreignObject>
<text
x="220"
y="39"
fill="rgb(0, 0, 0)"
font-family="Helvetica"
font-size="12px"
text-anchor="middle"
id="text15">ospi.tiboot3(512k)</text>
</switch>
</g>
</g>
<g
id="g25">
<rect
x="60"
y="5"
width="60"
height="30"
fill="none"
stroke="none"
pointer-events="all"
id="rect23" />
</g>
<g
id="g33">
<g
transform="translate(-0.5 -0.5)"
id="g31">
<switch
id="switch29">
<foreignObject
pointer-events="none"
width="100%"
height="100%"
requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"
style="overflow: visible; text-align: left;">
<xhtml:div
style="display: flex; align-items: unsafe center; justify-content: unsafe flex-end; width: 58px; height: 1px; padding-top: 20px; margin-left: 60px;">
<xhtml:div
data-drawio-colors="color: rgb(0, 0, 0); "
style="box-sizing: border-box; font-size: 0px; text-align: right;">
<xhtml:div
style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">
<xhtml:pre
style="box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &quot;Liberation Mono&quot;, &quot;Courier New&quot;, Courier, monospace; line-height: 1.4; margin-top: 0px; margin-bottom: 0px; padding: 12px; overflow: auto; color: rgb(64, 64, 64); text-align: start;">0x0</xhtml:pre>
</xhtml:div>
</xhtml:div>
</xhtml:div>
</foreignObject>
<text
x="118"
y="24"
fill="rgb(0, 0, 0)"
font-family="Helvetica"
font-size="12px"
text-anchor="end"
id="text27">0x0</text>
</switch>
</g>
</g>
<g
id="g37">
<rect
x="120"
y="55"
width="200"
height="40"
fill="none"
stroke="rgb(0, 0, 0)"
pointer-events="all"
id="rect35" />
</g>
<g
id="g45">
<g
transform="translate(-0.5 -0.5)"
id="g43">
<switch
id="switch41">
<foreignObject
pointer-events="none"
width="100%"
height="100%"
requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"
style="overflow: visible; text-align: left;">
<xhtml:div
style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 198px; height: 1px; padding-top: 75px; margin-left: 121px;">
<xhtml:div
data-drawio-colors="color: rgb(0, 0, 0); "
style="box-sizing: border-box; font-size: 0px; text-align: center;">
<xhtml:div
style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">ospi.tispl(2M)</xhtml:div>
</xhtml:div>
</xhtml:div>
</foreignObject>
<text
x="220"
y="79"
fill="rgb(0, 0, 0)"
font-family="Helvetica"
font-size="12px"
text-anchor="middle"
id="text39">ospi.tispl(2M)</text>
</switch>
</g>
</g>
<g
id="g49">
<rect
x="0"
y="45"
width="120"
height="30"
fill="none"
stroke="none"
pointer-events="all"
id="rect47" />
</g>
<g
id="g57">
<g
transform="translate(-0.5 -0.5)"
id="g55">
<switch
id="switch53">
<foreignObject
pointer-events="none"
width="100%"
height="100%"
requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"
style="overflow: visible; text-align: left;">
<xhtml:div
style="display: flex; align-items: unsafe center; justify-content: unsafe flex-end; width: 118px; height: 1px; padding-top: 60px; margin-left: 0px;">
<xhtml:div
data-drawio-colors="color: rgb(0, 0, 0); "
style="box-sizing: border-box; font-size: 0px; text-align: right;">
<xhtml:div
style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">
<xhtml:pre
style="box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &quot;Liberation Mono&quot;, &quot;Courier New&quot;, Courier, monospace; line-height: 1.4; margin-top: 0px; margin-bottom: 0px; padding: 12px; overflow: auto; color: rgb(64, 64, 64); text-align: start;">0x80000</xhtml:pre>
</xhtml:div>
</xhtml:div>
</xhtml:div>
</foreignObject>
<text
x="118"
y="64"
fill="rgb(0, 0, 0)"
font-family="Helvetica"
font-size="12px"
text-anchor="end"
id="text51">0x80000</text>
</switch>
</g>
</g>
<g
id="g61">
<rect
x="120"
y="95"
width="200"
height="40"
fill="none"
stroke="rgb(0, 0, 0)"
pointer-events="all"
id="rect59" />
</g>
<g
id="g69">
<g
transform="translate(-0.5 -0.5)"
id="g67">
<switch
id="switch65">
<foreignObject
pointer-events="none"
width="100%"
height="100%"
requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"
style="overflow: visible; text-align: left;">
<xhtml:div
style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 198px; height: 1px; padding-top: 115px; margin-left: 121px;">
<xhtml:div
data-drawio-colors="color: rgb(0, 0, 0); "
style="box-sizing: border-box; font-size: 0px; text-align: center;">
<xhtml:div
style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">ospi.u-boot(4M)</xhtml:div>
</xhtml:div>
</xhtml:div>
</foreignObject>
<text
x="220"
y="119"
fill="rgb(0, 0, 0)"
font-family="Helvetica"
font-size="12px"
text-anchor="middle"
id="text63">ospi.u-boot(4M)</text>
</switch>
</g>
</g>
<g
id="g73">
<rect
x="0"
y="85"
width="120"
height="30"
fill="none"
stroke="none"
pointer-events="all"
id="rect71" />
</g>
<g
id="g81">
<g
transform="translate(-0.5 -0.5)"
id="g79">
<switch
id="switch77">
<foreignObject
pointer-events="none"
width="100%"
height="100%"
requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"
style="overflow: visible; text-align: left;">
<xhtml:div
style="display: flex; align-items: unsafe center; justify-content: unsafe flex-end; width: 118px; height: 1px; padding-top: 100px; margin-left: 0px;">
<xhtml:div
data-drawio-colors="color: rgb(0, 0, 0); "
style="box-sizing: border-box; font-size: 0px; text-align: right;">
<xhtml:div
style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">
<xhtml:pre
style="box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &quot;Liberation Mono&quot;, &quot;Courier New&quot;, Courier, monospace; line-height: 1.4; margin-top: 0px; margin-bottom: 0px; padding: 12px; overflow: auto; color: rgb(64, 64, 64); text-align: start;">0x280000</xhtml:pre>
</xhtml:div>
</xhtml:div>
</xhtml:div>
</foreignObject>
<text
x="118"
y="104"
fill="#000000"
font-family="Helvetica"
font-size="12px"
text-anchor="end"
id="text75">0x280000</text>
</switch>
</g>
</g>
<g
id="g85">
<rect
x="120"
y="135"
width="200"
height="40"
fill="none"
stroke="rgb(0, 0, 0)"
pointer-events="all"
id="rect83" />
</g>
<g
id="g93">
<g
transform="translate(-0.5 -0.5)"
id="g91">
<switch
id="switch89">
<foreignObject
pointer-events="none"
width="100%"
height="100%"
requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"
style="overflow: visible; text-align: left;">
<xhtml:div
style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 198px; height: 1px; padding-top: 155px; margin-left: 121px;">
<xhtml:div
data-drawio-colors="color: rgb(0, 0, 0); "
style="box-sizing: border-box; font-size: 0px; text-align: center;">
<xhtml:div
style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">ospi.env(128K)</xhtml:div>
</xhtml:div>
</xhtml:div>
</foreignObject>
<text
x="220"
y="159"
fill="rgb(0, 0, 0)"
font-family="Helvetica"
font-size="12px"
text-anchor="middle"
id="text87">ospi.env(128K)</text>
</switch>
</g>
</g>
<g
id="g97">
<rect
x="0"
y="125"
width="120"
height="30"
fill="none"
stroke="none"
pointer-events="all"
id="rect95" />
</g>
<g
id="g105">
<g
transform="translate(-0.5 -0.5)"
id="g103">
<switch
id="switch101">
<foreignObject
pointer-events="none"
width="100%"
height="100%"
requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"
style="overflow: visible; text-align: left;">
<xhtml:div
style="display: flex; align-items: unsafe center; justify-content: unsafe flex-end; width: 118px; height: 1px; padding-top: 140px; margin-left: 0px;">
<xhtml:div
data-drawio-colors="color: rgb(0, 0, 0); "
style="box-sizing: border-box; font-size: 0px; text-align: right;">
<xhtml:div
style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">
<xhtml:pre
style="box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &quot;Liberation Mono&quot;, &quot;Courier New&quot;, Courier, monospace; line-height: 1.4; margin-top: 0px; margin-bottom: 0px; padding: 12px; overflow: auto; color: rgb(64, 64, 64); text-align: start;">0x680000</xhtml:pre>
</xhtml:div>
</xhtml:div>
</xhtml:div>
</foreignObject>
<text
x="118"
y="144"
fill="rgb(0, 0, 0)"
font-family="Helvetica"
font-size="12px"
text-anchor="end"
id="text99">0x680000</text>
</switch>
</g>
</g>
<g
id="g109">
<rect
x="120"
y="175"
width="200"
height="40"
fill="none"
stroke="rgb(0, 0, 0)"
pointer-events="all"
id="rect107" />
</g>
<g
id="g117">
<g
transform="translate(-0.5 -0.5)"
id="g115">
<switch
id="switch113">
<foreignObject
pointer-events="none"
width="100%"
height="100%"
requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"
style="overflow: visible; text-align: left;">
<xhtml:div
style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 198px; height: 1px; padding-top: 195px; margin-left: 121px;">
<xhtml:div
data-drawio-colors="color: rgb(0, 0, 0); "
style="box-sizing: border-box; font-size: 0px; text-align: center;">
<xhtml:div
style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">ospi.env.backup(128K)</xhtml:div>
</xhtml:div>
</xhtml:div>
</foreignObject>
<text
x="220"
y="199"
fill="rgb(0, 0, 0)"
font-family="Helvetica"
font-size="12px"
text-anchor="middle"
id="text111">ospi.env.backup(128K)</text>
</switch>
</g>
</g>
<g
id="g121">
<rect
x="0"
y="165"
width="120"
height="30"
fill="none"
stroke="none"
pointer-events="all"
id="rect119" />
</g>
<g
id="g129">
<g
transform="translate(-0.5 -0.5)"
id="g127">
<switch
id="switch125">
<foreignObject
pointer-events="none"
width="100%"
height="100%"
requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"
style="overflow: visible; text-align: left;">
<xhtml:div
style="display: flex; align-items: unsafe center; justify-content: unsafe flex-end; width: 118px; height: 1px; padding-top: 180px; margin-left: 0px;">
<xhtml:div
data-drawio-colors="color: rgb(0, 0, 0); "
style="box-sizing: border-box; font-size: 0px; text-align: right;">
<xhtml:div
style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">
<xhtml:pre
style="box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &quot;Liberation Mono&quot;, &quot;Courier New&quot;, Courier, monospace; line-height: 1.4; margin-top: 0px; margin-bottom: 0px; padding: 12px; overflow: auto; color: rgb(64, 64, 64); text-align: start;">0x6A0000</xhtml:pre>
</xhtml:div>
</xhtml:div>
</xhtml:div>
</foreignObject>
<text
x="118"
y="184"
fill="rgb(0, 0, 0)"
font-family="Helvetica"
font-size="12px"
text-anchor="end"
id="text123">0x6A0000</text>
</switch>
</g>
</g>
<g
id="g133">
<rect
x="120"
y="215"
width="200"
height="40"
fill="none"
stroke="rgb(0, 0, 0)"
pointer-events="all"
id="rect131" />
</g>
<g
id="g141">
<g
transform="translate(-0.5 -0.5)"
id="g139">
<switch
id="switch137">
<foreignObject
pointer-events="none"
width="100%"
height="100%"
requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"
style="overflow: visible; text-align: left;">
<xhtml:div
style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 198px; height: 1px; padding-top: 235px; margin-left: 121px;">
<xhtml:div
data-drawio-colors="color: rgb(0, 0, 0); "
style="box-sizing: border-box; font-size: 0px; text-align: center;">
<xhtml:div
style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">padding(1280K)</xhtml:div>
</xhtml:div>
</xhtml:div>
</foreignObject>
<text
x="220"
y="239"
fill="rgb(0, 0, 0)"
font-family="Helvetica"
font-size="12px"
text-anchor="middle"
id="text135">padding(1280K)</text>
</switch>
</g>
</g>
<g
id="g145">
<rect
x="0"
y="205"
width="120"
height="30"
fill="none"
stroke="none"
pointer-events="all"
id="rect143" />
</g>
<g
id="g153">
<g
transform="translate(-0.5 -0.5)"
id="g151">
<switch
id="switch149">
<foreignObject
pointer-events="none"
width="100%"
height="100%"
requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"
style="overflow: visible; text-align: left;">
<xhtml:div
style="display: flex; align-items: unsafe center; justify-content: unsafe flex-end; width: 118px; height: 1px; padding-top: 220px; margin-left: 0px;">
<xhtml:div
data-drawio-colors="color: rgb(0, 0, 0); "
style="box-sizing: border-box; font-size: 0px; text-align: right;">
<xhtml:div
style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">
<xhtml:pre
style="box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &quot;Liberation Mono&quot;, &quot;Courier New&quot;, Courier, monospace; line-height: 1.4; margin-top: 0px; margin-bottom: 0px; padding: 12px; overflow: auto; color: rgb(64, 64, 64); text-align: start;">0x6C0000</xhtml:pre>
</xhtml:div>
</xhtml:div>
</xhtml:div>
</foreignObject>
<text
x="118"
y="224"
fill="rgb(0, 0, 0)"
font-family="Helvetica"
font-size="12px"
text-anchor="end"
id="text147">0x6C0000</text>
</switch>
</g>
</g>
<g
id="g157">
<rect
x="120"
y="255"
width="200"
height="40"
fill="none"
stroke="rgb(0, 0, 0)"
pointer-events="all"
id="rect155" />
</g>
<g
id="g165">
<g
transform="translate(-0.5 -0.5)"
id="g163">
<switch
id="switch161">
<foreignObject
pointer-events="none"
width="100%"
height="100%"
requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"
style="overflow: visible; text-align: left;">
<xhtml:div
style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 198px; height: 1px; padding-top: 275px; margin-left: 121px;">
<xhtml:div
data-drawio-colors="color: rgb(0, 0, 0); "
style="box-sizing: border-box; font-size: 0px; text-align: center;">
<xhtml:div
style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">ospi.rootfs(UBIFS)</xhtml:div>
</xhtml:div>
</xhtml:div>
</foreignObject>
<text
x="220"
y="279"
fill="rgb(0, 0, 0)"
font-family="Helvetica"
font-size="12px"
text-anchor="middle"
id="text159">ospi.rootfs(UBIFS)</text>
</switch>
</g>
</g>
<g
id="g169">
<rect
x="0"
y="245"
width="120"
height="30"
fill="none"
stroke="none"
pointer-events="all"
id="rect167" />
</g>
<g
id="g177">
<g
transform="translate(-0.5 -0.5)"
id="g175">
<switch
id="switch173">
<foreignObject
pointer-events="none"
width="100%"
height="100%"
requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"
style="overflow: visible; text-align: left;">
<xhtml:div
style="display: flex; align-items: unsafe center; justify-content: unsafe flex-end; width: 118px; height: 1px; padding-top: 260px; margin-left: 0px;">
<xhtml:div
data-drawio-colors="color: rgb(0, 0, 0); "
style="box-sizing: border-box; font-size: 0px; text-align: right;">
<xhtml:div
style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">
<xhtml:pre
style="box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &quot;Liberation Mono&quot;, &quot;Courier New&quot;, Courier, monospace; line-height: 1.4; margin-top: 0px; margin-bottom: 0px; padding: 12px; overflow: auto; color: rgb(64, 64, 64); text-align: start;">0x800000</xhtml:pre>
</xhtml:div>
</xhtml:div>
</xhtml:div>
</foreignObject>
<text
x="118"
y="264"
fill="rgb(0, 0, 0)"
font-family="Helvetica"
font-size="12px"
text-anchor="end"
id="text171">0x800000</text>
</switch>
</g>
</g>
<g
id="g181">
<rect
x="120"
y="295"
width="200"
height="40"
fill="none"
stroke="rgb(0, 0, 0)"
pointer-events="all"
id="rect179" />
</g>
<g
id="g189">
<g
transform="translate(-0.5 -0.5)"
id="g187">
<switch
id="switch185">
<foreignObject
pointer-events="none"
width="100%"
height="100%"
requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"
style="overflow: visible; text-align: left;">
<xhtml:div
style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 198px; height: 1px; padding-top: 315px; margin-left: 121px;">
<xhtml:div
data-drawio-colors="color: rgb(0, 0, 0); "
style="box-sizing: border-box; font-size: 0px; text-align: center;">
<xhtml:div
style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">ospi.phypattern(256k)</xhtml:div>
</xhtml:div>
</xhtml:div>
</foreignObject>
<text
x="220"
y="319"
fill="rgb(0, 0, 0)"
font-family="Helvetica"
font-size="12px"
text-anchor="middle"
id="text183">ospi.phypattern(256k)</text>
</switch>
</g>
</g>
<g
id="g193">
<rect
x="0"
y="285"
width="120"
height="30"
fill="none"
stroke="none"
pointer-events="all"
id="rect191" />
</g>
<g
id="g201">
<g
transform="translate(-0.5 -0.5)"
id="g199">
<switch
id="switch197">
<foreignObject
pointer-events="none"
width="100%"
height="100%"
requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"
style="overflow: visible; text-align: left;">
<xhtml:div
style="display: flex; align-items: unsafe center; justify-content: unsafe flex-end; width: 118px; height: 1px; padding-top: 300px; margin-left: 0px;">
<xhtml:div
data-drawio-colors="color: rgb(0, 0, 0); "
style="box-sizing: border-box; font-size: 0px; text-align: right;">
<xhtml:div
style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">
<xhtml:pre
style="box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &quot;Liberation Mono&quot;, &quot;Courier New&quot;, Courier, monospace; line-height: 1.4; margin-top: 0px; margin-bottom: 0px; padding: 12px; overflow: auto; color: rgb(64, 64, 64); text-align: start;">0x3FC0000</xhtml:pre>
</xhtml:div>
</xhtml:div>
</xhtml:div>
</foreignObject>
<text
x="118"
y="304"
fill="rgb(0, 0, 0)"
font-family="Helvetica"
font-size="12px"
text-anchor="end"
id="text195">0x3FC0000</text>
</switch>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 29 KiB

View file

@ -150,6 +150,33 @@ Image formats:
.. image:: img/sysfw.itb.svg
:alt: sysfw.itb image format
OSPI:
-----
ROM supports booting from OSPI from offset 0x0.
Flashing images to OSPI:
Below commands can be used to download tiboot3.bin, tispl.bin, u-boot.img,
and sysfw.itb over tftp and then flash those to OSPI at their respective
addresses.
.. prompt:: bash =>
sf probe
tftp ${loadaddr} tiboot3.bin
sf update $loadaddr 0x0 $filesize
tftp ${loadaddr} tispl.bin
sf update $loadaddr 0x80000 $filesize
tftp ${loadaddr} u-boot.img
sf update $loadaddr 0x280000 $filesize
tftp ${loadaddr} sysfw.itb
sf update $loadaddr 0x6C0000 $filesize
Flash layout for OSPI:
.. image:: img/ospi_sysfw.svg
:alt: OSPI flash partition layout
R5 Memory Map:
--------------
@ -193,35 +220,8 @@ R5 Memory Map:
- 0x41cffbfc
- 0x41cfffff
OSPI:
-----
ROM supports booting from OSPI from offset 0x0.
Flashing images to OSPI:
Below commands can be used to download tiboot3.bin, tispl.bin, u-boot.img,
and sysfw.itb over tftp and then flash those to OSPI at their respective
addresses.
.. prompt:: bash =>
sf probe
tftp ${loadaddr} tiboot3.bin
sf update $loadaddr 0x0 $filesize
tftp ${loadaddr} tispl.bin
sf update $loadaddr 0x80000 $filesize
tftp ${loadaddr} u-boot.img
sf update $loadaddr 0x280000 $filesize
tftp ${loadaddr} sysfw.itb
sf update $loadaddr 0x6C0000 $filesize
Flash layout for OSPI:
.. image:: img/ospi_sysfw.svg
:alt: OSPI flash partition layout
Firmwares:
----------
Firmware:
---------
The J721e u-boot allows firmware to be loaded for the Cortex-R5 subsystem.
The CPSW5G in J7200 and CPSW9G in J721E present in MAIN domain is configured

View file

@ -153,6 +153,31 @@ Image formats
.. image:: img/dm_tispl.bin.svg
:alt: tispl.bin format
OSPI:
-----
ROM supports booting from OSPI from offset 0x0.
Flashing images to OSPI NOR:
Below commands can be used to download tiboot3.bin, tispl.bin, and
u-boot.img over tftp and then flash those to OSPI at their respective
addresses.
.. prompt:: bash =>
sf probe
tftp ${loadaddr} tiboot3.bin
sf update $loadaddr 0x0 $filesize
tftp ${loadaddr} tispl.bin
sf update $loadaddr 0x80000 $filesize
tftp ${loadaddr} u-boot.img
sf update $loadaddr 0x280000 $filesize
Flash layout for OSPI NOR:
.. image:: img/ospi_sysfw3.svg
:alt: OSPI NOR flash partition layout
R5 Memory Map
-------------
@ -262,6 +287,9 @@ section.
* - SD
- 0000
* - OSPI
- 0010
* - EMMC
- 0110

View file

@ -51,14 +51,14 @@ For all K3 SoCs the first core started will be inside the Security
Management Subsystem (SMS) which will secure the device and start a core
in the wakeup domain to run the ROM code. ROM will then initialize the
boot media needed to load the binaries packaged inside `tiboot3.bin`,
including a 32bit U-Boot SPL, (called the wakup SPL) that ROM will jump
including a 32bit U-Boot SPL, (called the wakeup SPL) that ROM will jump
to after it has finished loading everything into internal SRAM.
.. image:: img/boot_flow_01.svg
:alt: Boot flow up to wakeup domain SPL
The wakeup SPL, running on a wakeup domain core, will initialize DDR and
any peripherals needed load the larger binaries inside the `tispl.bin`
any peripherals needed to load the larger binaries inside the `tispl.bin`
into DDR. Once loaded the wakeup SPL will start one of the 'big'
application cores inside the main domain to initialize the main domain,
starting with Trusted Firmware-A (TF-A), before moving on to start
@ -94,7 +94,7 @@ essentially 4 unique but very similar flows:
* Combined binary with a split firmware: (eg: AM62)
For devices that utilize the split binary approach, ROM is not capable
of loading the firmware into the SoC requiring the wakeup domain's
of loading the firmware into the SoC, requiring the wakeup domain's
U-Boot SPL to load the firmware.
Devices with a split firmware will have two firmwares loaded into the
@ -114,8 +114,8 @@ K3 HS-SE (High Security - Security Enforced) devices enforce an
authenticated boot flow for secure boot. HS-FS (High Security - Field
Securable) is the state of a K3 device before it has been eFused with
customer security keys. In the HS-FS state the authentication still can
function as in HS-SE but as there are no customer keys to verify the
signatures against the authentication will pass for certificates signed
function as in HS-SE, but as there are no customer keys to verify the
signatures against, the authentication will pass for certificates signed
with any key.
Chain of trust

View file

@ -631,6 +631,18 @@ where version.dtso looks like::
The properties of image-type-id and image-index must match the value
defined in the efi_fw_image array as image_type_id and image_index.
Porting Capsule Updates to new boards
*************************************
It is important, when using a reference board as a starting point for a custom
board, that certain steps are taken to properly support Capsule Updates.
Capsule GUIDs need to be unique for each firmware and board. That is, if two
firmwares are built from the same source but result in different binaries
because they are built for different boards, they should have different GUIDs.
Therefore it is important when creating support for a new board, new GUIDs are
defined in the board's header file. *DO NOT* reuse capsule GUIDs.
Executing the boot manager
~~~~~~~~~~~~~~~~~~~~~~~~~~

View file

@ -8,6 +8,30 @@
#ifndef __CONFIG_AM62PX_EVM_H
#define __CONFIG_AM62PX_EVM_H
/**
* define AM62PX_SK_TIBOOT3_IMAGE_GUID - firmware GUID for AM62PX sk tiboot3.bin
* define AM62PX_SK_SPL_IMAGE_GUID - firmware GUID for AM62PX sk SPL
* define AM62PX_SK_UBOOT_IMAGE_GUID - firmware GUID for AM62PX sk UBOOT
*
* These GUIDs are used in capsules updates to identify the corresponding
* firmware object.
*
* Board developers using this as a starting reference should
* define their own GUIDs to ensure that firmware repositories (like
* LVFS) do not confuse them.
*/
#define AM62PX_SK_TIBOOT3_IMAGE_GUID \
EFI_GUID(0xb08471b7, 0xbe2d, 0x4489, 0x87, 0xa1, \
0xca, 0xb2, 0x8a, 0x0c, 0xf7, 0x43)
#define AM62PX_SK_SPL_IMAGE_GUID \
EFI_GUID(0xd02ed781, 0x6d71, 0x4c1a, 0xa9, 0x99, \
0x3c, 0x6a, 0x41, 0xc3, 0x63, 0x24)
#define AM62PX_SK_UBOOT_IMAGE_GUID \
EFI_GUID(0x7e6aea51, 0x965c, 0x44ab, 0xb3, 0x88, \
0xda, 0xeb, 0x03, 0xb5, 0x4f, 0x66)
/* Now for the remaining common defines */
#include <configs/ti_armv7_common.h>

View file

@ -9,6 +9,30 @@
#ifndef __CONFIG_AM625_EVM_H
#define __CONFIG_AM625_EVM_H
/**
* define AM62X_SK_TIBOOT3_IMAGE_GUID - firmware GUID for AM62X sk tiboot3.bin
* define AM62X_SK_SPL_IMAGE_GUID - firmware GUID for AM62X sk SPL
* define AM62X_SK_UBOOT_IMAGE_GUID - firmware GUID for AM62X sk UBOOT
*
* These GUIDs are used in capsules updates to identify the corresponding
* firmware object.
*
* Board developers using this as a starting reference should
* define their own GUIDs to ensure that firmware repositories (like
* LVFS) do not confuse them.
*/
#define AM62X_SK_TIBOOT3_IMAGE_GUID \
EFI_GUID(0xabcb83d2, 0x9cb6, 0x4351, 0xb8, 0xf1, \
0x64, 0x94, 0xbb, 0xe3, 0x70, 0x0a)
#define AM62X_SK_SPL_IMAGE_GUID \
EFI_GUID(0xaee355fc, 0xbf97, 0x4264, 0x8c, 0x82, \
0x43, 0x72, 0x55, 0xef, 0xdc, 0x1d)
#define AM62X_SK_UBOOT_IMAGE_GUID \
EFI_GUID(0x28ab8c6c, 0xfca8, 0x41d3, 0x8e, 0xa1, \
0x5f, 0x17, 0x1b, 0x7d, 0x29, 0x29)
/* Now for the remaining common defines */
#include <configs/ti_armv7_common.h>

View file

@ -9,6 +9,30 @@
#ifndef __CONFIG_AM642_EVM_H
#define __CONFIG_AM642_EVM_H
/**
* define AM64X_SK_TIBOOT3_IMAGE_GUID - firmware GUID for AM64X sk tiboot3.bin
* define AM64X_SK_SPL_IMAGE_GUID - firmware GUID for AM64X sk SPL
* define AM64X_SK_UBOOT_IMAGE_GUID - firmware GUID for AM64X sk UBOOT
*
* These GUIDs are used in capsules updates to identify the corresponding
* firmware object.
*
* Board developers using this as a starting reference should
* define their own GUIDs to ensure that firmware repositories (like
* LVFS) do not confuse them.
*/
#define AM64X_SK_TIBOOT3_IMAGE_GUID \
EFI_GUID(0xede0a0d5, 0x9116, 0x4bfb, 0xaa, 0x54, \
0x09, 0xe9, 0x7b, 0x5a, 0xfe, 0x1a)
#define AM64X_SK_SPL_IMAGE_GUID \
EFI_GUID(0x77678f5c, 0x64d4, 0x4910, 0xad, 0x75, \
0x52, 0xc9, 0xd9, 0x5c, 0xdb, 0x1d)
#define AM64X_SK_UBOOT_IMAGE_GUID \
EFI_GUID(0xc6ad43a9, 0x7d31, 0x4f5d, 0x83, 0xe9, \
0xb8, 0xef, 0xec, 0xae, 0x05, 0xbf)
/* Now for the remaining common defines */
#include <configs/ti_armv7_common.h>

View file

@ -0,0 +1,55 @@
/* SPDX-License-Identifier: GPL-2.0 */
/*
* Configuration header file for BeagleBoneAI64
*
* https://beagleboard.org/ai-64
*
* Copyright (C) 2024 Texas Instruments Incorporated - https://www.ti.com/
*/
#ifndef __CONFIG_BEAGLEBONEAI64_H
#define __CONFIG_BEAGLEBONEAI64_H
/* FLASH Configuration */
#define CFG_SYS_FLASH_BASE 0x000000000
/* SPL Loader Configuration */
#define CFG_SYS_UBOOT_BASE 0x50080000
/**
* define BEAGLEBONEAI64_TIBOOT3_IMAGE_GUID - firmware GUID for BeagleBoneAI64
* tiboot3.bin
* define BEAGLEBONEAI64_SPL_IMAGE_GUID - firmware GUID for BeagleBoneAI64
* SPL
* define BEAGLEBONEAI64_UBOOT_IMAGE_GUID - firmware GUID for BeagleBoneAI64
* UBOOT
* define BEAGLEBONEAI64_SYSFW_IMAGE_GUID - firmware GUID for BeagleBoneAI64
* SYSFW
*
* These GUIDs are used in capsules updates to identify the corresponding
* firmware object.
*
* Board developers using this as a starting reference should
* define their own GUIDs to ensure that firmware repositories (like
* LVFS) do not confuse them.
*/
#define BEAGLEBONEAI64_TIBOOT3_IMAGE_GUID \
EFI_GUID(0x772a4810, 0x2194, 0x4923, 0x87, 0x54, \
0x01, 0x15, 0x87, 0x0e, 0xf3, 0x67)
#define BEAGLEBONEAI64_SPL_IMAGE_GUID \
EFI_GUID(0x83447222, 0x1e26, 0x40cd, 0xa3, 0x95, \
0xb7, 0xde, 0x09, 0x57, 0xe8, 0x75)
#define BEAGLEBONEAI64_UBOOT_IMAGE_GUID \
EFI_GUID(0x4249ff77, 0xc17d, 0x4eb7, 0xa1, 0xdb, \
0x45, 0xaa, 0x98, 0x87, 0xd4, 0x9e)
#define BEAGLEBONEAI64_SYSFW_IMAGE_GUID \
EFI_GUID(0xdfc9c683, 0x49b7, 0x46bd, 0xb3, 0xc1, \
0x3a, 0x3b, 0x2f, 0xdb, 0x13, 0x5b)
/* Now for the remaining common defines */
#include <configs/ti_armv7_common.h>
#endif /* __CONFIG_BEAGLEBONEAI64_H */

View file

@ -0,0 +1,41 @@
/* SPDX-License-Identifier: GPL-2.0 */
/*
* Configuration header file for BeaglePlay
*
* https://beagleplay.org/
*
* Copyright (C) 2024 Texas Instruments Incorporated - https://www.ti.com/
*/
#ifndef __CONFIG_BEAGLEPLAY_H
#define __CONFIG_BEAGLEPLAY_H
/**
* define BEAGLEPLAY_TIBOOT3_IMAGE_GUID - firmware GUID for BeaglePlay
* tiboot3.bin
* define BEAGLEPLAY_SPL_IMAGE_GUID - firmware GUID for BeaglePlay SPL
* define BEAGLEPLAY_UBOOT_IMAGE_GUID - firmware GUID for BeaglePlay UBOOT
*
* These GUIDs are used in capsules updates to identify the corresponding
* firmware object.
*
* Board developers using this as a starting reference should
* define their own GUIDs to ensure that firmware repositories (like
* LVFS) do not confuse them.
*/
#define BEAGLEPLAY_TIBOOT3_IMAGE_GUID \
EFI_GUID(0x0e225a09, 0xf720, 0x4d57, 0x91, 0x20, \
0xe2, 0x8f, 0x73, 0x7f, 0x5a, 0x5e)
#define BEAGLEPLAY_SPL_IMAGE_GUID \
EFI_GUID(0xb2e7cc49, 0x1a5a, 0x4036, 0xae, 0x01, \
0x33, 0x87, 0xc3, 0xbe, 0xf6, 0x57)
#define BEAGLEPLAY_UBOOT_IMAGE_GUID \
EFI_GUID(0x92c92b11, 0xa7ee, 0x486f, 0xaa, 0xa2, \
0x71, 0x3d, 0x84, 0x42, 0x5b, 0x0e)
/* Now for the remaining common defines */
#include <configs/ti_armv7_common.h>
#endif /* __CONFIG_BEAGLEPLAY_H */

View file

@ -22,6 +22,35 @@
#define CFG_SYS_UBOOT_BASE 0x50080000
#endif
/**
* define J721E_SK_TIBOOT3_IMAGE_GUID - firmware GUID for J721e sk tiboot3.bin
* define J721E_SK_SPL_IMAGE_GUID - firmware GUID for J721e sk SPL
* define J721E_SK_UBOOT_IMAGE_GUID - firmware GUID for J721e sk UBOOT
* define J721E_SK_SYSFW_IMAGE_GUID - firmware GUID for J721e sk SYSFW
*
* These GUIDs are used in capsules updates to identify the corresponding
* firmware object.
*
* Board developers using this as a starting reference should
* define their own GUIDs to ensure that firmware repositories (like
* LVFS) do not confuse them.
*/
#define J721E_SK_TIBOOT3_IMAGE_GUID \
EFI_GUID(0xe672b518, 0x7cd7, 0x4014, 0xbd, 0x8d, \
0x40, 0x72, 0x4d, 0x0a, 0xd4, 0xdc)
#define J721E_SK_SPL_IMAGE_GUID \
EFI_GUID(0x86f710ad, 0x10cf, 0x46ea, 0xac, 0x67, \
0x85, 0x6a, 0xe0, 0x6e, 0xfa, 0xd2)
#define J721E_SK_UBOOT_IMAGE_GUID \
EFI_GUID(0x81b58fb0, 0x3b00, 0x4add, 0xa2, 0x0a, \
0xc1, 0x85, 0xbb, 0xac, 0xa1, 0xed)
#define J721E_SK_SYSFW_IMAGE_GUID \
EFI_GUID(0x6fd10680, 0x361b, 0x431f, 0x80, 0xaa, \
0x89, 0x94, 0x55, 0x81, 0x9e, 0x11)
/* Now for the remaining common defines */
#include <configs/ti_armv7_common.h>

View file

@ -9,6 +9,30 @@
#ifndef __CONFIG_J784S4_EVM_H
#define __CONFIG_J784S4_EVM_H
/**
* define AM69_SK_TIBOOT3_IMAGE_GUID - firmware GUID for AM69 SK tiboot3.bin
* define AM69_SK_SPL_IMAGE_GUID - firmware GUID for AM69 SK SPL
* define AM69_SK_UBOOT_IMAGE_GUID - firmware GUID for AM69 SK UBOOT
*
* These GUIDs are used in capsules updates to identify the corresponding
* firmware object.
*
* Board developers using this as a starting reference should
* define their own GUIDs to ensure that firmware repositories (like
* LVFS) do not confuse them.
*/
#define AM69_SK_TIBOOT3_IMAGE_GUID \
EFI_GUID(0xadf49ec5, 0x61bb, 0x4dbe, 0x8b, 0x8d, \
0x39, 0xdf, 0x4d, 0x7e, 0xbf, 0x46)
#define AM69_SK_SPL_IMAGE_GUID \
EFI_GUID(0x787f0059, 0x63a1, 0x461c, 0xa1, 0x8e, \
0x9d, 0x83, 0x83, 0x45, 0xfe, 0x8e)
#define AM69_SK_UBOOT_IMAGE_GUID \
EFI_GUID(0x9300505d, 0x6ec5, 0x4ff8, 0x99, 0xe4, \
0x54, 0x59, 0xa0, 0x4b, 0xe6, 0x17)
/* Now for the remaining common defines */
#include <configs/ti_armv7_common.h>