From e90548bdf0b4136ebc71f46b3207349ebf856dad Mon Sep 17 00:00:00 2001 From: Chris Dearman <chris.dearman@imgtec.com> Date: Wed, 13 Jan 2016 17:29:27 -0800 Subject: [PATCH] SOC support for Imagination fs1130 BUG: 26512598 Change-Id: I5d04673aab3914d7b06ed7b4f9ccc1f6176b4e51 --- soc/fs1130/init.fs1130.rc | 30 +++++++++++++++ soc/fs1130/sepolicy/file_contexts | 9 +++++ soc/fs1130/soc.kconf | 64 +++++++++++++++++++++++++++++++ soc/fs1130/soc.mk | 64 +++++++++++++++++++++++++++++++ soc/fs1130/ueventd.fs1130.rc | 2 + 5 files changed, 169 insertions(+) create mode 100644 soc/fs1130/init.fs1130.rc create mode 100644 soc/fs1130/sepolicy/file_contexts create mode 100644 soc/fs1130/soc.kconf create mode 100644 soc/fs1130/soc.mk create mode 100644 soc/fs1130/ueventd.fs1130.rc diff --git a/soc/fs1130/init.fs1130.rc b/soc/fs1130/init.fs1130.rc new file mode 100644 index 0000000..ff93d28 --- /dev/null +++ b/soc/fs1130/init.fs1130.rc @@ -0,0 +1,30 @@ +# +# Copyright 2016 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 init + # Android creates by-name disk links with the disk controller + # in the generated path, so that the names pulled out of the GPT + # can be associated with the correct disk. Create a shortcut to + # /dev/block/by-name so that we can use the same fstabs everywhere. + symlink /dev/block/platform/18142000.mmc/by-name /dev/block/by-name + +on fs + mount_all /fstab.${ro.hardware} + mkdir /dev/usb-ffs 0770 shell shell + mkdir /dev/usb-ffs/adb 0770 shell shell + mount functionfs adb /dev/usb-ffs/adb uid=2000,gid=2000 + write /sys/class/android_usb/android0/f_ffs/aliases adb + write /sys/class/android_usb/android0/iSerial ${ro.hardware}${ro.serialno} diff --git a/soc/fs1130/sepolicy/file_contexts b/soc/fs1130/sepolicy/file_contexts new file mode 100644 index 0000000..1e2ad23 --- /dev/null +++ b/soc/fs1130/sepolicy/file_contexts @@ -0,0 +1,9 @@ +# Serial console +/dev/ttyS1 u:object_r:console_device:s0 + +# Bluetooth UART device port +/dev/ttyS0 u:object_r:bluetoothtbd_device:s0 + +# Bluetooth ON/OFF functions +# /sys/class/rfkill/rfkillX/state u:object_r:sysfs_bluetoothtbd_writable:s0 +# /sys/class/rfkill/rfkillX/type u:object_r:sysfs_bluetoothtbd_readable:s0 diff --git a/soc/fs1130/soc.kconf b/soc/fs1130/soc.kconf new file mode 100644 index 0000000..006e6f6 --- /dev/null +++ b/soc/fs1130/soc.kconf @@ -0,0 +1,64 @@ +# +# Copyright 2016 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. +# + +# Disable NFS +# CONFIG_IP_PNP is not set +# CONFIG_NETWORK_FILESYSTEMS is not set + +# Remove MAC simulator as it confuses shill +# CONFIG_MAC80211_HWSIM is not set + +# Remove BT support for now to avoid firmware loader conflict +# CONFIG_IMG_CONNECTIVITY is not set +# CONFIG_BT_IMG is not set + +# Enable Bluetooth HCI UART driver +CONFIG_BT_HCIUART=y +CONFIG_BT_HCIUART_H4=y +CONFIG_BT_HCIUART_BCSP=y +CONFIG_BT=y +CONFIG_BT_RFCOMM=y +CONFIG_BT_RFCOMM_TTY=y +CONFIG_BT_BNEP=y +CONFIG_BT_BNEP_MC_FILTER=y +CONFIG_BT_BNEP_PROTO_FILTER=y + +# Use LZO compressed kernel +CONFIG_KERNEL_LZO=y + +# Include builtin DTB +CONFIG_BUILTIN_DTB=y + +# Use internal database 80211 +CONFIG_CFG80211_INTERNAL_REGDB=y + +# Disable debugfs which is causing kernel crash +# [ 89.231090] Call Trace: +# [ 89.233921] [<80ce681c>] mutex_lock+0x34/0x90 +# [ 89.238883] [<806d325c>] start_creating+0x78/0xe8 +# [ 89.244212] [<806d36b4>] debugfs_create_dir+0x28/0xf0 +# [ 89.249959] [<80cb97c0>] ieee80211_sta_debugfs_add+0x78/0x448 +# [ 89.256461] [<80c64e98>] sta_info_insert_finish+0x428/0xb04 +# [ 89.262755] [<80c65b10>] sta_info_insert_rcu+0xc0/0xe4 +# [ 89.268586] [<80c82904>] ieee80211_add_station+0x2a4/0x304 +# [ 89.274810] [<80c270f8>] nl80211_new_station+0x3b4/0x494 +# CONFIG_MAC80211_DEBUGFS is not set + +# Use generic functionsfs for adb gadget +CONFIG_USB_FUNCTIONFS=y +# CONFIG_USB_FUNCTIONFS_ETH is not set +# CONFIG_USB_FUNCTIONFS_RNDIS is not set +CONFIG_USB_FUNCTIONFS_GENERIC=y diff --git a/soc/fs1130/soc.mk b/soc/fs1130/soc.mk new file mode 100644 index 0000000..b248dbd --- /dev/null +++ b/soc/fs1130/soc.mk @@ -0,0 +1,64 @@ +# +# Copyright 2016 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. +# + +LOCAL_PATH := hardware/bsp/imagination/soc/fs1130 + +# MIPS32 device. +TARGET_ARCH := mips +TARGET_ARCH_VARIANT := mips32r2-fp +TARGET_CPU_VARIANT := +TARGET_CPU_ABI := mips +TARGET_CPU_ABI2 := +TARGET_KERNEL_ARCH := $(TARGET_ARCH) + +TARGET_NO_BOOTLOADER := false +TARGET_NO_KERNEL := false + +BOARD_KERNEL_CMDLINE := console=ttyS1,115200n8 earlycon=uart8250,mmio32,0x18101500,115200 androidboot.console=ttyS1 androidboot.hardware=fs1130 security=selinux androidboot.selinux=enforcing + +# Should be in bootloader DTB... firmware/android/ +BOARD_KERNEL_CMDLINE += androidboot.serialno=4567 +BOARD_KERNEL_CMDLINE += g_ffs.idVendor=0x18d1 g_ffs.idProduct=0xc141 g_ffs.iSerialNumber=4567 + +TARGET_USERIMAGES_USE_EXT4 := true +BOARD_CACHEIMAGE_FILE_SYSTEM_TYPE := ext4 +BOARD_FLASH_BLOCK_SIZE := 131072 + +PRODUCT_COPY_FILES += \ + $(LOCAL_PATH)/init.fs1130.rc:root/init.fs1130.rc \ + system/core/rootdir/init.usb.rc:root/init.usb.rc \ + system/core/rootdir/ueventd.rc:root/ueventd.rc \ + $(LOCAL_PATH)/ueventd.fs1130.rc:root/ueventd.fs1130.rc \ + +BOARD_SEPOLICY_DIRS += \ + $(LOCAL_PATH)/sepolicy \ + +TARGET_KERNEL_SRC := hardware/bsp/kernel/imagination/v4.1 +TARGET_KERNEL_DEFCONFIG := pistachio_defconfig +TARGET_KERNEL_CONFIGS := $(realpath $(LOCAL_PATH)/soc.kconf) + +# Keystore HAL +DEVICE_PACKAGES += \ + keystore.default + +# Boot control HAL +DEVICE_PACKAGES += \ + bootctrl.fs1130 + +# Device partition table +DEVICE_PACKAGES += \ + gpt.bin + diff --git a/soc/fs1130/ueventd.fs1130.rc b/soc/fs1130/ueventd.fs1130.rc new file mode 100644 index 0000000..8a43f1e --- /dev/null +++ b/soc/fs1130/ueventd.fs1130.rc @@ -0,0 +1,2 @@ +# fs1130-specific setup +/dev/ttyS0 0660 bluetooth net_bt_stack -- GitLab