Re: When will FreeBSD support RPI5?

From: Doug Rabson <dfr_at_rabson.org>
Date: Tue, 16 Jan 2024 16:43:07 UTC
On Tue, 16 Jan 2024 at 16:36, Doug Rabson <dfr@rabson.org> wrote:

>
>
> On Tue, 16 Jan 2024 at 16:32, Emmanuel Vadot <manu@bidouilliste.com>
> wrote:
>
>> On Tue, 16 Jan 2024 14:57:40 +0000
>> Doug Rabson <dfr@rabson.org> wrote:
>>
>> > On Sat, 13 Jan 2024 at 19:05, Mike Karels <mike@karels.net> wrote:
>> >
>> > > On 13 Jan 2024, at 12:32, Mark Millard wrote:
>> > >
>> > > > On Jan 13, 2024, at 07:38, Doug Rabson <dfr@rabson.org> wrote:
>> > > >
>> > > >> Getting back to the RPI 5, with a tweak to
>> > > arm/broadcom/bcm2835bcm2835_vcbus.c to treat the memory config the
>> same as
>> > > RPI 4 and to dev/sdhci/sdhci_fdt.c to treat the RPI 5 sdhci
>> controllers as
>> > > generic, I can boot to multiuser mode using the EDK2 firmware from
>> > > https://github.com/worproject/rpi5-uefi with ACPI/Device Tree mode
>> set to
>> > > Both.
>> > > >
>> > > > What does FreeBSD do with "Both"? Does it actually use some ACPI
>> > > > and some Device Tree? Or does it just use ACPI? Does your
>> > > > combination do anything different than just using ACPI?
>> > > >
>> > > >> This does not have working PCIe or ethernet yet - I think ethernet
>> > > ought to work since we seem to have a matching driver in the tree in
>> > > dev/cadence.
>> > > >
>> > > > Sounds like the same status as booting just ACPI with no such
>> > > > adjustments too bcm2835bcm2835_vcbus.c or sdhci_fdt.c ?
>> > > >
>> > > > I think Mike Karels plans on investigating getting Ethernet
>> > > > going based on cgem . I've no clue if this is ACPI, DeviceTree,
>> > > > or both.
>> > >
>> > > The cadence/cgem driver uses FDT.  I haven't looked at details yet.
>> The
>> > > addition
>> > > might be as simple as adding a compat string.  Hopefully it doesn't
>> > > require major
>> > > surgery.  I just ordered an RPi 5 (8 GB); it will take a while to be
>> > > delivered.
>> > >
>> >
>> > The existing driver has the correct compat string but we don't get that
>> far
>> > since the rp1 node doesn't get probed and attached. This node is nested
>> > under pcie@120000 and the whole subtree never gets explored.
>> Interestingly,
>> > if I hack the 2711 driver a little (based on reading Linux sources), I
>> can
>> > get that to attach and the rp1 southbridge is visible on the PCI bus
>> with
>> > vendor id 0x1de4, device id 0x0001. I made a stub driver for it but that
>> > isn't particularly helpful since we need an FDT device to get simplebus
>> to
>> > attach and discover all the rp1 sub-devices.
>>
>>  Why is there FDT children under a pci device ???
>>
>
> That's a very good question and I don't have an answer. This is just how
> the DTB is structured:
>
>                 pcie@120000 {
>
>                         compatible = "brcm,bcm2712-pcie";
>                         ...
>                         rp1 {
>
>                                 compatible = "simple-bus";
>
>
My best guess is that it needs to be under the pcie@120000 so that its
ranges field can work properly?