Download raw body.
Fix for OpenBSD reboot failure on Fujitsu Futro S940
On Wed, Oct 07, 2026 at 08:03:28AM +0000, Gert-Jan Vons wrote: > Hello @tech, > > On my Fujitsu Futro S940 (dmesg below), OpenBSD hangs on reboot. The console > shows "rebooting..." but nothing happens and a power-cycle is needed to get > things running again. Debugging showed that neither the cpuresetfn() nor the > pulsing of the reset pin by the keyboard controller have any effect, and > that the system hangs at the triple fault. > > The patch below adds an attempt to reset using the Reset Control register, > which solves the problem for me. I took this from FreeBSD/NetBSD and placed > it at the same location in the code (after the reset pin pulsing). > > The patch uses the same #define names for the io port number and bits as > used in https://marc.info/?l=openbsd-tech&m=178787884327664 . > > With kind regards, > > Gert-Jan This is normally encoded in the ACPI FADT. What values does this system have for fadt->reset_reg.address and fadt->reset_value in sys/dev/acpi/acpi.c acpi_reset() ? Can also be seen by installing the acpica package and using iasl -d on files in /var/db/acpi/ > > > Index: sys/arch/amd64/amd64/machdep.c > =================================================================== > RCS file: /cvs/src/sys/arch/amd64/amd64/machdep.c,v > retrieving revision 1.314 > diff -u -p -r1.314 machdep.c > --- sys/arch/amd64/amd64/machdep.c 28 Sep 2026 14:14:03 -0000 1.314 > +++ sys/arch/amd64/amd64/machdep.c 5 Oct 2026 05:57:21 -0000 > @@ -150,6 +150,10 @@ extern int db_console; > #include <dev/ic/pckbcvar.h> > #endif > > +#define RST_CNT 0xcf9 /* Reset Control Register */ > +#define RST_CNT_SYS_RST 0x02 /* System reset */ > +#define RST_CNT_RST_CPU 0x04 /* Reset CPU */ > + > /* #define MACHDEP_DEBUG */ > > #ifdef MACHDEP_DEBUG > @@ -1916,6 +1920,18 @@ cpu_reset(void) > delay(100000); > outb(IO_KBD + KBCMDP, KBC_PULSE0); > delay(100000); > + > + /* > + * Try to force a reset via the Reset Control register. > + * Reset is triggered by the 0->1 transition of the RST_CPU bit, > + * and a hard reset will be done when the SYS_RST bit is set at > + * the moment of the transition. > + * First write selects the hard reset and clears RST_CPU, second > + * write forces the 0->1 transition on RST_CPU. > + */ > + outb(RST_CNT, RST_CNT_SYS_RST); > + outb(RST_CNT, RST_CNT_SYS_RST | RST_CNT_RST_CPU); > + delay(500000); > > /* > * Try to cause a triple fault and watchdog reset by making the IDT > ---8<--- > OpenBSD 8.0 (GENERIC.MP) #83: Mon Oct 5 12:02:17 MDT 2026 > deraadt@amd64.openbsd.org:/usr/src/sys/arch/amd64/compile/GENERIC.MP > real mem = 8034861056 (7662MB) > avail mem = 7768813568 (7408MB) > random: good seed from bootblocks > mpath0 at root > scsibus0 at mpath0: 256 targets > mainbus0 at root > bios0 at mainbus0: SMBIOS rev. 2.8 @ 0x6920b000 (72 entries) > bios0: vendor FUJITSU // American Megatrends Inc. version "V5.0.0.13 > R1.11.0.SR.4 for D3543-A1x" date 01/22/2020 > bios0: FUJITSU FUTRO S940 > efi0 at bios0: UEFI 2.6 > efi0: American Megatrends rev 0x5000d > acpi0 at bios0: ACPI 6.1 > acpi0: sleep states S0 S3 S4 S5 > acpi0: tables DSDT FACP FPDT FIDT MCFG DBG2 DBGP HPET LPIT APIC NPKT SSDT > SSDT SSDT SSDT SSDT SSDT SSDT SSDT SSDT UEFI TPM2 BERT DMAR WDAT WSMT > acpi0: wakeup devices SIO1(S3) PS2K(S3) HDAS(S3) XHC_(S4) XDCI(S4) RP01(S4) > PXSX(S4) RP02(S4) PXSX(S4) RP03(S4) PXSX(S4) RP04(S4) PXSX(S4) RP05(S4) > PXSX(S4) RP06(S4) [...] > acpitimer0 at acpi0: 3579545 Hz, 32 bits > acpimcfg0 at acpi0 > acpimcfg0: addr 0xe0000000, bus 0-255 > acpihpet0 at acpi0: 19200000 Hz > acpimadt0 at acpi0 addr 0xfee00000: PC-AT compat > cpu0 at mainbus0: apid 0 (boot processor) > cpu0: Intel(R) Pentium(R) Silver J5005 CPU @ 1.50GHz, 1495.86 MHz, 06-7a-01, > patch 00000042 > cpu0: cpuid 1 edx=bfebfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE> ecx=47f8ebbf<SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,EST,TM2,SSSE3,SDBG,CX16,xTPR,PDCM,SSE4.1,SSE4.2,x2APIC,MOVBE,POPCNT,DEADLINE,AES,XSAVE,RDRAND> > cpu0: cpuid 6 eax=57<SENSOR,ARAT,PTS> ecx=1<EFFFREQ> > cpu0: cpuid 7.0 ebx=2294e287<FSGSBASE,TSC_ADJUST,SGX,SMEP,ERMS,MPX,RDSEED,SMAP,CLFLUSHOPT,PT,SHA> > ecx=40400004<UMIP> edx=ac000400<MD_CLEAR,IBRS,IBPB,STIBP,SSBD> > cpu0: cpuid a vers=4, gp=4, gpwidth=48, ff=3, ffwidth=48 > cpu0: cpuid d.1 eax=f<XSAVEOPT,XSAVEC,XGETBV1,XSAVES> > cpu0: cpuid 80000001 edx=2c100800<NXE,PAGE1GB,RDTSCP,LONG> ecx=101<LAHF,3DNOWP> > cpu0: cpuid 80000007 edx=100<ITSC> > cpu0: msr 10a=14000c6a<IBRS_ALL,SKIP_L1DFL,MDS_NO,IF_PSCHANGE,MISC_PKG_CT,ENERGY_FILT,GDS_NO,RFDS_CLEAR> > cpu0: MELTDOWN > cpu0: 24KB 64b/line 6-way D-cache, 32KB 64b/line 8-way I-cache, 4MB 64b/line > 16-way L2 cache > cpu0: smt 0, core 0, package 0, type P > mtrr: Pentium Pro MTRR support, 10 var ranges, 88 fixed ranges > cpu0: apic clock running at 19MHz > cpu0: mwait min=64, max=64, C-substates=0.2.0.2.4.2.1.1, IBE > cpu1 at mainbus0: apid 2 (application processor) > cpu1: Intel(R) Pentium(R) Silver J5005 CPU @ 1.50GHz, 1495.86 MHz, 06-7a-01, > patch 00000042 > cpu1: smt 0, core 1, package 0, type P > cpu2 at mainbus0: apid 4 (application processor) > cpu2: Intel(R) Pentium(R) Silver J5005 CPU @ 1.50GHz, 1495.86 MHz, 06-7a-01, > patch 00000042 > cpu2: smt 0, core 2, package 0, type P > cpu3 at mainbus0: apid 6 (application processor) > cpu3: Intel(R) Pentium(R) Silver J5005 CPU @ 1.50GHz, 1495.86 MHz, 06-7a-01, > patch 00000042 > cpu3: smt 0, core 3, package 0, type P > ioapic0 at mainbus0: apid 1 pa 0xfec00000, version 20, 120 pins > acpiprt0 at acpi0: bus 0 (PCI0) > acpiprt1 at acpi0: bus 1 (RP03) > acpiprt2 at acpi0: bus -1 (RP04) > acpiprt3 at acpi0: bus 2 (RP05) > acpiprt4 at acpi0: bus 3 (RP06) > acpiec0 at acpi0: not present > acpipci0 at acpi0 PCI0: 0x00000004 0x00000011 0x00000001 > com0 at acpi0 UAR1 addr 0x3f8/0x8 irq 4: ns16550a, 16 byte fifo > com1 at acpi0 UAR2 addr 0x2f8/0x8 irq 3: ns16550a, 16 byte fifo > "PNP0303" at acpi0 not configured > "FUJ02E3" at acpi0 not configured > acpicmos0 at acpi0 > acpibtn0 at acpi0: PWRB > glkgpio0 at acpi0 GPO1 uid 1 addr 0xd0c40000/0xcef irq 14, 80 pins > glkgpio1 at acpi0 GPO0 uid 2 addr 0xd0c50000/0xaff irq 14, 80 pins > glkgpio2 at acpi0 GPO2 uid 3 addr 0xd0c90000/0x7bf irq 15, 20 pins > glkgpio3 at acpi0 GPO3 uid 4 addr 0xd0c80000/0x82f irq 14, 35 pins > "INT0E0C" at acpi0 not configured > intelpmc0 at acpi0: PEPD > state 0: 0x7f:1:2:0x00:0x0000000000000060 > counter: 0x7f:64:0:0x00:0x0000000000000632 > frequency: 0 > tpm0 at acpi0 TPM_ 2.0 (CRB) addr 0xfed40000/0x5000, device 0x00000000 rev 0x0 > "FUJ0420" at acpi0 not configured > "INT3400" at acpi0 not configured > "INT3406" at acpi0 not configured > "INT3404" at acpi0 not configured > "INT3403" at acpi0 not configured > "INT3403" at acpi0 not configured > "INT3403" at acpi0 not configured > "INT3403" at acpi0 not configured > "INT3403" at acpi0 not configured > "PNP0C0B" at acpi0 not configured > acpipwrres0 at acpi0: DRST > acpipwrres1 at acpi0: DRST > acpipwrres2 at acpi0: DRST > acpipwrres3 at acpi0: DRST > acpipwrres4 at acpi0: DRST > acpipwrres5 at acpi0: DRST > acpipwrres6 at acpi0: WRST > acpicpu0 at acpi0: C3(10@150 mwait.1@0x60), C2(10@50 mwait.1@0x21), > C1(1000@1 mwait.1@0x1), PSS > acpicpu1 at acpi0: C3(10@150 mwait.1@0x60), C2(10@50 mwait.1@0x21), > C1(1000@1 mwait.1@0x1), PSS > acpicpu2 at acpi0: C3(10@150 mwait.1@0x60), C2(10@50 mwait.1@0x21), > C1(1000@1 mwait.1@0x1), PSS > acpicpu3 at acpi0: C3(10@150 mwait.1@0x60), C2(10@50 mwait.1@0x21), > C1(1000@1 mwait.1@0x1), PSS > acpipwrres7 at acpi0: FN00, resource for FAN0 > acpitz0 at acpi0 > acpitz0: critical temperature is 95 degC > acpivideo0 at acpi0: GFX0 > acpivout0 at acpivideo0: DD1F > cpu0: using VERW MDS workaround > cpu0: Enhanced SpeedStep 1495 MHz: speeds: 1501, 1500, 1400, 1300, 1200, > 1100, 1000, 900, 800 MHz > pci0 at mainbus0 bus 0 > pchb0 at pci0 dev 0 function 0 "Intel Gemini Lake Host" rev 0x03 > "Intel Gemini Lake DPTF" rev 0x03 at pci0 dev 0 function 1 not configured > "Intel Gemini Lake GNA" rev 0x03 at pci0 dev 0 function 3 not configured > "Intel UHD Graphics 605" rev 0x03 at pci0 dev 2 function 0 not configured > azalia0 at pci0 dev 14 function 0 "Intel Gemini Lake HD Audio" rev 0x03: msi > azalia0: codecs: Realtek ALC671, Intel/0x280d, using Realtek ALC671 > audio0 at azalia0 > "Intel Gemini Lake MEI" rev 0x03 at pci0 dev 15 function 0 not configured > ahci0 at pci0 dev 18 function 0 "Intel Gemini Lake AHCI" rev 0x03: msi, AHCI 1.3.1 > ahci0: PHY offline on port 0 > ahci0: port 1: 6.0Gb/s > scsibus1 at ahci0: 32 targets > sd0 at scsibus1 targ 1 lun 0: <ATA, DEM24-32GM41BC1D, L196> naa.502b2a201d1c1b1a > sd0: 30533MB, 512 bytes/sector, 62533296 sectors, thin > ppb0 at pci0 dev 19 function 0 "Intel Gemini Lake PCIE" rev 0xf3: msi > pci1 at ppb0 bus 1 > em0 at pci1 dev 0 function 0 "Intel 82576" rev 0x01: msi, address a0:10:a2:b8:76:e5 > em1 at pci1 dev 0 function 1 "Intel 82576" rev 0x01: msi, address a0:10:a2:b8:76:e4 > ppb1 at pci0 dev 19 function 2 "Intel Gemini Lake PCIE" rev 0xf3: msi > pci2 at ppb1 bus 2 > re0 at pci2 dev 0 function 0 "Realtek 8168" rev 0x0c: RTL8168G/8111G > (0x4c00), msi, address 4c:52:62:30:a5:32 > rgephy0 at re0 phy 7: RTL8251, rev. 0 > ppb2 at pci0 dev 19 function 3 "Intel Gemini Lake PCIE" rev 0xf3: msi > pci3 at ppb2 bus 3 > ppb3 at pci0 dev 20 function 0 "Intel Gemini Lake PCIE" rev 0xf3 > pci4 at ppb3 bus 4 > ppb4 at pci0 dev 20 function 1 "Intel Gemini Lake PCIE" rev 0xf3 > pci5 at ppb4 bus 5 > xhci0 at pci0 dev 21 function 0 "Intel Gemini Lake xHCI" rev 0x03: msi, xHCI 1.0 > usb0 at xhci0: USB revision 3.0 > uhub0 at usb0 configuration 1 interface 0 "Intel xHCI root hub" rev 3.00/1.00 addr 1 > dwiic0 at pci0 dev 22 function 0 "Intel Gemini Lake I2C" rev 0x03: apic 1 int 27 > iic0 at dwiic0 > dwiic1 at pci0 dev 22 function 1 "Intel Gemini Lake I2C" rev 0x03: apic 1 int 28 > iic1 at dwiic1 > dwiic2 at pci0 dev 22 function 2 "Intel Gemini Lake I2C" rev 0x03: apic 1 int 29 > iic2 at dwiic2 > dwiic3 at pci0 dev 22 function 3 "Intel Gemini Lake I2C" rev 0x03: apic 1 int 30 > iic3 at dwiic3 > dwiic4 at pci0 dev 23 function 0 "Intel Gemini Lake I2C" rev 0x03: apic 1 int 31 > iic4 at dwiic4 > dwiic5 at pci0 dev 23 function 1 "Intel Gemini Lake I2C" rev 0x03: apic 1 int 32 > iic5 at dwiic5 > dwiic6 at pci0 dev 23 function 2 "Intel Gemini Lake I2C" rev 0x03: apic 1 int 33 > iic6 at dwiic6 > dwiic7 at pci0 dev 23 function 3 "Intel Gemini Lake I2C" rev 0x03: apic 1 int 34 > iic7 at dwiic7 > "Intel Gemini Lake SPI" rev 0x03 at pci0 dev 25 function 0 not configured > "Intel Gemini Lake SPI" rev 0x03 at pci0 dev 25 function 1 not configured > "Intel Gemini Lake SPI" rev 0x03 at pci0 dev 25 function 2 not configured > pcib0 at pci0 dev 31 function 0 "Intel Gemini Lake LPC" rev 0x03 > ichiic0 at pci0 dev 31 function 1 "Intel Gemini Lake SMBus" rev 0x03: apic 1 int 20 > iic8 at ichiic0 > spdmem0 at iic8 addr 0x50: 4GB DDR4 SDRAM PC4-19200 SO-DIMM > spdmem1 at iic8 addr 0x52: 4GB DDR4 SDRAM PC4-21300 SO-DIMM > isa0 at pcib0 > isadma0 at isa0 > pckbc0 at isa0 port 0x60/5 irq 1 irq 12 > pckbd0 at pckbc0 (kbd slot) > wskbd0 at pckbd0: console keyboard > pcppi0 at isa0 port 0x61 > spkr0 at pcppi0 > vmm0 at mainbus0: VMX/EPT (using slow L1TF mitigation) > efifb0 at mainbus0: 2560x1440, 32bpp > wsdisplay0 at efifb0 mux 1: console (std, vt100 emulation), using wskbd0 > wsdisplay0: screen 1-5 added (std, vt100 emulation) > enable mbufs in high memory > uhub1 at uhub0 port 8 configuration 1 interface 0 "Standard Microsystems > product 0x2514" rev 2.00/b.b3 addr 2 > vscsi0 at root > scsibus2 at vscsi0: 256 targets > softraid0 at root > scsibus3 at softraid0: 256 targets > root on sd0a (8e8ada2c6288f224.a) swap on sd0b dump on sd0b > >
Fix for OpenBSD reboot failure on Fujitsu Futro S940