Hi Le Guan,
thank you for your kind words, and also for sharing your insights with us!
Triggered by your mail, I've also played around with the "system reset controller" using the i.MX6 Wandboard on Friday. However, I did not incorporated the results yet. Although the additional cores are booted correctly, our mp_server.run and affinity.run scripts, which test out the SMP functionality, triggered faults on this board. I assume Genode's current master branch is still missing some cache/shareability fixups regarding Cortex A9 CPUs, which is addressed in the issue #1312 that I've mentioned in my last mail.
We definitely will target those issues soon. In the meantime, if you need to use multiple cores on i.MX6, I suggest to look at Martin Stein's issue branch for all changes regarding cache maintainance and shareability attributes.
Kind Regards Stefan
On 10/02/2015 07:52 PM, Le Guan wrote:
Hi Stefan, The last post doesn't render correctly. I copied some macro definitions from freescale SDK, and I have validated that it can kick off the remaining 3 cores. Please find the patched repos/base-hw/src/core/include/spec/imx6/board.h in the attachment.
Thanks for your amazing work. Best regards, Le Guan
On Fri, Oct 2, 2015 at 8:34 AM, Stefan Kalkowski < stefan.kalkowski@...1...> wrote:
Hi Le Guan,
can you provide the changes you did, so we are able to reproduce it?
I know there are still issues with SMP on Cortex A9 in our current implementation. They are targeted by the work of Martin Stein on issue #1312 in our issue tracker:
https://github.com/genodelabs/genode/issues/1312
However, the provided solution only uses the Pandaboard, and is not yet ready for our master branch. But given your knowledge regarding the scratch register used to provide the entrypoints to the additional cpu cores, we could test it with the Wandboard.
Regards Stefan
On 09/30/2015 12:07 AM, Le Guan wrote:
Hello everyone, I wonder if the current release supports SMP in base-hw. I read from the genode book that base-hw has well supported SMP long time ago. But the default configure in wandBoard sets NR_OF_CPUS to 1. When I change that value to 4 and implement several auxiliary SMP functions and run the program, there seems to be some error happen. Below is the output:
core 0 enabled kernel initialized core 1 enabled core 2 enabled core 3 enabled Genode 15.08-25-g5cf8c49 <local changes> int main(): --- create local services --- int main(): --- start init ---
The booting is stuck here. I have implemented the corresponding Cpu::start_secondary_cpus, Cpu::primary_id() and Cpu::executing_id().
What
else should I implement to boot SMP?
Thanks in advance! Best regards, Le Guan
genode-main mailing list genode-main@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/genode-main
-- Stefan Kalkowski Genode Labs
http://www.genode-labs.com/ · http://genode.org/
genode-main mailing list genode-main@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/genode-main
genode-main mailing list genode-main@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/genode-main