Initialise rpi-firmware before clk-bcm2835
authorLuke Hinds <7058938+lukehinds@users.noreply.github.com>
Wed, 22 Jan 2020 16:03:00 +0000 (16:03 +0000)
committerDom Cobley <popcornmix@gmail.com>
Mon, 19 Feb 2024 11:32:57 +0000 (11:32 +0000)
commit53b81b9f45c0e02cc40568983b4a31ab5e25a034
treee7cad4b077193c0df0816648cf021416c67f0399
parent55318081a89ed547dc8e2d0e8b1b3935448be67b
Initialise rpi-firmware before clk-bcm2835

The IMA (Integrity Measurement Architecture) looks for a TPM (Trusted
Platform Module) having been registered when it initialises; otherwise
it assumes there is no TPM. It has been observed on BCM2835 that IMA
is initialised before TPM, and that initialising the BCM2835 clock
driver before the firmware driver has the effect of reversing this
order.

Change the firmware driver to initialise at core_initcall, delaying the
BCM2835 clock driver to postcore_initcall.

See: https://github.com/raspberrypi/linux/issues/3291
     https://github.com/raspberrypi/linux/pull/3297

Signed-off-by: Luke Hinds <lhinds@redhat.com>
Co-authored-by: Phil Elwell <phil@raspberrypi.org>
drivers/clk/bcm/clk-bcm2835.c
drivers/firmware/raspberrypi.c