I have a customized imx6 solo board. 1 GB of DDR3 ram and MMC for boot.
I have ported u-boot(the fslc community one) and it seems to work fine. I also run stress RAM test and it came out OK. (calibration data is used in imximage.cfg)
when I attempt to run kernel it stuck at "starting kernel" commands:
>>ext4load mmc 0 ${loadaddr} zImage
>>ext4load mmc 0 ${fdt_addr} *.dtb
>>bootz ${loadaddr} - ${fdt_addr}
(loadaddr=0x12000000 and fdt_addr=0x18000000 the bootargs has the right ttymxc and baudrate value)
with early printk it says: "Uncompressing Linux... done, booting the kernel"
printk doesn't work, (Guess the initialize not done). fortunatly, I have some LEDs on board, so I tried to use them and trace the code. the it seems it kernel hangs at enabling MMU:
/arch/arm/kernel/head.S :
.
.
ENTRY(__turn_mmu_on)
mov r0, r0
instr_sync
mcr p15, 0, r0, c1, c0, 0
mrc p15, 0, r3, c0, c0, 0
instr_sync
mov r3, r3
mov r3, r13
ret r3
__turn_on_mmu_end
ENDPROC(__turn_mmu_on)`enter code here`
...
those mcr and mrc are the point that i can toggle GPIObefore them and not after!
I should add: to toggling GPIO I used physical address before them and virtual address after.(I also test with physical add) physical address: for example 0x0209c000 -> gpio data register which virtual address is: 0xf429c000 (just in iMX platform)
also I disable i/d cache before boot up kernel. didn't know how to disable MMU but according the u-boot it seems to be disabled.
please help me find the solution. thanks Vahid