"Failed to check bin load range" on flashing custom board

Hi,

I’m working on my custom board with TX2i. I modified pinmux.cfg, pad.cfg and dtb as described at MB1 Configuration Changes.

However, on flashing, I got an error saying failed to check bin load range right before downloading bct_mb1.

[   5.2856 ] Sending BCTs
[   5.2906 ] tegrarcm_v2 --download bct_bootrom br_bct_BR.bct --download bct_mb1 mb1_bct_MB1_sigheader.bct.encrypt
[   5.2937 ] Applet version 01.00.0000
[   5.3713 ] Sending bct_bootrom
[   5.3719 ] [................................................] 100%
[   5.3731 ] Sending bct_mb1
[   5.3734 ] 000000000e874502: Failed to check bin load range

I suspect my pinmux file. It was generated by pinmux-dts2cfg.py without --mandatory_pinmux_file mandatory_pinmux.txt option because it threw errors, which are also mentioned on other topics.

ERROR: pin dmic1_clk_pm1(0x00004441) field nvidia,enable-input(0x00000040) is not matching, val = 0x01 expected = 0x00
ERROR: pin dmic2_dat_pm2(0x00004441) field nvidia,enable-input(0x00000040) is not matching, val = 0x01 expected = 0x00
ERROR: pin dap4_sclk_pcc0(0x00004440) field nvidia,enable-input(0x00000040) is not matching, val = 0x01 expected = 0x00
ERROR: pin dap4_fs_pcc3(0x00004440) field nvidia,enable-input(0x00000040) is not matching, val = 0x01 expected = 0x00
ERROR: pin sdmmc4_dqs(0x00000444) field nvidia,tristate(0x00000010) is not matching, val = 0x00 expected = 0x01

Its size is bigger than the default one.

[   1.2404 ] Parsing config file :tegra186-mb1-bct-pinmux-quill-p3489-1000-a00.cfg 
[   1.2410 ] Appending platform config data of size :- 2952
[   1.1840 ] Parsing config file :gcb01a-mb1-bct-pinmux.cfg 
[   1.1842 ] Appending platform config data of size :- 3560

Would you give me some entrypoints to debug with this?

hello peroxyacyl,

just would like to double confirm you had access Jetson TX2 Series Pinmux, and you’re using TX2i-TX2-4GB template to customize your pin configuration.

Hello JerryChang,

Yes, I use v1.08 file and the third (Jetson-TX2i-TX2-4GB-Template) sheet.

hello peroxyacyl,

it should be an issue of incorrect SYSRAM_END_ADDRESS, the MB1_BCT max size is insufficient, hence has to be increased.
could you please review the xml file, (i.e. flash_l4t_t186.xml) for the size of MB1_BCT.
thanks

Hi Jerry,

Thank you!
I modified that size in bootloader/t186ref/cfg/flash_l4t_t186.xml but I got the same error.

        <partition name="MB1_BCT" type="mb1_boot_config_table">
            <allocation_policy> sequential </allocation_policy>
            <filesystem_type> basic </filesystem_type>
            <size> 524288 </size>
            <file_system_attribute> 0 </file_system_attribute>
            <allocation_attribute> 8 </allocation_attribute>
            <percent_reserved> 0 </percent_reserved>
            <description> **Required.** Slot A; contains MB1 boot configuration table. </description>
        </partition>
        <partition name="MB1_BCT_b" type="mb1_boot_config_table">
            <allocation_policy> sequential </allocation_policy>
            <filesystem_type> basic </filesystem_type>
            <size> 524288 </size>
            <file_system_attribute> 0 </file_system_attribute>
            <allocation_attribute> 8 </allocation_attribute>
            <percent_reserved> 0 </percent_reserved>
            <description> **Required.** Slot B; contains MB1 boot configuration table. </description>
        </partition>

None of 65536, 131072, 262144, 524288 sizes worked.

I checked the staging file bootloader/flash.xml also contained that configured number.

Do you have other ideas to try?

hello peroxyacyl,

may I know which L4T release version you’re working with, thanks

Sure, it is JetPack 4.6.

~/nvidia/nvidia_sdk/JetPack_4.6_Linux_JETSON_TX2_TARGETS/Linux_for_Tegra

hello peroxyacyl,

you should double confirm you’d actually use the configuration file, which generated by pinmux-dts2cfg.py to flash the target.
please refer to p2771-0000.conf.common, you should assign correct files.

Hi, Jerry

The newly generated config file is certainly used according to the log, isn’t it?.

[   1.0423 ] MB1-BCT version: 0xf
[   1.0424 ] Copying Sdram info from 1 to 2 set
[   1.0514 ] Copying Sdram info from 2 to 3 set
[   1.0515 ] Packing sdram param for instance[0]
[   1.0517 ] Packing sdram param for instance[1]
[   1.0518 ] Packing sdram param for instance[2]
[   1.0519 ] Packing sdram param for instance[3]

[   1.0520 ] Parsing config file :gcb01a-mb1-bct-pinmux.cfg 
[   1.0522 ] Appending platform config data of size :- 3560

[   1.0524 ] Parsing config file :minimal_scr.cfg 
[   1.0525 ] Appending platform config data of size :- 12240

[   1.0538 ] Parsing config file :gcb01a-mb1-bct-pad.cfg 
[   1.0540 ] Appending platform config data of size :- 24
[   1.0540 ] 
[   1.0540 ] Parsing config file :tegra186-mb1-bct-pmic-quill-p3489-1000-a00.cfg 

it should be an issue of incorrect SYSRAM_END_ADDRESS, the MB1_BCT max size is insufficient.

You are right. I disabled some pin assign to reduce pinmux file size and it was written successfully.
I need full configured pinmux. Is there any BCT size configuration other than flash.xml or is it hard coded in tegrarcm?

[   1.0520 ] Parsing config file :gcb01a-mb1-bct-pinmux-min.cfg 
[   1.0522 ] Appending platform config data of size :- 2696

....

[   3.7224 ] Applet version 01.00.0000
[   3.9875 ] Sending bct_bootrom
[   3.9876 ] [................................................] 100%
[   3.9890 ] Sending bct_mb1
[   3.9901 ] [................................................] 100%
[  13.2427 ] 
[  13.2429 ] Generating blob

you’ve just ring my bell, there’s limitation of BCT_MB1, which has fixed to 50K.
hence, that’s an expected failure with a larger binary.

Ooh… so, TX2i cannot use its entire pinmux by nature?
My observation is that using GPIO enlarge the cfg file size.