amd64/67745: boot fails on compaq presario r3000z

Jung-uk Kim jkim at niksun.com
Fri Jul 2 08:35:25 PDT 2004


On Thursday 01 July 2004 03:10 pm, Jung-uk Kim wrote:
> On Monday 28 June 2004 03:40 am, Jeff Connelly wrote:
> > The following reply was made to PR amd64/67745; it has been noted
> > by GNATS.
> >
> > From: Jeff Connelly <shellreef at gmail.com>
> > To: freebsd-gnats-submit at freebsd.org
> > Cc:
> > Subject: Re: amd64/67745: boot fails on compaq presario r3000z
> > Date: Mon, 28 Jun 2004 00:31:35 -0700
> >
> >  FYI Jung-uk Kim responded to this issue but it didn't make it to
> > gnats:
> >
> >
> > http://lists.freebsd.org/pipermail/freebsd-amd64/2004-June/001636
> >.h tml
> >
> >  Anyone want to take a stab at it?
>
> I found a fix and diff's attached.  This hack lets you boot in
> 'safe mode' and seems harmless for Compaq R3000Z.
>
> Somehow this machine shuts down when it issues 'Keyboard Interface
> Test' command (0xab) to port 0x64.
>
> http://www.clipx.net/ng/hardware/ng1462d.php
>
> It only boots in 'safe mode' because of broken nForce3/BIOS.  See
> the chipset section from the following link:
>
> http://withagen.dyndns.org/FreeBSD/notes/amd64-hardware.html
>
> We may need to add this in hints as a flag (e. g.,
> hint.atkbdc.0.flags) or a MIB (e. g., hw.atkbdc.disable_test).
>
> I only verified in FreeBSD/amd64 but it should work for
> FreeBSD/i386 and DragonFlyBSD.

I built FreeBSD -STABLE last night with the patch and it's working 
fine including xorg server.

BTW, I found I had to turn off aux port test to make touch pad 
working.  Final diff attached.

Cheers,

Jung-uk Kim

> Cheers,
>
> Jung-uk Kim
>
> * PS: Since we have ACPI blacklist feature now, we can blacklist
> this BIOS.
-------------- next part --------------
--- src/sys/dev/kbd/atkbdc.c.orig	Fri Jul  2 11:16:41 2004
+++ src/sys/dev/kbd/atkbdc.c	Fri Jul  2 11:17:12 2004
@@ -944,6 +944,7 @@
 int
 test_kbd_port(KBDC p)
 {
+#if 0
     int retry = KBD_MAXRETRY;
     int again = KBD_MAXWAIT;
     int c = -1;
@@ -965,11 +966,15 @@
     if (verbose || bootverbose)
         log(LOG_DEBUG, "kbdc: TEST_KBD_PORT status:%04x\n", c);
     return c;
+#else
+    return 0;
+#endif
 }
 
 int
 test_aux_port(KBDC p)
 {
+#if 0
     int retry = KBD_MAXRETRY;
     int again = KBD_MAXWAIT;
     int c = -1;
@@ -991,6 +996,9 @@
     if (verbose || bootverbose)
         log(LOG_DEBUG, "kbdc: TEST_AUX_PORT status:%04x\n", c);
     return c;
+#else
+    return 0;
+#endif
 }
 
 int


More information about the freebsd-amd64 mailing list