summaryrefslogtreecommitdiffstats
path: root/bsp/meta-sancloud
diff options
context:
space:
mode:
authorToshikazuOhiwa <toshikazu_ohiwa@mail.toyota.co.jp>2020-03-30 09:24:26 +0900
committerToshikazuOhiwa <toshikazu_ohiwa@mail.toyota.co.jp>2020-03-30 09:24:26 +0900
commit5b80bfd7bffd4c20d80b7c70a7130529e9a755dd (patch)
treeb4bb18dcd1487dbf1ea8127e5671b7bb2eded033 /bsp/meta-sancloud
parent706ad73eb02caf8532deaf5d38995bd258725cb8 (diff)
agl-basesystem
Diffstat (limited to 'bsp/meta-sancloud')
-rw-r--r--bsp/meta-sancloud/COPYING19
-rw-r--r--bsp/meta-sancloud/MAINTAINERS1
-rw-r--r--bsp/meta-sancloud/README.md59
-rw-r--r--bsp/meta-sancloud/conf/layer.conf17
-rw-r--r--bsp/meta-sancloud/conf/machine/bbe.conf31
-rw-r--r--bsp/meta-sancloud/meta-sancloud-arago/conf/layer.conf17
-rw-r--r--bsp/meta-sancloud/meta-sancloud-arago/recipes-graphics/wayland/weston-conf_%.bbappend3
-rw-r--r--bsp/meta-sancloud/recipes-bsp/u-boot/u-boot-bbe_2019.04.bb16
-rw-r--r--bsp/meta-sancloud/recipes-kernel/linux/linux-bbe-4.19.inc27
-rw-r--r--bsp/meta-sancloud/recipes-kernel/linux/linux-bbe-4.19/0001-Update-DTS-for-Automotive-Cape-ICU.patch305
-rw-r--r--bsp/meta-sancloud/recipes-kernel/linux/linux-bbe-4.19/am335x-pru-uio.dtsi192
-rw-r--r--bsp/meta-sancloud/recipes-kernel/linux/linux-bbe-4.19/cmem.dtsi38
-rw-r--r--bsp/meta-sancloud/recipes-kernel/linux/linux-bbe-rt_4.19.bb5
-rw-r--r--bsp/meta-sancloud/recipes-kernel/linux/linux-bbe_4.19.bb5
-rw-r--r--bsp/meta-sancloud/wic/sancloud_bbe.wks7
15 files changed, 742 insertions, 0 deletions
diff --git a/bsp/meta-sancloud/COPYING b/bsp/meta-sancloud/COPYING
new file mode 100644
index 00000000..d4bf6d69
--- /dev/null
+++ b/bsp/meta-sancloud/COPYING
@@ -0,0 +1,19 @@
+Copyright (C) 2018-2019, Sancloud Ltd
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/bsp/meta-sancloud/MAINTAINERS b/bsp/meta-sancloud/MAINTAINERS
new file mode 100644
index 00000000..bcd8b059
--- /dev/null
+++ b/bsp/meta-sancloud/MAINTAINERS
@@ -0,0 +1 @@
+SanCloud Ltd <yocto@sancloud.co.uk>
diff --git a/bsp/meta-sancloud/README.md b/bsp/meta-sancloud/README.md
new file mode 100644
index 00000000..4356460f
--- /dev/null
+++ b/bsp/meta-sancloud/README.md
@@ -0,0 +1,59 @@
+[<img align=right src="https://www.sancloud.co.uk/wp-content/uploads/2016/09/sancloud_and_address_web.png">](https://www.sancloud.co.uk/)
+
+Yocto BSP layer for the SanCloud boards
+=======================================
+
+Quick links
+-----------
+
+* [SanCloud website](https://www.sancloud.co.uk/)
+
+* [BeagleBone Enhanced Description](https://www.sancloud.co.uk/?page_id=254)
+
+* [Sancloud repositories on GitHub](https://github.com/SanCloudLtd)
+
+Description
+-----------
+
+This is the Yocto Project Board Support Package (BSP) layer for SanCloud devices.
+
+Currently supported hardware with corresponding Yocto Project MACHINE names:
+
+* `bbe`: Sancloud BeagleBone Enhanced (BBE)
+
+This BSP is layer is tested in two primary configurations:
+
+* Automotive Grade Linux (AGL)
+* Arago Distribution
+
+Additionally, this BSP layer should work with the distro-less configuration
+included in openembedded-core as well as the Poky distribution.
+
+Getting Started with AGL
+------------------------
+
+This BSP layer is included in the most recent stable branch of AGL, code-named
+Grumpy Guppy. AGL sources can be downloaded by following the
+[upstream instructions](https://wiki.automotivelinux.org/agl-distro/source-code).
+Once the AGL sources have been downloaded and you're in the top-level AGL
+directory, run the following commands to build the AGL Demo image for the
+Sancloud BBE:
+
+ source meta-agl/scripts/aglsetup.sh -m bbe agl-demo agl-devel
+ bitbake agl-demo-platform
+
+Getting started with Arago
+--------------------------
+
+A pre-integrated Arago Distribution repository is available at
+https://github.com/SanCloudLtd/sancloud-arago. Please follow the instructions
+in the README.md file in that repository to get started.
+
+Support
+-------
+
+Issues and Pull Requests for this BSP layer may be opened on our primary
+GitHub repository at https://github.com/SanCloudLtd/meta-sancloud.
+
+For further support enquiries please contact us via email to
+yocto@sancloud.co.uk.
diff --git a/bsp/meta-sancloud/conf/layer.conf b/bsp/meta-sancloud/conf/layer.conf
new file mode 100644
index 00000000..195a6e27
--- /dev/null
+++ b/bsp/meta-sancloud/conf/layer.conf
@@ -0,0 +1,17 @@
+# We have a conf and classes directory, append to BBPATH
+BBPATH .= ":${LAYERDIR}"
+
+# We have a recipes directory containing .bb and .bbappend files, add to BBFILES
+BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
+ ${LAYERDIR}/recipes-*/*/*.bbappend"
+
+BBFILE_COLLECTIONS += "meta-sancloud"
+BBFILE_PATTERN_meta-sancloud := "^${LAYERDIR}/"
+BBFILE_PRIORITY_meta-sancloud = "9"
+
+LAYERSERIES_COMPAT_meta-sancloud = "thud"
+LAYERDEPENDS_meta-sancloud = " \
+ core \
+ meta-ti \
+ rtlwifi \
+ "
diff --git a/bsp/meta-sancloud/conf/machine/bbe.conf b/bsp/meta-sancloud/conf/machine/bbe.conf
new file mode 100644
index 00000000..96408b59
--- /dev/null
+++ b/bsp/meta-sancloud/conf/machine/bbe.conf
@@ -0,0 +1,31 @@
+#@TYPE: Machine
+#@NAME: SanCloud BeagleBone Enhanced Development Board
+#@DESCRIPTION: Machine configuration for the BeagleBone Enhanced http://www.sancloud.co.uk/?page_id=254 Board
+
+MACHINEOVERRIDES =. "beaglebone:"
+require conf/machine/include/ti33x.inc
+
+MACHINE_EXTRA_RDEPENDS += " \
+ kernel-modules linux-firmware-rtl8723 usbutils \
+ iw crda rtl8723bu kernel-module-8723bu \
+ "
+
+EXTRA_IMAGEDEPENDS += "u-boot-bbe"
+
+IMAGE_FSTYPES += "tar.xz wic.xz wic.bmap"
+WKS_FILE ?= "sancloud_bbe.wks"
+do_image_wic[depends] += "u-boot-bbe:do_build"
+
+SERIAL_CONSOLE = "115200 ttyS0"
+
+BBE_RT_KERNEL ??= "0"
+PREFERRED_PROVIDER_virtual/kernel_bbe = '${@oe.utils.conditional("BBE_RT_KERNEL","1","linux-bbe-rt","linux-bbe",d)}'
+PREFERRED_PROVIDER_virtual/bootloader = "u-boot-bbe"
+PREFERRED_PROVIDER_u-boot = "u-boot-bbe"
+
+KERNEL_DEVICETREE = "am335x-sancloud-bbe.dtb"
+KERNEL_EXTRA_ARGS += "LOADADDR=${UBOOT_ENTRYPOINT}"
+
+SPL_BINARY = "MLO"
+UBOOT_SUFFIX = "img"
+UBOOT_MACHINE = "am335x_evm_config"
diff --git a/bsp/meta-sancloud/meta-sancloud-arago/conf/layer.conf b/bsp/meta-sancloud/meta-sancloud-arago/conf/layer.conf
new file mode 100644
index 00000000..a2537125
--- /dev/null
+++ b/bsp/meta-sancloud/meta-sancloud-arago/conf/layer.conf
@@ -0,0 +1,17 @@
+# We have a conf and classes directory, append to BBPATH
+BBPATH .= ":${LAYERDIR}"
+
+# We have a recipes directory containing .bb and .bbappend files, add to BBFILES
+BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
+ ${LAYERDIR}/recipes-*/*/*.bbappend"
+
+BBFILE_COLLECTIONS += "meta-sancloud-arago"
+BBFILE_PATTERN_meta-sancloud-arago := "^${LAYERDIR}/"
+BBFILE_PRIORITY_meta-sancloud-arago = "9"
+
+LAYERSERIES_COMPAT_meta-sancloud-arago = "thud"
+LAYERDEPENDS_meta-sancloud-arago = " \
+ core \
+ meta-ti \
+ meta-sancloud \
+ "
diff --git a/bsp/meta-sancloud/meta-sancloud-arago/recipes-graphics/wayland/weston-conf_%.bbappend b/bsp/meta-sancloud/meta-sancloud-arago/recipes-graphics/wayland/weston-conf_%.bbappend
new file mode 100644
index 00000000..286060de
--- /dev/null
+++ b/bsp/meta-sancloud/meta-sancloud-arago/recipes-graphics/wayland/weston-conf_%.bbappend
@@ -0,0 +1,3 @@
+do_configure_append_bbe() {
+ sed -i '/\[core\]/a gbm-format=rgb565' ${WORKDIR}/weston.ini
+}
diff --git a/bsp/meta-sancloud/recipes-bsp/u-boot/u-boot-bbe_2019.04.bb b/bsp/meta-sancloud/recipes-bsp/u-boot/u-boot-bbe_2019.04.bb
new file mode 100644
index 00000000..19d0c77d
--- /dev/null
+++ b/bsp/meta-sancloud/recipes-bsp/u-boot/u-boot-bbe_2019.04.bb
@@ -0,0 +1,16 @@
+HOMEPAGE = "http://www.denx.de/wiki/U-Boot/WebHome"
+SECTION = "bootloaders"
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://Licenses/README;md5=30503fd321432fc713238f582193b78e"
+
+DEPENDS += "flex-native bison-native"
+
+require recipes-bsp/u-boot/u-boot.inc
+
+SRC_URI = "git://github.com/SanCloudLtd/u-boot.git;protocol=https;branch=uboot-bbe-2019.04"
+SRCREV = "38b97ce10fdb2061f5f6e7bd7b0bd9d24bc367e2"
+PV = "2019.04+git${SRCPV}"
+
+S = "${WORKDIR}/git"
+
+PROVIDES += "u-boot"
diff --git a/bsp/meta-sancloud/recipes-kernel/linux/linux-bbe-4.19.inc b/bsp/meta-sancloud/recipes-kernel/linux/linux-bbe-4.19.inc
new file mode 100644
index 00000000..72353b11
--- /dev/null
+++ b/bsp/meta-sancloud/recipes-kernel/linux/linux-bbe-4.19.inc
@@ -0,0 +1,27 @@
+SECTION = "kernel"
+DESCRIPTION = "Linux kernel for SanCloud BeagleBone devices"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814"
+
+inherit kernel
+
+require recipes-kernel/linux/cmem.inc
+require recipes-kernel/linux/ti-uio.inc
+
+# Look in the generic major.minor directory for files
+FILESEXTRAPATHS_prepend = "${THISDIR}/linux-bbe-4.19:"
+
+SRC_URI = "git://github.com/SanCloudLtd/linux.git;protocol=https;branch=${BRANCH}"
+
+# Apply DTS changes to support Automotive Cape if requested
+SRC_URI += '${@oe.utils.conditional("BBE_ENABLE_AUTOMOTIVE_CAPE", "1", "file://0001-Update-DTS-for-Automotive-Cape-ICU.patch", "", d)}'
+
+S = "${WORKDIR}/git"
+
+do_configure_append() {
+ oe_runmake -C ${S} O=${B} sancloud_bbe_defconfig
+}
+
+# Pull in the devicetree files into the rootfs & add run-time dependency for PM
+# firmware to the rootfs
+RDEPENDS_${KERNEL_PACKAGE_NAME}-base += "${KERNEL_PACKAGE_NAME}-devicetree amx3-cm3"
diff --git a/bsp/meta-sancloud/recipes-kernel/linux/linux-bbe-4.19/0001-Update-DTS-for-Automotive-Cape-ICU.patch b/bsp/meta-sancloud/recipes-kernel/linux/linux-bbe-4.19/0001-Update-DTS-for-Automotive-Cape-ICU.patch
new file mode 100644
index 00000000..b1bb2214
--- /dev/null
+++ b/bsp/meta-sancloud/recipes-kernel/linux/linux-bbe-4.19/0001-Update-DTS-for-Automotive-Cape-ICU.patch
@@ -0,0 +1,305 @@
+From 86446c29c1818abdff438440b70b34a9390eb4b3 Mon Sep 17 00:00:00 2001
+From: Paul Barker <paul.barker@sancloud.co.uk>
+Date: Mon, 20 May 2019 15:57:15 +0000
+Subject: [PATCH] Update DTS for Automotive Cape (ICU)
+
+Signed-off-by: Paul Barker <paul.barker@sancloud.co.uk>
+---
+ arch/arm/boot/dts/am335x-sancloud-bbe.dts | 154 ++++++++++++++++++
+ .../dt-bindings/board/am335x-bbw-bbb-base.h | 108 ++++++++++++
+ 2 files changed, 262 insertions(+)
+ create mode 100644 include/dt-bindings/board/am335x-bbw-bbb-base.h
+
+diff --git a/arch/arm/boot/dts/am335x-sancloud-bbe.dts b/arch/arm/boot/dts/am335x-sancloud-bbe.dts
+index f2ec84683109..cb35368c975b 100644
+--- a/arch/arm/boot/dts/am335x-sancloud-bbe.dts
++++ b/arch/arm/boot/dts/am335x-sancloud-bbe.dts
+@@ -10,6 +10,7 @@
+ #include "am33xx.dtsi"
+ #include "am335x-bone-common.dtsi"
+ #include "am335x-boneblack-common.dtsi"
++#include <dt-bindings/board/am335x-bbw-bbb-base.h>
+ #include <dt-bindings/interrupt-controller/irq.h>
+
+ / {
+@@ -97,6 +98,46 @@
+ AM33XX_IOPAD(0x868, PIN_INPUT | MUX_MODE7) /* gpmc_a10.gpio1_26 */
+ >;
+ };
++
++ icu_led_pins: pinmux_icu_led_pins {
++ pinctrl-single,pins = <
++ BONE_P9_27 (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* LED_1 */
++ BONE_P9_25 (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* LED_2 */
++ BONE_P9_23 (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* LED_3 */
++ BONE_P9_42 (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* LED_4 */
++ BONE_P9_15 (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* LED_5 */
++ BONE_P9_24 (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* LED_6 */
++ >;
++ };
++
++ icu_i2c1_pins: pinmux_icu_i2c1_pins {
++ pinctrl-single,pins = <
++ BONE_P9_18 (PIN_INPUT_PULLUP | SLEWCTRL_SLOW | MUX_MODE2) /* I2C1_SDA */
++ BONE_P9_17 (PIN_INPUT_PULLUP | SLEWCTRL_SLOW | MUX_MODE2) /* I2C1_SCL */
++ >;
++ };
++
++ icu_can0_pins: pinmux_icu_can0_pins {
++ pinctrl-single,pins = <
++ BONE_P9_19 (PIN_INPUT_PULLUP | MUX_MODE2) /* CAN0_RXD */
++ BONE_P9_20 (PIN_OUTPUT_PULLUP | MUX_MODE2) /* CAN0_TXD */
++ >;
++ };
++
++ icu_vda_pins: pinmux_icu_vda_pins {
++ pinctrl-single,pins = <
++ BONE_P8_18 (PIN_INPUT | MUX_MODE7) /* RADIO */
++ BONE_P8_15 (PIN_INPUT | MUX_MODE7) /* BEAM */
++ BONE_P8_17 (PIN_INPUT | WAKEUP_EN | MUX_MODE7) /* IGNITION */
++ >;
++ };
++
++ icu_wireless_pins: pinmux_icu_wireless_pins {
++ pinctrl-single,pins = <
++ BONE_P8_27 (PIN_OUTPUT_PULLUP | MUX_MODE7) /* WIRELESS_OFF_N */
++ BONE_P9_26 (PIN_OUTPUT_PULLUP | MUX_MODE7) /* WIRELESS_RST_N */
++ >;
++ };
+ };
+
+ &mac {
+@@ -142,3 +183,116 @@
+ /* wifi on port 4 */
+ };
+ };
++
++&i2c1 {
++ pinctrl-names = "default";
++ pinctrl-0 = <&icu_i2c1_pins>;
++ status = "okay";
++ clock-frequency = <400000>;
++
++ rtc1@68 {
++ compatible = "dallas,ds1337";
++ reg = <0x68>;
++ status = "okay";
++ };
++};
++
++&i2c2 {
++ /* Disable I2C2 as it shares pins with CAN0 */
++ pinctrl-0 = "";
++ status = "disabled";
++};
++
++&dcan0 {
++ #address-cells = <1>;
++ #size-cells = <0>;
++ pinctrl-names = "default";
++ pinctrl-0 = <&icu_can0_pins>;
++ status = "okay";
++};
++
++/ {
++ icu_leds {
++ compatible = "gpio-leds";
++ #address-cells = <1>;
++ #size-cells = <0>;
++ pinctrl-names = "default";
++ pinctrl-0 = <&icu_led_pins>;
++ status = "okay";
++
++ icu_led@2 {
++ label = "beaglebone:red:led1";
++ gpios = <&gpio3 21 GPIO_ACTIVE_HIGH>;
++ linux,default-trigger = "mmc0";
++ default-state = "off";
++ };
++
++ icu_led@3 {
++ label = "beaglebone:green:led2";
++ gpios = <&gpio1 17 GPIO_ACTIVE_HIGH>;
++ linux,default-trigger = "heartbeat";
++ default-state = "off";
++ };
++
++ icu_led@1 {
++ label = "beaglebone:red:led3";
++ gpios = <&gpio3 19 GPIO_ACTIVE_HIGH>;
++ linux,default-trigger = "none";
++ default-state = "off";
++ };
++
++ icu_led@6 {
++ label = "beaglebone:green:led4";
++ gpios = <&gpio0 15 GPIO_ACTIVE_HIGH>;
++ linux,default-trigger = "none";
++ default-state = "off";
++ };
++
++ icu_led@5 {
++ label = "beaglebone:red:led5";
++ gpios = <&gpio1 16 GPIO_ACTIVE_HIGH>;
++ linux,default-trigger = "none";
++ default-state = "off";
++ };
++
++ icu_led@4 {
++ label = "beaglebone:green:led6";
++ gpios = <&gpio0 7 GPIO_ACTIVE_HIGH>;
++ linux,default-trigger = "none";
++ default-state = "off";
++ };
++ };
++
++ icu_vda {
++ compatible = "gpio-keys";
++ #address-cells = <1>;
++ #size-cells = <0>;
++ pinctrl-names = "default";
++ pinctrl-0 = <&icu_vda_pins>;
++ status = "okay";
++
++ radio_pin {
++ label = "radio";
++ linux,code = <0x3b>; /* KEY_F1 */
++ gpios = <&gpio2 1 GPIO_ACTIVE_HIGH>;
++ gpio-key;
++ debounce-interval = <10>;
++ };
++
++ ignition_pin {
++ label = "ignition";
++ linux,code = <0x8f>; /* KEY_WAKEUP */
++ gpios = <&gpio0 27 GPIO_ACTIVE_LOW>;
++ wakeup-source;
++ debounce-interval = <10>;
++ };
++
++ beam_pin {
++ label = "beam";
++ linux,code = <0x3c>; /* KEY_F2 */
++ gpios = <&gpio1 15 GPIO_ACTIVE_LOW>;
++ gpio-key;
++ debounce-interval = <10>;
++ };
++ };
++};
+diff --git a/include/dt-bindings/board/am335x-bbw-bbb-base.h b/include/dt-bindings/board/am335x-bbw-bbb-base.h
+new file mode 100644
+index 000000000000..ad745f042c70
+--- /dev/null
++++ b/include/dt-bindings/board/am335x-bbw-bbb-base.h
+@@ -0,0 +1,108 @@
++/*
++ * This header provides constants for bbw/bbb pinctrl bindings.
++ *
++ * Copyright (C) 2014 Robert Nelson <robertcnelson@gmail.com>
++ *
++ * Numbers Based on: https://github.com/derekmolloy/boneDeviceTree/tree/master/docs
++ */
++
++#ifndef _DT_BINDINGS_BOARD_AM335X_BBW_BBB_BASE_H
++#define _DT_BINDINGS_BOARD_AM335X_BBW_BBB_BASE_H
++
++#define BONE_P8_03 0x018
++#define BONE_P8_04 0x01C
++
++#define BONE_P8_05 0x008
++#define BONE_P8_06 0x00C
++#define BONE_P8_07 0x090
++#define BONE_P8_08 0x094
++
++#define BONE_P8_09 0x09C
++#define BONE_P8_10 0x098
++#define BONE_P8_11 0x034
++#define BONE_P8_12 0x030
++
++#define BONE_P8_13 0x024
++#define BONE_P8_14 0x028
++#define BONE_P8_15 0x03C
++#define BONE_P8_16 0x038
++
++#define BONE_P8_17 0x02C
++#define BONE_P8_18 0x08C
++#define BONE_P8_19 0x020
++#define BONE_P8_20 0x084
++
++#define BONE_P8_21 0x080
++#define BONE_P8_22 0x014
++#define BONE_P8_23 0x010
++#define BONE_P8_24 0x004
++
++#define BONE_P8_25 0x000
++#define BONE_P8_26 0x07C
++#define BONE_P8_27 0x0E0
++#define BONE_P8_28 0x0E8
++
++#define BONE_P8_29 0x0E4
++#define BONE_P8_30 0x0EC
++#define BONE_P8_31 0x0D8
++#define BONE_P8_32 0x0DC
++
++#define BONE_P8_33 0x0D4
++#define BONE_P8_34 0x0CC
++#define BONE_P8_35 0x0D0
++#define BONE_P8_36 0x0C8
++
++#define BONE_P8_37 0x0C0
++#define BONE_P8_38 0x0C4
++#define BONE_P8_39 0x0B8
++#define BONE_P8_40 0x0BC
++
++#define BONE_P8_41 0x0B0
++#define BONE_P8_42 0x0B4
++#define BONE_P8_43 0x0A8
++#define BONE_P8_44 0x0AC
++
++#define BONE_P8_45 0x0A0
++#define BONE_P8_46 0x0A4
++
++#define BONE_P9_11 0x070
++#define BONE_P9_12 0x078
++
++#define BONE_P9_13 0x074
++#define BONE_P9_14 0x048
++#define BONE_P9_15 0x040
++#define BONE_P9_16 0x04C
++
++#define BONE_P9_17 0x15C
++#define BONE_P9_18 0x158
++#define BONE_P9_19 0x17C
++#define BONE_P9_20 0x178
++
++#define BONE_P9_21 0x154
++#define BONE_P9_22 0x150
++#define BONE_P9_23 0x044
++#define BONE_P9_24 0x184
++
++#define BONE_P9_25 0x1AC
++#define BONE_P9_26 0x180
++#define BONE_P9_27 0x1A4
++#define BONE_P9_28 0x19C
++
++#define BONE_P9_29 0x194
++#define BONE_P9_30 0x198
++#define BONE_P9_31 0x190
++
++/* Shared P21 of P11 */
++#define BONE_P9_41 0x1B4
++#define BONE_P9_41A 0x1B4
++#define BONE_P9_41B 0x1A8
++#define BONE_P9_91 0x1A8
++
++/* Shared P22 of P11 */
++#define BONE_P9_42 0x164
++#define BONE_P9_42A 0x164
++#define BONE_P9_42B 0x1A0
++#define BONE_P9_92 0x1A0
++
++#endif
++
+--
+2.17.1
+
diff --git a/bsp/meta-sancloud/recipes-kernel/linux/linux-bbe-4.19/am335x-pru-uio.dtsi b/bsp/meta-sancloud/recipes-kernel/linux/linux-bbe-4.19/am335x-pru-uio.dtsi
new file mode 100644
index 00000000..714b1d78
--- /dev/null
+++ b/bsp/meta-sancloud/recipes-kernel/linux/linux-bbe-4.19/am335x-pru-uio.dtsi
@@ -0,0 +1,192 @@
+&pruss_soc_bus {
+ uio_pruss_mdio: uio_pruss_mdio@32400 {
+ compatible = "ti,davinci_mdio";
+ reg = <0x32400 0x90>;
+ clocks = <&dpll_core_m4_ck>;
+ clock-names = "fck";
+ bus_freq = <1000000>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ status = "disabled";
+ };
+
+ uio_pruss_mem: uio_pruss_mem {
+ compatible = "ti,uio-module-drv";
+ mem = <0x4a300000 0x2000>,
+ <0x4a302000 0x2000>,
+ <0x4a310000 0x3000>,
+ <0x4a320000 0x2000>,
+ <0x4a326000 0x2000>,
+ <0x4a32e000 0x31c>,
+ <0x4a332000 0x58>;
+ mem-names = "dram0", "dram1", "shrdram2", "intc", "cfg",
+ "iep", "mii_rt";
+
+ status = "okay";
+ };
+ uio_pruss_mem2: uio_pruss_mem2 {
+ compatible = "ti,uio-module-drv";
+ mem = <0x4a328000 0xd4>,
+ <0x4a330000 0x174>,
+ <0x4a332400 0x90>,
+ <0x40302000 0x0e000>;
+ mem-names = "uart", "ecap", "mdio", "ocmc";
+ status = "okay";
+ };
+
+ uio_pruss_evt0: uio_pruss_evt0 {
+ compatible = "ti,uio-module-drv";
+ interrupts = <20>;
+ interrupt-mode = <1>;
+ status = "okay";
+ };
+ uio_pruss_evt1: uio_pruss_evt1 {
+ compatible = "ti,uio-module-drv";
+ interrupts = <21>;
+ interrupt-mode = <1>;
+ status = "okay";
+ };
+ uio_pruss_evt2: uio_pruss_evt2 {
+ compatible = "ti,uio-module-drv";
+ interrupts = <22>;
+ interrupt-mode = <1>;
+ status = "okay";
+ };
+ uio_pruss_evt3: uio_pruss_evt3 {
+ compatible = "ti,uio-module-drv";
+ interrupts = <23>;
+ interrupt-mode = <1>;
+ status = "okay";
+ };
+ uio_pruss_evt4: uio_pruss_evt4 {
+ compatible = "ti,uio-module-drv";
+ interrupts = <24>;
+ interrupt-mode = <1>;
+ status = "okay";
+ };
+ uio_pruss_evt5: uio_pruss_evt5 {
+ compatible = "ti,uio-module-drv";
+ interrupts = <25>;
+ interrupt-mode = <1>;
+ status = "okay";
+ };
+ uio_pruss_evt6: uio_pruss_evt6 {
+ compatible = "ti,uio-module-drv";
+ interrupts = <26>;
+ interrupt-mode = <1>;
+ status = "okay";
+ };
+ uio_pruss_evt7: uio_pruss_evt7 {
+ compatible = "ti,uio-module-drv";
+ interrupts = <27>;
+ interrupt-mode = <1>;
+ status = "okay";
+ };
+
+ uio_pruss_0_mem: uio_pruss_0_mem {
+ compatible = "ti,uio-module-drv";
+ mem = <0x4a334000 0x2000>,
+ <0x4a322000 0x400>,
+ <0x4a322400 0x100>;
+ mem-names = "iram", "control", "debug";
+ status = "okay";
+ };
+
+ uio_pruss_1_mem: uio_pruss_1_mem {
+ compatible = "ti,uio-module-drv";
+ mem = <0x4a338000 0x2000>,
+ <0x4a324000 0x400>,
+ <0x4a324400 0x100>;
+ mem-names = "iram", "control", "debug";
+ status = "okay";
+ };
+};
+
+&am33xx_pinmux {
+ uio_pruss_mdio_eth_default: uio_pruss_mdio_eht_default {
+ pinctrl-single,pins = <
+ AM33XX_IOPAD(0x88c, (PIN_OUTPUT | MUX_MODE5)) /* gpmc_clk.pr1_mdio_mdclk */
+ AM33XX_IOPAD(0x888, (PIN_INPUT | MUX_MODE5)) /* gpmc_csn3.pr1_mdio_data */
+ AM33XX_IOPAD(0x89c, (PIN_INPUT_PULLUP | MUX_MODE7)) /* gpmc_ben0_cle.gpio2_5 */
+ /* disable CPSW MDIO */
+ AM33XX_IOPAD(0x948, (PIN_INPUT_PULLUP | MUX_MODE7)) /* mdio_data.gpio0_0 */
+ AM33XX_IOPAD(0x94c, (PIN_INPUT_PULLUP | MUX_MODE7)) /* mdio_clk.gpio0_1 */
+ AM33XX_IOPAD(0x8a0, (PIN_INPUT | MUX_MODE2)) /* dss_data0.pr1_mii_mt0_clk */
+ AM33XX_IOPAD(0x8b4, (PIN_OUTPUT | MUX_MODE2)) /* dss_data5.pr1_mii0_txd0 */
+ AM33XX_IOPAD(0x8b0, (PIN_OUTPUT | MUX_MODE2)) /* dss_data4.pr1_mii0_txd1 */
+ AM33XX_IOPAD(0x8ac, (PIN_OUTPUT | MUX_MODE2)) /* dss_data3.pr1_mii0_txd2 */
+ AM33XX_IOPAD(0x8a8, (PIN_OUTPUT | MUX_MODE2)) /* dss_data2.pr1_mii0_txd3 */
+ AM33XX_IOPAD(0x8cc, (PIN_INPUT | MUX_MODE5)) /* dss_data11.pr1_mii0_rxd0 */
+ AM33XX_IOPAD(0x8c8, (PIN_INPUT | MUX_MODE5)) /* dss_data10.pr1_mii0_rxd1 */
+ AM33XX_IOPAD(0x8c4, (PIN_INPUT | MUX_MODE5)) /* dss_data9.pr1_mii0_rxd2 */
+ AM33XX_IOPAD(0x8c0, (PIN_INPUT | MUX_MODE5)) /* dss_data8.pr1_mii0_rxd3 */
+ AM33XX_IOPAD(0x8a4, (PIN_OUTPUT | MUX_MODE2)) /* dss_data1.pr1_mii0_txen */
+ AM33XX_IOPAD(0x8d8, (PIN_INPUT | MUX_MODE5)) /* dss_data14.pr1_mii_mr0_clk */
+ AM33XX_IOPAD(0x8dc, (PIN_INPUT | MUX_MODE5)) /* dss_data15.pr1_mii0_rxdv */
+ AM33XX_IOPAD(0x8d4, (PIN_INPUT | MUX_MODE5)) /* dss_data13.pr1_mii0_rxer */
+ AM33XX_IOPAD(0x8d0, (PIN_INPUT | MUX_MODE5)) /* dss_data12.pr1_mii0_rxlink */
+ AM33XX_IOPAD(0x8e8, (PIN_INPUT | MUX_MODE2)) /* dss_pclk.pr1_mii0_crs */
+
+ AM33XX_IOPAD(0x840, (PIN_INPUT | MUX_MODE5)) /* gpmc_a0.pr1_mii_mt1_clk */
+ AM33XX_IOPAD(0x850, (PIN_OUTPUT | MUX_MODE5)) /* gpmc_a4.pr1_mii1_txd0 */
+ AM33XX_IOPAD(0x84c, (PIN_OUTPUT | MUX_MODE5)) /* gpmc_a3.pr1_mii1_txd1 */
+ AM33XX_IOPAD(0x848, (PIN_OUTPUT | MUX_MODE5)) /* gpmc_a2.pr1_mii1_txd2 */
+ AM33XX_IOPAD(0x844, (PIN_OUTPUT | MUX_MODE5)) /* gpmc_a1.pr1_mii1_txd3 */
+ AM33XX_IOPAD(0x860, (PIN_INPUT | MUX_MODE5)) /* gpmc_a8.pr1_mii1_rxd0 */
+ AM33XX_IOPAD(0x85c, (PIN_INPUT | MUX_MODE5)) /* gpmc_a7.pr1_mii1_rxd1 */
+ AM33XX_IOPAD(0x858, (PIN_INPUT | MUX_MODE5)) /* gpmc_a6.pr1_mii1_rxd2 */
+ AM33XX_IOPAD(0x854, (PIN_INPUT | MUX_MODE5)) /* gpmc_a5.pr1_mii1_rxd3 */
+ AM33XX_IOPAD(0x874, (PIN_OUTPUT | MUX_MODE5)) /* gpmc_wpn.pr1_mii1_txen */
+ AM33XX_IOPAD(0x864, (PIN_INPUT | MUX_MODE5)) /* gpmc_a9.pr1_mii_mr1_clk */
+ AM33XX_IOPAD(0x868, (PIN_INPUT | MUX_MODE5)) /* gpmc_a10.pr1_mii1_rxdv */
+ AM33XX_IOPAD(0x86c, (PIN_INPUT | MUX_MODE5)) /* gpmc_a11.pr1_mii1_rxer */
+ AM33XX_IOPAD(0x878, (PIN_INPUT | MUX_MODE5)) /* gpmc_ben1.pr1_mii1_rxlink */
+ AM33XX_IOPAD(0x8ec, (PIN_INPUT | MUX_MODE2)) /* lcd_ac_bias_en.pr1_mii1_crs */
+ AM33XX_IOPAD(0x870, (PIN_INPUT | MUX_MODE5)) /* gpmc_wait0.pr1_mii1_col */
+ >;
+ };
+};
+
+&uio_pruss_mdio {
+ pinctrl-0 = <&uio_pruss_mdio_eth_default>;
+ pinctrl-names = "default";
+ reset-gpios = <&gpio2 5 GPIO_ACTIVE_LOW>;
+ reset-delay-us = <2>; /* PHY datasheet states 1uS min */
+ status = "okay";
+
+ uio_pruss_eth0_phy: ethernet-phy@1 {
+ reg = <1>;
+ };
+
+ uio_pruss_eth1_phy: ethernet-phy@3 {
+ reg = <3>;
+ };
+};
+
+&pruss {
+ status = "disabled";
+};
+
+&pru0 {
+ status = "disabled";
+};
+
+&pru1 {
+ status = "disabled";
+};
+
+&pruss_intc {
+ status = "disabled";
+};
+
+&pruss_mdio {
+ status = "disabled";
+};
+
+&pruss_emac0 {
+ status = "disabled";
+};
+
+&pruss_emac1 {
+ status = "disabled";
+};
diff --git a/bsp/meta-sancloud/recipes-kernel/linux/linux-bbe-4.19/cmem.dtsi b/bsp/meta-sancloud/recipes-kernel/linux/linux-bbe-4.19/cmem.dtsi
new file mode 100644
index 00000000..23119861
--- /dev/null
+++ b/bsp/meta-sancloud/recipes-kernel/linux/linux-bbe-4.19/cmem.dtsi
@@ -0,0 +1,38 @@
+/*
+ * This is a placeholder for CMEM reserved memory declarations. This
+ * is simply an example and does not actually reserve any memory for
+ * CMEM.
+ *
+ * The commented sections below provide an example for how to provide
+ * a reserved memory region for CMEM to use as a buffer pool.
+ */
+/ {
+/*
+ reserved-memory {
+ cmem_block_mem_0: cmem_block_mem@a0000000 {
+ reg = <0x0 0xa0000000 0x0 0x0a000000>;
+ no-map;
+ status = "okay";
+ };
+ };
+*/
+
+ cmem {
+ compatible = "ti,cmem";
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ #pool-size-cells = <2>;
+
+ status = "disabled";
+/*
+ status = "okay";
+
+ cmem_block_0: cmem_block@0 {
+ reg = <0>;
+ memory-region = <&cmem_block_mem_0>;
+ cmem-buf-pools = <1 0x0 0x0a000000>;
+ };
+*/
+ };
+};
diff --git a/bsp/meta-sancloud/recipes-kernel/linux/linux-bbe-rt_4.19.bb b/bsp/meta-sancloud/recipes-kernel/linux/linux-bbe-rt_4.19.bb
new file mode 100644
index 00000000..13e59971
--- /dev/null
+++ b/bsp/meta-sancloud/recipes-kernel/linux/linux-bbe-rt_4.19.bb
@@ -0,0 +1,5 @@
+BRANCH = "linux-sancloud-rt-4.19.y"
+SRCREV = "9e7b03b168d0a75192cd186b7b1c952f6bbccc2c"
+PV = "4.19.38+git${SRCPV}"
+
+require linux-bbe-4.19.inc
diff --git a/bsp/meta-sancloud/recipes-kernel/linux/linux-bbe_4.19.bb b/bsp/meta-sancloud/recipes-kernel/linux/linux-bbe_4.19.bb
new file mode 100644
index 00000000..f63ecee8
--- /dev/null
+++ b/bsp/meta-sancloud/recipes-kernel/linux/linux-bbe_4.19.bb
@@ -0,0 +1,5 @@
+BRANCH = "linux-sancloud-4.19.y"
+SRCREV = "566ac4d5bf1a121d73a8355a87bbe97865b9a7dd"
+PV = "4.19.38+git${SRCPV}"
+
+require linux-bbe-4.19.inc
diff --git a/bsp/meta-sancloud/wic/sancloud_bbe.wks b/bsp/meta-sancloud/wic/sancloud_bbe.wks
new file mode 100644
index 00000000..1b39c37a
--- /dev/null
+++ b/bsp/meta-sancloud/wic/sancloud_bbe.wks
@@ -0,0 +1,7 @@
+# short-description: Create SD card image for Beaglebone
+# long-description: Creates a partitioned SD card image for Beaglebone.
+# Boot files are placed in unpartitioned space before the first ext4 partition.
+
+part mlo --source rawcopy --sourceparams="file=MLO" --ondisk mmcblk --no-table --align 128
+part uboot --source rawcopy --sourceparams="file=u-boot.img" --ondisk mmcblk --no-table --align 384
+part / --source rootfs --ondisk mmcblk --fstype=ext4 --label root --align 1024