Thread (43 messages) flat view 43 messages, 5 authors, 2012-07-19
STALE5162d

[PATCH 5/7] ARM: mxs: convert tx28 board to device tree

From: Shawn Guo <hidden>
Date: 2012-07-15 14:49:35

On Fri, Jul 13, 2012 at 11:21:09AM +0200, Lothar Wa?mann wrote:
Shawn Guo writes:
quoted
Hi Lothar,

On Mon, Jul 09, 2012 at 03:04:53PM +0200, Lothar Wa?mann wrote:
quoted
This doesn't work at least because the pins that are used for PHY
strap options need to be reconfigured for their FEC functionality
after releasing the PHY reset. But even after adding the missing
reconfiguration the ethernet PHY does not work.
Can you please test the branch below to see if ethernet PHY works?
No. See bootlog below.
Thanks for testing, Lothar.  But from the boot log below, the kernel
did a non-DT boot rather than a boot from device tree.  More on this
below.  But does that mean ethernet PHY does not work even on non-DT
kernel right now?
The following patch is required for the kernel to build:
Yes, Marek has reported that.  But I'm not so fond of fixing it right
away like that, since mxs_defconfig has it enabled with board file
support and does not expose the problem.

Instead, I would really like to remove those board files with equivalent
device tree support, and build in mach-mxs.c and ocotp.c all the time.
quoted hunk ↗ jump to hunk
--- a/arch/arm/mach-mxs/Kconfig
+++ b/arch/arm/mach-mxs/Kconfig
@@ -82,6 +82,7 @@ config MODULE_TX28
 	select MXS_HAVE_PLATFORM_MXS_MMC
 	select MXS_HAVE_PLATFORM_MXS_PWM
 	select MXS_HAVE_PLATFORM_RTC_STMP3XXX
+	select MXS_OCOTP
 
 config MODULE_M28
 	bool
quoted
  git://git.linaro.org/people/shawnguo/linux-2.6.git mxs/dt/tx28

I hope I have addressed the issue with pin configuration there.
But I'm not sure if "enet_out" clock needs to be enabled on tx28.
I have enabled it in the code above.  You need to remove
enable_clk_enet_out call from tx28_init, if it's not needed.
ENET_CLK is required on the module.
Ok, got it.
## Booting kernel from Legacy Image at 40100000 ...
   Image Name:   Linux-3.5.0-rc6-next-20120712-ka
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    2277008 Bytes = 2.2 MiB
   Load Address: 40008000
   Entry Point:  40008000
   Verifying Checksum ... OK
   Loading Kernel Image ... OK
OK

Starting kernel ...


Uncompressing Linux... done, booting the kernel.
Booting Linux on physical CPU 0
Linux version 3.5.0-rc6-next-20120712-karo+ (lothar at ipc1) (gcc version 4.5.3 (GCC) ) #5 PREEMPT Fri Jul 13 11:06
:19 CEST 2012
CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177
CPU: VIVT data cache, VIVT instruction cache
Machine: Ka-Ro electronics TX28 module
This line tells that the kernel is doing a traditional non-DT boot.
If the kernel boots from device tree, you should see the following line
instead.

Machine: Freescale i.MX28 (Device Tree), model: Ka-Ro electronics TX28 module

I'm not sure if you have your bootloader passes dtb to kernel or use
append-dtb approach.  In the later case, here are the brief
instructions.

- Enable CONFIG_ARM_APPENDED_DTB and CONFIG_ARM_ATAG_DTB_COMPAT
- Build kernel
- make ARCH=arm imx28-tx28.dtb
- cat arch/arm/boot/zImage arch/arm/boot/imx28-tx28.dtb > arch/arm/boot/zImage_dtb
- Boot zImage_dtb like you boot zImage as usual

-- 
Regards,
Shawn
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help