[PATCH] arm/igep0020: fix IGEPv2 boot
Gilles Chanteperdrix
gilles.chanteperdrix at xenomai.org
Mon Apr 7 13:39:37 PDT 2014
On 04/07/2014 01:45 AM, Javier Martinez Canillas wrote:
> Hello,
>
> On Sun, Apr 6, 2014 at 11:12 PM, Gilles Chanteperdrix
> <gilles.chanteperdrix at xenomai.org> wrote:
>> On 04/06/2014 10:04 PM, Javier Martinez Canillas wrote:
>>> Hello Giles,
>>
>> Hi,
>>
>>> It looks suspiciously similar to an issue we had due some DT clock
>>> changes were the IGEPv2 (or any board that used the "ti,omap3"
>>> compatible string) were initialized as omap3430 instead of omap3630
>>> thus using omap3430 clock data which left the UART4 uninitialized.
>>>
>>> I fixed that particular issue on commit fb0cfec ("ARM: dts:
>>> omap3-igep: fix boot fail due wrong compatible match") which was
>>> merged on v3.14-rc6 so it should be on your v3.14 kernel so maybe is a
>>> different issue.
>>>
>>> I wonder why you are having this issue though since I didn't have that
>>> problem with 3.14 as far as I can remember.
>>>
>>> Can you provide me the exact commit id of your HEAD? or is just the
>>> tagged v3.14 commit?
>>
>> It is the tagged v3.14 commit, with omap2plus_defconfig configuration
>> My IGEPv2 does not have an omap3630, but a 3530.
>>
>> The boot logs say:
>> [ 0.000000] OMAP3430/3530 ES3.1 (l2cache iva sgx neon isp )
>>
>
> Then in your case is the exact opposite, that commit seems to broke
> your board since now it is initialized as an omap3630 instead of an
> omap3430. So you need to change the compatible string:
>
> --- a/arch/arm/boot/dts/omap3-igep0020.dts
> +++ b/arch/arm/boot/dts/omap3-igep0020.dts
> @@ -14,7 +14,7 @@
>
> / {
> model = "IGEPv2 (TI OMAP AM/DM37x)";
> - compatible = "isee,omap3-igep0020", "ti,omap36xx", "ti,omap3";
> + compatible = "isee,omap3-igep0020", "ti,omap3";
>
> leds {
> pinctrl-names = "default";
>
That is not sufficient. In order to avoid the kernel oops, I have to
include omap34xx-hs.dtsi instead of omap36xx.dtsi in omap3-igep.dtsi. As
far as I understand, omap36xx.dtsi gets the uart4 declared, and this is
what is causing the oops.
> The problem is that there are too many IGEP boards revisions that use
> use different SoC (DM3730 or OMAP3530), flash memory type (OneNAND or
> NAND), memory sizes and connectivity (with or without wifi chip).
>
> So to support all different combinations with DeviceTree mean that an
> exponential number of dts/dtsi is needed to describe each variation so
> I decided to only support the most common versions:
>
> - IGEPv2 with DM3730, NAND, wifi and 512MB of RAM.
> - IGEP COM Module with DM3730, NAND, wifi and 512MB of RAM.
>
> And companies using IGEP boards and mainline could use it as a
> reference and adapt the DTS to match their board revision.
I have done that, I created omap3-igep0020-3430.dts, and it works fine.
>
> Honestly I didn't know that there were mainline users using the old
> omap3530 IGEPv2 so I'll prepare some patches to support both DM3730
> and OMAP3530 versions.
It still works, no need to change it ;-)
Regards.
--
Gilles.
More information about the linux-arm-kernel
mailing list