Hi,
We are getting error while booting the IMX Saberlite 6Q from SD card.
Below is the error log.
CPU: Freescale i.MX6Q rev1.2 at 792 MHz
Reset cause: POR
Board: SABRE Lite
DRAM: 1 GiB
MMC: FSL_SDHC: 0, FSL_SDHC: 1
SF: Detected SST25VF016B with page size 4 KiB, total 2 MiB
wait_for_sr_state: failed sr=81 cr=a0 state=2020
i2c_init_transfer: failed for chip 0x4 retry=0
wait_for_sr_state: failed sr=81 cr=a0 state=2020
i2c_init_transfer: failed for chip 0x4 retry=1
wait_for_sr_state: failed sr=81 cr=a0 state=2020
i2c_init_transfer: failed for chip 0x4 retry=2
i2c_init_transfer: give up i2c_regs=021a8000
wait_for_sr_state: failed sr=81 cr=a0 state=2020
i2c_init_transfer: failed for chip 0x38 retry=0
wait_for_sr_state: failed sr=81 cr=a0 state=2020
i2c_init_transfer: failed for chip 0x38 retry=1
wait_for_sr_state: failed sr=81 cr=a0 state=2020
i2c_init_transfer: failed for chip 0x38 retry=2
i2c_init_transfer: give up i2c_regs=021a8000
wait_for_sr_state: failed sr=81 cr=a0 state=2020
i2c_init_transfer: failed for chip 0x48 retry=0
wait_for_sr_state: failed sr=81 cr=a0 state=2020
i2c_init_transfer: failed for chip 0x48 retry=1
wait_for_sr_state: failed sr=81 cr=a0 state=2020
i2c_init_transfer: failed for chip 0x48 retry=2
i2c_init_transfer: give up i2c_regs=021a8000
No panel detected: default to HDMI
enable_hdmi: setup HDMI monitor
Display: HDMI (1024x768)
In: serial
Out: serial
Err: serial
Net: using phy at 6
FEC [PRIME]
Hit any key to stop autoboot: 0
AHCI 0001.0300 32 slots 1 ports 3 Gbps 0x1 impl SATA mode
flags: ncq stag pm led clo only pmp pio slum part
No port device detected!
** Bad device size - sata 0 **
** Bad device size - sata 0 **
SATA device 1: unknown device
** Bad device sata 1 **
** Bad device sata 1 **
MMC: no card present
mmc0(part 0) is current device
MMC: no card present
** Bad device mmc 0 **
MMC: no card present
** Bad device mmc 0 **
mmc1 is current device
** Unrecognized filesystem type **
1653 bytes read in 59 ms (27.3 KiB/s)
## Executing script at 10008000
We changed the kernel image and try but it gives the same error. We are using Kernel 3.0.35.
Thanks and Regards,
Anil Ghadiya
Hi Anil,
First off, please paste text into messages like this instead of using screen-shots. That allows e-mail notifications to contain the details in question and allows for quoting of the content.
Secondly, I'm sorry, but I can't spend cycles debugging your hardware. My suggestions about where to look were just that: suggestions of directions.
The MUX_CTL_PAD_x registers have an SION bit that allow you to see the state of pins through the corresponding GPIOX_PSR registers.
I'm sure you'll find that the processor is seeing either or both the I2Cx_SDA or I2Cx_SCL pins low during the boot process.
Finally, note that the I2C accesses in question stem from the U-Boot code that tries to automatically identify the touch controllers commonly used on our boards.
It's highly likely that these accesses aren't needed on your custom hardware. I presume that you know what display you're using and don't need auto-detect. This should be dealt with in your custom U-Boot.
Regards,
Eric
Hello Anil,
These errors indicate that something is holding the I2C bus in an invalid state and come from the attempt to auto-detect displays through their touch controllers.
What do you have connected to the board (especially J7)?
Hi Eric,
Thanks for your reply.
We have connected our device via I2C to J7 (Only I2C pins and GPIO_9) and we are using this setup since beginning.
This issue started once after the application caused the kernel panic. So we suspected that flash is corrupted and tried to
re-flash it from SD card. But we are not able to flash it again.
It would be very helpful if you can guide us to re-flash the SPI_NOR in such a way that it boots up from micro SD card.
Thanks in advance,
Anil Ghadiya
Hello Eric,
We are able re-flash the board and its booting up but it gives the same errors which i mentioned in the first post.
As i mentioned we are connecting our device to J7(Only I2C pins and GPIO_9) via I2C.
Even if do not connect anything on J7, we are getting the same error.
Thanks and Regards,
Anil Ghadiya
These I2C error messages indicate that something is holding the I2C lines (SDA and/or SCL) low (holding the I2C bus).
If you've disconnected your device, perhaps the process introduces a short to ground somewhere.
Hi Eric,
Thanks for your reply.
I have checked the I2C lines if it is shorted with the GND pin in the J7. Also checked with reference to some of the common GND points on the boards,
but it seems there is no shorting there. Can you suggest any other point in particular which should be checked.
I have also checked the pull-up registers for these pins r216 and r217. They seem fine, i mean measures the correct resistance.
With Regards,
Anil Ghadiya
If you set the SION bits in the MUX_CTL_PAD registers, you can validate that the pins are reading low
in the GPIOx_PSR registers (GP1:5 and GP7:11):
You can use the "mm.l" command in U-Boot to view/change the register values.
Hi Eric,
We have tried to read the MUX_CTL_PAD and GPIOx_PSR registers from the u-boot prompt.
But we are getting the same values for all registers.
Could you please take a look and check if we are reading it correctly and what do the read values indicate?
Thanks in Advance,
Anil Ghadiya
The mm.l command expects an address as its argument. You can find the addresses in the reference manual i.MX6DQRM.
Hi Eric,
We have read the below mentioned registers.....
1. IOMUXC_SW_MUX_CTL_PAD_EIM_DATA17 @ addr 0x20E0094
2. IOMUXC_SW_MUX_CTL_PAD_EIM_DATA18 @ addr 0x20E0098
3. IOMUXC_I2C3_SCL_IN_SELECT_INPUT @ addr 0x20E08A8
4. IOMUXC_I2C3_SDA_IN_SELECT_INPUT @ addr 0x20E08AC
5. GPIO1_PSR @ addr 0x209C008
6. GPIO7_PSR @ addr 0x20B4008
Could you please take a look at the read values and see if anything is missing.
Please see the image for corresponding read values.
Thanks and Regards,
Anil Ghadiya