GSOC 2018 ARM Cortex Processor

Konstantin Belousov kostikbel at gmail.com
Tue Mar 13 09:26:40 UTC 2018


On Tue, Mar 13, 2018 at 12:22:03AM -0600, Warner Losh wrote:
> There's not currently any other FreeBSD port that works on a system without
> a MMU. The buffer cache assumes that we can fault in pages as needed based
> on virtual address access. The TEXT sharing between programs assumes we can
No, buffer cache does not fault the pages in, but it is indeed relies
somewhat on ability to remap pages.  This is true for B_VMIO buffers,
not for the malloc-ed buffers.

> map the same page into multiple processes. The shared libraries we have
> assume something similar, and in some cases copy on write on top of that
> (though that's no different from a HW perspective than these first few
> cases).
> 
> So, if you're willing to live without these features, or find some other
> way to accomplish the same sorts of things, a cortex M/R port would be
> tricky. Also, FreeBSD's kernel size may present some obstacles. We're
> optimized for a rich memory environment, so we trade extra copies of code
> to speed up execution of code, which matches the x86 market, as well as the
> high-end of embedded quite well.
Living without the listed features means, in essence, that userspace
cannot be even started. Which, in fact, is not that fatal for the
applications where -R cores are supposed to be used. If kernel-only
operations are enough, or the application is adopted to be run as part
of the kernel, it might be quite fun project to take.


More information about the freebsd-embedded mailing list