Hello
I have started to work o a new project which allows to communicate with SOC’s internal firmware directly.
Normally SOCs have internal microprocessors that manage frequency, voltage, wake up, sleep, and other facilities. Sometimes the software for the MCU is loaded during in early boot stage (BL2/3…), and sometimes they dont need any firmware at all, simply it is part of the boot rom.
And when your OS/kernel wants to change frequencies of gpu/cpu for instance, it commincates with this MCU over an interface called SMCCC. The contents of the communication is Vendor specific, but the way to communicate is standardized.
So this tool is seperated in 2 parts. There is a kernel module that allows communication with firmware from userspace. And 2nd tool that does the communication for rockchip devices.
So you just need the build the module, insert the module, and run the pysmcc user space tool.
Currently it can read and write and there is no useful application that i built on top of it except reading DDR settings.
My first goal is to create a tool to overclock several parts of the device as much as the firmware allows.