Please help. iMX6Q botting only from USB Serial

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Please help. iMX6Q botting only from USB Serial

959 Views
John_Smith_nxp
Contributor I

Hi everyone!

I have 2 same car head units. It very similar to SabreAuto and has iMX6Q CPU (SC667624AVT10AD, vid:pid 0x15a2:0x0054, but only 2 cores work). One is normal, the second one is bricked after unsuccessful flash by MFGTool. I don't know what exactly happens, but after that board connected always in recovery mode. After power there is no boot, no any symbol in UART, USB shows "ID 15a2:0054 Freescale Semiconductor, Inc. i.MX 6Dual/6Quad SystemOnChip in RecoveryMode", in Windows looks as "SE BLANK ARIK". Board has DIP-switches for boot from different sources, but they configuration ignored after power on.

I can load u-boot manually and start native OS from onboard eMMC, I can load u-boot manually and boot from MicroSD or SPI-NOR (both soldering by Me on propper places), but no one load u-boot after power on. The working head unit boots normally from any source configured by the switches.

I have no idea what is wrong. Please help Me. Sorry for My bad English. Big thanks!

0 Kudos
7 Replies

682 Views
John_Smith_nxp
Contributor I

Big thanx for help!

I can't do something usefull to repair head unit. It's going to scrap.

Please close this case.

Best regards!

 

0 Kudos

847 Views
John_Smith_nxp
Contributor I

One more thing. After that strange changes My u-boot's can't see onboard EMMC.

U-Boot > mmc dev 1
MMC: no card present
mmc1(part 0) is current device
U-Boot > mmcinfo
MMC: no card present
Device: FSL_SDHC
Manufacturer ID: 0
OEM: 0
Name: Tran Speed: 0
Rd Block Len: 0
MMC version 0.0
High Capacity: No
Capacity: 0 Bytes
Bus Width: 0-bit
U-Boot >

But I can start Android from EMMC in CLI via MicroSD and can read, write, erase EMMC.

0 Kudos

905 Views
Dhruvit
NXP TechSupport
NXP TechSupport

Hi @John_Smith_nxp,

I hope you are doing well
 
Kindly share the values of the fuses BT_FUSE_SEL and SDP_DISABLE of the bricked board.
Please try to read the internal BOOT_MODE register BMOD[1:0] field of the SRC Boot
Mode Register (SRC_SBMR2) as mentioned in Table 8-1. Boot MODE pin settings of the IMX6DQRM.
 
Thanks & Regards,
Dhruvit Vasavada
0 Kudos

899 Views
John_Smith_nxp
Contributor I

Big thanks for the answer!

I did not have any document for this head unit. But I found combination of DIP switches to boot from SPI-NOR and MicroSD.
Boot form eMMC is by default from factory. Also i found 2 switches witch have only 10kOhm resistors to the ground, like BOOT_MODE0 and BOOT_MODE1 from SPF-27925_F2.PDF file.
I can't inspect whole traces from switches to CPU, because PCB has 8 layers. I don't know how to read this fuses BT_FUSE_SEL and SDP_DISABLE.
This board  can boot only from USB and have errors when I try to write it by UUU: "SDP: write -f u-boot.imx --> LibUSB error".
This is what I read from bricked board (I boot it from USB and start Android 4.4 from MicroSD. Board IS NOT Nitrogen6x from Boundary).
root@nitrogen6x:/ # cat /sys/fsl_otp/HW_OCOTP_LOCK
0x20220003

root@nitrogen6x:/sys/fsl_otp # cat HW_OCOTP_CFG0
0xee6af004
root@nitrogen6x:/sys/fsl_otp # cat HW_OCOTP_CFG1
0xe2389d4
root@nitrogen6x:/sys/fsl_otp # cat HW_OCOTP_CFG2
0x20220001
root@nitrogen6x:/sys/fsl_otp # cat HW_OCOTP_CFG3
0x620302
root@nitrogen6x:/sys/fsl_otp # cat HW_OCOTP_CFG4
0x8000030
root@nitrogen6x:/sys/fsl_otp # cat HW_OCOTP_CFG5
0x10
root@nitrogen6x:/sys/fsl_otp # cat HW_OCOTP_CFG6
0x0

My fault - I don't understand what this means, but I try to know this magic.

PS: "ON" position is +3.3V.

Best regards!!!

0 Kudos

864 Views
Dhruvit
NXP TechSupport
NXP TechSupport

Hi @John_Smith_nxp,

I hope you are doing well
 
I don't know how to read this fuses BT_FUSE_SEL and SDP_DISABLE.

=> One can read the fuse from U-boot using the 'fuse' command. Please refer to the below document for the same.

 
Further one can try to read the register at a particular address using the 'devmem2' tool.
i.e. To get the value of 'BMOD[1:0]' one can try to read 'SRC_SBMR2' register located at the address 0x20D_801.
The command is: devmem2 <address>
 
