Current I replace our imx6q board 1G memory with 2G memory, but the linux kernel freezed.
Environment:
1. uboot 2014.04
2. linux kernel 3.10.53
3. design from sabreSD
My step:
1. Do memory calibration and merge to uboot
2. replace DDR_MB=1024 with DDR_MB=2048 in boards.cfg for mx6qsabresdandroid board
3. burn the uboot and test the memory (OK)
4. run linux and linux stalled.
1. Memory Test Result
U-Boot 2014.04-00006-g41a0d81-dirty (Jul 08 2016 - 11:04:09)
CPU: Freescale i.MX6Q rev1.5 at 792 MHz
CPU: Temperature 28 C, calibration data: 0x5a251669
Reset cause: POR
Board: MX6-SabreSD
I2C: ready
DRAM: 2 GiB
MMC: FSL_SDHC: 0, FSL_SDHC: 1
*** Warning - bad CRC, using default environment
No panel detected: default to Hannstar-XGA
Display: Hannstar-XGA (1024x768)
In: serial
Out: serial
Err: serial
force_idle_bus: sda=0 scl=0 sda.gp=0x6d scl.gp=0x6c
force_idle_bus: failed to clear bus, sda=0 scl=0
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=0 sda.gp=0x6d scl.gp=0x6c
force_idle_bus: failed to clear bus, sda=0 scl=0
i2c_init_transfer: give up i2c_regs=021a4000
boot device [5]
check_and_clean: reg 0, flag_set 0
Fastboot: Normal
flash target is MMC:0
Net: FEC [PRIME]
Normal Boot
Hit any key to stop autoboot: 0
=> dcache off
=> icache off
download from tftp the test software to 0x907000
=> go 0x907000
## Starting application at 0x00907000 ...
============================================
DDR Stress Test (2.5.2)
Build: Mar 31 2016, 23:45:43
Freescale Semiconductor, Inc.
============================================
============================================
Chip ID
CHIP ID = i.MX6 Dual/Quad (0x63)
Internal Revision = TO1.5
============================================
============================================
Boot Configuration
SRC_SBMR1(0x020d8004) = 0x18480030
SRC_SBMR2(0x020d801c) = 0x22000001
============================================
What ARM core speed would you like to run?
Type 1 for 800MHz, 2 for 1GHz, 3 for 1.2GHz
ARM Clock set to 1GHz
============================================
DDR configuration
BOOT_CFG3[5-4]: 0x00, Single DDR channel.
DDR type is DDR3
Data width: 64, bank num: 8
Row size: 15, col size: 10
Chip select CSD0 is used
Density per chip select: 2048MB
============================================
Current Temperature: 38
============================================
Please select the DDR density per chip select (in bytes) on the board
Type 0 for 2GB; 1 for 1GB; 2 for 512MB; 3 for 256MB; 4 for 128MB; 5 for 64MB; 6 for 32MB
For maximum supported density (4GB), we can only access up to 3.75GB. Type 7 to select this
DDR density selected (MB): 512
Would do you want run DDR Calibration? Type 'y' to run and 'n' to skip
The DDR stress test can run with an incrementing frequency or at a static freq
To run at a static freq, simply set the start freq and end freq to the same value
Would do you want run DDR Stress Test? Type 'y' to run and 'n' to skip
Enter desired START freq (135 to 672 MHz), then hit enter.
Note: DDR3 minimum is ~333MHz, do not recommend to go too much below this.
528
The freq you entered was: 528
Enter desired END freq (135 to 672 MHz), then hit enter.
Make sure this is equal to or greater than start freq
528
The freq you entered was: 528
Do you want to run DDR Stress Test for simple loop or Over Night Test?
Type '0' for simple loop. Type '1' for Over Night Test
DDR Stress Test Iteration 1
Current Temperature: 40
DDR Freq: 528 MHz
t0.1: data is addr test
t0: memcpy10 SSN x64 test
t1: memcpy8 SSN x64 test
t2: byte-wise SSN x64 test
t3: memcpy11 random pattern test
t4: IRAM_to_DDRv2 test
t5: IRAM_to_DDRv1 test
t6: read noise walking ones and zeros test
DDR Stress Test is complete!
2. bdinfo
=> bdinfo
arch_number = 0x00000F8C
boot_params = 0x10000100
DRAM bank = 0x00000000
-> start = 0x10000000
-> size = 0x80000000
eth0name = FEC
ethaddr = 00:01:02:03:04:05
current eth = FEC
ip_addr = <NULL>
baudrate = 115200 bps
TLB addr = 0x8FFF0000
relocaddr = 0x8FF4E000
reloc off = 0x7874E000
irq_sp = 0x8F54BEE0
sp start = 0x8F54BED0
FB base = 0x00000000
3. Starting kernel result
=> run bootcmd
booti mmc0
kernel @ 14008000 (6879224)
ramdisk @ 15000000 (500799)
fdt @ 14f00000 (42374)
kernel cmdline:
use boot.img command line:
console=ttymxc0,115200 init=/init androidboot.console=ttymxc0 consoleblank=0 video=mxcfb0:dev=ldb,1080P60,if=RGB24,bpp=32 video=mxcfb1:dev=hdmi,1920x1080M@60,if=RGB24,bpp=32 androidboot.hardware=freescale cma=384M
Loading Ramdisk to 8f4d0000, end 8f54a43f ... OK
Loading Device Tree to 8f4c2000, end 8f4cf585 ... OK
Starting kernel ...
it never response again
Again, If I just the the DDR calibration data but set CONFIG_DDR_MB = 1024 , the same kernel starts correctly.
Hi huijie
one can check power supplies, its ripples should be <5%
and capacitors values described on HW Design Checklist
https://community.freescale.com/docs/DOC-93819
Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
We fixed with your help, Thank you