Dear all, finally, a big blob with some first multicore changes plus some massive changes in newlib for better usability. Summary:
* mor1kx changes (https://github.com/wallento/mor1kx/tree/multicore) * adds SPR_COREID and SPR_NUMCORES * cherry-pick Stefan's l.lwa/l.swa * adds snoop port to abort atomic on write to same address * adds trace port (mor1kx_monitor does not work for two cores), this can then be used for synthesizable trace processing * adds ISR0 and ISR1 as "shadow register" alternative for calculations in the prolog of exceptions * or1k-src general changes (https://github.com/wallento/or1k-src) * reentrant libc as we may want to use libc in exception handling * different stacks for exception and software due to virtual memory * Extend or1k support with restore and some service functions * malloc_lock and malloc_unlock to avoid interrupts during malloc * multicore stuff (https://github.com/wallento/or1k-src/tree/multicore) * build two libgloss versions: libor1k.a and libor1k_mc.a, crt0{_mc}.o * use SPR_COREID and SPR_NUMCORES in or1k_coreid() and or1k_numcores() * cherry-pick Stefan's l.lwa/l.swa * Basic synchronization functions in or1k-support * Reentrant or1k-support for multiple cores * libc Reentrancy for multiple cores * malloc_lock uses l.lwa/l.swa * or1k-gcc (https://github.com/wallento/or1k-gcc/tree/multicore) * Add -mmulticore to switch between libor1k.a/crt0.o and libor1k_mc.a/crt0_mc.o You can run a demo (currently in Modelsim only) using fusesoc: * Modified orpsoc-cores at https://github.com/wallento/orpsoc-cores/tree/multicore-demo * (for 64-bit Modelsim: fusesoc at https://github.com/wallento/fusesoc) There is a very small example at: http://pastebin.com/1dyUnygK When you want to try it out and have ~20 minutes, try this walkthrough: http://pastebin.com/uDsh5DJE I am looking forward to all discussion and input. Bye, Stefan
smime.p7s
Description: S/MIME Cryptographic Signature
_______________________________________________ OpenRISC mailing list [email protected] http://lists.openrisc.net/listinfo/openrisc
