Hi,
I am trying to get a custom board based of the SabreSD board up and running. The board has a IMX6 solo processor and a different DDR from the sabresd board. At the moment im trying to create two images, u-boot and linux, that can be used with the MFG-tool to flash the emmc.
I have followed the instructions in the "i.MX 6Solo/6DualLite BSP Porting Guide" and the documentation from the MFG tool "Manufacturing Tool V2 Linux or Android Firmware Development Guide V2.docx".
I have updated the DCD table and have tried it with the "DDR_Stress_Tester_V1.0.1" and it does not report any errors. I have also given the board a custom machine number and added it to the register site.
My issue is that the board fails to execute beyond the point below.
U-Boot 2009.08-00698-g928df9c-dirty (Feb 06 2014 - 17:06:17)
CPU: Freescale i.MX6 family TO1.1 at 792 MHz
Thermal sensor with ratio = 187
Temperature: 40 C, calibration data 0x5a15255f
mx6q pll1: 792MHz
mx6q pll2: 528MHz
mx6q pll3: 480MHz
mx6q pll8: 50MHz
ipg clock : 66000000Hz
ipg per clock : 66000000Hz
uart clock : 80000000Hz
cspi clock : 60000000Hz
ahb clock : 132000000Hz
axi clock : 198000000Hz
emi_slow clock: 99000000Hz
ddr clock : 396000000Hz
usdhc1 clock : 198000000Hz
usdhc2 clock : 198000000Hz
usdhc3 clock : 198000000Hz
usdhc4 clock : 198000000Hz
nfc clock : 24000000Hz
Board: i.MX6DL/Solo-ChamHigh: unknown-board Board: 0x61011 [POR ]
Boot Device: NOR
I2C: ready
DRAM: 1 GB
MMC: mmc init start
usdhc gpio init SLUT
FSL_USDHC: 0
Using default environment
In: serial
Out: serial
Err: serial
Board late init Start
Board late init SLUT
Net: No ethernet found.
Hit any key to stop autoboot: 0
* kernel: cmdline image address = 0x10800000
## Booting kernel from Legacy Image at 10800000 ...
Image Name: Linux-3.0.35-03028-g0231539-dirt
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 6958796 Bytes = 6.6 MB
Load Address: 10008000
Entry Point: 10008000
Verifying Checksum ... OK
kernel data at 0x10800040, len = 0x006a2ecc (6958796)
Loading Kernel Image ... OK
OK
kernel loaded at 0x10008000, end = 0x106aaecc
Using machid 0x12fb
## Transferring control to Linux (at address 10008000) ...
Starting kernel ...
Uncompressing Linux... done, booting the kernel.
I have traced it to the point where it tries to turn on the MMU by setting gpio pins.
__turn_mmu_on:
mov r0, r0
mcr p15, 0, r0, c1, c0, 0 @ write control reg
mrc p15, 0, r3, c0, c0, 0 @ read id reg
mov r3, r3
mov r3, r13
mov pc, r3
__enable_mmu_end:
ENDPROC(__turn_mmu_on)
My guess is that I must have missed setting up something important before reaching this point in the startup. I would very much appreciate any ideas on what could cause this issue and how I could solve it. Please let me know if I have failed to provide any information that you think is vital to the question.