imx: Kernel not booting with fdt
Hi
I try to boot a current 3.11 kernel on a custom iMX25 board using DT. u-boot starts the kernel but it stops working just after the first eralyprintk lines are out. The u-boot/kernel output:
bootm 0x81000000 - 0x80800000
## Booting kernel from Legacy Image at 81000000 ...
Image Name: Linux-3.10.0
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 3834336 Bytes = 3.7 MiB
Load Address: 80008000
Entry Point: 80008000
Verifying Checksum ... OK## Flattened Device Tree blob at 80800000
Booting using the fdt blob at 0x80800000
Loading Kernel Image ... OK
OK
Loading Device Tree to 8374f000, end 837545d4 ... OK
Starting kernel ...
Uncompressing Linux... done, booting the kernel.
[ 0.000000] Booting Linux on physical CPU 0x0 [ 0.000000] Initializing cgroup subsys cpuset [ 0.000000] Initializing cgroup subsys cpu [ 0.000000] Initializing cgroup subsys cpuacct [ 0.000000] Linux version 3.10.0 (mweisser at ubuntu) (gcc version 4.7.3 (Ubuntu/Linaro 4.7.3-1ubuntu1) ) #4 Tue Jul 2 1 7:13:13 CEST 2013 [ 0.000000] CPU: ARM926EJ-S [41069264] revision 4 (ARMv5TEJ), cr=00053177 [ 0.000000] CPU: VIVT data cache, VIVT instruction cache [ 0.000000] Machine: Generic DT based system, model: Graf-Syteco zmx25 [ 0.000000] bootconsole [earlycon0] enabled [ 0.000000] Memory policy: ECC disabled, Data cache writeback
As this is my first contact with DT I expect a trivial error on my side. Anyone with any hint?
Regards
Matthias
Hi Matthias,
Am 02/07/2013 17:26, schrieb Matthias Wei?er:
Quoted 7 lines
Hi
I try to boot a current 3.11 kernel on a custom iMX25 board using DT. u-boot starts the kernel but it stops working just after the first eralyprintk lines are out. The u-boot/kernel output:
bootm
0x81000000-0x80800000
Never tried with a imx25, but it looks correct and there is enough space between kernel and DT to avoid some corruption.
Quoted 30 lines
## Booting kernel from Legacy Image at 81000000 ...
Image Name: Linux-3.10.0 Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 3834336 Bytes = 3.7 MiBLoad Address: 80008000
Entry Point: 80008000
Verifying Checksum ... OK
## Flattened Device Tree blob at 80800000
Booting using the fdt blob at0x80800000Loading Kernel Image ... OK
OK
Loading Device Tree to8374f000, end837545d4... OKStarting kernel ...
Uncompressing Linux... done, booting the kernel.
[ 0.000000] Booting Linux on physical CPU 0x0 [ 0.000000] Initializing cgroup subsys cpuset [ 0.000000] Initializing cgroup subsys cpu [ 0.000000] Initializing cgroup subsys cpuacct [ 0.000000] Linux version 3.10.0 (mweisser at ubuntu) (gcc version 4.7.3 (Ubuntu/Linaro 4.7.3-1ubuntu1) ) #4 Tue Jul 2 1 7:13:13 CEST 2013 [ 0.000000] CPU: ARM926EJ-S [41069264] revision 4 (ARMv5TEJ), cr=00053177 [ 0.000000] CPU: VIVT data cache, VIVT instruction cache [ 0.000000] Machine: Generic DT based system, model: Graf-Syteco zmx25 [ 0.000000] bootconsole [earlycon0] enabled [ 0.000000] Memory policy: ECC disabled, Data cache writeback
Quoted 2 lines
As this is my first contact with DT I expect a trivial error on my side. Anyone with any hint?
I cannot say a lot - it seems more an issue inside the dts file as how you start the kernel. Maybe you can look in the _log_buf if you get some more info.
Best regards,
Stefano
Signature · 5 lines
===================================================================== DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de =====================================================================
Quoted 23 lines · Matthias Wei?er
Hi
I try to boot a current 3.11 kernel on a custom iMX25 board using DT. u-boot starts the kernel but it stops working just after the first eralyprintk lines are out. The u-boot/kernel output:
bootm
0x81000000-0x80800000
## Booting kernel from Legacy Image at 81000000 ...Image Name: Linux-3.10.0 Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 3834336 Bytes = 3.7 MiBLoad Address: 80008000
Entry Point: 80008000
Verifying Checksum ... OK
## Flattened Device Tree blob at 80800000
Booting using the fdt blob at0x80800000Loading Kernel Image ... OK
OK
Loading Device Tree to8374f000, end837545d4... OKStarting kernel ...
Uncompressing Linux... done, booting the kernel.
Quoted 10 lines
[ 0.000000] Booting Linux on physical CPU 0x0 [ 0.000000] Initializing cgroup subsys cpuset [ 0.000000] Initializing cgroup subsys cpu [ 0.000000] Initializing cgroup subsys cpuacct [ 0.000000] Linux version 3.10.0 (mweisser at ubuntu) (gcc version 4.7.3 (Ubuntu/Linaro 4.7.3-1ubuntu1) ) #4 Tue Jul 2 1 7:13:13 CEST 2013 [ 0.000000] CPU: ARM926EJ-S [41069264] revision 4 (ARMv5TEJ), cr=00053177 [ 0.000000] CPU: VIVT data cache, VIVT instruction cache [ 0.000000] Machine: Generic DT based system, model: Graf-Syteco zmx25
Not sure why you get a "Generic DT based system" here.
Can you post your dts file?
Have you selected CONFIG_MACH_IMX25_DT=y on your kernel config file?
Also, make sure you have "#define CONFIG_OF_LIBFDT" on your U-boot board config file.
Regards,
Fabio Estevam
Quoted 12 lines
[ 0.000000] bootconsole [earlycon0] enabled [ 0.000000] Memory policy: ECC disabled, Data cache writebackAs this is my first contact with DT I expect a trivial error on my side. Anyone with any hint?
Regards
Matthias
_______________________________________________
U-Boot mailing list
U-Boot at lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot
Am 03.07.2013 03:16, schrieb Fabio Estevam:
Quoted 35 lines · Matthias Wei?er
Quoted 23 lines
Hi
I try to boot a current 3.11 kernel on a custom iMX25 board using DT. u-boot starts the kernel but it stops working just after the first eralyprintk lines are out. The u-boot/kernel output:
bootm
0x81000000-0x80800000
## Booting kernel from Legacy Image at 81000000 ...Image Name: Linux-3.10.0 Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 3834336 Bytes = 3.7 MiBLoad Address: 80008000
Entry Point: 80008000
Verifying Checksum ... OK
## Flattened Device Tree blob at 80800000
Booting using the fdt blob at0x80800000Loading Kernel Image ... OK
OK
Loading Device Tree to8374f000, end837545d4... OKStarting kernel ...
Uncompressing Linux... done, booting the kernel.
Quoted 10 lines
[ 0.000000] Booting Linux on physical CPU 0x0 [ 0.000000] Initializing cgroup subsys cpuset [ 0.000000] Initializing cgroup subsys cpu [ 0.000000] Initializing cgroup subsys cpuacct [ 0.000000] Linux version 3.10.0 (mweisser at ubuntu) (gcc version 4.7.3 (Ubuntu/Linaro 4.7.3-1ubuntu1) ) #4 Tue Jul 2 1 7:13:13 CEST 2013 [ 0.000000] CPU: ARM926EJ-S [41069264] revision 4 (ARMv5TEJ), cr=00053177 [ 0.000000] CPU: VIVT data cache, VIVT instruction cache [ 0.000000] Machine: Generic DT based system, model: Graf-Syteco zmx25
Quoted 1 line
Not sure why you get a "Generic DT based system" here.
Isn't that supossed to be the right output for a DT kernel?
Quoted 1 line
Can you post your dts file?
Sure. It is based on imx25-pdk.dts minus nand plus uart2 which is used as debug uart on the system in question.
/dts-v1/;
#include "imx25.dtsi"
/ {
model = "Graf-Syteco zmx25";
compatible = "fsl,zmx25", "fsl,zmx25";
memory {
reg = <0x80000000 0x4000000>;
};
};&uart1 {
status = "okay";
};&uart2 {
status = "okay";
};&fec {
phy-mode = "rmii";
status = "okay";
};Quoted 1 line
Have you selected
CONFIG_MACH_IMX25_DT=yon your kernel config file?
$ cat .config | grep CONFIG_MACH_IMX25_DT CONFIG_MACH_IMX25_DT=y
Confirmed.
Quoted 2 lines
Also, make sure you have "#define
CONFIG_OF_LIBFDT" on your U-boot board config file.
$ cat include/configs/zmx25.h | grep CONFIG_OF_LIBFDT #define CONFIG_OF_LIBFDT
Confirmed.
As the kernel is not crashing but hanging in an endless loop I will try if I can get some additional information via the JTAG debugger.
Regards
Matthias
Hi Matthias,
Quoted 1 line · Matthias Wei?er
Isn't that supossed to be the right output for a DT kernel?
We usually get something like (for a mx6qsabrelite board - I do not have my mx25pdk handy):
Machine: Freescale i.MX6 Quad/DualLite (Device Tree), model: Freescale i.MX6 Quad SABRE Lite Board
The "Generic DT based system" is not usual.
Quoted 9 lines
Sure. It is based on
imx25-pdk.dtsminus nand plus uart2 which is used as debug uart on the system in question./dts-v1/;
#include "imx25.dtsi"/ { model = "Graf-Syteco zmx25"; compatible = "fsl,zmx25", "fsl,zmx25";
Ah, this should be:
compatible = "graf,imx25-zmx25", "fsl,imx25"; (There is no valid match against fsl,zmx25)
Then your dts file should be called 'imx25-zmx25.dts'
Hope this helps.
Regards,
Fabio Estevam
Am 03.07.2013 13:25, schrieb Fabio Estevam:
Quoted 13 lines
The "Generic DT based system" is not usual.
Quoted 9 lines
Sure. It is based on
imx25-pdk.dtsminus nand plus uart2 which is used as debug uart on the system in question./dts-v1/;
#include "imx25.dtsi"/ { model = "Graf-Syteco zmx25"; compatible = "fsl,zmx25", "fsl,zmx25";
Quoted 8 lines
Ah, this should be:
compatible = "graf,imx25-zmx25", "fsl,imx25"; (There is no valid match against fsl,zmx25)
Then your dts file should be called '
imx25-zmx25.dts'Hope this helps.
Yes. Thanks a lot. But why is that? Can you give me an explanation for that or point me to the correct documentation?
Quoted 2 lines · Matthias Wei?er
Yes. Thanks a lot. But why is that? Can you give me an explanation for that or point me to the correct documentation?
Does it boot now?
I think you got "Generic DT based system" because your original entry "fsl,zmx25" is not valid.
There is no FSL processor called zmx25. If you put "fsl,imx25" then it will match.
You can refer to:Documentation/devicetree/bindings/arm/fsl.txt
Am 03.07.2013 16:33, schrieb Fabio Estevam:
Quoted 6 lines · Matthias Wei?er
Quoted 3 lines
Yes. Thanks a lot. But why is that? Can you give me an explanation for that or point me to the correct documentation?
Does it boot now?
Yes, it does. And the output changed to
[ 0.000000] Machine: Freescale i.MX25 (Device Tree Support), model:
Graf-Syteco zmx25
....
Quoted 2 lines
I think you got "Generic DT based system" because your original entry "fsl,zmx25" is not valid.
Now I see. I changed imx25 to zmx25 for both the "board" and the processor which is clearly wrong. Thanks a lot.
Regards
Matthias