Some time ago, I need to figure out IROM. It is mainly because Nandflash needs to be replaced, while the IROM provided by alicloud only supports 2 GB and does not support 4 GB. So you need to give it to yourself.
IROM is an nb0 binary file. It is mainly fixed to the SD card and then enters the IROM startup mode when it is started. The CPU will jump to the IROM on the SD card to boot and upgrade Stepldr, Eboot, and NK.
Because the source code is not provided on the fly 6410 development board I use, I can only create one myself.
The Eboot. SDFuser and NBL1.IROM _ SD of youjian 6410 provided by others. To port IROM.
As for the IROM startup structure, I will not talk about it here. There are many examples on the Internet. Here we provide a URL: Click to open the link
Many problems were encountered during migration, such:
The Eboot. WHIMORY architecture is used in the EBOOT. SDFuser of youjian, but this is not used in the flying BSP. In addition, the MLC used by Nandflash, instead of SLC, increases the difficulty of porting.
After porting here, the generated IROM file name is IROM_SD_EBOOT.nb0.
It is mainly composed of Eboot. SDFuser and NBL1.IROM _ SD. (I changed the name of Eboot. SDFuser to EBOOT. YSD)
EBOOT. YSD ---> eboot_ysd
NBL1.IROM _ SD ---> Stepldr_IROM_SD
Eboot_ysd.nb0 + stepldr_IROM_SD.nb0 --> IROM_SD_EBOOT.nb0
The IROM file is generated in this way. (Generate files in combination, mainly in the corresponding makefile. inc configuration)
In the beginning, I first port NBL1.IROM _ SD, which is relatively easy. Then start porting EBOOT. YSD (formerly Eboot. SDFuser)
EBOOT. YSD is mainly composed of BLCOMMON + EBOOT + FAT_LIB + SDMMC_LIB.
The key point is the Eboot part. I directly use my BSP zhong's Eboot here, because Eboot in Eboot. SDFuser uses a lot of things in EBOOT. WHIMORY, which is very difficult to transplant.
This Eboot will first refresh Stepldr and then refresh Eboot. It is best to partition and fl NK. After you click it, You can Launch it into the system or stop it there.
When porting this part, you also need to note that the control part is displayed.
During formatting, you must note that low cells consume a lot of time and you can block the corresponding part.
Note that the system cannot be accessed if the size of the remaining NK in the partition is small.
According to the situation, the bib file of Eboot also needs to be modified accordingly.
Makefile. inc of NBL1.IROM _ SD:
[Cpp]
! If 0
Copyright (c) Microsoft Corporation. All rights reserved.
! Endif
! If 0
Use of this source code is subject to the terms of the Microsoft end-user
License agreement (EULA) under which you licensed this software product.
If you did not accept the terms of the EULA, you are not authorized to use
This source code. For a copy of the EULA, please see the LICENSE. RTF on your
Install media.
! Endif
! If 0
Module Name:
Makefile. inc
Romimage $ (ROMIMAGE_FLAGS) stepldr_irom_sd.bib
! Endif
Stepldr_romimage:
! IF "$ (NOLINK)" = ""
Romimage $ (ROMIMAGE_FLAGS) stepldr_irom_sd.bib
# Copy/y/B $ (_ PLATFORMROOT) \ $ (_ TGTPLAT) \ target \ $ (_ TGTCPU) \ $ (WINCEDEBUG) \ eboot_sdfuser.nb0 + $ (_ PLATFORMROOT) \ $ (_ TGTPLAT) \ target \ $ (_ TGTCPU) \ $ (WINCEDEBUG) \ stepldr_IROM_SD.nb0 $ (_ PLATFORMROOT) \ $ (_ TGTPLAT) \ target \ $ (_ TGTCPU) \ $ (WINCEDEBUG) \ IROM_SD_EBOOT.nb0
Copy/y/B $ (_ PLATFORMROOT) \ $ (_ TGTPLAT) \ target \ $ (_ TGTCPU) \ $ (WINCEDEBUG) \ eboot_ysd.nb0 + $ (_ PLATFORMROOT) \ $ (_ TGTPLAT) \ target \ $ (_ TGTCPU) \ $ (WINCEDEBUG) \ stepldr_IROM_SD.nb0 $ (_ PLATFORMROOT) \ $ (_ TGTPLAT) \ target \ $ (_ TGTCPU) \ $ (WINCEDEBUG) \ IROM_SD_EBOOT.nb0
! IF "$ (WINCEREL)" = "1"
Copy $ (_ PLATFORMROOT) \ $ (_ TGTPLAT) \ target \ $ (_ TGTCPU) \ $ (WINCEDEBUG) \ IROM_SD_EBOOT. * $ (_ FLATRELEASEDIR)
Copy $ (_ PLATFORMROOT) \ $ (_ TGTPLAT) \ target \ $ (_ TGTCPU) \ $ (WINCEDEBUG) \ stepldr_IROM_SD. * $ (_ FLATRELEASEDIR)
! ENDIF
! ENDIF
Makefile. inc:
[Cpp]
! If 0
Copyright (c) Microsoft Corporation. All rights reserved.
! Endif
! If 0
Use of this source code is subject to the terms of the Microsoft end-user
License agreement (EULA) under which you licensed this software product.
If you did not accept the terms of the EULA, you are not authorized to use
This source code. For a copy of the EULA, please see the LICENSE. RTF on your
Install media.
! Endif
! IF 0
Module Name:
Makefile. inc
! ENDIF
#
# Take the eboot.exe that resulted from the standard build and generate eboot. bin from it.
#
EbootImage:
! IF "$ (NOLINK)" = ""
Romimage eboot_ysd.bib
# Copy/y/B $ (_ PLATFORMROOT) \ $ (_ TGTPLAT) \ target \ $ (_ TGTCPU) \ $ (WINCEDEBUG) \ eboot_ysd.nb0 + $ (_ PLATFORMROOT) \ $ (_ TGTPLAT) \ target \ $ (_ TGTCPU) \ $ (WINCEDEBUG) \ stepldr_IROM_SD.nb0 $ (_ PLATFORMROOT) \ $ (_ TGTPLAT) \ target \ $ (_ TGTCPU) \ $ (WINCEDEBUG) \ IROM_SD_EBOOT.nb0
! IF "$ (WINCEREL)" = "1"
Copy $ (_ PLATFORMROOT) \ $ (_ TGTPLAT) \ target \ $ (_ TGTCPU) \ $ (WINCEDEBUG) \ eboot_ysd.nb0 $ (_ FLATRELEASEDIR)
Copy $ (_ PLATFORMROOT) \ $ (_ TGTPLAT) \ target \ $ (_ TGTCPU) \ $ (WINCEDEBUG) \ eboot_ysd.bin $ (_ FLATRELEASEDIR)
Copy $ (_ PLATFORMROOT) \ $ (_ TGTPLAT) \ target \ $ (_ TGTCPU) \ $ (WINCEDEBUG) \ eboot_ysd.sre $ (_ FLATRELEASEDIR)
! ENDIF
! ENDIF