[PATCH] mmc: sdhci-iproc: Add ACPI bindings for the rpi4

Ard Biesheuvel ardb at kernel.org
Mon Jan 11 03:45:45 EST 2021


On Mon, 11 Jan 2021 at 04:40, Jeremy Linton <jeremy.linton at arm.com> wrote:
>
> Hi,
>
> On 1/9/21 5:07 AM, Stefan Wahren wrote:
> > Hi Jeremy,
> >
> > +add Nicolas
> >
> > Am 08.01.21 um 22:13 schrieb Jeremy Linton:
> >> The rpi4 has a Arasan controller it carries over
...
> >> @@ -299,6 +311,8 @@ MODULE_DEVICE_TABLE(of, sdhci_iproc_of_match);
> >>   static const struct acpi_device_id sdhci_iproc_acpi_ids[] = {
> >>      { .id = "BRCM5871", .driver_data = (kernel_ulong_t)&iproc_cygnus_data },
> >>      { .id = "BRCM5872", .driver_data = (kernel_ulong_t)&iproc_data },
> >> +    { .id = "BCM2847",  .driver_data = (kernel_ulong_t)&bcm_arasan_data },
> >
> > Sorry, i don't have deeper knowledge about ACPI, but BCM2837 is the
> > official naming of the SoC on the RPi 3.
> >
> > Is this a typo in the id?
>
> Not really.
>
> Some background: The PFTF is basically the custodian of the combined
> rpi3 port done by Microsoft and a few other peoples/organizations ports.
> That merged code base was upstreamed a couple years ago to edk2 for the
> rpi3 and is the official port. On the rpi3+uefi platform, linux is just
> using DT, but windows and possibly other OSs are using the ACPI tables.
> For the Rpi4, the intentions is to be an ACPI first platform, but we are
> inheriting the rpi3 legacy peripheral descriptions.

I wouldn't say ACPI first - Linux will likely always have far better
DT coverage for these platforms, with DT overlays etc. However, there
is a strong pull from the industry to support Windows, VMware,
RHEL/Centos and the BSDs on these systems, which is why the ACPI
firmware port is important.

RPi4 is also the most easily obtained Linux/arm64 machine with a
proper and fairly complete implementation of standards-based rich
firmware, which is why it makes sense to support both ACPI and DT boot
on it in Linux.

> So, for the past
> year+ everyone has been basing their rpi4 ACPI OS ports on those tables
> and only adjusting them in backwards compatible ways.
>
> Meaning, that a few years back someone put that ID in the rpi3 ACPI
> tables, and now we are stuck with it unless we are willing to break
> other OSs.
>

Note that most of the ACPI tables were contributed by Microsoft in
order to boot Windows for IOT (or whatever it was called at the time)
on the RPi3; they weren't just pulled out of thin air.


>
> >
> >> +    { .id = "BRCME88C", .driver_data = (kernel_ulong_t)&bcm2711_data },
> >>      { /* sentinel */ }
> >>   };
> >>   MODULE_DEVICE_TABLE(acpi, sdhci_iproc_acpi_ids);
> >
>
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel



More information about the linux-arm-kernel mailing list