At 11:01 AM 11/12/2009, Jeremy Chadwick wrote:
On Thu, Nov 12, 2009 at 10:35:17AM -0500, John Baldwin wrote:
> On Thursday 12 November 2009 9:26:38 am Marten Vijn wrote:
> > Support for the following devices seems not to be continued in 8.0 (and
> > 7.2 and higher):
> >
> > - WRAP 1C
> > - WRAP 2E (EOL)
> > - ALIX 1C
> >
> > Both devices stopped booting as described in several postings and pr's.
WRAP series: http://www.pcengines.ch/wrap.htm
ALIX series: http://www.pcengines.ch/alix.htm
Not sure about the older WRAP boards, but the current Alix boxes work
very well with RELENG_7 and RELENG_8.
There is a patch however for RELENG_7 that never got MFC'd for some
reason that I use as well. Phk ?
---Mike
--- sys/i386/i386/geode.c 2007-09-18 05:19:44.000000000 -0400
+++ sys/i386/i386/geode.c.good 2008-09-12 17:13:18.000000000 -0400
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/i386/i386/geode.c,v 1.10 2007/09/18
09:19:44 phk Exp $");
+__FBSDID("$FreeBSD: src/sys/i386/i386/geode.c,v 1.11 2008/02/10
19:14:42 phk Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -40,41 +40,50 @@
#include <machine/pc/bios.h>
static struct bios_oem bios_soekris = {
- { 0xf0000, 0xf1000 },
- {
- { "Soekris", 0, 8 }, /* Soekris Engineering. */
- { "net4", 0, 8 }, /* net45xx */
- { "comBIOS", 0, 54 }, /* comBIOS ver. 1.26a 20040819 ... */
- { NULL, 0, 0 },
- }
+ { 0xf0000, 0xf1000 },
+ {
+ { "Soekris", 0, 8 }, /* Soekris Engineering. */
+ { "net4", 0, 8 }, /* net45xx */
+ { "comBIOS", 0, 54 }, /* comBIOS ver. 1.26a 20040819 ... */
+ { NULL, 0, 0 },
+ }
};
static struct bios_oem bios_soekris_55 = {
- { 0xf0000, 0xf1000 },
- {
- { "Soekris", 0, 8 }, /* Soekris Engineering. */
- { "net5", 0, 8 }, /* net5xxx */
- { "comBIOS", 0, 54 }, /* comBIOS ver. 1.26a 20040819 ... */
- { NULL, 0, 0 },
- }
+ { 0xf0000, 0xf1000 },
+ {
+ { "Soekris", 0, 8 }, /* Soekris Engineering. */
+ { "net5", 0, 8 }, /* net5xxx */
+ { "comBIOS", 0, 54 }, /* comBIOS ver. 1.26a 20040819 ... */
+ { NULL, 0, 0 },
+ }
};
static struct bios_oem bios_pcengines = {
- { 0xf9000, 0xfa000 },
- {
- { "PC Engines WRAP", 0, 28 }, /* PC Engines WRAP.1C v1.03 */
- { "tinyBIOS", 0, 28 }, /* tinyBIOS V1.4a
(C)1997-2003 */
- { NULL, 0, 0 },
- }
+ { 0xf9000, 0xfa000 },
+ {
+ { "PC Engines WRAP", 0, 28 }, /* PC Engines WRAP.1C v1.03 */
+ { "tinyBIOS", 0, 28 }, /* tinyBIOS V1.4a (C)1997-2003 */
+ { NULL, 0, 0 },
+ }
+};
+
+static struct bios_oem bios_pcengines_55 = {
+ { 0xf9000, 0xfa000 },
+ {
+ { "PC Engines ALIX", 0, 28 }, /* PC Engines ALIX */
+ { "tinyBIOS", 0, 28 }, /* tinyBIOS V1.4a (C)1997-2005 */
+ { NULL, 0, 0 },
+ }
};
static struct bios_oem bios_advantech = {
- { 0xfe000, 0xff000 },
- {
- { "**** PCM-582", 5, 33 }, /* PCM-5823 BIOS V1.12 ... */
- { "GXm-Cx5530", -11, 35 }, /* 06/07/2002-GXm-Cx5530... */
- { NULL, 0, 0 },
- }
+ { 0xfe000, 0xff000 },
+ {
+ { "**** PCM-582", 5, 33 }, /* PCM-5823 BIOS V1.12 ... */
+ { "GXm-Cx5530", -11, 35 }, /* 06/07/2002-GXm-Cx5530... */
+ { NULL, 0, 0 },
+ }
};
static unsigned cba;
@@ -117,6 +126,11 @@
}
a = rdmsr(0x5140000c);
+ if (bit >= 16) {
+ a += 0x80;
+ bit -= 16;
+ }
+
if (onoff)
outl(a, 1 << bit);
else
@@ -256,11 +270,13 @@
* by the bios, see p161 in data sheet.
*/
cba = pci_read_config(self, 0x64, 4);
- printf("Geode CBA@ 0x%x\n", cba);
+ if (bootverbose)
+ printf("Geode CBA@ 0x%x\n", cba);
geode_counter = cba + 0x08;
outl(cba + 0x0d, 2);
- printf("Geode rev: %02x %02x\n",
- inb(cba + 0x3c), inb(cba + 0x3d));
+ if (bootverbose)
+ printf("Geode rev: %02x %02x\n",
+ inb(cba + 0x3c), inb(cba + 0x3d));
tc_init(&geode_timecounter);
EVENTHANDLER_REGISTER(watchdog_list, geode_watchdog,
NULL, 0);
@@ -270,13 +286,14 @@
case 0x0510100b:
gpio = pci_read_config(self, PCIR_BAR(0), 4);
gpio &= ~0x1f;
- printf("Geode GPIO@ = %x\n", gpio);
- if ( bios_oem_strings(&bios_soekris,
- bios_oem, BIOS_OEM_MAXLEN) > 0 ) {
+ if (bootverbose)
+ printf("Geode GPIO@ = %x\n", gpio);
+ if (bios_oem_strings(&bios_soekris,
+ bios_oem, sizeof bios_oem) > 0 ) {
led1b = 20;
led1 = led_create(led_func, &led1b, "error");
- } else if ( bios_oem_strings(&bios_pcengines,
- bios_oem, BIOS_OEM_MAXLEN) > 0 ) {
+ } else if (bios_oem_strings(&bios_pcengines,
+ bios_oem, sizeof bios_oem) > 0 ) {
led1b = -2;
led2b = -3;
led3b = -18;
@@ -289,27 +306,41 @@
*/
led_func(&led1b, 1);
}
- if ( strlen(bios_oem) )
+ if (*bios_oem)
printf("Geode %s\n", bios_oem);
break;
case 0x01011078:
- if ( bios_oem_strings(&bios_advantech,
- bios_oem, BIOS_OEM_MAXLEN) > 0 ) {
+ if (bios_oem_strings(&bios_advantech,
+ bios_oem, sizeof bios_oem) > 0 ) {
printf("Geode %s\n", bios_oem);
EVENTHANDLER_REGISTER(watchdog_list,
advantech_watchdog,
NULL, 0);
}
break;
case 0x20801022:
- if ( bios_oem_strings(&bios_soekris_55,
- bios_oem, BIOS_OEM_MAXLEN) > 0 ) {
- printf("Geode LX: %s\n", bios_oem);
+ if (bios_oem_strings(&bios_soekris_55,
+ bios_oem, sizeof bios_oem) > 0 ) {
led1b = 6;
led1 = led_create(cs5536_led_func, &led1b, "error");
+ } else if (bios_oem_strings(&bios_pcengines_55,
+ bios_oem, sizeof bios_oem) > 0 ) {
+ led1b = -6;
+ led2b = -25;
+ led3b = -27;
+ led1 = led_create(cs5536_led_func, &led1b, "led1");
+ led2 = led_create(cs5536_led_func, &led2b, "led2");
+ led3 = led_create(cs5536_led_func, &led3b, "led3");
+ /*
+ * Turn on first LED so we don't make
+ * people think their box just died.
+ */
+ cs5536_led_func(&led1b, 1);
}
- printf("MFGPT bar: %jx\n", rdmsr(0x5140000d));
- EVENTHANDLER_REGISTER(watchdog_list, cs5536_watchdog,
- NULL, 0);
+ if (*bios_oem)
+ printf("Geode LX: %s\n", bios_oem);
+ if (bootverbose)
+ printf("MFGPT bar: %jx\n", rdmsr(0x5140000d));
+ EVENTHANDLER_REGISTER(watchdog_list, cs5536_watchdog, NULL, 0);
break;
}
return (ENXIO);
---Mike
--------------------------------------------------------------------
Mike Tancsa, tel +1 519 651 3400
Sentex Communications, m...@sentex.net
Providing Internet since 1994 www.sentex.net
Cambridge, Ontario Canada www.sentex.net/mike
_______________________________________________
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "freebsd-stable-unsubscr...@freebsd.org"