crosscompiler and porting notes
Mark Tinguely
tinguely at casselton.net
Tue May 19 21:00:54 UTC 2009
sorry for the blank reply. It should have said
Looking at the current sources for the GNU assembler, it appears to me that
the "gas" sources do not have some new and important ARMv7 commands such as
"dmb", "dsb", and "isb" (barriers). There ARMv6 equivalent command, but
are not recommended.
---
I looked at the Cortex document, the first thing that changed in ARMv7
is the information registers (for example information on the caches).
You will need to replace the CPU information and intialization code.
It would be nice to get an ARMv7 ARM. Someone with authority, like the
FreeBSD Foundation may be needed.
---
You will need to write a new cpufunc_asm_XXX.S file of routines. The
existing routines assume the pmap will flush the caches on context change.
---
I would suggest you start by using the existing memory model of flushing
caches on context changes until we learn more on the Cortex cache - are they
*really* not effected by the cache coloring problem.
If you can get the console working, and are willing to put some test
code into somewhere like pmap_bootstrap(), to test if the cache coloring
is really fixed, I would write it up.
---
I have some rough code for the new ARMv6/ARMv7 TLS registers, the tlb ASID
and load and store exclusive. You have plenty to do to get the board up
to single user, without having to worry about this other stuff.
--Mark.
More information about the freebsd-arm
mailing list