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>