Subject: Re: bce(4) and memory > 1GB problem
To: Yorick Hardy <yhardy@uj.ac.za>
From: Jachym Holecek <freza@dspfpga.com>
List: tech-kern
Date: 01/17/2007 14:18:50
# Yorick Hardy 2007-01-17:
> --- sys/dev/pci/if_bce.c.orig	2007-01-06 11:49:53.000000000 +0200
> +++ sys/dev/pci/if_bce.c	2007-01-15 10:56:50.000000000 +0200
> @@ -293,7 +293,16 @@
>  	KASSERT(bp != NULL);
>  
>  	sc->bce_pa = *pa;
> -	sc->bce_dmatag = pa->pa_dmat;
> +
> +	/* BCM440x can only address 30 bits (1GB) */
> +	if(bus_dmatag_subregion(pa->pa_dmat, 0, (1 << 30),

Shouldn't this be s/1 << 30/0x3fffffff/ (or (1 << 30) - 1) then? Looks
like the value is passed to uvm_pglistalloc() which uses inclusive address
range I think.

	-- Jachym