Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 22 May 2005 15:48:25 +0200 (CEST)
From:      Adrian Steinmann <ast@marabu.ch>
To:        FreeBSD-gnats-submit@FreeBSD.org
Cc:        phk@FreeBSD.org
Subject:   kern/81360: [patch] generic bios_string for GPIO/watchdog on Soekris/PCEngines/Advantech
Message-ID:  <200505221348.j4MDmPXi014805@pano.marabu.ch>
Resent-Message-ID: <200505221400.j4ME0OrA003629@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>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
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Sun May 22 14:00:23 GMT 2005
>Closed-Date:
>Last-Modified:
>Originator:     Adrian Steinmann
>Release:        FreeBSD 5.4-STABLE i386
>Organization:
Webgroup Consulting AG
>Environment:
System: FreeBSD pano.marabu.ch 5.4-STABLE FreeBSD 5.4-STABLE #1: Sun May 8 10:51:49 CEST 2005 root@pano.marabu.ch:/r/usr/obj/usr/src/sys/PANO 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
>Description:
	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.

>How-To-Repeat:
	boot kernel with options CPU_SOEKRIS and options CPU_GEODE
	on PC Engines platforms
>Fix:

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

    http://webgroup.ch/FreeBSD/bios_oem_strings.patch_HEAD
    http://webgroup.ch/FreeBSD/bios_oem_strings.patch_RELENG_5

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
bios(9).

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

PS. There was a recent thread on this in -hackers starting at
Message-ID: <17037.14274.229768.369886@zaphod.home.loc>
>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200505221348.j4MDmPXi014805>