mirror of
https://git.yoctoproject.org/meta-ti
synced 2026-01-12 09:30:21 +00:00
Compare commits
50 Commits
ti2013.12.
...
dylan
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8beec1ca66 | ||
|
|
475c45d192 | ||
|
|
48f59a0765 | ||
|
|
0056050410 | ||
|
|
d8ca0d9739 | ||
|
|
4be60cf6cf | ||
|
|
39b137a069 | ||
|
|
61fdfef43e | ||
|
|
b76d4d740b | ||
|
|
14858daa69 | ||
|
|
dbc21e6e6d | ||
|
|
2139986702 | ||
|
|
625b43736f | ||
|
|
e4b90a654c | ||
|
|
8d59a8f6f2 | ||
|
|
082d640cf1 | ||
|
|
726a67e38f | ||
|
|
b5216d7f9c | ||
|
|
2c86c1957c | ||
|
|
3bca395fab | ||
|
|
975ce2d93d | ||
|
|
800105c4c2 | ||
|
|
5b56c0ce90 | ||
|
|
2ac3b4537f | ||
|
|
f3551ab724 | ||
|
|
7df8efba13 | ||
|
|
5b6c24b167 | ||
|
|
e5984623e9 | ||
|
|
bef5c59b8c | ||
|
|
71a8222476 | ||
|
|
89d2711fb4 | ||
|
|
51b183dcde | ||
|
|
db1e0b9f31 | ||
|
|
28a7655f79 | ||
|
|
d8d36acb07 | ||
|
|
87b39200b2 | ||
|
|
2bae56cfdc | ||
|
|
df6816424c | ||
|
|
5d77a6c878 | ||
|
|
f97d0f5b24 | ||
|
|
7f2773454b | ||
|
|
f894102725 | ||
|
|
5e6aed54ec | ||
|
|
c27ca998e2 | ||
|
|
dde9c84e16 | ||
|
|
007d3ff11b | ||
|
|
561b40ddf9 | ||
|
|
21f4d17302 | ||
|
|
6493ace690 | ||
|
|
c0de045840 |
@@ -8,16 +8,14 @@ PREFERRED_PROVIDER_virtual/bootloader = "u-boot-keystone"
|
||||
PREFERRED_PROVIDER_u-boot = "u-boot-keystone"
|
||||
|
||||
# Increase this everytime you change something in the kernel
|
||||
MACHINE_KERNEL_PR = "r6"
|
||||
MACHINE_KERNEL_PR = "r7"
|
||||
|
||||
KERNEL_IMAGETYPE = "uImage"
|
||||
|
||||
UBOOT_MACHINE = "tci6638_evm_config"
|
||||
|
||||
UBOOT_ENTRYPOINT = "0x80008000"
|
||||
UBOOT_LOADADDRESS = "0x80008000"
|
||||
|
||||
EXTRA_IMAGEDEPENDS += "u-boot"
|
||||
EXTRA_IMAGEDEPENDS += "boot-monitor"
|
||||
|
||||
MACHINE_FEATURES = "kernel26 apm usbgadget usbhost vfat"
|
||||
MACHINE_FEATURES = "kernel26 apm usbgadget usbhost vfat pci"
|
||||
|
||||
@@ -4,7 +4,7 @@ require conf/machine/include/soc-family.inc
|
||||
require conf/machine/include/tune-cortexa15.inc
|
||||
|
||||
# Increase this everytime you change something in the kernel
|
||||
MACHINE_KERNEL_PR = "r2"
|
||||
MACHINE_KERNEL_PR = "r3"
|
||||
|
||||
PREFERRED_PROVIDER_virtual/kernel = "linux-ti-staging"
|
||||
PREFERRED_PROVIDER_virtual/bootloader = "u-boot-ti-staging"
|
||||
@@ -24,3 +24,7 @@ XSERVER = "xserver-xorg \
|
||||
xf86-video-fbdev"
|
||||
|
||||
GUI_MACHINE_CLASS = "smallscreen"
|
||||
|
||||
# Use the expected value of the ubifs filesystem's volume name in the kernel
|
||||
# and u-boot.
|
||||
UBI_VOLNAME = "rootfs"
|
||||
|
||||
@@ -16,7 +16,7 @@ XSERVER = "xserver-xorg \
|
||||
GUI_MACHINE_CLASS = "bigscreen"
|
||||
|
||||
# Increase this everytime you change something in the kernel
|
||||
MACHINE_KERNEL_PR = "r20"
|
||||
MACHINE_KERNEL_PR = "r21"
|
||||
|
||||
# Default providers, may need to override for specific machines
|
||||
PREFERRED_PROVIDER_virtual/kernel = "linux-ti-staging"
|
||||
|
||||
@@ -16,7 +16,7 @@ XSERVER = "xserver-xorg \
|
||||
GUI_MACHINE_CLASS = "bigscreen"
|
||||
|
||||
# Increase this everytime you change something in the kernel
|
||||
MACHINE_KERNEL_PR = "r1"
|
||||
MACHINE_KERNEL_PR = "r2"
|
||||
|
||||
# Default providers, may need to override for specific machines
|
||||
PREFERRED_PROVIDER_virtual/kernel = "linux-ti-staging"
|
||||
|
||||
@@ -1,9 +1,13 @@
|
||||
#@TYPE: Machine
|
||||
#@NAME: Keystone 2 machine
|
||||
#@DESCRIPTION: Machine configuration for the TI Keystone 2
|
||||
#@NAME: Keystone 2 K2E machine
|
||||
#@DESCRIPTION: Machine configuration for the TI Keystone 2 K2E EVM
|
||||
|
||||
require conf/machine/include/keystone.inc
|
||||
|
||||
UBOOT_MACHINE = "k2e_evm_config"
|
||||
|
||||
BOOT_MONITOR_MAKE_TARGET = "k2e"
|
||||
|
||||
IMAGE_FSTYPES += "ubi tar.gz cpio"
|
||||
|
||||
SERIAL_CONSOLE = "115200 ttyS0"
|
||||
@@ -15,9 +19,8 @@ SYSVINIT_ENABLED_GETTYS = ""
|
||||
# UBI: smallest flash I/O unit: 2048
|
||||
# UBI: logical eraseblock size: 126976 bytes
|
||||
# from ubiattach stdout:
|
||||
# UBI device number 0, total 857 LEBs
|
||||
# MKUBIFS_ARGS = "-m 2048 -e 129024 -c 857"
|
||||
MKUBIFS_ARGS = "-F -m 2048 -e 126976 -c 857"
|
||||
# UBI device number 0, total 3856 LEBs
|
||||
MKUBIFS_ARGS = "-F -m 2048 -e 126976 -c 3856"
|
||||
|
||||
# do ubiattach /dev/ubi_ctrl -m 4
|
||||
# from dmesg:
|
||||
30
conf/machine/k2hk-evm.conf
Normal file
30
conf/machine/k2hk-evm.conf
Normal file
@@ -0,0 +1,30 @@
|
||||
#@TYPE: Machine
|
||||
#@NAME: Keystone 2 K2HK machine
|
||||
#@DESCRIPTION: Machine configuration for the TI Keystone 2 K2HK EVM
|
||||
|
||||
require conf/machine/include/keystone.inc
|
||||
|
||||
UBOOT_MACHINE = "k2hk_evm_config"
|
||||
|
||||
BOOT_MONITOR_MAKE_TARGET = "k2hk"
|
||||
|
||||
IMAGE_FSTYPES += "ubi tar.gz cpio"
|
||||
|
||||
SERIAL_CONSOLE = "115200 ttyS0"
|
||||
|
||||
SYSVINIT_ENABLED_GETTYS = ""
|
||||
|
||||
# do ubiattach /dev/ubi_ctrl -m 4
|
||||
# From dmesg:
|
||||
# UBI: smallest flash I/O unit: 2048
|
||||
# UBI: logical eraseblock size: 126976 bytes
|
||||
# from ubiattach stdout:
|
||||
# UBI device number 0, total 3856 LEBs
|
||||
MKUBIFS_ARGS = "-F -m 2048 -e 126976 -c 3856"
|
||||
|
||||
# do ubiattach /dev/ubi_ctrl -m 4
|
||||
# from dmesg:
|
||||
# UBI: smallest flash I/O unit: 2048
|
||||
# UBI: physical eraseblock size: 131072 bytes (128 KiB)
|
||||
# UBI: sub-page size: 2048
|
||||
UBINIZE_ARGS = "-m 2048 -p 128KiB -s 2048 -O 2048"
|
||||
30
conf/machine/k2l-evm.conf
Normal file
30
conf/machine/k2l-evm.conf
Normal file
@@ -0,0 +1,30 @@
|
||||
#@TYPE: Machine
|
||||
#@NAME: Keystone 2 K2L machine
|
||||
#@DESCRIPTION: Machine configuration for the TI Keystone 2 K2L EVM
|
||||
|
||||
require conf/machine/include/keystone.inc
|
||||
|
||||
UBOOT_MACHINE = "k2l_evm_config"
|
||||
|
||||
BOOT_MONITOR_MAKE_TARGET = "k2l"
|
||||
|
||||
IMAGE_FSTYPES += "ubi tar.gz cpio"
|
||||
|
||||
SERIAL_CONSOLE = "115200 ttyS0"
|
||||
|
||||
SYSVINIT_ENABLED_GETTYS = ""
|
||||
|
||||
# do ubiattach /dev/ubi_ctrl -m 4
|
||||
# From dmesg:
|
||||
# UBI: smallest flash I/O unit: 4096
|
||||
# UBI: logical eraseblock size: 253952 bytes
|
||||
# from ubiattach stdout:
|
||||
# UBI device number 0, total 1926 LEBs
|
||||
MKUBIFS_ARGS = "-F -m 4096 -e 253952 -c 1926"
|
||||
|
||||
# do ubiattach /dev/ubi_ctrl -m 4
|
||||
# from dmesg:
|
||||
# UBI: smallest flash I/O unit: 4096
|
||||
# UBI: physical eraseblock size: 256 KiB
|
||||
# UBI: sub-page size: 4096
|
||||
UBINIZE_ARGS = "-m 4096 -p 256KiB -s 4096 -O 4096"
|
||||
@@ -5,22 +5,22 @@ LICENSE = "BSD"
|
||||
|
||||
BOOT_MONITOR_BINARY ?= "skern.bin"
|
||||
BOOT_MONITOR_IMAGE ?= "skern-${MACHINE}.bin"
|
||||
BOOT_MONITOR_MAKE_TARGET ?= "all"
|
||||
|
||||
LIC_FILES_CHKSUM = "file://COPYING;md5=25fe219a6febf6e5bb45beda1b2eb315"
|
||||
|
||||
COMPATIBLE_MACHINE = "keystone-evm"
|
||||
COMPATIBLE_MACHINE = "keystone"
|
||||
|
||||
SRC_URI = "git://arago-project.org/git/projects/boot-monitor.git;protocol=git;branch=${BRANCH}"
|
||||
SRC_URI = "git://git.ti.com/keystone-linux/boot-monitor.git;protocol=git;branch=${BRANCH}"
|
||||
|
||||
PV = "1.0"
|
||||
PR = "r2+gitr${SRCREV}"
|
||||
PV = "2.0"
|
||||
PR = "r1+gitr${SRCPV}"
|
||||
|
||||
BRANCH = "master"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
SRCREV = "94cab20c4a4725a014d6f815704557d28fec9610"
|
||||
#Tag "K2_BM_14.05"
|
||||
SRCREV = "0e3ffe1ea4a0cee38ae2406901b7cf4d5324b5e9"
|
||||
|
||||
do_compile () {
|
||||
unset LDFLAGS
|
||||
|
||||
12
recipes-bsp/cmem/cmem-mod_git.bb
Normal file
12
recipes-bsp/cmem/cmem-mod_git.bb
Normal file
@@ -0,0 +1,12 @@
|
||||
DESCRIPTION = "Kernel module for contiguous memory allocation from userspace"
|
||||
|
||||
include cmem.inc
|
||||
|
||||
# This package builds a kernel module, use kernel PR as base and append a local
|
||||
MACHINE_KERNEL_PR_append = "a+gitr${SRCPV}"
|
||||
PR = "${MACHINE_KERNEL_PR}"
|
||||
|
||||
inherit module
|
||||
|
||||
EXTRA_OEMAKE += '-f lu.mak KERNEL_INSTALL_DIR="${STAGING_KERNEL_DIR}" TOOLCHAIN_PREFIX="${TOOLCHAIN_PREFIX}" EXEC_DIR="${D}/lib/modules/${KERNEL_VERSION}/extra"'
|
||||
MAKE_TARGETS = "module"
|
||||
12
recipes-bsp/cmem/cmem.inc
Normal file
12
recipes-bsp/cmem/cmem.inc
Normal file
@@ -0,0 +1,12 @@
|
||||
HOMEPAGE = "http://processors.wiki.ti.com/index.php/Category:CMEM"
|
||||
|
||||
LICENSE = "GPLv2"
|
||||
LIC_FILES_CHKSUM = "file://include/ti/cmem.h;beginline=1;endline=30;md5=b86138d4028fb8310b3b983024edc620"
|
||||
|
||||
BRANCH ?= "master"
|
||||
# This corresponds to version 4.00.01.08
|
||||
SRCREV = "0b68dfe9f155a1978cdb2178e052dc0d6f1e705b"
|
||||
|
||||
SRC_URI = "git://git.ti.com/ipc/ludev.git;protocol=git;branch=${BRANCH}"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
13
recipes-bsp/cmem/cmem_git.bb
Normal file
13
recipes-bsp/cmem/cmem_git.bb
Normal file
@@ -0,0 +1,13 @@
|
||||
DESCRIPTION = "The cmem component supports contiguous memory allocation from userspace"
|
||||
|
||||
include cmem.inc
|
||||
|
||||
RDEPENDS_${PN} = "cmem-mod"
|
||||
|
||||
PR = "r0+gitr${SRCPV}"
|
||||
|
||||
PACKAGES =+ "${PN}-test"
|
||||
|
||||
FILES_${PN}-test = "${bindir}/*"
|
||||
|
||||
inherit autotools
|
||||
67
recipes-bsp/powervr-drivers/omap3-sgx-modules_5.01.00.01.bb
Normal file
67
recipes-bsp/powervr-drivers/omap3-sgx-modules_5.01.00.01.bb
Normal file
@@ -0,0 +1,67 @@
|
||||
DESCRIPTION = "Kernel drivers for the PowerVR SGX chipset found in the omap3 SoCs"
|
||||
LICENSE = "GPLv2"
|
||||
LIC_FILES_CHKSUM = "file://GPL-COPYING;md5=60422928ba677faaa13d6ab5f5baaa1e"
|
||||
|
||||
TI_BIN_UNPK_CMDS="Y: qY:workdir:Y"
|
||||
require ../../recipes-ti/includes/ti-eula-unpack.inc
|
||||
|
||||
SGXPV = "5_01_00_01"
|
||||
IMGPV = "1.10.2359475"
|
||||
|
||||
inherit module
|
||||
|
||||
MACHINE_KERNEL_PR_append = "a"
|
||||
PR = "${MACHINE_KERNEL_PR}"
|
||||
|
||||
BINFILE_HARDFP = "Graphics_SDK_setuplinux_hardfp_${SGXPV}.bin"
|
||||
MD5SUM_HARDFP = "0ee7d59808330d442a51c0990c2cb30e"
|
||||
SHA256SUM_HARDFP = "769daae439677a7a85bbbced14cee4f85b19823e0b99560078d0a864c525c128"
|
||||
|
||||
# For now we only have hardfp version
|
||||
python __anonymous() {
|
||||
tunes = bb.data.getVar("TUNE_FEATURES", d, 1)
|
||||
if not tunes:
|
||||
return
|
||||
pkgn = bb.data.getVar("PN", d, 1)
|
||||
pkgv = bb.data.getVar("PV", d, 1)
|
||||
if "callconvention-hard" not in tunes:
|
||||
bb.warn("%s-%s ONLY supports hardfp mode for now" % (pkgn, pkgv))
|
||||
raise bb.parse.SkipPackage("%s-%s ONLY supports hardfp mode for now" % (pkgn, pkgv))
|
||||
}
|
||||
|
||||
BINFILE := "${BINFILE_HARDFP}"
|
||||
|
||||
SRC_URI = "http://software-dl.ti.com/dsps/dsps_public_sw/gfxsdk/${SGXPV}/exports/${BINFILE}"
|
||||
|
||||
SRC_URI[md5sum] := "${MD5SUM_HARDFP}"
|
||||
SRC_URI[sha256sum] := "${SHA256SUM_HARDFP}"
|
||||
|
||||
TI_BIN_UNPK_WDEXT="/Graphics_SDK_${SGXPV}"
|
||||
S = "${WORKDIR}${TI_BIN_UNPK_WDEXT}/GFX_Linux_KM"
|
||||
|
||||
PVRBUILD = "release"
|
||||
export KERNELDIR = "${STAGING_KERNEL_DIR}"
|
||||
|
||||
INHIBIT_PACKAGE_STRIP = "1"
|
||||
|
||||
TI_PLATFORM_omap3 = "omap3630"
|
||||
TI_PLATFORM_ti814x = "ti81xx"
|
||||
TI_PLATFORM_ti816x = "ti81xx"
|
||||
TI_PLATFORM_ti33x = "ti335x"
|
||||
TI_PLATFORM_ti43x = "ti43xx"
|
||||
|
||||
MODULESLOCATION_omap3 = "dc_omapfb3_linux"
|
||||
MODULESLOCATION_ti814x = "dc_ti81xx_linux"
|
||||
MODULESLOCATION_ti816x = "dc_ti81xx_linux"
|
||||
MODULESLOCATION_ti33x = "dc_ti335x_linux"
|
||||
MODULESLOCATION_ti43x = "dc_ti43xx_linux"
|
||||
|
||||
MAKE_TARGETS = " BUILD=${PVRBUILD} TI_PLATFORM=${TI_PLATFORM} SUPPORT_XORG=${SUPPORT_XORG}"
|
||||
|
||||
do_install() {
|
||||
mkdir -p ${D}/lib/modules/${KERNEL_VERSION}/kernel/drivers/gpu/pvr
|
||||
cp ${S}/pvrsrvkm.ko \
|
||||
${S}/services4/3rdparty/${MODULESLOCATION}/omaplfb.ko \
|
||||
${S}/services4/3rdparty/bufferclass_ti/bufferclass_ti.ko \
|
||||
${D}/lib/modules/${KERNEL_VERSION}/kernel/drivers/gpu/pvr
|
||||
}
|
||||
67
recipes-bsp/powervr-drivers/omap3-sgx-modules_5.01.01.01.bb
Normal file
67
recipes-bsp/powervr-drivers/omap3-sgx-modules_5.01.01.01.bb
Normal file
@@ -0,0 +1,67 @@
|
||||
DESCRIPTION = "Kernel drivers for the PowerVR SGX chipset found in the omap3 SoCs"
|
||||
LICENSE = "GPLv2"
|
||||
LIC_FILES_CHKSUM = "file://GPL-COPYING;md5=60422928ba677faaa13d6ab5f5baaa1e"
|
||||
|
||||
TI_BIN_UNPK_CMDS="Y: qY:workdir:Y"
|
||||
require ../../recipes-ti/includes/ti-eula-unpack.inc
|
||||
|
||||
SGXPV = "5_01_01_01"
|
||||
IMGPV = "1.10.2359475"
|
||||
|
||||
inherit module
|
||||
|
||||
MACHINE_KERNEL_PR_append = "a"
|
||||
PR = "${MACHINE_KERNEL_PR}"
|
||||
|
||||
BINFILE_HARDFP = "Graphics_SDK_setuplinux_hardfp_${SGXPV}.bin"
|
||||
MD5SUM_HARDFP = "94acdbd20152c905939c2448d5e80a72"
|
||||
SHA256SUM_HARDFP = "7f647bf45a5ce8ba9aaa28c4afe85fced4275f9a4567a1886d4460b76c9051ae"
|
||||
|
||||
# For now we only have hardfp version
|
||||
python __anonymous() {
|
||||
tunes = bb.data.getVar("TUNE_FEATURES", d, 1)
|
||||
if not tunes:
|
||||
return
|
||||
pkgn = bb.data.getVar("PN", d, 1)
|
||||
pkgv = bb.data.getVar("PV", d, 1)
|
||||
if "callconvention-hard" not in tunes:
|
||||
bb.warn("%s-%s ONLY supports hardfp mode for now" % (pkgn, pkgv))
|
||||
raise bb.parse.SkipPackage("%s-%s ONLY supports hardfp mode for now" % (pkgn, pkgv))
|
||||
}
|
||||
|
||||
BINFILE := "${BINFILE_HARDFP}"
|
||||
|
||||
SRC_URI = "http://software-dl.ti.com/dsps/dsps_public_sw/gfxsdk/${SGXPV}/exports/${BINFILE}"
|
||||
|
||||
SRC_URI[md5sum] := "${MD5SUM_HARDFP}"
|
||||
SRC_URI[sha256sum] := "${SHA256SUM_HARDFP}"
|
||||
|
||||
TI_BIN_UNPK_WDEXT="/Graphics_SDK_${SGXPV}"
|
||||
S = "${WORKDIR}${TI_BIN_UNPK_WDEXT}/GFX_Linux_KM"
|
||||
|
||||
PVRBUILD = "release"
|
||||
export KERNELDIR = "${STAGING_KERNEL_DIR}"
|
||||
|
||||
INHIBIT_PACKAGE_STRIP = "1"
|
||||
|
||||
TI_PLATFORM_omap3 = "omap3630"
|
||||
TI_PLATFORM_ti814x = "ti81xx"
|
||||
TI_PLATFORM_ti816x = "ti81xx"
|
||||
TI_PLATFORM_ti33x = "ti335x"
|
||||
TI_PLATFORM_ti43x = "ti43xx"
|
||||
|
||||
MODULESLOCATION_omap3 = "dc_omapfb3_linux"
|
||||
MODULESLOCATION_ti814x = "dc_ti81xx_linux"
|
||||
MODULESLOCATION_ti816x = "dc_ti81xx_linux"
|
||||
MODULESLOCATION_ti33x = "dc_ti335x_linux"
|
||||
MODULESLOCATION_ti43x = "dc_ti43xx_linux"
|
||||
|
||||
MAKE_TARGETS = " BUILD=${PVRBUILD} TI_PLATFORM=${TI_PLATFORM} SUPPORT_XORG=${SUPPORT_XORG}"
|
||||
|
||||
do_install() {
|
||||
mkdir -p ${D}/lib/modules/${KERNEL_VERSION}/kernel/drivers/gpu/pvr
|
||||
cp ${S}/pvrsrvkm.ko \
|
||||
${S}/services4/3rdparty/${MODULESLOCATION}/omaplfb.ko \
|
||||
${S}/services4/3rdparty/bufferclass_ti/bufferclass_ti.ko \
|
||||
${D}/lib/modules/${KERNEL_VERSION}/kernel/drivers/gpu/pvr
|
||||
}
|
||||
@@ -1,18 +1,21 @@
|
||||
DESCRIPTION = "Cortex-M3 binary blob for suspend-resume"
|
||||
|
||||
LICENSE = "TI-BSD"
|
||||
LIC_FILES_CHKSUM = "file://License.txt;md5=858099c817e47ea63559fc6b67ae8d91"
|
||||
LIC_FILES_CHKSUM = "file://License.txt;md5=7bdc54a749ab7a7dea999d25d99a41b8"
|
||||
|
||||
PV = "05.00.00.01"
|
||||
PR = "r1"
|
||||
PV = "05.00.00.03"
|
||||
PR = "r0"
|
||||
|
||||
# Make package machine specific due to different init scripts
|
||||
PACKAGE_ARCH = "${MACHINE_ARCH}"
|
||||
|
||||
# SRCREV corresponds to tag v05.00.00.01
|
||||
SRCREV = "40cb75b9dd9ba15c6de1c15cbb7cce8f1a6588b8"
|
||||
# SRCREV corresponds to tag v05.00.00.03
|
||||
SRCREV = "a0ddffb63147e2079a08944c0e399c75538201a9"
|
||||
BRANCH ?= "master"
|
||||
|
||||
# This init script is only used for older kernels that do not support
|
||||
# hotplug of the firmware. Newer kernels do not require the initscript
|
||||
# package.
|
||||
INITSCRIPT_NAME = "am335x-pm-firmware-load"
|
||||
INITSCRIPT_PARAMS = "defaults 96"
|
||||
|
||||
@@ -33,7 +36,7 @@ SCRIPT_ti43x = "init-am43x-cm3"
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
do_compile() {
|
||||
make CC="${TARGET_CC}" CROSS_COMPILE="${TARGET_PREFIX}"
|
||||
make CROSS_COMPILE="${TARGET_PREFIX}"
|
||||
}
|
||||
|
||||
do_install() {
|
||||
|
||||
29
recipes-bsp/ti/vpe-vpdma_git.bb
Normal file
29
recipes-bsp/ti/vpe-vpdma_git.bb
Normal file
@@ -0,0 +1,29 @@
|
||||
DESCRIPTION = "VPE VPDMA firmware and test program"
|
||||
|
||||
DEPENDS += "virtual/kernel"
|
||||
|
||||
LICENSE = "BSD"
|
||||
LIC_FILES_CHKSUM = "file://COPYING;md5=74d2f71d8898c54e3d1c9d0058c484aa"
|
||||
|
||||
COMPATIBLE_MACHINE = "dra7xx-evm"
|
||||
|
||||
PV = "1b8"
|
||||
PR = "r1"
|
||||
|
||||
SRCREV = "e3d8db1aa935775f9d196ad7428e0cd9864a36ca"
|
||||
BRANCH ?= "master"
|
||||
|
||||
SRC_URI = "git://git.ti.com/vpe_tests/vpe_tests.git;protocol=git;branch=${BRANCH}"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
# The test application needs additional include headers from the kernel
|
||||
EXTRA_OEMAKE = 'CROSS_COMPILE="${TARGET_PREFIX}" KDIR="${STAGING_KERNEL_DIR}/include/uapi -I${STAGING_KERNEL_DIR}/include"'
|
||||
|
||||
do_install() {
|
||||
oe_runmake DESTDIR="${D}" install
|
||||
}
|
||||
|
||||
# Separate the firmware into it's own package.
|
||||
PACKAGES =+ "${PN}-fw"
|
||||
FILES_${PN}-fw += "${base_libdir}/firmware"
|
||||
@@ -4,13 +4,56 @@ DESCRIPTION = "u-boot bootloader for Multi-Core BU devices"
|
||||
|
||||
COMPATIBLE_MACHINE = "keystone"
|
||||
|
||||
PR = "r2+gitr${SRCPV}"
|
||||
|
||||
SRC_URI = "git://arago-project.org/git/projects/u-boot-keystone.git;protocol=git;branch=${BRANCH}"
|
||||
PR = "r4+gitr${SRCPV}"
|
||||
|
||||
# Tag "K2_UBOOT_2013_01_14.05_16"
|
||||
SRCREV = "fee500417b989fc9906d86e377b4d3d96033d54e"
|
||||
BRANCH = "master"
|
||||
|
||||
# DEV.MCSDK-03.00.00.07
|
||||
SRCREV = "82f40e857d853165310d0753e79235aefb65d7ba"
|
||||
SRC_URI = "git://git.ti.com/keystone-linux/u-boot.git;protocol=git;branch=${BRANCH}"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
UBOOT_SUFFIX = "bin"
|
||||
UBOOT_MAKE_TARGET = "u-boot-spi.gph"
|
||||
|
||||
# SPI NOR Flash binaries
|
||||
UBOOT_SPI_SPL_BINARY = "u-boot-spl.bin"
|
||||
UBOOT_SPI_BINARY = "u-boot.img"
|
||||
UBOOT_SPI_GPH_BINARY = "u-boot-spi.gph"
|
||||
|
||||
# SPI NOR Flash deployed images
|
||||
UBOOT_SPI_SPL_IMAGE = "u-boot-spl-${MACHINE}-${PV}-${PR}.bin"
|
||||
UBOOT_SPI_SPL_SYMLINK = "u-boot-spl-${MACHINE}.bin"
|
||||
UBOOT_SPI_IMAGE = "u-boot-${MACHINE}-${PV}-${PR}.img"
|
||||
UBOOT_SPI_SYMLINK = "u-boot-${MACHINE}.img"
|
||||
UBOOT_SPI_GPH_IMAGE = "u-boot-spi-${MACHINE}-${PV}-${PR}.gph"
|
||||
UBOOT_SPI_GPH_SYMLINK = "u-boot-spi-${MACHINE}.gph"
|
||||
|
||||
do_install_append () {
|
||||
install ${S}/spl/${UBOOT_SPI_SPL_BINARY} ${D}/boot/${UBOOT_SPI_SPL_IMAGE}
|
||||
ln -sf ${UBOOT_SPI_SPL_IMAGE} ${D}/boot/${UBOOT_SPI_SPL_BINARY}
|
||||
|
||||
install ${S}/${UBOOT_SPI_BINARY} ${D}/boot/${UBOOT_SPI_IMAGE}
|
||||
ln -sf ${UBOOT_SPI_IMAGE} ${D}/boot/${UBOOT_SPI_BINARY}
|
||||
|
||||
install ${S}/${UBOOT_SPI_GPH_BINARY} ${D}/boot/${UBOOT_SPI_GPH_IMAGE}
|
||||
ln -sf ${UBOOT_SPI_GPH_IMAGE} ${D}/boot/${UBOOT_SPI_GPH_BINARY}
|
||||
}
|
||||
|
||||
do_deploy_append () {
|
||||
install ${S}/spl/${UBOOT_SPI_SPL_BINARY} ${DEPLOYDIR}/${UBOOT_SPI_SPL_IMAGE}
|
||||
rm -f ${UBOOT_SPI_SPL_BINARY} ${UBOOT_SPI_SPL_SYMLINK}
|
||||
ln -sf ${UBOOT_SPI_SPL_IMAGE} ${UBOOT_SPI_SPL_SYMLINK}
|
||||
ln -sf ${UBOOT_SPI_SPL_IMAGE} ${UBOOT_SPI_SPL_BINARY}
|
||||
|
||||
install ${S}/${UBOOT_SPI_BINARY} ${DEPLOYDIR}/${UBOOT_SPI_IMAGE}
|
||||
rm -f ${UBOOT_SPI_BINARY} ${UBOOT_SPI_SYMLINK}
|
||||
ln -sf ${UBOOT_SPI_IMAGE} ${UBOOT_SPI_SYMLINK}
|
||||
ln -sf ${UBOOT_SPI_IMAGE} ${UBOOT_SPI_BINARY}
|
||||
|
||||
install ${S}/${UBOOT_SPI_GPH_BINARY} ${DEPLOYDIR}/${UBOOT_SPI_GPH_IMAGE}
|
||||
rm -f ${UBOOT_SPI_GPH_BINARY} ${UBOOT_SPI_GPH_SYMLINK}
|
||||
ln -sf ${UBOOT_SPI_GPH_IMAGE} ${UBOOT_SPI_GPH_SYMLINK}
|
||||
ln -sf ${UBOOT_SPI_GPH_IMAGE} ${UBOOT_SPI_GPH_BINARY}
|
||||
}
|
||||
|
||||
@@ -5,14 +5,14 @@ DESCRIPTION = "u-boot bootloader for TI devices"
|
||||
LIC_FILES_CHKSUM = "file://Licenses/README;md5=025bf9f768cbcb1a165dbe1a110babfb"
|
||||
|
||||
PV = "2013.10"
|
||||
PR = "r3+gitr${SRCPV}"
|
||||
PR = "r7+gitr${SRCPV}"
|
||||
|
||||
SRC_URI = "git://git.ti.com/ti-u-boot/ti-u-boot.git;protocol=git;branch=${BRANCH}"
|
||||
|
||||
BRANCH ?= "ti-u-boot-2013.10"
|
||||
|
||||
# Corresponds to ti2013.12.00 release
|
||||
SRCREV = "562aa886438ea60cda487565b548b71407eaca26"
|
||||
# Corresponds to tag ti2013.12.01
|
||||
SRCREV = "78d8ebd4a0214b72a125f5b98c5ed2f9a3e5e783"
|
||||
|
||||
SPL_BINARY = "MLO"
|
||||
SPL_UART_BINARY = "u-boot-spl.bin"
|
||||
|
||||
134
recipes-graphics/libgles/libgles-omap3-5.01.00.01/rc.pvr
Executable file
134
recipes-graphics/libgles/libgles-omap3-5.01.00.01/rc.pvr
Executable file
@@ -0,0 +1,134 @@
|
||||
#!/bin/sh
|
||||
PATH=$PATH:/usr/sbin
|
||||
|
||||
# Check if an fb device is available. If not then just go ahead and
|
||||
# exit because we have no display.
|
||||
fbset > /dev/null 2>&1
|
||||
if [ "$?" == "1" ]
|
||||
then
|
||||
# looks like there is no display, so let's exit
|
||||
exit 0
|
||||
fi
|
||||
|
||||
BITSPERPIXEL="$(fbset | grep geom | awk '{print $6}')"
|
||||
YRES="$(fbset | grep geom | awk '{print $3}')"
|
||||
|
||||
CPUTYPE="$(cputype)"
|
||||
|
||||
if [ "$1" = "" ]; then
|
||||
echo PVR-INIT: Please use start, stop, or restart.
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ "$1" = "stop" -o "$1" = "restart" ]; then
|
||||
echo Stopping PVR
|
||||
rmmod bufferclass_ti
|
||||
rmmod omaplfb 2>/dev/null
|
||||
rmmod pvrsrvkm 2>/dev/null
|
||||
fi
|
||||
|
||||
if [ "$1" = "stop" ]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Set RGBA ordering to something the drivers like
|
||||
if [ "$BITSPERPIXEL" = "32" ] ; then
|
||||
fbset -rgba 8/16,8/8,8/0,8/24
|
||||
fi
|
||||
|
||||
# Try to enable triple buffering when there's enough VRAM
|
||||
fbset -vyres $(expr $YRES \* 3)
|
||||
|
||||
sgxprepare () {
|
||||
echo Starting PVR
|
||||
|
||||
lsmod | grep pvrsrvkm > /dev/null
|
||||
|
||||
if [ "$?" != "0" ]
|
||||
then
|
||||
insmod $(busybox find /lib/modules/$(uname -r) -name "pvrsrvkm.ko")
|
||||
|
||||
if [ "$?" != "0" ]
|
||||
then
|
||||
echo "Could not find pvrsrvkm driver"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
modprobe omaplfb
|
||||
modprobe bufferclass_ti
|
||||
|
||||
pvr_maj=`grep "pvrsrvkm$" /proc/devices | cut -b1,2,3`
|
||||
bc_maj=`grep "bc" /proc/devices | cut -b1,2,3`
|
||||
|
||||
if [ -e /dev/pvrsrvkm ] ; then
|
||||
rm -f /dev/pvrsrvkm
|
||||
fi
|
||||
|
||||
mknod /dev/pvrsrvkm c $pvr_maj 0
|
||||
chmod 666 /dev/pvrsrvkm
|
||||
|
||||
touch /etc/powervr-esrev
|
||||
|
||||
SAVED_ESREVISION="$(cat /etc/powervr-esrev)"
|
||||
}
|
||||
|
||||
sgxfinish () {
|
||||
# Fix up a bug in opkg
|
||||
if [ $(readlink /usr/lib/libsrv_um.so) != $(readlink /usr/lib/libsrv_um.so.1) ] ; then
|
||||
cd /usr/lib
|
||||
ln -sf $(readlink /usr/lib/libsrv_um.so.1) libsrv_um.so
|
||||
fi
|
||||
|
||||
if [ "${ES_REVISION}" != "${SAVED_ESREVISION}" ] ; then
|
||||
echo -n "Starting SGX fixup for"
|
||||
echo " ES${ES_REVISION}.x"
|
||||
cp -a /usr/lib/ES${ES_REVISION}.0/* /usr/lib
|
||||
cp -a /usr/bin/ES${ES_REVISION}.0/* /usr/bin
|
||||
echo "${ES_REVISION}" > /etc/powervr-esrev
|
||||
fi
|
||||
|
||||
if ! /usr/bin/pvrsrvctl --start --no-module; then return; fi
|
||||
}
|
||||
|
||||
case $CPUTYPE in
|
||||
"OMAP3530")
|
||||
sgxprepare
|
||||
|
||||
devmem2 0x48004B48 w 0x2 > /dev/null
|
||||
devmem2 0x48004B10 w 0x1 > /dev/null
|
||||
devmem2 0x48004B00 w 0x2 > /dev/null
|
||||
|
||||
ES_REVISION="$(devmem2 0x50000014 | sed -e s:0x00010205:5: -e s:0x00010201:3: -e s:0x00010003:2: | tail -n1 | awk -F': ' '{print $2}')"
|
||||
|
||||
sgxfinish
|
||||
;;
|
||||
"TI33XX")
|
||||
sgxprepare
|
||||
|
||||
ES_REVISION="$(devmem2 0x56000014 | sed -e s:0x00010205:8: | tail -n1 | awk -F': ' '{print $2}')"
|
||||
|
||||
sgxfinish
|
||||
;;
|
||||
"TI43XX")
|
||||
sgxprepare
|
||||
|
||||
ES_REVISION="$(devmem2 0x56000014 | sed -e s:0x00010205:8: | tail -n1 | awk -F': ' '{print $2}')"
|
||||
|
||||
sgxfinish
|
||||
;;
|
||||
"TI816x")
|
||||
sgxprepare
|
||||
|
||||
devmem2 0x48180F04 w 0x0 > /dev/null
|
||||
devmem2 0x48180900 w 0x2 > /dev/null
|
||||
devmem2 0x48180920 w 0x2 > /dev/null
|
||||
|
||||
ES_REVISION="$(devmem2 0x56000014 | sed -e s:0x00010205:6: -e s:0x00010201:3: -e s:0x00010003:2: | tail -n1 | awk -F': ' '{print $2}')"
|
||||
|
||||
sgxfinish
|
||||
;;
|
||||
*)
|
||||
echo No SGX hardware, not starting PVR
|
||||
;;
|
||||
esac
|
||||
145
recipes-graphics/libgles/libgles-omap3-5.01.00.01/rc_dri.pvr
Executable file
145
recipes-graphics/libgles/libgles-omap3-5.01.00.01/rc_dri.pvr
Executable file
@@ -0,0 +1,145 @@
|
||||
#!/bin/sh
|
||||
PATH=$PATH:/usr/sbin
|
||||
|
||||
# Check if an fb device is available. If not then just go ahead and
|
||||
# exit because we have no display.
|
||||
fbset > /dev/null 2>&1
|
||||
if [ "$?" == "1" ]
|
||||
then
|
||||
# looks like there is no display, so let's exit
|
||||
exit 0
|
||||
fi
|
||||
|
||||
BITSPERPIXEL="$(fbset | grep geom | awk '{print $6}')"
|
||||
YRES="$(fbset | grep geom | awk '{print $3}')"
|
||||
|
||||
CPUTYPE="$(cputype)"
|
||||
|
||||
if [ "$1" = "" ]; then
|
||||
echo PVR-INIT: Please use start, stop, or restart.
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ "$1" = "stop" -o "$1" = "restart" ]; then
|
||||
echo Stopping PVR
|
||||
|
||||
# Stop the X Server.
|
||||
#
|
||||
[ -f /tmp/.X0-lock ] && read XPID < /tmp/.X0-lock && [ -n "$XPID" ] && kill $XPID && while [ -e /proc/$XPID ] ; do sleep 1; done
|
||||
|
||||
rmmod bufferclass_ti
|
||||
rmmod pvrsrvkm 2>/dev/null
|
||||
rmmod drm 2>/dev/null
|
||||
fi
|
||||
|
||||
if [ "$1" = "stop" ]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Set RGBA ordering to something the drivers like
|
||||
if [ "$BITSPERPIXEL" = "32" ] ; then
|
||||
fbset -rgba 8/16,8/8,8/0,8/24
|
||||
fi
|
||||
|
||||
# Try to enable triple buffering when there's enough VRAM
|
||||
fbset -vyres $(expr $YRES \* 3)
|
||||
|
||||
sgxprepare () {
|
||||
echo Starting PVR
|
||||
|
||||
# Start the X Server.
|
||||
# The X Server will load the PVR Services module.
|
||||
#
|
||||
/usr/local/XSGX/bin/X -verbose -config /usr/local/XSGX/etc/xorg.conf &
|
||||
|
||||
modprobe drm
|
||||
|
||||
lsmod | grep pvrsrvkm > /dev/null
|
||||
|
||||
if [ "$?" != "0" ]
|
||||
then
|
||||
insmod $(busybox find /lib/modules/$(uname -r) -name "pvrsrvkm.ko")
|
||||
|
||||
if [ "$?" != "0" ]
|
||||
then
|
||||
echo "Could not find pvrsrvkm driver"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
modprobe bufferclass_ti
|
||||
|
||||
pvr_maj=`grep "pvrsrvkm$" /proc/devices | cut -b1,2,3`
|
||||
bc_maj=`grep "bc" /proc/devices | cut -b1,2,3`
|
||||
|
||||
if [ -e /dev/pvrsrvkm ] ; then
|
||||
rm -f /dev/pvrsrvkm
|
||||
fi
|
||||
|
||||
mknod /dev/pvrsrvkm c $pvr_maj 0
|
||||
chmod 666 /dev/pvrsrvkm
|
||||
|
||||
touch /etc/powervr-esrev
|
||||
|
||||
SAVED_ESREVISION="$(cat /etc/powervr-esrev)"
|
||||
}
|
||||
|
||||
sgxfinish () {
|
||||
# Fix up a bug in opkg
|
||||
if [ $(readlink /usr/lib/libsrv_um.so) != $(readlink /usr/lib/libsrv_um.so.1) ] ; then
|
||||
cd /usr/lib
|
||||
ln -sf $(readlink /usr/lib/libsrv_um.so.1) libsrv_um.so
|
||||
fi
|
||||
|
||||
if [ "${ES_REVISION}" != "${SAVED_ESREVISION}" ] ; then
|
||||
echo -n "Starting SGX fixup for"
|
||||
echo " ES${ES_REVISION}.x"
|
||||
cp -a /usr/lib/ES${ES_REVISION}.0/* /usr/lib
|
||||
cp -a /usr/bin/ES${ES_REVISION}.0/* /usr/bin
|
||||
echo "${ES_REVISION}" > /etc/powervr-esrev
|
||||
fi
|
||||
|
||||
if ! /usr/bin/pvrsrvctl --start --no-module; then return; fi
|
||||
}
|
||||
|
||||
case $CPUTYPE in
|
||||
"OMAP3530")
|
||||
sgxprepare
|
||||
|
||||
devmem2 0x48004B48 w 0x2 > /dev/null
|
||||
devmem2 0x48004B10 w 0x1 > /dev/null
|
||||
devmem2 0x48004B00 w 0x2 > /dev/null
|
||||
|
||||
ES_REVISION="$(devmem2 0x50000014 | sed -e s:0x00010205:5: -e s:0x00010201:3: -e s:0x00010003:2: | tail -n1 | awk -F': ' '{print $2}')"
|
||||
|
||||
sgxfinish
|
||||
;;
|
||||
"TI33XX")
|
||||
sgxprepare
|
||||
|
||||
ES_REVISION="$(devmem2 0x56000014 | sed -e s:0x00010205:8: | tail -n1 | awk -F': ' '{print $2}')"
|
||||
|
||||
sgxfinish
|
||||
;;
|
||||
"TI43XX")
|
||||
sgxprepare
|
||||
|
||||
ES_REVISION="$(devmem2 0x56000014 | sed -e s:0x00010205:8: | tail -n1 | awk -F': ' '{print $2}')"
|
||||
|
||||
sgxfinish
|
||||
;;
|
||||
"TI816x")
|
||||
sgxprepare
|
||||
|
||||
devmem2 0x48180F04 w 0x0 > /dev/null
|
||||
devmem2 0x48180900 w 0x2 > /dev/null
|
||||
devmem2 0x48180920 w 0x2 > /dev/null
|
||||
|
||||
ES_REVISION="$(devmem2 0x56000014 | sed -e s:0x00010205:6: -e s:0x00010201:3: -e s:0x00010003:2: | tail -n1 | awk -F': ' '{print $2}')"
|
||||
|
||||
sgxfinish
|
||||
;;
|
||||
*)
|
||||
echo No SGX hardware, not starting PVR
|
||||
;;
|
||||
esac
|
||||
134
recipes-graphics/libgles/libgles-omap3-5.01.01.01/rc.pvr
Executable file
134
recipes-graphics/libgles/libgles-omap3-5.01.01.01/rc.pvr
Executable file
@@ -0,0 +1,134 @@
|
||||
#!/bin/sh
|
||||
PATH=$PATH:/usr/sbin
|
||||
|
||||
# Check if an fb device is available. If not then just go ahead and
|
||||
# exit because we have no display.
|
||||
fbset > /dev/null 2>&1
|
||||
if [ "$?" == "1" ]
|
||||
then
|
||||
# looks like there is no display, so let's exit
|
||||
exit 0
|
||||
fi
|
||||
|
||||
BITSPERPIXEL="$(fbset | grep geom | awk '{print $6}')"
|
||||
YRES="$(fbset | grep geom | awk '{print $3}')"
|
||||
|
||||
CPUTYPE="$(cputype)"
|
||||
|
||||
if [ "$1" = "" ]; then
|
||||
echo PVR-INIT: Please use start, stop, or restart.
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ "$1" = "stop" -o "$1" = "restart" ]; then
|
||||
echo Stopping PVR
|
||||
rmmod bufferclass_ti
|
||||
rmmod omaplfb 2>/dev/null
|
||||
rmmod pvrsrvkm 2>/dev/null
|
||||
fi
|
||||
|
||||
if [ "$1" = "stop" ]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Set RGBA ordering to something the drivers like
|
||||
if [ "$BITSPERPIXEL" = "32" ] ; then
|
||||
fbset -rgba 8/16,8/8,8/0,8/24
|
||||
fi
|
||||
|
||||
# Try to enable triple buffering when there's enough VRAM
|
||||
fbset -vyres $(expr $YRES \* 3)
|
||||
|
||||
sgxprepare () {
|
||||
echo Starting PVR
|
||||
|
||||
lsmod | grep pvrsrvkm > /dev/null
|
||||
|
||||
if [ "$?" != "0" ]
|
||||
then
|
||||
insmod $(busybox find /lib/modules/$(uname -r) -name "pvrsrvkm.ko")
|
||||
|
||||
if [ "$?" != "0" ]
|
||||
then
|
||||
echo "Could not find pvrsrvkm driver"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
modprobe omaplfb
|
||||
modprobe bufferclass_ti
|
||||
|
||||
pvr_maj=`grep "pvrsrvkm$" /proc/devices | cut -b1,2,3`
|
||||
bc_maj=`grep "bc" /proc/devices | cut -b1,2,3`
|
||||
|
||||
if [ -e /dev/pvrsrvkm ] ; then
|
||||
rm -f /dev/pvrsrvkm
|
||||
fi
|
||||
|
||||
mknod /dev/pvrsrvkm c $pvr_maj 0
|
||||
chmod 666 /dev/pvrsrvkm
|
||||
|
||||
touch /etc/powervr-esrev
|
||||
|
||||
SAVED_ESREVISION="$(cat /etc/powervr-esrev)"
|
||||
}
|
||||
|
||||
sgxfinish () {
|
||||
# Fix up a bug in opkg
|
||||
if [ $(readlink /usr/lib/libsrv_um.so) != $(readlink /usr/lib/libsrv_um.so.1) ] ; then
|
||||
cd /usr/lib
|
||||
ln -sf $(readlink /usr/lib/libsrv_um.so.1) libsrv_um.so
|
||||
fi
|
||||
|
||||
if [ "${ES_REVISION}" != "${SAVED_ESREVISION}" ] ; then
|
||||
echo -n "Starting SGX fixup for"
|
||||
echo " ES${ES_REVISION}.x"
|
||||
cp -a /usr/lib/ES${ES_REVISION}.0/* /usr/lib
|
||||
cp -a /usr/bin/ES${ES_REVISION}.0/* /usr/bin
|
||||
echo "${ES_REVISION}" > /etc/powervr-esrev
|
||||
fi
|
||||
|
||||
if ! /usr/bin/pvrsrvctl --start --no-module; then return; fi
|
||||
}
|
||||
|
||||
case $CPUTYPE in
|
||||
"OMAP3530")
|
||||
sgxprepare
|
||||
|
||||
devmem2 0x48004B48 w 0x2 > /dev/null
|
||||
devmem2 0x48004B10 w 0x1 > /dev/null
|
||||
devmem2 0x48004B00 w 0x2 > /dev/null
|
||||
|
||||
ES_REVISION="$(devmem2 0x50000014 | sed -e s:0x00010205:5: -e s:0x00010201:3: -e s:0x00010003:2: | tail -n1 | awk -F': ' '{print $2}')"
|
||||
|
||||
sgxfinish
|
||||
;;
|
||||
"TI33XX")
|
||||
sgxprepare
|
||||
|
||||
ES_REVISION="$(devmem2 0x56000014 | sed -e s:0x00010205:8: | tail -n1 | awk -F': ' '{print $2}')"
|
||||
|
||||
sgxfinish
|
||||
;;
|
||||
"TI43XX")
|
||||
sgxprepare
|
||||
|
||||
ES_REVISION="$(devmem2 0x56000014 | sed -e s:0x00010205:8: | tail -n1 | awk -F': ' '{print $2}')"
|
||||
|
||||
sgxfinish
|
||||
;;
|
||||
"TI816x")
|
||||
sgxprepare
|
||||
|
||||
devmem2 0x48180F04 w 0x0 > /dev/null
|
||||
devmem2 0x48180900 w 0x2 > /dev/null
|
||||
devmem2 0x48180920 w 0x2 > /dev/null
|
||||
|
||||
ES_REVISION="$(devmem2 0x56000014 | sed -e s:0x00010205:6: -e s:0x00010201:3: -e s:0x00010003:2: | tail -n1 | awk -F': ' '{print $2}')"
|
||||
|
||||
sgxfinish
|
||||
;;
|
||||
*)
|
||||
echo No SGX hardware, not starting PVR
|
||||
;;
|
||||
esac
|
||||
145
recipes-graphics/libgles/libgles-omap3-5.01.01.01/rc_dri.pvr
Executable file
145
recipes-graphics/libgles/libgles-omap3-5.01.01.01/rc_dri.pvr
Executable file
@@ -0,0 +1,145 @@
|
||||
#!/bin/sh
|
||||
PATH=$PATH:/usr/sbin
|
||||
|
||||
# Check if an fb device is available. If not then just go ahead and
|
||||
# exit because we have no display.
|
||||
fbset > /dev/null 2>&1
|
||||
if [ "$?" == "1" ]
|
||||
then
|
||||
# looks like there is no display, so let's exit
|
||||
exit 0
|
||||
fi
|
||||
|
||||
BITSPERPIXEL="$(fbset | grep geom | awk '{print $6}')"
|
||||
YRES="$(fbset | grep geom | awk '{print $3}')"
|
||||
|
||||
CPUTYPE="$(cputype)"
|
||||
|
||||
if [ "$1" = "" ]; then
|
||||
echo PVR-INIT: Please use start, stop, or restart.
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ "$1" = "stop" -o "$1" = "restart" ]; then
|
||||
echo Stopping PVR
|
||||
|
||||
# Stop the X Server.
|
||||
#
|
||||
[ -f /tmp/.X0-lock ] && read XPID < /tmp/.X0-lock && [ -n "$XPID" ] && kill $XPID && while [ -e /proc/$XPID ] ; do sleep 1; done
|
||||
|
||||
rmmod bufferclass_ti
|
||||
rmmod pvrsrvkm 2>/dev/null
|
||||
rmmod drm 2>/dev/null
|
||||
fi
|
||||
|
||||
if [ "$1" = "stop" ]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Set RGBA ordering to something the drivers like
|
||||
if [ "$BITSPERPIXEL" = "32" ] ; then
|
||||
fbset -rgba 8/16,8/8,8/0,8/24
|
||||
fi
|
||||
|
||||
# Try to enable triple buffering when there's enough VRAM
|
||||
fbset -vyres $(expr $YRES \* 3)
|
||||
|
||||
sgxprepare () {
|
||||
echo Starting PVR
|
||||
|
||||
# Start the X Server.
|
||||
# The X Server will load the PVR Services module.
|
||||
#
|
||||
/usr/local/XSGX/bin/X -verbose -config /usr/local/XSGX/etc/xorg.conf &
|
||||
|
||||
modprobe drm
|
||||
|
||||
lsmod | grep pvrsrvkm > /dev/null
|
||||
|
||||
if [ "$?" != "0" ]
|
||||
then
|
||||
insmod $(busybox find /lib/modules/$(uname -r) -name "pvrsrvkm.ko")
|
||||
|
||||
if [ "$?" != "0" ]
|
||||
then
|
||||
echo "Could not find pvrsrvkm driver"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
modprobe bufferclass_ti
|
||||
|
||||
pvr_maj=`grep "pvrsrvkm$" /proc/devices | cut -b1,2,3`
|
||||
bc_maj=`grep "bc" /proc/devices | cut -b1,2,3`
|
||||
|
||||
if [ -e /dev/pvrsrvkm ] ; then
|
||||
rm -f /dev/pvrsrvkm
|
||||
fi
|
||||
|
||||
mknod /dev/pvrsrvkm c $pvr_maj 0
|
||||
chmod 666 /dev/pvrsrvkm
|
||||
|
||||
touch /etc/powervr-esrev
|
||||
|
||||
SAVED_ESREVISION="$(cat /etc/powervr-esrev)"
|
||||
}
|
||||
|
||||
sgxfinish () {
|
||||
# Fix up a bug in opkg
|
||||
if [ $(readlink /usr/lib/libsrv_um.so) != $(readlink /usr/lib/libsrv_um.so.1) ] ; then
|
||||
cd /usr/lib
|
||||
ln -sf $(readlink /usr/lib/libsrv_um.so.1) libsrv_um.so
|
||||
fi
|
||||
|
||||
if [ "${ES_REVISION}" != "${SAVED_ESREVISION}" ] ; then
|
||||
echo -n "Starting SGX fixup for"
|
||||
echo " ES${ES_REVISION}.x"
|
||||
cp -a /usr/lib/ES${ES_REVISION}.0/* /usr/lib
|
||||
cp -a /usr/bin/ES${ES_REVISION}.0/* /usr/bin
|
||||
echo "${ES_REVISION}" > /etc/powervr-esrev
|
||||
fi
|
||||
|
||||
if ! /usr/bin/pvrsrvctl --start --no-module; then return; fi
|
||||
}
|
||||
|
||||
case $CPUTYPE in
|
||||
"OMAP3530")
|
||||
sgxprepare
|
||||
|
||||
devmem2 0x48004B48 w 0x2 > /dev/null
|
||||
devmem2 0x48004B10 w 0x1 > /dev/null
|
||||
devmem2 0x48004B00 w 0x2 > /dev/null
|
||||
|
||||
ES_REVISION="$(devmem2 0x50000014 | sed -e s:0x00010205:5: -e s:0x00010201:3: -e s:0x00010003:2: | tail -n1 | awk -F': ' '{print $2}')"
|
||||
|
||||
sgxfinish
|
||||
;;
|
||||
"TI33XX")
|
||||
sgxprepare
|
||||
|
||||
ES_REVISION="$(devmem2 0x56000014 | sed -e s:0x00010205:8: | tail -n1 | awk -F': ' '{print $2}')"
|
||||
|
||||
sgxfinish
|
||||
;;
|
||||
"TI43XX")
|
||||
sgxprepare
|
||||
|
||||
ES_REVISION="$(devmem2 0x56000014 | sed -e s:0x00010205:8: | tail -n1 | awk -F': ' '{print $2}')"
|
||||
|
||||
sgxfinish
|
||||
;;
|
||||
"TI816x")
|
||||
sgxprepare
|
||||
|
||||
devmem2 0x48180F04 w 0x0 > /dev/null
|
||||
devmem2 0x48180900 w 0x2 > /dev/null
|
||||
devmem2 0x48180920 w 0x2 > /dev/null
|
||||
|
||||
ES_REVISION="$(devmem2 0x56000014 | sed -e s:0x00010205:6: -e s:0x00010201:3: -e s:0x00010003:2: | tail -n1 | awk -F': ' '{print $2}')"
|
||||
|
||||
sgxfinish
|
||||
;;
|
||||
*)
|
||||
echo No SGX hardware, not starting PVR
|
||||
;;
|
||||
esac
|
||||
@@ -283,6 +283,7 @@ INSANE_SKIP_${PN}-es3 = "ldflags dev-so staticdev"
|
||||
INSANE_SKIP_${PN}-es5 = "ldflags dev-so staticdev"
|
||||
INSANE_SKIP_${PN}-es6 = "ldflags dev-so staticdev"
|
||||
INSANE_SKIP_${PN}-es8 = "ldflags dev-so staticdev"
|
||||
INSANE_SKIP_${PN}-es9 = "ldflags dev-so staticdev"
|
||||
INSANE_SKIP_${PN}-rawdemos = "ldflags dev-so useless-rpaths"
|
||||
INSANE_SKIP_${PN}-blitwsegl = "ldflags"
|
||||
INSANE_SKIP_${PN}-blitwsegl-es3 = "ldflags"
|
||||
|
||||
50
recipes-graphics/libgles/libgles-omap3_5.01.00.01.bb
Normal file
50
recipes-graphics/libgles/libgles-omap3_5.01.00.01.bb
Normal file
@@ -0,0 +1,50 @@
|
||||
require libgles-omap3-no-x.inc
|
||||
|
||||
LICENSE = "TSPA"
|
||||
|
||||
PR = "${INC_PR}.1"
|
||||
|
||||
BINLOCATION_omap3 = "${S}/gfx_rel_es3.x"
|
||||
BINLOCATION_ti816x = "${S}/gfx_rel_es6.x"
|
||||
BINLOCATION_ti814x = "${S}/gfx_rel_es6.x"
|
||||
BINLOCATION_ti33x = "${S}/gfx_rel_es8.x"
|
||||
BINLOCATION_ti43x = "${S}/gfx_rel_es9.x"
|
||||
|
||||
PLATFORM = "LinuxARMV7"
|
||||
PVR_INIT = "pvrsrvctl"
|
||||
|
||||
SGXPV = "5_01_00_01"
|
||||
IMGPV = "1.10.2359475"
|
||||
|
||||
TI_BIN_UNPK_WDEXT := "/Graphics_SDK_${SGXPV}"
|
||||
|
||||
BINFILE_HARDFP = "Graphics_SDK_setuplinux_hardfp_${SGXPV}.bin"
|
||||
MD5SUM_HARDFP = "0ee7d59808330d442a51c0990c2cb30e"
|
||||
SHA256SUM_HARDFP = "769daae439677a7a85bbbced14cee4f85b19823e0b99560078d0a864c525c128"
|
||||
|
||||
# For now we only have hardfp version
|
||||
python __anonymous() {
|
||||
tunes = bb.data.getVar("TUNE_FEATURES", d, 1)
|
||||
if not tunes:
|
||||
return
|
||||
pkgn = bb.data.getVar("PN", d, 1)
|
||||
pkgv = bb.data.getVar("PV", d, 1)
|
||||
if "callconvention-hard" not in tunes:
|
||||
bb.warn("%s-%s ONLY supports hardfp mode for now" % (pkgn, pkgv))
|
||||
raise bb.parse.SkipPackage("%s-%s ONLY supports hardfp mode for now" % (pkgn, pkgv))
|
||||
}
|
||||
|
||||
BINFILE := "${BINFILE_HARDFP}"
|
||||
|
||||
SRC_URI = "http://software-dl.ti.com/dsps/dsps_public_sw/gfxsdk/${SGXPV}/exports/${BINFILE} \
|
||||
file://cputype \
|
||||
file://rc.pvr \
|
||||
file://99-bufferclass.rules \
|
||||
"
|
||||
|
||||
SRC_URI[md5sum] := "${MD5SUM_HARDFP}"
|
||||
SRC_URI[sha256sum] := "${SHA256SUM_HARDFP}"
|
||||
|
||||
S = "${WORKDIR}/Graphics_SDK_${SGXPV}"
|
||||
|
||||
LIBGLESWINDOWSYSTEM ?= "libpvrPVR2D_FRONTWSEGL.so.1"
|
||||
50
recipes-graphics/libgles/libgles-omap3_5.01.01.01.bb
Normal file
50
recipes-graphics/libgles/libgles-omap3_5.01.01.01.bb
Normal file
@@ -0,0 +1,50 @@
|
||||
require libgles-omap3-no-x.inc
|
||||
|
||||
LICENSE = "TSPA"
|
||||
|
||||
PR = "${INC_PR}.0"
|
||||
|
||||
BINLOCATION_omap3 = "${S}/gfx_rel_es3.x"
|
||||
BINLOCATION_ti816x = "${S}/gfx_rel_es6.x"
|
||||
BINLOCATION_ti814x = "${S}/gfx_rel_es6.x"
|
||||
BINLOCATION_ti33x = "${S}/gfx_rel_es8.x"
|
||||
BINLOCATION_ti43x = "${S}/gfx_rel_es9.x"
|
||||
|
||||
PLATFORM = "LinuxARMV7"
|
||||
PVR_INIT = "pvrsrvctl"
|
||||
|
||||
SGXPV = "5_01_01_01"
|
||||
IMGPV = "1.10.2359475"
|
||||
|
||||
TI_BIN_UNPK_WDEXT := "/Graphics_SDK_${SGXPV}"
|
||||
|
||||
BINFILE_HARDFP = "Graphics_SDK_setuplinux_hardfp_${SGXPV}.bin"
|
||||
MD5SUM_HARDFP = "94acdbd20152c905939c2448d5e80a72"
|
||||
SHA256SUM_HARDFP = "7f647bf45a5ce8ba9aaa28c4afe85fced4275f9a4567a1886d4460b76c9051ae"
|
||||
|
||||
# For now we only have hardfp version
|
||||
python __anonymous() {
|
||||
tunes = bb.data.getVar("TUNE_FEATURES", d, 1)
|
||||
if not tunes:
|
||||
return
|
||||
pkgn = bb.data.getVar("PN", d, 1)
|
||||
pkgv = bb.data.getVar("PV", d, 1)
|
||||
if "callconvention-hard" not in tunes:
|
||||
bb.warn("%s-%s ONLY supports hardfp mode for now" % (pkgn, pkgv))
|
||||
raise bb.parse.SkipPackage("%s-%s ONLY supports hardfp mode for now" % (pkgn, pkgv))
|
||||
}
|
||||
|
||||
BINFILE := "${BINFILE_HARDFP}"
|
||||
|
||||
SRC_URI = "http://software-dl.ti.com/dsps/dsps_public_sw/gfxsdk/${SGXPV}/exports/${BINFILE} \
|
||||
file://cputype \
|
||||
file://rc.pvr \
|
||||
file://99-bufferclass.rules \
|
||||
"
|
||||
|
||||
SRC_URI[md5sum] := "${MD5SUM_HARDFP}"
|
||||
SRC_URI[sha256sum] := "${SHA256SUM_HARDFP}"
|
||||
|
||||
S = "${WORKDIR}/Graphics_SDK_${SGXPV}"
|
||||
|
||||
LIBGLESWINDOWSYSTEM ?= "libpvrPVR2D_FRONTWSEGL.so.1"
|
||||
1
recipes-kernel/linux/linux-keystone-rt/defconfig
Normal file
1
recipes-kernel/linux/linux-keystone-rt/defconfig
Normal file
@@ -0,0 +1 @@
|
||||
use-kernel-config=keystone2_fullrt_defconfig
|
||||
33
recipes-kernel/linux/linux-keystone-rt_3.10.bb
Normal file
33
recipes-kernel/linux/linux-keystone-rt_3.10.bb
Normal file
@@ -0,0 +1,33 @@
|
||||
SECTION = "kernel"
|
||||
DESCRIPTION = "Linux RT kernel for TI Keystone devices"
|
||||
LICENSE = "GPLv2"
|
||||
LIC_FILES_CHKSUM = "file://COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7"
|
||||
|
||||
COMPATIBLE_MACHINE = "keystone"
|
||||
|
||||
inherit kernel
|
||||
|
||||
require recipes-kernel/linux/linux-dtb.inc
|
||||
require recipes-kernel/linux/setup-defconfig.inc
|
||||
|
||||
MACHINE_KERNEL_PR_append = "c+gitr${SRCPV}"
|
||||
PR = "${MACHINE_KERNEL_PR}"
|
||||
|
||||
KERNEL_DEVICETREE_k2hk-evm = "k2hk-evm.dtb"
|
||||
KERNEL_DEVICETREE_k2e-evm = "k2e-evm.dtb"
|
||||
KERNEL_DEVICETREE_k2l-evm = "k2l-evm.dtb"
|
||||
|
||||
KERNEL_EXTRA_ARGS += "LOADADDR=${UBOOT_ENTRYPOINT}"
|
||||
|
||||
# This commit corresponds to "K2_RT_LINUX_03.10.10_14.03_03"
|
||||
SRCREV = "6b482abe6a18d004230ca54da866f4627f02125b"
|
||||
PV = "3.10.10"
|
||||
|
||||
BRANCH = "master-rt"
|
||||
SRC_URI = "git://git.ti.com/keystone-linux/linux.git;protocol=git;branch=${BRANCH}\
|
||||
file://defconfig\
|
||||
"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
RDEPENDS_kernel-base = ""
|
||||
33
recipes-kernel/linux/linux-keystone_3.10.bb
Normal file
33
recipes-kernel/linux/linux-keystone_3.10.bb
Normal file
@@ -0,0 +1,33 @@
|
||||
SECTION = "kernel"
|
||||
DESCRIPTION = "Linux kernel for TI Keystone devices"
|
||||
LICENSE = "GPLv2"
|
||||
LIC_FILES_CHKSUM = "file://COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7"
|
||||
|
||||
COMPATIBLE_MACHINE = "keystone"
|
||||
|
||||
inherit kernel
|
||||
|
||||
require recipes-kernel/linux/linux-dtb.inc
|
||||
require recipes-kernel/linux/setup-defconfig.inc
|
||||
|
||||
MACHINE_KERNEL_PR_append = "c+gitr${SRCPV}"
|
||||
PR = "${MACHINE_KERNEL_PR}"
|
||||
|
||||
KERNEL_DEVICETREE_k2hk-evm = "k2hk-evm.dtb"
|
||||
KERNEL_DEVICETREE_k2e-evm = "k2e-evm.dtb"
|
||||
KERNEL_DEVICETREE_k2l-evm = "k2l-evm.dtb"
|
||||
|
||||
KERNEL_EXTRA_ARGS += "LOADADDR=${UBOOT_ENTRYPOINT}"
|
||||
|
||||
# This commit corresponds to "K2_LINUX_03.10.10_14.03_03"
|
||||
SRCREV = "07176920ed86dfdae97d272f574c3e2760d687ef"
|
||||
PV = "3.10.10"
|
||||
|
||||
BRANCH = "master"
|
||||
SRC_URI = "git://git.ti.com/keystone-linux/linux.git;protocol=git;branch=${BRANCH}\
|
||||
file://defconfig\
|
||||
"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
RDEPENDS_kernel-base = ""
|
||||
@@ -1,28 +0,0 @@
|
||||
SECTION = "kernel"
|
||||
DESCRIPTION = "Linux kernel for TI Keystone devices"
|
||||
LICENSE = "GPLv2"
|
||||
LIC_FILES_CHKSUM = "file://COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7"
|
||||
|
||||
inherit kernel
|
||||
|
||||
require recipes-kernel/linux/linux-dtb.inc
|
||||
require recipes-kernel/linux/setup-defconfig.inc
|
||||
|
||||
KERNEL_DEVICETREE_keystone-evm = "k2hk-evm.dtb"
|
||||
|
||||
COMPATIBLE_MACHINE = "keystone"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
BRANCH = "sept-2013/master"
|
||||
|
||||
# This commit corresponds to K2_LINUX_03.08.04_13.09 tag
|
||||
SRCREV = "20a48dc5309c4434650baef2b6072b5f1016f946"
|
||||
|
||||
# Append to the MACHINE_KERNEL_PR so that a new SRCREV will cause a rebuild
|
||||
MACHINE_KERNEL_PR_append = "a+gitr${SRCPV}"
|
||||
PR = "${MACHINE_KERNEL_PR}"
|
||||
|
||||
SRC_URI = "git://arago-project.org/git/projects/linux-keystone.git;protocol=git;branch=${BRANCH}\
|
||||
file://defconfig\
|
||||
"
|
||||
@@ -8,12 +8,14 @@ COMPATIBLE_MACHINE = "omap3"
|
||||
# SRCREV corresponds to tag v2.6.37_OMAPPSP_04.02.00.07
|
||||
SRCREV= "adcd067326836777c049e3cb32a5b7d9d401fc31"
|
||||
|
||||
BRANCH = "OMAPPSP_04.02.00.07"
|
||||
|
||||
# The main PR is now using MACHINE_KERNEL_PR, for omap3 devices
|
||||
# see conf/machine/include/omap3.inc
|
||||
MACHINE_KERNEL_PR_append = "b"
|
||||
PR = "${MACHINE_KERNEL_PR}"
|
||||
|
||||
SRC_URI = "git://arago-project.org/git/projects/linux-omap3.git;protocol=git \
|
||||
SRC_URI = "git://arago-project.org/git/projects/linux-omap3.git;protocol=git;branch=${BRANCH} \
|
||||
file://defconfig"
|
||||
|
||||
# The following patches below have been upstreamed to linux kernel 2.6.39 tree
|
||||
|
||||
@@ -0,0 +1,256 @@
|
||||
From b9ebe46e251c5c8becd02f92893ef514e834bf67 Mon Sep 17 00:00:00 2001
|
||||
From: Ivan Djelic <ivan.djelic@parrot.com>
|
||||
Date: Wed, 6 Mar 2013 20:09:27 +0100
|
||||
Subject: [PATCH 3/4] ARM: 7668/1: fix memset-related crashes caused by recent
|
||||
GCC (4.7.2) optimizations
|
||||
|
||||
Recent GCC versions (e.g. GCC-4.7.2) perform optimizations based on
|
||||
assumptions about the implementation of memset and similar functions.
|
||||
The current ARM optimized memset code does not return the value of
|
||||
its first argument, as is usually expected from standard implementations.
|
||||
|
||||
For instance in the following function:
|
||||
|
||||
void debug_mutex_lock_common(struct mutex *lock, struct mutex_waiter *waiter)
|
||||
{
|
||||
memset(waiter, MUTEX_DEBUG_INIT, sizeof(*waiter));
|
||||
waiter->magic = waiter;
|
||||
INIT_LIST_HEAD(&waiter->list);
|
||||
}
|
||||
|
||||
compiled as:
|
||||
|
||||
800554d0 <debug_mutex_lock_common>:
|
||||
800554d0: e92d4008 push {r3, lr}
|
||||
800554d4: e1a00001 mov r0, r1
|
||||
800554d8: e3a02010 mov r2, #16 ; 0x10
|
||||
800554dc: e3a01011 mov r1, #17 ; 0x11
|
||||
800554e0: eb04426e bl 80165ea0 <memset>
|
||||
800554e4: e1a03000 mov r3, r0
|
||||
800554e8: e583000c str r0, [r3, #12]
|
||||
800554ec: e5830000 str r0, [r3]
|
||||
800554f0: e5830004 str r0, [r3, #4]
|
||||
800554f4: e8bd8008 pop {r3, pc}
|
||||
|
||||
GCC assumes memset returns the value of pointer 'waiter' in register r0; causing
|
||||
register/memory corruptions.
|
||||
|
||||
This patch fixes the return value of the assembly version of memset.
|
||||
It adds a 'mov' instruction and merges an additional load+store into
|
||||
existing load/store instructions.
|
||||
For ease of review, here is a breakdown of the patch into 4 simple steps:
|
||||
|
||||
Step 1
|
||||
======
|
||||
Perform the following substitutions:
|
||||
ip -> r8, then
|
||||
r0 -> ip,
|
||||
and insert 'mov ip, r0' as the first statement of the function.
|
||||
At this point, we have a memset() implementation returning the proper result,
|
||||
but corrupting r8 on some paths (the ones that were using ip).
|
||||
|
||||
Step 2
|
||||
======
|
||||
Make sure r8 is saved and restored when (! CALGN(1)+0) == 1:
|
||||
|
||||
save r8:
|
||||
- str lr, [sp, #-4]!
|
||||
+ stmfd sp!, {r8, lr}
|
||||
|
||||
and restore r8 on both exit paths:
|
||||
- ldmeqfd sp!, {pc} @ Now <64 bytes to go.
|
||||
+ ldmeqfd sp!, {r8, pc} @ Now <64 bytes to go.
|
||||
(...)
|
||||
tst r2, #16
|
||||
stmneia ip!, {r1, r3, r8, lr}
|
||||
- ldr lr, [sp], #4
|
||||
+ ldmfd sp!, {r8, lr}
|
||||
|
||||
Step 3
|
||||
======
|
||||
Make sure r8 is saved and restored when (! CALGN(1)+0) == 0:
|
||||
|
||||
save r8:
|
||||
- stmfd sp!, {r4-r7, lr}
|
||||
+ stmfd sp!, {r4-r8, lr}
|
||||
|
||||
and restore r8 on both exit paths:
|
||||
bgt 3b
|
||||
- ldmeqfd sp!, {r4-r7, pc}
|
||||
+ ldmeqfd sp!, {r4-r8, pc}
|
||||
(...)
|
||||
tst r2, #16
|
||||
stmneia ip!, {r4-r7}
|
||||
- ldmfd sp!, {r4-r7, lr}
|
||||
+ ldmfd sp!, {r4-r8, lr}
|
||||
|
||||
Step 4
|
||||
======
|
||||
Rewrite register list "r4-r7, r8" as "r4-r8".
|
||||
|
||||
Signed-off-by: Ivan Djelic <ivan.djelic@parrot.com>
|
||||
Reviewed-by: Nicolas Pitre <nico@linaro.org>
|
||||
Signed-off-by: Dirk Behme <dirk.behme@gmail.com>
|
||||
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
---
|
||||
arch/arm/lib/memset.S | 85 ++++++++++++++++++++++++++-------------------------
|
||||
1 file changed, 44 insertions(+), 41 deletions(-)
|
||||
|
||||
diff --git a/arch/arm/lib/memset.S b/arch/arm/lib/memset.S
|
||||
index 650d592..d912e73 100644
|
||||
--- a/arch/arm/lib/memset.S
|
||||
+++ b/arch/arm/lib/memset.S
|
||||
@@ -19,9 +19,9 @@
|
||||
1: subs r2, r2, #4 @ 1 do we have enough
|
||||
blt 5f @ 1 bytes to align with?
|
||||
cmp r3, #2 @ 1
|
||||
- strltb r1, [r0], #1 @ 1
|
||||
- strleb r1, [r0], #1 @ 1
|
||||
- strb r1, [r0], #1 @ 1
|
||||
+ strltb r1, [ip], #1 @ 1
|
||||
+ strleb r1, [ip], #1 @ 1
|
||||
+ strb r1, [ip], #1 @ 1
|
||||
add r2, r2, r3 @ 1 (r2 = r2 - (4 - r3))
|
||||
/*
|
||||
* The pointer is now aligned and the length is adjusted. Try doing the
|
||||
@@ -29,10 +29,14 @@
|
||||
*/
|
||||
|
||||
ENTRY(memset)
|
||||
- ands r3, r0, #3 @ 1 unaligned?
|
||||
+/*
|
||||
+ * Preserve the contents of r0 for the return value.
|
||||
+ */
|
||||
+ mov ip, r0
|
||||
+ ands r3, ip, #3 @ 1 unaligned?
|
||||
bne 1b @ 1
|
||||
/*
|
||||
- * we know that the pointer in r0 is aligned to a word boundary.
|
||||
+ * we know that the pointer in ip is aligned to a word boundary.
|
||||
*/
|
||||
orr r1, r1, r1, lsl #8
|
||||
orr r1, r1, r1, lsl #16
|
||||
@@ -43,29 +47,28 @@ ENTRY(memset)
|
||||
#if ! CALGN(1)+0
|
||||
|
||||
/*
|
||||
- * We need an extra register for this loop - save the return address and
|
||||
- * use the LR
|
||||
+ * We need 2 extra registers for this loop - use r8 and the LR
|
||||
*/
|
||||
- str lr, [sp, #-4]!
|
||||
- mov ip, r1
|
||||
+ stmfd sp!, {r8, lr}
|
||||
+ mov r8, r1
|
||||
mov lr, r1
|
||||
|
||||
2: subs r2, r2, #64
|
||||
- stmgeia r0!, {r1, r3, ip, lr} @ 64 bytes at a time.
|
||||
- stmgeia r0!, {r1, r3, ip, lr}
|
||||
- stmgeia r0!, {r1, r3, ip, lr}
|
||||
- stmgeia r0!, {r1, r3, ip, lr}
|
||||
+ stmgeia ip!, {r1, r3, r8, lr} @ 64 bytes at a time.
|
||||
+ stmgeia ip!, {r1, r3, r8, lr}
|
||||
+ stmgeia ip!, {r1, r3, r8, lr}
|
||||
+ stmgeia ip!, {r1, r3, r8, lr}
|
||||
bgt 2b
|
||||
- ldmeqfd sp!, {pc} @ Now <64 bytes to go.
|
||||
+ ldmeqfd sp!, {r8, pc} @ Now <64 bytes to go.
|
||||
/*
|
||||
* No need to correct the count; we're only testing bits from now on
|
||||
*/
|
||||
tst r2, #32
|
||||
- stmneia r0!, {r1, r3, ip, lr}
|
||||
- stmneia r0!, {r1, r3, ip, lr}
|
||||
+ stmneia ip!, {r1, r3, r8, lr}
|
||||
+ stmneia ip!, {r1, r3, r8, lr}
|
||||
tst r2, #16
|
||||
- stmneia r0!, {r1, r3, ip, lr}
|
||||
- ldr lr, [sp], #4
|
||||
+ stmneia ip!, {r1, r3, r8, lr}
|
||||
+ ldmfd sp!, {r8, lr}
|
||||
|
||||
#else
|
||||
|
||||
@@ -74,54 +77,54 @@ ENTRY(memset)
|
||||
* whole cache lines at once.
|
||||
*/
|
||||
|
||||
- stmfd sp!, {r4-r7, lr}
|
||||
+ stmfd sp!, {r4-r8, lr}
|
||||
mov r4, r1
|
||||
mov r5, r1
|
||||
mov r6, r1
|
||||
mov r7, r1
|
||||
- mov ip, r1
|
||||
+ mov r8, r1
|
||||
mov lr, r1
|
||||
|
||||
cmp r2, #96
|
||||
- tstgt r0, #31
|
||||
+ tstgt ip, #31
|
||||
ble 3f
|
||||
|
||||
- and ip, r0, #31
|
||||
- rsb ip, ip, #32
|
||||
- sub r2, r2, ip
|
||||
- movs ip, ip, lsl #(32 - 4)
|
||||
- stmcsia r0!, {r4, r5, r6, r7}
|
||||
- stmmiia r0!, {r4, r5}
|
||||
- tst ip, #(1 << 30)
|
||||
- mov ip, r1
|
||||
- strne r1, [r0], #4
|
||||
+ and r8, ip, #31
|
||||
+ rsb r8, r8, #32
|
||||
+ sub r2, r2, r8
|
||||
+ movs r8, r8, lsl #(32 - 4)
|
||||
+ stmcsia ip!, {r4, r5, r6, r7}
|
||||
+ stmmiia ip!, {r4, r5}
|
||||
+ tst r8, #(1 << 30)
|
||||
+ mov r8, r1
|
||||
+ strne r1, [ip], #4
|
||||
|
||||
3: subs r2, r2, #64
|
||||
- stmgeia r0!, {r1, r3-r7, ip, lr}
|
||||
- stmgeia r0!, {r1, r3-r7, ip, lr}
|
||||
+ stmgeia ip!, {r1, r3-r8, lr}
|
||||
+ stmgeia ip!, {r1, r3-r8, lr}
|
||||
bgt 3b
|
||||
- ldmeqfd sp!, {r4-r7, pc}
|
||||
+ ldmeqfd sp!, {r4-r8, pc}
|
||||
|
||||
tst r2, #32
|
||||
- stmneia r0!, {r1, r3-r7, ip, lr}
|
||||
+ stmneia ip!, {r1, r3-r8, lr}
|
||||
tst r2, #16
|
||||
- stmneia r0!, {r4-r7}
|
||||
- ldmfd sp!, {r4-r7, lr}
|
||||
+ stmneia ip!, {r4-r7}
|
||||
+ ldmfd sp!, {r4-r8, lr}
|
||||
|
||||
#endif
|
||||
|
||||
4: tst r2, #8
|
||||
- stmneia r0!, {r1, r3}
|
||||
+ stmneia ip!, {r1, r3}
|
||||
tst r2, #4
|
||||
- strne r1, [r0], #4
|
||||
+ strne r1, [ip], #4
|
||||
/*
|
||||
* When we get here, we've got less than 4 bytes to zero. We
|
||||
* may have an unaligned pointer as well.
|
||||
*/
|
||||
5: tst r2, #2
|
||||
- strneb r1, [r0], #1
|
||||
- strneb r1, [r0], #1
|
||||
+ strneb r1, [ip], #1
|
||||
+ strneb r1, [ip], #1
|
||||
tst r2, #1
|
||||
- strneb r1, [r0], #1
|
||||
+ strneb r1, [ip], #1
|
||||
mov pc, lr
|
||||
ENDPROC(memset)
|
||||
--
|
||||
1.8.2.1
|
||||
|
||||
@@ -0,0 +1,83 @@
|
||||
From 78429023fbec3428238e8dbdd81fa67e4619d04c Mon Sep 17 00:00:00 2001
|
||||
From: Nicolas Pitre <nicolas.pitre@linaro.org>
|
||||
Date: Tue, 12 Mar 2013 13:00:42 +0100
|
||||
Subject: [PATCH 4/4] ARM: 7670/1: fix the memset fix
|
||||
|
||||
Commit 455bd4c430b0 ("ARM: 7668/1: fix memset-related crashes caused by
|
||||
recent GCC (4.7.2) optimizations") attempted to fix a compliance issue
|
||||
with the memset return value. However the memset itself became broken
|
||||
by that patch for misaligned pointers.
|
||||
|
||||
This fixes the above by branching over the entry code from the
|
||||
misaligned fixup code to avoid reloading the original pointer.
|
||||
|
||||
Also, because the function entry alignment is wrong in the Thumb mode
|
||||
compilation, that fixup code is moved to the end.
|
||||
|
||||
While at it, the entry instructions are slightly reworked to help dual
|
||||
issue pipelines.
|
||||
|
||||
Signed-off-by: Nicolas Pitre <nico@linaro.org>
|
||||
Tested-by: Alexander Holler <holler@ahsoftware.de>
|
||||
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
|
||||
---
|
||||
arch/arm/lib/memset.S | 33 +++++++++++++--------------------
|
||||
1 file changed, 13 insertions(+), 20 deletions(-)
|
||||
|
||||
diff --git a/arch/arm/lib/memset.S b/arch/arm/lib/memset.S
|
||||
index d912e73..94b0650 100644
|
||||
--- a/arch/arm/lib/memset.S
|
||||
+++ b/arch/arm/lib/memset.S
|
||||
@@ -14,31 +14,15 @@
|
||||
|
||||
.text
|
||||
.align 5
|
||||
- .word 0
|
||||
-
|
||||
-1: subs r2, r2, #4 @ 1 do we have enough
|
||||
- blt 5f @ 1 bytes to align with?
|
||||
- cmp r3, #2 @ 1
|
||||
- strltb r1, [ip], #1 @ 1
|
||||
- strleb r1, [ip], #1 @ 1
|
||||
- strb r1, [ip], #1 @ 1
|
||||
- add r2, r2, r3 @ 1 (r2 = r2 - (4 - r3))
|
||||
-/*
|
||||
- * The pointer is now aligned and the length is adjusted. Try doing the
|
||||
- * memset again.
|
||||
- */
|
||||
|
||||
ENTRY(memset)
|
||||
-/*
|
||||
- * Preserve the contents of r0 for the return value.
|
||||
- */
|
||||
- mov ip, r0
|
||||
- ands r3, ip, #3 @ 1 unaligned?
|
||||
- bne 1b @ 1
|
||||
+ ands r3, r0, #3 @ 1 unaligned?
|
||||
+ mov ip, r0 @ preserve r0 as return value
|
||||
+ bne 6f @ 1
|
||||
/*
|
||||
* we know that the pointer in ip is aligned to a word boundary.
|
||||
*/
|
||||
- orr r1, r1, r1, lsl #8
|
||||
+1: orr r1, r1, r1, lsl #8
|
||||
orr r1, r1, r1, lsl #16
|
||||
mov r3, r1
|
||||
cmp r2, #16
|
||||
@@ -127,4 +111,13 @@ ENTRY(memset)
|
||||
tst r2, #1
|
||||
strneb r1, [ip], #1
|
||||
mov pc, lr
|
||||
+
|
||||
+6: subs r2, r2, #4 @ 1 do we have enough
|
||||
+ blt 5b @ 1 bytes to align with?
|
||||
+ cmp r3, #2 @ 1
|
||||
+ strltb r1, [ip], #1 @ 1
|
||||
+ strleb r1, [ip], #1 @ 1
|
||||
+ strb r1, [ip], #1 @ 1
|
||||
+ add r2, r2, r3 @ 1 (r2 = r2 - (4 - r3))
|
||||
+ b 1b
|
||||
ENDPROC(memset)
|
||||
--
|
||||
1.8.2.1
|
||||
|
||||
@@ -13,6 +13,8 @@ SRCREV = "c34a43ec74168b892a948b45695486f1a3d700af"
|
||||
|
||||
SRC_URI = "git://dev.omapzoom.org/pub/scm/integration/kernel-ubuntu.git;protocol=git;branch=ti-ubuntu-3.4-1487 \
|
||||
file://defconfig \
|
||||
file://0003-ARM-7668-1-fix-memset-related-crashes-caused-by-rece.patch \
|
||||
file://0004-ARM-7670-1-fix-the-memset-fix.patch \
|
||||
"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
@@ -0,0 +1,45 @@
|
||||
From bd9c0b09db8798815cb577f82beebf7e6c03edcd Mon Sep 17 00:00:00 2001
|
||||
From: Santosh Shilimkar <santosh.shilimkar@ti.com>
|
||||
Date: Thu, 13 Feb 2014 08:52:41 -0500
|
||||
Subject: [PATCH] Not-for-merge: ARM: config: omap: Disable SMP for AM335x
|
||||
build
|
||||
|
||||
SMP and SMP_ON_UP introduces some extra barriers and code many fast paths
|
||||
including kernel lock functions.
|
||||
|
||||
Performance sensitive usecases like networking gets impacted because of this.
|
||||
In typical production kernel which is targeted for single core device
|
||||
like AM335x family, you don't want to take this hit.
|
||||
|
||||
Ideally one should just create a device specific config feed as done by all
|
||||
typical distro's. Other option is to apply this specifically during build
|
||||
time using recipe.
|
||||
|
||||
Whichever option, one definitely don't want this overhead for performance
|
||||
critical usecases.
|
||||
|
||||
Disabling SMP in the build introduces one warining in cpuidle44xx.c driver
|
||||
and fix is included in the series
|
||||
|
||||
Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
|
||||
Signed-off-by: Denys Dmytriyenko <denys@ti.com>
|
||||
---
|
||||
arch/arm/configs/omap2plus_defconfig | 2 --
|
||||
1 file changed, 2 deletions(-)
|
||||
|
||||
diff --git a/arch/arm/configs/omap2plus_defconfig b/arch/arm/configs/omap2plus_defconfig
|
||||
index ff579a7..25217e3 100644
|
||||
--- a/arch/arm/configs/omap2plus_defconfig
|
||||
+++ b/arch/arm/configs/omap2plus_defconfig
|
||||
@@ -36,8 +36,6 @@ CONFIG_OMAP4_ERRATA_I688=y
|
||||
CONFIG_ARM_THUMBEE=y
|
||||
CONFIG_ARM_ERRATA_411920=y
|
||||
CONFIG_PCIE_DRA7XX=y
|
||||
-CONFIG_SMP=y
|
||||
-CONFIG_NR_CPUS=2
|
||||
CONFIG_CMA=y
|
||||
CONFIG_PREEMPT_VOLUNTARY=y
|
||||
CONFIG_LEDS=y
|
||||
--
|
||||
1.8.3.2
|
||||
|
||||
@@ -13,8 +13,12 @@ RDEPENDS_kernel-base += "kernel-devicetree"
|
||||
|
||||
# Add a run-time dependency for the PM firmware to be installed
|
||||
# on the target file system.
|
||||
RDEPENDS_kernel-base_append_ti33x = " am33x-cm3 am33x-cm3-initscript"
|
||||
RDEPENDS_kernel-base_append_ti43x = " am33x-cm3 am33x-cm3-initscript"
|
||||
RDEPENDS_kernel-base_append_ti33x = " am33x-cm3"
|
||||
RDEPENDS_kernel-base_append_ti43x = " am33x-cm3"
|
||||
|
||||
# Add a run-time dependency for the VPE VPDMA firmware to be installed
|
||||
# on the target file system.
|
||||
RDEPENDS_kernel-base_append_dra7xx-evm = " vpe-vpdma-fw"
|
||||
|
||||
# Default is to package all dtb files for ti33x devices unless building
|
||||
# for the specific beaglebone machine.
|
||||
@@ -32,14 +36,18 @@ S = "${WORKDIR}/git"
|
||||
|
||||
BRANCH = "ti-linux-3.12.y"
|
||||
|
||||
# Corresponds to ti2013.12.00 release
|
||||
SRCREV = "dfea149efb32485f17bb7440eb326549c8f647e2"
|
||||
PV = "3.12.4"
|
||||
# Corresponds to tag ti2013.12.01
|
||||
SRCREV = "2325bb5680986b6914d8fd0b5d0bdc20081fe8d3"
|
||||
PV = "3.12.10"
|
||||
|
||||
# Append to the MACHINE_KERNEL_PR so that a new SRCREV will cause a rebuild
|
||||
MACHINE_KERNEL_PR_append = "d+gitr${SRCPV}"
|
||||
MACHINE_KERNEL_PR_append = "k+gitr${SRCPV}"
|
||||
PR = "${MACHINE_KERNEL_PR}"
|
||||
|
||||
SRC_URI = "git://git.ti.com/ti-linux-kernel/ti-linux-kernel.git;protocol=git;branch=${BRANCH} \
|
||||
file://defconfig \
|
||||
"
|
||||
|
||||
# Disable SMP in defconfig on single-core platforms to reduce overhead
|
||||
SRC_URI_append_ti33x = "file://0001-Not-for-merge-ARM-config-omap-Disable-SMP-for-AM335x.patch"
|
||||
SRC_URI_append_ti43x = "file://0001-Not-for-merge-ARM-config-omap-Disable-SMP-for-AM335x.patch"
|
||||
|
||||
24
recipes-ti/ipc/files/tiipclad-daemon.sh
Executable file
24
recipes-ti/ipc/files/tiipclad-daemon.sh
Executable file
@@ -0,0 +1,24 @@
|
||||
#! /bin/sh
|
||||
|
||||
tiipclad_daemon=/usr/bin/lad_tci6638
|
||||
tiipclad_params=lad.txt
|
||||
|
||||
test -x "$tiipclad_daemon" || exit 0
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
echo -n "Starting tiipclad daemon"
|
||||
start-stop-daemon --start --quiet --exec $tiipclad_daemon $tiipclad_params
|
||||
echo "."
|
||||
;;
|
||||
stop)
|
||||
echo -n "Stopping tiipclad daemon"
|
||||
start-stop-daemon --stop --quiet --pidfile /var/run/tiipclad.pid
|
||||
echo "."
|
||||
;;
|
||||
*)
|
||||
echo "Usage: /etc/init.d/tiipclad-daemon.sh {start|stop}"
|
||||
exit 1
|
||||
esac
|
||||
|
||||
exit 0
|
||||
52
recipes-ti/ipc/ti-ipc_3.00.00.bb
Normal file
52
recipes-ti/ipc/ti-ipc_3.00.00.bb
Normal file
@@ -0,0 +1,52 @@
|
||||
DESCRIPTION="This support the communication between processors \
|
||||
in a multi-processor environment and communication to peripherals. \
|
||||
This communication includes message passing, streams, and linked lists. \
|
||||
These modules work transparently in both uni-processor and multi-processor \
|
||||
configurations."
|
||||
|
||||
HOMEPAGE="http://processors.wiki.ti.com/index.php/Category:IPC"
|
||||
|
||||
LICENSE = "BSD"
|
||||
LIC_FILES_CHKSUM = "file://products.mak;beginline=2;endline=30;md5=195feadf798bb4165bcb1a23ffd50dbb"
|
||||
SECTION = "console"
|
||||
COMPATIBLE_MACHINE = "keystone"
|
||||
TARGET_PLATFORM = "tci6638"
|
||||
|
||||
PR = "r0"
|
||||
|
||||
BRANCH ?= "master"
|
||||
# The following commit corresponds to 3.00.04.29
|
||||
SRCREV = "12794ea33870b782bffe1fe4398e86e93fb64396"
|
||||
|
||||
SRC_URI = " \
|
||||
git://git.ti.com/ipc/ipcdev.git;protocol=git;branch=${BRANCH} \
|
||||
file://tiipclad-daemon.sh"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
export PLATFORM = "${TARGET_PLATFORM}"
|
||||
|
||||
export PARALLEL_MAKE = ""
|
||||
|
||||
PACKAGES =+ "${PN}-test"
|
||||
|
||||
FILES_${PN}-test = " \
|
||||
${bindir}/NameServerApp \
|
||||
${bindir}/MessageQApp \
|
||||
${bindir}/MessageQMulti \
|
||||
${bindir}/ping_rpmsg"
|
||||
|
||||
DEPENDS += "virtual/kernel"
|
||||
|
||||
EXTRA_OECONF += "KERNEL_INSTALL_DIR=${STAGING_KERNEL_DIR}"
|
||||
inherit autotools
|
||||
|
||||
INITSCRIPT_NAME = "tiipclad-daemon.sh"
|
||||
INITSCRIPT_PARAMS = "defaults 10"
|
||||
|
||||
inherit update-rc.d
|
||||
|
||||
do_install_append() {
|
||||
install -d ${D}${sysconfdir}/init.d/
|
||||
install -c -m 755 ${WORKDIR}/tiipclad-daemon.sh ${D}${sysconfdir}/init.d/${INITSCRIPT_NAME}
|
||||
}
|
||||
Reference in New Issue
Block a user