All of lore.kernel.org
 help / color / mirror / Atom feed
From: Peter Desnoyers <pdesnoyers@chinook.com>
To: "Justin (Gus) Hurwitz" <ghurwitz@dyndns.com>
Cc: Daris A Nevil <dnevil@snmc.com>, linuxppc-embedded@lists.linuxppc.org
Subject: Re: Non-cacheable memory
Date: Thu, 09 Aug 2001 15:27:09 -0400	[thread overview]
Message-ID: <3B72E40D.3080600@chinook.com> (raw)
In-Reply-To: Pine.LNX.4.33.0108091838380.11077-100000@localhost.localdomain


Justin (Gus) Hurwitz wrote:

> On Tue, 7 Aug 2001, Daris A Nevil wrote:
>>
>>Here is the procedure I used to allocate pages and mark them as non-cached in
>>the 2.2.5 kernel (SNMC's QSLinux):
>>
>>    mem_addr = __get_free_page(GFP_KERNEL);
>>    pte = va_to_pe(&init_task, mem_addr);
>>    pte_val(*pte) |= _PAGE_NO_CACHE;
>>    flush_tlb_page(current->mm_mmap, mem_addr);
>>
>>I used these pages for SCC buffer descriptors, so they were never returned to
>>the system. I'm not sure if this is the preferred way, but it certainly works.
>>I have not tried this in the 2.4 kernel yet.  The functions __get_free_page()
>>and flush_tlb_page() do exist in 2.4.4, but I could not locate va_to_pe()  (I
>>think that was a macro in 2.2.5).


In 2.4 you can use consistent_alloc() - this allocates memory and makes
it non-cachable.  (well, it makes it consistent w.r.t. PCI DMA, but for
860s it's the same thing.)  It returns a virtual address plus a DMA
address in an arg ptr - throw away the DMA address, as that's
PCI-specific, and run the virtual address through virt_to_phys().

--
.....................................................................
  Peter Desnoyers            (781) 457-1165   pdesnoyers@chinook.com
  Chinook Communications     (617) 661-1979   pjd@fred.cambridge.ma.us
  100 Hayden Ave, Lexington MA 02421


** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/

  reply	other threads:[~2001-08-09 19:27 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-08-07 18:49 Non-cacheable memory Justin (Gus) Hurwitz
2001-08-07 15:59 ` Tom Roberts
2001-08-07 18:34   ` Daris A Nevil
2001-08-09 22:49     ` Justin (Gus) Hurwitz
2001-08-09 19:27       ` Peter Desnoyers [this message]
2001-08-11  3:47         ` Dan Malek
2001-08-13 15:47           ` Peter Desnoyers
2001-08-14 21:26             ` Dan Malek

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=3B72E40D.3080600@chinook.com \
    --to=pdesnoyers@chinook.com \
    --cc=dnevil@snmc.com \
    --cc=ghurwitz@dyndns.com \
    --cc=linuxppc-embedded@lists.linuxppc.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.