Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 17 Nov 2005 12:43:52 -0700
From:      Scott Long <scottl@samsco.org>
To:        Matthew Dillon <dillon@apollo.backplane.com>
Cc:        alan bryan <alanbryan1234@yahoo.com>, FreeBSD current mailing list <current@freebsd.org>, Mike Tancsa <mike@sentex.net>, freebsd-current@freebsd.org, Alexander Leidinger <Alexander@leidinger.net>, "Bjoern A. Zeeb" <bzeeb-lists@lists.zabbadoz.net>
Subject:   Re: Side note on Shuttle XPC / AMD X2 (SN95G5V3) (Re: [PATCH] nve(4) locking cleanup)
Message-ID:  <437CDD78.3010500@samsco.org>
In-Reply-To: <200511171915.jAHJF0L6006229@apollo.backplane.com>
References:  <20051117010651.97608.qmail@web50303.mail.yahoo.com>	<Pine.BSF.4.53.0511171134430.80787@e0-0.zab2.int.zabbadoz.net>	<20051117143322.lvz347pzkcg480co@netchild.homeip.net>	<200511171135.53903.jhb@freebsd.org>	<6.2.3.4.0.20051117120533.057ddae0@64.7.153.2> <200511171915.jAHJF0L6006229@apollo.backplane.com>

next in thread | previous in thread | raw e-mail | index | archive | help
I looked up this box and it looks pretty interesting, but I don't have 
funds to buy one for myself at the moment.  Is the motherboard logic any 
different from normal NF4 boards?  Could you try booting the FreeBSD 
6.0-bootonly disk to see if at least sysinstall comes up and can talk
to your drives and network chips?

Scott

Matthew Dillon wrote:

>     I haven't tried booting FreeBSD on my Shuttle XPC / AMD X2 based box,
>     but if you have users that are and are hitting either of the following
>     two problems, then I was able to implement a solution for DragonFly:
> 
>     Problem #1: 
> 
> 	ICU (traditional 8259) interrupt routing build:  IRQ 7 recieves 
> 	an unmaskable interrupt for every real interrupt that occurs on
> 	the system.  Interrupt vector 7 is issued no matter how the 8259
> 	or LAPIC is programmed.
> 
>     Solution:
> 
> 	This occurs because the '8259' is routed to the cpu via the 
> 	hypertransport bus, and the Shuttle BIOS has not set the bit
> 	in the Hyper Transport Transaction Control Register that routes
> 	it to the LAPIC.  If you have an AMD X2 cpu, the 8259 interrupt
> 	winds up being routed to BOTH cpus.  BOTH cpus issue an INTA 
> 	cycle, and of course one of those cycles will always cause the 8259
> 	to return a spurious interrupt vector (whether the interrupt is
> 	masked or not).
> 
>     DragonFly Commit:
> 
> 	http://leaf.dragonflybsd.org/mailarchive/commits/2005-11/msg00038.html
> 
>     --
> 
>     Problem #2:
> 
> 	MPTable has an entry for IRQ 14 but not IRQ 15.  This can cause
> 	the ATA driver to lock the system up while attempting to access
> 	the CD.
> 
>     Solution:
> 
> 	If using the MPTable, a fixup is required.
> 
>     DragonFly Commit:
> 
> 	http://leaf.dragonflybsd.org/mailarchive/commits/2005-10/msg00095.html
> 
>     --
> 
>     Problem #3:
> 
> 	ACPI and/or MPTable based interrupt routing is completely broken
> 	for SMP builds.  The tables report interrupt routing pins > 23
> 	on a motherboard which only has one IO APIC with only 24 bits (0-23).
> 	Interrupts cannot be properly routed.
> 
> 	In addition, note that traditional ISA interrupts will not be 
> 	properly routed or be properly maskable unless you implement the
> 	solution for Problem #1.  It is unclear whether this motherboard
> 	even *routes* the traditional ISA interrupts to the IO APIC at all.
> 	I assume it must, but I gave up on that line of investigation once
> 	I managed to get SMP to work with ICU interrupt routing.
> 
> 	Note that DFly is still running the 'old' ACPI interrupt routing
> 	code, so FreeBSD's ACPI might (or might not) do a better job.
> 
>     Solution:
> 
> 	ICU mode must be used.  With the fix for Problem #1 in place, ICU
> 	mode *CAN* be used with the LAPIC's active, and thus can be used 
> 	while running SMP.
> 
>     (For DragonFly I made it possible to build SMP without APIC_IO.  I seem
>     to recall that FreeBSD has a similar problem).
> 
> 						-Matt
> 
> _______________________________________________
> freebsd-current@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-current
> To unsubscribe, send any mail to "freebsd-current-unsubscribe@freebsd.org"




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