Hi Praveen,
On 26.03.2015 18:30, Praveen B wrote:
Taking into consideration all the issues, we have forked another repository, https://github.com/iitmadras/genode and updated the commits.
Please take a look at it.
Good that you've re-based and merged your work. This way, it shouldn't be a big deal to bring in our Wandboard port as base.
By the way, is SMP enabled for CortexA9 processors in the latest base-hw version?
No, there is a local topic branch in my repository that enables Cortex-A9 SMP but it causes problems with another board and thus isn't merged yet. However, if you like to try SMP, I can re-base it for you.
Because In our port if we return false for is_smp() function of our board, there is an unresolved page fault in the Core thread. We have also assigned variable, NR_OF_CPUS = 1.
Thats because 'is_smp' doesn't reflect wether SMP extensions are used by Genode (this is what 'NR_OF_CPUS' is for) but merely wether they're provided by the board. The return value of 'is_smp' is needed to decide on the sharebility and cacheability of translation tables which, if not set on SMP boards, causes new translations to not appear before an appropriate cache flush. That's why you receive a page fault. On platforms without SMP extensions, the flush is achieved through the hook 'Cpu::translation_added'.
The file 'serial.h' in spec/imx can be an issue for our board, because our board uses UART 0x021e8000 as you mentioned below. We'll think about how to solve it.
I think, as we'll need to split up 'drivers/board_base.h' for Wandboard and your board anyway, the best solution would be to define
UART_1_IRQ = 59, UART_1_MMIO_BASE = 0x021e8000,
in 'platform_your_board/drivers/board_base.h' and
UART_1_IRQ = 58, UART_1_MMIO_BASE = 0x02020000,
in 'platform_wand_quad/drivers/board_base.h'. This way we can keep the generic serial header.
We will try to run the code on our board as soon as possible and let you know, If there are any issues.
Cool. I'm curious about your observations.
Cheers, Martin