Hello,
Please check my comments:
Q: How can I jump to the boot re-entry address?
A: For C6678, add below definition in your *.cmd file:
/* Rom re-entry function */
_romtReInit = 0x20b00000;
Then in your c code, do:
/* Re-execute the ROM */
romtReInit ();
Q: Can you confirm the creation of the data file for I²C (see below)?
Your understanding is mostly correct, one example can be found here:
C:\ti\MCSDK_02_01_02_06\mcsdk_2_01_02_06\tools\post\evmc6678l\bin\post_romparse.bat
You can use post.out to verify the procedure, then just replace post with your *.out
The MCSDK 2.1 for C6678 can be downloaded here in case if you don't have it.
http://software-dl.ti.com/sdoemb/sdoemb_public_sw/bios_mcsdk/latest/index_FDS.html
Q: How I have to write the created bin-file to the EEPROM?
Programming I2C EEPROM (address 0x51) with IBL and boot configuration table1
Please refer to C:\Program Files\Texas Instruments\mcsdk_2_00_00_xx\tools\boot_loader\ibl\doc\README.txt on how to build IBL and program IBL and boot parameter configuration table to EEPROM bus address 0x51.
Programming I2C EEPROM (address 0x50) with POST boot1
Please refer to C:\Program Files\Texas Instruments\mcsdk_2_00_00_xx\tools\post\docs\README.txt on how to build POST and program POST to EEPROM bus address 0x50.
Over user guide is here:
http://processors.wiki.ti.com/index.php/BIOS_MCSDK_2.0_User_Guide
Since you didn't mention you are using C6678 EVM or your own board, so based on your schematics, make sure you use 0x50 or 0x51 slave address correctly, if you are not sure, check with your hw folks.
Optionally, if you are using I2C boot already, you can also write your own code with full control on PCIe configuration. In this way, you don't need to jump back/limted by the bootROM.
If you are using C6678 EVM, and with a AMC to PCIe adapter, you can plug it into a PC with PCIE slot, more PCIe boot example can be found here:
C:\ti\MCSDK_02_01_02_06\mcsdk_2_01_02_06\tools\boot_loader\examples\pcie
Hope it helps.
best regards,
David Zhou