diff mbox series

arm: gic-v3-its: Add irq UCLASS_DRIVER

Message ID 20200909081444.2573-1-priyanka.jain@nxp.com
State New
Headers show
Series arm: gic-v3-its: Add irq UCLASS_DRIVER | expand

Commit Message

Priyanka Jain Sept. 9, 2020, 8:14 a.m. UTC
This is required to fix
"Error binding driver 'gic-v3': -96"
on lx2160a platforms.

Signed-off-by: Priyanka Jain <priyanka.jain@nxp.com>

---
 arch/arm/lib/gic-v3-its.c | 5 +++++
 1 file changed, 5 insertions(+)

-- 
2.17.1

Comments

Stefan Roese Sept. 9, 2020, 8:27 a.m. UTC | #1
On 09.09.20 10:14, Priyanka Jain wrote:
> This is required to fix

> "Error binding driver 'gic-v3': -96"

> on lx2160a platforms.

> 

> Signed-off-by: Priyanka Jain <priyanka.jain@nxp.com>

> ---

>   arch/arm/lib/gic-v3-its.c | 5 +++++

>   1 file changed, 5 insertions(+)

> 

> diff --git a/arch/arm/lib/gic-v3-its.c b/arch/arm/lib/gic-v3-its.c

> index a1657e3853..6c6b7c430c 100644

> --- a/arch/arm/lib/gic-v3-its.c

> +++ b/arch/arm/lib/gic-v3-its.c

> @@ -208,3 +208,8 @@ U_BOOT_DRIVER(gic_lpi_syscon) = {

>   	.id		= UCLASS_SYSCON,

>   	.of_match	= gic_lpi_syscon_ids,

>   };

> +

> +UCLASS_DRIVER(irq) = {

> +	.id = UCLASS_IRQ,

> +	.name = "irq",

> +};


I tested this on LX2160 and get this error when booting into Linux:

    Loading Device Tree to 000000009fff6000, end 000000009fffff3e ... OK
gic_v3_its_get_gic_lpi_addr: failed to get gic-lpi-base syscon device

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd083]

I did not look closely yet. Any idea whats going wrong here?

Thanks,
Stefan
Rayagonda Kokatanur Sept. 9, 2020, 5:15 p.m. UTC | #2
Hi Stefan,

On Wed, Sep 9, 2020 at 1:57 PM Stefan Roese <sr@denx.de> wrote:
>

> On 09.09.20 10:14, Priyanka Jain wrote:

> > This is required to fix

> > "Error binding driver 'gic-v3': -96"

> > on lx2160a platforms.

> >

> > Signed-off-by: Priyanka Jain <priyanka.jain@nxp.com>

> > ---

> >   arch/arm/lib/gic-v3-its.c | 5 +++++

> >   1 file changed, 5 insertions(+)

> >

> > diff --git a/arch/arm/lib/gic-v3-its.c b/arch/arm/lib/gic-v3-its.c

> > index a1657e3853..6c6b7c430c 100644

> > --- a/arch/arm/lib/gic-v3-its.c

> > +++ b/arch/arm/lib/gic-v3-its.c

> > @@ -208,3 +208,8 @@ U_BOOT_DRIVER(gic_lpi_syscon) = {

> >       .id             = UCLASS_SYSCON,

> >       .of_match       = gic_lpi_syscon_ids,

> >   };

> > +

> > +UCLASS_DRIVER(irq) = {

> > +     .id = UCLASS_IRQ,

> > +     .name = "irq",

> > +};

>

> I tested this on LX2160 and get this error when booting into Linux:

>

>     Loading Device Tree to 000000009fff6000, end 000000009fffff3e ... OK

> gic_v3_its_get_gic_lpi_addr: failed to get gic-lpi-base syscon device

>

> Starting kernel ...

>

> [    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd083]

>

> I did not look closely yet. Any idea whats going wrong here?


I added the following patch to use UCLASS_SYSCON to get gic lpi details.

commit id - 2ae7adc659f7fca9ea65df4318e5bca2b8274310

because the above commit is failing, hence we need this patch.
When I tested this I didn't face any issue hence didn't push the above change.
In my case it was failing only in the lower uboot version without this patch.

Best regards,
Rayagonda


>

> Thanks,

> Stefan
Stefan Roese Sept. 10, 2020, 5:23 a.m. UTC | #3
Hi Rayagonda,

On 09.09.20 19:15, Rayagonda Kokatanur wrote:
> Hi Stefan,

> 

> On Wed, Sep 9, 2020 at 1:57 PM Stefan Roese <sr@denx.de> wrote:

>>

>> On 09.09.20 10:14, Priyanka Jain wrote:

>>> This is required to fix

>>> "Error binding driver 'gic-v3': -96"

>>> on lx2160a platforms.

>>>

>>> Signed-off-by: Priyanka Jain <priyanka.jain@nxp.com>