Please refer the section 60.7.6 SRC Boot Mode Register 2 (SRC_SBMR2) for the register address and Table 5-9. Fusemap Descriptions for Fuses from the IMX6DQRM.
 
Thanks & Regards,
Dhruvit Vasavada

0 Kudos

860 Views
John_Smith_nxp
Contributor I

Hello Dhruvit!

Big thanks for Your help!

My results at last time. I read the same fuses on another two same head units. This is results and they not equal (very strange).
They work absolutely normal - starts u-boot and Android from onboard EMMC.
----WORKING HEAD UNIT 1----
root@android:/ # cat /sys/fsl_otp/HW_OCOTP_LOCK
0x20220003
root@android:/ # cat /sys/fsl_otp/HW_OCOTP_CFG0
0xee7f865c
root@android:/ # cat /sys/fsl_otp/HW_OCOTP_CFG1
0x161c59d4
root@android:/ # cat /sys/fsl_otp/HW_OCOTP_CFG2
0x2022002c
root@android:/ # cat /sys/fsl_otp/HW_OCOTP_CFG3
0x620302
root@android:/ # cat /sys/fsl_otp/HW_OCOTP_CFG4
0x0
root@android:/ # cat /sys/fsl_otp/HW_OCOTP_CFG5
0x0
root@android:/ # cat /sys/fsl_otp/HW_OCOTP_CFG6
0x0
----WORKING HEAD UNIT 2----
root@android:/ # cat /sys/fsl_otp/HW_OCOTP_LOCK
0x20220002
root@android:/ # cat /sys/fsl_otp/HW_OCOTP_CFG0
0xd1e1233a
root@android:/ # cat /sys/fsl_otp/HW_OCOTP_CFG1
0x1a1a11d4
root@android:/ # cat /sys/fsl_otp/HW_OCOTP_CFG2
0x20200084
root@android:/ # cat /sys/fsl_otp/HW_OCOTP_CFG3
0x620302
root@android:/ # cat /sys/fsl_otp/HW_OCOTP_CFG4
0x0
root@android:/ # cat /sys/fsl_otp/HW_OCOTP_CFG5
0x0
root@android:/ # cat /sys/fsl_otp/HW_OCOTP_CFG6
0x0

I try to burn HW_OCOTP_CFG5 fuse on bricked head unit from u-boot and Android, but result is negative - still 0x10.

I have more questions.
1. Does NXP have any fuse calculator like AVR Fuse Calculator?
2. In witch fuse stored boot configuration?
3. Why UUU or IMX_USB can't burn U-boot into EMMC? (SDP: write -f or uuu -b failed)
4. What CPU exactly installed on this board? How many cores physically it contents?

root@arm:/mnt/2p5# devmem2 0x20D_8004
/dev/mem opened.
Memory mapped at address 0xb6f12000.
Value at address 0x20D (0xb6f1220d): 0x18307FF0
root@arm:/mnt/2p5# devmem2 0x20D_801C
/dev/mem opened.
Memory mapped at address 0xb6f02000.
Value at address 0x20D (0xb6f0220d): 0x18307FF0
root@arm:/mnt/2p5#

Best regards!

0 Kudos

774 Views
Dhruvit
NXP TechSupport
NXP TechSupport

Hi @John_Smith_nxp,

I hope you are doing well.
 
The selection of the external boot device type is controlled by the BOOT_CFG1[7:4] eFUSEs. According to the value written in BOOT_CFG1[7:4] the Boot device will be selected as per Table 8-7. Boot device selection of IMX6DQRM. Please verify if the same boot device is available with the valid image or not. If it fails to detect that peculiar boot device, it may fall into serial download mode.
 
1. Does NXP have any fuse calculator like AVR Fuse Calculator?
=> No, there is no fuse calculator available.
 
2. In witch fuse stored boot configuration?
=>The selection of the external boot device type is controlled by the BOOT_CFG1[7:4] eFUSEs.
 
3. Why UUU or IMX_USB can't burn U-boot into EMMC? (SDP: write -f or uuu -b failed)
=> Kindly try the latest version of the UUU tool. If it does not solve the issue, please share the steps you followed with the whole error log to debug the issue.
 

4. What CPU exactly installed on this board? How many cores physically it contents?

=> The CPU feature of i.MX 6Quad Processors is "4x Arm® Cortex®-A9 up to 1.2 GHz per core"
For more information please refer to the below link. i.MX 6Quad Processors
 
Regarding the EMMC detection issue in the uboot, can you be specific about which changes you have done?
One can verify whether the emmc is detected or not using the kernel by the command 'cat /proc/partition'
 
Thanks & Regards,
Dhruvit Vasavada

0 Kudos