kernel: Move to 4.13 kernel

We have 236 commits, 127 files changed, 17766 insertions(+), 2128
deletions(-). Some of these are backports from upstream. This list
does not include patches from the 4.13 stable releases, but we do
include those in the dev-4.13 branch.

     1  Alexey Khoroshilov
    34  Andrew Jeffery
     1  Arnd Bergmann
     1  Benjamin Herrenschmidt
     1  Bhumika Goyal
     1  Brad Bishop
     1  Brendan Higgins
     11  Christopher Bostic
     1  Cyril Bur
    14  Cédric Le Goater
    49  Edward A. James
     3  Gavin Shan
     1  Guenter Roeck
     8  Ivan Mikhaylov
     1  Jacek Anaszewski
     1  James Feist
     7  Jeremy Kerr
    72  Joel Stanley
     2  Julia Lawall
     1  Ken Chen
     6  Lei YU
     3  Milton Miller
     1  Mykola Kostenok
     1  Patrick Venture
     2  Philipp Zabel
     1  Rick Altherr
    11  Samuel Mendoza-Jonas
     2  Wei Yongjun
     1  Xo Wang
     1  Yong Li

Note that the 4.13 branch is EOL'd by the Linux community, and as such
should not be used for any products beyond development.

React to removal of occ hwmon instances from device trees with a
new startup/shutdown mechanism for phosphor-hwmon.

To fix this, a helper script will be used to start the service that
will pass the service the device tree name if it is present, or the
udev device path if it isn't.  This script will still run from the
udev rule as before, but it will stop and start the service itself
without using the SYSTEMD_WANTS attribute.

As the path to the hwmon environment file matches the service
template argument, the paths for the OCC .conf files need to change
to match the device path instead of the previous device tree path.

Note that the pure device path would have the hwmon instance number
in it, but since that can't be known ahead of time it is stripped
off by the script that starts the service.

In addition, the pure device path for the OCCs contain several
':'s, meaning the associated environment files would also need to.
However, Yocto/Bitbake cannot handle a ':' in a file path, so they
are converted to '--'s by the script that starts the service and
phosphor-hwmon will convert them back internally when it starts.

The service file also needed some changes now that the service
lifetime is no longer controlled by systemd via SYSTEMD_WANTS.

This script will be called by a udev rule to start and
stop phosphor-hwmon when the hwmon device driver is started
and stopped.

It is passed both the device path and the OF_FULLNAME device
tree attribute.  If OF_FULLNAME is present, it will start the
service with that as its template argument, otherwise it will
use the device path.  This is to handle devices that aren't in
the device tree so they won't have OF_FULLNAME.

If a '/hwmon/hwmonN' is in the path it is removed, as this path
is also used as a path to an environment file and so must be
known ahead of time, which the hwmon instance N is not.

If there is a ':' in the path name, it is converted to a '--'.
Yocto/Bitbake cannot handle a ':' in file paths.

Resolves openbmc/openbmc#2953

Change-Id: I815be4d6d9e1cbea8428bb1bb8c332776ee71ece
Signed-off-by: Joel Stanley <joel@jms.id.au>
Signed-off-by: Matt Spinler <spinler@us.ibm.com>
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
diff --git a/meta-openbmc-bsp/meta-aspeed/meta-ast2500/recipes-kernel/linux/linux-obmc/defconfig b/meta-openbmc-bsp/meta-aspeed/meta-ast2500/recipes-kernel/linux/linux-obmc/defconfig
index 86d5cca..d651779 100755
--- a/meta-openbmc-bsp/meta-aspeed/meta-ast2500/recipes-kernel/linux/linux-obmc/defconfig
+++ b/meta-openbmc-bsp/meta-aspeed/meta-ast2500/recipes-kernel/linux/linux-obmc/defconfig
@@ -1,6 +1,7 @@
 CONFIG_KERNEL_XZ=y
 # CONFIG_SWAP is not set
 CONFIG_SYSVIPC=y
+CONFIG_IRQ_DOMAIN_DEBUG=y
 CONFIG_NO_HZ_IDLE=y
 CONFIG_HIGH_RES_TIMERS=y
 CONFIG_IKCONFIG=y
@@ -11,15 +12,22 @@
 # CONFIG_RD_BZIP2 is not set
 # CONFIG_RD_LZO is not set
 # CONFIG_RD_LZ4 is not set
+CONFIG_KALLSYMS_ALL=y
 CONFIG_BPF_SYSCALL=y
 # CONFIG_AIO is not set
 CONFIG_EMBEDDED=y
 CONFIG_PERF_EVENTS=y
 # CONFIG_COMPAT_BRK is not set
 CONFIG_SLAB=y
+CONFIG_SLAB_FREELIST_RANDOM=y
 CONFIG_JUMP_LABEL=y
 CONFIG_GCC_PLUGINS=y
+CONFIG_CC_STACKPROTECTOR_STRONG=y
+CONFIG_STRICT_KERNEL_RWX=y
 # CONFIG_LBDAF is not set
+# CONFIG_IOSCHED_DEADLINE is not set
+# CONFIG_MQ_IOSCHED_DEADLINE is not set
+# CONFIG_MQ_IOSCHED_KYBER is not set
 CONFIG_ARCH_MULTI_V6=y
 # CONFIG_ARCH_MULTI_V7 is not set
 CONFIG_ARCH_ASPEED=y
@@ -27,7 +35,6 @@
 # CONFIG_CACHE_L2X0 is not set
 CONFIG_VMSPLIT_2G=y
 CONFIG_AEABI=y
