Port-arm archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Radxa Orion O6



My board arrived earlier this week (thanks!) and I've managed to fix some of the issues you raised.


1) EFI runtime services issue

This one is still outstanding. I still feel that it's a firmware bug (that NetBSD doesn't properly contain, but this is a separate issue). For now I've committed a workaround that detects the Orion O6 board and skips EFI runtime initialization:

https://mail-index.netbsd.org/source-changes/2025/01/30/msg155361.html


2) XHCI crash at boot

It seems that the SoC's XHCI IP requires 32-bit aligned accesses. The XHCI spec defines a handful of 8- and 16-bit registers, and some of them (like the one that returns the XHCI version) is at an offset that is not 32-bit aligned. I committed a workaround for this:

https://mail-index.netbsd.org/source-changes/2025/01/30/msg155355.html

Once I fixed this, the crash went away, but USB devices wouldn't attach ("device problem, disabling port n"). I tracked down the root cause for this and committed a fix as well:

https://mail-index.netbsd.org/source-changes/2025/01/30/msg155360.html


3) Crash when booting with SMP enabled.

The crash was caused by virtual timer interrupts not firing on CPUs 1-4. The first workaround I tried was to use the physical timer -- this worked, but not ideal. So I did some more digging and it turns out NetBSD was making assumptions about the state of the CNTHCTL_EL2 and CNTKCTL_EL1 system registers when entering the kernel that were not valid. I fixed initialization for both of these:

https://mail-index.netbsd.org/source-changes/2025/01/30/msg155358.html
https://mail-index.netbsd.org/source-changes/2025/01/30/msg155359.html


If you update your tree to pick up all of these changes, you should be able to boot an unmodified kernel to the installer.

Take care,
Jared


Home | Main Index | Thread Index | Old Index