summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobb Glasser <rglasser@google.com>2017-11-17 15:19:30 -0800
committerRobb Glasser <rglasser@google.com>2017-11-22 15:36:06 -0800
commit30ecafeffccb997af944fdc69e266fb59ccc0f5c (patch)
treef1b8c56d96eafad05b1532153b435efc31eb09aa
parent9d9ed3c176108fa46981248c6bbcdf6af80415ff (diff)
downloadbonito-30ecafeffccb997af944fdc69e266fb59ccc0f5c.tar.gz
Update power init scripts
Updating power init scripts with the latest settings for crosshatch and enabling the Power HAL. Bug: 69270928 Test: Compiled and booted Test: Checked logcat for errors Test: Verified writes made it to respective nodes Change-Id: I417126cd1a56a82d53a1cf7455beccbd6240e76c
-rw-r--r--device.mk2
-rw-r--r--init.hardware.rc45
-rw-r--r--init.power.rc68
-rw-r--r--init.power.sh47
4 files changed, 101 insertions, 61 deletions
diff --git a/device.mk b/device.mk
index 2a14526b..553139a4 100644
--- a/device.mk
+++ b/device.mk
@@ -58,7 +58,7 @@ PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/init.hardware.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.$(PRODUCT_PLATFORM).rc \
$(LOCAL_PATH)/init.hardware.usb.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.$(PRODUCT_PLATFORM).usb.rc \
$(LOCAL_PATH)/ueventd.hardware.rc:$(TARGET_COPY_OUT_VENDOR)/ueventd.rc \
- $(LOCAL_PATH)/init.power.sh:$(TARGET_COPY_OUT_VENDOR)/bin/init.power.sh \
+ $(LOCAL_PATH)/init.power.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.$(PRODUCT_PLATFORM).power.rc \
$(LOCAL_PATH)/init.radio.sh:$(TARGET_COPY_OUT_VENDOR)/bin/init.radio.sh \
$(LOCAL_PATH)/uinput-fpc.kl:system/usr/keylayout/uinput-fpc.kl \
$(LOCAL_PATH)/uinput-fpc.idc:system/usr/idc/uinput-fpc.idc \
diff --git a/init.hardware.rc b/init.hardware.rc
index 7b1fddee..0c343e3a 100644
--- a/init.hardware.rc
+++ b/init.hardware.rc
@@ -14,6 +14,7 @@
# limitations under the License.
#
+import /vendor/etc/init/hw/init.${ro.boot.hardware.platform}.power.rc
import /vendor/etc/init/hw/init.${ro.boot.hardware.platform}.usb.rc
on charger
@@ -24,6 +25,7 @@ on charger
write /sys/devices/system/cpu/cpu6/online 0
write /sys/devices/system/cpu/cpu7/online 0
wait /dev/block/bootdevice
+ write /sys/module/lpm_levels/parameters/sleep_disabled 0
service charger /charger
class charger
@@ -34,6 +36,9 @@ on early-init
chmod 0755 /sys/kernel/debug
on init
+ # Disable powersaving
+ write /sys/module/lpm_levels/parameters/sleep_disabled 1
+
# Loading kernel modules in background
start insmod_sh
@@ -41,9 +46,29 @@ on init
symlink /sdcard /mnt/sdcard
symlink /sdcard /storage/sdcard0
- # STOPSHIP disable thermal and enable cores before governor settings
- # STOPSHIP governor settings
- # STOPSHIP start power_sh
+ # bring back all cores
+ write /sys/devices/system/cpu/cpu0/online 1
+ write /sys/devices/system/cpu/cpu1/online 1
+ write /sys/devices/system/cpu/cpu2/online 1
+ write /sys/devices/system/cpu/cpu3/online 1
+ write /sys/devices/system/cpu/cpu4/online 1
+ write /sys/devices/system/cpu/cpu5/online 1
+ write /sys/devices/system/cpu/cpu6/online 1
+ write /sys/devices/system/cpu/cpu7/online 1
+
+ # configure governor settings for little cluster
+ write /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor schedutil
+ write /sys/devices/system/cpu/cpu0/cpufreq/schedutil/rate_limit_us 0
+ write /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_freq 1209600
+
+ # configure governor settings for big cluster
+ write /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor schedutil
+ write /sys/devices/system/cpu/cpu4/cpufreq/schedutil/rate_limit_us 0
+ write /sys/devices/system/cpu/cpu4/cpufreq/schedutil/hispeed_freq 1574400
+ write /sys/module/cpu_boost/parameters/input_boost_freq "0:1324800"
+ write /sys/module/cpu_boost/parameters/input_boost_ms 120
+ # Limit the min frequency to 825MHz
+ write /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq 825000
# set default schedTune value for foreground/top-app
write /dev/stune/foreground/schedtune.prefer_idle 1
@@ -110,8 +135,6 @@ on init
mkdir /dev/socket/pdx/system/vr/pose 0775 system system
mkdir /dev/socket/pdx/system/vr/sensors 0775 system system
- # STOPSHIP enable low power modes
-
# b/37682684 Enable suspend clock reporting
write /sys/kernel/debug/clk/debug_suspend 1
@@ -413,7 +436,7 @@ service folio_daemon /system/bin/folio_daemon
user system
group system
-service perfd /vendor/bin/perfd
+service vendor.perfd /vendor/bin/perfd
class main
user root
group root readproc system
@@ -452,6 +475,9 @@ service per_proxy /vendor/bin/pm-proxy
group system
disabled
+on property:sys.post_boot.parsed=1
+ start vendor.perfd
+
on property:sys.boot_completed=1
# Enable ZRAM on boot_complete
swapon_all /vendor/etc/fstab.${ro.boot.hardware.platform}
@@ -650,13 +676,6 @@ service vendor.chre /vendor/bin/chre
socket chre seqpacket 0660 root system
shutdown critical
-service power_sh /vendor/bin/init.power.sh
- class main
- user root
- group root system
- disabled
- oneshot
-
service devstart_sh /vendor/bin/init.qcom.devstart.sh
class main
user root
diff --git a/init.power.rc b/init.power.rc
new file mode 100644
index 00000000..c20b3890
--- /dev/null
+++ b/init.power.rc
@@ -0,0 +1,68 @@
+#
+# Copyright (C) 2017 The Android Open-Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+on property:sys.boot_completed=1
+ # Enable bus-dcvs
+ write /sys/class/devfreq/soc:qcom,cpubw/governor "bw_hwmon"
+ write /sys/class/devfreq/soc:qcom,cpubw/polling_interval 50
+ write /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/mbps_zones "2288 4577 6500 8132 9155 10681"
+ write /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/sample_ms 4
+ write /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/io_percent 40
+ write /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/hist_memory 20
+ write /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/hyst_length 10
+ write /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/low_power_ceil_mbps 0
+ write /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/low_power_io_percent 40
+ write /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/low_power_delay 20
+ write /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/guard_band_mbps 0
+ write /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/up_scale 250
+ write /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/idle_mbps 1600
+
+ write /sys/class/devfreq/soc:qcom,llccbw/governor "bw_hwmon"
+ write /sys/class/devfreq/soc:qcom,llccbw/polling_interval 50
+ write /sys/class/devfreq/soc:qcom,llccbw/bw_hwmon/mbps_zones "1720 2929 4943 5931 6881"
+ write /sys/class/devfreq/soc:qcom,llccbw/bw_hwmon/sample_ms 4
+ write /sys/class/devfreq/soc:qcom,llccbw/bw_hwmon/io_percent 80
+ write /sys/class/devfreq/soc:qcom,llccbw/bw_hwmon/hist_memory 20
+ write /sys/class/devfreq/soc:qcom,llccbw/bw_hwmon/hyst_length 10
+ write /sys/class/devfreq/soc:qcom,llccbw/bw_hwmon/low_power_ceil_mbps 0
+ write /sys/class/devfreq/soc:qcom,llccbw/bw_hwmon/low_power_io_percent 80
+ write /sys/class/devfreq/soc:qcom,llccbw/bw_hwmon/low_power_delay 20
+ write /sys/class/devfreq/soc:qcom,llccbw/bw_hwmon/guard_band_mbps 0
+ write /sys/class/devfreq/soc:qcom,llccbw/bw_hwmon/up_scale 250
+ write /sys/class/devfreq/soc:qcom,llccbw/bw_hwmon/idle_mbps 1600
+
+ write /sys/class/devfreq/soc:qcom,mincpubw/governor "cpufreq"
+
+ # Enable memlat governor
+ write /sys/class/devfreq/soc:qcom,memlat-cpu0/governor "mem_latency"
+ write /sys/class/devfreq/soc:qcom,memlat-cpu0/polling_interval 10
+ write /sys/class/devfreq/soc:qcom,memlat-cpu0/mem_latency/ratio_ceil 400
+ write /sys/class/devfreq/soc:qcom,memlat-cpu4/governor "mem_latency"
+ write /sys/class/devfreq/soc:qcom,memlat-cpu4/polling_interval 10
+ write /sys/class/devfreq/soc:qcom,memlat-cpu4/mem_latency/ratio_ceil 400
+
+ write /sys/class/devfreq/soc:qcom,l3-cpu0/governor "mem_latency"
+ write /sys/class/devfreq/soc:qcom,l3-cpu0/polling_interval 10
+ write /sys/class/devfreq/soc:qcom,l3-cpu0/mem_latency/ratio_ceil 400
+ write /sys/class/devfreq/soc:qcom,l3-cpu4/governor "mem_latency"
+ write /sys/class/devfreq/soc:qcom,l3-cpu4/polling_interval 10
+ write /sys/class/devfreq/soc:qcom,l3-cpu4/mem_latency/ratio_ceil 400
+
+ # Turn on sleep modes.
+ write /sys/module/lpm_levels/parameters/sleep_disabled 0
+
+ # Signal perfd that boot has completed
+ setprop sys.post_boot.parsed 1 \ No newline at end of file
diff --git a/init.power.sh b/init.power.sh
deleted file mode 100644
index 2b66c67f..00000000
--- a/init.power.sh
+++ /dev/null
@@ -1,47 +0,0 @@
-#! /vendor/bin/sh
-
-################################################################################
-# helper functions to allow Android init like script
-
-function write() {
- echo -n $2 > $1
-}
-
-function copy() {
- cat $1 > $2
-}
-
-################################################################################
-
-# Enable bus-dcvs
-for cpubw in /sys/class/devfreq/*qcom,cpubw*
-do
- write $cpubw/governor "bw_hwmon"
- write $cpubw/polling_interval 50
- write $cpubw/min_freq 1525
- write $cpubw/bw_hwmon/mbps_zones "3143 5859 11863 13763"
- write $cpubw/bw_hwmon/sample_ms 4
- write $cpubw/bw_hwmon/io_percent 34
- write $cpubw/bw_hwmon/hist_memory 20
- write $cpubw/bw_hwmon/hyst_length 10
- write $cpubw/bw_hwmon/low_power_ceil_mbps 0
- write $cpubw/bw_hwmon/low_power_io_percent 34
- write $cpubw/bw_hwmon/low_power_delay 20
- write $cpubw/bw_hwmon/guard_band_mbps 0
- write $cpubw/bw_hwmon/up_scale 250
- write $cpubw/bw_hwmon/idle_mbps 1600
-done
-
-write /sys/class/devfreq/soc:qcom,mincpubw/governor "cpufreq"
-
-# Enable memlat governor
-for memlat in /sys/class/devfreq/*qcom,memlat-cpu*
-do
- write $memlat/governor "mem_latency"
- write $memlat/polling_interval 10
- write $memlat/mem_latency/ratio_ceil 400
-done
-
-# Signal perfd that boot has completed
-setprop sys.post_boot.parsed 1
-