Re: LX2160A devices not detected?

From: Pierre-Luc Drouin <pldrouin_at_pldrouin.net>
Date: Tue, 16 Jan 2024 21:55:38 UTC
Hi,

thank you for all the information. Yes it is really fan control that I am after, the whining is really bothering me. I came across this dmesg output: https://gist.github.com/agrajag9/bbb49048447510a128cb3304546e174b/revisions . It seems that they are using both FDT and ACPI at the same time?

I have also found this patch to split the I2C controller driver to add ACPI support, but it does not seem to quite work, due to clock issues: https://reviews.freebsd.org/D24917

Also there is this thread where there is mention of using ACPI _TZ methods to control the fan, which is supported by Linux but not FreeBSD: https://community.solid-run.com/t/fan-control/205

Based on these three avenues I am not sure what could be the most straightforward way to get it working? Ideally I would like to program the fan controller to do some automatic fan control based on temperature.

Thanks!




On Tuesday, January 16th, 2024 at 12:25, Mark Millard <marklmi@yahoo.com> wrote:


> 
> 
> 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