Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 13 Mar 2002 08:17:04 -0700
From:      "Justin T. Gibbs" <gibbs@scsiguy.com>
To:        njh@tadpole.co.uk
Cc:        aic7xxx@FreeBSD.ORG
Subject:   Re: 64 bit machines 
Message-ID:  <200203131517.g2DFH4I45081@aslan.scsiguy.com>
In-Reply-To: Your message of "Wed, 13 Mar 2002 15:01:54 GMT." <200203131501.g2DF1sD03957@njh-1.tadpole.co.uk> 

next in thread | previous in thread | raw e-mail | index | archive | help
>I am confused by these lines from ahc_init. The type of physaddr is uint32_t. 
>What happens
>on a 64 bit architecture. I hear that it works on a 64 bit machine, which is f
>ine, I am not sure
>how it does though!
>
>-Nigel
>
>        physaddr = ahc->scb_data->hscb_busaddr;
>        ahc_outb(ahc, HSCB_ADDR, physaddr & 0xFF);
>        ahc_outb(ahc, HSCB_ADDR + 1, (physaddr >> 8) & 0xFF);
>        ahc_outb(ahc, HSCB_ADDR + 2, (physaddr >> 16) & 0xFF);
>        ahc_outb(ahc, HSCB_ADDR + 3, (physaddr >> 24) & 0xFF);
>
>        physaddr = ahc->shared_data_busaddr;
>        ahc_outb(ahc, SHARED_DATA_ADDR, physaddr & 0xFF);
>        ahc_outb(ahc, SHARED_DATA_ADDR + 1, (physaddr >> 8) & 0xFF);
>        ahc_outb(ahc, SHARED_DATA_ADDR + 2, (physaddr >> 16) & 0xFF);
>        ahc_outb(ahc, SHARED_DATA_ADDR + 3, (physaddr >> 24) & 0xFF);

The driver assumes that you can always map its "book-keeping" memeory
below 4GB in the PCI address space.  Take a look at the bus_dma_tags
that are created for this information.  The normal data path supports
addresses up to 39bits in size today, but will be extended to 64bits
in the near future.

--
Justin

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe aic7xxx" in the body of the message




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