[PASEMI] Nemo board doesn't recognize any ATA disks with the pci-v5.16 updates

Christian Zigotzky chzigotzky at xenosoft.de
Sat Nov 13 02:05:46 AEDT 2021


Am 12.11.21 um 16:01 schrieb Christian Zigotzky:
> Am 12.11.21 um 15:46 schrieb Marc Zyngier:
>> On Fri, 12 Nov 2021 14:15:18 +0000,
>> Christian Zigotzky <chzigotzky at xenosoft.de> wrote:
>>> On 12 November 2021 at 02:41 pm, Marc Zyngier wrote:
>>>> On Fri, 12 Nov 2021 09:40:30 +0000,
>>>> Christian Zigotzky <chzigotzky at xenosoft.de> wrote:
>>>>> On 11 November 2021 at 06:39 pm, Marc Zyngier wrote:
>>>>>> On Wed, 10 Nov 2021 18:07:24 +0000,
>>>>>> Christian Zigotzky <chzigotzky at xenosoft.de> wrote:
>>>>>>> On 09 November 2021 at 03:45 pm, Christian Zigotzky wrote:
>>>>>>>> Hello,
>>>>>>>>
>>>>>>>> The Nemo board [1] doesn't recognize any ATA disks with the
>>>>>>> pci-v5.16 updates [2].
>>>>>>>> Error messages:
>>>>>>>>
>>>>>>>> ata4.00: gc timeout cmd 0xec
>>>>>>>> ata4.00: failed to IDENTIFY (I/O error, error_mask=0x4)
>>>>>>>> ata1.00: gc timeout cmd 0xec
>>>>>>>> ata1.00: failed to IDENTIFY (I/O error, error_mask=0x4)
>>>>>>>> ata3.00: gc timeout cmd 0xec
>>>>>>>> ata3.00: failed to IDENTIFY (I/O error, error_mask=0x4)
>>>>>>>>
>>>>>>>> I was able to revert the new pci-v5.16 updates [2]. After a new
>>>>>>> compiling, the kernel recognize all ATA disks correctly.
>>>>>>>> Could you please check the pci-v5.16 updates [2]?
>>>>>>>>
>>>>>>>> Please find attached the kernel config.
>>>>>>>>
>>>>>>>> Thanks,
>>>>>>>> Christian
>>>>>>>>
>>>>>>>> [1] https://en.wikipedia.org/wiki/AmigaOne_X1000
>>>>>>>> [2]
>>>>>>> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=0c5c62ddf88c34bc83b66e4ac9beb2bb0e1887d4 
>>>>>>>
>>>>>>>
>>>>>>> Hi All,
>>>>>>>
>>>>>>> Many thanks for your nice responses.
>>>>>>>
>>>>>>> I bisected today [1]. 0412841812265734c306ba5ef8088bcb64d5d3bd
>>>>>>> (of/irq: Allow matching of an interrupt-map local to an interrupt
>>>>>>> controller) [2] is the first bad commit.
>>>>>> Can you please give the following hack a go and post the result
>>>>>> (including the full dmesg)?
>>>>>>
>>>>>> Thanks,
>>>>>>
>>>>>>     M.
>>>>>> diff --git a/drivers/of/irq.c b/drivers/of/irq.c
>>>>>> index 32be5a03951f..8cf0cc9b7caf 100644
>>>>>> --- a/drivers/of/irq.c
>>>>>> +++ b/drivers/of/irq.c
>>>>>> @@ -156,14 +156,15 @@ int of_irq_parse_raw(const __be32 *addr, 
>>>>>> struct of_phandle_args *out_irq)
>>>>>>           /* Now start the actual "proper" walk of the interrupt 
>>>>>> tree */
>>>>>>         while (ipar != NULL) {
>>>>>> +        bool intc = of_property_read_bool(ipar, 
>>>>>> "interrupt-controller");
>>>>>> +
>>>>>>             /*
>>>>>>              * Now check if cursor is an interrupt-controller and
>>>>>>              * if it is then we are done, unless there is an
>>>>>>              * interrupt-map which takes precedence.
>>>>>>              */
>>>>>>             imap = of_get_property(ipar, "interrupt-map", &imaplen);
>>>>>> -        if (imap == NULL &&
>>>>>> -            of_property_read_bool(ipar, "interrupt-controller")) {
>>>>>> +        if (imap == NULL && intc) {
>>>>>>                 pr_debug(" -> got it !\n");
>>>>>>                 return 0;
>>>>>>             }
>>>>>> @@ -244,8 +245,14 @@ int of_irq_parse_raw(const __be32 *addr, 
>>>>>> struct of_phandle_args *out_irq)
>>>>>>                   pr_debug(" -> imaplen=%d\n", imaplen);
>>>>>>             }
>>>>>> -        if (!match)
>>>>>> +        if (!match) {
>>>>>> +            if (intc) {
>>>>>> +                pr_info("%pOF interrupt-map failed, using 
>>>>>> interrupt-controller\n", ipar);
>>>>>> +                return 0;
>>>>>> +            }
>>>>>> +
>>>>>>                 goto fail;
>>>>>> +        }
>>>>>>               /*
>>>>>>              * Successfully parsed an interrrupt-map translation; 
>>>>>> copy new
>>>>>>
>>>>> The detecting of the ATA disks works with this patch! Well done!
>>>>> Thanks a lot!
>>>> Thanks for testing it. I'll turn that into a proper patch.
>>>>
>>>>     M.
>>>>
>>> Could you please explain your patch?
>> Please refer to the commit message[1].
>>
>>> I am not a developer. I work for the A-EON Linux FLS.
>> I have no idea what this is, unfortunately.
>>
>>     M.
>>
>> [1] https://lore.kernel.org/r/20211112143644.434995-1-maz@kernel.org
>>
> FLS: First Level Support (IT customer support)
> SLS: Second Level Support (administrators)
> TLS: Third Level Support (developers -> you)
>
> I have to explain our customers why the kernel doesn't detect their 
> ATA disks anymore. :-D But it is fixed and I don't need to explain it.
>
> Thanks a lot for your help.
>
> - Christian
Typos


More information about the Linuxppc-dev mailing list