MicroPython (just the compiler/VM/standard library) part doesn't need anything special from the hardware. If you have a C compiler, then you should be good.
The only reason you can't use the Unix port directly isn't because of the MMU, it's just that it makes some assumptions that it's running on a regular sized Unix machine (i.e. the default heap size). You might find that you can get it working quite easily by adjusting some things.
But if you just want to test out the concept, I'd start simple with the embedding example I linked to -- it makes a simple userspace application that embeds MicroPython with a tiny 16kiB heap and a basic REPL, and only the minimum of MicroPython functionality. Once you have Linux running on your board, you should try building this example. Then you can incrementally turn on additional functionality with mpconfigport.h etc.
This is in comparison to starting with the STM32 port, which I don't think is a good option (even though it will ultimately be running on an STM32 chip, your hardware API is the kernel, not the STMHAL).
When it comes to accessing hardware, you'll need to essentially write an equivalent implementation of modmachine.c, etc that knows how to access GPIO / SPI / etc through the Linux kernel. This would potentially be a really useful thing. This forum thread
viewtopic.php?t=6327 has an example of someone making a start on this for Raspberry Pi but unfortuantely the GitHub link is broken (was
https://github.com/hacksterous/micropyt ... /mpbcm2835 )