mirror of
				https://github.com/Ysurac/openmptcprouter.git
				synced 2025-03-09 15:40:20 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			54 lines
		
	
	
	
		
			1.9 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			54 lines
		
	
	
	
		
			1.9 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
From 175480d37bdf8f12136469735fb92904daf0b879 Mon Sep 17 00:00:00 2001
 | 
						|
From: Luke Hinds <7058938+lukehinds@users.noreply.github.com>
 | 
						|
Date: Wed, 22 Jan 2020 16:03:00 +0000
 | 
						|
Subject: [PATCH 201/634] 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  | 2 +-
 | 
						|
 drivers/firmware/raspberrypi.c | 2 +-
 | 
						|
 2 files changed, 2 insertions(+), 2 deletions(-)
 | 
						|
 | 
						|
diff --git a/drivers/clk/bcm/clk-bcm2835.c b/drivers/clk/bcm/clk-bcm2835.c
 | 
						|
index 4f983b82eab1..961acade005f 100644
 | 
						|
--- a/drivers/clk/bcm/clk-bcm2835.c
 | 
						|
+++ b/drivers/clk/bcm/clk-bcm2835.c
 | 
						|
@@ -2423,7 +2423,7 @@ static int __init __bcm2835_clk_driver_init(void)
 | 
						|
 {
 | 
						|
 	return platform_driver_register(&bcm2835_clk_driver);
 | 
						|
 }
 | 
						|
-core_initcall(__bcm2835_clk_driver_init);
 | 
						|
+postcore_initcall(__bcm2835_clk_driver_init);
 | 
						|
 
 | 
						|
 MODULE_AUTHOR("Eric Anholt <eric@anholt.net>");
 | 
						|
 MODULE_DESCRIPTION("BCM2835 clock driver");
 | 
						|
diff --git a/drivers/firmware/raspberrypi.c b/drivers/firmware/raspberrypi.c
 | 
						|
index 2a7a0a9933d7..fa105074f05f 100644
 | 
						|
--- a/drivers/firmware/raspberrypi.c
 | 
						|
+++ b/drivers/firmware/raspberrypi.c
 | 
						|
@@ -498,7 +498,7 @@ static int __init rpi_firmware_init(void)
 | 
						|
 out1:
 | 
						|
 	return ret;
 | 
						|
 }
 | 
						|
-subsys_initcall(rpi_firmware_init);
 | 
						|
+core_initcall(rpi_firmware_init);
 | 
						|
 
 | 
						|
 static void __init rpi_firmware_exit(void)
 | 
						|
 {
 | 
						|
-- 
 | 
						|
2.33.1
 | 
						|
 |