Re: [Q] TinyLinux project status (resend)


Rob Landley
 

On 04/28/2012 08:09 AM, Greg Ungerer wrote:
On 04/28/2012 04:15 PM, Rob Landley wrote:
On 04/27/2012 01:08 AM, Greg Ungerer wrote:
On 26/04/12 15:14, Rob Landley wrote:
I have also been able to boot an ARM noMMU kernel for the AT91x40 SoC
under SkyEye. This time, the userspace works fine. I haven't had the
time to clean up this, and it requires patches to both the kernel and
SkyEye to work properly. If you're interested, I'll give you these
patches and configs when I'm done with the cleanup.
I'm unlikely to play with skyeye (tried it once, but it was years ago).

Is there a strong reason nommu kernel's won't run on hardware or an
emulator that _does_ implement an mmu? (Can't it just not use it?)
No. It comes down to architectural support. There are a few that do
it. I have ColdFire hardware with MMU, it can be compiled and run
either with or without MMU enabled (by flicking the kernel's
CONFIG_MMU switch).
Architectural support in the kernel, or in the emulator?
In the kernel. For arches that don't currently do any non-mmu it is
usually the code in arch/foobar/mm and often some in arch/foobar/kernel
that has no concept of operating with the MMU turned off.
Surely there's a way to genericize this. Even on processors that don't
_come_ without an mmu, in ultra-low-memory environments doing without
page tables can still be a win sometimes...

Not having
nommu support for i386 is one thing, but why can I boot a nommu arm
under qemu?
It has been done on ARM targets in the past. I don't know if any can
be compiled and work both ways currently in mainline.
Considering that u-boot starts running before the mmu is set up, and
doesn't always bother to enable cacheing (and thus _never_ sets up the
MMU), I'd think it would have to work...

(What's involved in nommu archiectural support? Running a dedicated
single-process i386 system in 4 megs ram might get a bit easier if you
don't need to spend memory on page tables, seems nice to have the
_option_...)
It would be very nice to have :-)
The difficulty depends on the architecture. On some architectures some
important details just work differently with or without the MMU enabled
(things like caches, interrupts, etc).
Can you set the mmu into flat memory mode with everything running in
ring 0 and a 1:1 mapping of all physical memory?

(There was a Gargoyles episode where the way the way to fix the
character under a spell of obedience was to use it to command him to act
like he wasn't under a spell. Possibly same general theory here...)

Rob
--
GNU/Linux isn't: Linux=GPLv2, GNU=GPLv3+, they can't share code.
Either it's "mere aggregation", or a license violation. Pick one.

Join Celinux-dev@lists.celinuxforum.org to automatically receive all group messages.