kern/81360: [patch] generic bios_string for GPIO/watchdog on Soekris/PCEngines/Advantech

Adrian Steinmann ast at
Sun May 22 14:00:25 GMT 2005

>Number:         81360
>Category:       kern
>Synopsis:       [patch] generic bios_string for GPIO/watchdog on Soekris/PCEngines/Advantech
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          open
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Sun May 22 14:00:23 GMT 2005
>Originator:     Adrian Steinmann
>Release:        FreeBSD 5.4-STABLE i386
Webgroup Consulting AG
System: FreeBSD 5.4-STABLE FreeBSD 5.4-STABLE #1: Sun May 8 10:51:49 CEST 2005 root at i386

Tested on platforms which use the Geode or Elan processors; i.e.:
	Soekris net45xx and net4801 platforms
	Advantech PCM-582x platforms
	PC Engines WRAP
	i386/geode.c wasn't finding the PC Engines signature, the second
	argument needs to be > 0xf9000 in the call:

	    bios_string(0xf9000, 0xf9000, "PC Engines WRAP.1C ", 0)

	Fixing this, I found it to be nice for bios_string to work
	more generically to find other info in the BIOS OEM area.

	As another side effect, watchdog() is now supported on
	Advantech boxes when options CPU_GEODE is specified in
	the kernel config.

	boot kernel with options CPU_SOEKRIS and options CPU_GEODE
	on PC Engines platforms

The patches (files.i386 too different in RELENG_5/HEAD) at

now positively identify specific CPU_GEODE and CPU_ELAN platforms, i.e.:

Elan-mmcr Soekris net45xx comBIOS ver. 1.26a 20040819 Copyright (C) 2000-2004
Geode Soekris net4801 comBIOS ver. 1.27a 20041206 Copyright (C) 2000-2004
Geode PCM-5823 BIOS V1.12 (08/12/2002) 06/07/2002-GXm-Cx5530-2A434AKCC-00
Geode PC Engines WRAP.1C v1.03 tinyBIOS V1.4a (C)1997-2003

These dmesg strings are emitted at boot time and are also used in
i386/geode.c and i386/elan-mmcr.c for controlling the logic of GPIO
device configuration. The undocumented bios_string() is replaced
by a more generic bios_oem_strings(9) routine, now documented in

As a side effect, watchdog(8) is now easily supported on Advantech
PCM-582x platforms when options CPU_GEODE is specified in the kernel

PS. There was a recent thread on this in -hackers starting at
Message-ID: <17037.14274.229768.369886 at zaphod.home.loc>

More information about the freebsd-bugs mailing list