>>> ---

>>>    arch/arm/lib/gic-v3-its.c | 5 +++++

>>>    1 file changed, 5 insertions(+)

>>>

>>> diff --git a/arch/arm/lib/gic-v3-its.c b/arch/arm/lib/gic-v3-its.c

>>> index a1657e3853..6c6b7c430c 100644

>>> --- a/arch/arm/lib/gic-v3-its.c

>>> +++ b/arch/arm/lib/gic-v3-its.c

>>> @@ -208,3 +208,8 @@ U_BOOT_DRIVER(gic_lpi_syscon) = {

>>>        .id             = UCLASS_SYSCON,

>>>        .of_match       = gic_lpi_syscon_ids,

>>>    };

>>> +

>>> +UCLASS_DRIVER(irq) = {

>>> +     .id = UCLASS_IRQ,

>>> +     .name = "irq",

>>> +};

>>

>> I tested this on LX2160 and get this error when booting into Linux:

>>

>>      Loading Device Tree to 000000009fff6000, end 000000009fffff3e ... OK

>> gic_v3_its_get_gic_lpi_addr: failed to get gic-lpi-base syscon device

>>

>> Starting kernel ...

>>

>> [    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd083]

>>

>> I did not look closely yet. Any idea whats going wrong here?

> 

> I added the following patch to use UCLASS_SYSCON to get gic lpi details.

> 

> commit id - 2ae7adc659f7fca9ea65df4318e5bca2b8274310

> 

> because the above commit is failing, hence we need this patch.

> When I tested this I didn't face any issue hence didn't push the above change.

> In my case it was failing only in the lower uboot version without this patch.


What's the "lower uboot version"?

In any case, it's failing now on the lx2160, since no SYSCON device is
found:

$ git grep "gic-lpi-base"
arch/arm/lib/gic-v3-its.c:      { .compatible = "gic-lpi-base" },
arch/arm/lib/gic-v3-its.c:      .name           = "gic-lpi-base",

So no device is providing this compatible in the dts anywhere. Or am I
missing something?

Thanks,
Stefan
Rayagonda Kokatanur Sept. 10, 2020, 5:58 a.m. UTC | #4
Hi Stefan,

On Thu, Sep 10, 2020 at 10:53 AM Stefan Roese <sr@denx.de> wrote:
>

> Hi Rayagonda,

>

> On 09.09.20 19:15, Rayagonda Kokatanur wrote:

> > Hi Stefan,

> >

> > On Wed, Sep 9, 2020 at 1:57 PM Stefan Roese <sr@denx.de> wrote:

> >>

> >> On 09.09.20 10:14, Priyanka Jain wrote:

> >>> This is required to fix

> >>> "Error binding driver 'gic-v3': -96"

> >>> on lx2160a platforms.

> >>>

> >>> Signed-off-by: Priyanka Jain <priyanka.jain@nxp.com>

> >>> ---

> >>>    arch/arm/lib/gic-v3-its.c | 5 +++++

> >>>    1 file changed, 5 insertions(+)

> >>>

> >>> diff --git a/arch/arm/lib/gic-v3-its.c b/arch/arm/lib/gic-v3-its.c

> >>> index a1657e3853..6c6b7c430c 100644

> >>> --- a/arch/arm/lib/gic-v3-its.c

> >>> +++ b/arch/arm/lib/gic-v3-its.c

> >>> @@ -208,3 +208,8 @@ U_BOOT_DRIVER(gic_lpi_syscon) = {

> >>>        .id             = UCLASS_SYSCON,

> >>>        .of_match       = gic_lpi_syscon_ids,

> >>>    };

> >>> +

> >>> +UCLASS_DRIVER(irq) = {

> >>> +     .id = UCLASS_IRQ,

> >>> +     .name = "irq",

> >>> +};

> >>

> >> I tested this on LX2160 and get this error when booting into Linux:

> >>

> >>      Loading Device Tree to 000000009fff6000, end 000000009fffff3e ... OK

> >> gic_v3_its_get_gic_lpi_addr: failed to get gic-lpi-base syscon device

> >>

> >> Starting kernel ...

> >>

> >> [    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd083]

> >>

> >> I did not look closely yet. Any idea whats going wrong here?

> >

> > I added the following patch to use UCLASS_SYSCON to get gic lpi details.

> >

> > commit id - 2ae7adc659f7fca9ea65df4318e5bca2b8274310

> >

> > because the above commit is failing, hence we need this patch.

> > When I tested this I didn't face any issue hence didn't push the above change.

> > In my case it was failing only in the lower uboot version without this patch.

>

> What's the "lower uboot version"?


U-Boot 2020.01 version.

>

> In any case, it's failing now on the lx2160, since no SYSCON device is

> found:

>

> $ git grep "gic-lpi-base"

