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