Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Running MMU-less Linux on ARM Cortex-R4

I'm using ARM Cortex-R4 for my system. It has a Memory Protection Unit instead of a Memory Management Unit. Effectively, this means that there's dedicated hardware for memory protection but that there's a one-to-one mapping between physical and virtual addresses. I'm a little confused about which Linux I should go for - standard Linux kernel with MMU disabled or uCLinux.

On ARM's evaluation board, I have run the standard kernel compiled with MMU disabled. I used the cramfs filesystem which is available on the official ARM website. After the kernel boots up, I'm in the shell, but I couldn't do much experimentation as I found that, most of the time, the shell stops responding (particularly when I press "tab" for auto-completion).

So I'm still not sure whether the MMU-less kernel should run smoothly if I use the correct filesystem. Also, which distro (buildroot?) should I use for the no-VM Linux?

Any idea or suggestion is welcome.

like image 676
Amit128 Avatar asked May 18 '12 06:05

Amit128


People also ask

Can ARM Cortex run Linux?

The scalability of Linux is another factor - it can run on the most powerful ARM processors. and its derivative, uClinux, is also commonly used on much smaller processors, including the Cortex-M3 or ARM7TDMI processors.

Does Cortex M4 have MMU?

Note: Most Cortex-M3 and M4 chips have bit-band and MPU. The bit-band option can be added to the M0/M0+ using the Cortex-M System Design Kit.

Can you run Linux on Cortex M4?

"Linux can not run in the confined flash and ram of cortex-M0 and cortex-M4 ARM processors." It depends entirely on how much RAM and flash those parts have. Many of these Cortex-M processors support the use of external RAM and flash.

Which ARM cores can run Linux?

Arch Linux ARM can run on any device that supports ARMv7 or ARMv8 instruction sets, including the 64-bit ARMv8 instruction set of the Raspberry Pi 3 and 4. For a list of officially supported platforms, see archlinuxarm. org's Platforms page. For a list of unofficial, community-supported devices, see archlinuxarm.


1 Answers

It's been more than 2 years since I asked this question. Now is the time I should write what I found for myself.

ucLinux was a project forked from the Linux kernel long back with the aim to develop Kernel for MMU less systems. However, after a certain while, it was merged to the parent Linux branch. So, today there doesn't exist any active ucLinux distribution.

So, if you disable MMU from the mainline kernel configuration, you'll get an MMU-less version. In fact, now there are configuration options provided in the kernel itself whereby a user can specify the memory layout and the access permissions.

Cheers!

like image 105
Amit128 Avatar answered Sep 28 '22 13:09

Amit128