Re: When will FreeBSD support RPI5?

From: Mike Karels <mike_at_karels.net>
Date: Tue, 16 Jan 2024 16:48:37 UTC
On 16 Jan 2024, at 10:36, Doug Rabson 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";

The Mac mini also has pci devices with FDT entries.  For example, the Broadcom
PCI chip has its mac address in the DTB under what we call pci3, which is under
pcib0 (the PCIe controller, which is located using FDT).  Normal PCI mechanisms
are used to find the secondary buses and Ethernet.

		Mike