amd64/130303: FreeBSD 7.1-RELEASE amd64 cannot boot on VIA Nano equipped systems

Koen Smits kgysmits at gmail.com
Thu Jan 8 07:50:02 PST 2009


>Number:         130303
>Category:       amd64
>Synopsis:       FreeBSD 7.1-RELEASE amd64 cannot boot on VIA Nano equipped systems
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-amd64
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Thu Jan 08 15:50:01 UTC 2009
>Closed-Date:
>Last-Modified:
>Originator:     Koen Smits
>Release:        7.1-RELEASE
>Organization:
>Environment:
>Description:
boot loader checks if the 64bit CPU is Intel or AMD, obviously VIA is neither of them. boot process reports "CPU does not support long mode" and asks for kernel.

See simple patch below.
Maybe this check should not be performed at all?
Note that VIA CPU's allow you to change the vendorstring. This could lead to more trouble.
>How-To-Repeat:
Boot 7.1-RELEASE Disc1 on VIA Nano equipped system. (VIA VB8001 for example)
>Fix:
/usr/src/sys/boot/i386/libi386/bootinfo64.c:

Line 152+:
        !           152:     /* Check for vendors that support AMD features. */
        !           153:     if (strncmp(cpu_vendor, "GenuineIntel", 12) != 0 &&
        !           154:        strncmp(cpu_vendor, "AuthenticAMD", 12) != 0)
        !           155:        return (0);

change to:

    /* Check for vendors that support AMD features. */
    if (strncmp(cpu_vendor, "GenuineIntel", 12) != 0 &&
	strncmp(cpu_vendor, "AuthenticAMD", 12) != 0 &&
	strncmp(cpu_vendor, "CentaurHauls", 12) != 0)
	return (0);


>Release-Note:
>Audit-Trail:
>Unformatted:


More information about the freebsd-amd64 mailing list