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

This commit is contained in:
qctecmdr Service
2018-11-12 10:14:24 -08:00
committed by Gerrit - the friendly Code Review server
7 changed files with 54 additions and 0 deletions

View File

@ -0,0 +1,23 @@
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

View File

@ -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.

View File

@ -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];

View File

@ -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

View File

@ -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 */
};

View File

@ -1233,6 +1233,15 @@ static struct ctl_table kern_table[] = {
.extra1 = &zero,
.extra2 = &one,
},
#endif
#ifdef CONFIG_ARM
{
.procname = "boot_reason",
.data = &boot_reason,
.maxlen = sizeof(int),
.mode = 0444,
.proc_handler = proc_dointvec,
},
#endif
{ }
};

View File

@ -140,6 +140,7 @@ static const struct bin_table bin_kern_table[] = {
{ CTL_INT, KERN_MAX_LOCK_DEPTH, "max_lock_depth" },
{ CTL_INT, KERN_PANIC_ON_NMI, "panic_on_unrecovered_nmi" },
{ CTL_INT, KERN_PANIC_ON_WARN, "panic_on_warn" },
{ CTL_INT, KERN_BOOT_REASON, "boot_reason" },
{}
};