Imx6s custom board, mmu init issue

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Imx6s custom board, mmu init issue

1,392 Views
jfg
Contributor I

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.

Labels (1)
Tags (4)
0 Kudos
3 Replies

605 Views
mohsengh
Contributor III

Hi Johan,

I have exactly the same problem.

did you manage to solve it?

thanks

0 Kudos

605 Views
dubravkomoravsk
Contributor I

Hi Johan,

I have quite a similar problem. Were you able to make any progress?

0 Kudos

605 Views
AnsonHuang
NXP Employee
NXP Employee

Hi, Johan

     Since this mmu initial code are common and there is nothing special we need to do during kernel boot up, so I would like to know whether you have turned off cache, mmu correctly in uboot before jumping to kernel, can you help double check it?

0 Kudos