mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: veerasena reddy <veerasena_b@yahoo.co.in>
To: Ralf Baechle <ralf@linux-mips.org>
Cc: linux-mips <linux-mips@linux-mips.org>,
	"linux-kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: linux cache routines for Write-back cache policy on  MIPS24KE
Date: Mon, 8 Oct 2007 14:58:31 +0100 (BST)	[thread overview]
Message-ID: <953878.89810.qm@web8402.mail.in.yahoo.com> (raw)
In-Reply-To: <20071003105751.GD29244@linux-mips.org>

Ralf,

thanks for the detailed information.
> Anyway, it would be much easier to help you if we
> knew what you are trying
> to achieve with these functions.

Basically our target has a MIPS24KE host processor on
which Linux runs and a networking processor (NP) which
sits between the EMAC contoller and the host processor
to receive/transmit the data/packets.

This peripheral networking processor uses the physical
addresses only. We are using write-back caching policy
on MIPS24KE. So,
1. when we want to transmit the packet from the host
to peripheral processor, we need to convert packet
buffer into physical address (CPHYSADDR) and put it
into the NP's Tx queue, which will be sent to EMAC.
Before converting into physical address we need to
flush the corresponding cache entries.
Which API should be used to achieve the above
functionlaity in Linux-2.6.18 kernel?

2.Similarly in receivng path, the peripheral processor
gives the physical address of the buffer containing
the received packet. So, on host we need to convert
this physical address into cached address (KSEG0ADDR).
Before converting to cached address we need to
invalidate the corresponding cache entries.

Which API should be used to achieve the above
functionlaity in Linux-2.6.18 kernel?

currently we are using dma_cache_wback_inv() to
achieve above two functionalities. 
Could you please suggest us the right API to be used?

Thanks in advance.

Regards,
Veerasena.

--- Ralf Baechle <ralf@linux-mips.org> wrote:

> On Mon, Oct 01, 2007 at 01:10:59PM +0100, veerasena
> reddy wrote:
> 
> > Is there any problem if we use the below API's in
> > linxu-2.6.18 
> >   - dma_cache_wback_inv()
> >   - dma_cache_wback()
> >   - dma_cache_inv()
> > 
> > functionality wise, especially in r4k.c i dont see
> any
> > difference between the implementation of these
> APIs.
> > 
> > Can we apply the 2.6.24 patch to kill these APIs
> on
> > 2.6.18 kernel? In this case what APIs i can use
> for
> > writeback, invalidation or both?
> > 
> > I couldn't find any info. related to the above API
> in
> > DMA-API.txt. Could you please give some pointers
> on
> > the usage/working of these APIs.
> 
> dma_cache_* were never documented.  They respresent
> the earliest attempt
> at coming up with an API that enables portable
> drivers and it has a few
> shortcomings and like so many early things it was
> never formally documented,
> so don't expect any well defined semantics.  The
> functions never got
> formally retired probably because it somehow managed
> to stay under the
> radar.
> 
> Any drivers should use the APIs documented in
> Documentation/DMA-API.txt
> only.  The almost equivalent operation for
> dma_cache_* would be
> dma_sync_single and dma_sync_sg.
> 
> Don't even dream about using dma_cache_* for
> anything but DMA coherency.
> They're all internal low level APIs which know
> nothing about Linux's
> virtual memory system.
> 
> Anyway, it would be much easier to help you if we
> knew what you are trying
> to achieve with these functions.
> 
>   Ralf
> 



      Chat on a cool, new interface. No download required. Go to http://in.messenger.yahoo.com/webmessengerpromo.php


      reply	other threads:[~2007-10-08 13:58 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-10-01  9:04 veerasena reddy
2007-10-01  9:23 ` Geert Uytterhoeven
2007-10-01 10:51   ` veerasena reddy
2007-10-01 11:42     ` Geert Uytterhoeven
2007-10-01 12:13       ` veerasena reddy
2007-10-01 10:59 ` Ralf Baechle
2007-10-01 12:10   ` veerasena reddy
2007-10-03 10:57     ` Ralf Baechle
2007-10-08 13:58       ` veerasena reddy [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=953878.89810.qm@web8402.mail.in.yahoo.com \
    --to=veerasena_b@yahoo.co.in \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mips@linux-mips.org \
    --cc=ralf@linux-mips.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

Powered by JetHome