Hello Jonathan,

made a kernel with the patch and here is what I get on dmesg:

puc0 at pci0 dev 26 function 0 "Intel C3000 UART" rev 0x11: ports: 16 com
com4 at puc0 port 0 apic 2 int 16: ns16550a, 16 byte fifo

so now it seems to get the com port, however when I type "set tty com4" on the boot prompt I get the same result than before, the system freezes (or more accurately the input/output goes into the limbo).

I am missing something here ?


Le 27/01/2024 à 20:52, Jonathan Gray a écrit :
On Sat, Jan 27, 2024 at 07:54:43PM +0900, stran...@free.fr wrote:
Synopsis:Console is lost at boot when com0 is on a UART PCI     
Category:system amd64
Environment:
        System      : OpenBSD 7.4
        Details     : OpenBSD 7.4 (GENERIC.MP) #2: Fri Dec  8 15:39:04 MST 2023
                         
r...@syspatch-74-amd64.openbsd.org:/usr/src/sys/arch/amd64/compile/GENERIC.MP

        Architecture: OpenBSD.amd64
        Machine     : amd64
Description:
Looking for a replacement for Soekris or PCengines machines, I chose a Qotom 
mini-pc featured in a Servethehome video.

I chose the 8GB RAM 256GB SSD, Q20321G9 C3558R model

My intent is to use it as a OpenBSD router, so once I get it I started to play 
with it.

Making a USB boot key from install74.img with Etcher (on a windows workstation, 
sue me) I booted without problem after setting up the boot order in the 
Bios/UEFI.Interestingly it comes with a preinstalled Windows install without 
activation number on the SSD, well I just flushed it all.

The 2.5G and 10 SFP+ interfaces are seen as igc and ix interfaces, great.

Now there is the problem I stumbled into, it is the console port.

first, it is not enabled by default, you have to go into the Bios/UEFI to 
enable it (meaning connecting a USB keyboard and a VGA monitor) and it presents 
as such in the menus with a toggle to Enable/Disable:
COM0(Pci Bus0,Dev26,Func0)
and also some nice options to change like the type of console or speed.

Doing so you get your display redirected on the console, fantastic.

However when you boot your OpenBSD you get this on the console:
Using drive 0, partition 3.
Loading......probing: pc0 mem[620K 993M 928M 91M 852K 3M 6144M a20=on]
disk: hd0+
OpenBSD/amd64 BOOT 3.65
boot>booting hd0a:/bsd: 17241420+4137992+368672+0+1241088 
[1340879+128+1321080+101331

And nothing more, your main display is on the VGA monitor, expected since the 
redirecting of the tty on the console is not done.

In all logic I then tried to boot OpenBSD with
set tty com0
But when doing this here is what you get:
boot> set tty com0
switching console to com0

And that's it... no more access to your keyboard and the console is lost.

Booting the OS completely here's what we can see on dmesg
"Intel C3000 UART" rev 0x11 at pci0 dev 26 function 0 not configured

So it seems that from the moment you try telling to use the com0 port you loose 
all access... this UART thing is not properly recognized.

For comparison on a PCengine machine:
com0 at acpi0 COM1 addr 0x3f8/0x8 irq 4: ns16550a, 16 byte fifo
com0: console
com1 at isa0 port 0x2f8/8 irq 3: ns16550a, 16 byte fifo
The com port there is ISA bus

Is there something I'm missing to catch the console or enable it in OpenBSD, or 
is it a non-supported trouble.
pci serial is normally handled by puc(4), try this:

Index: sys/dev/pci/pucdata.c
===================================================================
RCS file: /cvs/src/sys/dev/pci/pucdata.c,v
diff -u -p -r1.118 pucdata.c
--- sys/dev/pci/pucdata.c       24 Oct 2022 05:57:58 -0000      1.118
+++ sys/dev/pci/pucdata.c       27 Jan 2024 11:46:33 -0000
@@ -306,6 +306,13 @@ const struct puc_device_description puc_
                { PUC_PORT_COM, 0x10, 0x0000 },
            },
        },
+       {       /* Intel C3000 UART */
+           {   PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_C3000_HSUART, 0x0000, 
0x0000 },
+           {   0xffff, 0xffff,                                 0x0000, 0x0000 
},
+           {
+               { PUC_PORT_COM, 0x10, 0x0000 },
+           },
+       },
        /*
         * XXX no entry because I have no data:
         * XXX Dolphin Peripherals 4006 (single parallel)

Reply via email to