[uClinux-dev] Re: [leon_sparc] flush_cache_*() functions for sparcnommu

From: The LEOX team (lpm@leox.org)
Date: Tue Aug 21 2001 - 17:48:54 EDT


Hi Christian,

caschrei@rockwellcollins.com wrote:
> 
> Dear Folks:
> 
> I can't find a function definition for my architecture.  Has anyone created
> a version, or know where I can download one?

If you refere to Greg Ungerer's general uClinux distribution, i have
uClinux/Sparc for LEON over TSIM running. From now the kernel 2.0.38 is
running and a very simple ROMdisk file system. I have to work on
relocation of the .text & .data sections before diving into the C
library and the userland port.

> The function is flush_cache_mm(), it is an architecture dependant function,
> and I'm using a Leon-SPARC microcontroller (based on a sparc-without-mmu
> core).

Well in fact, you have 4 functions to provide for your architecture:
	flush_cache_mm()
	flush_cache_range()
	flush_page_to_ram ()
	flush_pages_to_ram ()

> The latest 2.0.38 fixes I've picked up call a functon called flush_cache_mm
> ().  This function is defined in other architectures in the
> arch/<architecture>/kernel directory.  For sparcnommu, however, the
> function is only declared (gets a prototype specified) in
> include/asm-sparcnommu/pgtable.h.  But the function is never defined (given
> an actual function body).  Incidentally, the flush_cache_mm() is actually
> declared as a pointer to function, and the pointer is never initialized
> anywhere.

Yes. On the preliminary uClinux/Sparc port, you have a mix between
Linux/sparc port and uClinux port!
But beware that include/asm-sparcnommu/pgtable.h includes codes used
only when SMP is enabled, and uClinux does not implement this feature.

> The same problems apply to several other flush_cache_<something>()
> functions.
>
> The uClinux downloads I have are:
> 
> linux 2.0.38 (from kernel.org)
> uClinux 2.0.38.1pre7
> sparc package uClinux-Sparc-2.0.dec3.diff.gz
> these files patched with latest versions from the uClinux-2.0.38
> development CVS archive:
>      fs/binfmt_flat.c (this is what is calling flush_cache_mm(), the old
> version of this file did not call this function)
>      a couple related header files whose names I forget (I can look them up
> if someone needs the information)

OK, I will update the uClinux port web page on www.leox.org in order to
help everyone who wants to work on the uClinux/Sparc port to get the
latest sources.

> I just unpacked Mr Ungerer's coldfire 20010529 version of uClinux-2.0.38,
> and am considering that as a base for another attempt, though if that
> version depends on the flush_cache_<something>() functions being in the
> architecture package, I'm back in the same boat I'm in now.

Used instead uClinux-distribution-20010622.tar.gz

> Thank you in advance,
> 
>           -- Christian Schreiner
>           caschrei@rockwellcollins.nospam.com (minus the .nospam)

Will keep you in touch.

-- 
Best Regards
The LEOX team

http://www.leox.org : Free Hardware and Software Resources for
System-on-Chip
This message resent by the uclinux-dev@uclinux.org list server http://www.uClinux.org/


This archive was generated by hypermail 2.1.4 : Thu Sep 19 2002 - 13:20:05 EDT