diff --git a/soc/fs1130/init.fs1130.rc b/soc/fs1130/init.fs1130.rc
new file mode 100644
index 0000000000000000000000000000000000000000..ff93d28247d086b6cb963c3123bc4693554e826b
--- /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 0000000000000000000000000000000000000000..1e2ad23b4e001a9a09039a544dc410ca08fb6d0b
--- /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 0000000000000000000000000000000000000000..006e6f63860c4c4a7beba3b9bae88913c87e88cb
--- /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 0000000000000000000000000000000000000000..b248dbddb217c86e646f3b60348301ea448df0a5
--- /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 0000000000000000000000000000000000000000..8a43f1ecf405b74fcff447e7b4d749719ed5eb71
--- /dev/null
+++ b/soc/fs1130/ueventd.fs1130.rc
@@ -0,0 +1,2 @@
+# fs1130-specific setup
+/dev/ttyS0                              0660   bluetooth  net_bt_stack