As title, We would like to design our own board and I’m quite a novice with the Jetson TK1, thus, there are issues I want to ask. Any pointers to these issues will be highly appreciated.
Refer to Jetson TK1 hardware design, there are “Board ID Rom” & “Board ID STRAPS”. Is it possible to remove two components ? If yes, do we need to change any source codes to fit hardware modification ?
If we generate own board, there is no any source code in it indeed, how do we flash the image to it ? Like general flash process ? Press Recovery button and reset to flash it ? Or is there a special step for that case ?
“Board ID Rom” & “Board ID STRAPS” can be removed, there is relevant SW patch for this.
===>Could you please tell me where I can download that SW patch, is it in u-boot source code ?
ROM will set and run the download process in recovery mode.
===>That means we still use L4T to flash image, right ?
So when we remove EEPROM, we need to un-comment " #BOARDID=“0x177 0x00 0x03”; " this line. Is it correct ?
And is there any software side need to be modified for this hardware changed ?
The another question is that the boot ROM how to know which boot memory device would be used when “Board ID STRAPS” doesn’t exist ? Is it have default value when there is no “Board ID STRAPS” ?
“Board ID straps” is to select which PCBA version, You may have A01 PCB with BOM_A01, A01 PCB with BOM_A02 or A02 PCB with BOM_A03
You may need adopt different settings on these PCB or BOM version then U-Boot could identify from board ID strap.
Board ID straps just have several bit. Board ID EEPROM could store more information.
I’m sorry I don’t know what you mean.
You may need adopt different settings on these PCB or BOM version then U-Boot could identify from board ID strap.
==> so if we remove Board ID straps, does it affect u-boot process ? I mean it would cause u-boot flow fail.
*Board ID straps :
-HW : physical resistors (as needed. Could be 1,2…10 if you want)
-SW : GPIO (inputs)
-purpose : telling you what is your PCB release and debug easily if rev A works and not the rev B for example.
-mandatory : no. just helpful for versioning HW.
*Board ID ROM (not really sure about that) :
-HW : EEPROM memory
-SW : its I2C address & what you want to store in that memory
-purpose : identifying the board : Jetson, custom, shield…
-mandatory : no. uncomment the line to make a virtual one on boot process.
*Boot_sel straps :
-HW : 4 resistors on dedicated pins.
-SW : pre-boot inputs.
-purpose : telling the iRAM in the ISP (used for bootloader download) to indicate which is the primary boot device.(not sure).
-mandatory : YES. (not sure)
Speaking of boot_sel straps… is it possible to “erase” the HW straps with software (ie booting on SD/SATA… with physical boot_sel straps configured for eMMC boot) ?
alejuventino’s explanation is correct and clear.
Board ID straps(Resistors) and Board ID ROM(I2C EEPROM) are not mandatory but Boot_sel straps(Resistors) is mandatory.
There is a Fuse bit can be set to select read boot straps from Fuse boot device table instead of HW Boot_sel straps.
We test the board we designed, it can be flashed successfully, but it can’t boot up normally, it always enters recovery mode, and I’m sorry that I cannot provide and logs, because the debug interface seems can output logs.
Is it can boot up normally without EEPROM ?
Thanks.
After we check the list you mentioned, we find out the RAM_CODE is not the same as SDRAM config, then we modified it. Now we can boot up successfully.
Thank you so much.
The SDRAM config you said is “gnu_linux_fastboot_emmc_full.cfg”?
If we want to change SDRAM config instead of RAM_CODE, how do we change the config ?
Thanks.