HEAD panic with ofw_pcibus.c 1.21 on Blade 100

Gavin Atkinson gavin at FreeBSD.org
Mon Sep 1 16:42:11 UTC 2008


On Mon, 2008-09-01 at 18:18 +0200, Marius Strobl wrote:
> On Mon, Sep 01, 2008 at 03:20:27PM +0100, Gavin Atkinson wrote:
> > Hi all,
> > 
> > My Blade 100 now panics on boot with HEAD, and I've tracked it down to
> > sys/sparc64/pci/ofw_pcibus.c 1.21 (SVN r182108) by marius at .

> The most likely reason for this is a buggy driver. In this
> case the culprit appears to be the ISA front-end of ahc(4),
> which assumes that it can do bus space reads and writes at
> addresses that may in fact be assigned to a non-ahc(4)-
> compatible device or none at all. While writing something
> at an address that may no belong to the expected device
> probably is a bad idea in generally, reading to and writing
> from unassigned addresses may also trigger exceptions on
> sparc64. I'm unsure how to really fix ahc(4) regarding this,
> I think it should be okay though to only do it on i386 where
> the address range in question probably is reserved for such
> purposes (and which also is the only architecture FreeBSD
> currently runs on where a machine might have an ISA-slot
> and thus can use that front-end at all).
> Justin, do you approve the below patch?
> 
> Marius
> 
> Index: ahc_isa.c
> ===================================================================
> --- ahc_isa.c	(revision 182474)
> +++ ahc_isa.c	(working copy)
> @@ -82,6 +82,12 @@ ahc_isa_identify(driver_t *driver, device_t parent
>  	int slot;
>  	int max_slot;
>  
> +#if !defined(__i386__)
> +	/*
> +	 * Don't assume we can get away with the blind bus space
> +	 * reads and writes which ahc_isa_find_device() does.
> +	 */
> +#endif
>  	max_slot = 14;
>  	for (slot = 0; slot <= max_slot; slot++) {
>  		struct aic7770_identity *entry;

This patch (with the addition of a "return;" inside the #ifdef which I'm
assuming was forgotten!) gets me booting again with stock ofw_pcibus.c.
Thanks!

Gavin
-------------- next part --------------
A non-text attachment was scrubbed...
Name: aic-noisa.diff
Type: text/x-patch
Size: 665 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-sparc64/attachments/20080901/97e8bce9/aic-noisa.bin


More information about the freebsd-sparc64 mailing list