[PATCH] arm: gic-v3-its: Add irq UCLASS_DRIVER
Rayagonda Kokatanur
rayagonda.kokatanur at broadcom.com
Thu Sep 10 10:13:18 CEST 2020
Hi Stefan,
On Thu, Sep 10, 2020, 1:16 PM Stefan Roese <sr at 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 at 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 at 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 at 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 at nxp.com> - can you please provide dt node
added for your platform lx2160a.
For ex -
gic_lpi_base: syscon at 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 at 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 at 63c20000 {
compatible = "arm,gic-v3-its";
msi-controller;
#msi-cells = <1>;
reg = <0x02c20000 0x10000>;
};
};
};
Best regards,
Rayagonda
> Thanks,
> Stefan
>
More information about the U-Boot
mailing list