We're one step close to getting the ipq806x NSS cores & drivers work. I think I've isolated the cause of the random reboots that my R7800 is experiencing when the NSS cores are enabled to process network packets. My R7800 is now up for more than 38 hours without any reboots. It is now acting as my main Internet router, running with the NSS cores accelerating routing tasks.
It turns out that the NSS firmware/core has issue with the NSS cores' frequency scaling. The NSS firmware probably crashed when the NSS core driver tries to scale the CPU frequency up or down and this causes the R7800 to reboot. Doesn't happen all the time. I still haven't figure out how to reliably trigger this bug.
The good news is that this issue can be worked around at the moment, which is what I did. I just simply disable the frequency scaling of the driver and force the CPU frequency to a fix one, either 110, 600 or 800 MHz for ipq8065. This can be done via procfs which the NSS driver exposes.
I'll have to study the NSS driver codes in greater details to understand and hopefully fix this 'bug'.
If there's anyone who owns a R7800 interested to try out, I'll upload a new build for testing, or you can build a firmware image yourself from my GitHub repo.
My builds are currently based on the lede-17.01 branch. From the patches required, it looks like it may not be difficult to change it to add support for the 4.19 kernel, which the lastest master is based on.
Also, folks with other ipq806x routers who would like to try it out can based it on my GitHub source tree here:
Would love to see it work on other ipq806x routers as well.