Hello all,
I tried porting U-boot(2014.04) in our custom board running on i.MX6 Dualite.we run DDR calibration and got the updated values.
I updated the .cfg file with the DDR3 script values and DDR calibration result values.
But after that aso my U-boot prompt doesn't came up and It stucked at below point.
U-Boot 2014.04 (Aug 16 2016 - 10:42:46)
CPU: Freescale i.MX6DL rev1.3 at 792 MHz
CPU: Temperature 33 C, calibration data: 0x5804f469
Reset cause: POR
Board: Custom-Dual
I2C: ready
DRAM: 2 GiB
(It stucked here only)
After that I modified below register values in the DDR3 configuration.
DATA 4, 0x021b0818, 0x00000007// changed from 0x00022227
DATA 4, 0x021b4818, 0x00000007 //changed from 0x00022227
and my U-boot prompt came up.
But when I closely saw the logs its giving below errors:
force_idle_bus: sda=0 scl=1 sda.gp=0x9a scl.gp=0x9b
force_idle_bus: failed to clear bus, sda=0 scl=1
wait_for_sr_state: Arbitration lost sr=93 cr=80 state=2020
i2c_init_transfer: failed for chip 0x8 retry=0
force_idle_bus: sda=0 scl=1 sda.gp=0x9a scl.gp=0x9b
force_idle_bus: failed to clear bus, sda=0 scl=1
i2c_init_transfer: give up i2c_regs=021a0000
PMIC Voltages set
The complete U-boot boot logs are as below:
U-Boot 2014.04 (Aug 17 2016 - 16:48:03)
CPU: Freescale i.MX6DL rev1.3 at 792 MHz
CPU: Temperature 32 C, calibration data: 0x5804f469
Reset cause: POR
Board:Custom-Dual
I2C: ready
DRAM: 2 GiB
MMC: FSL_SDHC: 0
MMC Device 1 not found
No MMC card found
Using default environment
No panel detected: default to Newhaven-CTP
Display: Newhaven-CTP (800x480)
In: serial
Out: serial
Err: serial
Boot modes set
force_idle_bus: sda=0 scl=1 sda.gp=0x9a scl.gp=0x9b
force_idle_bus: failed to clear bus, sda=0 scl=1
wait_for_sr_state: Arbitration lost sr=93 cr=80 state=2020
i2c_init_transfer: failed for chip 0x8 retry=0
force_idle_bus: sda=0 scl=1 sda.gp=0x9a scl.gp=0x9b
force_idle_bus: failed to clear bus, sda=0 scl=1
i2c_init_transfer: give up i2c_regs=021a0000
(Not understanding Why I am getting this?)
PMIC Voltages set
## 17059
Exiting board_late_init
CMD_SEND:0
ARG 0x00000000
MMC_RSP_NONE
CMD_SEND:8
ARG 0x000001AA
MMC_RSP_R1,5,6,7 0x000001AA
CMD_SEND:55
ARG 0x00000000
MMC_RSP_R1,5,6,7 0x00000120
CMD_SEND:41
ARG 0x40300000
MMC_RSP_R3,4 0x40FF8000
CMD_SEND:55
ARG 0x00000000
MMC_RSP_R1,5,6,7 0x00000120
CMD_SEND:41
ARG 0x40300000
MMC_RSP_R3,4 0x40FF8000
CMD_SEND:55
ARG 0x00000000
MMC_RSP_R1,5,6,7 0x00000120
CMD_SEND:41
ARG 0x40300000
MMC_RSP_R3,4 0xC0FF8000
CMD_SEND:2
ARG 0x00000000
MMC_RSP_R2 0x03534453
0x4C313647
0x806AEA77
0x9E00F700
DUMPING DATA
000 - 03 53 44 53
004 - 4C 31 36 47
008 - 80 6A EA 77
012 - 9E 00 F7 00
CMD_SEND:3
ARG 0x00000000
MMC_RSP_R1,5,6,7 0xAAAA0520
CMD_SEND:9
ARG 0xAAAA0000
MMC_RSP_R2 0x400E0032
0x5B590000
0x76B27F80
0x0A404000
DUMPING DATA
000 - 40 0E 00 32
004 - 5B 59 00 00
008 - 76 B2 7F 80
012 - 0A 40 40 00
CMD_SEND:13
ARG 0xAAAA0000
MMC_RSP_R1,5,6,7 0x00000700
CURR STATE:3
CMD_SEND:7
ARG 0xAAAA0000
MMC_RSP_R1,5,6,7 0x00000700
CMD_SEND:55
ARG 0xAAAA0000
MMC_RSP_R1,5,6,7 0x00000920
CMD_SEND:51
ARG 0x00000000
MMC_RSP_R1,5,6,7 0x00000920
CMD_SEND:6
ARG 0x00FFFFF1
MMC_RSP_R1,5,6,7 0x00000900
CMD_SEND:6
ARG 0x80FFFFF1
MMC_RSP_R1,5,6,7 0x00000900
CMD_SEND:55
ARG 0xAAAA0000
MMC_RSP_R1,5,6,7 0x00000920
CMD_SEND:6
ARG 0x00000002
MMC_RSP_R1,5,6,7 0x00000920
CMD_SEND:16
ARG 0x00000200
MMC_RSP_R1,5,6,7 0x00000900
CMD_SEND:17
ARG 0x00000000
MMC_RSP_R1,5,6,7 0x00000900
CMD_SEND:16
ARG 0x00000200
MMC_RSP_R1,5,6,7 0x00000900
CMD_SEND:17
ARG 0x00000000
MMC_RSP_R1,5,6,7 0x00000900
CMD_SEND:16
ARG 0x00000200
MMC_RSP_R1,5,6,7 0x00000900
CMD_SEND:17
ARG 0x00000800
MMC_RSP_R1,5,6,7 0x00000900
reading uimage
CMD_SEND:16
ARG 0x00000200
MMC_RSP_R1,5,6,7 0x00000900
CMD_SEND:17
ARG 0x00000800
MMC_RSP_R1,5,6,7 0x00000900
CMD_SEND:16
ARG 0x00000200
MMC_RSP_R1,5,6,7 0x00000900
CMD_SEND:18
ARG 0x00000881
MMC_RSP_R1,5,6,7 0x00000900
CMD_SEND:12
ARG 0x00000000
MMC_RSP_R1b 0x00000B00
CMD_SEND:16
ARG 0x00000200
MMC_RSP_R1,5,6,7 0x00000900
CMD_SEND:18
ARG 0x00000801
MMC_RSP_R1,5,6,7 0x00000900
CMD_SEND:12
ARG 0x00000000
MMC_RSP_R1b 0x00000B00
CMD_SEND:16
ARG 0x00000200
MMC_RSP_R1,5,6,7 0x00000900
CMD_SEND:18
ARG 0x00000807
MMC_RSP_R1,5,6,7 0x00000900
CMD_SEND:12
ARG 0x00000000
MMC_RSP_R1b 0x00000B00
CMD_SEND:16
ARG 0x00000200
MMC_RSP_R1,5,6,7 0x00000900
CMD_SEND:18
ARG 0x0000080D
MMC_RSP_R1,5,6,7 0x00000900
CMD_SEND:12
ARG 0x00000000
MMC_RSP_R1b 0x00000B00
CMD_SEND:16
ARG 0x00000200
MMC_RSP_R1,5,6,7 0x00000900
CMD_SEND:18
ARG 0x000008A5
MMC_RSP_R1,5,6,7 0x00000900
CMD_SEND:12
ARG 0x00000000
MMC_RSP_R1b 0x00000B00
CMD_SEND:16
ARG 0x00000200
MMC_RSP_R1,5,6,7 0x00000900
CMD_SEND:17
ARG 0x00003957
MMC_RSP_R1,5,6,7 0x00000900
6382984 bytes read in 445 ms (13.7 MiB/s)
CMD_SEND:16
ARG 0x00000200
MMC_RSP_R1,5,6,7 0x00000900
CMD_SEND:17
ARG 0x00000000
MMC_RSP_R1,5,6,7 0x00000900
CMD_SEND:16
ARG 0x00000200
MMC_RSP_R1,5,6,7 0x00000900
CMD_SEND:17
ARG 0x00000800
MMC_RSP_R1,5,6,7 0x00000900
reading arya.dtb
CMD_SEND:16
ARG 0x00000200
MMC_RSP_R1,5,6,7 0x00000900
CMD_SEND:17
ARG 0x00000800
MMC_RSP_R1,5,6,7 0x00000900
CMD_SEND:16
ARG 0x00000200
MMC_RSP_R1,5,6,7 0x00000900
CMD_SEND:18
ARG 0x00000881
MMC_RSP_R1,5,6,7 0x00000900
CMD_SEND:12
ARG 0x00000000
MMC_RSP_R1b 0x00000B00
CMD_SEND:16
ARG 0x00000200
MMC_RSP_R1,5,6,7 0x00000900
CMD_SEND:18
ARG 0x0000080D
MMC_RSP_R1,5,6,7 0x00000900
CMD_SEND:12
ARG 0x00000000
MMC_RSP_R1b 0x00000B00
CMD_SEND:16
ARG 0x00000200
MMC_RSP_R1,5,6,7 0x00000900
CMD_SEND:18
ARG 0x00003959
MMC_RSP_R1,5,6,7 0x00000900
CMD_SEND:12
ARG 0x00000000
MMC_RSP_R1b 0x00000B00
CMD_SEND:16
ARG 0x00000200
MMC_RSP_R1,5,6,7 0x00000900
CMD_SEND:17
ARG 0x0000399E
MMC_RSP_R1,5,6,7 0x00000900
35358 bytes read in 109 ms (316.4 KiB/s)
Net: FEC [PRIME]
Warning: failed to set MAC address
Normal Boot
Hit any key to stop autoboot: 0
U-BOOT >
WHen I checked the i2c probe output it shows below errors:
U-BOOT > i2c probe
Valid chip addresses:wait_for_sr_state: Arbitration lost sr=93 cr=80 state=2020
i2c_init_transfer: failed for chip 0x0 retry=0
force_idle_bus: sda=0 scl=1 sda.gp=0x9a scl.gp=0x9b
force_idle_bus: failed to clear bus, sda=0 scl=1
i2c_init_transfer: give up i2c_regs=021a0000
wait_for_sr_state: failed sr=a1 cr=80 state=2000
wait_for_sr_state: failed sr=a1 cr=80 state=2000
i2c_imx_stop:trigger stop failed
i2c_init_transfer: failed for chip 0x1 retry=0
force_idle_bus: sda=0 scl=1 sda.gp=0x9a scl.gp=0x9b
force_idle_bus: failed to clear bus, sda=0 scl=1
i2c_init_transfer: give up i2c_regs=021a0000
wait_for_sr_state: Arbitration lost sr=93 cr=80 state=2020
i2c_init_transfer: failed for chip 0x2 retry=0
force_idle_bus: sda=0 scl=1 sda.gp=0x9a scl.gp=0x9b
force_idle_bus: failed to clear bus, sda=0 scl=1
i2c_init_transfer: give up i2c_regs=021a0000
Kindly help regarding this issue.
Best Regards,
Hrushi
Hi Hrushi
one can try to tweak drive strength of ddr signals, seems increasing
should help. For i2c one can try to inspect signals with oscilloscope.
Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Hello igor,
Previously it was not going further "Uncompressing Linux... done, booting the kernel." but after enabling the earlyprintk I am getting below output:
Starting kernel ...
cleanup_before_linux from cpu.c executed successfully
Entering into Kernel
Uncompressing Linux... done, booting the kernel.
Booting Linux on physical CPU 0x0
Linux version 3.14.28 (shree@Needa) (gcc version 4.9.2 (GCC) ) #69 SMP PREEMPT Mon Aug 22 13:56:25 IST 2016
CPU: ARMv7 Processor [412fc09a] revision 10 (ARMv7), cr=10c53c7d
CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
Machine model: Wearberrytec i.MX6 DualLite ARYA Smart Device Board
bootconsole [earlycon0] enabled
cma: CMA: reserved 320 MiB at 6a000000
Memory policy: Data cache writealloc
Unable to handle kernel paging request at virtual address ff579000
pgd = 80004000
[ff579000] *pgd=00000000
Internal error: Oops: 5 [#1] PREEMPT SMP ARM
Modules linked in:
CPU: 0 PID: 0 Comm: swapper Not tainted 3.14.28 #69
task: 80e6c428 ti: 80e60000 task.ti: 80e60000
PC is at __unflatten_device_tree+0x70/0x2d4
LR is at unflatten_device_tree+0x28/0x34
pc : [<805448d4>] lr : [<80de2d0c>] psr: 600001d3
sp : 80e61f30 ip : 10f45ddb fp : 80f26a24
r10: 80c85768 r9 : 80000200 r8 : ef7ffd40
r7 : 80db2940 r6 : 80ed33e0 r5 : ff579000 r4 : 80ed33e0
r3 : 00000000 r2 : 00000000 r1 : 80f389d0 r0 : ff579000
Flags: nZCv IRQs off FIQs off Mode SVC_32 ISA ARM Segment kernel
Control: 10c53c7d Table: 1000404a DAC: 00000015
Process swapper (pid: 0, stack limit = 0x80e60238)
Stack: (0x80e61f30 to 0x80e62000)
1f20: 00001000 00000007 80f26a18 80f389d0
1f40: 80db2940 80def1f4 80e75f90 80e6d3b0 ef7ffd40 80de2d0c 80e68488 80db1db8
1f60: ffffffff 10c53c7d 00000000 00000000 00000000 80edac00 80e61fd4 80df3790
1f80: ffffffff 1000406a 412fc09a 00000000 00000000 8072a280 80c83a00 80edaac0
1fa0: 80e68480 00000001 ffffffff 1000406a 412fc09a 00000000 00000000 80dae844
1fc0: 00000000 00000000 00000000 00000000 00000000 80df3790 00000000 10c53c7d
1fe0: 80e684fc 80df378c 80e6d4c0 1000406a 412fc09a 10008074 00000000 00000000
[<805448d4>] (__unflatten_device_tree) from [<80de2d0c>] (unflatten_device_tree+0x28/0x34)
[<80de2d0c>] (unflatten_device_tree) from [<80db1db8>] (setup_arch+0x6ac/0x900)
[<80db1db8>] (setup_arch) from [<80dae844>] (start_kernel+0x84/0x35c)
[<80dae844>] (start_kernel) from [<10008074>] (0x10008074)
Code: 1a00007c e1d33ab2 e3130004 1a00006c (e5953000)
---[ end trace 3406ff24bd97382e ]---
Kernel panic - not syncing: Attempted to kill the idle task!
But I am not understanding why I am getting above panic issue.We have used the same RAM MT41K256M16TW-107 part number for our solo board.But while migrating to dual board (with 2GB RAM)we are getting this issue.
Do I need to modify anything in kernel and device tree for Dualite board like
memory {
reg = <0x10000000 0x80000000>;//changed for dualite
};
Kindly guide me regarding this issue.
Thanks & Regards,
Hrushi
Hi Hrushi
one can try kernel boot parameter maxcpus=1 to imitate i.MX6Solo,
drive strength configuration can be found in IOMUX Chapter of Reference Manual.
Nevertheless error resembles ddr error, could you recheck with ddr tester if dcd header
memory settings are correct.
Best regards
igor
Hello igor,
How can I tweak the drive strength of ddr signals?
Thanks & Regards,
Hrushi