First off ThreadX on the video core does not run as a hypervisor.
It also does not impede perf on the ARM core.
Additionally, yes, Intel ME is required to run anything on Intel cores. Without it the main cores don't start.
First off ThreadX on the video core does not run as a hypervisor.
It also does not impede perf on the ARM core.
Additionally, yes, Intel ME is required to run anything on Intel cores. Without it the main cores don't start.
https://www.csoonline.com/article/3220476/researchers-say-no...
To explain this again, it technically is a guest. The GPU cores run a real time operating system called ThreadX. This operating system is closed source and rules the system without the open source Linux Kernel being aware of it.
When the Raspberry Pi starts booting the CPU is completely disconnected (technically in reset state) and the GPU is the one that starts the system. You can have a look at the `/boot` folder and you will see some of the binary blobs used by the GPU to both start the CPU and run its own ThreadX OS (bootcode.bin and start.elf). You can learn more details about the boot process here.
After the GPU has the CPU load the Linux Kernel, it doesn’t just stay there waiting to act as a graphics-processing-unit. The GPU is still in charge.
IME is a different beast entirely.
Also, interestingly you can swap out the terms on your paragraph and it's still true
> When an Intel CPU starts booting the CPU is completely disconnected (technically in reset state) and the ME is the one that starts the system. You can have a look at the boot flash partitions and you will see some of the binary blobs used by the ME to both start the CPU and run its own ThreadX OS.
Although albeit, on newer MEs they switched from ThreadX to Minix. The ME is very very very similar.
"Technically" it's not a guest relationship, the ARM cores start in EL3 (above hypervisor mode in secure mode).
And none of this show any perf costs to having a management core (except maybe some minimal bandwidth pressure?)
The document you linked refers to a more technical one that explains they don't disable the ME until after the main OS is booted, because...
"The disappointing fact is that on modern computers, it is impossible to completely disable ME. This is primarily due to the fact that this technology is responsible for initialization, power management, and launch of the main processor."
http://blog.ptsecurity.com/2017/08/disabling-intel-me.html
So, it is serving the same role as the Rpi VideoCore.
https://igor-blue.github.io/2021/02/04/secure-boot.html#earl...
> The GPU is still in charge
Can you explain in specific, concrete terms what this means?
For example: I've read that the undervoltage monitoring happens on the ThreadX process, and that it throttles the ARM cores when low voltage is detected. The vcgencmd has more info on this, including the following bit field returned by vcgencmd get_throttled:
Bit Hex value Meaning
0 1 Under-voltage detected
1 2 Arm frequency capped
2 4 Currently throttled
3 8 Soft temperature limit active
16 10000 Under-voltage has occurred
17 20000 Arm frequency capping has occurred
18 40000 Throttling has occurred
19 80000 Soft temperature limit has occurred
What else does it do?