Stichting-MINIX-Research-Foundation / minix

Official MINIX sources - Automatically replicated from gerrit.minix3.org
Other
2.91k stars 947 forks source link

ARM Porting #249

Open BlamKiwi opened 6 years ago

BlamKiwi commented 6 years ago

I'm looking at porting Minix to a different ARM chip to the Beaglebones. What parts of the Minix codebase should I be looking at modifying? Obviously there's the UBoot infrastructure and some of the low level code, but what other components are there for getting the microkernel and a shell running?

sambuc commented 6 years ago

Hello,

If your new chip is using the ARMv7-a architecture, you will need to:

If you chip is using another revision of the ARM architecture, you will need to:

If NetBSD does not support your architecture, you will most likely have to add support there as well. This might also require changes in the toolchain.

Without this level of details, I cannot be more specific.

Here is a list of the folder with arm-specific code, which are in minix folder of the Minix source tree:

./drivers/bus/i2c/arch/earm
./drivers/clock/readclock/arch/earm
./drivers/tty/tty/arch/earm
./drivers/usb/usbd/base/earm
./drivers/video/fb/arch/earm
./include/arch/earm
./kernel/arch/earm
./lib/libc/arch/arm
./lib/libminc/arch/earm
./lib/libsys/arch/earm
./servers/vm/arch/earm
boricj commented 6 years ago

You can also look at https://github.com/Stichting-MINIX-Research-Foundation/gsoc/commits/2017-rpi and https://groups.google.com/d/msg/minix3/OLCpnlxVbs4/7WueDlFuBgAJ for an example with the Raspberry Pi.

stux2000 commented 6 years ago

This may be slightly off topic but I've been curious to know: how feasible is it to merge in the current 2017-rpi work into mainline? Is the kernel in a broken state? It seemed to me from reading the wiki page ( https://wiki.minix3.org/doku.php?id=soc:2017:portrpi ) that a lot of items reached a decent level of completion. I'd rather see this code reach mainline sooner rather than later to avoid bit-rot. That said, I know that any such merge should happen after 3.4.0 is released (what's the status on that after the most recent fix?)