GENERIC kernel issues

Tim Kientzle kientzle at freebsd.org
Sun Mar 3 19:43:31 UTC 2013


I spent some time yesterday putting together a kernel
configuration for a GENERIC ARM kernel that would
support both RaspberryPi and BeagleBone.

Just to see how far I could get.

Here's a list of the problems I've found so far:

** Multiple MMU support.  If you put these two lines into an
ARM kernel config, the build will fail in the MMU code:

	cpu 		CPU_ARM1176
	cpu		CPU_CORTEXA

Basically, this turns on the support for multiple MMUs but the
ARMv6/ARMv7 MMU definitions don't play nicely with run-time
MMU selection.

** PHYSADDR/KERNPHYSADDR hardwiring.  Ian has made a
lot of progress and I'm working on some related changes to
address this.  I think we understand how to eliminate these
constants and replace them with run-time detection of the
load address.  I'm still not sure what changes might be needed
to the loader to make this work.

** PIPT vs. VIVT cache management.  This is currently set at compile
time; we'll need to have a way to set this at run time based on the
CPU.  (I have some skeletal code to select CPU at the top of
initarm by inspecting the FDT.  I presume this switch will be routine
once a robust version of that is in place.)

** TI processor detection.   This is currently hardwired at build time,
so we cannot currently build a kernel that supports both AM335x
and OMAP4, for example.

Question:  should we create a /projects/arm-generic/ branch
to hold this work while it's in flux?

Tim

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 495 bytes
Desc: Message signed with OpenPGP using GPGMail
URL: <http://lists.freebsd.org/pipermail/freebsd-arm/attachments/20130303/914ac9db/attachment.sig>


More information about the freebsd-arm mailing list