Imx6s custom board, mmu init issue

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

Imx6s custom board, mmu init issue

1,421件の閲覧回数
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.

ラベル(1)
タグ(4)
0 件の賞賛
3 返答(返信)

634件の閲覧回数
mohsengh
Contributor III

Hi Johan,

I have exactly the same problem.

did you manage to solve it?

thanks

0 件の賞賛

634件の閲覧回数
dubravkomoravsk
Contributor I

Hi Johan,

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

0 件の賞賛

634件の閲覧回数
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 件の賞賛