public inbox for discuss@lists.illumos.org (since 2011-08)
 help / color / mirror / Atom feed
* [discuss] SmartOS on Topton N17 motherboard only detects the serial port
@ 2024-10-19 17:02 jblbeurope
  2024-10-20 17:11 ` [discuss] " Jean-Baptiste Boric
  0 siblings, 1 reply; 2+ messages in thread
From: jblbeurope @ 2024-10-19 17:02 UTC (permalink / raw)
  To: illumos-discuss

[-- Attachment #1: Type: text/plain, Size: 1796 bytes --]

Hi all,

I'm trying to set up SmartOS on a Topton N17 motherboard, but I'm having really weird issues. I've been redirected here from the SmartOS Discord to have more eyes on this.

Basically, the kernel only seems to detect the following devices on this computer:
 * SMBus controller
 * LPC bridge
 * 16550A-compatible UART, hanging off the LPC
That's it. It's not detecting the two Intel I226-V NICs (which are inside the illumos HCL with the correct PCI vendor/device IDs), the NVMe SSD, the SATA controller, the USB host controller interfaces, the framebuffer, the PCI bridges or anything else. It's like the kernel only saw the AMD FCH chipset and ignored everything else.

Ubuntu does boot on this computer without any issues and detects all the devices, so I'm assuming that something went wrong with either the ACPI tables or the PCI enumeration. In either case, I'm PXE booting with GRUB2 (technically not documented for SmartOS, but I've figured out of to multiboot2 it).

I'm an illumos noob and that's as far as I've been able to dig by myself. I've collected some logs/data and I'm willing to try some additional troubleshooting steps in the name of science (that is, until I ragequit and resign myself to installing Proxmox):
 * https://gist.github.com/boricj/e32fcffaba00c0a9238784121e703360 (messages, prtconf, dmesg, lspci)
 * http://82.66.170.50/acpi-tables.tgz
PS: I know that setting up SmartOS on an AliExpress motherboard is asking for trouble. Just assume that I do things because I can, not because I should.
------------------------------------------
illumos: illumos-discuss
Permalink: https://illumos.topicbox.com/groups/discuss/Tb695f89d6fb11b82-M2766217c64d810909a29e7b6
Delivery options: https://illumos.topicbox.com/groups/discuss/subscription

[-- Attachment #2: Type: text/html, Size: 2684 bytes --]

^ permalink raw reply	[flat|nested] 2+ messages in thread

* [discuss] Re: SmartOS on Topton N17 motherboard only detects the serial port
  2024-10-19 17:02 [discuss] SmartOS on Topton N17 motherboard only detects the serial port jblbeurope
@ 2024-10-20 17:11 ` Jean-Baptiste Boric
  0 siblings, 0 replies; 2+ messages in thread
From: Jean-Baptiste Boric @ 2024-10-20 17:11 UTC (permalink / raw)
  To: illumos-discuss

[-- Attachment #1: Type: text/plain, Size: 2235 bytes --]

So I did some additional troubleshooting steps with kmdb and I have a beginning of an explanation.

The host bridges have vendor ID/product ID/header type values set to zero, so enumerate_bus_devs() skips over these devices and doesn't enumerate the rest of their device functions, notably the PCI bridges. The kernel then enumerates the peer busses, but their PCI configuration spaces return all ones because the PCI bridges aren't configured and therefore the kernel doesn't discover anything. The one exception is the SMBus device, which has valid vendor ID/device IDs and the header type has the multifunction bit set, so the kernel enumerates the rest of its functions, discovers the ISA bridge and eventually the serial port.

If I binary patch at runtime enumerate_bus_devs() to not skip vendor IDs set to 0x0, the kernel does register device nodes for the host bridges, but without the multifunction bit set it still skips enumerating their functions. If I set up the PCI primary, secondary and subordinate bus numbers inside the PCI bridges by hand, the respective devices appear inside the PCI configuration space and the kernel creates device nodes for them, but doesn't attach drivers (probably because the bridges aren't fully configured).

I assume that Linux does a complete enumeration of PCI busses, devices and functions and therefore doesn't miss the PCI bridges and the rest of the devices, despite the host bridges being apparently borked. I do not know why the host bridges themselves appear normal inside the output of lspci.

That is as far as I'll investigate this on my own, because I draw the line at manually configuring memory ranges for PCI bridges through kmdb. I'm also not planning on setting up an illumos development environment to build kernels and mess with the PCI initialization code, as that exceeds my ragequit threshold. If someone wants to tackle this I'm willing to test things, otherwise I'm resigning to running Proxmox on that box.
------------------------------------------
illumos: illumos-discuss
Permalink: https://illumos.topicbox.com/groups/discuss/Tb695f89d6fb11b82-Mb061661340364700f970d999
Delivery options: https://illumos.topicbox.com/groups/discuss/subscription

[-- Attachment #2: Type: text/html, Size: 2903 bytes --]

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2024-10-20 17:12 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-10-19 17:02 [discuss] SmartOS on Topton N17 motherboard only detects the serial port jblbeurope
2024-10-20 17:11 ` [discuss] " Jean-Baptiste Boric

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).