This guide is designed to provide a step-by-step walkthrough on in-system programming (ISP) for flash devices on the SP7350 platform. Covering a range of devices including eMMC, SPI-NOR flashes, SPI-NAND flashes, and 8-bit NAND flashes, the document aims to simplify the ISP process. Follow the outlined steps to seamlessly download, compile, and write images to flash devices, ultimately enabling you to boot the system from these devices.
Contents
Download and compile sources of SP7350
Please refer to: A guide to downloading and compiling SP7350 code
for downloading and compiling sources of SP7350 platforms.
Copy flash image file ISPBOOOT.BIN to a USB flash drive
After compilation processes, a flash image file ISPBOOOT.BIN is stored in out folder in project’s top directory. Refer to the report of 'll out/ISPBOOOT.BIN'command below:
wellslu@scdiu3:~/Q654$ ll out/ISPBOOOT.BIN -rw-r--r-- 1 wellslu sp 577901568 Jan 1 14:59 ISPBOOOT.BIN wellslu@scdiu3:~/Q654$
Please copy the ISPBOOOT.BIN file to the root directory of a USB flash drive formatted to DOS/Windows FAT32 or FAT16 file-system. Note that the FAT32 or FAT16 file-system should be in the first or the sole partition of the USB flash drive.
If size of rootfs image is greater 4032 MiB, more than one flash image files will be created. For example, if size of rootffs image is 6000 MiB, two flash image image files, ISPBOOOT.BIN and ISPBOOT1.BIN, will be created. If size of rootffs image is 9000 MiB, three flash image image files, ISPBOOOT.BIN, ISPBOOT1.BIN and ISPBOOT2.BIN, will be created. Please copy all flash image files to the USB flash drive.
Set boot-selection switch to “Boot from USB”
Set boot-selection switches to “Boot from USB”. For example, if you are using SP7350 Evaluation Board, please set boot-selection switch SW2 to all OFF (1111) and SW3 to OFF-OFF-ON-OFF (1101) for booting from a USB flash drive. Refer to picture below, boot-selection switches SW2 and SW3 of SP7350 Evaluation Board are set to “Boot from USB.”
Refer to Appendix for details of boot selection switches of SP7350 Evaluation Board and boot-strap pins of SP7350.
Write all images to a flash device
Plug the USB flash drive which contains ISPBOOOT.BIN into a USB socket (either USB2.0 or USB3.0 socket) of SP7350 platforms and turn on power of it. After power on, SP7350 will initiate the boot process, loading images from the USB drive. It first loads x-boot from ISPBOOOT.BIN. x-boot loads fip and U-Boot images. U-Boot will then loads all images, verify md5-checksum and write them to flash device one by one.
Wait for the process to complete. Finally, you will see screen like:
“ISP all: Done” means all images were written to eMMC successfully.
Boot system from the flash device
Set boot-select switches to boot from a flash device, for example, in previous step, if images are written into an eMMC device, please set boot select switches to “boot from eMMC device”. If you are using SP7350 Evaluation board, please set boot-selection switch SW2 to all OFF (1111) and SW3 to all OFF (1111) for booting from the eMMC device. Refer to picture below:
Now, you are ready to boot SP7350 from eMMC device. Turn on power of SP7350 platform again to boot system.
In-system program (ISP) from an SD card
Note that you can also copy the flash image file ISPBOOOT.BIN (or plus ISPBOOT1.BIN, ISPBOOT2.BIN, and etc.) to root directory of a micro SD card to do the in-system-program to a flash device. The SD card should be formatted to DOS/Windows FAT32 or FAT16 file-system. Note that SP7350 only detects ISPBOOOT.BIN in the first partition.
Set boot-selection switches to “boot from SD card”. For example, if you are using SP7350 Evaluation Board, please set boot-selection switch SW2 to all OFF (1111) and SW3 to OFF-OFF-ON-ON (1100) for booting from SD card.
Plug your SD card into micro SD socket of the SP7350 platform, and then turn on its power. SP7350 will start to do the ISP process by booting from the SD card.
Appendix
Boot-selection switches of SP7350 Evaluation Board
Refer to definition of boot selection switches of SP7350 Evaluation Board below:
Boostrap pins | - | - | MX2 | MX0 | MX6 | MX5 | MX3 | MX2 |
Boot switches | DIP-SW2 | DIP-SW3 | ||||||
Boot devices | 1 | 2 | 3 | 4 | 1 | 2 | 3 | 4 |
eMMC boot | x | x | 1 | x | 1 | 1 | 1 | 1 |
SPI-NAND boot | x | x | 1 | x | 1 | 1 | 1 | 0 |
USB boot | x | x | 1 | x | 1 | 1 | 0 | 1 |
SDC boot | x | x | 1 | x | 1 | 1 | 0 | 0 |
SPI-NOR boot | x | x | 1 | x | 1 | 0 | 1 | 1 |
8-bit NAND | x | x | 1 | x | 1 | 0 | 0 | 0 |
Note “1” means switch OFF while “0” means switch ON. “x” means don’t care.
Bootstrap pins of SP7350
State of bootstrap pins of SP7350 will be read into bootstrap register (G0.31) at the moment that power-on reset is released. Refer to definition of boot-strap pins of SP7350 below:
Boot-strap pins of SP7350 | Boot devices | |||||||
MX6 | MX5 | MX4 | MX3 | MX2 | MX1 | MX0 | ||
1 | 1 | 1 | 1 | 1 | x | x | eMMC boot | |
1 | 1 | 1 | 0 | 1 | x | x | SPI-NAND boot | |
1 | 1 | 0 | 1 | 1 | x | x | USB boot | |
1 | 1 | 0 | 0 | 1 | x | x | SDC boot | |
1 | 0 | 1 | 1 | 1 | x | x | SPI-NOR | |
1 | 0 | 0 | 0 | 1 | x | x | 8-bit NAND |
Note:
If MX1 = 0, JTAG interface of CA55 of SP7350 will be enabled.
If MX2 = 0, SP7350 will enter test mode. Always set to 1 for normal operation.