Re: LX2160A devices not detected?

Pierre-Luc Drouin <[email protected]>
Newsgroups gmane.os.freebsd.devel.arm
Message-ID <kID4_ARnGyvzc9lGL-YghZuBr0RTCzUEJzCq_HIrIZh9bggfCI7Ix66t1hXPd0KdGuv6IPuNJyG2-pfNkEVWuFsg4cqZg1tmf2dQRAbB9DI=@pldrouin.net>
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 <[email protected]> wrote:


> 
> 
> On Jan 16, 2024, at 07:33, Pierre-Luc Drouin [email protected] 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 [email protected] 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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.