On Sat, Jan 27, 2024 at 07:54:43PM +0900, [email protected] 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
>
> [email protected]:/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)