Hi, Grant,
On Fri, Jan 28, 2011 at 3:57 PM, Jason Hui jason.hui@linaro.org wrote:
Hi, Grant and Nico,
On Fri, Jan 28, 2011 at 2:51 AM, Nicolas Pitre nicolas.pitre@linaro.org wrote:
On Thu, 27 Jan 2011, Grant Likely wrote:
2011/1/26 Grant Likely grant.likely@secretlab.ca:
On Wed, Jan 26, 2011 at 2:49 PM, Nicolas Pitre nicolas.pitre@linaro.org wrote:
On Wed, 26 Jan 2011, Grant Likely wrote:
If I were able to get all the supported Linaro platforms modified and tested to support dt booting, would you be okay with picking up the current dt support series and having CONFIG_OF turned on by default for the next Linaro release? There are also some details to nail down with respect to packaging the .dtb files, but I'm working out those details with Loďc.
May I ask you to create a linaro-2.6.37 branch in your repo based on git://git.linaro.org/kernel/linux-linaro-2.6.37.git and merge your DT branch in it? If the result look sane to you then I should be able to merge it in the current Linaro kernel for people to play with.
Done. My branch is based on 2.6.38-rc1, so I cherry picked rather than rebased. The first two commits are in Linus' tree, the remainder are from devicetree/arm. You can find the result here:
Oops, I've run into a bug. Hold off on this for the moment until I dig it out and squash it.
No problem. I hadn't pushed it out yet.
I have run into one problem when play with DT support on MX51, here is what I'm doing,
- Enable CONFIG_OF_LIBFDT in u-boot and build for mx51evk,
+#define CONFIG_OF_LIBFDT +#define CONFIG_SYS_BOOTMAPSZ 0x800000
Add mx51-dt.c in kernel to add mx51 dt probe and support,
Build the kernel and uboot, no problem,
run uboot with DT support, log as the followings,
## Booting kernel from Legacy Image at 90800000 ... Image Name: Linux-2.6.37-rc7+ Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 1866572 Bytes = 1.8 MiB Load Address: 90008000 Entry Point: 90008000 Verifying Checksum ... OK ## Flattened Device Tree blob at 90000000 Booting using the fdt blob at 0x90000000 Loading Kernel Image ... OK OK Loading Device Tree to 907fc000, end 907ff6f1 ... OK
Starting kernel ...
Uncompressing Linux... done, booting the kernel.
No message output, but if print log_buf, here is the log information,
dump /W 0xC03B550C..0xC03B650C
+0x0 +0x4 +0x8 +0xC ------------------------------------------------ S:0xC03B5500 4C3E353C <5>L S:0xC03B5510 78756E69 72657620 6E6F6973 362E3220 inux version 2.6 S:0xC03B5520 2D37332E 2B376372 36722820 33343334 .37-rc7+ (r64343 S:0xC03B5530 34367240 2D333433 6B736564 29706F74 @r64343-desktop) S:0xC03B5540 63672820 65762063 6F697372 2E34206E (gcc version 4. S:0xC03B5550 20332E33 756F5328 72656372 2B472079 3.3 (Sourcery G+ S:0xC03B5560 694C202B 32206574 71393030 30322D31 + Lite 2009q1-20 S:0xC03B5570 29202933 20342320 20697246 206E614A 3) ) #4 Fri Jan S:0xC03B5580 31203832 30313A35 2031303A 20545343 28 15:10:01 CST S:0xC03B5590 31313032 3E343C0A 3A555043 4D524120 2011.<4>CPU: ARM S:0xC03B55A0 50203776 65636F72 726F7373 31345B20 v7 Processor [41 S:0xC03B55B0 30636632 205D3538 69766572 6E6F6973 2fc085] revision S:0xC03B55C0 28203520 764D5241 202C2937 313D7263 5 (ARMv7), cr=1 S:0xC03B55D0 33356330 0A663763 433E343C 203A5550 0c53c7f.<4>CPU: S:0xC03B55E0 54504956 6E6F6E20 61696C61 676E6973 VIPT nonaliasing S:0xC03B55F0 74616420 61632061 2C656863 50495620 data cache, VIP S:0xC03B5600 6C612054 69736169 6920676E 7274736E T aliasing instr S:0xC03B5610 69746375 63206E6F 65686361 0000000A uction cache....
After narrow down the issue I found the error happen in the function,
struct machine_desc * __init setup_machine_fdt(unsigned int dt_phys) { struct boot_param_header *devtree; struct machine_desc *mdesc, *mdesc_best = NULL; unsigned int score, mdesc_score = ~1; unsigned long dt_root;
devtree = phys_to_virt(dt_phys);
.....
here the dt_phys is 0,
I did the following modification, which make the basic DT support boot up on MX51 board,
- Let uboot pass MACH_TYPE_DT to kernel via r1, - Add the following patch to make sure DT blob is mapped by MMU
+#ifdef CONFIG_OF_FLATTREE*/ + /* Make sure DT blob is mapped */ + mov r0, r2 + mov r0, r0, lsr #20 + mov r0, r0, lsl #20 + sub r3, r0, #PHYS_OFFSET + add r3, r3, #PAGE_OFFSET + add r3, r4, r3, lsr #18 + orr r6, r7, r0 + str r6, [r3] + add r6, r6, #0x100000 + str r6, [r3, #4] #ifdef CONFIG_DEBUG_LL #ifndef CONFIG_DEBUG_ICEDCC
BR, Jason Liu
Nicolas _______________________________________________ linaro-dev mailing list linaro-dev@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-dev