-
Notifications
You must be signed in to change notification settings - Fork 8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Enable MMU #1
Comments
I guess according to |
Thanks for the heads up!
Yes, or maybe gd->ram_size could be used, thus removing the need for |
That would work too. We'd probably want another patch adding a dcache set for the region nevertheless - the frame buffer is pretty slow when not accessed cached :). But I can easily follow up with something like that later on. I'm trying to get the 32bit code cache enabled atm as well, so it'd fall out of that work anyway. Can you please post your patch upstream? |
Sure. I'd like to verify that SMP is working first though. Right now my 64-bit kernel only activates one core, so I'm not quite convinced the other 3 are handled correctly... |
You probably are running in EL3, so you need to provide psci interfaces to wake the others up. Alex
|
I think lowlevel_init in start.S is supposed to switch the "slaves" to EL2. It's the stuff after that which seems a bit flaky, they are waiting on CPU_RELEASE_ADDR, but nothing writes to that address to release them... |
That's the legacy spin release. Modern day systems should use psci. You can always implement a psci callback writing to the spin tables though. I also think UP u-boot is worth upstreaming today - smp can easily follow next. No need to build Rome in one day. Alex
|
Hm, U-Boot seems to have an implementation of psci for armv7 only. Will need to ponder a bit on this. |
The upstream kernel for (32-bit) RPi currently uses a custom scheme for SMP boot, using the SoC mailbox hardware. Before investigating PSCI it would be worth asking Eric Anholt and the ARM64 maintainers whether they want to continue with that for compatibility or switch to PSCI. |
As far as I understood Catalin, he wanted to make sure every new system has PSCI support. The nice thing about the AArch64 port is that we're running in EL3, so we actually have the chance to add PSCI support there - unlike on the 32bit versions. But regardless, please don't sit on the patches :). Send them, collect feedback and do PSCI enablement in parallel. |
I seriously doubt PSCI is possible, since IIUC the HW only supports booting all CPUs at once. That said, I don't know if CPU power-off/reset are mandatory operations in PSCI, or just CPU boot. More likely spin tables would be a better match. Judging by a quick read of the link you mentioned on IRC (https://lkml.org/lkml/2015/4/10/688) spin tables (while discouraged) are still acceptable. I plan to start sending patches soon, but we should wait to find out whether the RPi Foundation is going to initialize the mini UART pinmux and baud rate or not, and what their story is re: mini UART vs. full UART for the console. It seems quite a messy story at present. |
Once my MMU force-enable patch set is in upstream U-Boot, you will need a patch similar to the one below to make your code work. I verified that it works - great job!
The text was updated successfully, but these errors were encountered: