Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f699c92b authored by Rick Adams's avatar Rick Adams Committed by David Collins
Browse files

msm: 8x55: put reason for boot in procfs from SMEM



During board initialization read the shared memory item
SMEM_POWER_ON_STATUS_INFO and place it in the procfs at
/proc/sys/kernel/boot_reason

The data item is an integer with a bit being set to identify the reason
the device was powered on. The values of this data item is defined in
the document Document/arm/msm/boot.txt, the following is the data in the
documentation file.

power_on_status values set by the PMIC for power on event:
----------------------------------------------------------
0x01 -- keyboard power on
0x02 -- RTC alarm
0x04 -- cable power on
0x08 -- SMPL
0x10 -- Watch Dog timeout
0x20 -- USB charger
0x40 -- Wall charger
0xFF -- error reading power_on_status value

Change-Id: I59e665f92e6e29f7dfef4380314f676a2d92c94b
Signed-off-by: default avatarRick Adams <rgadams@codeaurora.org>
parent cd44df14
Loading
Loading
Loading
Loading
+23 −0
Original line number Diff line number Diff line
Introduction
=============
The power management integrated circuit (PMIC) records the reason the
Application processor was powered on in Shared Memory.
The hardware and software used is the shared memory interface. This document
is not for the purpose of describing this interface, but to identify the
possible values for this data item.

Description
===========
Shared memory item (SMEM_POWER_ON_STATUS_INFO) is read to get access to
this data. The table below identifies the possible values stored.

power_on_status values set by the PMIC for power on event:
----------------------------------------------------------
0x01 -- keyboard power on
0x02 -- RTC alarm
0x04 -- cable power on
0x08 -- SMPL
0x10 -- Watch Dog timeout
0x20 -- USB charger
0x40 -- Wall charger
0xFF -- error reading power_on_status value
+15 −0
Original line number Diff line number Diff line
@@ -23,6 +23,7 @@ show up in /proc/sys/kernel:
- auto_msgmni
- bootloader_type	     [ X86 only ]
- bootloader_version	     [ X86 only ]
- boot_reason		     [ ARM only ]
- callhome		     [ S390 only ]
- cap_last_cap
- core_pattern
@@ -168,6 +169,20 @@ Documentation/x86/boot.txt for additional information.

==============================================================

boot_reason:

ARM -- reason for device boot

A single bit will be set in the unsigned integer value to identify the
reason the device was booted / powered on. The value will be zero if this
feature is not supported on the ARM device being booted.

See the power-on-status field definitions in
Documentation/arm/msm/boot.txt for Qualcomm Technologies, Inc. family of
devices.

==============================================================

callhome:

Controls the kernel's callhome behavior in case of a kernel panic.
+2 −0
Original line number Diff line number Diff line
@@ -30,6 +30,8 @@
#define STACK_TOP_MAX	TASK_SIZE
#endif

extern unsigned int boot_reason;

struct debug_info {
#ifdef CONFIG_HAVE_HW_BREAKPOINT
	struct perf_event	*hbp[ARM_MAX_HBP_SLOTS];
+3 −0
Original line number Diff line number Diff line
@@ -116,6 +116,9 @@ EXPORT_SYMBOL(elf_hwcap2);
char* (*arch_read_hardware_id)(void);
EXPORT_SYMBOL(arch_read_hardware_id);

unsigned int boot_reason;
EXPORT_SYMBOL(boot_reason);

#ifdef MULTI_CPU
struct processor processor __ro_after_init;
#endif
+1 −0
Original line number Diff line number Diff line
@@ -153,6 +153,7 @@ enum
	KERN_NMI_WATCHDOG=75, /* int: enable/disable nmi watchdog */
	KERN_PANIC_ON_NMI=76, /* int: whether we will panic on an unrecovered */
	KERN_PANIC_ON_WARN=77, /* int: call panic() in WARN() functions */
	KERN_BOOT_REASON=78, /* int: identify reason system was booted */
};


Loading