> arch/arm/lib/gic-v3-its.c:      { .compatible = "gic-lpi-base" },

> arch/arm/lib/gic-v3-its.c:      .name           = "gic-lpi-base",

>

> So no device is providing this compatible in the dts anywhere. Or am I

> missing something?


If you apply this patch it will work.
Please let me know if anything more is required or if this patch is
the not right way to address the issue.

Thank,
Rayagonda


>

> Thanks,

> Stefan
Stefan Roese Sept. 10, 2020, 7:46 a.m. UTC | #5
On 10.09.20 07:58, Rayagonda Kokatanur wrote:
> Hi Stefan,

> 

> On Thu, Sep 10, 2020 at 10:53 AM Stefan Roese <sr@denx.de> wrote:

>>

>> Hi Rayagonda,

>>

>> On 09.09.20 19:15, Rayagonda Kokatanur wrote:

>>> Hi Stefan,

>>>

>>> On Wed, Sep 9, 2020 at 1:57 PM Stefan Roese <sr@denx.de> wrote:

>>>>

>>>> On 09.09.20 10:14, Priyanka Jain wrote:

>>>>> This is required to fix

>>>>> "Error binding driver 'gic-v3': -96"

>>>>> on lx2160a platforms.

>>>>>

>>>>> Signed-off-by: Priyanka Jain <priyanka.jain@nxp.com>

>>>>> ---

>>>>>     arch/arm/lib/gic-v3-its.c | 5 +++++

>>>>>     1 file changed, 5 insertions(+)

>>>>>

>>>>> diff --git a/arch/arm/lib/gic-v3-its.c b/arch/arm/lib/gic-v3-its.c

>>>>> index a1657e3853..6c6b7c430c 100644

>>>>> --- a/arch/arm/lib/gic-v3-its.c

>>>>> +++ b/arch/arm/lib/gic-v3-its.c

>>>>> @@ -208,3 +208,8 @@ U_BOOT_DRIVER(gic_lpi_syscon) = {

>>>>>         .id             = UCLASS_SYSCON,

>>>>>         .of_match       = gic_lpi_syscon_ids,

>>>>>     };

>>>>> +

>>>>> +UCLASS_DRIVER(irq) = {

>>>>> +     .id = UCLASS_IRQ,

>>>>> +     .name = "irq",

>>>>> +};

>>>>

>>>> I tested this on LX2160 and get this error when booting into Linux:

>>>>

>>>>       Loading Device Tree to 000000009fff6000, end 000000009fffff3e ... OK

>>>> gic_v3_its_get_gic_lpi_addr: failed to get gic-lpi-base syscon device

>>>>

>>>> Starting kernel ...

>>>>

>>>> [    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd083]

>>>>

>>>> I did not look closely yet. Any idea whats going wrong here?

>>>

>>> I added the following patch to use UCLASS_SYSCON to get gic lpi details.

>>>

>>> commit id - 2ae7adc659f7fca9ea65df4318e5bca2b8274310

>>>

>>> because the above commit is failing, hence we need this patch.

>>> When I tested this I didn't face any issue hence didn't push the above change.

>>> In my case it was failing only in the lower uboot version without this patch.

>>

>> What's the "lower uboot version"?

> 

> U-Boot 2020.01 version.

> 

>>

>> In any case, it's failing now on the lx2160, since no SYSCON device is

>> found:

>>

>> $ git grep "gic-lpi-base"

>> arch/arm/lib/gic-v3-its.c:      { .compatible = "gic-lpi-base" },

>> arch/arm/lib/gic-v3-its.c:      .name           = "gic-lpi-base",

>>

>> So no device is providing this compatible in the dts anywhere. Or am I

>> missing something?

> 

> If you apply this patch it will work.


This patch is already applied.

> Please let me know if anything more is required or if this patch is

> the not right way to address the issue.


Again, its not working, as no device is providing "gic-lpi-base" AFICT.

Thanks,
Stefan
Rayagonda Kokatanur Sept. 10, 2020, 8:13 a.m. UTC | #6
Hi Stefan,

On Thu, Sep 10, 2020, 1:16 PM Stefan Roese <sr@denx.de> wrote:

> On 10.09.20 07:58, Rayagonda Kokatanur wrote:

> > Hi Stefan,

> >

> > On Thu, Sep 10, 2020 at 10:53 AM Stefan Roese <sr@denx.de> wrote:

> >>

> >> Hi Rayagonda,

> >>

> >> On 09.09.20 19:15, Rayagonda Kokatanur wrote:

> >>> Hi Stefan,

> >>>

> >>> On Wed, Sep 9, 2020 at 1:57 PM Stefan Roese <sr@denx.de> wrote:

> >>>>

> >>>> On 09.09.20 10:14, Priyanka Jain wrote:

> >>>>> This is required to fix

