Re: LX2160A devices not detected?

From: Mark Millard <marklmi_at_yahoo.com>
Date: Tue, 16 Jan 2024 17:25:47 UTC
On Jan 16, 2024, at 07:33, Pierre-Luc Drouin <pldrouin@pldrouin.net> wrote:

> I have seen that there is some support for the LX2160A SOC in FreeBSD: https://github.com/freebsd/freebsd-src/commit/36362eb0a0a1862a0898a6e17844a54f3f28f114#diff-00274f2856d4a354783db33e78b20c78092e2e29bf86f4c3e4022982ec64620b

Standard ACPI does not present fdt. This is EDK2 based for this context.
Standard fdt does not present ACPI. This is U-Boot based for this context.

As for what FreeBSD does:

If a fdt is presented, ACPI is not used at all by default.
If no fdt is presented, ACPI is used instead (if present).
(I happened to ask that question recently.)

So, as I understand it, FreeBSD does not, by default, ever use
a mix of fdt and ACPI as things are. (I'm not claiming such
can not be forced somehow, not that I'd know how.)

Your diff is for fdt. So it appears that you need to be using
U-Boot to involve that code (by default). Note the lack of the
network processor for U-Boot: "All peripherals but the network
processor are supported." This might mean needing a network
dongle or some such in order to have Ethernet working.

ACPI booting supports basic use of the 1Gbit/sec Ethernet port.
(I do not know the status of anything fancier for the networking
processor.)

I've always booted ACPI style. There is no port for U-Boot as I
remember. So you would have to deal with building something
appropriate.

The system that I've access to has a quieter fan and better
heatsink but am also not bothered as much by such noises as some
folks are. (Fan control seems to be the missing thing for ACPI
relative to i2c.)


> From what I understand this is all done through device tree probing.

For U-Boot and UEFI/fdt yes; for EDK2 and UEFI/ACPI no, at least
by default.

> However when I dump the ACPI table on my system, I don't have these device tree entries. I am using lx2160a_uefi.

So am I.

> What type of bootloader is FreeBSD expecting instead of what I am currently using?

U-Boot provides UEFI+fdt instead of UEFI+ACPI. FreeBSD supports both forms
of UEFI with its normal boot loader.

Since I use UEFI/ACPI I know the kernel supports what I use.

I do not know if the kernel well supports fdt. I'm not aware of
anyone reporting using the HoneyComb via FreeBSD with fdt. The
one clear point is the lack of network processor support.

> Otherwise should it be possible to get device detection working by adding device tree entries into my DSDT, recompiling the AML with iasl and loading the table in /boot/loader.conf?

If you want EDK2 (UEFI/ACPI) + fdt use mixed by FreeBSD, you
likely have more work to do. I do not know any details.

> Thanks!
> On Saturday, January 6th, 2024 at 23:43, Pierre-Luc Drouin <pldrouin@pldrouin.net> wrote:
> 
>> Hi,
>> 
>> I would like to get access to the AMC6821 I2C fan controller on my SolidRun HoneyComb LX2 board. Currently I only see it here:
>> 
>> devinfo -v | grep I2C
>>     unknown pnpinfo _HID=NXP0001 _UID=0 _CID=none at handle=\_SB_.I2C0
>>     unknown pnpinfo _HID=NXP0002 _UID=0 _CID=none at handle=\_SB_.I2C0.MUX0
>>     unknown pnpinfo _HID=PRP0001 _UID=0 _CID=none at handle=\_SB_.I2C0.MUX0.CH01.FAN1
>>     unknown pnpinfo _HID=PRP0001 _UID=1 _CID=none at handle=\_SB_.I2C0.MUX0.CH03.THE1
>>     unknown pnpinfo _HID=NXP0001 _UID=1 _CID=none at handle=\_SB_.I2C1
>> 
>> There is no iic device in /dev 
>> 
>> There is info regarding fan control on this board here: https://community.solid-run.com/t/fan-control/205
>> 
>> Am I correct that the only way to get access to the controller from the OS side is to write an ACPI driver for it? What is involved exactly?
> 


===
Mark Millard
marklmi at yahoo.com