[Letux-kernel] omap-gpmc gta04 regression 4.7-rc1

Belisko Marek marek.belisko at gmail.com
Wed Jun 15 10:16:05 CEST 2016


Hi Roger,

On Wed, Jun 15, 2016 at 8:59 AM, Roger Quadros <rogerq at ti.com> wrote:
> On 14/06/16 23:10, H. Nikolaus Schaller wrote:
>> Hi,
>>
>>> Am 14.06.2016 um 20:17 schrieb H. Nikolaus Schaller <hns at goldelico.com>:
>>>
>>> Hi Roger,
>>>
>>>> Am 08.06.2016 um 12:05 schrieb Roger Quadros <rogerq at ti.com>:
>>>>
>>>
>>>>
>>>> one at https://github.com/goldelico/gta04-kernel/blob/letux-4.7-rc1/arch/arm/boot/dts/omap3-gta04.dtsi#L602
>>>> &gpmc {
>>>>     ranges = <0 0 0x30000000 0x1000000>; /* CS0: 16MB for NAND */
>>>>
>>>>     nand at 0,0 {
>>>>             compatible = "ti,omap2-nand";
>>>>             reg = <0 0 4>; /* CS0, offset 0, IO size 4 */
>>>>
>>>> and again at https://github.com/goldelico/gta04-kernel/blob/letux-4.7-rc1/arch/arm/boot/dts/omap3-gta04.dtsi#L1122
>>>
>>> Therefore we merge on top of linus/master a private patch which - for simplicity (it is very difficult to track changes
>>> in the middle of a DT) it appends a second &gmpc node and relies on the DTC to do what should have been (will
>>> have been) merged in source code.
>>>
>>> Without these patches (introduced on our private kernel in 3.19) NAND did not work.
>>>
>>>> &gpmc {
>>>>     ranges = <0 0 0x30000000 0x04>; /* CS0: NAND */
>>>>
>>>>     nand at 0,0 {
>>>>             reg = <0 0 0>; /* CS0, offset 0 */
>>>>             ti,nand-ecc-opt = "sw"; /* stay compatible with our old u-boot (does not support bch8) */
>>>>
>>>>             kernel at 280000 {
>>>>                     reg = <0x280000 0x600000>;
>>>>             };
>>>>
>>>>             filesystem at a80000 {
>>>>                     reg = <0x880000 0>;     /* 0 = MTDPART_SIZ_FULL */
>>>>             };
>>>>     };
>>>> };
>>>>
>>>>
>>>> In the latter part ranges and reg property is wrong. Just get rid of it.
>>>
>>> No, they work on our setup. The original ranges / reg setting did not work.
>>
>> I have found what went wrong.
>>
>> There was upstream commit e2c5eb78a3cc9b0d69ae924c33da50a4cd6d1fa4 which
>> did fix these ranges, but we didn't get really aware of this change.
>>
>> Almost at the same time we rearranged the device tree file as described - starting with
>> our local copy which we thought to be correct.
>>
>> During rearrangement we found a discrepancy between what we had been working on
>> before and what we did find in linux/master. So we did falsely assume that we were right
>> and not linus/master and need to upstream this diff later on (which never happened). Hence
>> the diff was added to the second &gpmc node starting to make problems in 4.7-rc1.
>>
>> So you are right that we should try to get rid of the ranges / reg modification, if it passes tests.
>> And hopefully the gpio problem disappears with this.
>
> There are two separate issues.
> 1) GPIO-irqchip failing on an unrelated GPIO due to a bug in gpio irqchip code. This triggers
> when the GPMC CS resource allocation fails.
> This is fixed in v4.7-rc3 with the below 2 commits
> http://git.kernel.org/cgit/linux/kernel/git/linusw/linux-gpio.git/commit/?h=fixes&id=11f33a6d15bfa397867ac0d7f3481b6dd683286f
> http://git.kernel.org/cgit/linux/kernel/git/linusw/linux-gpio.git/commit/?h=fixes&id=f4833b8cc7edab57d3f3033e549111a546c2e02b
Gpio issue is fixed by those 2 commits (I verified that)
>
> 2) GPMC CS resource failing
> This is because of the invalid ranges property. This must be fixed in your local patches.
Also I fix range property and we have NAND probed again. Thanks.
>
> --
> cheers,
> -roger

BR,

marek

-- 
as simple and primitive as possible
-------------------------------------------------
Marek Belisko - OPEN-NANDRA
Freelance Developer

Ruska Nova Ves 219 | Presov, 08005 Slovak Republic
Tel: +421 915 052 184
skype: marekwhite
twitter: #opennandra
web: http://open-nandra.com


More information about the Letux-kernel mailing list