Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 17 Jan 2003 09:33:50 +0900
From:      Hidetoshi Shimokawa <simokawa@sat.t.u-tokyo.ac.jp>
To:        Nate Lawson <nate@root.org>
Cc:        Sam Leffler <sam@errno.com>, cvs-all@FreeBSD.org, cvs-committers@FreeBSD.org
Subject:   Re: cvs commit: src/sys/dev/firewire firewire.c fwdev.c fwohci.c         fwohcivar.h
Message-ID:  <ybsn0m0zkb5.wl@ett.sat.t.u-tokyo.ac.jp>
In-Reply-To: <Pine.BSF.4.21.0301161546050.47824-100000@root.org>
References:  <20e801c2bdad$770d56f0$5a557f42@errno.com> <Pine.BSF.4.21.0301161546050.47824-100000@root.org>

next in thread | previous in thread | raw e-mail | index | archive | help
At Thu, 16 Jan 2003 15:47:24 -0800 (PST),
Nate Lawson wrote:
> 
> On Thu, 16 Jan 2003, Sam Leffler wrote:
> > > >>   Modified files:
> > > >>     sys/dev/firewire     firewire.c fwdev.c fwohci.c fwohcivar.h
> > > >>   Log:
> > > >>   Improve memory allocation.
> > > >>   - Don't use contigmalloc() and allocate page by page to avoid
> > > >>           allocation failure.
> > > >>   - allocate buffer by PAGE_SIZE.
> > > >
> > > > Some comments.
> > > >
> > > >> - contigfree((void *)(uintptr_t)sc->fc.sid_buf,
> > > >> - OHCI_SIDSIZE, M_DEVBUF);
> > > >> + free((void *)(uintptr_t)sc->fc.sid_buf, M_DEVBUF);

This is to stop compiler warning.

> > > malloced buffers are not guaranteed to be accessable by a device.
> > > Use bus dma instead.

Moreover, sid_buf must be 2KB aligned and continuous in physical memory.
Can I assumed 2KB malloced buffer is 2KB aligned on all plathomes?
(or still need to use contigmalloc?)

> > New drivers should use bus_dma.  I recently hit an issue like this with
> > jumbo mbufs not being handled by the bge driver because it doesn't use bus
> > dma.
> 
> Valid points.  I just wanted to clarify that many of his mallocs are not
> for buffers addressed by dma but also for control/header structures.  
> Those do not need to be changed.

1394 OHCI needs large context program area.
For example, to transmit DV stream, current code requests
 (16*3) bytes * 2400 blocks
and each block must be continuous.
Is there any code to help such allocation with bus dma?

I agree with original code(you know the code is not
written by me) has many flaws and I'm fixing it one by one.
Of course, converting to bus dma is in TODO list but not the
first one now.

See
http://developer.intel.com/technology/1394/download/ohci_11.htm
for detail.

/\ Hidetoshi Shimokawa
\/  simokawa@sat.t.u-tokyo.ac.jp
PGP public key: http://www.sat.t.u-tokyo.ac.jp/~simokawa/pgp.html

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




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