mirror of
				https://github.com/Ysurac/openmptcprouter.git
				synced 2025-03-09 15:40:20 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			86 lines
		
	
	
	
		
			2.8 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			86 lines
		
	
	
	
		
			2.8 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| From f50b89863b326f114de3e055c74946ca8b402087 Mon Sep 17 00:00:00 2001
 | |
| From: Dave Stevenson <dave.stevenson@raspberrypi.org>
 | |
| Date: Thu, 10 Jan 2019 17:58:06 +0000
 | |
| Subject: [PATCH 295/432] firmware: raspberrypi: Report the fw variant during
 | |
|  probe
 | |
| 
 | |
| The driver already reported the firmware build date during probe.
 | |
| The mailbox calls have been extended to also report the variant
 | |
|  1 = standard start.elf
 | |
|  2 = start_x.elf (includes camera stack)
 | |
|  3 = start_db.elf (includes assert logging)
 | |
|  4 = start_cd.elf (cutdown version for smallest memory footprint).
 | |
| Log the variant during probe.
 | |
| 
 | |
| Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
 | |
| ---
 | |
|  drivers/firmware/raspberrypi.c             | 32 +++++++++++++++++-----
 | |
|  include/soc/bcm2835/raspberrypi-firmware.h |  1 +
 | |
|  2 files changed, 26 insertions(+), 7 deletions(-)
 | |
| 
 | |
| diff --git a/drivers/firmware/raspberrypi.c b/drivers/firmware/raspberrypi.c
 | |
| index fbcfd50eb6a3..f020855f315b 100644
 | |
| --- a/drivers/firmware/raspberrypi.c
 | |
| +++ b/drivers/firmware/raspberrypi.c
 | |
| @@ -227,21 +227,39 @@ static const struct attribute_group rpi_firmware_dev_group = {
 | |
|  static void
 | |
|  rpi_firmware_print_firmware_revision(struct rpi_firmware *fw)
 | |
|  {
 | |
| +	static const char * const variant_strs[] = {
 | |
| +		"unknown",
 | |
| +		"start",
 | |
| +		"start_x",
 | |
| +		"start_db",
 | |
| +		"start_cd",
 | |
| +	};
 | |
| +	const char *variant_str = "cmd unsupported";
 | |
|  	u32 packet;
 | |
| +	u32 variant;
 | |
| +	struct tm tm;
 | |
|  	int ret = rpi_firmware_property(fw,
 | |
|  					RPI_FIRMWARE_GET_FIRMWARE_REVISION,
 | |
|  					&packet, sizeof(packet));
 | |
|  
 | |
| -	if (ret == 0) {
 | |
| -		struct tm tm;
 | |
| +	if (ret)
 | |
| +		return;
 | |
|  
 | |
| -		time64_to_tm(packet, 0, &tm);
 | |
| +	ret = rpi_firmware_property(fw, RPI_FIRMWARE_GET_FIRMWARE_VARIANT,
 | |
| +				    &variant, sizeof(variant));
 | |
|  
 | |
| -		dev_info(fw->cl.dev,
 | |
| -			 "Attached to firmware from %04ld-%02d-%02d %02d:%02d\n",
 | |
| -			 tm.tm_year + 1900, tm.tm_mon + 1, tm.tm_mday,
 | |
| -			 tm.tm_hour, tm.tm_min);
 | |
| +	if (!ret) {
 | |
| +		if (variant >= ARRAY_SIZE(variant_strs))
 | |
| +			variant = 0;
 | |
| +		variant_str = variant_strs[variant];
 | |
|  	}
 | |
| +
 | |
| +	time64_to_tm(packet, 0, &tm);
 | |
| +
 | |
| +	dev_info(fw->cl.dev,
 | |
| +		 "Attached to firmware from %04ld-%02d-%02d %02d:%02d, variant %s\n",
 | |
| +		 tm.tm_year + 1900, tm.tm_mon + 1, tm.tm_mday, tm.tm_hour,
 | |
| +		 tm.tm_min, variant_str);
 | |
|  }
 | |
|  
 | |
|  static void
 | |
| diff --git a/include/soc/bcm2835/raspberrypi-firmware.h b/include/soc/bcm2835/raspberrypi-firmware.h
 | |
| index 8ab5501c8d29..17f8fe3b5d2c 100644
 | |
| --- a/include/soc/bcm2835/raspberrypi-firmware.h
 | |
| +++ b/include/soc/bcm2835/raspberrypi-firmware.h
 | |
| @@ -41,6 +41,7 @@ struct rpi_firmware_property_tag_header {
 | |
|  enum rpi_firmware_property_tag {
 | |
|  	RPI_FIRMWARE_PROPERTY_END =                           0,
 | |
|  	RPI_FIRMWARE_GET_FIRMWARE_REVISION =                  0x00000001,
 | |
| +	RPI_FIRMWARE_GET_FIRMWARE_VARIANT =                   0x00000002,
 | |
|  
 | |
|  	RPI_FIRMWARE_SET_CURSOR_INFO =                        0x00008010,
 | |
|  	RPI_FIRMWARE_SET_CURSOR_STATE =                       0x00008011,
 | |
| -- 
 | |
| 2.19.1
 | |
| 
 |