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. _______________________________________________ Celinux-dev mailing list Celinux-dev@lists.celinuxforum.org https://lists.celinuxforum.org/mailman/listinfo/celinux-dev