AM335x RNG on BeagleBone (v3.8 Kernel)

Hello BeagleBoard mailing list. Long time listener, first time caller.

I’ve been trying to enable the AM335x onboard TRNG in the v3.8 kernel without much success. I’ve built a kernel using the TI SDK source, which is based on a v3.12 kernel, and the HWNRG works fine so I know it’s not a problem with the chip.

Porting the driver over requires enabling support for the RNG’s clock in the 3.8 kernel. I’ve tried using the patches described here: http://lists.infradead.org/pipermail/linux-arm-kernel/2013-August/195546.html but these make the system hang on boot. It hangs too early for the kernel to print error messages, so unfortunately I don’t have any to provide.

I have noticed that am33xx clock data is handled in device tree in v3.12, while it’s handled in hwmod in v3.8 (not sure if that’s the correct way to put it).

Anyone have any ideas? I’m pretty new to kernel hacking with this platform, and I’m still trying to grok the relationship between hwmod and device tree.

Never mind, I figured it out. I haven’t rigorously tested it yet but the /dev/hwrng node is populated and produces data as expected.

I’m attaching a patch if anyone’s interested.

add-hwrng.patch (20.2 KB)

Thanks, all queue'ed up..

https://github.com/RobertCNelson/bb-kernel/commit/853d4e87552d82e958de761bdef9f8589f41638f

Regards,