> >>>>> "Error binding driver 'gic-v3': -96"

> >>>>> on lx2160a platforms.

> >>>>>

> >>>>> Signed-off-by: Priyanka Jain <priyanka.jain@nxp.com>

> >>>>> ---

> >>>>>     arch/arm/lib/gic-v3-its.c | 5 +++++

> >>>>>     1 file changed, 5 insertions(+)

> >>>>>

> >>>>> diff --git a/arch/arm/lib/gic-v3-its.c b/arch/arm/lib/gic-v3-its.c

> >>>>> index a1657e3853..6c6b7c430c 100644

> >>>>> --- a/arch/arm/lib/gic-v3-its.c

> >>>>> +++ b/arch/arm/lib/gic-v3-its.c

> >>>>> @@ -208,3 +208,8 @@ U_BOOT_DRIVER(gic_lpi_syscon) = {

> >>>>>         .id             = UCLASS_SYSCON,

> >>>>>         .of_match       = gic_lpi_syscon_ids,

> >>>>>     };

> >>>>> +

> >>>>> +UCLASS_DRIVER(irq) = {

> >>>>> +     .id = UCLASS_IRQ,

> >>>>> +     .name = "irq",

> >>>>> +};

> >>>>

> >>>> I tested this on LX2160 and get this error when booting into Linux:

> >>>>

> >>>>       Loading Device Tree to 000000009fff6000, end 000000009fffff3e

> ... OK

> >>>> gic_v3_its_get_gic_lpi_addr: failed to get gic-lpi-base syscon device

> >>>>

> >>>> Starting kernel ...

> >>>>

> >>>> [    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd083]

> >>>>

> >>>> I did not look closely yet. Any idea whats going wrong here?

> >>>

> >>> I added the following patch to use UCLASS_SYSCON to get gic lpi

> details.

> >>>

> >>> commit id - 2ae7adc659f7fca9ea65df4318e5bca2b8274310

> >>>

> >>> because the above commit is failing, hence we need this patch.

> >>> When I tested this I didn't face any issue hence didn't push the above

> change.

> >>> In my case it was failing only in the lower uboot version without this

> patch.

> >>

> >> What's the "lower uboot version"?

> >

> > U-Boot 2020.01 version.

> >

> >>

> >> In any case, it's failing now on the lx2160, since no SYSCON device is

> >> found:

> >>

> >> $ git grep "gic-lpi-base"

> >> arch/arm/lib/gic-v3-its.c:      { .compatible = "gic-lpi-base" },

> >> arch/arm/lib/gic-v3-its.c:      .name           = "gic-lpi-base",

> >>

> >> So no device is providing this compatible in the dts anywhere. Or am I

> >> missing something?

> >

> > If you apply this patch it will work.

>

> This patch is already applied.

>

> > Please let me know if anything more is required or if this patch is

> > the not right way to address the issue.

>

> Again, its not working, as no device is providing "gic-lpi-base" AFICT.

>


Please add dt node which defines "gic-lpi-base" and other details.
@Priyanka Jain <priyanka.jain@nxp.com>  - can you please provide dt node
added for your platform lx2160a.

For ex -

gic_lpi_base: syscon@0x8ad70000 {
    compatible = "gic-lpi-base";
    reg = <0x0 0x8ad70000 0x0 0x90000>;
    max-gic-redistributors = <8>;
};

scr {
    compatible = "simple-bus";
    #address-cells = <1>;
    #size-cells = <1>;
    ranges = <0x0 0x0 0x61000000 0x05000000>;

    gic: interrupt-controller@2c00000 {
        compatible = "arm,gic-v3";
        #interrupt-cells = <3>;
        #address-cells = <1>;
        #size-cells = <1>;
        ranges;
        interrupt-controller;
        reg = <0x02c00000 0x010000>, /* GICD */
                 <0x02e00000 0x600000>; /* GICR */
        regmap = <&gic_lpi_base>;

        gic_its: gic-its@63c20000 {
            compatible = "arm,gic-v3-its";
            msi-controller;
            #msi-cells = <1>;
            reg = <0x02c20000 0x10000>;
        };
    };
};

Best regards,
Rayagonda


> Thanks,

> Stefan

>
diff mbox series

Patch

diff --git a/arch/arm/lib/gic-v3-its.c b/arch/arm/lib/gic-v3-its.c
index a1657e3853..6c6b7c430c 100644
--- a/arch/arm/lib/gic-v3-its.c
+++ b/arch/arm/lib/gic-v3-its.c
@@ -208,3 +208,8 @@  U_BOOT_DRIVER(gic_lpi_syscon) = {
 	.id		= UCLASS_SYSCON,
 	.of_match	= gic_lpi_syscon_ids,
 };
+
+UCLASS_DRIVER(irq) = {
+	.id = UCLASS_IRQ,
+	.name = "irq",
+};