-# CONFIG_CPU_SW_DOMAIN_PAN is not set
 # CONFIG_COMPACTION is not set
 CONFIG_SECCOMP=y
 # CONFIG_ATAGS is not set
@@ -52,7 +59,8 @@
 # CONFIG_INET6_XFRM_MODE_TRANSPORT is not set
 # CONFIG_INET6_XFRM_MODE_TUNNEL is not set
 # CONFIG_INET6_XFRM_MODE_BEET is not set
-# CONFIG_IPV6_SIT is not set
+CONFIG_NETFILTER=y
+# CONFIG_NETFILTER_ADVANCED is not set
 CONFIG_VLAN_8021Q=y
 CONFIG_NET_NCSI=y
 # CONFIG_WIRELESS is not set
@@ -69,15 +77,16 @@
 CONFIG_MTD_UBI=y
 CONFIG_MTD_UBI_FASTMAP=y
 CONFIG_MTD_UBI_BLOCK=y
-CONFIG_BLK_DEV_LOOP=y
 CONFIG_BLK_DEV_RAM=y
 CONFIG_ASPEED_LPC_CTRL=y
 CONFIG_ASPEED_LPC_SNOOP=y
+CONFIG_ASPEED_LPC_MBOX=y
 CONFIG_EEPROM_AT24=y
 CONFIG_NETDEVICES=y
 CONFIG_NETCONSOLE=y
 # CONFIG_NET_VENDOR_ALACRITECH is not set
 # CONFIG_NET_VENDOR_AMAZON is not set
+# CONFIG_NET_VENDOR_AQUANTIA is not set
 # CONFIG_NET_VENDOR_ARC is not set
 # CONFIG_NET_CADENCE is not set
 # CONFIG_NET_VENDOR_BROADCOM is not set
@@ -98,15 +107,12 @@
 # CONFIG_NET_VENDOR_SOLARFLARE is not set
 # CONFIG_NET_VENDOR_SMSC is not set
 # CONFIG_NET_VENDOR_STMICRO is not set
-# CONFIG_NET_VENDOR_SYNOPSYS is not set
 # CONFIG_NET_VENDOR_VIA is not set
 # CONFIG_NET_VENDOR_WIZNET is not set
+# CONFIG_NET_VENDOR_SYNOPSYS is not set
 CONFIG_BROADCOM_PHY=y
 CONFIG_REALTEK_PHY=y
-# CONFIG_USB_NET_DRIVERS is not set
 # CONFIG_WLAN is not set
-# CONFIG_INPUT_LEDS is not set
-# CONFIG_INPUT_MOUSEDEV is not set
 CONFIG_INPUT_EVDEV=y
 # CONFIG_KEYBOARD_ATKBD is not set
 CONFIG_KEYBOARD_GPIO=y
@@ -145,6 +151,7 @@
 CONFIG_SENSORS_LM75=y
 CONFIG_SENSORS_NCT7904=y
 CONFIG_SENSORS_OCC=y
+CONFIG_SENSORS_OCC_P8_I2C=y
 CONFIG_SENSORS_OCC_P9_SBE=y
 CONFIG_PMBUS=y
 CONFIG_SENSORS_ADM1275=y
@@ -175,9 +182,7 @@
 CONFIG_RTC_DRV_DS1307=y
 CONFIG_RTC_DRV_PCF8523=y
 CONFIG_RTC_DRV_RV8803=y
-CONFIG_RTC_DRV_ASPEED=y
 CONFIG_MAILBOX=y
-CONFIG_ASPEED_LPC_MBOX=y
 # CONFIG_IOMMU_SUPPORT is not set
 CONFIG_IIO=y
 CONFIG_ASPEED_ADC=y
@@ -189,7 +194,7 @@
 CONFIG_FSI_MASTER_HUB=y
 CONFIG_FSI_SCOM=y
 CONFIG_FSI_SBEFIFO=y
-CONFIG_OCCFIFO=y
+CONFIG_FSI_OCC=y
 CONFIG_FIRMWARE_MEMMAP=y
 CONFIG_FANOTIFY=y
 CONFIG_OVERLAY_FS=y
@@ -203,19 +208,22 @@
 CONFIG_SQUASHFS_XZ=y
 CONFIG_PRINTK_TIME=y
 CONFIG_DYNAMIC_DEBUG=y
+CONFIG_DEBUG_INFO=y
+CONFIG_DEBUG_INFO_REDUCED=y
+CONFIG_DEBUG_INFO_DWARF4=y
+CONFIG_GDB_SCRIPTS=y
 CONFIG_STRIP_ASM_SYMS=y
-CONFIG_LOCKUP_DETECTOR=y
+CONFIG_SOFTLOCKUP_DETECTOR=y
+# CONFIG_DETECT_HUNG_TASK is not set
 CONFIG_WQ_WATCHDOG=y
+CONFIG_PANIC_ON_OOPS=y
 CONFIG_PANIC_TIMEOUT=-1
+# CONFIG_SCHED_DEBUG is not set
 CONFIG_SCHED_STACK_END_CHECK=y
-CONFIG_TIMER_STATS=y
 CONFIG_FUNCTION_TRACER=y
 # CONFIG_TRACING_EVENTS_GPIO is not set
 CONFIG_DEBUG_USER=y
 # CONFIG_CRYPTO_ECHAINIV is not set
-CONFIG_CRYPTO_HMAC=y
-CONFIG_CRYPTO_SHA256=y
-CONFIG_CRYPTO_USER_API_HASH=y
 # CONFIG_CRYPTO_HW is not set
 # CONFIG_XZ_DEC_X86 is not set
 # CONFIG_XZ_DEC_POWERPC is not set