LP-AM243: How to write XIP image to Flash in SBL processing?

Part Number: LP-AM243
Other Parts Discussed in Thread: SYSCONFIG, UNIFLASH

Tool/software:

Hello TI experts,

I am trying to modify SBL to write firmware (XIP format) to Flash.
The SDK version is MCU+ SDK v10.00.00.20.

I have two problems here, and I would appreciate it if you could answer them.

<No.1>
I cannot write to Flash in the SBL process. (The return value of Flash_write() is an error.)
The steps I took are as follows.

  1. I removed the firmware read process from the SBL example[*1] and added a Flash write process.

  2. I referred to the OSPI example[*2] for the Flash write process.

  *1: examples/drivers/boot/sbl_ospi
  *2: examples/ospi/ospi_flash_io

The resulting source code (main.c) is as follows.

The Flash writing process starts on line 135.

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
/*
* Copyright (C) 2018-2022 Texas Instruments Incorporated
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the
* distribution.
*
* Neither the name of Texas Instruments Incorporated nor the names of
* its contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

The execution result is as follows.

Fullscreen
1
2
3
4
5
6
7
DMSC Firmware Version 10.0.8--v10.00.08 (Fiery Fox)
DMSC Firmware revision 0xa
DMSC ABI revision 4.0
Erase Flash (200000)...block=[8], page=[0]
Writing to Flash (src: 70075008, dst: 200000)...Done. status=[-1]
Some tests have failed!!
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

The Flash writing process has been confirmed to work correctly when running the OSPI example[*2] alone.

The cause of the error in SBL is unknown, so if you have any clues, please let me know.


<No.2>
I want to use the Bootloader module to perform XIP operation on each core,
but when writing the XIP format to Flash, what address should I write the .appimage_xip to?

Should I overwrite it to the same address as the .appimage?

Please tell me the procedure.

Regards,

TAKEDA Taro