Hi Genodians
As mentioned in an earlier mail I'm currently enabling base-hw on the IoT gateway of CompuLab [1].
The used SoC is a iMX8mm, which is a bit different from the iMX8mq used on the EVK [2].
On a running Linux I used `memtool` to read register values.
In `src/bootstrap/spec/iot_gateway/platform.cc` I have changed the following things: - the values for the `regulator` registers - the register offsets and values for the ARM_PLL registers - the values of the IOMUX configuration
Now the code bootstrap finishes and the kernel begins to run. By adding some `Genode::raw()`s to `void kernel_init()` I'm able to see, that the initialization for kernel waits for all CPUs to start at `while (!pool_ready) { ; }`.
If change `NR_OF_CPUS` to 1, I'm able to run the log run script.
log output of IoT gateway [1]:
``` Kernel: Board() :: 324 Kernel: Board() :: 342 Kernel: wake_up_all_cpus() :: 352 --- 1 Kernel: wake_up_all_cpus() :: 352 --- 2 Kernel: wake_up_all_cpus() :: 352 --- 3
Kernel: kernel_init() :: 56 Kernel: initialize() :: 184 Kernel: initialize() :: 186 --- 0 Kernel: initialize() :: 188 --- 0 initialized=4
```
log output from EVK [2]:
``` Kernel: kernel_init() :: 56
Kernel: initialize() :: 186 --- 0 Kernel: initialize() :: 188 --- 0 initialized=4 Kernel: initialize() :: 184 Kernel: initialize() :: 186 --- 3 Kernel: initialize() :: 188 --- 3 initialized=3 Kernel: initialize() :: 184 Kernel: initialize() :: 186 --- 2 Kernel: initialize() :: 188 --- 2 initialized=2 Kernel: initialize() :: 184 Kernel: initialize() :: 186 --- 1 Kernel: initialize() :: 188 --- 1 initialized=1
kernel initialized
```
Has anybody an idea what registers could have an influence on the start up of the CPUs?
[1] https://www.compulab.com/products/iot-gateways/iot-gate-imx8-industrial-arm-...
[2] https://www.nxp.com/design/development-boards/i-mx-evaluation-and-developmen...
Best regards, Pirmin