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, 21 Mar 2022 16:03:58 +0000 (16:03 +0000)
commit507ef6e6b831e3ee33e301d8f72138cf80ff0683
treed90267eeea22f73c393230ee3702ec787e8bd788
parent6fc9dbe947a8610eae6d923a3ab7f6ab78607879
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