mirror of
https://git.yoctoproject.org/meta-ti
synced 2026-01-12 01:20:20 +00:00
Compare commits
167 Commits
07.01.00.0
...
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 | ||
|
|
3d32a8e701 | ||
|
|
3e172af061 | ||
|
|
2d22078fa2 | ||
|
|
c7237350bc | ||
|
|
ad434b55d1 | ||
|
|
9743993745 | ||
|
|
b764ba4c14 | ||
|
|
ac5e361a84 | ||
|
|
1738b8b572 | ||
|
|
7d91b3d793 | ||
|
|
802a01fd24 | ||
|
|
67499500f2 | ||
|
|
7923a08761 | ||
|
|
671713a344 | ||
|
|
c7320f2271 | ||
|
|
29ebd45c3d | ||
|
|
8d8b62c137 | ||
|
|
8f881dd965 | ||
|
|
a3932f6c66 | ||
|
|
d6b47b7cd7 | ||
|
|
5ae405999c | ||
|
|
dd58f81f92 | ||
|
|
802c10bc65 | ||
|
|
e0cd3a7e6f | ||
|
|
b4d07f3b7c | ||
|
|
dabd83e96f | ||
|
|
400dc74ceb | ||
|
|
39d7d9de23 | ||
|
|
7e054d1277 | ||
|
|
9f888be5ef | ||
|
|
4aca8bd063 | ||
|
|
b4349f8596 | ||
|
|
f61008a203 | ||
|
|
6d0651e0ac | ||
|
|
084544208a | ||
|
|
d486c82e49 | ||
|
|
fa4872bb1f | ||
|
|
76beabe375 | ||
|
|
07001d9115 | ||
|
|
a46b7207a3 | ||
|
|
db99578a19 | ||
|
|
1e928b703d | ||
|
|
c9a63ed5f4 | ||
|
|
c4b3772061 | ||
|
|
6b9525bd09 | ||
|
|
24edd661d5 | ||
|
|
1723eb0089 | ||
|
|
9e55646453 | ||
|
|
9d38e2e41b | ||
|
|
e8455c323f | ||
|
|
fd9313f1e1 | ||
|
|
edfd76fce4 | ||
|
|
06afc3984d | ||
|
|
9e595df297 | ||
|
|
6c1ab34c88 | ||
|
|
4fb79a828f | ||
|
|
f75224052b | ||
|
|
d2a65d09c8 | ||
|
|
124465369f | ||
|
|
3cd1ddb25e | ||
|
|
a27001ce6d | ||
|
|
c187c2c590 | ||
|
|
ebfbd8ee95 | ||
|
|
e923dfcaf3 | ||
|
|
c517bb7043 | ||
|
|
e2748c6cb2 | ||
|
|
84576bfff1 | ||
|
|
9be75edbe0 | ||
|
|
9bf0bc5611 | ||
|
|
87fe2c4653 | ||
|
|
ae4f09067c | ||
|
|
bbc9ae0c90 | ||
|
|
62b9360fef | ||
|
|
95d34de649 | ||
|
|
e9e944715a | ||
|
|
b90ba5a2db | ||
|
|
2abe4771ea | ||
|
|
c652f49c33 | ||
|
|
89a028b124 | ||
|
|
ee570b6331 | ||
|
|
ec83f7d77a | ||
|
|
acf1d6a980 | ||
|
|
cc1a67b39d | ||
|
|
c8377df0b4 | ||
|
|
f35d7c5849 | ||
|
|
673f6c08c1 | ||
|
|
f815f3aa4c | ||
|
|
988bc01988 | ||
|
|
fc01b1e984 | ||
|
|
23506a1771 | ||
|
|
72a9e98bfc | ||
|
|
1e463c7395 | ||
|
|
c5d939ad13 | ||
|
|
becf98b038 | ||
|
|
f31fba1c2a | ||
|
|
869c1a5de3 | ||
|
|
21f9705c8b | ||
|
|
14671da0be | ||
|
|
a6e3b7466f | ||
|
|
147715e937 | ||
|
|
74019397b8 | ||
|
|
60b90439f7 | ||
|
|
9971090bfc | ||
|
|
e6e536bc27 | ||
|
|
4b299c53e3 | ||
|
|
250f27d11f | ||
|
|
f1192cf401 | ||
|
|
519575bd04 | ||
|
|
5c395d6efb | ||
|
|
6049ce3cc2 | ||
|
|
41a59d395d | ||
|
|
59e12fdc29 | ||
|
|
5b1feb3a2b | ||
|
|
463ad61b83 | ||
|
|
51d77864e0 | ||
|
|
9d102914f9 | ||
|
|
e889ac6dec |
7
README
7
README
@@ -11,12 +11,6 @@ layers: meta
|
||||
branch: master
|
||||
|
||||
|
||||
When not depending on meta-openembedded and not using systemd, you may need to
|
||||
mask few miscellaneous recipes requiring systemd, by adding this to local.conf:
|
||||
|
||||
BBMASK = "meta-ti/recipes-misc"
|
||||
|
||||
|
||||
The base BSP part of meta-ti should work with different OpenEmbedded/Yocto
|
||||
distributions and layer stacks, such as:
|
||||
distro-less (only with OE-Core), with Yocto/Poky, with Angstrom or Arago.
|
||||
@@ -27,4 +21,3 @@ Please follow the recommended setup procedures of your OE distribution.
|
||||
Send pull requests, patches, comments or questions to meta-ti@yoctoproject.org
|
||||
|
||||
Maintainers: Denys Dmytriyenko <denys@ti.com>
|
||||
Koen Kooi <koen@dominion.thruhere.net>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# We have a conf and classes directory, append to BBPATH
|
||||
BBPATH .= ":${LAYERDIR}"
|
||||
BBPATH =. "${LAYERDIR}:"
|
||||
|
||||
# We have a recipes directory, add to BBFILES
|
||||
BBFILES += "${LAYERDIR}/recipes*/*/*.bb ${LAYERDIR}/recipes*/*/*.bbappend"
|
||||
|
||||
35
conf/machine/am437x-evm.conf
Normal file
35
conf/machine/am437x-evm.conf
Normal file
@@ -0,0 +1,35 @@
|
||||
#@TYPE: Machine
|
||||
#@NAME: AM437x EVM
|
||||
#@DESCRIPTION: Machine configuration for the TI AM437x EVM
|
||||
|
||||
require conf/machine/include/ti43x.inc
|
||||
|
||||
# Use built-in LCD by default
|
||||
XSERVER += "xf86-input-tslib"
|
||||
GUI_MACHINE_CLASS = "smallscreen"
|
||||
MACHINE_FEATURES += "touchscreen"
|
||||
|
||||
IMAGE_FSTYPES += "ubi tar.gz"
|
||||
|
||||
SERIAL_CONSOLE = "115200 ttyO0"
|
||||
|
||||
# UBI information. Note that this is board and kernel specific. Changes
|
||||
# in your kernel port may require changes in these variables. For more
|
||||
# details about this board please see
|
||||
# http://processors.wiki.ti.com/index.php/UBIFS_Support
|
||||
|
||||
# do ubiattach /dev/ubi_ctrl -m 11 -O 4096
|
||||
# From dmesg:
|
||||
# UBI: smallest flash I/O unit: 4096
|
||||
# UBI: logical eraseblock size: 253952 bytes
|
||||
# from ubiattach stdout:
|
||||
# UBI device number 0, total 994 LEBs
|
||||
MKUBIFS_ARGS = "-F -m 4096 -e 253952 -c 994"
|
||||
|
||||
# do ubiattach /dev/ubi_ctrl -m 11 -O 4096
|
||||
# from dmesg:
|
||||
# UBI: smallest flash I/O unit: 4096
|
||||
# UBI: physical eraseblock size: 262144 bytes (256 KiB)
|
||||
# UBI: sub-page size: 4096
|
||||
# UBI: VID header offset: 4096 (aligned 4096)
|
||||
UBINIZE_ARGS = "-m 4096 -p 256KiB -s 4096 -O 4096"
|
||||
@@ -6,7 +6,9 @@ require conf/machine/include/omap-a15.inc
|
||||
|
||||
IMAGE_FSTYPES += "ubi tar.gz"
|
||||
|
||||
SERIAL_CONSOLE = "115200 ttyO2"
|
||||
SERIAL_CONSOLE = "115200 ttyO0"
|
||||
|
||||
UBOOT_MACHINE = "dra7xx_evm_config"
|
||||
|
||||
# UBI information. Note that this is board and kernel specific. Changes
|
||||
# in your kernel port may require changes in these variables. For more
|
||||
@@ -29,8 +31,6 @@ MKUBIFS_ARGS = "-F -m 2048 -e 126976 -c 3836"
|
||||
# UBI: VID header offset: 2048 (aligned 2048)
|
||||
UBINIZE_ARGS = "-m 2048 -p 128KiB -s 512 -O 2048"
|
||||
|
||||
UBOOT_MACHINE = "dra7xx_evm_config"
|
||||
|
||||
# Currently removing the sgx machine feature because there is no SGX package
|
||||
# available for omap5
|
||||
MACHINE_FEATURES = "kernel26 apm usbgadget usbhost vfat ext2 screen touchscreen"
|
||||
|
||||
@@ -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,13 +4,13 @@ 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 = "r1"
|
||||
MACHINE_KERNEL_PR = "r3"
|
||||
|
||||
PREFERRED_PROVIDER_virtual/kernel = "linux-ti-staging"
|
||||
PREFERRED_PROVIDER_virtual/bootloader = "u-boot-ti-staging"
|
||||
PREFERRED_PROVIDER_u-boot = "u-boot-ti-staging"
|
||||
|
||||
KERNEL_IMAGETYPE = "uImage"
|
||||
KERNEL_IMAGETYPE = "zImage"
|
||||
|
||||
UBOOT_ARCH = "arm"
|
||||
UBOOT_ENTRYPOINT = "0x80008000"
|
||||
@@ -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,14 +16,14 @@ XSERVER = "xserver-xorg \
|
||||
GUI_MACHINE_CLASS = "bigscreen"
|
||||
|
||||
# Increase this everytime you change something in the kernel
|
||||
MACHINE_KERNEL_PR = "r19"
|
||||
MACHINE_KERNEL_PR = "r21"
|
||||
|
||||
# Default providers, may need to override for specific machines
|
||||
PREFERRED_PROVIDER_virtual/kernel = "linux-ti-staging"
|
||||
PREFERRED_PROVIDER_virtual/bootloader = "u-boot-ti-staging"
|
||||
PREFERRED_PROVIDER_u-boot = "u-boot-ti-staging"
|
||||
|
||||
KERNEL_IMAGETYPE = "uImage"
|
||||
KERNEL_IMAGETYPE = "zImage"
|
||||
|
||||
UBOOT_ARCH = "arm"
|
||||
UBOOT_MACHINE = "am335x_evm_config"
|
||||
@@ -31,6 +31,10 @@ UBOOT_MACHINE = "am335x_evm_config"
|
||||
UBOOT_ENTRYPOINT = "0x80008000"
|
||||
UBOOT_LOADADDRESS = "0x80008000"
|
||||
|
||||
# Use the expected value of the ubifs filesystem's volume name in the kernel
|
||||
# and u-boot.
|
||||
UBI_VOLNAME = "rootfs"
|
||||
|
||||
EXTRA_IMAGEDEPENDS += "u-boot"
|
||||
|
||||
# List common SoC features, may need to add touchscreen for specific machines
|
||||
|
||||
41
conf/machine/include/ti43x.inc
Normal file
41
conf/machine/include/ti43x.inc
Normal file
@@ -0,0 +1,41 @@
|
||||
SOC_FAMILY = "ti43x"
|
||||
require conf/machine/include/soc-family.inc
|
||||
|
||||
require conf/machine/include/tune-cortexa9.inc
|
||||
|
||||
PREFERRED_PROVIDER_virtual/xserver = "xserver-xorg"
|
||||
|
||||
# For built-in LCD, add xf86-input-tslib
|
||||
XSERVER = "xserver-xorg \
|
||||
xf86-input-evdev \
|
||||
xf86-input-mouse \
|
||||
xf86-video-fbdev \
|
||||
xf86-input-keyboard"
|
||||
|
||||
# Default to external video, change to smallscreen for built-in LCD
|
||||
GUI_MACHINE_CLASS = "bigscreen"
|
||||
|
||||
# Increase this everytime you change something in the kernel
|
||||
MACHINE_KERNEL_PR = "r2"
|
||||
|
||||
# Default providers, may need to override for specific machines
|
||||
PREFERRED_PROVIDER_virtual/kernel = "linux-ti-staging"
|
||||
PREFERRED_PROVIDER_virtual/bootloader = "u-boot-ti-staging"
|
||||
PREFERRED_PROVIDER_u-boot = "u-boot-ti-staging"
|
||||
|
||||
KERNEL_IMAGETYPE = "zImage"
|
||||
|
||||
UBOOT_ARCH = "arm"
|
||||
UBOOT_MACHINE = "am43xx_evm_config"
|
||||
|
||||
UBOOT_ENTRYPOINT = "0x80008000"
|
||||
UBOOT_LOADADDRESS = "0x80008000"
|
||||
|
||||
# Use the expected value of the ubifs filesystem's volume name in the kernel
|
||||
# and u-boot.
|
||||
UBI_VOLNAME = "rootfs"
|
||||
|
||||
EXTRA_IMAGEDEPENDS += "u-boot"
|
||||
|
||||
# List common SoC features, may need to add touchscreen for specific machines
|
||||
MACHINE_FEATURES = "kernel26 apm usbgadget usbhost vfat ext2 screen alsa ethernet sgx"
|
||||
@@ -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"
|
||||
23
recipes-bsp/abefw/abefw_1.0.14.bb
Normal file
23
recipes-bsp/abefw/abefw_1.0.14.bb
Normal file
@@ -0,0 +1,23 @@
|
||||
SUMMARY = "Firmware for OMAP4 and OMAP5 ABE"
|
||||
HOMEPAGE = "http://git.ti.com"
|
||||
LICENSE = "BSD | GPLv2"
|
||||
LIC_FILES_CHKSUM = "file://COPYING;md5=923db086ed9463ab3215b24d87e05ec5"
|
||||
|
||||
PACKAGE_ARCH = "${MACHINE_ARCH}"
|
||||
|
||||
COMPATIBLE_MACHINE = "pandaboard|omap5-evm"
|
||||
|
||||
SRC_URI = "git://git.ti.com/glsdk/abefw-omap4plus.git;protocol=git"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
SRCREV = "ceccc0332264e39bdc51e54f80ea7256a3886c58"
|
||||
|
||||
PR = "r0"
|
||||
|
||||
do_install() {
|
||||
mkdir -p ${D}/lib/firmware
|
||||
cp ${S}/firmware/omap4_abe_new ${D}/lib/firmware/
|
||||
}
|
||||
|
||||
FILES_${PN} += "/lib/firmware/omap4_abe_new"
|
||||
@@ -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"
|
||||
PV = "2.0"
|
||||
PR = "r1+gitr${SRCPV}"
|
||||
|
||||
BRANCH = "master"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
SRCREV = "DEV.MCSDK-03.00.00.07"
|
||||
#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
|
||||
@@ -1,3 +1,2 @@
|
||||
THISDIR := "${@os.path.dirname(bb.data.getVar('FILE', d, True))}"
|
||||
FILESPATH =. "${@base_set_filespath(["${THISDIR}/${PN}"], d)}:"
|
||||
|
||||
PRINC := "${@int(PRINC) + 1}"
|
||||
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
|
||||
|
||||
@@ -0,0 +1,81 @@
|
||||
DESCRIPTION = "Kernel drivers for the PowerVR SGX chipset found in the omap3 SoCs (for X11)"
|
||||
LICENSE = "GPLv2"
|
||||
LIC_FILES_CHKSUM = "file://COPYING;md5=ea5743acf520dd81ca172e69f818a3d4"
|
||||
|
||||
TI_BIN_UNPK_CMDS="Y: qY:workdir:Y"
|
||||
require ../../recipes-ti/includes/ti-eula-unpack.inc
|
||||
|
||||
SGXPV = "4_09_00_01"
|
||||
IMGPV = "1.9.2188537"
|
||||
|
||||
inherit module
|
||||
|
||||
MACHINE_KERNEL_PR_append = "d"
|
||||
PR = "${MACHINE_KERNEL_PR}"
|
||||
|
||||
# Select the corresponding hardfp/softfp filename and checksums based on tune flags
|
||||
BINFILE_SOFTFP = "Graphics_SDK_setuplinux_${SGXPV}_minimal_demos.bin"
|
||||
MD5SUM_SOFTFP = "bd35e9d8843aff3a2aca9d41e7db1c7d"
|
||||
SHA256SUM_SOFTFP = "eb37f75ddde4640b09e760fa86e689beb394330ecdf68786188c34f249247647"
|
||||
|
||||
BINFILE_HARDFP = "Graphics_SDK_setuplinux_${SGXPV}_hardfp_minimal_demos.bin"
|
||||
MD5SUM_HARDFP = "c9f656dce062d1ab10afffd4dfb71b67"
|
||||
SHA256SUM_HARDFP = "dbfeba8e1298f139495816334edec1455e6b49b1e11bd1b2aa0a888e5788bb6b"
|
||||
|
||||
BINFILE = "${@base_contains('TUNE_FEATURES', 'callconvention-hard', '${BINFILE_HARDFP}', '${BINFILE_SOFTFP}', d)}"
|
||||
|
||||
SRC_URI = "http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/gfxsdk/${SGXPV}/exports/${BINFILE}"
|
||||
|
||||
SRC_URI[md5sum] := "${@base_contains('TUNE_FEATURES', 'callconvention-hard', '${MD5SUM_HARDFP}', '${MD5SUM_SOFTFP}', d)}"
|
||||
SRC_URI[sha256sum] := "${@base_contains('TUNE_FEATURES', 'callconvention-hard', '${SHA256SUM_HARDFP}', '${SHA256SUM_SOFTFP}', d)}"
|
||||
|
||||
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"
|
||||
|
||||
MODULESLOCATION_omap3 = "dc_omapfb3_linux"
|
||||
MODULESLOCATION_ti814x = "dc_ti81xx_linux"
|
||||
MODULESLOCATION_ti816x = "dc_ti81xx_linux"
|
||||
MODULESLOCATION_ti33x = "dc_ti335x_linux"
|
||||
|
||||
export SUPPORT_XORG ?= "1"
|
||||
|
||||
MAKE_TARGETS = " BUILD=${PVRBUILD} TI_PLATFORM=${TI_PLATFORM} SUPPORT_XORG=${SUPPORT_XORG}"
|
||||
|
||||
do_compile() {
|
||||
export TOOLCHAIN="${TOOLCHAIN_PATH}"
|
||||
export PLAT_CC="${CC}"
|
||||
export PLAT_CPP="${CXX}"
|
||||
export PLAR_AR="${AR}"
|
||||
for kernelver in ${WORKDIR}/../../${PREFERRED_PROVIDER_virtual/kernel}/* ; do
|
||||
cp -f $kernelver/git/drivers/gpu/drm/*.c ${S}/services4/3rdparty/linux_drm/
|
||||
done
|
||||
if [ $(echo -e "${KERNEL_VERSION}\n3.3" | sort --version-sort | head -1) = "3.3" ] ; then
|
||||
cp -f ${S}/services4/3rdparty/linux_drm/Kbuild_3.3 \
|
||||
${S}/services4/3rdparty/linux_drm/Kbuild || true
|
||||
else
|
||||
if [ $(echo -e "${KERNEL_VERSION}\n3.2" | sort --version-sort | head -1) = "3.2" ] ; then
|
||||
cp -f ${S}/services4/3rdparty/linux_drm/Kbuild_3.2 \
|
||||
${S}/services4/3rdparty/linux_drm/Kbuild || true
|
||||
fi
|
||||
fi
|
||||
oe_runmake 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/bufferclass_ti/bufferclass_ti.ko \
|
||||
${D}/lib/modules/${KERNEL_VERSION}/kernel/drivers/gpu/pvr
|
||||
|
||||
cp ${S}/services4/3rdparty/linux_drm/drm.ko ${D}/lib/modules/${KERNEL_VERSION}/kernel/drivers/gpu/pvr
|
||||
}
|
||||
@@ -1,38 +1,38 @@
|
||||
From: Steve Sakoman
|
||||
Subject: omap3-sgx-modules: Fix build for Linux 3.0
|
||||
|
||||
This patch implements the header change from plat/display.h to video/omapdss.h
|
||||
|
||||
Signed-off-by: Steve Sakoman <steve@sakoman.com>
|
||||
|
||||
--- GFX_Linux_KM/services4/3rdparty/dc_omap3430_linux/omaplfb_linux.c-orig 2011-08-01 07:21:45.000000000 -0700
|
||||
+++ GFX_Linux_KM/services4/3rdparty/dc_omap3430_linux/omaplfb_linux.c 2011-08-01 07:29:32.000000000 -0700
|
||||
@@ -47,12 +47,12 @@
|
||||
#if defined (SUPPORT_TI_DSS_FW)
|
||||
#include <asm/io.h>
|
||||
|
||||
-#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,26))
|
||||
-#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,31))
|
||||
+#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,39)))
|
||||
+#include <video/omapdss.h>
|
||||
+#elif (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,31))
|
||||
#include <plat/display.h>
|
||||
-#else
|
||||
+#elif (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,26))
|
||||
#include <mach/display.h>
|
||||
-#endif
|
||||
#else
|
||||
#include <asm/arch-omap/display.h>
|
||||
#endif
|
||||
@@ -64,7 +64,11 @@ extern int omap_dispc_request_irq(unsign
|
||||
extern void omap_dispc_free_irq(unsigned long, void (*)(void *), void *);
|
||||
extern void omap_dispc_set_plane_base(int plane, IMG_UINT32 phys_addr);
|
||||
#else
|
||||
+#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,39))
|
||||
+#include <video/omapdss.h>
|
||||
+#else
|
||||
#include <plat/display.h>
|
||||
+#endif
|
||||
#include <linux/console.h>
|
||||
#include <linux/fb.h>
|
||||
static omap_dispc_isr_t *pOMAPLFBVSyncISRHandle = NULL;
|
||||
From: Steve Sakoman
|
||||
Subject: omap3-sgx-modules: Fix build for Linux 3.0
|
||||
|
||||
This patch implements the header change from plat/display.h to video/omapdss.h
|
||||
|
||||
Signed-off-by: Steve Sakoman <steve at sakoman.com>
|
||||
|
||||
--- GFX_Linux_KM/services4/3rdparty/dc_omap3430_linux/omaplfb_linux.c-orig 2011-08-01 07:21:45.000000000 -0700
|
||||
+++ GFX_Linux_KM/services4/3rdparty/dc_omap3430_linux/omaplfb_linux.c 2011-08-01 07:29:32.000000000 -0700
|
||||
@@ -47,12 +47,12 @@
|
||||
#if defined (SUPPORT_TI_DSS_FW)
|
||||
#include <asm/io.h>
|
||||
|
||||
-#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,26))
|
||||
-#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,31))
|
||||
+#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,39)))
|
||||
+#include <video/omapdss.h>
|
||||
+#elif (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,31))
|
||||
#include <plat/display.h>
|
||||
-#else
|
||||
+#elif (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,26))
|
||||
#include <mach/display.h>
|
||||
-#endif
|
||||
#else
|
||||
#include <asm/arch-omap/display.h>
|
||||
#endif
|
||||
@@ -64,7 +64,11 @@ extern int omap_dispc_request_irq(unsign
|
||||
extern void omap_dispc_free_irq(unsigned long, void (*)(void *), void *);
|
||||
extern void omap_dispc_set_plane_base(int plane, IMG_UINT32 phys_addr);
|
||||
#else
|
||||
+#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,39))
|
||||
+#include <video/omapdss.h>
|
||||
+#else
|
||||
#include <plat/display.h>
|
||||
+#endif
|
||||
#include <linux/console.h>
|
||||
#include <linux/fb.h>
|
||||
static omap_dispc_isr_t *pOMAPLFBVSyncISRHandle = NULL;
|
||||
|
||||
@@ -1,45 +0,0 @@
|
||||
DESCRIPTION = "Kernel drivers for the PowerVR SGX chipset found in the omap3 SoCs"
|
||||
LICENSE = "GPLv2"
|
||||
LIC_FILES_CHKSUM = "file://COPYING;md5=21228a42e27d1d104b31a83f7c9da935"
|
||||
|
||||
TI_BIN_UNPK_CMDS="Y: qY:workdir:Y"
|
||||
require ../../recipes-ti/includes/ti-eula-unpack.inc
|
||||
|
||||
SGXPV = "4_03_00_02"
|
||||
IMGPV = "1.6.16.3977"
|
||||
BINFILE := "Graphics_SDK_setuplinux_${SGXPV}.bin"
|
||||
|
||||
inherit module
|
||||
|
||||
MACHINE_KERNEL_PR_append = "b"
|
||||
PR = "${MACHINE_KERNEL_PR}"
|
||||
|
||||
SRC_URI = "http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/gfxsdk/${SGXPV}/exports/${BINFILE} \
|
||||
file://Compile-fixes-for-38-kernel.patch \
|
||||
file://kernel-30.patch \
|
||||
"
|
||||
SRC_URI[md5sum] = "ff8c1f2b8e4cb42f4ced6a613b081ada"
|
||||
SRC_URI[sha256sum] = "cdb0bd3964e107733d632aa8224e0537b05c1ffac34befc036423458c8d75255"
|
||||
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_ti816x = "ti81xx"
|
||||
|
||||
MODULESLOCATION_omap3 = "dc_omap3430_linux"
|
||||
MODULESLOCATION_ti816x = "dc_ti81xx_linux"
|
||||
|
||||
MAKE_TARGETS = " BUILD=${PVRBUILD} TI_PLATFORM=${TI_PLATFORM}"
|
||||
|
||||
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
|
||||
}
|
||||
@@ -13,6 +13,8 @@ inherit module
|
||||
MACHINE_KERNEL_PR_append = "b"
|
||||
PR = "${MACHINE_KERNEL_PR}"
|
||||
|
||||
DEFAULT_PREFERENCE_omap3 = "99"
|
||||
|
||||
SRC_URI = "http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/gfxsdk/${SGXPV}/exports/Graphics_SDK_setuplinux_${SGXPV}.bin \
|
||||
"
|
||||
SRC_URI[md5sum] = "0e651eaa92bb91760f0b40a17697a7dc"
|
||||
|
||||
@@ -14,8 +14,6 @@ inherit module
|
||||
MACHINE_KERNEL_PR_append = "a"
|
||||
PR = "${MACHINE_KERNEL_PR}"
|
||||
|
||||
DEFAULT_PREFERENCE = "-1"
|
||||
|
||||
SRC_URI = "http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/gfxsdk/${SGXPV}/exports/${BINFILE}"
|
||||
|
||||
SRC_URI[md5sum] = "dd0d994a48ecc4293f272a1fddddf159"
|
||||
|
||||
@@ -14,8 +14,6 @@ inherit module
|
||||
MACHINE_KERNEL_PR_append = "a"
|
||||
PR = "${MACHINE_KERNEL_PR}"
|
||||
|
||||
DEFAULT_PREFERENCE = "-1"
|
||||
|
||||
SRC_URI = "http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/gfxsdk/${SGXPV}/exports/${BINFILE}"
|
||||
|
||||
SRC_URI[md5sum] = "0efa3a38266e6f41f8cc4fad0187f0d6"
|
||||
|
||||
@@ -7,19 +7,29 @@ require ../../recipes-ti/includes/ti-eula-unpack.inc
|
||||
|
||||
SGXPV = "4_09_00_01"
|
||||
IMGPV = "1.9.2188537"
|
||||
BINFILE = "Graphics_SDK_setuplinux_${SGXPV}_minimal_demos.bin"
|
||||
|
||||
inherit module
|
||||
|
||||
MACHINE_KERNEL_PR_append = "a"
|
||||
MACHINE_KERNEL_PR_append = "c"
|
||||
PR = "${MACHINE_KERNEL_PR}"
|
||||
|
||||
DEFAULT_PREFERENCE = "-1"
|
||||
|
||||
# Select the corresponding hardfp/softfp filename and checksums based on tune flags
|
||||
BINFILE_SOFTFP = "Graphics_SDK_setuplinux_${SGXPV}_minimal_demos.bin"
|
||||
MD5SUM_SOFTFP = "bd35e9d8843aff3a2aca9d41e7db1c7d"
|
||||
SHA256SUM_SOFTFP = "eb37f75ddde4640b09e760fa86e689beb394330ecdf68786188c34f249247647"
|
||||
|
||||
BINFILE_HARDFP = "Graphics_SDK_setuplinux_${SGXPV}_hardfp_minimal_demos.bin"
|
||||
MD5SUM_HARDFP = "c9f656dce062d1ab10afffd4dfb71b67"
|
||||
SHA256SUM_HARDFP = "dbfeba8e1298f139495816334edec1455e6b49b1e11bd1b2aa0a888e5788bb6b"
|
||||
|
||||
BINFILE = "${@base_contains('TUNE_FEATURES', 'callconvention-hard', '${BINFILE_HARDFP}', '${BINFILE_SOFTFP}', d)}"
|
||||
|
||||
SRC_URI = "http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/gfxsdk/${SGXPV}/exports/${BINFILE}"
|
||||
|
||||
SRC_URI[md5sum] = "bd35e9d8843aff3a2aca9d41e7db1c7d"
|
||||
SRC_URI[sha256sum] = "eb37f75ddde4640b09e760fa86e689beb394330ecdf68786188c34f249247647"
|
||||
SRC_URI[md5sum] := "${@base_contains('TUNE_FEATURES', 'callconvention-hard', '${MD5SUM_HARDFP}', '${MD5SUM_SOFTFP}', d)}"
|
||||
SRC_URI[sha256sum] := "${@base_contains('TUNE_FEATURES', 'callconvention-hard', '${SHA256SUM_HARDFP}', '${SHA256SUM_SOFTFP}', d)}"
|
||||
|
||||
TI_BIN_UNPK_WDEXT="/Graphics_SDK_${SGXPV}"
|
||||
S = "${WORKDIR}${TI_BIN_UNPK_WDEXT}/GFX_Linux_KM"
|
||||
@@ -39,9 +49,9 @@ MODULESLOCATION_ti814x = "dc_ti81xx_linux"
|
||||
MODULESLOCATION_ti816x = "dc_ti81xx_linux"
|
||||
MODULESLOCATION_ti33x = "dc_ti335x_linux"
|
||||
|
||||
export SUPPORT_XORG ?= "${@base_contains('DISTRO_FEATURES', 'x11', '1', '0', d)}"
|
||||
MAKE_TARGETS = " BUILD=${PVRBUILD} TI_PLATFORM=${TI_PLATFORM} SUPPORT_XORG=0"
|
||||
|
||||
MAKE_TARGETS = " BUILD=${PVRBUILD} TI_PLATFORM=${TI_PLATFORM} SUPPORT_XORG=${SUPPORT_XORG}"
|
||||
MAKE_TARGETS_append_ti33x = " PM_RUNTIME=1"
|
||||
|
||||
do_install() {
|
||||
mkdir -p ${D}/lib/modules/${KERNEL_VERSION}/kernel/drivers/gpu/pvr
|
||||
@@ -49,8 +59,4 @@ do_install() {
|
||||
${S}/services4/3rdparty/${MODULESLOCATION}/omaplfb.ko \
|
||||
${S}/services4/3rdparty/bufferclass_ti/bufferclass_ti.ko \
|
||||
${D}/lib/modules/${KERNEL_VERSION}/kernel/drivers/gpu/pvr
|
||||
|
||||
if [ "${SUPPORT_XORG}" = "1" ]; then
|
||||
cp ${S}/services4/3rdparty/linux_drm/drm.ko ${D}/lib/modules/${KERNEL_VERSION}/kernel/drivers/gpu/pvr
|
||||
fi
|
||||
}
|
||||
|
||||
67
recipes-bsp/powervr-drivers/omap3-sgx-modules_5.00.00.01.bb
Normal file
67
recipes-bsp/powervr-drivers/omap3-sgx-modules_5.00.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_00_00_01"
|
||||
IMGPV = "1.10.2359475"
|
||||
|
||||
inherit module
|
||||
|
||||
MACHINE_KERNEL_PR_append = "a"
|
||||
PR = "${MACHINE_KERNEL_PR}"
|
||||
|
||||
BINFILE_HARDFP = "Graphics_SDK_setuplinux_${SGXPV}_alpha_hardfp_minimal_demos.bin"
|
||||
MD5SUM_HARDFP = "ae6125d7f8a313ea5c02afded893052d"
|
||||
SHA256SUM_HARDFP = "c2782a2f85024741722b936ec9dca66b858ae8561aa71b693f11e12d8c0385e0"
|
||||
|
||||
# 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.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
|
||||
}
|
||||
26
recipes-bsp/powervr-drivers/omapdrm-pvr_1.9.2253347.bb
Normal file
26
recipes-bsp/powervr-drivers/omapdrm-pvr_1.9.2253347.bb
Normal file
@@ -0,0 +1,26 @@
|
||||
DESCRIPTION = "Kernel drivers for the PowerVR SGX chipset found in the omap5 SoCs"
|
||||
HOMEPAGE = "http://git.ti.com"
|
||||
LICENSE = "MIT | GPLv2"
|
||||
LIC_FILES_CHKSUM = "file://README;beginline=13;endline=22;md5=74506d9b8e5edbce66c2747c50fcef12"
|
||||
|
||||
inherit module
|
||||
|
||||
MACHINE_KERNEL_PR_append = "a"
|
||||
PR = "${MACHINE_KERNEL_PR}"
|
||||
|
||||
SRC_URI = "git://git.ti.com/graphics/omap5-sgx-ddk-linux.git;protocol=git"
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
SRCREV = "86a4ffae3458c51f0a58e44b17b7a4fd92d2b8c6"
|
||||
|
||||
EXTRA_OEMAKE += 'KERNELDIR="${STAGING_KERNEL_DIR}"'
|
||||
|
||||
do_compile_prepend() {
|
||||
cd ${S}/eurasiacon/build/linux2/omap5430_linux
|
||||
}
|
||||
|
||||
do_install() {
|
||||
mkdir -p ${D}/lib/modules/${KERNEL_VERSION}/extra/
|
||||
cp ${S}/eurasiacon/binary2_omap5430_linux_release/target/kbuild/omapdrm_pvr.ko \
|
||||
${D}/lib/modules/${KERNEL_VERSION}/extra/
|
||||
}
|
||||
@@ -7,7 +7,7 @@ COMPATIBLE_MACHINE = "omapl138"
|
||||
|
||||
INHIBIT_PACKAGE_STRIP = "1"
|
||||
|
||||
MACHINE_KERNEL_PR_append = "a+svnr${SRCPV}"
|
||||
MACHINE_KERNEL_PR_append = "b+svnr${SRCPV}"
|
||||
PR = "${MACHINE_KERNEL_PR}"
|
||||
|
||||
SRC_URI = "svn://gforge.ti.com/svn/pru_sw/;module=trunk;protocol=https;user=anonymous;pswd=''"
|
||||
@@ -28,5 +28,3 @@ do_install () {
|
||||
install -d ${D}/lib/modules/${KERNEL_VERSION}/kernel/drivers/pru
|
||||
install -m 0755 ${S}/edmautils.ko ${D}/lib/modules/${KERNEL_VERSION}/kernel/drivers/pru/
|
||||
}
|
||||
|
||||
FILES_${PN} = "/lib/modules/${KERNEL_VERSION}/kernel/drivers/pru/edmautils.ko"
|
||||
|
||||
@@ -19,7 +19,7 @@ S = "${WORKDIR}/trunk"
|
||||
|
||||
inherit module
|
||||
|
||||
MACHINE_KERNEL_PR_append = "a+svnr${SRCPV}"
|
||||
MACHINE_KERNEL_PR_append = "b+svnr${SRCPV}"
|
||||
PR = "${MACHINE_KERNEL_PR}"
|
||||
|
||||
EXTRA_OEMAKE += "KERNEL_DIR=${STAGING_KERNEL_DIR}"
|
||||
@@ -32,5 +32,3 @@ do_install () {
|
||||
install -d ${D}/lib/modules/${KERNEL_VERSION}/crypto/ocf/
|
||||
install -m 0755 ${S}/ocf_omap3_cryptok.ko ${D}/lib/modules/${KERNEL_VERSION}/crypto/ocf/
|
||||
}
|
||||
|
||||
FILES_${PN} = "/lib/modules/${KERNEL_VERSION}/crypto/ocf/ocf_omap3_cryptok.ko"
|
||||
|
||||
@@ -1,23 +0,0 @@
|
||||
DESCRIPTION = "AM SysInfo"
|
||||
HOMEPAGE = "https://gforge.ti.com/gf/project/am_sysinfo/"
|
||||
LICENSE = "BSD"
|
||||
LIC_FILES_CHKSUM = "file://mem_util/mem_util.c;beginline=1;endline=37;md5=8aa8e714ab729cfe8177298af8a5a25d"
|
||||
|
||||
SECTION = "system"
|
||||
|
||||
SRCREV = "5"
|
||||
PV = "1.0"
|
||||
PR = "r1+svnr${SRCPV}"
|
||||
|
||||
SRC_URI = "svn://gforge.ti.com/svn/am_sysinfo/;module=trunk;protocol=https;user=anonymous;pswd=''"
|
||||
|
||||
S = "${WORKDIR}/trunk"
|
||||
|
||||
do_compile() {
|
||||
${CC} ${CFLAGS} ${LDFLAGS} -o mem_util/mem_util mem_util/mem_util.c
|
||||
}
|
||||
|
||||
do_install() {
|
||||
install -d ${D}/${bindir}
|
||||
install -m 0755 ${S}/mem_util/mem_util ${D}/${bindir}
|
||||
}
|
||||
6
recipes-bsp/ti/am33x-cm3/init-am43x-cm3
Normal file
6
recipes-bsp/ti/am33x-cm3/init-am43x-cm3
Normal file
@@ -0,0 +1,6 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Load the PM CM3 firmware
|
||||
echo 1 > /sys/devices/44000000.ocp/44d00000.wkup_m3/firmware/am335x-pm-firmware.bin/loading
|
||||
cat /lib/firmware/am335x-pm-firmware.bin > /sys/devices/44000000.ocp/44d00000.wkup_m3/firmware/am335x-pm-firmware.bin/data
|
||||
echo 0 > /sys/devices/44000000.ocp/44d00000.wkup_m3/firmware/am335x-pm-firmware.bin/loading
|
||||
@@ -1,28 +1,42 @@
|
||||
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 = "04.06.00.10"
|
||||
PR = "r2"
|
||||
PV = "05.00.00.03"
|
||||
PR = "r0"
|
||||
|
||||
# SRCREV corresponds to tag "AM335xPSP_04.06.00.10-rc1"
|
||||
SRCREV = "27ca4643e422245a95723de1df0247a00eada45b"
|
||||
# Make package machine specific due to different init scripts
|
||||
PACKAGE_ARCH = "${MACHINE_ARCH}"
|
||||
|
||||
# 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"
|
||||
|
||||
inherit update-rc.d
|
||||
|
||||
UPDATERCPN = "${PN}-initscript"
|
||||
|
||||
RDEPENDS_${PN}-initscript = "am33x-cm3"
|
||||
|
||||
SRC_URI = "git://arago-project.org/git/projects/am33x-cm3.git;protocol=git;branch=${BRANCH} \
|
||||
file://init-am33x-cm3 \
|
||||
file://init-am43x-cm3 \
|
||||
"
|
||||
|
||||
SCRIPT_ti33x = "init-am33x-cm3"
|
||||
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() {
|
||||
@@ -31,8 +45,11 @@ do_install() {
|
||||
|
||||
# Install the init script to load the PM firmware at boot
|
||||
install -d ${D}${sysconfdir}/init.d
|
||||
install -m 0755 ${WORKDIR}/init-am33x-cm3 ${D}${sysconfdir}/init.d/${INITSCRIPT_NAME}
|
||||
install -m 0755 ${WORKDIR}/${SCRIPT} ${D}${sysconfdir}/init.d/${INITSCRIPT_NAME}
|
||||
}
|
||||
|
||||
PACKAGES =+ "${PN}-initscript"
|
||||
|
||||
FILES_${PN} += "${base_libdir}/firmware"
|
||||
|
||||
FILES_${PN}-initscript = "${sysconfdir}/*"
|
||||
|
||||
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"
|
||||
@@ -6,15 +6,14 @@ COMPATIBLE_MACHINE = "ti33x"
|
||||
|
||||
DEFAULT_PREFERENCE = "-1"
|
||||
|
||||
PR = "r5+gitr${SRCPV}"
|
||||
PR = "r6+gitr${SRCPV}"
|
||||
|
||||
SRC_URI = "git://git.ti.com/ti-u-boot/ti-u-boot.git;protocol=git;branch=${BRANCH}"
|
||||
|
||||
# This version of u-boot is meant for 3.2 kernel which doesn't support device tree.
|
||||
BRANCH = "ti-u-boot-2013.01.01-amsdk-05.07.00.00"
|
||||
BRANCH = "ti-u-boot-2013.01.01-amsdk-06.00.00.00"
|
||||
|
||||
# Commit corresponds to tag "v2013.01.01_amsdk-05.07.00.00"
|
||||
SRCREV = "8eb15a787c558fee98b0fa2a66ff0849c732edcc"
|
||||
SRCREV = "540aa6fbb0c9274bda598f7e8819ed28259cad6b"
|
||||
|
||||
# Set the name of the SPL that will built so that it is also packaged with u-boot.
|
||||
SPL_BINARY = "MLO"
|
||||
|
||||
@@ -6,9 +6,11 @@ COMPATIBLE_MACHINE = "omap3"
|
||||
|
||||
DEFAULT_PREFERENCE = "-1"
|
||||
|
||||
PR = "r0+gitr${SRCPV}"
|
||||
PR = "r1+gitr${SRCPV}"
|
||||
|
||||
SRC_URI = "git://arago-project.org/git/projects/u-boot-am33x.git;protocol=git;branch=${BRANCH}"
|
||||
SRC_URI = "git://arago-project.org/git/projects/u-boot-am33x.git;protocol=git;branch=${BRANCH} \
|
||||
file://0001-armv7-Unaligned-access-fix.patch \
|
||||
"
|
||||
|
||||
BRANCH = "AM335XPSP_04.06.00.08"
|
||||
|
||||
|
||||
@@ -6,6 +6,8 @@ COMPATIBLE_MACHINE = "am37x-evm|beagleboard"
|
||||
|
||||
BRANCH ?= "master"
|
||||
|
||||
PR = "r1+gitr${SRCPV}"
|
||||
|
||||
# v2012.04.01
|
||||
SRCREV = "415d386877df49eb051b85ef74fa59a16dc17c7d"
|
||||
|
||||
@@ -33,6 +35,7 @@ SRC_URI += "file://0001-omap3_beagle-add-usbethaddr-setting-to-enable-networ.pat
|
||||
file://0002-omap3evm-Make-the-board-start-at-800MHz.patch \
|
||||
file://0003-beagleboard-Make-xM-rev-C-go-to-800MHz.patch \
|
||||
file://0001-ARM-omap3-Set-SPL-stack-size-to-8KB-image-to-54KB.patch \
|
||||
file://0001-armv7-Unaligned-access-fix.patch \
|
||||
"
|
||||
|
||||
SPL_BINARY = "MLO"
|
||||
|
||||
16
recipes-bsp/u-boot/u-boot-glsdk_2013.01.01.bb
Normal file
16
recipes-bsp/u-boot/u-boot-glsdk_2013.01.01.bb
Normal file
@@ -0,0 +1,16 @@
|
||||
require u-boot-ti.inc
|
||||
|
||||
DESCRIPTION = "u-boot bootloader for TI devices supported by the GLSDK product"
|
||||
|
||||
PR = "r1+gitr${SRCPV}"
|
||||
|
||||
DEFAULT_PREFERENCE = "-1"
|
||||
|
||||
SRC_URI = "git://git.omapzoom.org/repo/u-boot.git;protocol=git;branch=${BRANCH}"
|
||||
|
||||
BRANCH ?= "p-ti-u-boot-2013.04"
|
||||
|
||||
SRCREV = "76447484441a4b8e00840a2bde74e66dbac9e631"
|
||||
|
||||
SPL_BINARY = "MLO"
|
||||
SPL_UART_BINARY = "u-boot-spl.bin"
|
||||
@@ -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}
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@ require u-boot-ti.inc
|
||||
|
||||
DESCRIPTION = "u-boot bootloader for TI devices"
|
||||
|
||||
PR = "r4+gitr${SRCPV}"
|
||||
PR = "r5+gitr${SRCPV}"
|
||||
|
||||
SRC_URI = "git://git.ti.com/ti-u-boot/ti-u-boot.git;protocol=git;branch=${BRANCH}"
|
||||
|
||||
@@ -12,3 +12,4 @@ BRANCH ?= "ti-u-boot-2013.01.01"
|
||||
SRCREV = "7552b4c906b0a50fbc5225dc43ed0192618e9d5d"
|
||||
|
||||
SPL_BINARY = "MLO"
|
||||
SPL_UART_BINARY = "u-boot-spl.bin"
|
||||
|
||||
18
recipes-bsp/u-boot/u-boot-ti-staging_2013.10.bb
Normal file
18
recipes-bsp/u-boot/u-boot-ti-staging_2013.10.bb
Normal file
@@ -0,0 +1,18 @@
|
||||
require u-boot-ti.inc
|
||||
|
||||
DESCRIPTION = "u-boot bootloader for TI devices"
|
||||
|
||||
LIC_FILES_CHKSUM = "file://Licenses/README;md5=025bf9f768cbcb1a165dbe1a110babfb"
|
||||
|
||||
PV = "2013.10"
|
||||
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 tag ti2013.12.01
|
||||
SRCREV = "78d8ebd4a0214b72a125f5b98c5ed2f9a3e5e783"
|
||||
|
||||
SPL_BINARY = "MLO"
|
||||
SPL_UART_BINARY = "u-boot-spl.bin"
|
||||
@@ -15,3 +15,27 @@ PKG_${PN}-dbg = "u-boot-dbg"
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
UBOOT_SUFFIX = "img"
|
||||
|
||||
# SPL (Second Program Loader) to be loaded over UART
|
||||
SPL_UART_BINARY ?= ""
|
||||
SPL_UART_IMAGE ?= "${SPL_UART_BINARY}-${MACHINE}-${PV}-${PR}"
|
||||
SPL_UART_SYMLINK ?= "${SPL_UART_BINARY}-${MACHINE}"
|
||||
|
||||
do_install_append () {
|
||||
if [ "x${SPL_UART_BINARY}" != "x" ]
|
||||
then
|
||||
install ${S}/spl/${SPL_UART_BINARY} ${D}/boot/${SPL_UART_IMAGE}
|
||||
ln -sf ${SPL_UART_IMAGE} ${D}/boot/${SPL_UART_BINARY}
|
||||
fi
|
||||
}
|
||||
|
||||
do_deploy_append () {
|
||||
cd ${DEPLOYDIR}
|
||||
if [ "x${SPL_UART_BINARY}" != "x" ]
|
||||
then
|
||||
install ${S}/spl/${SPL_UART_BINARY} ${DEPLOYDIR}/${SPL_UART_IMAGE}
|
||||
rm -f ${DEPLOYDIR}/${SPL_UART_BINARY} ${DEPLOYDIR}/${SPL_UART_SYMLINK}
|
||||
ln -sf ${SPL_UART_IMAGE} ${DEPLOYDIR}/${SPL_UART_BINARY}
|
||||
ln -sf ${SPL_UART_IMAGE} ${DEPLOYDIR}/${SPL_UART_SYMLINK}
|
||||
fi
|
||||
}
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
From 40f1e7db785f477a2aa145a3b47bd498c48ad52d Mon Sep 17 00:00:00 2001
|
||||
From: Steve Kipisz <s-kipisz2@ti.com>
|
||||
Date: Fri, 14 Jun 2013 05:16:52 -0500
|
||||
Subject: [PATCH] armv7:Unaligned access fix
|
||||
|
||||
This fixes an unaligned access data abort introduced when using gcc 4.7
|
||||
or higher. The Linaro toolchain uses gcc 4.7.3. This is documented in u-boot
|
||||
doc/README.arm-unaligned-accesses.
|
||||
|
||||
Signed-off-by: Steve Kipisz <s-kipisz2@ti.com>
|
||||
---
|
||||
arch/arm/cpu/armv7/config.mk | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/arch/arm/cpu/armv7/config.mk b/arch/arm/cpu/armv7/config.mk
|
||||
index 9c3e2f3..9736da8 100644
|
||||
--- a/arch/arm/cpu/armv7/config.mk
|
||||
+++ b/arch/arm/cpu/armv7/config.mk
|
||||
@@ -20,7 +20,7 @@
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||
# MA 02111-1307 USA
|
||||
#
|
||||
-PLATFORM_RELFLAGS += -fno-common -ffixed-r8 -msoft-float
|
||||
+PLATFORM_RELFLAGS += -fno-common -ffixed-r8 -msoft-float -mno-unaligned-access
|
||||
|
||||
# If armv7-a is not supported by GCC fall-back to armv5, which is
|
||||
# supported by more tool-chains
|
||||
--
|
||||
1.7.9.5
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
DESCRIPTION = "Extended task to get System Test specific apps"
|
||||
LICENSE = "MIT"
|
||||
LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=3f40d7994397109285ec7b81fdeb3b58"
|
||||
PR = "r1"
|
||||
|
||||
inherit allarch packagegroup
|
||||
inherit packagegroup
|
||||
|
||||
TEST = "\
|
||||
bonnie++ \
|
||||
@@ -11,6 +11,9 @@ TEST = "\
|
||||
iperf \
|
||||
lmbench \
|
||||
rt-tests \
|
||||
evtest \
|
||||
bc \
|
||||
memtester \
|
||||
"
|
||||
|
||||
TI_TEST = "\
|
||||
@@ -21,4 +24,3 @@ RDEPENDS_${PN} = "\
|
||||
${TEST} \
|
||||
${TI_TEST} \
|
||||
"
|
||||
|
||||
46
recipes-graphics/drm/libdrm-2.4.41/installtests-ti.patch
Normal file
46
recipes-graphics/drm/libdrm-2.4.41/installtests-ti.patch
Normal file
@@ -0,0 +1,46 @@
|
||||
tests: also install tests app (adjusted for TI version)
|
||||
|
||||
Upstream-Status: Inappropriate [configuration]
|
||||
|
||||
Signed-off-by: Denys Dmytriyenko <denys@ti.com>
|
||||
|
||||
diff -uNr git-orig/tests/Makefile.am git/tests/Makefile.am
|
||||
--- git-orig/tests/Makefile.am 2013-08-10 16:26:30.000000000 -0400
|
||||
+++ git/tests/Makefile.am 2013-08-10 16:28:53.753855225 -0400
|
||||
@@ -6,10 +6,11 @@
|
||||
|
||||
LDADD = $(top_builddir)/libdrm.la
|
||||
|
||||
-check_PROGRAMS = \
|
||||
+bin_PROGRAMS = \
|
||||
dristat \
|
||||
drmstat
|
||||
|
||||
+check_PROGRAMS =
|
||||
dristat_LDADD = $(CLOCK_LIB)
|
||||
|
||||
SUBDIRS = modeprint
|
||||
diff -uNr git-orig/tests/modeprint/Makefile.am git/tests/modeprint/Makefile.am
|
||||
--- git-orig/tests/modeprint/Makefile.am 2013-08-10 16:26:30.000000000 -0400
|
||||
+++ git/tests/modeprint/Makefile.am 2013-08-10 16:28:53.753855225 -0400
|
||||
@@ -2,7 +2,7 @@
|
||||
-I$(top_srcdir)/include/drm \
|
||||
-I$(top_srcdir)
|
||||
|
||||
-noinst_PROGRAMS = \
|
||||
+bin_PROGRAMS = \
|
||||
modeprint
|
||||
|
||||
modeprint_SOURCES = \
|
||||
diff -uNr git-orig/tests/modetest/Makefile.am git/tests/modetest/Makefile.am
|
||||
--- git-orig/tests/modetest/Makefile.am 2013-08-10 16:26:30.000000000 -0400
|
||||
+++ git/tests/modetest/Makefile.am 2013-08-10 16:28:53.753855225 -0400
|
||||
@@ -3,7 +3,7 @@
|
||||
-I$(top_srcdir)/libkms/ \
|
||||
-I$(top_srcdir)
|
||||
|
||||
-noinst_PROGRAMS = \
|
||||
+bin_PROGRAMS = \
|
||||
modetest
|
||||
|
||||
modetest_SOURCES = \
|
||||
20
recipes-graphics/drm/libdrm_2.4.41.bb
Normal file
20
recipes-graphics/drm/libdrm_2.4.41.bb
Normal file
@@ -0,0 +1,20 @@
|
||||
require recipes-graphics/drm/libdrm.inc
|
||||
|
||||
FILESEXTRAPATHS_append := ":${COREBASE}/meta/recipes-graphics/drm/libdrm"
|
||||
|
||||
COMPATIBLE_MACHINE = "omap-a15"
|
||||
|
||||
DEFAULT_PREFERENCE = "-1"
|
||||
|
||||
EXTRA_OECONF += "--enable-omap-experimental-api --enable-kms"
|
||||
|
||||
SRC_URI = "git://git.ti.com/glsdk/libdrm.git;protocol=git"
|
||||
SRCREV = "3cb5405084111193cedb8796d259b56560b088f0"
|
||||
|
||||
SRC_URI += "file://installtests-ti.patch \
|
||||
file://GNU_SOURCE_definition.patch \
|
||||
"
|
||||
|
||||
PR = "${INC_PR}.1"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
134
recipes-graphics/libgles/libgles-omap3-5.00.00.01/rc.pvr
Executable file
134
recipes-graphics/libgles/libgles-omap3-5.00.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.00.00.01/rc_dri.pvr
Executable file
145
recipes-graphics/libgles/libgles-omap3-5.00.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.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
|
||||
342
recipes-graphics/libgles/libgles-omap3-no-x.inc
Normal file
342
recipes-graphics/libgles/libgles-omap3-no-x.inc
Normal file
@@ -0,0 +1,342 @@
|
||||
DESCRIPTION = "libGLES for the omap3"
|
||||
LICENSE = "proprietary-binary"
|
||||
# 'TSPA.txt' might not be the best file to md5sum
|
||||
LIC_FILES_CHKSUM = "file://TSPA.txt;md5=c0d5d9c1e38b41677144c4e24d6ddee1"
|
||||
|
||||
INC_PR = "r38"
|
||||
|
||||
EXCLUDE_FROM_WORLD = "1"
|
||||
|
||||
COMPATIBLE_MACHINE = "(omap3|ti814x|ti816x|ti33x|ti43x)"
|
||||
|
||||
PVR_INIT ?= "pvrsrvinit"
|
||||
|
||||
PROVIDES += "virtual/egl virtual/libgles1 virtual/libgles2"
|
||||
|
||||
RREPLACES_${PN} = "libegl libgles1 libgles2"
|
||||
RREPLACES_${PN}-dev = "libegl-dev libgles1-dev libgles2-dev"
|
||||
RREPLACES_${PN}-dbg = "libegl-dbg libgles1-dbg libgles2-dbg"
|
||||
|
||||
RPROVIDES_${PN} = "libegl libgles1 libgles2"
|
||||
RPROVIDES_${PN}-dev = "libegl-dev libgles1-dev libgles2-dev"
|
||||
RPROVIDES_${PN}-dbg = "libegl-dbg libgles1-dbg libgles2-dbg"
|
||||
|
||||
RCONFLICTS_${PN} = "libegl libgles1 libgles2"
|
||||
RCONFLICTS_${PN}-dev = "libegl-dev libgles1-dev libgles2-dev"
|
||||
RCONFLICTS_${PN}-dbg = "libegl-dbg libgles1-dbg libgles2-dbg"
|
||||
|
||||
SRC_URI = "http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/gfxsdk/${SGXPV}/exports/${BINFILE} \
|
||||
file://cputype \
|
||||
file://rc.pvr \
|
||||
file://99-bufferclass.rules \
|
||||
"
|
||||
|
||||
S = "${WORKDIR}/OMAP35x_Graphics_SDK_${SGXPV}"
|
||||
|
||||
# Logic to unpack installjammer file
|
||||
TI_BIN_UNPK_CMDS="Y: qY:workdir:Y"
|
||||
require ../../recipes-ti/includes/ti-eula-unpack.inc
|
||||
|
||||
export BINLOCATION ?= "${S}/gfx_rel"
|
||||
export ES3LOCATION ?= "${S}/gfx_rel_es3.x"
|
||||
export ES5LOCATION ?= "${S}/gfx_rel_es5.x"
|
||||
export ES6LOCATION ?= "${S}/gfx_rel_es6.x"
|
||||
export ES8LOCATION ?= "${S}/gfx_rel_es8.x"
|
||||
export ES9LOCATION ?= "${S}/gfx_rel_es9.x"
|
||||
|
||||
LIBGLESWINDOWSYSTEM ?= "libpvrPVR2D_FRONTWSEGL.so.1"
|
||||
|
||||
do_configure() {
|
||||
# Attempt to fix up the worst offenders for file permissions
|
||||
for i in $(find ${S} -name "*.h") $(find ${S} -name "*.c") $(find ${S} -name "Make*") ; do
|
||||
chmod 0644 $i
|
||||
done
|
||||
|
||||
# Attempt to create proper library softlinks
|
||||
for sofile in $(find ${S} -name "lib*Open*.so") $(find ${S} -name "lib*srv*.so") $(find ${S} -name "lib*gl*.so") $(find ${S} -name "libpvr*.so") $(find ${S} -name "lib*GL*.so"); do
|
||||
if [ "$(readlink -n ${sofile})" = "" ] ; then
|
||||
mv $sofile ${sofile}.${IMGPV}
|
||||
ln -sf $(basename ${sofile}.${IMGPV}) ${sofile}
|
||||
ln -sf $(basename ${sofile}.${IMGPV}) ${sofile}$(echo ${IMGPV} | awk -F. '{print "." $1}')
|
||||
ln -sf $(basename ${sofile}.${IMGPV}) ${sofile}$(echo ${IMGPV} | awk -F. '{print "." $1 "." $2}')
|
||||
fi
|
||||
done
|
||||
|
||||
# Due to recursive make PLAT_* isn't always passed down correctly, so use sed to fix those
|
||||
for mak in $(find ${S} -name "*.mak") ; do
|
||||
sed -i -e s:arm-none-linux-gnueabi-:${TARGET_PREFIX}:g $mak
|
||||
done
|
||||
|
||||
# clear out old stuff
|
||||
find Binaries/ | xargs rm -f || true
|
||||
}
|
||||
|
||||
# Force in GNU_HASH and paths to libs
|
||||
TARGET_CC_ARCH += " ${TARGET_LINK_HASH_STYLE} -Wl,-rpath-link,${BINLOCATION} -L${BINLOCATION} \
|
||||
-L${STAGING_DIR_TARGET}${libdir} -Wl,-rpath-link,${STAGING_DIR_TARGET}${libdir}"
|
||||
PARALLEL_MAKE = ""
|
||||
|
||||
PLATFORM ?= "LinuxOMAP3"
|
||||
|
||||
do_compile() {
|
||||
export TOOLCHAIN="${TOOLCHAIN_PATH}"
|
||||
export PLAT_CC="${CC}"
|
||||
export PLAT_CPP="${CXX}"
|
||||
export PLAR_AR="${AR}"
|
||||
|
||||
mkdir -p ${S}/demos/raw
|
||||
mkdir -p ${S}/trainingcourses/raw
|
||||
|
||||
# Rebuild demos
|
||||
for demo in ${S}/GFX_Linux_SDK/OGLES/SDKPackage/Demos/* ; do
|
||||
cd $demo/OGLES/Build/LinuxGeneric
|
||||
oe_runmake Common=1 PLATFORM=${PLATFORM} X11BUILD=0
|
||||
rm $demo/OGLES/Build/${PLATFORM}/Release*/*.o
|
||||
|
||||
install -m 0755 $demo/OGLES/Build/${PLATFORM}/ReleaseRaw/* ${S}/demos/raw || true
|
||||
done
|
||||
|
||||
for demo in ${S}/GFX_Linux_SDK/OGLES2/SDKPackage/Demos/* ; do
|
||||
cd $demo/OGLES2/Build/LinuxGeneric
|
||||
oe_runmake Common=1 PLATFORM=${PLATFORM} X11BUILD=0
|
||||
rm -f $demo/OGLES2/Build/${PLATFORM}/Release*/*.o
|
||||
|
||||
install -m 0755 $demo/OGLES2/Build/${PLATFORM}/ReleaseRaw/* ${S}/demos/raw || true
|
||||
done
|
||||
|
||||
find ${S} -name "*_org" -delete
|
||||
|
||||
# Build OGLES2 Trainingcourses
|
||||
for training in ${S}/GFX_Linux_SDK/OGLES2/SDKPackage/TrainingCourse/* ; do
|
||||
if [ -e $training/OGLES2/Build/LinuxGeneric/Makefile ] ; then
|
||||
cd $training/OGLES2/Build/LinuxGeneric
|
||||
fi
|
||||
|
||||
if [ -e $training/OGLES2/Build/${PLATFORM}/Makefile ] ; then
|
||||
cd $training/OGLES2/Build/${PLATFORM}
|
||||
fi
|
||||
|
||||
oe_runmake Common=1 PLATFORM=${PLATFORM} X11BUILD=0
|
||||
rm -f $training/OGLES2/Build/${PLATFORM}/Release*/*.o
|
||||
|
||||
install -m 0755 $training/OGLES2/Build/${PLATFORM}/ReleaseRaw/* ${S}/trainingcourses/raw || true
|
||||
done
|
||||
|
||||
}
|
||||
|
||||
do_install () {
|
||||
install -d ${D}${libdir}
|
||||
cp -pPR ${BINLOCATION}/*.so* ${D}${libdir}
|
||||
rm ${D}${libdir}/libpvrPVR2D_DRIWSEGL.so*
|
||||
rm ${D}${libdir}/libsrv_um_dri.so*
|
||||
rm ${D}${libdir}/pvr_drv.so*
|
||||
|
||||
install -m 0644 ${BINLOCATION}/*.a ${D}${libdir}
|
||||
|
||||
install -d ${D}${bindir}/
|
||||
install -m 0755 ${WORKDIR}/cputype ${D}${bindir}/
|
||||
|
||||
install -m 0755 ${BINLOCATION}/*_test ${D}${bindir}/
|
||||
install -m 0755 ${BINLOCATION}/gl* ${D}${bindir}/
|
||||
install -m 0755 ${BINLOCATION}/${PVR_INIT} ${D}${bindir}/
|
||||
|
||||
install -d ${D}${includedir}
|
||||
cp -pPR ${S}/GFX_Linux_KM/include4 ${D}${includedir}/
|
||||
cp -pPR ${S}/GFX_Linux_KM/services4 ${D}${includedir}/
|
||||
|
||||
cp -pPr ${S}/include/pvr2d/*.h ${D}${includedir}
|
||||
cp -pPr ${S}/include/OGLES2/* ${D}${includedir}/
|
||||
cp -pPr ${S}/include/wsegl/*.h ${D}${includedir}/
|
||||
|
||||
install -d ${D}${sysconfdir}/init.d/
|
||||
cp -pP ${WORKDIR}/rc.pvr ${D}${sysconfdir}/init.d/pvr-init
|
||||
chmod +x ${D}${sysconfdir}/init.d/pvr-init
|
||||
|
||||
install -d ${D}${sysconfdir}
|
||||
echo "[default]" > ${D}${sysconfdir}/powervr.ini
|
||||
echo "WindowSystem=${LIBGLESWINDOWSYSTEM}" >> ${D}${sysconfdir}/powervr.ini
|
||||
|
||||
#Create different folders for ease of installing into different platforms with different display drivers/ SGX core
|
||||
|
||||
install -d ${D}${libdir}/ES9.0
|
||||
install -d ${D}${libdir}/ES8.0
|
||||
install -d ${D}${libdir}/ES6.0
|
||||
install -d ${D}${libdir}/ES5.0
|
||||
install -d ${D}${libdir}/ES3.0
|
||||
|
||||
install -d ${D}${bindir}/ES9.0
|
||||
install -d ${D}${bindir}/ES8.0
|
||||
install -d ${D}${bindir}/ES6.0
|
||||
install -d ${D}${bindir}/ES5.0
|
||||
install -d ${D}${bindir}/ES3.0
|
||||
|
||||
shared_prog="eglinfo pvr2d_test ${PVR_INIT} services_test sgx_blit_test sgx_clipblit_test sgx_flip_test sgx_init_test sgx_render_flip_test"
|
||||
raw_prog="gles1test1 gles2test1"
|
||||
|
||||
for esrev in 3 5 6 8 9 ; do
|
||||
ESLOCATION=$(eval echo $(echo \$\{ES${esrev}LOCATION\}))
|
||||
if [ -e ${ESLOCATION} ] ; then
|
||||
cp -pPR ${ESLOCATION}/lib*${IMGPV} ${ESLOCATION}/pvr_drv.so ${ESLOCATION}/*.a ${D}${libdir}/ES${esrev}.0/
|
||||
for esprog in $shared_prog $raw_prog ; do
|
||||
install -m 0755 ${ESLOCATION}/$esprog ${D}${bindir}/ES${esrev}.0/ 2>/dev/null || true
|
||||
done
|
||||
fi
|
||||
done
|
||||
|
||||
rm ${D}${bindir}/ES*/*.h ${D}${bindir}/ES*/pdsasm ${D}${bindir}/pdsasm -f || true
|
||||
|
||||
install -d ${D}${bindir}/SGX/demos/Raw/
|
||||
install -m 0755 ${S}/demos/raw/* ${D}${bindir}/SGX/demos/Raw/
|
||||
install -d ${D}${bindir}/SGX/trainingcourses/Raw 2>/dev/null || true
|
||||
install -m 0755 ${S}/trainingcourses/raw/* ${D}${bindir}/SGX/trainingcourses/Raw/ 2>/dev/null || true
|
||||
|
||||
|
||||
# Delete objects and linker scripts hidden between the headers
|
||||
find ${D} -name "*.o" -delete
|
||||
find ${D} -name "*.o.cmd" -delete
|
||||
|
||||
install -d ${D}${sysconfdir}/udev/rules.d
|
||||
install -m 0644 ${WORKDIR}/99-bufferclass.rules ${D}${sysconfdir}/udev/rules.d/
|
||||
|
||||
}
|
||||
|
||||
PACKAGES =+ "${PN}-rawdemos ${PN}-rawtrainingcourses ${PN}-tests"
|
||||
# Package the base libraries per silicon revision
|
||||
PACKAGES =+ "${PN}-es3 ${PN}-es5 ${PN}-es6 ${PN}-es8 ${PN}-es9"
|
||||
RRECOMMENDS_${PN} += "${PN}-es3 ${PN}-es5 ${PN}-es6 ${PN}-es8 ${PN}-es9"
|
||||
FILES_${PN}-es3 = "${libdir}/ES3*/* ${bindir}/ES3*/*"
|
||||
FILES_${PN}-es5 = "${libdir}/ES5*/* ${bindir}/ES5*/*"
|
||||
FILES_${PN}-es6 = "${libdir}/ES6*/* ${bindir}/ES6*/*"
|
||||
FILES_${PN}-es8 = "${libdir}/ES8*/* ${bindir}/ES8*/*"
|
||||
FILES_${PN}-es9 = "${libdir}/ES9*/* ${bindir}/ES9*/*"
|
||||
|
||||
# Stop shlib code from picking a subpackage
|
||||
PRIVATE_LIBS_${PN}-es3 = "libGLESv2.so libIMGegl.so libsrv_um.so libpvr2d.so libsrv_init.so libEGL.so libsrv_um_dri.so libglslcompiler.so libGLES_CM.so"
|
||||
PRIVATE_LIBS_${PN}-es5 = "libGLESv2.so libIMGegl.so libsrv_um.so libpvr2d.so libsrv_init.so libEGL.so libsrv_um_dri.so libglslcompiler.so libGLES_CM.so"
|
||||
PRIVATE_LIBS_${PN}-es6 = "libGLESv2.so libIMGegl.so libsrv_um.so libpvr2d.so libsrv_init.so libEGL.so libsrv_um_dri.so libglslcompiler.so libGLES_CM.so"
|
||||
PRIVATE_LIBS_${PN}-es8 = "libGLESv2.so libIMGegl.so libsrv_um.so libpvr2d.so libsrv_init.so libEGL.so libsrv_um_dri.so libglslcompiler.so libGLES_CM.so"
|
||||
PRIVATE_LIBS_${PN}-es9 = "libGLESv2.so libIMGegl.so libsrv_um.so libpvr2d.so libsrv_init.so libEGL.so libsrv_um_dri.so libglslcompiler.so libGLES_CM.so"
|
||||
|
||||
|
||||
RPROVIDES_${PN} += "libGLESv2.so libEGL.so libGLES_CM.so libpvr2d.so libIMGegl.so libsrv_init.so libsrv_um.so libsrv_um_dri.so libglslcompiler.so"
|
||||
|
||||
PACKAGES =+ "${PN}-blitwsegl ${PN}-flipwsegl ${PN}-frontwsegl ${PN}-linuxfbwsegl"
|
||||
FILES_${PN}-blitwsegl = "${libdir}/libpvrPVR2D_BLITWSEGL.so.*"
|
||||
FILES_${PN}-flipwsegl = "${libdir}/libpvrPVR2D_FLIPWSEGL.so.*"
|
||||
FILES_${PN}-frontwsegl = "${libdir}/libpvrPVR2D_FRONTWSEGL.so.*"
|
||||
FILES_${PN}-linuxfbwsegl = "${libdir}/libpvrPVR2D_LINUXFBWSEGL.so.*"
|
||||
|
||||
PACKAGES =+ "${PN}-blitwsegl-es3 ${PN}-blitwsegl-es5 ${PN}-blitwsegl-es6 ${PN}-blitwsegl-es8 ${PN}-blitwsegl-es9 ${PN}-flipwsegl-es3 ${PN}-flipwsegl-es5 ${PN}-flipwsegl-es6 ${PN}-flipwsegl-es8 ${PN}-flipwsegl-es9 ${PN}-frontwsegl-es3 ${PN}-frontwsegl-es5 ${PN}-frontwsegl-es6 ${PN}-frontwsegl-es8 ${PN}-frontwsegl-es9 ${PN}-linuxfbwsegl-es3 ${PN}-linuxfbwsegl-es5 ${PN}-linuxfbwsegl-es6 ${PN}-linuxfbwsegl-es8 ${PN}-linuxfbwsegl-es9"
|
||||
|
||||
FILES_${PN}-blitwsegl-es3 = "${libdir}/ES3*/libpvrPVR2D_BLITWSEGL.so.*"
|
||||
FILES_${PN}-blitwsegl-es5 = "${libdir}/ES5*/libpvrPVR2D_BLITWSEGL.so.*"
|
||||
FILES_${PN}-blitwsegl-es6 = "${libdir}/ES6*/libpvrPVR2D_BLITWSEGL.so.*"
|
||||
FILES_${PN}-blitwsegl-es8 = "${libdir}/ES8*/libpvrPVR2D_BLITWSEGL.so.*"
|
||||
FILES_${PN}-blitwsegl-es9 = "${libdir}/ES9*/libpvrPVR2D_BLITWSEGL.so.*"
|
||||
RRECOMMENDS_${PN}-blitwsegl = " ${PN}-blitwsegl-es3 ${PN}-blitwsegl-es5 ${PN}-blitwsegl-es6 ${PN}-blitwsegl-es8 ${PN}-blitwsegl-es9"
|
||||
|
||||
FILES_${PN}-flipwsegl-es3 = "${libdir}/ES3*/libpvrPVR2D_FLIPWSEGL.so.*"
|
||||
FILES_${PN}-flipwsegl-es5 = "${libdir}/ES5*/libpvrPVR2D_FLIPWSEGL.so.*"
|
||||
FILES_${PN}-flipwsegl-es6 = "${libdir}/ES6*/libpvrPVR2D_FLIPWSEGL.so.*"
|
||||
FILES_${PN}-flipwsegl-es8 = "${libdir}/ES8*/libpvrPVR2D_FLIPWSEGL.so.*"
|
||||
FILES_${PN}-flipwsegl-es9 = "${libdir}/ES9*/libpvrPVR2D_FLIPWSEGL.so.*"
|
||||
RRECOMMENDS_${PN}-flipwsegl = " ${PN}-flipwsegl-es3 ${PN}-flipwsegl-es5 ${PN}-flipwsegl-es6 ${PN}-flipwsegl-es8 ${PN}-flipwsegl-es9"
|
||||
|
||||
FILES_${PN}-frontwsegl-es3 = "${libdir}/ES3*/libpvrPVR2D_FRONTWSEGL.so.*"
|
||||
FILES_${PN}-frontwsegl-es5 = "${libdir}/ES5*/libpvrPVR2D_FRONTWSEGL.so.*"
|
||||
FILES_${PN}-frontwsegl-es6 = "${libdir}/ES6*/libpvrPVR2D_FRONTWSEGL.so.*"
|
||||
FILES_${PN}-frontwsegl-es8 = "${libdir}/ES8*/libpvrPVR2D_FRONTWSEGL.so.*"
|
||||
FILES_${PN}-frontwsegl-es9 = "${libdir}/ES9*/libpvrPVR2D_FRONTWSEGL.so.*"
|
||||
RRECOMMENDS_${PN}-frontwsegl = " ${PN}-frontwsegl-es3 ${PN}-frontwsegl-es5 ${PN}-frontwsegl-es6 ${PN}-frontwsegl-es8 ${PN}-frontwsegl-es9"
|
||||
|
||||
FILES_${PN}-linuxfbwsegl-es3 = "${libdir}/ES3*/libpvrPVR2D_LINUXFBWSEGL.so.*"
|
||||
FILES_${PN}-linuxfbwsegl-es5 = "${libdir}/ES5*/libpvrPVR2D_LINUXFBWSEGL.so.*"
|
||||
FILES_${PN}-linuxfbwsegl-es6 = "${libdir}/ES6*/libpvrPVR2D_LINUXFBWSEGL.so.*"
|
||||
FILES_${PN}-linuxfbwsegl-es8 = "${libdir}/ES8*/libpvrPVR2D_LINUXFBWSEGL.so.*"
|
||||
FILES_${PN}-linuxfbwsegl-es9 = "${libdir}/ES9*/libpvrPVR2D_LINUXFBWSEGL.so.*"
|
||||
RRECOMMENDS_${PN}-linuxfbwsegl = " ${PN}-linuxfbwsegl-es3 ${PN}-linuxfbwsegl-es5 ${PN}-linuxfbwsegl-es6 ${PN}-linuxfbwsegl-es8 ${PN}-linuxfbwsegl-es9"
|
||||
|
||||
CONFFILES_${PN} = "${sysconfdir}/powervr.ini"
|
||||
|
||||
FILES_${PN} = "${sysconfdir} ${libdir}/*.so* ${bindir}/${PVR_INIT} ${bindir}/cputype ${bindir}/*"
|
||||
|
||||
FILES_${PN}-tests = "${bindir}/*test*"
|
||||
FILES_${PN}-dbg = "${libdir}/.debug/* ${bindir}/.debug/* \
|
||||
${libdir}/ES*/.debug ${bindir}/*/.debug\
|
||||
${bindir}/SGX/demos/*/.debug/* \
|
||||
${bindir}/SGX/trainingcourses/*/.debug/* \
|
||||
"
|
||||
|
||||
FILES_${PN}-rawdemos = "${bindir}/SGX/demos/Raw/*"
|
||||
|
||||
FILES_${PN}-rawtrainingcourses = "${bindir}/SGX/trainingcourses/Raw/*"
|
||||
|
||||
# The libs need the kernel-modules
|
||||
RRECOMMENDS_${PN} += "omap3-sgx-modules"
|
||||
|
||||
# The initscript calls fbset, cputype calls devmem2
|
||||
RDEPENDS_${PN} += "fbset devmem2"
|
||||
|
||||
#HACK! These are binaries, so we can't guarantee that LDFLAGS match :(
|
||||
INSANE_SKIP_${PN} = "ldflags dev-so"
|
||||
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"
|
||||
INSANE_SKIP_${PN}-blitwsegl-es5 = "ldflags"
|
||||
INSANE_SKIP_${PN}-blitwsegl-es6 = "ldflags"
|
||||
INSANE_SKIP_${PN}-blitwsegl-es8 = "ldflags"
|
||||
INSANE_SKIP_${PN}-blitwsegl-es9 = "ldflags"
|
||||
INSANE_SKIP_${PN}-flipwsegl = "ldflags"
|
||||
INSANE_SKIP_${PN}-flipwsegl-es3 = "ldflags"
|
||||
INSANE_SKIP_${PN}-flipwsegl-es5 = "ldflags"
|
||||
INSANE_SKIP_${PN}-flipwsegl-es6 = "ldflags"
|
||||
INSANE_SKIP_${PN}-flipwsegl-es8 = "ldflags"
|
||||
INSANE_SKIP_${PN}-flipwsegl-es9 = "ldflags"
|
||||
INSANE_SKIP_${PN}-frontwsegl = "ldflags"
|
||||
INSANE_SKIP_${PN}-frontwsegl-es3 = "ldflags"
|
||||
INSANE_SKIP_${PN}-frontwsegl-es5 = "ldflags"
|
||||
INSANE_SKIP_${PN}-frontwsegl-es6 = "ldflags"
|
||||
INSANE_SKIP_${PN}-frontwsegl-es8 = "ldflags"
|
||||
INSANE_SKIP_${PN}-frontwsegl-es9 = "ldflags"
|
||||
INSANE_SKIP_${PN}-linuxfbwsegl = "ldflags"
|
||||
INSANE_SKIP_${PN}-linuxfbwsegl-es3 = "ldflags"
|
||||
INSANE_SKIP_${PN}-linuxfbwsegl-es5 = "ldflags"
|
||||
INSANE_SKIP_${PN}-linuxfbwsegl-es6 = "ldflags"
|
||||
INSANE_SKIP_${PN}-linuxfbwsegl-es8 = "ldflags"
|
||||
INSANE_SKIP_${PN}-linuxfbwsegl-es9 = "ldflags"
|
||||
INSANE_SKIP_${PN}-tests = "ldflags"
|
||||
|
||||
# Quality control is really poor on these SDKs, so hack around the latest madness:
|
||||
FILES_${PN} += "${libdir}/*.so "
|
||||
FILES_${PN}-dev = "${includedir}"
|
||||
|
||||
inherit update-rc.d
|
||||
|
||||
INITSCRIPT_NAME = "pvr-init"
|
||||
INITSCRIPT_PARAMS = "start 30 5 2 . stop 40 0 1 6 ."
|
||||
|
||||
# Append to update-rc.d postinst
|
||||
pkg_postinst_${PN}_append() {
|
||||
rm -f $D${sysconfdir}/powervr-esrev
|
||||
|
||||
}
|
||||
|
||||
pkg_postinst_${PN}-blitwsegl() {
|
||||
rm -f $D${sysconfdir}/powervr-esrev
|
||||
}
|
||||
|
||||
pkg_postinst_${PN}-flipwsegl() {
|
||||
rm -f $D${sysconfdir}/powervr-esrev
|
||||
}
|
||||
|
||||
pkg_postinst_${PN}-frontwsegl() {
|
||||
rm -f $D${sysconfdir}/powervr-esrev
|
||||
}
|
||||
pkg_postinst_${PN}-linuxfbwsegl() {
|
||||
rm -f $D${sysconfdir}/powervr-esrev
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
# Give everyone access to bufferclass nodes and make a compatibility symlink for the first one
|
||||
SUBSYSTEM=="bccat", MODE="0666"
|
||||
KERNEL=="bccat0", SYMLINK+="bc_cat", MODE="0666"
|
||||
|
||||
# Give everyone access to v4l nodes
|
||||
SUBSYSTEM=="video4linux", MODE="0666"
|
||||
|
||||
17
recipes-graphics/libgles/libgles-omap3-x11-4.09.00.01/cputype
Executable file
17
recipes-graphics/libgles/libgles-omap3-x11-4.09.00.01/cputype
Executable file
@@ -0,0 +1,17 @@
|
||||
#!/bin/sh
|
||||
|
||||
machine_id() { # return the machine ID
|
||||
awk 'BEGIN { FS=": " } /Hardware/ \
|
||||
{ gsub(" ", "_", $2); print tolower($2) } ' </proc/cpuinfo
|
||||
}
|
||||
|
||||
if [ "$(machine_id)" = "ti8168evm" ] ; then
|
||||
echo TI816x
|
||||
elif [ "$(machine_id)" = "am335xevm" ] ; then
|
||||
echo TI33XX
|
||||
else
|
||||
devmem2 0x4800244c | \
|
||||
grep 'Read at address' | \
|
||||
sed -e 's/.*): //' | \
|
||||
sed -e 's/0x00005C00/OMAP3503/' -e 's/0x00001C00/OMAP3515/' -e 's/0x00004C00/OMAP3525/' -e 's/0x00000C00/OMAP3530/' -e 's/0x00005E00/OMAP3503/' -e 's/0x00001E00/OMAP3515/' -e 's/0x00004E00/OMAP3525/' -e 's/0x00000E00/OMAP3530/' -e 's/0x00000CC0/OMAP3530/'
|
||||
fi
|
||||
125
recipes-graphics/libgles/libgles-omap3-x11-4.09.00.01/rc.pvr
Normal file
125
recipes-graphics/libgles/libgles-omap3-x11-4.09.00.01/rc.pvr
Normal file
@@ -0,0 +1,125 @@
|
||||
#!/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
|
||||
insmod $(busybox find /lib/modules/$(uname -r) -name "pvrsrvkm.ko")
|
||||
|
||||
if [ "$?" != "0" ]
|
||||
then
|
||||
echo "Could not find pvrsrvkm driver"
|
||||
exit 1
|
||||
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
|
||||
|
||||
devmem2 0x44e01104 w 0x0 > /dev/null
|
||||
devmem2 0x44e00904 w 0x2 > /dev/null
|
||||
|
||||
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
|
||||
|
||||
137
recipes-graphics/libgles/libgles-omap3-x11-4.09.00.01/rc_dri.pvr
Normal file
137
recipes-graphics/libgles/libgles-omap3-x11-4.09.00.01/rc_dri.pvr
Normal file
@@ -0,0 +1,137 @@
|
||||
#!/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
|
||||
|
||||
insmod $(busybox find /lib/modules/$(uname -r) -name "pvrsrvkm.ko")
|
||||
|
||||
if [ "$?" != "0" ]
|
||||
then
|
||||
echo "Could not find pvrsrvkm driver"
|
||||
exit 1
|
||||
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
|
||||
|
||||
devmem2 0x44e01104 w 0x0 > /dev/null
|
||||
devmem2 0x44e00904 w 0x2 > /dev/null
|
||||
|
||||
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
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
[Desktop Entry]
|
||||
Name=NAME Demo
|
||||
Comment=OGLES Demo
|
||||
Exec=EXEC
|
||||
Icon=star
|
||||
Type=Application
|
||||
Categories=Graphics;
|
||||
|
||||
333
recipes-graphics/libgles/libgles-omap3-x11.inc
Normal file
333
recipes-graphics/libgles/libgles-omap3-x11.inc
Normal file
@@ -0,0 +1,333 @@
|
||||
DESCRIPTION = "libGLES for the omap3 (X11)"
|
||||
LICENSE = "proprietary-binary"
|
||||
# 'TSPA.txt' might not be the best file to md5sum
|
||||
LIC_FILES_CHKSUM = "file://TSPA.txt;md5=c0d5d9c1e38b41677144c4e24d6ddee1"
|
||||
|
||||
INC_PR = "r38"
|
||||
|
||||
EXCLUDE_FROM_WORLD = "1"
|
||||
|
||||
COMPATIBLE_MACHINE = "(omap3|ti814x|ti816x|ti33x|ti43x)"
|
||||
|
||||
DEPENDS = "virtual/libx11 libxau libxdmcp libdrm"
|
||||
|
||||
export SUPPORT_XORG ?= "1"
|
||||
PVR_INIT ?= "pvrsrvinit"
|
||||
|
||||
PROVIDES += "libgles-omap3 virtual/egl virtual/libgles1 virtual/libgles2"
|
||||
|
||||
RREPLACES_${PN} = "libegl libgles1 libgles2"
|
||||
RREPLACES_${PN}-dev = "libegl-dev libgles1-dev libgles2-dev"
|
||||
RREPLACES_${PN}-dbg = "libegl-dbg libgles1-dbg libgles2-dbg"
|
||||
|
||||
RPROVIDES_${PN} = "libegl libgles1 libgles2"
|
||||
RPROVIDES_${PN}-dev = "libegl-dev libgles1-dev libgles2-dev"
|
||||
RPROVIDES_${PN}-dbg = "libegl-dbg libgles1-dbg libgles2-dbg"
|
||||
|
||||
RCONFLICTS_${PN} = "libegl libgles1 libgles2"
|
||||
RCONFLICTS_${PN}-dev = "libegl-dev libgles1-dev libgles2-dev"
|
||||
RCONFLICTS_${PN}-dbg = "libegl-dbg libgles1-dbg libgles2-dbg"
|
||||
|
||||
SRC_URI = "http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/gfxsdk/${SGXPV}/exports/${BINFILE} \
|
||||
file://cputype \
|
||||
file://rc_dri.pvr \
|
||||
file://sample.desktop \
|
||||
file://99-bufferclass.rules \
|
||||
"
|
||||
|
||||
S = "${WORKDIR}/OMAP35x_Graphics_SDK_${SGXPV}"
|
||||
|
||||
# Logic to unpack installjammer file
|
||||
TI_BIN_UNPK_CMDS="Y: qY:workdir:Y"
|
||||
require ../../recipes-ti/includes/ti-eula-unpack.inc
|
||||
|
||||
export BINLOCATION ?= "${S}/gfx_rel"
|
||||
export ES3LOCATION ?= "${S}/gfx_rel_es3.x"
|
||||
export ES5LOCATION ?= "${S}/gfx_rel_es5.x"
|
||||
export ES6LOCATION ?= "${S}/gfx_rel_es6.x"
|
||||
export ES8LOCATION ?= "${S}/gfx_rel_es8.x"
|
||||
export ES9LOCATION ?= "${S}/gfx_rel_es9.x"
|
||||
|
||||
LIBGLESWINDOWSYSTEM ?= "libpvrPVR2D_DRIWSEGL.so"
|
||||
|
||||
python __anonymous() {
|
||||
if "x11" not in d.getVar("DISTRO_FEATURES", True).split():
|
||||
raise bb.parse.SkipPackage("Recipe is x11-specific, skipping")
|
||||
}
|
||||
|
||||
do_configure() {
|
||||
# Attempt to fix up the worst offenders for file permissions
|
||||
for i in $(find ${S} -name "*.h") $(find ${S} -name "*.c") $(find ${S} -name "Make*") ; do
|
||||
chmod 0644 $i
|
||||
done
|
||||
|
||||
# Attempt to create proper library softlinks
|
||||
for sofile in $(find ${S} -name "lib*Open*.so") $(find ${S} -name "lib*srv*.so") $(find ${S} -name "lib*gl*.so") $(find ${S} -name "libpvr*.so") $(find ${S} -name "lib*GL*.so"); do
|
||||
if [ "$(readlink -n ${sofile})" = "" ] ; then
|
||||
mv $sofile ${sofile}.${IMGPV}
|
||||
ln -sf $(basename ${sofile}.${IMGPV}) ${sofile}
|
||||
ln -sf $(basename ${sofile}.${IMGPV}) ${sofile}$(echo ${IMGPV} | awk -F. '{print "." $1}')
|
||||
ln -sf $(basename ${sofile}.${IMGPV}) ${sofile}$(echo ${IMGPV} | awk -F. '{print "." $1 "." $2}')
|
||||
fi
|
||||
done
|
||||
|
||||
# Due to recursive make PLAT_* isn't always passed down correctly, so use sed to fix those
|
||||
for mak in $(find ${S} -name "*.mak") ; do
|
||||
sed -i -e s:arm-none-linux-gnueabi-:${TARGET_PREFIX}:g $mak
|
||||
done
|
||||
|
||||
# clear out old stuff
|
||||
find Binaries/ | xargs rm -f || true
|
||||
}
|
||||
|
||||
# Force in GNU_HASH and paths to libs
|
||||
TARGET_CC_ARCH += " ${TARGET_LINK_HASH_STYLE} -Wl,-rpath-link,${BINLOCATION} -L${BINLOCATION} \
|
||||
-L${STAGING_DIR_TARGET}${libdir} -Wl,-rpath-link,${STAGING_DIR_TARGET}${libdir}"
|
||||
PARALLEL_MAKE = ""
|
||||
|
||||
PLATFORM ?= "LinuxOMAP3"
|
||||
|
||||
do_compile() {
|
||||
export TOOLCHAIN="${TOOLCHAIN_PATH}"
|
||||
export PLAT_CC="${CC}"
|
||||
export PLAT_CPP="${CXX}"
|
||||
export PLAR_AR="${AR}"
|
||||
|
||||
export X11ROOT="${STAGING_DIR_HOST}/usr"
|
||||
mkdir -p ${S}/demos/x11
|
||||
mkdir -p ${S}/trainingcourses/x11
|
||||
|
||||
mkdir -p ${S}/demos/raw
|
||||
mkdir -p ${S}/trainingcourses/raw
|
||||
|
||||
# Rebuild demos
|
||||
for demo in ${S}/GFX_Linux_SDK/OGLES/SDKPackage/Demos/* ; do
|
||||
cd $demo/OGLES/Build/LinuxGeneric
|
||||
oe_runmake Common=1 PLATFORM=${PLATFORM} X11BUILD=1
|
||||
rm $demo/OGLES/Build/${PLATFORM}/Release*/*.o
|
||||
|
||||
install -m 0755 $demo/OGLES/Build/${PLATFORM}/ReleaseX11/* ${S}/demos/x11 || true
|
||||
sed -e s:NAME:$(basename $demo): \
|
||||
-e s:EXEC:${bindir}/SGX/demos/X11/$(basename $demo/OGLES/Build/${PLATFORM}/ReleaseX11/*): \
|
||||
${WORKDIR}/sample.desktop > ${WORKDIR}/$(basename $demo).desktop
|
||||
done
|
||||
|
||||
for demo in ${S}/GFX_Linux_SDK/OGLES2/SDKPackage/Demos/* ; do
|
||||
cd $demo/OGLES2/Build/LinuxGeneric
|
||||
oe_runmake Common=1 PLATFORM=${PLATFORM} X11BUILD=1
|
||||
rm -f $demo/OGLES2/Build/${PLATFORM}/Release*/*.o
|
||||
|
||||
install -m 0755 $demo/OGLES2/Build/${PLATFORM}/ReleaseX11/* ${S}/demos/x11 || true
|
||||
sed -e s:NAME:$(basename $demo): \
|
||||
-e s:EXEC:${bindir}/SGX/demos/X11/$(basename $demo/OGLES2/Build/${PLATFORM}/ReleaseX11/*): \
|
||||
${WORKDIR}/sample.desktop > ${WORKDIR}/$(basename $demo).desktop
|
||||
done
|
||||
|
||||
|
||||
find ${S} -name "*_org" -delete
|
||||
|
||||
# Build OGLES2 Trainingcourses
|
||||
for training in ${S}/GFX_Linux_SDK/OGLES2/SDKPackage/TrainingCourse/* ; do
|
||||
if [ -e $training/OGLES2/Build/LinuxGeneric/Makefile ] ; then
|
||||
cd $training/OGLES2/Build/LinuxGeneric
|
||||
fi
|
||||
|
||||
if [ -e $training/OGLES2/Build/${PLATFORM}/Makefile ] ; then
|
||||
cd $training/OGLES2/Build/${PLATFORM}
|
||||
fi
|
||||
|
||||
oe_runmake Common=1 PLATFORM=${PLATFORM} X11BUILD=1
|
||||
rm -f $training/OGLES2/Build/${PLATFORM}/Release*/*.o
|
||||
|
||||
install -m 0755 $training/OGLES2/Build/${PLATFORM}/ReleaseX11/* ${S}/trainingcourses/x11 || true
|
||||
done
|
||||
}
|
||||
|
||||
do_install () {
|
||||
install -d ${D}${libdir}
|
||||
cp -pPR ${BINLOCATION}/*.so* ${D}${libdir}
|
||||
install -m 0644 ${BINLOCATION}/*.a ${D}${libdir}
|
||||
|
||||
install -d ${D}${bindir}/
|
||||
install -m 0755 ${WORKDIR}/cputype ${D}${bindir}/
|
||||
|
||||
install -m 0755 ${BINLOCATION}/*_test ${D}${bindir}/
|
||||
install -m 0755 ${BINLOCATION}/gl* ${D}${bindir}/
|
||||
install -m 0755 ${BINLOCATION}/${PVR_INIT} ${D}${bindir}/
|
||||
|
||||
install -m 0755 ${BINLOCATION}/xgles1test1 ${D}${bindir}/
|
||||
|
||||
install -d ${D}${includedir}
|
||||
cp -pPR ${S}/GFX_Linux_KM/include4 ${D}${includedir}/
|
||||
cp -pPR ${S}/GFX_Linux_KM/services4 ${D}${includedir}/
|
||||
|
||||
cp -pPR ${S}/GFX_Linux_SDK/OGLES2/SDKPackage/Builds/OGLES2/Include/* ${D}${includedir}/
|
||||
cp -pPR ${S}/GFX_Linux_SDK/OGLES/SDKPackage/Builds/OGLES/Include/* ${D}${includedir}/
|
||||
cp -pPR ${S}/GFX_Linux_SDK/OGLES/SDKPackage/Builds/OGLES/${PLATFORM}/Include/GLES/* ${D}${includedir}/GLES/ 2>/dev/null || true
|
||||
cp -pPr ${S}/GFX_Linux_SDK/OGLES2/SDKPackage/Builds/OGLES2/${PLATFORM}/Include/GLES/* ${D}${includedir}/GLES2/ 2>/dev/null || true
|
||||
cp -pPr ${S}/include/wsegl/*.h ${D}${includedir} || true
|
||||
|
||||
install -d ${D}${sysconfdir}/init.d/
|
||||
|
||||
install -d ${D}${sysconfdir}
|
||||
echo "[default]" > ${D}${sysconfdir}/powervr.ini
|
||||
echo "WindowSystem=${LIBGLESWINDOWSYSTEM}" >> ${D}${sysconfdir}/powervr.ini
|
||||
|
||||
# The ES3.x, ES5.x and ES6.x CPUs have different SGX hardware, so we need to install multiple sets of userspace
|
||||
|
||||
install -d ${D}${libdir}/ES9.0
|
||||
install -d ${D}${libdir}/ES8.0
|
||||
install -d ${D}${libdir}/ES6.0
|
||||
install -d ${D}${libdir}/ES5.0
|
||||
install -d ${D}${libdir}/ES3.0
|
||||
|
||||
install -d ${D}${bindir}/ES9.0
|
||||
install -d ${D}${bindir}/ES8.0
|
||||
install -d ${D}${bindir}/ES6.0
|
||||
install -d ${D}${bindir}/ES5.0
|
||||
install -d ${D}${bindir}/ES3.0
|
||||
|
||||
x11_prog="eglinfo_x xgles1test1 xgles2test1 xmultiegltest"
|
||||
|
||||
for esrev in 3 5 6 8 9; do
|
||||
ESLOCATION=$(eval echo $(echo \$\{ES${esrev}LOCATION\}))
|
||||
if [ -e ${ESLOCATION} ] ; then
|
||||
cp -pPR ${ESLOCATION}/lib*${IMGPV} ${ESLOCATION}/pvr_drv.so ${ESLOCATION}/*.a ${D}${libdir}/ES${esrev}.0/
|
||||
for esprog in $x11_prog ; do
|
||||
install -m 0755 ${ESLOCATION}/$esprog ${D}${bindir}/ES${esrev}.0/ 2>/dev/null || true
|
||||
done
|
||||
fi
|
||||
done
|
||||
|
||||
rm ${D}${bindir}/ES*/*.h ${D}${bindir}/ES*/pdsasm ${D}${bindir}/pdsasm -f || true
|
||||
|
||||
install -d ${D}${prefix}/share/applications
|
||||
cp ${WORKDIR}/*.desktop ${D}${prefix}/share/applications
|
||||
rm ${D}${prefix}/share/applications/sample.desktop
|
||||
|
||||
install -d ${D}${bindir}/SGX/demos/X11/
|
||||
install -m 0755 ${S}/demos/x11/* ${D}${bindir}/SGX/demos/X11/
|
||||
install -d ${D}${bindir}/SGX/trainingcourses/X11 2>/dev/null || true
|
||||
install -m 0755 ${S}/trainingcourses/x11/* ${D}${bindir}/SGX/trainingcourses/X11/ 2>/dev/null || true
|
||||
|
||||
# Delete objects and linker scripts hidden between the headers
|
||||
find ${D} -name "*.o" -delete
|
||||
find ${D} -name "*.o.cmd" -delete
|
||||
|
||||
install -d ${D}${sysconfdir}/udev/rules.d
|
||||
install -m 0644 ${WORKDIR}/99-bufferclass.rules ${D}${sysconfdir}/udev/rules.d/
|
||||
|
||||
}
|
||||
|
||||
PACKAGES =+ "${PN}-x11demos ${PN}-x11trainingcourses xserver-kdrive-powervrsgx"
|
||||
|
||||
# Package the base libraries per silicon revision
|
||||
PACKAGES =+ "${PN}-es3 ${PN}-es5 ${PN}-es6 ${PN}-es8 ${PN}-es9"
|
||||
RRECOMMENDS_${PN} += "${PN}-es3 ${PN}-es5 ${PN}-es6 ${PN}-es8 ${PN}-es9"
|
||||
FILES_${PN}-es3 = "${libdir}/ES3*/* ${bindir}/ES3*/*"
|
||||
FILES_${PN}-es5 = "${libdir}/ES5*/* ${bindir}/ES5*/*"
|
||||
FILES_${PN}-es6 = "${libdir}/ES6*/* ${bindir}/ES6*/*"
|
||||
FILES_${PN}-es8 = "${libdir}/ES8*/* ${bindir}/ES8*/*"
|
||||
FILES_${PN}-es9 = "${libdir}/ES9*/* ${bindir}/ES9*/*"
|
||||
|
||||
# Stop shlib code from picking a subpackage
|
||||
PRIVATE_LIBS_${PN}-es3 = "libGLESv2.so libIMGegl.so libsrv_um.so libOpenVG.so libpvr2d.so libsrv_init.so libEGL.so libsrv_um_dri.so libOpenVGU.so libglslcompiler.so libGLES_CM.so"
|
||||
PRIVATE_LIBS_${PN}-es5 = "libGLESv2.so libIMGegl.so libsrv_um.so libOpenVG.so libpvr2d.so libsrv_init.so libEGL.so libsrv_um_dri.so libOpenVGU.so libglslcompiler.so libGLES_CM.so"
|
||||
PRIVATE_LIBS_${PN}-es6 = "libGLESv2.so libIMGegl.so libsrv_um.so libOpenVG.so libpvr2d.so libsrv_init.so libEGL.so libsrv_um_dri.so libOpenVGU.so libglslcompiler.so libGLES_CM.so"
|
||||
PRIVATE_LIBS_${PN}-es8 = "libGLESv2.so libIMGegl.so libsrv_um.so libOpenVG.so libpvr2d.so libsrv_init.so libEGL.so libsrv_um_dri.so libOpenVGU.so libglslcompiler.so libGLES_CM.so"
|
||||
PRIVATE_LIBS_${PN}-es9 = "libGLESv2.so libIMGegl.so libsrv_um.so libOpenVG.so libpvr2d.so libsrv_init.so libEGL.so libsrv_um_dri.so libOpenVGU.so libglslcompiler.so libGLES_CM.so"
|
||||
|
||||
PACKAGES =+ "${PN}-x11wsegl ${PN}-driwsegl"
|
||||
FILES_${PN}-x11wsegl = "${libdir}/libpvrPVR2D_X11WSEGL.so* ${bindir}/x* ${bindir}/*x"
|
||||
FILES_${PN}-driwsegl = "${libdir}/libpvrPVR2D_DRIWSEGL.so* ${libdir}/libsrv_um_dri*"
|
||||
|
||||
X11_SEGL = " ${PN}-x11wsegl-es2 ${PN}-x11wsegl-es3 ${PN}-x11wsegl-es5 ${PN}-x11wsegl-es6 ${PN}-x11wsegl-es8 ${PN}-x11wsegl-es9 ${PN}-driwsegl-es2 ${PN}-driwsegl-es3 ${PN}-driwsegl-es5 ${PN}-driwsegl-es6 ${PN}-driwsegl-es8 ${PN}-driwsegl-es9"
|
||||
PACKAGES =+ "${X11_SEGL}"
|
||||
FILES_${PN}-x11wsegl-es2 = "${libdir}/ES2*/libpvrPVR2D_X11WSEGL.so.* ${bindir}/ES2*/x* ${bindir}/ES2*/*x"
|
||||
FILES_${PN}-x11wsegl-es3 = "${libdir}/ES3*/libpvrPVR2D_X11WSEGL.so.* ${bindir}/ES3*/x* ${bindir}/ES3*/*x"
|
||||
FILES_${PN}-x11wsegl-es5 = "${libdir}/ES5*/libpvrPVR2D_X11WSEGL.so.* ${bindir}/ES5*/x* ${bindir}/ES5*/*x"
|
||||
FILES_${PN}-x11wsegl-es6 = "${libdir}/ES6*/libpvrPVR2D_X11WSEGL.so.* ${bindir}/ES6*/x* ${bindir}/ES6*/*x"
|
||||
FILES_${PN}-x11wsegl-es8 = "${libdir}/ES8*/libpvrPVR2D_X11WSEGL.so.* ${bindir}/ES8*/x* ${bindir}/ES8*/*x"
|
||||
FILES_${PN}-x11wsegl-es9 = "${libdir}/ES9*/libpvrPVR2D_X11WSEGL.so.* ${bindir}/ES9*/x* ${bindir}/ES9*/*x"
|
||||
RRECOMMENDS_${PN}-x11wsegl = " ${PN}-x11wsegl-es2 ${PN}-x11wsegl-es3 ${PN}-x11wsegl-es5 ${PN}-x11wsegl-es6 ${PN}-x11wsegl-es8 ${PN}-x11wsegl-es9"
|
||||
|
||||
FILES_${PN}-driwsegl-es2 = "${libdir}/ES2*/libpvrPVR2D_DRIWSEGL.so.* ${libdir}/ES2*/libsrv_um_dri*"
|
||||
FILES_${PN}-driwsegl-es3 = "${libdir}/ES3*/libpvrPVR2D_DRIWSEGL.so.* ${libdir}/ES3*/libsrv_um_dri*"
|
||||
FILES_${PN}-driwsegl-es5 = "${libdir}/ES5*/libpvrPVR2D_DRIWSEGL.so.* ${libdir}/ES5*/libsrv_um_dri*"
|
||||
FILES_${PN}-driwsegl-es6 = "${libdir}/ES6*/libpvrPVR2D_DRIWSEGL.so.* ${libdir}/ES6*/libsrv_um_dri*"
|
||||
FILES_${PN}-driwsegl-es8 = "${libdir}/ES8*/libpvrPVR2D_DRIWSEGL.so.* ${libdir}/ES8*/libsrv_um_dri*"
|
||||
FILES_${PN}-driwsegl-es9 = "${libdir}/ES9*/libpvrPVR2D_DRIWSEGL.so.* ${libdir}/ES9*/libsrv_um_dri*"
|
||||
RRECOMMENDS_${PN}-driwsegl = " ${PN}-driwsegl-es2 ${PN}-driwsegl-es3 ${PN}-driwsegl-es5 ${PN}-driwsegl-es6 ${PN}-driwsegl-es8 ${PN}-driwsegl-es9"
|
||||
|
||||
CONFFILES_${PN} = "${sysconfdir}/powervr.ini"
|
||||
|
||||
FILES_${PN} = "${sysconfdir} ${libdir}/*.so* ${bindir}/${PVR_INIT} ${bindir}/cputype ${bindir}/*"
|
||||
|
||||
FILES_xserver-kdrive-powervrsgx = "${bindir}/Xsgx"
|
||||
FILES_${PN}-tests = "${bindir}/*test*"
|
||||
FILES_${PN}-dbg = "${libdir}/.debug/* ${bindir}/.debug/* \
|
||||
${libdir}/ES*/.debug ${bindir}/*/.debug\
|
||||
${bindir}/SGX/demos/*/.debug/* \
|
||||
${bindir}/SGX/trainingcourses/*/.debug/* \
|
||||
"
|
||||
|
||||
FILES_${PN}-x11demos = "${bindir}/SGX/demos/X11/* ${prefix}/share/applications "
|
||||
RRECOMMENDS_${PN}-x11demos = "${PN}-x11wsegl"
|
||||
|
||||
FILES_${PN}-x11trainingcourses = "${bindir}/SGX/trainingcourses/X11/*"
|
||||
RRECOMMENDS_${PN}-x11trainingcourses = "${PN}-x11wsegl"
|
||||
|
||||
# The libs need the kernel-modules
|
||||
RRECOMMENDS_${PN} += "omap3-sgx-modules-x11"
|
||||
|
||||
# The initscript calls fbset, cputype calls devmem2
|
||||
RDEPENDS_${PN} += "fbset devmem2"
|
||||
|
||||
#HACK! These are binaries, so we can't guarantee that LDFLAGS match :(
|
||||
INSANE_SKIP_${PN} = "ldflags dev-so"
|
||||
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}-x11demos = "ldflags dev-so useless-rpaths"
|
||||
INSANE_SKIP_${PN}-x11wsegl = "ldflags dev-so"
|
||||
INSANE_SKIP_${PN}-x11wsegl-es3 = "ldflags dev-so"
|
||||
INSANE_SKIP_${PN}-x11wsegl-es5 = "ldflags dev-so"
|
||||
INSANE_SKIP_${PN}-x11wsegl-es6 = "ldflags dev-so"
|
||||
INSANE_SKIP_${PN}-x11wsegl-es8 = "ldflags dev-so"
|
||||
INSANE_SKIP_${PN}-x11wsegl-es9 = "ldflags dev-so"
|
||||
INSANE_SKIP_${PN}-driwsegl = "ldflags dev-so"
|
||||
INSANE_SKIP_${PN}-driwsegl-es3 = "ldflags dev-so"
|
||||
INSANE_SKIP_${PN}-driwsegl-es5 = "ldflags dev-so"
|
||||
INSANE_SKIP_${PN}-driwsegl-es6 = "ldflags dev-so"
|
||||
INSANE_SKIP_${PN}-driwsegl-es8 = "ldflags dev-so"
|
||||
INSANE_SKIP_${PN}-driwsegl-es9 = "ldflags dev-so"
|
||||
INSANE_SKIP_${PN}-tests = "ldflags"
|
||||
INSANE_SKIP_xserver-kdrive-powervrsgx = "ldflags"
|
||||
INSANE_SKIP_${PN}-dev = "ldflags dev-so"
|
||||
|
||||
inherit update-rc.d
|
||||
|
||||
INITSCRIPT_NAME = "pvr-init"
|
||||
INITSCRIPT_PARAMS = "start 30 5 2 . stop 40 0 1 6 ."
|
||||
|
||||
# Append to update-rc.d postinst
|
||||
pkg_postinst_${PN}_append() {
|
||||
rm -f $D${sysconfdir}/powervr-esrev
|
||||
|
||||
ln -sf /usr/lib/libXdmcp.so.6.0.0 /usr/lib/libXdmcp.so.0
|
||||
ln -sf /usr/lib/libXau.so.6.0.0 /usr/lib/libXau.so.0
|
||||
|
||||
}
|
||||
|
||||
pkg_postinst_${PN}-x11wsegl() {
|
||||
rm -f $D${sysconfdir}/powervr-esrev
|
||||
|
||||
echo "[default]" > $D${sysconfdir}/powervr.ini
|
||||
echo "WindowSystem=libpvrPVR2D_X11WSEGL.so.1" >> $D${sysconfdir}/powervr.ini
|
||||
}
|
||||
|
||||
pkg_postinst_${PN}-driwsegl() {
|
||||
rm -f $D${sysconfdir}/powervr-esrev
|
||||
}
|
||||
90
recipes-graphics/libgles/libgles-omap3-x11_4.09.00.01.bb
Normal file
90
recipes-graphics/libgles/libgles-omap3-x11_4.09.00.01.bb
Normal file
@@ -0,0 +1,90 @@
|
||||
require libgles-omap3-x11.inc
|
||||
|
||||
LICENSE = "TSPA"
|
||||
|
||||
PR = "${INC_PR}.2"
|
||||
|
||||
DEFAULT_PREFERENCE = "-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"
|
||||
|
||||
PLATFORM = "LinuxARMV7"
|
||||
PVR_INIT = "pvrsrvctl"
|
||||
|
||||
# download required binary distribution from:
|
||||
# http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/gfxsdk/latest/index_FDS.html
|
||||
# see libgles-omap3.inc for detailed installation instructions
|
||||
|
||||
SGXPV = "4_09_00_01"
|
||||
IMGPV = "1.9.2188537"
|
||||
|
||||
TI_BIN_UNPK_WDEXT := "/Graphics_SDK_${SGXPV}"
|
||||
|
||||
# Select the corresponding hardfp/softfp filename and checksums based on tune flags
|
||||
BINFILE_SOFTFP = "Graphics_SDK_setuplinux_${SGXPV}_minimal_demos.bin"
|
||||
MD5SUM_SOFTFP = "bd35e9d8843aff3a2aca9d41e7db1c7d"
|
||||
SHA256SUM_SOFTFP = "eb37f75ddde4640b09e760fa86e689beb394330ecdf68786188c34f249247647"
|
||||
|
||||
BINFILE_HARDFP = "Graphics_SDK_setuplinux_${SGXPV}_hardfp_minimal_demos.bin"
|
||||
MD5SUM_HARDFP = "c9f656dce062d1ab10afffd4dfb71b67"
|
||||
SHA256SUM_HARDFP = "dbfeba8e1298f139495816334edec1455e6b49b1e11bd1b2aa0a888e5788bb6b"
|
||||
|
||||
BINFILE = "${@base_contains('TUNE_FEATURES', 'callconvention-hard', '${BINFILE_HARDFP}', '${BINFILE_SOFTFP}', d)}"
|
||||
|
||||
SRC_URI = "http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/gfxsdk/${SGXPV}/exports/${BINFILE} \
|
||||
file://cputype \
|
||||
file://rc.pvr \
|
||||
file://rc_dri.pvr \
|
||||
file://sample.desktop \
|
||||
file://99-bufferclass.rules \
|
||||
"
|
||||
|
||||
SRC_URI[md5sum] := "${@base_contains('TUNE_FEATURES', 'callconvention-hard', '${MD5SUM_HARDFP}', '${MD5SUM_SOFTFP}', d)}"
|
||||
SRC_URI[sha256sum] := "${@base_contains('TUNE_FEATURES', 'callconvention-hard', '${SHA256SUM_HARDFP}', '${SHA256SUM_SOFTFP}', d)}"
|
||||
|
||||
S = "${WORKDIR}/Graphics_SDK_${SGXPV}"
|
||||
|
||||
LIBGLESWINDOWSYSTEM ?= "libpvrPVR2D_DRIWSEGL.so"
|
||||
|
||||
do_configure_append() {
|
||||
|
||||
# Change PVR server's user mode library to point to DRI
|
||||
for drifile in $(find ${S} -name "libsrv_um_dri.so"); do
|
||||
if [ "$drifile" != "" ]
|
||||
then
|
||||
dir=$(dirname ${drifile})
|
||||
if [ "$SUPPORT_XORG" = "1" ]
|
||||
then
|
||||
mv ${dir}/libsrv_um_dri.so ${dir}/libsrv_um.so
|
||||
else
|
||||
rm -rf ${dir}/libsrv_um_dri.so
|
||||
fi
|
||||
fi
|
||||
|
||||
done
|
||||
}
|
||||
|
||||
do_install_append() {
|
||||
|
||||
# In this version of the graphics SDK the following directories do not exist:
|
||||
# /GFX_Linux_SDK/OGLES/SDKPackage/Builds/OGLES/Include/pvr2d.h (doesn't exist)
|
||||
# /GFX_Linux_SDK/OGLES/SDKPackage/Builds/OGLES/Include/GLES/egltypes.h (doesn't exist)
|
||||
# Therefore, need to copy these files manually at the only location that they do exist
|
||||
cp -pPr ${S}/include/pvr2d/*.h ${D}${includedir}
|
||||
cp -pPr ${S}/include/OGLES/GLES ${D}${includedir}/
|
||||
|
||||
rm -f ${D}${sysconfdir}/init.d/pvr-init
|
||||
|
||||
if [ "$SUPPORT_XORG" = "1" ]; then
|
||||
cp -pP ${WORKDIR}/rc_dri.pvr ${D}${sysconfdir}/init.d/pvr-init
|
||||
else
|
||||
cp -pP ${WORKDIR}/rc.pvr ${D}${sysconfdir}/init.d/pvr-init
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
RRECOMMENDS_${PN}-x11demos = "${PN}-driwsegl"
|
||||
RRECOMMENDS_${PN}-x11trainingcourses = "${PN}-driwsegl"
|
||||
@@ -437,4 +437,3 @@ echo "WindowSystem=libpvrPVR2D_X11WSEGL.so.1" >> $D${sysconfdir}/powervr.ini
|
||||
pkg_postinst_${PN}-driwsegl() {
|
||||
rm -f $D${sysconfdir}/powervr-esrev
|
||||
}
|
||||
|
||||
|
||||
@@ -1,17 +1,25 @@
|
||||
#!/bin/sh
|
||||
|
||||
machine_id() { # return the machine ID
|
||||
legacy_machine_id() { # return the machine ID
|
||||
awk 'BEGIN { FS=": " } /Hardware/ \
|
||||
{ gsub(" ", "_", $2); print tolower($2) } ' </proc/cpuinfo
|
||||
}
|
||||
|
||||
if [ "$(machine_id)" = "ti8168evm" ] ; then
|
||||
machine_id() { # return the machine ID
|
||||
cat /proc/cpuinfo | grep Hardware | awk -F" " '{ print $4 }'
|
||||
}
|
||||
|
||||
if [ "$(machine_id)" = "ti8168evm" -o "$(legacy_machine_id)" = "ti8168evm" ] ; then
|
||||
echo TI816x
|
||||
elif [ "$(machine_id)" = "am335xevm" ] ; then
|
||||
echo TI33XX
|
||||
elif [ "$(machine_id)" = "AM33XX" -o "$(legacy_machine_id)" = "am335xevm" ] ; then
|
||||
echo TI33XX
|
||||
elif [ "$(machine_id)" = "AM43" ] ; then
|
||||
echo TI43XX
|
||||
else
|
||||
devmem2 0x4800244c | \
|
||||
grep 'Read at address' | \
|
||||
sed -e 's/.*): //' | \
|
||||
sed -e 's/0x00005C00/OMAP3503/' -e 's/0x00001C00/OMAP3515/' -e 's/0x00004C00/OMAP3525/' -e 's/0x00000C00/OMAP3530/' -e 's/0x00005E00/OMAP3503/' -e 's/0x00001E00/OMAP3515/' -e 's/0x00004E00/OMAP3525/' -e 's/0x00000E00/OMAP3530/' -e 's/0x00000CC0/OMAP3530/'
|
||||
sed -e 's/0x00005C00/OMAP3503/' -e 's/0x00001C00/OMAP3515/' -e 's/0x00004C00/OMAP3525/' -e 's/0x00000C00/OMAP3530/' \
|
||||
-e 's/0x00005E00/OMAP3503/' -e 's/0x00001E00/OMAP3515/' -e 's/0x00004E00/OMAP3525/' -e 's/0x00000E00/OMAP3530/' \
|
||||
-e 's/0x00000CC0/OMAP3530/'
|
||||
fi
|
||||
|
||||
@@ -1,30 +0,0 @@
|
||||
BINLOCATION_omap3 = "${S}/gfx_rel_es3.x"
|
||||
BINLOCATION_ti816x = "${S}/gfx_rel_es6.x"
|
||||
|
||||
ES2LOCATION = "${S}/gfx_rel_es2.x"
|
||||
ES3LOCATION = "${S}/gfx_rel_es3.x"
|
||||
ES5LOCATION = "${S}/gfx_rel_es5.x"
|
||||
ES6LOCATION = "${S}/gfx_rel_es6.x"
|
||||
|
||||
require libgles-omap3.inc
|
||||
|
||||
# download required binary distribution from:
|
||||
# http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/gfxsdk/latest/index_FDS.html
|
||||
# see libgles-omap3.inc for detailed installation instructions
|
||||
|
||||
SGXPV = "4_03_00_02"
|
||||
IMGPV = "1.6.16.3977"
|
||||
BINFILE := "Graphics_SDK_setuplinux_${SGXPV}.bin"
|
||||
TI_BIN_UNPK_WDEXT := "/Graphics_SDK_${SGXPV}"
|
||||
|
||||
SRC_URI = "http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/gfxsdk/${SGXPV}/exports/${BINFILE} \
|
||||
file://cputype \
|
||||
file://rc.pvr \
|
||||
file://sample.desktop \
|
||||
file://99-bufferclass.rules \
|
||||
"
|
||||
|
||||
SRC_URI[md5sum] = "ff8c1f2b8e4cb42f4ced6a613b081ada"
|
||||
SRC_URI[sha256sum] = "cdb0bd3964e107733d632aa8224e0537b05c1ffac34befc036423458c8d75255"
|
||||
|
||||
S = "${WORKDIR}/Graphics_SDK_${SGXPV}"
|
||||
@@ -5,6 +5,8 @@ BINLOCATION_ti33x = "${S}/gfx_rel_es8.x"
|
||||
|
||||
require libgles-omap3.inc
|
||||
|
||||
DEFAULT_PREFERENCE_omap3 = "99"
|
||||
|
||||
# download required binary distribution from:
|
||||
# http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/gfxsdk/latest/index_FDS.html
|
||||
# see libgles-omap3.inc for detailed installation instructions
|
||||
|
||||
@@ -2,8 +2,6 @@ require libgles-omap3.inc
|
||||
|
||||
LICENSE = "TSPA"
|
||||
|
||||
DEFAULT_PREFERENCE = "-1"
|
||||
|
||||
BINLOCATION_omap3 = "${S}/gfx_rel_es3.x"
|
||||
BINLOCATION_ti816x = "${S}/gfx_rel_es6.x"
|
||||
BINLOCATION_ti814x = "${S}/gfx_rel_es6.x"
|
||||
|
||||
@@ -2,8 +2,6 @@ require libgles-omap3.inc
|
||||
|
||||
LICENSE = "TSPA"
|
||||
|
||||
DEFAULT_PREFERENCE = "-1"
|
||||
|
||||
BINLOCATION_omap3 = "${S}/gfx_rel_es3.x"
|
||||
BINLOCATION_ti816x = "${S}/gfx_rel_es6.x"
|
||||
BINLOCATION_ti814x = "${S}/gfx_rel_es6.x"
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
require libgles-omap3.inc
|
||||
require libgles-omap3-no-x.inc
|
||||
|
||||
LICENSE = "TSPA"
|
||||
|
||||
DEFAULT_PREFERENCE = "-1"
|
||||
PR = "${INC_PR}.2"
|
||||
|
||||
BINLOCATION_omap3 = "${S}/gfx_rel_es3.x"
|
||||
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"
|
||||
@@ -18,58 +18,29 @@ PVR_INIT = "pvrsrvctl"
|
||||
|
||||
SGXPV = "4_09_00_01"
|
||||
IMGPV = "1.9.2188537"
|
||||
BINFILE = "Graphics_SDK_setuplinux_${SGXPV}_minimal_demos.bin"
|
||||
|
||||
TI_BIN_UNPK_WDEXT := "/Graphics_SDK_${SGXPV}"
|
||||
|
||||
# Select the corresponding hardfp/softfp filename and checksums based on tune flags
|
||||
BINFILE_SOFTFP = "Graphics_SDK_setuplinux_${SGXPV}_minimal_demos.bin"
|
||||
MD5SUM_SOFTFP = "bd35e9d8843aff3a2aca9d41e7db1c7d"
|
||||
SHA256SUM_SOFTFP = "eb37f75ddde4640b09e760fa86e689beb394330ecdf68786188c34f249247647"
|
||||
|
||||
BINFILE_HARDFP = "Graphics_SDK_setuplinux_${SGXPV}_hardfp_minimal_demos.bin"
|
||||
MD5SUM_HARDFP = "c9f656dce062d1ab10afffd4dfb71b67"
|
||||
SHA256SUM_HARDFP = "dbfeba8e1298f139495816334edec1455e6b49b1e11bd1b2aa0a888e5788bb6b"
|
||||
|
||||
BINFILE = "${@base_contains('TUNE_FEATURES', 'callconvention-hard', '${BINFILE_HARDFP}', '${BINFILE_SOFTFP}', d)}"
|
||||
|
||||
SRC_URI = "http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/gfxsdk/${SGXPV}/exports/${BINFILE} \
|
||||
file://cputype \
|
||||
file://rc.pvr \
|
||||
file://rc_dri.pvr \
|
||||
file://sample.desktop \
|
||||
file://99-bufferclass.rules \
|
||||
"
|
||||
SRC_URI[md5sum] = "bd35e9d8843aff3a2aca9d41e7db1c7d"
|
||||
SRC_URI[sha256sum] = "eb37f75ddde4640b09e760fa86e689beb394330ecdf68786188c34f249247647"
|
||||
|
||||
SRC_URI[md5sum] := "${@base_contains('TUNE_FEATURES', 'callconvention-hard', '${MD5SUM_HARDFP}', '${MD5SUM_SOFTFP}', d)}"
|
||||
SRC_URI[sha256sum] := "${@base_contains('TUNE_FEATURES', 'callconvention-hard', '${SHA256SUM_HARDFP}', '${SHA256SUM_SOFTFP}', d)}"
|
||||
|
||||
S = "${WORKDIR}/Graphics_SDK_${SGXPV}"
|
||||
|
||||
LIBGLESWINDOWSYSTEM ?= "${@base_contains('DISTRO_FEATURES', 'x11',"libpvrPVR2D_DRIWSEGL.so" ,"libpvrPVR2D_FRONTWSEGL.so.1", d)}"
|
||||
|
||||
do_configure_append() {
|
||||
|
||||
# Change PVR server's user mode library to point to DRI
|
||||
for drifile in $(find ${S} -name "libsrv_um_dri.so"); do
|
||||
if [ "$drifile" != "" ]
|
||||
then
|
||||
dir=$(dirname ${drifile})
|
||||
if [ "$SUPPORT_XORG" = "1" ]
|
||||
then
|
||||
mv ${dir}/libsrv_um_dri.so ${dir}/libsrv_um.so
|
||||
else
|
||||
rm -rf ${dir}/libsrv_um_dri.so
|
||||
fi
|
||||
fi
|
||||
|
||||
done
|
||||
}
|
||||
|
||||
do_install_append() {
|
||||
|
||||
# In this version of the graphics SDK the following directories do not exist:
|
||||
# /GFX_Linux_SDK/OGLES/SDKPackage/Builds/OGLES/Include/pvr2d.h (doesn't exist)
|
||||
# /GFX_Linux_SDK/OGLES/SDKPackage/Builds/OGLES/Include/GLES/egltypes.h (doesn't exist)
|
||||
# Therefore, need to copy these files manually at the only location that they do exist
|
||||
cp -pPr ${S}/include/pvr2d/*.h ${D}${includedir}
|
||||
cp -pPr ${S}/include/OGLES/GLES ${D}${includedir}/
|
||||
|
||||
rm ${D}${sysconfdir}/init.d/pvr-init
|
||||
|
||||
if [ "$SUPPORT_XORG" = "1" ]; then
|
||||
cp -pP ${WORKDIR}/rc_dri.pvr ${D}${sysconfdir}/init.d/pvr-init
|
||||
else
|
||||
cp -pP ${WORKDIR}/rc.pvr ${D}${sysconfdir}/init.d/pvr-init
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
RRECOMMENDS_${PN}-x11demos = "${PN}-driwsegl"
|
||||
RRECOMMENDS_${PN}-x11trainingcourses = "${PN}-driwsegl"
|
||||
LIBGLESWINDOWSYSTEM ?= "libpvrPVR2D_FRONTWSEGL.so.1"
|
||||
|
||||
50
recipes-graphics/libgles/libgles-omap3_5.00.00.01.bb
Normal file
50
recipes-graphics/libgles/libgles-omap3_5.00.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_00_00_01"
|
||||
IMGPV = "1.10.2359475"
|
||||
|
||||
TI_BIN_UNPK_WDEXT := "/Graphics_SDK_${SGXPV}"
|
||||
|
||||
BINFILE_HARDFP = "Graphics_SDK_setuplinux_${SGXPV}_alpha_hardfp_minimal_demos.bin"
|
||||
MD5SUM_HARDFP = "ae6125d7f8a313ea5c02afded893052d"
|
||||
SHA256SUM_HARDFP = "c2782a2f85024741722b936ec9dca66b858ae8561aa71b693f11e12d8c0385e0"
|
||||
|
||||
# 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.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"
|
||||
26
recipes-graphics/libgles/omap5-sgx-ddk-um-linux_1.9.0.10.bb
Normal file
26
recipes-graphics/libgles/omap5-sgx-ddk-um-linux_1.9.0.10.bb
Normal file
@@ -0,0 +1,26 @@
|
||||
DESCRIPTION = "Userspace libraries for omap5 sgx"
|
||||
HOMEPAGE = "http://downloads.ti.com/dsps/dsps_public_sw/gfxsdk"
|
||||
LICENSE = "TSPA"
|
||||
LIC_FILES_CHKSUM = "file://OMAP5-Linux-Graphics-DDK-UM-Manifest.doc;md5=d280df8e94bb2e7b9251c8526078eeb8"
|
||||
|
||||
COMPATIBLE_MACHINE = "omap-a15"
|
||||
|
||||
INHIBIT_PACKAGE_STRIP = "1"
|
||||
|
||||
SRC_URI = "http://downloads.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/gfxsdk/OMAP5_1_09_00_10//exports/${PN}-${PV}.tar.gz;protocol=http"
|
||||
|
||||
PR = "r0"
|
||||
|
||||
SRC_URI[md5sum] = "3cfb875de031098a4c1eeeaf4e442367"
|
||||
SRC_URI[sha256sum] = "20b849088c0fd3ee5dd6bad8ddf16fb2b3267aa053cf3488c762fbc72f22489a"
|
||||
|
||||
S = "${WORKDIR}/${PN}-${PV}"
|
||||
|
||||
do_install () {
|
||||
oe_runmake install DESTDIR=${D}
|
||||
}
|
||||
|
||||
FILES_${PN} += "${libdir}/gbm/"
|
||||
|
||||
INSANE_SKIP_${PN} = "useless-rpaths"
|
||||
INSANE_SKIP_${PN}-dev = "useless-rpaths"
|
||||
@@ -1,5 +1,2 @@
|
||||
PRINC = "2"
|
||||
|
||||
THISDIR := "${@os.path.dirname(bb.data.getVar('FILE', d, True))}"
|
||||
FILESPATH =. "${@base_set_filespath(["${THISDIR}/${PN}"], d)}:"
|
||||
|
||||
PRINC := "${@int(PRINC) + 1}"
|
||||
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
|
||||
|
||||
@@ -1,340 +0,0 @@
|
||||
From 3721255965a94417996df6f2402a288aa09cb5b2 Mon Sep 17 00:00:00 2001
|
||||
From: Koen Kooi <koen@dominion.thruhere.net>
|
||||
Date: Thu, 21 Jul 2011 14:29:42 +0200
|
||||
Subject: [PATCH 1/3] UNFINISHED: OMAP3: beagle: add support for expansionboards
|
||||
|
||||
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
|
||||
---
|
||||
arch/arm/mach-omap2/board-omap3beagle.c | 266 +++++++++++++++++++++++++++++++
|
||||
1 files changed, 266 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c
|
||||
index 32f5f89..f26a9a8 100644
|
||||
--- a/arch/arm/mach-omap2/board-omap3beagle.c
|
||||
+++ b/arch/arm/mach-omap2/board-omap3beagle.c
|
||||
@@ -21,6 +21,7 @@
|
||||
#include <linux/io.h>
|
||||
#include <linux/leds.h>
|
||||
#include <linux/gpio.h>
|
||||
+#include <linux/irq.h>
|
||||
#include <linux/input.h>
|
||||
#include <linux/gpio_keys.h>
|
||||
#include <linux/opp.h>
|
||||
@@ -156,6 +157,167 @@ static void __init omap3_beagle_init_rev(void)
|
||||
}
|
||||
}
|
||||
|
||||
+char expansionboard_name[16];
|
||||
+
|
||||
+#if defined(CONFIG_WL12XX) || defined(CONFIG_WL12XX_MODULE)
|
||||
+#include <linux/regulator/fixed.h>
|
||||
+#include <linux/wl12xx.h>
|
||||
+
|
||||
+#define OMAP_BEAGLE_WLAN_EN_GPIO (139)
|
||||
+#define OMAP_BEAGLE_BT_EN_GPIO (138)
|
||||
+#define OMAP_BEAGLE_WLAN_IRQ_GPIO (137)
|
||||
+#define OMAP_BEAGLE_FM_EN_BT_WU (136)
|
||||
+
|
||||
+struct wl12xx_platform_data omap_beagle_wlan_data __initdata = {
|
||||
+ .irq = OMAP_GPIO_IRQ(OMAP_BEAGLE_WLAN_IRQ_GPIO),
|
||||
+ .board_ref_clock = 2, /* 38.4 MHz */
|
||||
+};
|
||||
+
|
||||
+static int gpios[] = {OMAP_BEAGLE_BT_EN_GPIO, OMAP_BEAGLE_FM_EN_BT_WU, -1};
|
||||
+static struct platform_device wl12xx_device = {
|
||||
+ .name = "kim",
|
||||
+ .id = -1,
|
||||
+ .dev.platform_data = &gpios,
|
||||
+};
|
||||
+
|
||||
+static struct omap2_hsmmc_info mmcbbt[] = {
|
||||
+ {
|
||||
+ .mmc = 1,
|
||||
+ .caps = MMC_CAP_4_BIT_DATA | MMC_CAP_8_BIT_DATA,
|
||||
+ .gpio_wp = 29,
|
||||
+ },
|
||||
+ {
|
||||
+ .name = "wl1271",
|
||||
+ .mmc = 2,
|
||||
+ .caps = MMC_CAP_4_BIT_DATA | MMC_CAP_POWER_OFF_CARD,
|
||||
+ .gpio_wp = -EINVAL,
|
||||
+ .gpio_cd = -EINVAL,
|
||||
+ .ocr_mask = MMC_VDD_165_195,
|
||||
+ .nonremovable = true,
|
||||
+ },
|
||||
+ {} /* Terminator */
|
||||
+ };
|
||||
+
|
||||
+static struct regulator_consumer_supply beagle_vmmc2_supply =
|
||||
+ REGULATOR_SUPPLY("vmmc", "omap_hsmmc.1");
|
||||
+
|
||||
+static struct regulator_init_data beagle_vmmc2 = {
|
||||
+ .constraints = {
|
||||
+ .min_uV = 1850000,
|
||||
+ .max_uV = 1850000,
|
||||
+ .apply_uV = true,
|
||||
+ .valid_modes_mask = REGULATOR_MODE_NORMAL
|
||||
+ | REGULATOR_MODE_STANDBY,
|
||||
+ .valid_ops_mask = REGULATOR_CHANGE_MODE
|
||||
+ | REGULATOR_CHANGE_STATUS,
|
||||
+ },
|
||||
+ .num_consumer_supplies = 1,
|
||||
+ .consumer_supplies = &beagle_vmmc2_supply,
|
||||
+};
|
||||
+
|
||||
+static struct fixed_voltage_config beagle_vwlan = {
|
||||
+ .supply_name = "vwl1271",
|
||||
+ .microvolts = 1800000, /* 1.8V */
|
||||
+ .gpio = OMAP_BEAGLE_WLAN_EN_GPIO,
|
||||
+ .startup_delay = 70000, /* 70ms */
|
||||
+ .enable_high = 1,
|
||||
+ .enabled_at_boot = 0,
|
||||
+ .init_data = &beagle_vmmc2,
|
||||
+};
|
||||
+
|
||||
+static struct platform_device omap_vwlan_device = {
|
||||
+ .name = "reg-fixed-voltage",
|
||||
+ .id = 1,
|
||||
+ .dev = {
|
||||
+ .platform_data = &beagle_vwlan,
|
||||
+ },
|
||||
+};
|
||||
+#endif
|
||||
+
|
||||
+#if defined(CONFIG_ENC28J60) || defined(CONFIG_ENC28J60_MODULE)
|
||||
+
|
||||
+#include <plat/mcspi.h>
|
||||
+#include <linux/spi/spi.h>
|
||||
+
|
||||
+#define OMAP3BEAGLE_GPIO_ENC28J60_IRQ 157
|
||||
+
|
||||
+static struct omap2_mcspi_device_config enc28j60_spi_chip_info = {
|
||||
+ .turbo_mode = 0,
|
||||
+ .single_channel = 1, /* 0: slave, 1: master */
|
||||
+};
|
||||
+
|
||||
+static struct spi_board_info omap3beagle_zippy_spi_board_info[] __initdata = {
|
||||
+ {
|
||||
+ .modalias = "enc28j60",
|
||||
+ .bus_num = 4,
|
||||
+ .chip_select = 0,
|
||||
+ .max_speed_hz = 20000000,
|
||||
+ .controller_data = &enc28j60_spi_chip_info,
|
||||
+ },
|
||||
+};
|
||||
+
|
||||
+static void __init omap3beagle_enc28j60_init(void)
|
||||
+{
|
||||
+ if ((gpio_request(OMAP3BEAGLE_GPIO_ENC28J60_IRQ, "ENC28J60_IRQ") == 0) &&
|
||||
+ (gpio_direction_input(OMAP3BEAGLE_GPIO_ENC28J60_IRQ) == 0)) {
|
||||
+ gpio_export(OMAP3BEAGLE_GPIO_ENC28J60_IRQ, 0);
|
||||
+ omap3beagle_zippy_spi_board_info[0].irq = OMAP_GPIO_IRQ(OMAP3BEAGLE_GPIO_ENC28J60_IRQ);
|
||||
+ irq_set_irq_type(omap3beagle_zippy_spi_board_info[0].irq, IRQ_TYPE_EDGE_FALLING);
|
||||
+ } else {
|
||||
+ printk(KERN_ERR "could not obtain gpio for ENC28J60_IRQ\n");
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ spi_register_board_info(omap3beagle_zippy_spi_board_info,
|
||||
+ ARRAY_SIZE(omap3beagle_zippy_spi_board_info));
|
||||
+}
|
||||
+
|
||||
+#else
|
||||
+static inline void __init omap3beagle_enc28j60_init(void) { return; }
|
||||
+#endif
|
||||
+
|
||||
+#if defined(CONFIG_KS8851) || defined(CONFIG_KS8851_MODULE)
|
||||
+
|
||||
+#include <plat/mcspi.h>
|
||||
+#include <linux/spi/spi.h>
|
||||
+
|
||||
+#define OMAP3BEAGLE_GPIO_KS8851_IRQ 157
|
||||
+
|
||||
+static struct omap2_mcspi_device_config ks8851_spi_chip_info = {
|
||||
+ .turbo_mode = 0,
|
||||
+ .single_channel = 1, /* 0: slave, 1: master */
|
||||
+};
|
||||
+
|
||||
+static struct spi_board_info omap3beagle_zippy2_spi_board_info[] __initdata = {
|
||||
+ {
|
||||
+ .modalias = "ks8851",
|
||||
+ .bus_num = 4,
|
||||
+ .chip_select = 0,
|
||||
+ .max_speed_hz = 36000000,
|
||||
+ .controller_data = &ks8851_spi_chip_info,
|
||||
+ },
|
||||
+};
|
||||
+
|
||||
+static void __init omap3beagle_ks8851_init(void)
|
||||
+{
|
||||
+ if ((gpio_request(OMAP3BEAGLE_GPIO_KS8851_IRQ, "KS8851_IRQ") == 0) &&
|
||||
+ (gpio_direction_input(OMAP3BEAGLE_GPIO_KS8851_IRQ) == 0)) {
|
||||
+ gpio_export(OMAP3BEAGLE_GPIO_KS8851_IRQ, 0);
|
||||
+ omap3beagle_zippy2_spi_board_info[0].irq = OMAP_GPIO_IRQ(OMAP3BEAGLE_GPIO_KS8851_IRQ);
|
||||
+ irq_set_irq_type(omap3beagle_zippy2_spi_board_info[0].irq, IRQ_TYPE_EDGE_FALLING);
|
||||
+ } else {
|
||||
+ printk(KERN_ERR "could not obtain gpio for KS8851_IRQ\n");
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ spi_register_board_info(omap3beagle_zippy2_spi_board_info,
|
||||
+ ARRAY_SIZE(omap3beagle_zippy2_spi_board_info));
|
||||
+}
|
||||
+
|
||||
+#else
|
||||
+static inline void __init omap3beagle_ks8851_init(void) { return; }
|
||||
+#endif
|
||||
+
|
||||
static struct mtd_partition omap3beagle_nand_partitions[] = {
|
||||
/* All the partition sizes are listed in terms of NAND block size */
|
||||
{
|
||||
@@ -254,6 +416,12 @@ static struct omap2_hsmmc_info mmc[] = {
|
||||
.caps = MMC_CAP_4_BIT_DATA | MMC_CAP_8_BIT_DATA,
|
||||
.gpio_wp = -EINVAL,
|
||||
},
|
||||
+ {
|
||||
+ .mmc = 2,
|
||||
+ .caps = MMC_CAP_4_BIT_DATA,
|
||||
+ .transceiver = true,
|
||||
+ .ocr_mask = 0x00100000, /* 3.3V */
|
||||
+ },
|
||||
{} /* Terminator */
|
||||
};
|
||||
|
||||
@@ -277,7 +445,15 @@ static int beagle_twl_gpio_setup(struct device *dev,
|
||||
mmc[0].gpio_wp = beagle_config.mmc1_gpio_wp;
|
||||
/* gpio + 0 is "mmc0_cd" (input/IRQ) */
|
||||
mmc[0].gpio_cd = gpio + 0;
|
||||
+#if defined(CONFIG_WL12XX) || defined(CONFIG_WL12XX_MODULE)
|
||||
+ if(!strcmp(expansionboard_name, "bbtoys-wifi")) {
|
||||
+ omap2_hsmmc_init(mmcbbt);
|
||||
+ } else {
|
||||
+ omap2_hsmmc_init(mmc);
|
||||
+ }
|
||||
+#else
|
||||
omap2_hsmmc_init(mmc);
|
||||
+#endif
|
||||
|
||||
/*
|
||||
* TWL4030_GPIO_MAX + 0 == ledA, EHCI nEN_USB_PWR (out, XM active
|
||||
@@ -375,6 +551,19 @@ static struct i2c_board_info __initdata beagle_i2c_eeprom[] = {
|
||||
},
|
||||
};
|
||||
|
||||
+#if defined(CONFIG_RTC_DRV_DS1307) || \
|
||||
+ defined(CONFIG_RTC_DRV_DS1307_MODULE)
|
||||
+
|
||||
+static struct i2c_board_info __initdata beagle_i2c2_zippy[] = {
|
||||
+ {
|
||||
+ I2C_BOARD_INFO("eeprom", 0x50),
|
||||
+ I2C_BOARD_INFO("ds1307", 0x68),
|
||||
+ },
|
||||
+};
|
||||
+#else
|
||||
+static struct i2c_board_info __initdata beagle_i2c2_zippy[] = {};
|
||||
+#endif
|
||||
+
|
||||
static int __init omap3_beagle_i2c_init(void)
|
||||
{
|
||||
omap3_pmic_get_config(&beagle_twldata,
|
||||
@@ -479,6 +668,15 @@ static struct omap_board_mux board_mux[] __initdata = {
|
||||
};
|
||||
#endif
|
||||
|
||||
+static int __init expansionboard_setup(char *str)
|
||||
+{
|
||||
+ if (!str)
|
||||
+ return -EINVAL;
|
||||
+ strncpy(expansionboard_name, str, 16);
|
||||
+ printk(KERN_INFO "Beagle expansionboard: %s\n", expansionboard_name);
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
static void __init beagle_opp_init(void)
|
||||
{
|
||||
int r = 0;
|
||||
@@ -542,6 +740,72 @@ static void __init omap3_beagle_init(void)
|
||||
/* REVISIT leave DVI powered down until it's needed ... */
|
||||
gpio_request_one(170, GPIOF_OUT_INIT_HIGH, "DVI_nPD");
|
||||
|
||||
+ if(!strcmp(expansionboard_name, "zippy"))
|
||||
+ {
|
||||
+ printk(KERN_INFO "Beagle expansionboard: initializing enc28j60\n");
|
||||
+ omap3beagle_enc28j60_init();
|
||||
+ printk(KERN_INFO "Beagle expansionboard: assigning GPIO 141 and 162 to MMC1\n");
|
||||
+ mmc[1].gpio_wp = 141;
|
||||
+ mmc[1].gpio_cd = 162;
|
||||
+ printk(KERN_INFO "Beagle expansionboard: registering I2C2 for zippy board\n");
|
||||
+ omap_register_i2c_bus(2, 400, beagle_i2c2_zippy,
|
||||
+ ARRAY_SIZE(beagle_i2c2_zippy));
|
||||
+
|
||||
+ }
|
||||
+
|
||||
+ if(!strcmp(expansionboard_name, "zippy2"))
|
||||
+ {
|
||||
+ printk(KERN_INFO "Beagle expansionboard: initializing ks_8851\n");
|
||||
+ omap3beagle_ks8851_init();
|
||||
+ printk(KERN_INFO "Beagle expansionboard: assigning GPIO 141 and 162 to MMC1\n");
|
||||
+ mmc[1].gpio_wp = 141;
|
||||
+ mmc[1].gpio_cd = 162;
|
||||
+ printk(KERN_INFO "Beagle expansionboard: registering I2C2 for zippy2 board\n");
|
||||
+ omap_register_i2c_bus(2, 400, beagle_i2c2_zippy,
|
||||
+ ARRAY_SIZE(beagle_i2c2_zippy));
|
||||
+ }
|
||||
+
|
||||
+ if(!strcmp(expansionboard_name, "trainer"))
|
||||
+ {
|
||||
+ printk(KERN_INFO "Beagle expansionboard: exporting GPIOs 130-141,162 to userspace\n");
|
||||
+ gpio_request(130, "sysfs");
|
||||
+ gpio_export(130, 1);
|
||||
+ gpio_request(131, "sysfs");
|
||||
+ gpio_export(131, 1);
|
||||
+ gpio_request(132, "sysfs");
|
||||
+ gpio_export(132, 1);
|
||||
+ gpio_request(133, "sysfs");
|
||||
+ gpio_export(133, 1);
|
||||
+ gpio_request(134, "sysfs");
|
||||
+ gpio_export(134, 1);
|
||||
+ gpio_request(135, "sysfs");
|
||||
+ gpio_export(135, 1);
|
||||
+ gpio_request(136, "sysfs");
|
||||
+ gpio_export(136, 1);
|
||||
+ gpio_request(137, "sysfs");
|
||||
+ gpio_export(137, 1);
|
||||
+ gpio_request(138, "sysfs");
|
||||
+ gpio_export(138, 1);
|
||||
+ gpio_request(139, "sysfs");
|
||||
+ gpio_export(139, 1);
|
||||
+ gpio_request(140, "sysfs");
|
||||
+ gpio_export(140, 1);
|
||||
+ gpio_request(141, "sysfs");
|
||||
+ gpio_export(141, 1);
|
||||
+ gpio_request(162, "sysfs");
|
||||
+ gpio_export(162, 1);
|
||||
+ }
|
||||
+
|
||||
+ if(!strcmp(expansionboard_name, "bbtoys-wifi"))
|
||||
+ {
|
||||
+ if (wl12xx_set_platform_data(&omap_beagle_wlan_data))
|
||||
+ pr_err("error setting wl12xx data\n");
|
||||
+ printk(KERN_INFO "Beagle expansionboard: registering wl12xx bt platform device\n");
|
||||
+ platform_device_register(&wl12xx_device);
|
||||
+ printk(KERN_INFO "Beagle expansionboard: registering wl12xx wifi platform device\n");
|
||||
+ platform_device_register(&omap_vwlan_device);
|
||||
+ }
|
||||
+
|
||||
usb_musb_init(NULL);
|
||||
usbhs_init(&usbhs_bdata);
|
||||
omap_nand_flash_init(NAND_BUSWIDTH_16, omap3beagle_nand_partitions,
|
||||
@@ -558,6 +822,8 @@ static void __init omap3_beagle_init(void)
|
||||
beagle_opp_init();
|
||||
}
|
||||
|
||||
+early_param("buddy", expansionboard_setup);
|
||||
+
|
||||
MACHINE_START(OMAP3_BEAGLE, "OMAP3 Beagle Board")
|
||||
/* Maintainer: Syed Mohammed Khasim - http://beagleboard.org */
|
||||
.boot_params = 0x80000100,
|
||||
--
|
||||
1.6.6.1
|
||||
|
||||
@@ -1,26 +0,0 @@
|
||||
From 6bdb8e890f8e5d11be3c4953d7d10f4a5f160cd4 Mon Sep 17 00:00:00 2001
|
||||
From: Koen Kooi <koen@dominion.thruhere.net>
|
||||
Date: Thu, 21 Jul 2011 12:59:20 +0200
|
||||
Subject: [PATCH 2/3] HACK: OMAP3: beagle: switch to GPTIMER1
|
||||
|
||||
Breaks with B3 and older due to clock noise
|
||||
|
||||
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
|
||||
---
|
||||
arch/arm/mach-omap2/board-omap3beagle.c | 2 +-
|
||||
1 files changed, 1 insertions(+), 1 deletions(-)
|
||||
|
||||
diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c
|
||||
index f26a9a8..a04f5a0 100644
|
||||
--- a/arch/arm/mach-omap2/board-omap3beagle.c
|
||||
+++ b/arch/arm/mach-omap2/board-omap3beagle.c
|
||||
@@ -832,5 +832,5 @@ MACHINE_START(OMAP3_BEAGLE, "OMAP3 Beagle Board")
|
||||
.init_early = omap3_beagle_init_early,
|
||||
.init_irq = omap3_beagle_init_irq,
|
||||
.init_machine = omap3_beagle_init,
|
||||
- .timer = &omap3_secure_timer,
|
||||
+ .timer = &omap3_timer,
|
||||
MACHINE_END
|
||||
--
|
||||
1.6.6.1
|
||||
|
||||
@@ -1,31 +0,0 @@
|
||||
From 6667757c5f8a473b9cbbe5f6d64eee65a52aad54 Mon Sep 17 00:00:00 2001
|
||||
From: Koen Kooi <koen@dominion.thruhere.net>
|
||||
Date: Wed, 25 May 2011 08:57:40 +0200
|
||||
Subject: [PATCH 3/3] OMAP3: beagle: HACK! add in 1GHz OPP
|
||||
|
||||
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
|
||||
---
|
||||
arch/arm/mach-omap2/board-omap3beagle.c | 2 ++
|
||||
1 files changed, 2 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c
|
||||
index a04f5a0..5e1d9f9 100644
|
||||
--- a/arch/arm/mach-omap2/board-omap3beagle.c
|
||||
+++ b/arch/arm/mach-omap2/board-omap3beagle.c
|
||||
@@ -701,11 +701,13 @@ static void __init beagle_opp_init(void)
|
||||
/* Enable MPU 1GHz and lower opps */
|
||||
dev = &mh->od->pdev.dev;
|
||||
r = opp_enable(dev, 800000000);
|
||||
+ r |= opp_enable(dev, 1000000000);
|
||||
/* TODO: MPU 1GHz needs SR and ABB */
|
||||
|
||||
/* Enable IVA 800MHz and lower opps */
|
||||
dev = &dh->od->pdev.dev;
|
||||
r |= opp_enable(dev, 660000000);
|
||||
+ r |= opp_enable(dev, 800000000);
|
||||
/* TODO: DSP 800MHz needs SR and ABB */
|
||||
if (r) {
|
||||
pr_err("%s: failed to enable higher opp %d\n",
|
||||
--
|
||||
1.6.6.1
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,79 +0,0 @@
|
||||
Delivered-To: koen@dominion.thruhere.net
|
||||
Received: by 10.236.157.72 with SMTP id n48cs4581yhk;
|
||||
Fri, 5 Aug 2011 00:10:45 -0700 (PDT)
|
||||
Received: by 10.147.146.12 with SMTP id y12mr1585882yan.12.1312528245335;
|
||||
Fri, 05 Aug 2011 00:10:45 -0700 (PDT)
|
||||
Return-Path: <archit@ti.com>
|
||||
Received: from bear.ext.ti.com (bear.ext.ti.com [192.94.94.41])
|
||||
by mx.google.com with ESMTPS id x20si3422127ani.205.2011.08.05.00.10.45
|
||||
(version=TLSv1/SSLv3 cipher=OTHER);
|
||||
Fri, 05 Aug 2011 00:10:45 -0700 (PDT)
|
||||
Received-SPF: pass (google.com: domain of archit@ti.com designates 192.94.94.41 as permitted sender) client-ip=192.94.94.41;
|
||||
Authentication-Results: mx.google.com; spf=pass (google.com: domain of archit@ti.com designates 192.94.94.41 as permitted sender) smtp.mail=archit@ti.com
|
||||
Received: from dlep33.itg.ti.com ([157.170.170.112])
|
||||
by bear.ext.ti.com (8.13.7/8.13.7) with ESMTP id p757AiHb023389
|
||||
(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
|
||||
Fri, 5 Aug 2011 02:10:44 -0500
|
||||
Received: from dlep26.itg.ti.com (smtp-le.itg.ti.com [157.170.170.27])
|
||||
by dlep33.itg.ti.com (8.13.7/8.13.8) with ESMTP id p757AiWp004418;
|
||||
Fri, 5 Aug 2011 02:10:44 -0500 (CDT)
|
||||
Received: from dlee73.ent.ti.com (localhost [127.0.0.1])
|
||||
by dlep26.itg.ti.com (8.13.8/8.13.8) with ESMTP id p757AiBJ012377;
|
||||
Fri, 5 Aug 2011 02:10:44 -0500 (CDT)
|
||||
Received: from dlelxv23.itg.ti.com (172.17.1.198) by DLEE73.ent.ti.com
|
||||
(157.170.170.88) with Microsoft SMTP Server id 8.3.106.1; Fri, 5 Aug 2011
|
||||
02:10:44 -0500
|
||||
Received: from legion.dal.design.ti.com (legion.dal.design.ti.com
|
||||
[128.247.22.53]) by dlelxv23.itg.ti.com (8.13.8/8.13.8) with ESMTP id
|
||||
p757Ai9V018852; Fri, 5 Aug 2011 02:10:44 -0500
|
||||
Received: from localhost (a0393947pc.apr.dhcp.ti.com [172.24.137.144]) by
|
||||
legion.dal.design.ti.com (8.11.7p1+Sun/8.11.7) with ESMTP id p757Aef10060;
|
||||
Fri, 5 Aug 2011 02:10:41 -0500 (CDT)
|
||||
From: Archit Taneja <archit@ti.com>
|
||||
To: <hvaibhav@ti.com>, <linux-media@vger.kernel.org>
|
||||
CC: <koen@dominion.thruhere.net>, <tomi.valkeinen@ti.com>,
|
||||
<linux-omap@vger.kernel.org>, Archit Taneja <archit@ti.com>
|
||||
Subject: [PATCH] [media] OMAP_VOUT: Fix build break caused by update_mode removal in DSS2
|
||||
Date: Fri, 5 Aug 2011 12:49:21 +0530
|
||||
Message-ID: <1312528761-18241-1-git-send-email-archit@ti.com>
|
||||
X-Mailer: git-send-email 1.7.1
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain
|
||||
|
||||
The DSS2 driver does not support the configuration of the update_mode of a
|
||||
panel anymore. Remove the setting of update_mode done in omap_vout_probe().
|
||||
Ignore configuration of TE since omap_vout driver doesn't support manual update
|
||||
displays anyway.
|
||||
|
||||
Signed-off-by: Archit Taneja <archit@ti.com>
|
||||
---
|
||||
drivers/media/video/omap/omap_vout.c | 13 -------------
|
||||
1 files changed, 0 insertions(+), 13 deletions(-)
|
||||
|
||||
diff --git a/drivers/media/video/omap/omap_vout.c b/drivers/media/video/omap/omap_vout.c
|
||||
index b5ef362..b3a5ecd 100644
|
||||
--- a/drivers/media/video/omap/omap_vout.c
|
||||
+++ b/drivers/media/video/omap/omap_vout.c
|
||||
@@ -2194,19 +2194,6 @@ static int __init omap_vout_probe(struct platform_device *pdev)
|
||||
"'%s' Display already enabled\n",
|
||||
def_display->name);
|
||||
}
|
||||
- /* set the update mode */
|
||||
- if (def_display->caps &
|
||||
- OMAP_DSS_DISPLAY_CAP_MANUAL_UPDATE) {
|
||||
- if (dssdrv->enable_te)
|
||||
- dssdrv->enable_te(def_display, 0);
|
||||
- if (dssdrv->set_update_mode)
|
||||
- dssdrv->set_update_mode(def_display,
|
||||
- OMAP_DSS_UPDATE_MANUAL);
|
||||
- } else {
|
||||
- if (dssdrv->set_update_mode)
|
||||
- dssdrv->set_update_mode(def_display,
|
||||
- OMAP_DSS_UPDATE_AUTO);
|
||||
- }
|
||||
}
|
||||
}
|
||||
|
||||
--
|
||||
1.7.1
|
||||
|
||||
@@ -1,46 +0,0 @@
|
||||
From 428afa6e7a96419f6f17158a9ac38ab24d664997 Mon Sep 17 00:00:00 2001
|
||||
From: Keerthy <j-keerthy@ti.com>
|
||||
Date: Wed, 4 May 2011 01:14:50 +0530
|
||||
Subject: [PATCH 1/2] Enabling Hwmon driver for twl4030-madc
|
||||
|
||||
Signed-off-by: Keerthy <j-keerthy@ti.com>
|
||||
---
|
||||
drivers/mfd/twl-core.c | 15 +++++++++++++++
|
||||
1 files changed, 15 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/drivers/mfd/twl-core.c b/drivers/mfd/twl-core.c
|
||||
index a2eddc7..81fcf18 100644
|
||||
--- a/drivers/mfd/twl-core.c
|
||||
+++ b/drivers/mfd/twl-core.c
|
||||
@@ -83,6 +83,13 @@
|
||||
#define twl_has_madc() false
|
||||
#endif
|
||||
|
||||
+#if defined(CONFIG_SENSORS_TWL4030_MADC) ||\
|
||||
+ defined(CONFIG_SENSORS_TWL4030_MADC_MODULE)
|
||||
+#define twl_has_madc_hwmon() true
|
||||
+#else
|
||||
+#define twl_has_madc_hwmon() false
|
||||
+#endif
|
||||
+
|
||||
#ifdef CONFIG_TWL4030_POWER
|
||||
#define twl_has_power() true
|
||||
#else
|
||||
@@ -669,6 +676,14 @@ add_children(struct twl4030_platform_data *pdata, unsigned long features)
|
||||
return PTR_ERR(child);
|
||||
}
|
||||
|
||||
+if (twl_has_madc_hwmon()) {
|
||||
+ child = add_child(2, "twl4030_madc_hwmon",
|
||||
+ NULL, 0,
|
||||
+ true, pdata->irq_base + MADC_INTR_OFFSET, 0);
|
||||
+ if (IS_ERR(child))
|
||||
+ return PTR_ERR(child);
|
||||
+ }
|
||||
+
|
||||
if (twl_has_rtc()) {
|
||||
/*
|
||||
* REVISIT platform_data here currently might expose the
|
||||
--
|
||||
1.6.6.1
|
||||
|
||||
@@ -1,54 +0,0 @@
|
||||
From fbfdf09f148219d48ee35e830923ca75bbd0b91b Mon Sep 17 00:00:00 2001
|
||||
From: Steve Sakoman <steve@sakoman.com>
|
||||
Date: Sat, 23 Jan 2010 06:26:54 -0800
|
||||
Subject: [PATCH 2/2] mfd: twl-core: enable madc clock
|
||||
|
||||
Now that the madc driver has been merged it is also necessary to enable the clock to the madc block
|
||||
|
||||
Signed-off-by: Steve Sakoman <steve@sakoman.com>
|
||||
---
|
||||
drivers/mfd/twl-core.c | 8 ++++++++
|
||||
include/linux/i2c/twl.h | 1 +
|
||||
2 files changed, 9 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/drivers/mfd/twl-core.c b/drivers/mfd/twl-core.c
|
||||
index 81fcf18..08aa64f 100644
|
||||
--- a/drivers/mfd/twl-core.c
|
||||
+++ b/drivers/mfd/twl-core.c
|
||||
@@ -217,6 +217,11 @@
|
||||
|
||||
/* Few power values */
|
||||
#define R_CFG_BOOT 0x05
|
||||
+#define R_GPBR1 0x0C
|
||||
+
|
||||
+/* MADC clock values for R_GPBR1 */
|
||||
+#define MADC_HFCLK_EN 0x80
|
||||
+#define DEFAULT_MADC_CLK_EN 0x10
|
||||
|
||||
/* some fields in R_CFG_BOOT */
|
||||
#define HFCLK_FREQ_19p2_MHZ (1 << 0)
|
||||
@@ -1151,6 +1156,9 @@ static void clocks_init(struct device *dev,
|
||||
|
||||
e |= unprotect_pm_master();
|
||||
/* effect->MADC+USB ck en */
|
||||
+ if (twl_has_madc())
|
||||
+ e |= twl_i2c_write_u8(TWL_MODULE_INTBR,
|
||||
+ MADC_HFCLK_EN | DEFAULT_MADC_CLK_EN, R_GPBR1);
|
||||
e |= twl_i2c_write_u8(TWL_MODULE_PM_MASTER, ctrl, R_CFG_BOOT);
|
||||
e |= protect_pm_master();
|
||||
|
||||
diff --git a/include/linux/i2c/twl.h b/include/linux/i2c/twl.h
|
||||
index 114c0f6..f060751 100644
|
||||
--- a/include/linux/i2c/twl.h
|
||||
+++ b/include/linux/i2c/twl.h
|
||||
@@ -74,6 +74,7 @@
|
||||
|
||||
#define TWL_MODULE_USB TWL4030_MODULE_USB
|
||||
#define TWL_MODULE_AUDIO_VOICE TWL4030_MODULE_AUDIO_VOICE
|
||||
+#define TWL_MODULE_INTBR TWL4030_MODULE_INTBR
|
||||
#define TWL_MODULE_PIH TWL4030_MODULE_PIH
|
||||
#define TWL_MODULE_MADC TWL4030_MODULE_MADC
|
||||
#define TWL_MODULE_MAIN_CHARGE TWL4030_MODULE_MAIN_CHARGE
|
||||
--
|
||||
1.6.6.1
|
||||
|
||||
@@ -1,27 +0,0 @@
|
||||
#!/bin/bash
|
||||
# (c) 2009 - 2011 Koen Kooi <koen@dominion.thruhere.net>
|
||||
# This script will take a set of directories with patches and make a git tree out of it
|
||||
# After all the patches are applied it will output a SRC_URI fragment you can copy/paste into a recipe
|
||||
|
||||
TAG="mainline/master"
|
||||
EXTRATAG="-3.1"
|
||||
|
||||
git fetch mainline
|
||||
git am --abort
|
||||
git reset --hard ${TAG}
|
||||
rm export -rf
|
||||
|
||||
previous=${TAG}
|
||||
PATCHSET="beagle madc sgx"
|
||||
|
||||
# apply patches
|
||||
for patchset in ${PATCHSET} ; do
|
||||
git am $patchset/* && git tag "${patchset}${EXTRATAG}" -f
|
||||
done
|
||||
|
||||
# export patches and output SRC_URI for them
|
||||
for patchset in ${PATCHSET} ; do
|
||||
mkdir export/$patchset -p
|
||||
( cd export/$patchset && git format-patch ${previous}..${patchset}${EXTRATAG} >& /dev/null && for i in *.patch ; do echo " file://${patchset}/$i \\" ; done )
|
||||
previous=${patchset}${EXTRATAG}
|
||||
done
|
||||
@@ -1,67 +0,0 @@
|
||||
From 927d1d96b5c4d3439a301b73804ade67b8cdd81a Mon Sep 17 00:00:00 2001
|
||||
From: Vikram Pandita <vikram.pandita@ti.com>
|
||||
Date: Tue, 31 May 2011 09:24:58 +0100
|
||||
Subject: [PATCH] ARM: L2: Add and export outer_clean_all
|
||||
|
||||
The Errata 588369 and 539766 demands that clean all operation be done
|
||||
as clean each way at a time
|
||||
|
||||
This patch also raps the implementation under the CONFIG errata
|
||||
macro so that for non-errata version silicon it can be disabled
|
||||
|
||||
Signed-off-by: Vikram Pandita <vikram.pandita@ti.com>
|
||||
Cc: Santosh Shilimkar <santosh.shilimkar@ti.com>
|
||||
Cc: Woodruff, Richard <r-woodruff2@ti.com>
|
||||
---
|
||||
arch/arm/include/asm/outercache.h | 8 ++++++++
|
||||
arch/arm/mm/cache-l2x0.c | 1 +
|
||||
2 files changed, 9 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/arch/arm/include/asm/outercache.h b/arch/arm/include/asm/outercache.h
|
||||
index d838743..fa8cbd8 100644
|
||||
--- a/arch/arm/include/asm/outercache.h
|
||||
+++ b/arch/arm/include/asm/outercache.h
|
||||
@@ -28,6 +28,7 @@ struct outer_cache_fns {
|
||||
void (*clean_range)(unsigned long, unsigned long);
|
||||
void (*flush_range)(unsigned long, unsigned long);
|
||||
void (*flush_all)(void);
|
||||
+ void (*clean_all)(void);
|
||||
void (*inv_all)(void);
|
||||
void (*disable)(void);
|
||||
#ifdef CONFIG_OUTER_CACHE_SYNC
|
||||
@@ -61,6 +62,11 @@ static inline void outer_flush_all(void)
|
||||
if (outer_cache.flush_all)
|
||||
outer_cache.flush_all();
|
||||
}
|
||||
+static inline void outer_clean_all(void)
|
||||
+{
|
||||
+ if (outer_cache.clean_all)
|
||||
+ outer_cache.clean_all();
|
||||
+}
|
||||
|
||||
static inline void outer_inv_all(void)
|
||||
{
|
||||
@@ -97,6 +103,8 @@ static inline void outer_sync(void)
|
||||
#else
|
||||
static inline void outer_sync(void)
|
||||
{ }
|
||||
+static inline void outer_clean_all(void)
|
||||
+{ }
|
||||
#endif
|
||||
|
||||
#endif /* __ASM_OUTERCACHE_H */
|
||||
diff --git a/arch/arm/mm/cache-l2x0.c b/arch/arm/mm/cache-l2x0.c
|
||||
index 44c0867..10b79d6 100644
|
||||
--- a/arch/arm/mm/cache-l2x0.c
|
||||
+++ b/arch/arm/mm/cache-l2x0.c
|
||||
@@ -346,6 +346,7 @@ void __init l2x0_init(void __iomem *base, __u32 aux_val, __u32 aux_mask)
|
||||
outer_cache.inv_all = l2x0_inv_all;
|
||||
outer_cache.disable = l2x0_disable;
|
||||
outer_cache.set_debug = l2x0_set_debug;
|
||||
+ outer_cache.clean_all = l2x0_clean_all;
|
||||
|
||||
printk(KERN_INFO "%s cache controller enabled\n", type);
|
||||
printk(KERN_INFO "l2x0: %d ways, CACHE_ID 0x%08x, AUX_CTRL 0x%08x, Cache size: %d B\n",
|
||||
--
|
||||
1.6.6.1
|
||||
|
||||
@@ -1,196 +0,0 @@
|
||||
From ba3e97075ad35eeaf35191c4e5c2b90de5d96209 Mon Sep 17 00:00:00 2001
|
||||
From: Fernandes, Joel A <joelagnel@ti.com>
|
||||
Date: Tue, 7 Jun 2011 15:54:45 -0500
|
||||
Subject: [PATCH 01/10] OMAP3: beagle: add support for beagleboard xM revision C
|
||||
|
||||
OMAP3: beagle: add support for beagleboard xM revision C
|
||||
|
||||
The USB enable GPIO has been in beagleboard xM revision C.
|
||||
The USER button has been moved since beagleboard xM.
|
||||
Also, board specific initialization has been moved to beagle_config struct
|
||||
and initialized in omap3_beagle_init_rev. Default values in struct are for xMC.
|
||||
|
||||
Signed-off-by: Joel A Fernandes <joelagnel@ti.com>
|
||||
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
|
||||
---
|
||||
arch/arm/mach-omap2/board-omap3beagle.c | 78 ++++++++++++++++++++-----------
|
||||
1 files changed, 51 insertions(+), 27 deletions(-)
|
||||
|
||||
diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c
|
||||
index 34f8411..32f5f89 100644
|
||||
--- a/arch/arm/mach-omap2/board-omap3beagle.c
|
||||
+++ b/arch/arm/mach-omap2/board-omap3beagle.c
|
||||
@@ -60,7 +60,8 @@
|
||||
* AXBX = GPIO173, GPIO172, GPIO171: 1 1 1
|
||||
* C1_3 = GPIO173, GPIO172, GPIO171: 1 1 0
|
||||
* C4 = GPIO173, GPIO172, GPIO171: 1 0 1
|
||||
- * XM = GPIO173, GPIO172, GPIO171: 0 0 0
|
||||
+ * XMA/XMB = GPIO173, GPIO172, GPIO171: 0 0 0
|
||||
+ * XMC = GPIO173, GPIO172, GPIO171: 0 1 0
|
||||
*/
|
||||
enum {
|
||||
OMAP3BEAGLE_BOARD_UNKN = 0,
|
||||
@@ -68,14 +69,26 @@ enum {
|
||||
OMAP3BEAGLE_BOARD_C1_3,
|
||||
OMAP3BEAGLE_BOARD_C4,
|
||||
OMAP3BEAGLE_BOARD_XM,
|
||||
+ OMAP3BEAGLE_BOARD_XMC,
|
||||
};
|
||||
|
||||
static u8 omap3_beagle_version;
|
||||
|
||||
-static u8 omap3_beagle_get_rev(void)
|
||||
-{
|
||||
- return omap3_beagle_version;
|
||||
-}
|
||||
+/*
|
||||
+ * Board-specific configuration
|
||||
+ * Defaults to BeagleBoard-xMC
|
||||
+ */
|
||||
+static struct {
|
||||
+ int mmc1_gpio_wp;
|
||||
+ int usb_pwr_level;
|
||||
+ int reset_gpio;
|
||||
+ int usr_button_gpio;
|
||||
+} beagle_config = {
|
||||
+ .mmc1_gpio_wp = -EINVAL,
|
||||
+ .usb_pwr_level = GPIOF_OUT_INIT_LOW,
|
||||
+ .reset_gpio = 129,
|
||||
+ .usr_button_gpio = 4,
|
||||
+};
|
||||
|
||||
static struct gpio omap3_beagle_rev_gpios[] __initdata = {
|
||||
{ 171, GPIOF_IN, "rev_id_0" },
|
||||
@@ -110,18 +123,32 @@ static void __init omap3_beagle_init_rev(void)
|
||||
case 7:
|
||||
printk(KERN_INFO "OMAP3 Beagle Rev: Ax/Bx\n");
|
||||
omap3_beagle_version = OMAP3BEAGLE_BOARD_AXBX;
|
||||
+ beagle_config.mmc1_gpio_wp = 29;
|
||||
+ beagle_config.reset_gpio = 170;
|
||||
+ beagle_config.usr_button_gpio = 7;
|
||||
break;
|
||||
case 6:
|
||||
printk(KERN_INFO "OMAP3 Beagle Rev: C1/C2/C3\n");
|
||||
omap3_beagle_version = OMAP3BEAGLE_BOARD_C1_3;
|
||||
+ beagle_config.mmc1_gpio_wp = 23;
|
||||
+ beagle_config.reset_gpio = 170;
|
||||
+ beagle_config.usr_button_gpio = 7;
|
||||
break;
|
||||
case 5:
|
||||
printk(KERN_INFO "OMAP3 Beagle Rev: C4\n");
|
||||
omap3_beagle_version = OMAP3BEAGLE_BOARD_C4;
|
||||
+ beagle_config.mmc1_gpio_wp = 23;
|
||||
+ beagle_config.reset_gpio = 170;
|
||||
+ beagle_config.usr_button_gpio = 7;
|
||||
break;
|
||||
case 0:
|
||||
- printk(KERN_INFO "OMAP3 Beagle Rev: xM\n");
|
||||
+ printk(KERN_INFO "OMAP3 Beagle Rev: xM Ax/Bx\n");
|
||||
omap3_beagle_version = OMAP3BEAGLE_BOARD_XM;
|
||||
+ beagle_config.usb_pwr_level = GPIOF_OUT_INIT_HIGH;
|
||||
+ break;
|
||||
+ case 2:
|
||||
+ printk(KERN_INFO "OMAP3 Beagle Rev: xM C\n");
|
||||
+ omap3_beagle_version = OMAP3BEAGLE_BOARD_XMC;
|
||||
break;
|
||||
default:
|
||||
printk(KERN_INFO "OMAP3 Beagle Rev: unknown %hd\n", beagle_rev);
|
||||
@@ -225,7 +252,7 @@ static struct omap2_hsmmc_info mmc[] = {
|
||||
{
|
||||
.mmc = 1,
|
||||
.caps = MMC_CAP_4_BIT_DATA | MMC_CAP_8_BIT_DATA,
|
||||
- .gpio_wp = 29,
|
||||
+ .gpio_wp = -EINVAL,
|
||||
},
|
||||
{} /* Terminator */
|
||||
};
|
||||
@@ -243,17 +270,11 @@ static struct gpio_led gpio_leds[];
|
||||
static int beagle_twl_gpio_setup(struct device *dev,
|
||||
unsigned gpio, unsigned ngpio)
|
||||
{
|
||||
- int r, usb_pwr_level;
|
||||
-
|
||||
- if (omap3_beagle_get_rev() == OMAP3BEAGLE_BOARD_XM) {
|
||||
- mmc[0].gpio_wp = -EINVAL;
|
||||
- } else if ((omap3_beagle_get_rev() == OMAP3BEAGLE_BOARD_C1_3) ||
|
||||
- (omap3_beagle_get_rev() == OMAP3BEAGLE_BOARD_C4)) {
|
||||
- omap_mux_init_gpio(23, OMAP_PIN_INPUT);
|
||||
- mmc[0].gpio_wp = 23;
|
||||
- } else {
|
||||
- omap_mux_init_gpio(29, OMAP_PIN_INPUT);
|
||||
- }
|
||||
+ int r;
|
||||
+
|
||||
+ if (beagle_config.mmc1_gpio_wp != -EINVAL)
|
||||
+ omap_mux_init_gpio(beagle_config.mmc1_gpio_wp, OMAP_PIN_INPUT);
|
||||
+ mmc[0].gpio_wp = beagle_config.mmc1_gpio_wp;
|
||||
/* gpio + 0 is "mmc0_cd" (input/IRQ) */
|
||||
mmc[0].gpio_cd = gpio + 0;
|
||||
omap2_hsmmc_init(mmc);
|
||||
@@ -263,9 +284,8 @@ static int beagle_twl_gpio_setup(struct device *dev,
|
||||
* high / others active low)
|
||||
* DVI reset GPIO is different between beagle revisions
|
||||
*/
|
||||
- if (omap3_beagle_get_rev() == OMAP3BEAGLE_BOARD_XM) {
|
||||
- usb_pwr_level = GPIOF_OUT_INIT_HIGH;
|
||||
- beagle_dvi_device.reset_gpio = 129;
|
||||
+ /* Valid for all -xM revisions */
|
||||
+ if (cpu_is_omap3630()) {
|
||||
/*
|
||||
* gpio + 1 on Xm controls the TFP410's enable line (active low)
|
||||
* gpio + 2 control varies depending on the board rev as below:
|
||||
@@ -283,8 +303,6 @@ static int beagle_twl_gpio_setup(struct device *dev,
|
||||
pr_err("%s: unable to configure DVI_LDO_EN\n",
|
||||
__func__);
|
||||
} else {
|
||||
- usb_pwr_level = GPIOF_OUT_INIT_LOW;
|
||||
- beagle_dvi_device.reset_gpio = 170;
|
||||
/*
|
||||
* REVISIT: need ehci-omap hooks for external VBUS
|
||||
* power switch and overcurrent detect
|
||||
@@ -292,8 +310,10 @@ static int beagle_twl_gpio_setup(struct device *dev,
|
||||
if (gpio_request_one(gpio + 1, GPIOF_IN, "EHCI_nOC"))
|
||||
pr_err("%s: unable to configure EHCI_nOC\n", __func__);
|
||||
}
|
||||
+ beagle_dvi_device.reset_gpio = beagle_config.reset_gpio;
|
||||
|
||||
- gpio_request_one(gpio + TWL4030_GPIO_MAX, usb_pwr_level, "nEN_USB_PWR");
|
||||
+ gpio_request_one(gpio + TWL4030_GPIO_MAX, beagle_config.usb_pwr_level,
|
||||
+ "nEN_USB_PWR");
|
||||
|
||||
/* TWL4030_GPIO_MAX + 1 == ledB, PMU_STAT (out, active low LED) */
|
||||
gpio_leds[2].gpio = gpio + TWL4030_GPIO_MAX + 1;
|
||||
@@ -404,7 +424,8 @@ static struct platform_device leds_gpio = {
|
||||
static struct gpio_keys_button gpio_buttons[] = {
|
||||
{
|
||||
.code = BTN_EXTRA,
|
||||
- .gpio = 7,
|
||||
+ /* Dynamically assigned depending on board */
|
||||
+ .gpio = -EINVAL,
|
||||
.desc = "user",
|
||||
.wakeup = 1,
|
||||
},
|
||||
@@ -468,8 +489,8 @@ static void __init beagle_opp_init(void)
|
||||
return;
|
||||
}
|
||||
|
||||
- /* Custom OPP enabled for XM */
|
||||
- if (omap3_beagle_get_rev() == OMAP3BEAGLE_BOARD_XM) {
|
||||
+ /* Custom OPP enabled for all xM versions */
|
||||
+ if (cpu_is_omap3630()) {
|
||||
struct omap_hwmod *mh = omap_hwmod_lookup("mpu");
|
||||
struct omap_hwmod *dh = omap_hwmod_lookup("iva");
|
||||
struct device *dev;
|
||||
@@ -509,6 +530,9 @@ static void __init omap3_beagle_init(void)
|
||||
omap3_mux_init(board_mux, OMAP_PACKAGE_CBB);
|
||||
omap3_beagle_init_rev();
|
||||
omap3_beagle_i2c_init();
|
||||
+
|
||||
+ gpio_buttons[0].gpio = beagle_config.usr_button_gpio;
|
||||
+
|
||||
platform_add_devices(omap3_beagle_devices,
|
||||
ARRAY_SIZE(omap3_beagle_devices));
|
||||
omap_display_init(&beagle_dss_data);
|
||||
--
|
||||
1.7.2.5
|
||||
|
||||
@@ -1,340 +0,0 @@
|
||||
From 73366785ad8400aa22ffc0822ecc701349477de9 Mon Sep 17 00:00:00 2001
|
||||
From: Koen Kooi <koen@dominion.thruhere.net>
|
||||
Date: Thu, 21 Jul 2011 14:29:42 +0200
|
||||
Subject: [PATCH 02/10] UNFINISHED: OMAP3: beagle: add support for expansionboards
|
||||
|
||||
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
|
||||
---
|
||||
arch/arm/mach-omap2/board-omap3beagle.c | 266 +++++++++++++++++++++++++++++++
|
||||
1 files changed, 266 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c
|
||||
index 32f5f89..f26a9a8 100644
|
||||
--- a/arch/arm/mach-omap2/board-omap3beagle.c
|
||||
+++ b/arch/arm/mach-omap2/board-omap3beagle.c
|
||||
@@ -21,6 +21,7 @@
|
||||
#include <linux/io.h>
|
||||
#include <linux/leds.h>
|
||||
#include <linux/gpio.h>
|
||||
+#include <linux/irq.h>
|
||||
#include <linux/input.h>
|
||||
#include <linux/gpio_keys.h>
|
||||
#include <linux/opp.h>
|
||||
@@ -156,6 +157,167 @@ static void __init omap3_beagle_init_rev(void)
|
||||
}
|
||||
}
|
||||
|
||||
+char expansionboard_name[16];
|
||||
+
|
||||
+#if defined(CONFIG_WL12XX) || defined(CONFIG_WL12XX_MODULE)
|
||||
+#include <linux/regulator/fixed.h>
|
||||
+#include <linux/wl12xx.h>
|
||||
+
|
||||
+#define OMAP_BEAGLE_WLAN_EN_GPIO (139)
|
||||
+#define OMAP_BEAGLE_BT_EN_GPIO (138)
|
||||
+#define OMAP_BEAGLE_WLAN_IRQ_GPIO (137)
|
||||
+#define OMAP_BEAGLE_FM_EN_BT_WU (136)
|
||||
+
|
||||
+struct wl12xx_platform_data omap_beagle_wlan_data __initdata = {
|
||||
+ .irq = OMAP_GPIO_IRQ(OMAP_BEAGLE_WLAN_IRQ_GPIO),
|
||||
+ .board_ref_clock = 2, /* 38.4 MHz */
|
||||
+};
|
||||
+
|
||||
+static int gpios[] = {OMAP_BEAGLE_BT_EN_GPIO, OMAP_BEAGLE_FM_EN_BT_WU, -1};
|
||||
+static struct platform_device wl12xx_device = {
|
||||
+ .name = "kim",
|
||||
+ .id = -1,
|
||||
+ .dev.platform_data = &gpios,
|
||||
+};
|
||||
+
|
||||
+static struct omap2_hsmmc_info mmcbbt[] = {
|
||||
+ {
|
||||
+ .mmc = 1,
|
||||
+ .caps = MMC_CAP_4_BIT_DATA | MMC_CAP_8_BIT_DATA,
|
||||
+ .gpio_wp = 29,
|
||||
+ },
|
||||
+ {
|
||||
+ .name = "wl1271",
|
||||
+ .mmc = 2,
|
||||
+ .caps = MMC_CAP_4_BIT_DATA | MMC_CAP_POWER_OFF_CARD,
|
||||
+ .gpio_wp = -EINVAL,
|
||||
+ .gpio_cd = -EINVAL,
|
||||
+ .ocr_mask = MMC_VDD_165_195,
|
||||
+ .nonremovable = true,
|
||||
+ },
|
||||
+ {} /* Terminator */
|
||||
+ };
|
||||
+
|
||||
+static struct regulator_consumer_supply beagle_vmmc2_supply =
|
||||
+ REGULATOR_SUPPLY("vmmc", "omap_hsmmc.1");
|
||||
+
|
||||
+static struct regulator_init_data beagle_vmmc2 = {
|
||||
+ .constraints = {
|
||||
+ .min_uV = 1850000,
|
||||
+ .max_uV = 1850000,
|
||||
+ .apply_uV = true,
|
||||
+ .valid_modes_mask = REGULATOR_MODE_NORMAL
|
||||
+ | REGULATOR_MODE_STANDBY,
|
||||
+ .valid_ops_mask = REGULATOR_CHANGE_MODE
|
||||
+ | REGULATOR_CHANGE_STATUS,
|
||||
+ },
|
||||
+ .num_consumer_supplies = 1,
|
||||
+ .consumer_supplies = &beagle_vmmc2_supply,
|
||||
+};
|
||||
+
|
||||
+static struct fixed_voltage_config beagle_vwlan = {
|
||||
+ .supply_name = "vwl1271",
|
||||
+ .microvolts = 1800000, /* 1.8V */
|
||||
+ .gpio = OMAP_BEAGLE_WLAN_EN_GPIO,
|
||||
+ .startup_delay = 70000, /* 70ms */
|
||||
+ .enable_high = 1,
|
||||
+ .enabled_at_boot = 0,
|
||||
+ .init_data = &beagle_vmmc2,
|
||||
+};
|
||||
+
|
||||
+static struct platform_device omap_vwlan_device = {
|
||||
+ .name = "reg-fixed-voltage",
|
||||
+ .id = 1,
|
||||
+ .dev = {
|
||||
+ .platform_data = &beagle_vwlan,
|
||||
+ },
|
||||
+};
|
||||
+#endif
|
||||
+
|
||||
+#if defined(CONFIG_ENC28J60) || defined(CONFIG_ENC28J60_MODULE)
|
||||
+
|
||||
+#include <plat/mcspi.h>
|
||||
+#include <linux/spi/spi.h>
|
||||
+
|
||||
+#define OMAP3BEAGLE_GPIO_ENC28J60_IRQ 157
|
||||
+
|
||||
+static struct omap2_mcspi_device_config enc28j60_spi_chip_info = {
|
||||
+ .turbo_mode = 0,
|
||||
+ .single_channel = 1, /* 0: slave, 1: master */
|
||||
+};
|
||||
+
|
||||
+static struct spi_board_info omap3beagle_zippy_spi_board_info[] __initdata = {
|
||||
+ {
|
||||
+ .modalias = "enc28j60",
|
||||
+ .bus_num = 4,
|
||||
+ .chip_select = 0,
|
||||
+ .max_speed_hz = 20000000,
|
||||
+ .controller_data = &enc28j60_spi_chip_info,
|
||||
+ },
|
||||
+};
|
||||
+
|
||||
+static void __init omap3beagle_enc28j60_init(void)
|
||||
+{
|
||||
+ if ((gpio_request(OMAP3BEAGLE_GPIO_ENC28J60_IRQ, "ENC28J60_IRQ") == 0) &&
|
||||
+ (gpio_direction_input(OMAP3BEAGLE_GPIO_ENC28J60_IRQ) == 0)) {
|
||||
+ gpio_export(OMAP3BEAGLE_GPIO_ENC28J60_IRQ, 0);
|
||||
+ omap3beagle_zippy_spi_board_info[0].irq = OMAP_GPIO_IRQ(OMAP3BEAGLE_GPIO_ENC28J60_IRQ);
|
||||
+ irq_set_irq_type(omap3beagle_zippy_spi_board_info[0].irq, IRQ_TYPE_EDGE_FALLING);
|
||||
+ } else {
|
||||
+ printk(KERN_ERR "could not obtain gpio for ENC28J60_IRQ\n");
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ spi_register_board_info(omap3beagle_zippy_spi_board_info,
|
||||
+ ARRAY_SIZE(omap3beagle_zippy_spi_board_info));
|
||||
+}
|
||||
+
|
||||
+#else
|
||||
+static inline void __init omap3beagle_enc28j60_init(void) { return; }
|
||||
+#endif
|
||||
+
|
||||
+#if defined(CONFIG_KS8851) || defined(CONFIG_KS8851_MODULE)
|
||||
+
|
||||
+#include <plat/mcspi.h>
|
||||
+#include <linux/spi/spi.h>
|
||||
+
|
||||
+#define OMAP3BEAGLE_GPIO_KS8851_IRQ 157
|
||||
+
|
||||
+static struct omap2_mcspi_device_config ks8851_spi_chip_info = {
|
||||
+ .turbo_mode = 0,
|
||||
+ .single_channel = 1, /* 0: slave, 1: master */
|
||||
+};
|
||||
+
|
||||
+static struct spi_board_info omap3beagle_zippy2_spi_board_info[] __initdata = {
|
||||
+ {
|
||||
+ .modalias = "ks8851",
|
||||
+ .bus_num = 4,
|
||||
+ .chip_select = 0,
|
||||
+ .max_speed_hz = 36000000,
|
||||
+ .controller_data = &ks8851_spi_chip_info,
|
||||
+ },
|
||||
+};
|
||||
+
|
||||
+static void __init omap3beagle_ks8851_init(void)
|
||||
+{
|
||||
+ if ((gpio_request(OMAP3BEAGLE_GPIO_KS8851_IRQ, "KS8851_IRQ") == 0) &&
|
||||
+ (gpio_direction_input(OMAP3BEAGLE_GPIO_KS8851_IRQ) == 0)) {
|
||||
+ gpio_export(OMAP3BEAGLE_GPIO_KS8851_IRQ, 0);
|
||||
+ omap3beagle_zippy2_spi_board_info[0].irq = OMAP_GPIO_IRQ(OMAP3BEAGLE_GPIO_KS8851_IRQ);
|
||||
+ irq_set_irq_type(omap3beagle_zippy2_spi_board_info[0].irq, IRQ_TYPE_EDGE_FALLING);
|
||||
+ } else {
|
||||
+ printk(KERN_ERR "could not obtain gpio for KS8851_IRQ\n");
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ spi_register_board_info(omap3beagle_zippy2_spi_board_info,
|
||||
+ ARRAY_SIZE(omap3beagle_zippy2_spi_board_info));
|
||||
+}
|
||||
+
|
||||
+#else
|
||||
+static inline void __init omap3beagle_ks8851_init(void) { return; }
|
||||
+#endif
|
||||
+
|
||||
static struct mtd_partition omap3beagle_nand_partitions[] = {
|
||||
/* All the partition sizes are listed in terms of NAND block size */
|
||||
{
|
||||
@@ -254,6 +416,12 @@ static struct omap2_hsmmc_info mmc[] = {
|
||||
.caps = MMC_CAP_4_BIT_DATA | MMC_CAP_8_BIT_DATA,
|
||||
.gpio_wp = -EINVAL,
|
||||
},
|
||||
+ {
|
||||
+ .mmc = 2,
|
||||
+ .caps = MMC_CAP_4_BIT_DATA,
|
||||
+ .transceiver = true,
|
||||
+ .ocr_mask = 0x00100000, /* 3.3V */
|
||||
+ },
|
||||
{} /* Terminator */
|
||||
};
|
||||
|
||||
@@ -277,7 +445,15 @@ static int beagle_twl_gpio_setup(struct device *dev,
|
||||
mmc[0].gpio_wp = beagle_config.mmc1_gpio_wp;
|
||||
/* gpio + 0 is "mmc0_cd" (input/IRQ) */
|
||||
mmc[0].gpio_cd = gpio + 0;
|
||||
+#if defined(CONFIG_WL12XX) || defined(CONFIG_WL12XX_MODULE)
|
||||
+ if(!strcmp(expansionboard_name, "bbtoys-wifi")) {
|
||||
+ omap2_hsmmc_init(mmcbbt);
|
||||
+ } else {
|
||||
+ omap2_hsmmc_init(mmc);
|
||||
+ }
|
||||
+#else
|
||||
omap2_hsmmc_init(mmc);
|
||||
+#endif
|
||||
|
||||
/*
|
||||
* TWL4030_GPIO_MAX + 0 == ledA, EHCI nEN_USB_PWR (out, XM active
|
||||
@@ -375,6 +551,19 @@ static struct i2c_board_info __initdata beagle_i2c_eeprom[] = {
|
||||
},
|
||||
};
|
||||
|
||||
+#if defined(CONFIG_RTC_DRV_DS1307) || \
|
||||
+ defined(CONFIG_RTC_DRV_DS1307_MODULE)
|
||||
+
|
||||
+static struct i2c_board_info __initdata beagle_i2c2_zippy[] = {
|
||||
+ {
|
||||
+ I2C_BOARD_INFO("eeprom", 0x50),
|
||||
+ I2C_BOARD_INFO("ds1307", 0x68),
|
||||
+ },
|
||||
+};
|
||||
+#else
|
||||
+static struct i2c_board_info __initdata beagle_i2c2_zippy[] = {};
|
||||
+#endif
|
||||
+
|
||||
static int __init omap3_beagle_i2c_init(void)
|
||||
{
|
||||
omap3_pmic_get_config(&beagle_twldata,
|
||||
@@ -479,6 +668,15 @@ static struct omap_board_mux board_mux[] __initdata = {
|
||||
};
|
||||
#endif
|
||||
|
||||
+static int __init expansionboard_setup(char *str)
|
||||
+{
|
||||
+ if (!str)
|
||||
+ return -EINVAL;
|
||||
+ strncpy(expansionboard_name, str, 16);
|
||||
+ printk(KERN_INFO "Beagle expansionboard: %s\n", expansionboard_name);
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
static void __init beagle_opp_init(void)
|
||||
{
|
||||
int r = 0;
|
||||
@@ -542,6 +740,72 @@ static void __init omap3_beagle_init(void)
|
||||
/* REVISIT leave DVI powered down until it's needed ... */
|
||||
gpio_request_one(170, GPIOF_OUT_INIT_HIGH, "DVI_nPD");
|
||||
|
||||
+ if(!strcmp(expansionboard_name, "zippy"))
|
||||
+ {
|
||||
+ printk(KERN_INFO "Beagle expansionboard: initializing enc28j60\n");
|
||||
+ omap3beagle_enc28j60_init();
|
||||
+ printk(KERN_INFO "Beagle expansionboard: assigning GPIO 141 and 162 to MMC1\n");
|
||||
+ mmc[1].gpio_wp = 141;
|
||||
+ mmc[1].gpio_cd = 162;
|
||||
+ printk(KERN_INFO "Beagle expansionboard: registering I2C2 for zippy board\n");
|
||||
+ omap_register_i2c_bus(2, 400, beagle_i2c2_zippy,
|
||||
+ ARRAY_SIZE(beagle_i2c2_zippy));
|
||||
+
|
||||
+ }
|
||||
+
|
||||
+ if(!strcmp(expansionboard_name, "zippy2"))
|
||||
+ {
|
||||
+ printk(KERN_INFO "Beagle expansionboard: initializing ks_8851\n");
|
||||
+ omap3beagle_ks8851_init();
|
||||
+ printk(KERN_INFO "Beagle expansionboard: assigning GPIO 141 and 162 to MMC1\n");
|
||||
+ mmc[1].gpio_wp = 141;
|
||||
+ mmc[1].gpio_cd = 162;
|
||||
+ printk(KERN_INFO "Beagle expansionboard: registering I2C2 for zippy2 board\n");
|
||||
+ omap_register_i2c_bus(2, 400, beagle_i2c2_zippy,
|
||||
+ ARRAY_SIZE(beagle_i2c2_zippy));
|
||||
+ }
|
||||
+
|
||||
+ if(!strcmp(expansionboard_name, "trainer"))
|
||||
+ {
|
||||
+ printk(KERN_INFO "Beagle expansionboard: exporting GPIOs 130-141,162 to userspace\n");
|
||||
+ gpio_request(130, "sysfs");
|
||||
+ gpio_export(130, 1);
|
||||
+ gpio_request(131, "sysfs");
|
||||
+ gpio_export(131, 1);
|
||||
+ gpio_request(132, "sysfs");
|
||||
+ gpio_export(132, 1);
|
||||
+ gpio_request(133, "sysfs");
|
||||
+ gpio_export(133, 1);
|
||||
+ gpio_request(134, "sysfs");
|
||||
+ gpio_export(134, 1);
|
||||
+ gpio_request(135, "sysfs");
|
||||
+ gpio_export(135, 1);
|
||||
+ gpio_request(136, "sysfs");
|
||||
+ gpio_export(136, 1);
|
||||
+ gpio_request(137, "sysfs");
|
||||
+ gpio_export(137, 1);
|
||||
+ gpio_request(138, "sysfs");
|
||||
+ gpio_export(138, 1);
|
||||
+ gpio_request(139, "sysfs");
|
||||
+ gpio_export(139, 1);
|
||||
+ gpio_request(140, "sysfs");
|
||||
+ gpio_export(140, 1);
|
||||
+ gpio_request(141, "sysfs");
|
||||
+ gpio_export(141, 1);
|
||||
+ gpio_request(162, "sysfs");
|
||||
+ gpio_export(162, 1);
|
||||
+ }
|
||||
+
|
||||
+ if(!strcmp(expansionboard_name, "bbtoys-wifi"))
|
||||
+ {
|
||||
+ if (wl12xx_set_platform_data(&omap_beagle_wlan_data))
|
||||
+ pr_err("error setting wl12xx data\n");
|
||||
+ printk(KERN_INFO "Beagle expansionboard: registering wl12xx bt platform device\n");
|
||||
+ platform_device_register(&wl12xx_device);
|
||||
+ printk(KERN_INFO "Beagle expansionboard: registering wl12xx wifi platform device\n");
|
||||
+ platform_device_register(&omap_vwlan_device);
|
||||
+ }
|
||||
+
|
||||
usb_musb_init(NULL);
|
||||
usbhs_init(&usbhs_bdata);
|
||||
omap_nand_flash_init(NAND_BUSWIDTH_16, omap3beagle_nand_partitions,
|
||||
@@ -558,6 +822,8 @@ static void __init omap3_beagle_init(void)
|
||||
beagle_opp_init();
|
||||
}
|
||||
|
||||
+early_param("buddy", expansionboard_setup);
|
||||
+
|
||||
MACHINE_START(OMAP3_BEAGLE, "OMAP3 Beagle Board")
|
||||
/* Maintainer: Syed Mohammed Khasim - http://beagleboard.org */
|
||||
.boot_params = 0x80000100,
|
||||
--
|
||||
1.7.2.5
|
||||
|
||||
@@ -1,26 +0,0 @@
|
||||
From a7e1724833070f01b82381f40b084fd33e46836d Mon Sep 17 00:00:00 2001
|
||||
From: Koen Kooi <koen@dominion.thruhere.net>
|
||||
Date: Thu, 21 Jul 2011 12:59:20 +0200
|
||||
Subject: [PATCH 03/10] HACK: OMAP3: beagle: switch to GPTIMER1
|
||||
|
||||
Breaks with B3 and older due to clock noise
|
||||
|
||||
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
|
||||
---
|
||||
arch/arm/mach-omap2/board-omap3beagle.c | 2 +-
|
||||
1 files changed, 1 insertions(+), 1 deletions(-)
|
||||
|
||||
diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c
|
||||
index f26a9a8..a04f5a0 100644
|
||||
--- a/arch/arm/mach-omap2/board-omap3beagle.c
|
||||
+++ b/arch/arm/mach-omap2/board-omap3beagle.c
|
||||
@@ -832,5 +832,5 @@ MACHINE_START(OMAP3_BEAGLE, "OMAP3 Beagle Board")
|
||||
.init_early = omap3_beagle_init_early,
|
||||
.init_irq = omap3_beagle_init_irq,
|
||||
.init_machine = omap3_beagle_init,
|
||||
- .timer = &omap3_secure_timer,
|
||||
+ .timer = &omap3_timer,
|
||||
MACHINE_END
|
||||
--
|
||||
1.7.2.5
|
||||
|
||||
@@ -1,31 +0,0 @@
|
||||
From 6ebc5081aba3428762e4e055a154fdda9ebe442e Mon Sep 17 00:00:00 2001
|
||||
From: Koen Kooi <koen@dominion.thruhere.net>
|
||||
Date: Wed, 25 May 2011 08:57:40 +0200
|
||||
Subject: [PATCH 04/10] OMAP3: beagle: HACK! add in 1GHz OPP
|
||||
|
||||
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
|
||||
---
|
||||
arch/arm/mach-omap2/board-omap3beagle.c | 2 ++
|
||||
1 files changed, 2 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c
|
||||
index a04f5a0..5e1d9f9 100644
|
||||
--- a/arch/arm/mach-omap2/board-omap3beagle.c
|
||||
+++ b/arch/arm/mach-omap2/board-omap3beagle.c
|
||||
@@ -701,11 +701,13 @@ static void __init beagle_opp_init(void)
|
||||
/* Enable MPU 1GHz and lower opps */
|
||||
dev = &mh->od->pdev.dev;
|
||||
r = opp_enable(dev, 800000000);
|
||||
+ r |= opp_enable(dev, 1000000000);
|
||||
/* TODO: MPU 1GHz needs SR and ABB */
|
||||
|
||||
/* Enable IVA 800MHz and lower opps */
|
||||
dev = &dh->od->pdev.dev;
|
||||
r |= opp_enable(dev, 660000000);
|
||||
+ r |= opp_enable(dev, 800000000);
|
||||
/* TODO: DSP 800MHz needs SR and ABB */
|
||||
if (r) {
|
||||
pr_err("%s: failed to enable higher opp %d\n",
|
||||
--
|
||||
1.7.2.5
|
||||
|
||||
@@ -1,202 +0,0 @@
|
||||
From f0a23fe6d3c8fc9bbb60a962114b64b923ca4515 Mon Sep 17 00:00:00 2001
|
||||
From: Sanjeev Premi <premi@ti.com>
|
||||
Date: Tue, 18 Jan 2011 13:19:55 +0530
|
||||
Subject: [PATCH 05/10] omap3: Add basic support for 720MHz part
|
||||
|
||||
This patch adds support for new speed enhanced parts with ARM
|
||||
and IVA running at 720MHz and 520MHz respectively. These parts
|
||||
can be probed at run-time by reading PRODID.SKUID[3:0] at
|
||||
0x4830A20C [1].
|
||||
|
||||
This patch specifically does following:
|
||||
* Detect devices capable of 720MHz.
|
||||
* Add new OPP
|
||||
* Ensure that OPP is conditionally enabled.
|
||||
* Check for presence of IVA before attempting to enable
|
||||
the corresponding OPP.
|
||||
|
||||
[1] http://focus.ti.com/lit/ug/spruff1d/spruff1d.pdf
|
||||
|
||||
Signed-off-by: Sanjeev Premi <premi@ti.com>
|
||||
---
|
||||
arch/arm/mach-omap2/control.h | 7 ++++
|
||||
arch/arm/mach-omap2/id.c | 10 +++++
|
||||
arch/arm/mach-omap2/opp3xxx_data.c | 63 ++++++++++++++++++++++++++++++++-
|
||||
arch/arm/plat-omap/include/plat/cpu.h | 2 +
|
||||
4 files changed, 81 insertions(+), 1 deletions(-)
|
||||
|
||||
diff --git a/arch/arm/mach-omap2/control.h b/arch/arm/mach-omap2/control.h
|
||||
index a016c8b..69d0b9c 100644
|
||||
--- a/arch/arm/mach-omap2/control.h
|
||||
+++ b/arch/arm/mach-omap2/control.h
|
||||
@@ -371,6 +371,13 @@
|
||||
#define FEAT_NEON 0
|
||||
#define FEAT_NEON_NONE 1
|
||||
|
||||
+/*
|
||||
+ * Product ID register
|
||||
+ */
|
||||
+#define OMAP3_PRODID 0x020C
|
||||
+
|
||||
+#define OMAP3_SKUID_MASK 0x0f
|
||||
+#define OMAP3_SKUID_720MHZ 0x08
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
#ifdef CONFIG_ARCH_OMAP2PLUS
|
||||
diff --git a/arch/arm/mach-omap2/id.c b/arch/arm/mach-omap2/id.c
|
||||
index 2537090..b6ed78a 100644
|
||||
--- a/arch/arm/mach-omap2/id.c
|
||||
+++ b/arch/arm/mach-omap2/id.c
|
||||
@@ -210,6 +210,15 @@ static void __init omap3_check_features(void)
|
||||
* TODO: Get additional info (where applicable)
|
||||
* e.g. Size of L2 cache.
|
||||
*/
|
||||
+
|
||||
+ /*
|
||||
+ * Does it support 720MHz?
|
||||
+ */
|
||||
+ status = (OMAP3_SKUID_MASK & read_tap_reg(OMAP3_PRODID));
|
||||
+
|
||||
+ if (status & OMAP3_SKUID_720MHZ) {
|
||||
+ omap3_features |= OMAP3_HAS_720MHZ;
|
||||
+ }
|
||||
}
|
||||
|
||||
static void __init ti816x_check_features(void)
|
||||
@@ -490,6 +499,7 @@ static void __init omap3_cpuinfo(void)
|
||||
OMAP3_SHOW_FEATURE(neon);
|
||||
OMAP3_SHOW_FEATURE(isp);
|
||||
OMAP3_SHOW_FEATURE(192mhz_clk);
|
||||
+ OMAP3_SHOW_FEATURE(720mhz);
|
||||
|
||||
printk(")\n");
|
||||
}
|
||||
diff --git a/arch/arm/mach-omap2/opp3xxx_data.c b/arch/arm/mach-omap2/opp3xxx_data.c
|
||||
index d95f3f9..44fbc84 100644
|
||||
--- a/arch/arm/mach-omap2/opp3xxx_data.c
|
||||
+++ b/arch/arm/mach-omap2/opp3xxx_data.c
|
||||
@@ -18,8 +18,10 @@
|
||||
* GNU General Public License for more details.
|
||||
*/
|
||||
#include <linux/module.h>
|
||||
+#include <linux/opp.h>
|
||||
|
||||
#include <plat/cpu.h>
|
||||
+#include <plat/omap_device.h>
|
||||
|
||||
#include "control.h"
|
||||
#include "omap_opp_data.h"
|
||||
@@ -98,6 +100,8 @@ static struct omap_opp_def __initdata omap34xx_opp_def_list[] = {
|
||||
OPP_INITIALIZER("mpu", true, 550000000, OMAP3430_VDD_MPU_OPP4_UV),
|
||||
/* MPU OPP5 */
|
||||
OPP_INITIALIZER("mpu", true, 600000000, OMAP3430_VDD_MPU_OPP5_UV),
|
||||
+ /* MPU OPP6 */
|
||||
+ OPP_INITIALIZER("mpu", false, 720000000, 1350000),
|
||||
|
||||
/*
|
||||
* L3 OPP1 - 41.5 MHz is disabled because: The voltage for that OPP is
|
||||
@@ -123,6 +127,8 @@ static struct omap_opp_def __initdata omap34xx_opp_def_list[] = {
|
||||
OPP_INITIALIZER("iva", true, 400000000, OMAP3430_VDD_MPU_OPP4_UV),
|
||||
/* DSP OPP5 */
|
||||
OPP_INITIALIZER("iva", true, 430000000, OMAP3430_VDD_MPU_OPP5_UV),
|
||||
+ /* DSP OPP6 */
|
||||
+ OPP_INITIALIZER("iva", false, 520000000, 1350000),
|
||||
};
|
||||
|
||||
static struct omap_opp_def __initdata omap36xx_opp_def_list[] = {
|
||||
@@ -150,6 +156,57 @@ static struct omap_opp_def __initdata omap36xx_opp_def_list[] = {
|
||||
OPP_INITIALIZER("iva", false, 800000000, OMAP3630_VDD_MPU_OPP1G_UV),
|
||||
};
|
||||
|
||||
+
|
||||
+/**
|
||||
+ * omap3_opp_enable_720Mhz() - Enable the OPP corresponding to 720MHz
|
||||
+ *
|
||||
+ * This function would be executed only if the silicon is capable of
|
||||
+ * running at the 720MHz.
|
||||
+ */
|
||||
+static int __init omap3_opp_enable_720Mhz(void)
|
||||
+{
|
||||
+ int r = -ENODEV;
|
||||
+ struct omap_hwmod *oh_mpu = omap_hwmod_lookup("mpu");
|
||||
+ struct omap_hwmod *oh_iva;
|
||||
+ struct platform_device *pdev;
|
||||
+
|
||||
+ if (!oh_mpu || !oh_mpu->od) {
|
||||
+ goto err;
|
||||
+ } else {
|
||||
+ pdev = &oh_mpu->od->pdev;
|
||||
+
|
||||
+ r = opp_enable(&pdev->dev, 720000000);
|
||||
+ if (r < 0) {
|
||||
+ dev_err(&pdev->dev,
|
||||
+ "opp_enable() failed for mpu@720MHz");
|
||||
+ goto err;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ if (omap3_has_iva()) {
|
||||
+ oh_iva = omap_hwmod_lookup("iva");
|
||||
+
|
||||
+ if (!oh_iva || !oh_iva->od) {
|
||||
+ r = -ENODEV;
|
||||
+ goto err;
|
||||
+ } else {
|
||||
+ pdev = &oh_iva->od->pdev;
|
||||
+
|
||||
+ r = opp_enable(&pdev->dev, 520000000);
|
||||
+ if (r < 0) {
|
||||
+ dev_err(&pdev->dev,
|
||||
+ "opp_enable() failed for iva@520MHz");
|
||||
+ goto err;
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ dev_info(&pdev->dev, "Enabled OPP corresponding to 720MHz\n");
|
||||
+
|
||||
+err:
|
||||
+ return r;
|
||||
+}
|
||||
+
|
||||
/**
|
||||
* omap3_opp_init() - initialize omap3 opp table
|
||||
*/
|
||||
@@ -163,10 +220,14 @@ int __init omap3_opp_init(void)
|
||||
if (cpu_is_omap3630())
|
||||
r = omap_init_opp_table(omap36xx_opp_def_list,
|
||||
ARRAY_SIZE(omap36xx_opp_def_list));
|
||||
- else
|
||||
+ else {
|
||||
r = omap_init_opp_table(omap34xx_opp_def_list,
|
||||
ARRAY_SIZE(omap34xx_opp_def_list));
|
||||
|
||||
+ if (omap3_has_720mhz())
|
||||
+ r = omap3_opp_enable_720Mhz();
|
||||
+ }
|
||||
+
|
||||
return r;
|
||||
}
|
||||
device_initcall(omap3_opp_init);
|
||||
diff --git a/arch/arm/plat-omap/include/plat/cpu.h b/arch/arm/plat-omap/include/plat/cpu.h
|
||||
index 8198bb6..5204c1e 100644
|
||||
--- a/arch/arm/plat-omap/include/plat/cpu.h
|
||||
+++ b/arch/arm/plat-omap/include/plat/cpu.h
|
||||
@@ -478,6 +478,7 @@ extern u32 omap3_features;
|
||||
#define OMAP3_HAS_192MHZ_CLK BIT(5)
|
||||
#define OMAP3_HAS_IO_WAKEUP BIT(6)
|
||||
#define OMAP3_HAS_SDRC BIT(7)
|
||||
+#define OMAP3_HAS_720MHZ BIT(8)
|
||||
|
||||
#define OMAP3_HAS_FEATURE(feat,flag) \
|
||||
static inline unsigned int omap3_has_ ##feat(void) \
|
||||
@@ -493,5 +494,6 @@ OMAP3_HAS_FEATURE(isp, ISP)
|
||||
OMAP3_HAS_FEATURE(192mhz_clk, 192MHZ_CLK)
|
||||
OMAP3_HAS_FEATURE(io_wakeup, IO_WAKEUP)
|
||||
OMAP3_HAS_FEATURE(sdrc, SDRC)
|
||||
+OMAP3_HAS_FEATURE(720mhz, 720MHZ)
|
||||
|
||||
#endif
|
||||
--
|
||||
1.7.2.5
|
||||
|
||||
@@ -1,32 +0,0 @@
|
||||
From d9242a243b61059cacde8ce1241b84fc787c57d1 Mon Sep 17 00:00:00 2001
|
||||
From: Koen Kooi <koen@dominion.thruhere.net>
|
||||
Date: Thu, 20 Oct 2011 11:14:08 +0200
|
||||
Subject: [PATCH 06/10] ARM: OMAP2+: beagleboard: make wilink init look more like pandaboard
|
||||
|
||||
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
|
||||
---
|
||||
arch/arm/mach-omap2/board-omap3beagle.c | 8 +-------
|
||||
1 files changed, 1 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c
|
||||
index 5e1d9f9..13fffb0 100644
|
||||
--- a/arch/arm/mach-omap2/board-omap3beagle.c
|
||||
+++ b/arch/arm/mach-omap2/board-omap3beagle.c
|
||||
@@ -203,13 +203,7 @@ static struct regulator_consumer_supply beagle_vmmc2_supply =
|
||||
|
||||
static struct regulator_init_data beagle_vmmc2 = {
|
||||
.constraints = {
|
||||
- .min_uV = 1850000,
|
||||
- .max_uV = 1850000,
|
||||
- .apply_uV = true,
|
||||
- .valid_modes_mask = REGULATOR_MODE_NORMAL
|
||||
- | REGULATOR_MODE_STANDBY,
|
||||
- .valid_ops_mask = REGULATOR_CHANGE_MODE
|
||||
- | REGULATOR_CHANGE_STATUS,
|
||||
+ .valid_ops_mask = REGULATOR_CHANGE_STATUS,
|
||||
},
|
||||
.num_consumer_supplies = 1,
|
||||
.consumer_supplies = &beagle_vmmc2_supply,
|
||||
--
|
||||
1.7.2.5
|
||||
|
||||
@@ -1,33 +0,0 @@
|
||||
From 47be8c9046c22715ce646091dd9e98fa87fc86e1 Mon Sep 17 00:00:00 2001
|
||||
From: Steve Sakoman <steve@sakoman.com>
|
||||
Date: Mon, 18 Jul 2011 23:13:41 -0500
|
||||
Subject: [PATCH 07/10] omap_hsmmc: Set dto to max value of 14 to avoid SD Card timeouts
|
||||
|
||||
This fixes MMC errors due to timeouts on certain SD Cards following suggestions
|
||||
to set dto to 14 by Jason Kridner and Steven Kipisz
|
||||
|
||||
Details of the issue:
|
||||
http://talk.maemo.org/showthread.php?p=1000707#post1000707
|
||||
|
||||
This fix was originally proposed by Sukumar Ghoral of TI.
|
||||
---
|
||||
drivers/mmc/host/omap_hsmmc.c | 3 +++
|
||||
1 files changed, 3 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c
|
||||
index dedf3da..a8a60d4 100644
|
||||
--- a/drivers/mmc/host/omap_hsmmc.c
|
||||
+++ b/drivers/mmc/host/omap_hsmmc.c
|
||||
@@ -1441,6 +1441,9 @@ static void set_data_timeout(struct omap_hsmmc_host *host,
|
||||
dto = 14;
|
||||
}
|
||||
|
||||
+ /* Set dto to max value of 14 to avoid SD Card timeouts */
|
||||
+ dto = 14;
|
||||
+
|
||||
reg &= ~DTO_MASK;
|
||||
reg |= dto << DTO_SHIFT;
|
||||
OMAP_HSMMC_WRITE(host->base, SYSCTL, reg);
|
||||
--
|
||||
1.7.2.5
|
||||
|
||||
@@ -1,89 +0,0 @@
|
||||
From 2a9282daf94e8b9a1c8dc6fdf5b97461eb15348d Mon Sep 17 00:00:00 2001
|
||||
From: Andy Green <andy@warmcat.com>
|
||||
Date: Thu, 24 Mar 2011 21:27:29 +0000
|
||||
Subject: [PATCH 08/10] OMAP2+: add cpu id register to MAC address helper
|
||||
|
||||
Introduce a generic helper function that can set a MAC address using
|
||||
data from the OMAP unique CPU ID register.
|
||||
|
||||
For comparison purposes this produces a MAC address of
|
||||
|
||||
2e:40:70:f0:12:06
|
||||
|
||||
for the ethernet device on my Panda.
|
||||
|
||||
Note that this patch requires the fix patch for CPU ID register
|
||||
indexes previously posted to linux-omap, otherwise the CPU ID is
|
||||
misread on Panda by the existing function to do it. This patch
|
||||
is already on linux-omap.
|
||||
|
||||
"OMAP2+:Common CPU DIE ID reading code reads wrong registers for OMAP4430"
|
||||
http://git.kernel.org/?p=linux/kernel/git/tmlind/linux-omap-2.6.git;a=commit;h=b235e007831dbf57710e59cd4a120e2f374eecb9
|
||||
|
||||
Signed-off-by: Andy Green <andy.green@linaro.org>
|
||||
---
|
||||
arch/arm/mach-omap2/id.c | 39 +++++++++++++++++++++++++++++++++
|
||||
arch/arm/mach-omap2/include/mach/id.h | 1 +
|
||||
2 files changed, 40 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/arch/arm/mach-omap2/id.c b/arch/arm/mach-omap2/id.c
|
||||
index b6ed78a..de993f1 100644
|
||||
--- a/arch/arm/mach-omap2/id.c
|
||||
+++ b/arch/arm/mach-omap2/id.c
|
||||
@@ -567,3 +567,42 @@ void __init omap2_set_globals_tap(struct omap_globals *omap2_globals)
|
||||
else
|
||||
tap_prod_id = 0x0208;
|
||||
}
|
||||
+
|
||||
+/*
|
||||
+ * this uses the unique per-cpu info from the cpu fuses set at factory to
|
||||
+ * generate a 6-byte MAC address. Two bits in the generated code are used
|
||||
+ * to elaborate the generated address into four, so it can be used on multiple
|
||||
+ * network interfaces.
|
||||
+ */
|
||||
+
|
||||
+void omap2_die_id_to_ethernet_mac(u8 *mac, int subtype)
|
||||
+{
|
||||
+ struct omap_die_id odi;
|
||||
+ u32 tap = read_tap_reg(OMAP_TAP_IDCODE);
|
||||
+
|
||||
+ omap_get_die_id(&odi);
|
||||
+
|
||||
+ mac[0] = odi.id_2;
|
||||
+ mac[1] = odi.id_2 >> 8;
|
||||
+ mac[2] = odi.id_1;
|
||||
+ mac[3] = odi.id_1 >> 8;
|
||||
+ mac[4] = odi.id_1 >> 16;
|
||||
+ mac[5] = odi.id_1 >> 24;
|
||||
+
|
||||
+ /* XOR other chip-specific data with ID */
|
||||
+
|
||||
+ tap ^= odi.id_3;
|
||||
+
|
||||
+ mac[0] ^= tap;
|
||||
+ mac[1] ^= tap >> 8;
|
||||
+ mac[2] ^= tap >> 16;
|
||||
+ mac[3] ^= tap >> 24;
|
||||
+
|
||||
+ /* allow four MACs from this same basic data */
|
||||
+
|
||||
+ mac[1] = (mac[1] & ~0xc0) | ((subtype & 3) << 6);
|
||||
+
|
||||
+ /* mark it as not multicast and outside official 80211 MAC namespace */
|
||||
+
|
||||
+ mac[0] = (mac[0] & ~1) | 2;
|
||||
+}
|
||||
diff --git a/arch/arm/mach-omap2/include/mach/id.h b/arch/arm/mach-omap2/include/mach/id.h
|
||||
index 02ed3aa..373313a 100644
|
||||
--- a/arch/arm/mach-omap2/include/mach/id.h
|
||||
+++ b/arch/arm/mach-omap2/include/mach/id.h
|
||||
@@ -18,5 +18,6 @@ struct omap_die_id {
|
||||
};
|
||||
|
||||
void omap_get_die_id(struct omap_die_id *odi);
|
||||
+void omap2_die_id_to_ethernet_mac(u8 *mac, int subtype);
|
||||
|
||||
#endif
|
||||
--
|
||||
1.7.2.5
|
||||
|
||||
@@ -1,156 +0,0 @@
|
||||
From d0212d089b62cd7ebcd53104717180482e35ec1a Mon Sep 17 00:00:00 2001
|
||||
From: Jason Kridner <jdk@ti.com>
|
||||
Date: Thu, 15 Sep 2011 18:23:02 -0400
|
||||
Subject: [PATCH 09/10] HACK: OMAP2+: BeagleBoard: Fix up random or missing MAC addresses for eth0 and wlan0
|
||||
|
||||
This was borrowed from the Panda implementation at http://patches.linaro.org/777/
|
||||
|
||||
This patch registers a network device notifier callback to set the mac
|
||||
addresses for the onboard network assets of the BeagleBoard correctly, despite the
|
||||
drivers involved have used a random or all-zeros MAC address.
|
||||
|
||||
The technique was suggested by Alan Cox on lkml.
|
||||
|
||||
It works by device path so it corrects the MAC addresses even if the
|
||||
drivers are in modules loaded in an order that changes their interface
|
||||
name from usual (eg, the onboard module might be "wlan1" if there is a
|
||||
USB wireless stick plugged in and its module is inserted first.)
|
||||
|
||||
Cc: Andy Green <andy@warmcat.com>
|
||||
---
|
||||
arch/arm/mach-omap2/board-omap3beagle.c | 90 +++++++++++++++++++++++++++++++
|
||||
1 files changed, 90 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c
|
||||
index 13fffb0..5ffe185 100644
|
||||
--- a/arch/arm/mach-omap2/board-omap3beagle.c
|
||||
+++ b/arch/arm/mach-omap2/board-omap3beagle.c
|
||||
@@ -33,6 +33,8 @@
|
||||
|
||||
#include <linux/regulator/machine.h>
|
||||
#include <linux/i2c/twl.h>
|
||||
+#include <linux/netdevice.h>
|
||||
+#include <linux/if_ether.h>
|
||||
|
||||
#include <mach/hardware.h>
|
||||
#include <asm/mach-types.h>
|
||||
@@ -42,6 +44,7 @@
|
||||
|
||||
#include <plat/board.h>
|
||||
#include <plat/common.h>
|
||||
+#include <mach/id.h>
|
||||
#include <video/omapdss.h>
|
||||
#include <video/omap-panel-generic-dpi.h>
|
||||
#include <plat/gpmc.h>
|
||||
@@ -91,6 +94,90 @@ static struct {
|
||||
.usr_button_gpio = 4,
|
||||
};
|
||||
|
||||
+/*
|
||||
+ * This device path represents the onboard USB <-> Ethernet bridge
|
||||
+ * on the BeagleBoard-xM which needs a random or all-zeros
|
||||
+ * mac address replaced with a per-cpu stable generated one
|
||||
+ */
|
||||
+
|
||||
+static const char * const xm_fixup_mac_device_paths[] = {
|
||||
+ "usb1/1-2/1-2.1/1-2.1:1.0",
|
||||
+};
|
||||
+
|
||||
+static int beagle_device_path_need_mac(struct device *dev)
|
||||
+{
|
||||
+ const char **try = (const char **) xm_fixup_mac_device_paths;
|
||||
+ const char *path;
|
||||
+ int count = ARRAY_SIZE(xm_fixup_mac_device_paths);
|
||||
+ const char *p;
|
||||
+ int len;
|
||||
+ struct device *devn;
|
||||
+
|
||||
+ while (count--) {
|
||||
+
|
||||
+ p = *try + strlen(*try);
|
||||
+ devn = dev;
|
||||
+
|
||||
+ while (devn) {
|
||||
+
|
||||
+ path = dev_name(devn);
|
||||
+ len = strlen(path);
|
||||
+
|
||||
+ if ((p - *try) < len) {
|
||||
+ devn = NULL;
|
||||
+ continue;
|
||||
+ }
|
||||
+
|
||||
+ p -= len;
|
||||
+
|
||||
+ if (strncmp(path, p, len)) {
|
||||
+ devn = NULL;
|
||||
+ continue;
|
||||
+ }
|
||||
+
|
||||
+ devn = devn->parent;
|
||||
+ if (p == *try)
|
||||
+ return count;
|
||||
+
|
||||
+ if (devn != NULL && (p - *try) < 2)
|
||||
+ devn = NULL;
|
||||
+
|
||||
+ p--;
|
||||
+ if (devn != NULL && *p != '/')
|
||||
+ devn = NULL;
|
||||
+ }
|
||||
+
|
||||
+ try++;
|
||||
+ }
|
||||
+
|
||||
+ return -ENOENT;
|
||||
+}
|
||||
+
|
||||
+static int omap_beagle_netdev_event(struct notifier_block *this,
|
||||
+ unsigned long event, void *ptr)
|
||||
+{
|
||||
+ struct net_device *dev = ptr;
|
||||
+ struct sockaddr sa;
|
||||
+ int n;
|
||||
+
|
||||
+ if (event != NETDEV_REGISTER)
|
||||
+ return NOTIFY_DONE;
|
||||
+
|
||||
+ n = beagle_device_path_need_mac(dev->dev.parent);
|
||||
+ if (n >= 0) {
|
||||
+ sa.sa_family = dev->type;
|
||||
+ omap2_die_id_to_ethernet_mac(sa.sa_data, n);
|
||||
+ dev->netdev_ops->ndo_set_mac_address(dev, &sa);
|
||||
+ }
|
||||
+
|
||||
+ return NOTIFY_DONE;
|
||||
+}
|
||||
+
|
||||
+static struct notifier_block omap_beagle_netdev_notifier = {
|
||||
+ .notifier_call = omap_beagle_netdev_event,
|
||||
+ .priority = 1,
|
||||
+};
|
||||
+
|
||||
static struct gpio omap3_beagle_rev_gpios[] __initdata = {
|
||||
{ 171, GPIOF_IN, "rev_id_0" },
|
||||
{ 172, GPIOF_IN, "rev_id_1" },
|
||||
@@ -146,14 +233,17 @@ static void __init omap3_beagle_init_rev(void)
|
||||
printk(KERN_INFO "OMAP3 Beagle Rev: xM Ax/Bx\n");
|
||||
omap3_beagle_version = OMAP3BEAGLE_BOARD_XM;
|
||||
beagle_config.usb_pwr_level = GPIOF_OUT_INIT_HIGH;
|
||||
+ register_netdevice_notifier(&omap_beagle_netdev_notifier);
|
||||
break;
|
||||
case 2:
|
||||
printk(KERN_INFO "OMAP3 Beagle Rev: xM C\n");
|
||||
omap3_beagle_version = OMAP3BEAGLE_BOARD_XMC;
|
||||
+ register_netdevice_notifier(&omap_beagle_netdev_notifier);
|
||||
break;
|
||||
default:
|
||||
printk(KERN_INFO "OMAP3 Beagle Rev: unknown %hd\n", beagle_rev);
|
||||
omap3_beagle_version = OMAP3BEAGLE_BOARD_UNKN;
|
||||
+ register_netdevice_notifier(&omap_beagle_netdev_notifier);
|
||||
}
|
||||
}
|
||||
|
||||
--
|
||||
1.7.2.5
|
||||
|
||||
@@ -1,26 +0,0 @@
|
||||
From 713c5b4ce910dacdd75e9616b0f989d643008536 Mon Sep 17 00:00:00 2001
|
||||
From: Koen Kooi <koen@dominion.thruhere.net>
|
||||
Date: Wed, 19 Oct 2011 12:44:14 +0200
|
||||
Subject: [PATCH 10/10] ARM: OMAP2+: beagleboard: fix mmc write protect pin when using the wilink expansion board
|
||||
|
||||
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
|
||||
---
|
||||
arch/arm/mach-omap2/board-omap3beagle.c | 2 +-
|
||||
1 files changed, 1 insertions(+), 1 deletions(-)
|
||||
|
||||
diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c
|
||||
index 5ffe185..0124060 100644
|
||||
--- a/arch/arm/mach-omap2/board-omap3beagle.c
|
||||
+++ b/arch/arm/mach-omap2/board-omap3beagle.c
|
||||
@@ -274,7 +274,7 @@ static struct omap2_hsmmc_info mmcbbt[] = {
|
||||
{
|
||||
.mmc = 1,
|
||||
.caps = MMC_CAP_4_BIT_DATA | MMC_CAP_8_BIT_DATA,
|
||||
- .gpio_wp = 29,
|
||||
+ .gpio_wp = -EINVAL,
|
||||
},
|
||||
{
|
||||
.name = "wl1271",
|
||||
--
|
||||
1.7.2.5
|
||||
|
||||
@@ -1,29 +0,0 @@
|
||||
From a2139a0efb9472a649465a1080799c73470fd201 Mon Sep 17 00:00:00 2001
|
||||
From: Koen Kooi <koen@dominion.thruhere.net>
|
||||
Date: Wed, 25 Jan 2012 15:48:36 +0100
|
||||
Subject: [PATCH] beagleboard: reinstate usage of hi-speed PLL divider
|
||||
|
||||
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
|
||||
---
|
||||
arch/arm/mach-omap2/board-omap3beagle.c | 5 +++++
|
||||
1 files changed, 5 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c
|
||||
index 016d0985..c4c7a99 100644
|
||||
--- a/arch/arm/mach-omap2/board-omap3beagle.c
|
||||
+++ b/arch/arm/mach-omap2/board-omap3beagle.c
|
||||
@@ -467,6 +467,11 @@ static struct omap_dss_device beagle_dvi_device = {
|
||||
.driver_name = "generic_dpi_panel",
|
||||
.data = &dvi_panel,
|
||||
.phy.dpi.data_lines = 24,
|
||||
+ .clocks = {
|
||||
+ .dispc = {
|
||||
+ .dispc_fclk_src = OMAP_DSS_CLK_SRC_DSI_PLL_HSDIV_DISPC,
|
||||
+ },
|
||||
+ },
|
||||
.reset_gpio = -EINVAL,
|
||||
};
|
||||
|
||||
--
|
||||
1.7.7.5
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,93 +0,0 @@
|
||||
From 2deaccf427c0fa1e87ed764877c03c2b1ba9b913 Mon Sep 17 00:00:00 2001
|
||||
From: Mike Turquette <mturquette@ti.com>
|
||||
Date: Wed, 29 Jun 2011 17:25:53 -0700
|
||||
Subject: [PATCH 1/8] OMAP3630: PRM: add ABB PRM register definitions
|
||||
|
||||
OMAP3630 supports an Adaptive Body-Bias ldo as well as some MPU interrupts
|
||||
related to voltage control that are not present on OMAP34XX. This patch
|
||||
adds the offsets, register addresses, bitfield shifts and masks to support
|
||||
this feature.
|
||||
|
||||
Signed-off-by: Mike Turquette <mturquette@ti.com>
|
||||
---
|
||||
arch/arm/mach-omap2/prm-regbits-34xx.h | 34 ++++++++++++++++++++++++++++++++
|
||||
arch/arm/mach-omap2/prm2xxx_3xxx.h | 4 +++
|
||||
2 files changed, 38 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/arch/arm/mach-omap2/prm-regbits-34xx.h b/arch/arm/mach-omap2/prm-regbits-34xx.h
|
||||
index 64c087a..0309ff6 100644
|
||||
--- a/arch/arm/mach-omap2/prm-regbits-34xx.h
|
||||
+++ b/arch/arm/mach-omap2/prm-regbits-34xx.h
|
||||
@@ -216,6 +216,12 @@
|
||||
/* PRM_SYSCONFIG specific bits */
|
||||
|
||||
/* PRM_IRQSTATUS_MPU specific bits */
|
||||
+#define OMAP3630_VC_BYPASS_ACK_ST_SHIFT 28
|
||||
+#define OMAP3630_VC_BYPASS_ACK_ST_MASK (1 << 28)
|
||||
+#define OMAP3630_VC_VP1_ACK_ST_SHIFT 27
|
||||
+#define OMAP3630_VC_VP1_ACK_ST_MASK (1 << 27)
|
||||
+#define OMAP3630_ABB_LDO_TRANXDONE_ST_SHIFT 26
|
||||
+#define OMAP3630_ABB_LDO_TRANXDONE_ST_MASK (1 << 26)
|
||||
#define OMAP3430ES2_SND_PERIPH_DPLL_ST_SHIFT 25
|
||||
#define OMAP3430ES2_SND_PERIPH_DPLL_ST_MASK (1 << 25)
|
||||
#define OMAP3430_VC_TIMEOUTERR_ST_MASK (1 << 24)
|
||||
@@ -248,6 +254,12 @@
|
||||
#define OMAP3430_FS_USB_WKUP_ST_MASK (1 << 1)
|
||||
|
||||
/* PRM_IRQENABLE_MPU specific bits */
|
||||
+#define OMAP3630_VC_BYPASS_ACK_EN_SHIFT 28
|
||||
+#define OMAP3630_VC_BYPASS_ACK_EN_MASK (1 << 28)
|
||||
+#define OMAP3630_VC_VP1_ACK_EN_SHIFT 27
|
||||
+#define OMAP3630_VC_VP1_ACK_EN_MASK (1 << 27)
|
||||
+#define OMAP3630_ABB_LDO_TRANXDONE_EN_SHIFT 26
|
||||
+#define OMAP3630_ABB_LDO_TRANXDONE_EN_MASK (1 << 26)
|
||||
#define OMAP3430ES2_SND_PERIPH_DPLL_RECAL_EN_SHIFT 25
|
||||
#define OMAP3430ES2_SND_PERIPH_DPLL_RECAL_EN_MASK (1 << 25)
|
||||
#define OMAP3430_VC_TIMEOUTERR_EN_MASK (1 << 24)
|
||||
@@ -587,6 +599,28 @@
|
||||
|
||||
/* PRM_VP2_STATUS specific bits */
|
||||
|
||||
+/* PRM_LDO_ABB_SETUP specific bits */
|
||||
+#define OMAP3630_SR2_IN_TRANSITION_SHIFT 6
|
||||
+#define OMAP3630_SR2_IN_TRANSITION_MASK (1 << 6)
|
||||
+#define OMAP3630_SR2_STATUS_SHIFT 3
|
||||
+#define OMAP3630_SR2_STATUS_MASK (3 << 3)
|
||||
+#define OMAP3630_OPP_CHANGE_SHIFT 2
|
||||
+#define OMAP3630_OPP_CHANGE_MASK (1 << 2)
|
||||
+#define OMAP3630_OPP_SEL_SHIFT 0
|
||||
+#define OMAP3630_OPP_SEL_MASK (3 << 0)
|
||||
+
|
||||
+/* PRM_LDO_ABB_CTRL specific bits */
|
||||
+#define OMAP3630_SR2_WTCNT_VALUE_SHIFT 8
|
||||
+#define OMAP3630_SR2_WTCNT_VALUE_MASK (0xff << 8)
|
||||
+#define OMAP3630_SLEEP_RBB_SEL_SHIFT 3
|
||||
+#define OMAP3630_SLEEP_RBB_SEL_MASK (1 << 3)
|
||||
+#define OMAP3630_ACTIVE_FBB_SEL_SHIFT 2
|
||||
+#define OMAP3630_ACTIVE_FBB_SEL_MASK (1 << 2)
|
||||
+#define OMAP3630_ACTIVE_RBB_SEL_SHIFT 1
|
||||
+#define OMAP3630_ACTIVE_RBB_SEL_MASK (1 << 1)
|
||||
+#define OMAP3630_SR2EN_SHIFT 0
|
||||
+#define OMAP3630_SR2EN_MASK (1 << 0)
|
||||
+
|
||||
/* RM_RSTST_NEON specific bits */
|
||||
|
||||
/* PM_WKDEP_NEON specific bits */
|
||||
diff --git a/arch/arm/mach-omap2/prm2xxx_3xxx.h b/arch/arm/mach-omap2/prm2xxx_3xxx.h
|
||||
index cef533d..408d1c7 100644
|
||||
--- a/arch/arm/mach-omap2/prm2xxx_3xxx.h
|
||||
+++ b/arch/arm/mach-omap2/prm2xxx_3xxx.h
|
||||
@@ -167,6 +167,10 @@
|
||||
#define OMAP3430_PRM_VP2_VOLTAGE OMAP34XX_PRM_REGADDR(OMAP3430_GR_MOD, 0x00e0)
|
||||
#define OMAP3_PRM_VP2_STATUS_OFFSET 0x00e4
|
||||
#define OMAP3430_PRM_VP2_STATUS OMAP34XX_PRM_REGADDR(OMAP3430_GR_MOD, 0x00e4)
|
||||
+#define OMAP3_PRM_LDO_ABB_SETUP_OFFSET 0x00f0
|
||||
+#define OMAP3630_PRM_LDO_ABB_SETUP OMAP34XX_PRM_REGADDR(OMAP3430_GR_MOD, 0x00f0)
|
||||
+#define OMAP3_PRM_LDO_ABB_CTRL_OFFSET 0x00f4
|
||||
+#define OMAP3630_PRM_LDO_ABB_CTRL OMAP34XX_PRM_REGADDR(OMAP3430_GR_MOD, 0x00f4)
|
||||
|
||||
#define OMAP3_PRM_CLKSEL_OFFSET 0x0040
|
||||
#define OMAP3430_PRM_CLKSEL OMAP34XX_PRM_REGADDR(OMAP3430_CCR_MOD, 0x0040)
|
||||
--
|
||||
1.6.6.1
|
||||
|
||||
@@ -1,263 +0,0 @@
|
||||
From 11401a7b96f5cd53362cd54238a58a5a54a00246 Mon Sep 17 00:00:00 2001
|
||||
From: Nishanth Menon <nm@ti.com>
|
||||
Date: Wed, 29 Jun 2011 17:25:54 -0700
|
||||
Subject: [PATCH 2/8] OMAP3+: PM: VP: generalize PRM interrupt helpers
|
||||
|
||||
We have multiple interrupt status hidden in the PRM interrupt status
|
||||
reg. Make this handling generic to allow us to pull out LDO status such
|
||||
as those for ABB from it using the same data structure and indexing. We
|
||||
hence rename accordingly.
|
||||
|
||||
We also fix a trivial warning as the variable does not need exporting:
|
||||
arch/arm/mach-omap2/prm2xxx_3xxx.c:172:22: warning: symbol
|
||||
'omap3_prm_irqs' was not declared. Should it be static?
|
||||
|
||||
Signed-off-by: Nishanth Menon <nm@ti.com>
|
||||
Signed-off-by: Mike Turquette <mturquette@ti.com>
|
||||
---
|
||||
arch/arm/mach-omap2/prm2xxx_3xxx.c | 22 +++++++++++-----------
|
||||
arch/arm/mach-omap2/prm2xxx_3xxx.h | 7 +++++--
|
||||
arch/arm/mach-omap2/prm44xx.c | 28 ++++++++++++++--------------
|
||||
arch/arm/mach-omap2/prm44xx.h | 7 +++++--
|
||||
arch/arm/mach-omap2/vp.h | 9 ---------
|
||||
arch/arm/mach-omap2/vp3xxx_data.c | 4 ++--
|
||||
arch/arm/mach-omap2/vp44xx_data.c | 6 +++---
|
||||
7 files changed, 40 insertions(+), 43 deletions(-)
|
||||
|
||||
diff --git a/arch/arm/mach-omap2/prm2xxx_3xxx.c b/arch/arm/mach-omap2/prm2xxx_3xxx.c
|
||||
index 3b83763..8a20242 100644
|
||||
--- a/arch/arm/mach-omap2/prm2xxx_3xxx.c
|
||||
+++ b/arch/arm/mach-omap2/prm2xxx_3xxx.c
|
||||
@@ -162,39 +162,39 @@ int omap2_prm_deassert_hardreset(s16 prm_mod, u8 rst_shift, u8 st_shift)
|
||||
/* PRM VP */
|
||||
|
||||
/*
|
||||
- * struct omap3_vp - OMAP3 VP register access description.
|
||||
+ * struct omap3_prm_irq - OMAP3 PRM IRQ register access description.
|
||||
* @tranxdone_status: VP_TRANXDONE_ST bitmask in PRM_IRQSTATUS_MPU reg
|
||||
*/
|
||||
-struct omap3_vp {
|
||||
+struct omap3_prm_irq {
|
||||
u32 tranxdone_status;
|
||||
};
|
||||
|
||||
-struct omap3_vp omap3_vp[] = {
|
||||
- [OMAP3_VP_VDD_MPU_ID] = {
|
||||
+static struct omap3_prm_irq omap3_prm_irqs[] = {
|
||||
+ [OMAP3_PRM_IRQ_VDD_MPU_ID] = {
|
||||
.tranxdone_status = OMAP3430_VP1_TRANXDONE_ST_MASK,
|
||||
},
|
||||
- [OMAP3_VP_VDD_CORE_ID] = {
|
||||
+ [OMAP3_PRM_IRQ_VDD_CORE_ID] = {
|
||||
.tranxdone_status = OMAP3430_VP2_TRANXDONE_ST_MASK,
|
||||
},
|
||||
};
|
||||
|
||||
#define MAX_VP_ID ARRAY_SIZE(omap3_vp);
|
||||
|
||||
-u32 omap3_prm_vp_check_txdone(u8 vp_id)
|
||||
+u32 omap3_prm_vp_check_txdone(u8 irq_id)
|
||||
{
|
||||
- struct omap3_vp *vp = &omap3_vp[vp_id];
|
||||
+ struct omap3_prm_irq *irq = &omap3_prm_irqs[irq_id];
|
||||
u32 irqstatus;
|
||||
|
||||
irqstatus = omap2_prm_read_mod_reg(OCP_MOD,
|
||||
OMAP3_PRM_IRQSTATUS_MPU_OFFSET);
|
||||
- return irqstatus & vp->tranxdone_status;
|
||||
+ return irqstatus & irq->tranxdone_status;
|
||||
}
|
||||
|
||||
-void omap3_prm_vp_clear_txdone(u8 vp_id)
|
||||
+void omap3_prm_vp_clear_txdone(u8 irq_id)
|
||||
{
|
||||
- struct omap3_vp *vp = &omap3_vp[vp_id];
|
||||
+ struct omap3_prm_irq *irq = &omap3_prm_irqs[irq_id];
|
||||
|
||||
- omap2_prm_write_mod_reg(vp->tranxdone_status,
|
||||
+ omap2_prm_write_mod_reg(irq->tranxdone_status,
|
||||
OCP_MOD, OMAP3_PRM_IRQSTATUS_MPU_OFFSET);
|
||||
}
|
||||
|
||||
diff --git a/arch/arm/mach-omap2/prm2xxx_3xxx.h b/arch/arm/mach-omap2/prm2xxx_3xxx.h
|
||||
index 408d1c7..d90b23f 100644
|
||||
--- a/arch/arm/mach-omap2/prm2xxx_3xxx.h
|
||||
+++ b/arch/arm/mach-omap2/prm2xxx_3xxx.h
|
||||
@@ -307,9 +307,12 @@ extern int omap2_prm_is_hardreset_asserted(s16 prm_mod, u8 shift);
|
||||
extern int omap2_prm_assert_hardreset(s16 prm_mod, u8 shift);
|
||||
extern int omap2_prm_deassert_hardreset(s16 prm_mod, u8 rst_shift, u8 st_shift);
|
||||
|
||||
+#define OMAP3_PRM_IRQ_VDD_MPU_ID 0
|
||||
+#define OMAP3_PRM_IRQ_VDD_CORE_ID 1
|
||||
/* OMAP3-specific VP functions */
|
||||
-u32 omap3_prm_vp_check_txdone(u8 vp_id);
|
||||
-void omap3_prm_vp_clear_txdone(u8 vp_id);
|
||||
+u32 omap3_prm_vp_check_txdone(u8 irq_id);
|
||||
+void omap3_prm_vp_clear_txdone(u8 irq_id);
|
||||
+
|
||||
|
||||
/*
|
||||
* OMAP3 access functions for voltage controller (VC) and
|
||||
diff --git a/arch/arm/mach-omap2/prm44xx.c b/arch/arm/mach-omap2/prm44xx.c
|
||||
index 495a31a..b77d331 100644
|
||||
--- a/arch/arm/mach-omap2/prm44xx.c
|
||||
+++ b/arch/arm/mach-omap2/prm44xx.c
|
||||
@@ -57,49 +57,49 @@ u32 omap4_prm_rmw_inst_reg_bits(u32 mask, u32 bits, s16 inst, s16 reg)
|
||||
/* PRM VP */
|
||||
|
||||
/*
|
||||
- * struct omap4_vp - OMAP4 VP register access description.
|
||||
+ * struct omap4_prm_irq - OMAP4 VP register access description.
|
||||
* @irqstatus_mpu: offset to IRQSTATUS_MPU register for VP
|
||||
* @tranxdone_status: VP_TRANXDONE_ST bitmask in PRM_IRQSTATUS_MPU reg
|
||||
*/
|
||||
-struct omap4_vp {
|
||||
+struct omap4_prm_irq {
|
||||
u32 irqstatus_mpu;
|
||||
u32 tranxdone_status;
|
||||
};
|
||||
|
||||
-static struct omap4_vp omap4_vp[] = {
|
||||
- [OMAP4_VP_VDD_MPU_ID] = {
|
||||
+static struct omap4_prm_irq omap4_prm_irqs[] = {
|
||||
+ [OMAP4_PRM_IRQ_VDD_MPU_ID] = {
|
||||
.irqstatus_mpu = OMAP4_PRM_IRQSTATUS_MPU_2_OFFSET,
|
||||
.tranxdone_status = OMAP4430_VP_MPU_TRANXDONE_ST_MASK,
|
||||
},
|
||||
- [OMAP4_VP_VDD_IVA_ID] = {
|
||||
+ [OMAP4_PRM_IRQ_VDD_IVA_ID] = {
|
||||
.irqstatus_mpu = OMAP4_PRM_IRQSTATUS_MPU_OFFSET,
|
||||
.tranxdone_status = OMAP4430_VP_IVA_TRANXDONE_ST_MASK,
|
||||
},
|
||||
- [OMAP4_VP_VDD_CORE_ID] = {
|
||||
+ [OMAP4_PRM_IRQ_VDD_CORE_ID] = {
|
||||
.irqstatus_mpu = OMAP4_PRM_IRQSTATUS_MPU_OFFSET,
|
||||
.tranxdone_status = OMAP4430_VP_CORE_TRANXDONE_ST_MASK,
|
||||
},
|
||||
};
|
||||
|
||||
-u32 omap4_prm_vp_check_txdone(u8 vp_id)
|
||||
+u32 omap4_prm_vp_check_txdone(u8 irq_id)
|
||||
{
|
||||
- struct omap4_vp *vp = &omap4_vp[vp_id];
|
||||
+ struct omap4_prm_irq *irq = &omap4_prm_irqs[irq_id];
|
||||
u32 irqstatus;
|
||||
|
||||
irqstatus = omap4_prminst_read_inst_reg(OMAP4430_PRM_PARTITION,
|
||||
OMAP4430_PRM_OCP_SOCKET_INST,
|
||||
- vp->irqstatus_mpu);
|
||||
- return irqstatus & vp->tranxdone_status;
|
||||
+ irq->irqstatus_mpu);
|
||||
+ return irqstatus & irq->tranxdone_status;
|
||||
}
|
||||
|
||||
-void omap4_prm_vp_clear_txdone(u8 vp_id)
|
||||
+void omap4_prm_vp_clear_txdone(u8 irq_id)
|
||||
{
|
||||
- struct omap4_vp *vp = &omap4_vp[vp_id];
|
||||
+ struct omap4_prm_irq *irq = &omap4_prm_irqs[irq_id];
|
||||
|
||||
- omap4_prminst_write_inst_reg(vp->tranxdone_status,
|
||||
+ omap4_prminst_write_inst_reg(irq->tranxdone_status,
|
||||
OMAP4430_PRM_PARTITION,
|
||||
OMAP4430_PRM_OCP_SOCKET_INST,
|
||||
- vp->irqstatus_mpu);
|
||||
+ irq->irqstatus_mpu);
|
||||
};
|
||||
|
||||
u32 omap4_prm_vcvp_read(u8 offset)
|
||||
diff --git a/arch/arm/mach-omap2/prm44xx.h b/arch/arm/mach-omap2/prm44xx.h
|
||||
index 3d66ccd..858ee53 100644
|
||||
--- a/arch/arm/mach-omap2/prm44xx.h
|
||||
+++ b/arch/arm/mach-omap2/prm44xx.h
|
||||
@@ -751,9 +751,12 @@ extern u32 omap4_prm_read_inst_reg(s16 inst, u16 idx);
|
||||
extern void omap4_prm_write_inst_reg(u32 val, s16 inst, u16 idx);
|
||||
extern u32 omap4_prm_rmw_inst_reg_bits(u32 mask, u32 bits, s16 inst, s16 idx);
|
||||
|
||||
+#define OMAP4_PRM_IRQ_VDD_CORE_ID 0
|
||||
+#define OMAP4_PRM_IRQ_VDD_IVA_ID 1
|
||||
+#define OMAP4_PRM_IRQ_VDD_MPU_ID 2
|
||||
/* OMAP4-specific VP functions */
|
||||
-u32 omap4_prm_vp_check_txdone(u8 vp_id);
|
||||
-void omap4_prm_vp_clear_txdone(u8 vp_id);
|
||||
+u32 omap4_prm_vp_check_txdone(u8 irq_id);
|
||||
+void omap4_prm_vp_clear_txdone(u8 irq_id);
|
||||
|
||||
/*
|
||||
* OMAP4 access functions for voltage controller (VC) and
|
||||
diff --git a/arch/arm/mach-omap2/vp.h b/arch/arm/mach-omap2/vp.h
|
||||
index d9bc4f1..ee31e2f 100644
|
||||
--- a/arch/arm/mach-omap2/vp.h
|
||||
+++ b/arch/arm/mach-omap2/vp.h
|
||||
@@ -21,15 +21,6 @@
|
||||
|
||||
struct voltagedomain;
|
||||
|
||||
-/*
|
||||
- * Voltage Processor (VP) identifiers
|
||||
- */
|
||||
-#define OMAP3_VP_VDD_MPU_ID 0
|
||||
-#define OMAP3_VP_VDD_CORE_ID 1
|
||||
-#define OMAP4_VP_VDD_CORE_ID 0
|
||||
-#define OMAP4_VP_VDD_IVA_ID 1
|
||||
-#define OMAP4_VP_VDD_MPU_ID 2
|
||||
-
|
||||
/* XXX document */
|
||||
#define VP_IDLE_TIMEOUT 200
|
||||
#define VP_TRANXDONE_TIMEOUT 300
|
||||
diff --git a/arch/arm/mach-omap2/vp3xxx_data.c b/arch/arm/mach-omap2/vp3xxx_data.c
|
||||
index 260c554..7bd8181 100644
|
||||
--- a/arch/arm/mach-omap2/vp3xxx_data.c
|
||||
+++ b/arch/arm/mach-omap2/vp3xxx_data.c
|
||||
@@ -57,7 +57,7 @@ static const struct omap_vp_common omap3_vp_common = {
|
||||
};
|
||||
|
||||
struct omap_vp_instance omap3_vp_mpu = {
|
||||
- .id = OMAP3_VP_VDD_MPU_ID,
|
||||
+ .id = OMAP3_PRM_IRQ_VDD_MPU_ID,
|
||||
.common = &omap3_vp_common,
|
||||
.vpconfig = OMAP3_PRM_VP1_CONFIG_OFFSET,
|
||||
.vstepmin = OMAP3_PRM_VP1_VSTEPMIN_OFFSET,
|
||||
@@ -68,7 +68,7 @@ struct omap_vp_instance omap3_vp_mpu = {
|
||||
};
|
||||
|
||||
struct omap_vp_instance omap3_vp_core = {
|
||||
- .id = OMAP3_VP_VDD_CORE_ID,
|
||||
+ .id = OMAP3_PRM_IRQ_VDD_CORE_ID,
|
||||
.common = &omap3_vp_common,
|
||||
.vpconfig = OMAP3_PRM_VP2_CONFIG_OFFSET,
|
||||
.vstepmin = OMAP3_PRM_VP2_VSTEPMIN_OFFSET,
|
||||
diff --git a/arch/arm/mach-omap2/vp44xx_data.c b/arch/arm/mach-omap2/vp44xx_data.c
|
||||
index b4e7704..6de8ed6 100644
|
||||
--- a/arch/arm/mach-omap2/vp44xx_data.c
|
||||
+++ b/arch/arm/mach-omap2/vp44xx_data.c
|
||||
@@ -56,7 +56,7 @@ static const struct omap_vp_common omap4_vp_common = {
|
||||
};
|
||||
|
||||
struct omap_vp_instance omap4_vp_mpu = {
|
||||
- .id = OMAP4_VP_VDD_MPU_ID,
|
||||
+ .id = OMAP4_PRM_IRQ_VDD_MPU_ID,
|
||||
.common = &omap4_vp_common,
|
||||
.vpconfig = OMAP4_PRM_VP_MPU_CONFIG_OFFSET,
|
||||
.vstepmin = OMAP4_PRM_VP_MPU_VSTEPMIN_OFFSET,
|
||||
@@ -67,7 +67,7 @@ struct omap_vp_instance omap4_vp_mpu = {
|
||||
};
|
||||
|
||||
struct omap_vp_instance omap4_vp_iva = {
|
||||
- .id = OMAP4_VP_VDD_IVA_ID,
|
||||
+ .id = OMAP4_PRM_IRQ_VDD_IVA_ID,
|
||||
.common = &omap4_vp_common,
|
||||
.vpconfig = OMAP4_PRM_VP_IVA_CONFIG_OFFSET,
|
||||
.vstepmin = OMAP4_PRM_VP_IVA_VSTEPMIN_OFFSET,
|
||||
@@ -78,7 +78,7 @@ struct omap_vp_instance omap4_vp_iva = {
|
||||
};
|
||||
|
||||
struct omap_vp_instance omap4_vp_core = {
|
||||
- .id = OMAP4_VP_VDD_CORE_ID,
|
||||
+ .id = OMAP4_PRM_IRQ_VDD_CORE_ID,
|
||||
.common = &omap4_vp_common,
|
||||
.vpconfig = OMAP4_PRM_VP_CORE_CONFIG_OFFSET,
|
||||
.vstepmin = OMAP4_PRM_VP_CORE_VSTEPMIN_OFFSET,
|
||||
--
|
||||
1.6.6.1
|
||||
|
||||
@@ -1,202 +0,0 @@
|
||||
From da35165116eabf6149d558b426549784c93af164 Mon Sep 17 00:00:00 2001
|
||||
From: Nishanth Menon <nm@ti.com>
|
||||
Date: Wed, 29 Jun 2011 17:25:55 -0700
|
||||
Subject: [PATCH 3/8] OMAP3+: PRM: add tranxdone IRQ handlers for ABB
|
||||
|
||||
OMAP3 and more recent platforms support a PRM interrupt to the MPU for
|
||||
Adapative Body-Bias ldo transitions.
|
||||
|
||||
Add helpers to the OMAP3 & OMAP4 PRM code to check the status of the
|
||||
interrupt and also to clear it. These will be called from the ABB code
|
||||
as part of the greater voltage scaling sequence.
|
||||
|
||||
Signed-off-by: Nishanth Menon <nm@ti.com>
|
||||
Signed-off-by: Mike Turquette <mturquette@ti.com>
|
||||
---
|
||||
arch/arm/mach-omap2/prm2xxx_3xxx.c | 35 ++++++++++++++++++++++++++-----
|
||||
arch/arm/mach-omap2/prm2xxx_3xxx.h | 3 ++
|
||||
arch/arm/mach-omap2/prm44xx.c | 40 +++++++++++++++++++++++++++++------
|
||||
arch/arm/mach-omap2/prm44xx.h | 3 ++
|
||||
4 files changed, 68 insertions(+), 13 deletions(-)
|
||||
|
||||
diff --git a/arch/arm/mach-omap2/prm2xxx_3xxx.c b/arch/arm/mach-omap2/prm2xxx_3xxx.c
|
||||
index 8a20242..49e9719 100644
|
||||
--- a/arch/arm/mach-omap2/prm2xxx_3xxx.c
|
||||
+++ b/arch/arm/mach-omap2/prm2xxx_3xxx.c
|
||||
@@ -163,18 +163,23 @@ int omap2_prm_deassert_hardreset(s16 prm_mod, u8 rst_shift, u8 st_shift)
|
||||
|
||||
/*
|
||||
* struct omap3_prm_irq - OMAP3 PRM IRQ register access description.
|
||||
- * @tranxdone_status: VP_TRANXDONE_ST bitmask in PRM_IRQSTATUS_MPU reg
|
||||
+ * @vp_tranxdone_status: VP_TRANXDONE_ST bitmask in PRM_IRQSTATUS_MPU reg
|
||||
+ * @abb_tranxdone_status: ABB_TRANXDONE_ST bitmask in PRM_IRQSTATUS_MPU reg
|
||||
+ * (ONLY for OMAP3630)
|
||||
*/
|
||||
struct omap3_prm_irq {
|
||||
- u32 tranxdone_status;
|
||||
+ u32 vp_tranxdone_status;
|
||||
+ u32 abb_tranxdone_status;
|
||||
};
|
||||
|
||||
static struct omap3_prm_irq omap3_prm_irqs[] = {
|
||||
[OMAP3_PRM_IRQ_VDD_MPU_ID] = {
|
||||
- .tranxdone_status = OMAP3430_VP1_TRANXDONE_ST_MASK,
|
||||
+ .vp_tranxdone_status = OMAP3430_VP1_TRANXDONE_ST_MASK,
|
||||
+ .abb_tranxdone_status = OMAP3630_ABB_LDO_TRANXDONE_ST_MASK,
|
||||
},
|
||||
[OMAP3_PRM_IRQ_VDD_CORE_ID] = {
|
||||
- .tranxdone_status = OMAP3430_VP2_TRANXDONE_ST_MASK,
|
||||
+ .vp_tranxdone_status = OMAP3430_VP2_TRANXDONE_ST_MASK,
|
||||
+ /* no abb for core */
|
||||
},
|
||||
};
|
||||
|
||||
@@ -187,14 +192,32 @@ u32 omap3_prm_vp_check_txdone(u8 irq_id)
|
||||
|
||||
irqstatus = omap2_prm_read_mod_reg(OCP_MOD,
|
||||
OMAP3_PRM_IRQSTATUS_MPU_OFFSET);
|
||||
- return irqstatus & irq->tranxdone_status;
|
||||
+ return irqstatus & irq->vp_tranxdone_status;
|
||||
}
|
||||
|
||||
void omap3_prm_vp_clear_txdone(u8 irq_id)
|
||||
{
|
||||
struct omap3_prm_irq *irq = &omap3_prm_irqs[irq_id];
|
||||
|
||||
- omap2_prm_write_mod_reg(irq->tranxdone_status,
|
||||
+ omap2_prm_write_mod_reg(irq->vp_tranxdone_status,
|
||||
+ OCP_MOD, OMAP3_PRM_IRQSTATUS_MPU_OFFSET);
|
||||
+}
|
||||
+
|
||||
+u32 omap36xx_prm_abb_check_txdone(u8 irq_id)
|
||||
+{
|
||||
+ struct omap3_prm_irq *irq = &omap3_prm_irqs[irq_id];
|
||||
+ u32 irqstatus;
|
||||
+
|
||||
+ irqstatus = omap2_prm_read_mod_reg(OCP_MOD,
|
||||
+ OMAP3_PRM_IRQSTATUS_MPU_OFFSET);
|
||||
+ return irqstatus & irq->abb_tranxdone_status;
|
||||
+}
|
||||
+
|
||||
+void omap36xx_prm_abb_clear_txdone(u8 irq_id)
|
||||
+{
|
||||
+ struct omap3_prm_irq *irq = &omap3_prm_irqs[irq_id];
|
||||
+
|
||||
+ omap2_prm_write_mod_reg(irq->abb_tranxdone_status,
|
||||
OCP_MOD, OMAP3_PRM_IRQSTATUS_MPU_OFFSET);
|
||||
}
|
||||
|
||||
diff --git a/arch/arm/mach-omap2/prm2xxx_3xxx.h b/arch/arm/mach-omap2/prm2xxx_3xxx.h
|
||||
index d90b23f..08d5f1e 100644
|
||||
--- a/arch/arm/mach-omap2/prm2xxx_3xxx.h
|
||||
+++ b/arch/arm/mach-omap2/prm2xxx_3xxx.h
|
||||
@@ -313,6 +313,9 @@ extern int omap2_prm_deassert_hardreset(s16 prm_mod, u8 rst_shift, u8 st_shift);
|
||||
u32 omap3_prm_vp_check_txdone(u8 irq_id);
|
||||
void omap3_prm_vp_clear_txdone(u8 irq_id);
|
||||
|
||||
+/* OMAP36xx-specific ABB functions */
|
||||
+u32 omap36xx_prm_abb_check_txdone(u8 irq_id);
|
||||
+void omap36xx_prm_abb_clear_txdone(u8 irq_id);
|
||||
|
||||
/*
|
||||
* OMAP3 access functions for voltage controller (VC) and
|
||||
diff --git a/arch/arm/mach-omap2/prm44xx.c b/arch/arm/mach-omap2/prm44xx.c
|
||||
index b77d331..dd3776c 100644
|
||||
--- a/arch/arm/mach-omap2/prm44xx.c
|
||||
+++ b/arch/arm/mach-omap2/prm44xx.c
|
||||
@@ -59,25 +59,30 @@ u32 omap4_prm_rmw_inst_reg_bits(u32 mask, u32 bits, s16 inst, s16 reg)
|
||||
/*
|
||||
* struct omap4_prm_irq - OMAP4 VP register access description.
|
||||
* @irqstatus_mpu: offset to IRQSTATUS_MPU register for VP
|
||||
- * @tranxdone_status: VP_TRANXDONE_ST bitmask in PRM_IRQSTATUS_MPU reg
|
||||
+ * @vp_tranxdone_status: VP_TRANXDONE_ST bitmask in PRM_IRQSTATUS_MPU reg
|
||||
+ * @abb_tranxdone_status: ABB_TRANXDONE_ST bitmask in PRM_IRQSTATUS_MPU reg
|
||||
*/
|
||||
struct omap4_prm_irq {
|
||||
u32 irqstatus_mpu;
|
||||
- u32 tranxdone_status;
|
||||
+ u32 vp_tranxdone_status;
|
||||
+ u32 abb_tranxdone_status;
|
||||
};
|
||||
|
||||
static struct omap4_prm_irq omap4_prm_irqs[] = {
|
||||
[OMAP4_PRM_IRQ_VDD_MPU_ID] = {
|
||||
.irqstatus_mpu = OMAP4_PRM_IRQSTATUS_MPU_2_OFFSET,
|
||||
- .tranxdone_status = OMAP4430_VP_MPU_TRANXDONE_ST_MASK,
|
||||
+ .vp_tranxdone_status = OMAP4430_VP_MPU_TRANXDONE_ST_MASK,
|
||||
+ .abb_tranxdone_status = OMAP4430_ABB_MPU_DONE_ST_MASK
|
||||
},
|
||||
[OMAP4_PRM_IRQ_VDD_IVA_ID] = {
|
||||
.irqstatus_mpu = OMAP4_PRM_IRQSTATUS_MPU_OFFSET,
|
||||
- .tranxdone_status = OMAP4430_VP_IVA_TRANXDONE_ST_MASK,
|
||||
+ .vp_tranxdone_status = OMAP4430_VP_IVA_TRANXDONE_ST_MASK,
|
||||
+ .abb_tranxdone_status = OMAP4430_ABB_IVA_DONE_ST_MASK,
|
||||
},
|
||||
[OMAP4_PRM_IRQ_VDD_CORE_ID] = {
|
||||
.irqstatus_mpu = OMAP4_PRM_IRQSTATUS_MPU_OFFSET,
|
||||
- .tranxdone_status = OMAP4430_VP_CORE_TRANXDONE_ST_MASK,
|
||||
+ .vp_tranxdone_status = OMAP4430_VP_CORE_TRANXDONE_ST_MASK,
|
||||
+ /* Core has no ABB */
|
||||
},
|
||||
};
|
||||
|
||||
@@ -89,19 +94,40 @@ u32 omap4_prm_vp_check_txdone(u8 irq_id)
|
||||
irqstatus = omap4_prminst_read_inst_reg(OMAP4430_PRM_PARTITION,
|
||||
OMAP4430_PRM_OCP_SOCKET_INST,
|
||||
irq->irqstatus_mpu);
|
||||
- return irqstatus & irq->tranxdone_status;
|
||||
+ return irqstatus & irq->vp_tranxdone_status;
|
||||
}
|
||||
|
||||
void omap4_prm_vp_clear_txdone(u8 irq_id)
|
||||
{
|
||||
struct omap4_prm_irq *irq = &omap4_prm_irqs[irq_id];
|
||||
|
||||
- omap4_prminst_write_inst_reg(irq->tranxdone_status,
|
||||
+ omap4_prminst_write_inst_reg(irq->vp_tranxdone_status,
|
||||
OMAP4430_PRM_PARTITION,
|
||||
OMAP4430_PRM_OCP_SOCKET_INST,
|
||||
irq->irqstatus_mpu);
|
||||
};
|
||||
|
||||
+u32 omap4_prm_abb_check_txdone(u8 irq_id)
|
||||
+{
|
||||
+ struct omap4_prm_irq *irq = &omap4_prm_irqs[irq_id];
|
||||
+ u32 irqstatus;
|
||||
+
|
||||
+ irqstatus = omap4_prminst_read_inst_reg(OMAP4430_PRM_PARTITION,
|
||||
+ OMAP4430_PRM_OCP_SOCKET_INST,
|
||||
+ irq->irqstatus_mpu);
|
||||
+ return irqstatus & irq->abb_tranxdone_status;
|
||||
+}
|
||||
+
|
||||
+void omap4_prm_abb_clear_txdone(u8 irq_id)
|
||||
+{
|
||||
+ struct omap4_prm_irq *irq = &omap4_prm_irqs[irq_id];
|
||||
+
|
||||
+ omap4_prminst_write_inst_reg(irq->abb_tranxdone_status,
|
||||
+ OMAP4430_PRM_PARTITION,
|
||||
+ OMAP4430_PRM_OCP_SOCKET_INST,
|
||||
+ irq->irqstatus_mpu);
|
||||
+}
|
||||
+
|
||||
u32 omap4_prm_vcvp_read(u8 offset)
|
||||
{
|
||||
return omap4_prminst_read_inst_reg(OMAP4430_PRM_PARTITION,
|
||||
diff --git a/arch/arm/mach-omap2/prm44xx.h b/arch/arm/mach-omap2/prm44xx.h
|
||||
index 858ee53..8ce3207 100644
|
||||
--- a/arch/arm/mach-omap2/prm44xx.h
|
||||
+++ b/arch/arm/mach-omap2/prm44xx.h
|
||||
@@ -757,6 +757,9 @@ extern u32 omap4_prm_rmw_inst_reg_bits(u32 mask, u32 bits, s16 inst, s16 idx);
|
||||
/* OMAP4-specific VP functions */
|
||||
u32 omap4_prm_vp_check_txdone(u8 irq_id);
|
||||
void omap4_prm_vp_clear_txdone(u8 irq_id);
|
||||
+/* OMAP4-specific ABB functions */
|
||||
+u32 omap4_prm_abb_check_txdone(u8 irq_id);
|
||||
+void omap4_prm_abb_clear_txdone(u8 irq_id);
|
||||
|
||||
/*
|
||||
* OMAP4 access functions for voltage controller (VC) and
|
||||
--
|
||||
1.6.6.1
|
||||
|
||||
@@ -1,240 +0,0 @@
|
||||
From a0a304bd0a2255bc661933ef23b3a0860fbee69d Mon Sep 17 00:00:00 2001
|
||||
From: Mike Turquette <mturquette@ti.com>
|
||||
Date: Wed, 29 Jun 2011 17:25:56 -0700
|
||||
Subject: [PATCH 4/8] OMAP3+: ABB: Adaptive Body-Bias structures & data
|
||||
|
||||
Due to voltage domain trimming and silicon characterstics some silicon
|
||||
may experience instability when operating at a high voltage. To
|
||||
compensate for this an Adaptive Body-Bias ldo exists. First featured in
|
||||
OMAP3630, the purpose of this ldo is to provide a voltage boost to PMOS
|
||||
backgates when a voltage domain is operating at a high OPP. In this
|
||||
mode the ldo is said to be in Forward Body-Bias. At OPPs within a
|
||||
nominal voltage range the ABB ldo is bypassed.
|
||||
|
||||
This patch introduces the data structures needed to represent the ABB
|
||||
ldo's in the voltage layer, and populates the appropriate data for 3630
|
||||
and OMAP4. Not all voltage domains have an ABB ldo, and OMAP34xx does
|
||||
not have it at all; in such cases the voltage data will be marked with
|
||||
OMAP_ABB_NO_LDO.
|
||||
|
||||
Signed-off-by: Mike Turquette <mturquette@ti.com>
|
||||
---
|
||||
arch/arm/mach-omap2/Makefile | 5 +-
|
||||
arch/arm/mach-omap2/abb.h | 85 ++++++++++++++++++++++++++++++++++++
|
||||
arch/arm/mach-omap2/abb36xx_data.c | 38 ++++++++++++++++
|
||||
arch/arm/mach-omap2/abb44xx_data.c | 44 ++++++++++++++++++
|
||||
4 files changed, 170 insertions(+), 2 deletions(-)
|
||||
create mode 100644 arch/arm/mach-omap2/abb.h
|
||||
create mode 100644 arch/arm/mach-omap2/abb36xx_data.c
|
||||
create mode 100644 arch/arm/mach-omap2/abb44xx_data.c
|
||||
|
||||
diff --git a/arch/arm/mach-omap2/Makefile b/arch/arm/mach-omap2/Makefile
|
||||
index 7927dd6..5bc306c 100644
|
||||
--- a/arch/arm/mach-omap2/Makefile
|
||||
+++ b/arch/arm/mach-omap2/Makefile
|
||||
@@ -82,14 +82,15 @@ endif
|
||||
# PRCM
|
||||
obj-$(CONFIG_ARCH_OMAP2) += prcm.o cm2xxx_3xxx.o prm2xxx_3xxx.o
|
||||
obj-$(CONFIG_ARCH_OMAP3) += prcm.o cm2xxx_3xxx.o prm2xxx_3xxx.o \
|
||||
- vc3xxx_data.o vp3xxx_data.o
|
||||
+ vc3xxx_data.o vp3xxx_data.o \
|
||||
+ abb36xx_data.o
|
||||
# XXX The presence of cm2xxx_3xxx.o on the line below is temporary and
|
||||
# will be removed once the OMAP4 part of the codebase is converted to
|
||||
# use OMAP4-specific PRCM functions.
|
||||
obj-$(CONFIG_ARCH_OMAP4) += prcm.o cm2xxx_3xxx.o cminst44xx.o \
|
||||
cm44xx.o prcm_mpu44xx.o \
|
||||
prminst44xx.o vc44xx_data.o \
|
||||
- vp44xx_data.o
|
||||
+ vp44xx_data.o abb44xx_data.o
|
||||
|
||||
# OMAP voltage domains
|
||||
ifeq ($(CONFIG_PM),y)
|
||||
diff --git a/arch/arm/mach-omap2/abb.h b/arch/arm/mach-omap2/abb.h
|
||||
new file mode 100644
|
||||
index 0000000..74f2044
|
||||
--- /dev/null
|
||||
+++ b/arch/arm/mach-omap2/abb.h
|
||||
@@ -0,0 +1,85 @@
|
||||
+/*
|
||||
+ * OMAP Adaptive Body-Bias structure and macro definitions
|
||||
+ *
|
||||
+ * Copyright (C) 2011 Texas Instruments, Inc.
|
||||
+ * Mike Turquette <mturquette@ti.com>
|
||||
+ *
|
||||
+ * This program is free software; you can redistribute it and/or modify
|
||||
+ * it under the terms of the GNU General Public License version 2 as
|
||||
+ * published by the Free Software Foundation.
|
||||
+ */
|
||||
+
|
||||
+#ifndef __ARCH_ARM_MACH_OMAP2_ABB_H
|
||||
+#define __ARCH_ARM_MACH_OMAP2_ABB_H
|
||||
+
|
||||
+#include <linux/kernel.h>
|
||||
+
|
||||
+#include "voltage.h"
|
||||
+
|
||||
+/* NOMINAL_OPP bypasses the ABB ldo, FAST_OPP sets it to Forward Body-Bias */
|
||||
+#define OMAP_ABB_NOMINAL_OPP 0
|
||||
+#define OMAP_ABB_FAST_OPP 1
|
||||
+#define OMAP_ABB_NO_LDO ~0
|
||||
+
|
||||
+/* Time for the ABB ldo to settle after transition (in micro-seconds) */
|
||||
+#define ABB_TRANXDONE_TIMEOUT 50
|
||||
+
|
||||
+/*
|
||||
+ * struct omap_abb_ops - per-OMAP operations needed for ABB transition
|
||||
+ *
|
||||
+ * @check_tranxdone: return status of ldo transition from PRM_IRQSTATUS
|
||||
+ * @clear_tranxdone: clear ABB transition status bit from PRM_IRQSTATUS
|
||||
+ */
|
||||
+struct omap_abb_ops {
|
||||
+ u32 (*check_tranxdone)(u8 irq_id);
|
||||
+ void (*clear_tranxdone)(u8 irq_id);
|
||||
+};
|
||||
+
|
||||
+/*
|
||||
+ * struct omap_abb_common - ABB data common to an OMAP family
|
||||
+ *
|
||||
+ * @opp_sel_mask: CTRL reg uses this to program next state of ldo
|
||||
+ * @opp_change_mask: CTRL reg uses this to initiate ldo state change
|
||||
+ * @sr2_wtcnt_value_mask: SETUP reg uses this to program ldo settling time
|
||||
+ * @sr2en_mask: SETUP reg uses this to enable/disable ldo
|
||||
+ * @active_fbb_sel_mask: SETUP reg uses this to enable/disable FBB operation
|
||||
+ * @settling_time: number of micro-seconds it takes for ldo to transition
|
||||
+ * @clock_cycles: settling_time is counted in multiples of clock cycles
|
||||
+ * @ops: pointer to common ops for manipulating PRM_IRQSTATUS bits
|
||||
+ */
|
||||
+struct omap_abb_common {
|
||||
+ u32 opp_sel_mask;
|
||||
+ u32 opp_change_mask;
|
||||
+ u32 sr2_wtcnt_value_mask;
|
||||
+ u32 sr2en_mask;
|
||||
+ u32 active_fbb_sel_mask;
|
||||
+ unsigned long settling_time;
|
||||
+ unsigned long clock_cycles;
|
||||
+ const struct omap_abb_ops *ops;
|
||||
+};
|
||||
+
|
||||
+/*
|
||||
+ * struct omap_abb_instance - data for each instance of ABB ldo
|
||||
+ *
|
||||
+ * @setup_offs: PRM register offset for initial configuration of ABB ldo
|
||||
+ * @ctrl_offs: PRM register offset for active programming of ABB ldo
|
||||
+ * @prm_irq_id: IRQ handle used to resolve IRQSTATUS offset & masks
|
||||
+ * @enabled: track whether ABB ldo is enabled or disabled
|
||||
+ * @common: pointer to common data for all ABB ldo's
|
||||
+ * @_opp_sel: internally track last programmed state of ABB ldo. DO NOT USE
|
||||
+ */
|
||||
+struct omap_abb_instance {
|
||||
+ u8 setup_offs;
|
||||
+ u8 ctrl_offs;
|
||||
+ u8 prm_irq_id;
|
||||
+ bool enabled;
|
||||
+ const struct omap_abb_common *common;
|
||||
+ u8 _opp_sel;
|
||||
+};
|
||||
+
|
||||
+extern struct omap_abb_instance omap36xx_abb_mpu;
|
||||
+
|
||||
+extern struct omap_abb_instance omap4_abb_mpu;
|
||||
+extern struct omap_abb_instance omap4_abb_iva;
|
||||
+
|
||||
+#endif
|
||||
diff --git a/arch/arm/mach-omap2/abb36xx_data.c b/arch/arm/mach-omap2/abb36xx_data.c
|
||||
new file mode 100644
|
||||
index 0000000..0bcfd66
|
||||
--- /dev/null
|
||||
+++ b/arch/arm/mach-omap2/abb36xx_data.c
|
||||
@@ -0,0 +1,38 @@
|
||||
+/*
|
||||
+ * OMAP36xx Adaptive Body-Bias (ABB) data
|
||||
+ *
|
||||
+ * Copyright (C) 2011 Texas Instruments, Inc.
|
||||
+ * Mike Turquette <mturquette@ti.com>
|
||||
+ *
|
||||
+ * This program is free software; you can redistribute it and/or modify
|
||||
+ * it under the terms of the GNU General Public License version 2 as
|
||||
+ * published by the Free Software Foundation.
|
||||
+ */
|
||||
+
|
||||
+#include "abb.h"
|
||||
+#include "prm2xxx_3xxx.h"
|
||||
+#include "prm-regbits-34xx.h"
|
||||
+
|
||||
+static const struct omap_abb_ops omap36xx_abb_ops = {
|
||||
+ .check_tranxdone = &omap36xx_prm_abb_check_txdone,
|
||||
+ .clear_tranxdone = &omap36xx_prm_abb_clear_txdone,
|
||||
+};
|
||||
+
|
||||
+static const struct omap_abb_common omap36xx_abb_common = {
|
||||
+ .opp_sel_mask = OMAP3630_OPP_SEL_MASK,
|
||||
+ .opp_change_mask = OMAP3630_OPP_CHANGE_MASK,
|
||||
+ .sr2en_mask = OMAP3630_SR2EN_MASK,
|
||||
+ .active_fbb_sel_mask = OMAP3630_ACTIVE_FBB_SEL_MASK,
|
||||
+ .sr2_wtcnt_value_mask = OMAP3630_SR2_WTCNT_VALUE_MASK,
|
||||
+ .settling_time = 30,
|
||||
+ .clock_cycles = 8,
|
||||
+ .ops = &omap36xx_abb_ops,
|
||||
+};
|
||||
+
|
||||
+/* SETUP & CTRL registers swapped names in OMAP4; thus 36xx looks strange */
|
||||
+struct omap_abb_instance omap36xx_abb_mpu = {
|
||||
+ .setup_offs = OMAP3_PRM_LDO_ABB_CTRL_OFFSET,
|
||||
+ .ctrl_offs = OMAP3_PRM_LDO_ABB_SETUP_OFFSET,
|
||||
+ .prm_irq_id = OMAP3_PRM_IRQ_VDD_MPU_ID,
|
||||
+ .common = &omap36xx_abb_common,
|
||||
+};
|
||||
diff --git a/arch/arm/mach-omap2/abb44xx_data.c b/arch/arm/mach-omap2/abb44xx_data.c
|
||||
new file mode 100644
|
||||
index 0000000..a7cf855
|
||||
--- /dev/null
|
||||
+++ b/arch/arm/mach-omap2/abb44xx_data.c
|
||||
@@ -0,0 +1,44 @@
|
||||
+/*
|
||||
+ * OMAP44xx Adaptive Body-Bias (ABB) data
|
||||
+ *
|
||||
+ * Copyright (C) 2011 Texas Instruments, Inc.
|
||||
+ * Mike Turquette <mturquette@ti.com>
|
||||
+ *
|
||||
+ * This program is free software; you can redistribute it and/or modify
|
||||
+ * it under the terms of the GNU General Public License version 2 as
|
||||
+ * published by the Free Software Foundation.
|
||||
+ */
|
||||
+
|
||||
+#include "abb.h"
|
||||
+#include "prm44xx.h"
|
||||
+#include "prm-regbits-44xx.h"
|
||||
+
|
||||
+static const struct omap_abb_ops omap4_abb_ops = {
|
||||
+ .check_tranxdone = &omap4_prm_abb_check_txdone,
|
||||
+ .clear_tranxdone = &omap4_prm_abb_clear_txdone,
|
||||
+};
|
||||
+
|
||||
+static const struct omap_abb_common omap4_abb_common = {
|
||||
+ .opp_sel_mask = OMAP4430_OPP_SEL_MASK,
|
||||
+ .opp_change_mask = OMAP4430_OPP_CHANGE_MASK,
|
||||
+ .sr2en_mask = OMAP4430_SR2EN_MASK,
|
||||
+ .active_fbb_sel_mask = OMAP4430_ACTIVE_FBB_SEL_MASK,
|
||||
+ .sr2_wtcnt_value_mask = OMAP4430_SR2_WTCNT_VALUE_MASK,
|
||||
+ .settling_time = 50,
|
||||
+ .clock_cycles = 16,
|
||||
+ .ops = &omap4_abb_ops,
|
||||
+};
|
||||
+
|
||||
+struct omap_abb_instance omap4_abb_mpu = {
|
||||
+ .setup_offs = OMAP4_PRM_LDO_ABB_MPU_SETUP_OFFSET,
|
||||
+ .ctrl_offs = OMAP4_PRM_LDO_ABB_MPU_CTRL_OFFSET,
|
||||
+ .prm_irq_id = OMAP4_PRM_IRQ_VDD_MPU_ID,
|
||||
+ .common = &omap4_abb_common,
|
||||
+};
|
||||
+
|
||||
+struct omap_abb_instance omap4_abb_iva = {
|
||||
+ .setup_offs = OMAP4_PRM_LDO_ABB_IVA_SETUP_OFFSET,
|
||||
+ .ctrl_offs = OMAP4_PRM_LDO_ABB_IVA_CTRL_OFFSET,
|
||||
+ .prm_irq_id = OMAP4_PRM_IRQ_VDD_IVA_ID,
|
||||
+ .common = &omap4_abb_common,
|
||||
+};
|
||||
--
|
||||
1.6.6.1
|
||||
|
||||
@@ -1,194 +0,0 @@
|
||||
From 8d85fedcb9866f5041e2c63b54d3eff7fd88cf18 Mon Sep 17 00:00:00 2001
|
||||
From: Mike Turquette <mturquette@ti.com>
|
||||
Date: Wed, 29 Jun 2011 17:25:57 -0700
|
||||
Subject: [PATCH 5/8] OMAP3+: OPP: add ABB data to voltage tables
|
||||
|
||||
The operating mode of the Adaptive Body-Bias ldo maps directly to the
|
||||
voltage of its voltage domain. The two modes supported are bypass and
|
||||
Forward Body-Bias (FBB).
|
||||
|
||||
This patch models this relationship by adding an opp_sel paramter to
|
||||
struct omap_volt_data and populates this type in the 3630 and 4430
|
||||
voltage tables.
|
||||
|
||||
NOMINAL_OPP causes the ABB ldo to be in bypass at that specific voltage.
|
||||
FAST_OPP causes the ldo to operate in Forward Body-Bias mode.
|
||||
|
||||
Not all voltage domains have an ABB ldo and 3430 doesn't have one at
|
||||
all. In such cases voltages are marked with OMAP_ABB_NO_LDO.
|
||||
|
||||
Signed-off-by: Mike Turquette <mturquette@ti.com>
|
||||
---
|
||||
arch/arm/mach-omap2/omap_opp_data.h | 5 ++-
|
||||
arch/arm/mach-omap2/opp3xxx_data.c | 37 ++++++++++++++++++-----------------
|
||||
arch/arm/mach-omap2/opp4xxx_data.c | 25 ++++++++++++-----------
|
||||
arch/arm/mach-omap2/voltage.h | 1 +
|
||||
4 files changed, 36 insertions(+), 32 deletions(-)
|
||||
|
||||
diff --git a/arch/arm/mach-omap2/omap_opp_data.h b/arch/arm/mach-omap2/omap_opp_data.h
|
||||
index c784c12..5dd4dea 100644
|
||||
--- a/arch/arm/mach-omap2/omap_opp_data.h
|
||||
+++ b/arch/arm/mach-omap2/omap_opp_data.h
|
||||
@@ -71,12 +71,13 @@ struct omap_opp_def {
|
||||
* Initialization wrapper used to define SmartReflex process data
|
||||
* XXX Is this needed? Just use C99 initializers in data files?
|
||||
*/
|
||||
-#define VOLT_DATA_DEFINE(_v_nom, _efuse_offs, _errminlimit, _errgain) \
|
||||
+#define VOLT_DATA_DEFINE(_v_nom, _efuse_offs, _errminlimit, _errgain, _opp_sel) \
|
||||
{ \
|
||||
.volt_nominal = _v_nom, \
|
||||
.sr_efuse_offs = _efuse_offs, \
|
||||
.sr_errminlimit = _errminlimit, \
|
||||
- .vp_errgain = _errgain \
|
||||
+ .vp_errgain = _errgain, \
|
||||
+ .opp_sel = _opp_sel \
|
||||
}
|
||||
|
||||
/* Use this to initialize the default table */
|
||||
diff --git a/arch/arm/mach-omap2/opp3xxx_data.c b/arch/arm/mach-omap2/opp3xxx_data.c
|
||||
index d95f3f9..12fc2da 100644
|
||||
--- a/arch/arm/mach-omap2/opp3xxx_data.c
|
||||
+++ b/arch/arm/mach-omap2/opp3xxx_data.c
|
||||
@@ -24,6 +24,7 @@
|
||||
#include "control.h"
|
||||
#include "omap_opp_data.h"
|
||||
#include "pm.h"
|
||||
+#include "abb.h"
|
||||
|
||||
/* 34xx */
|
||||
|
||||
@@ -36,12 +37,12 @@
|
||||
#define OMAP3430_VDD_MPU_OPP5_UV 1350000
|
||||
|
||||
struct omap_volt_data omap34xx_vddmpu_volt_data[] = {
|
||||
- VOLT_DATA_DEFINE(OMAP3430_VDD_MPU_OPP1_UV, OMAP343X_CONTROL_FUSE_OPP1_VDD1, 0xf4, 0x0c),
|
||||
- VOLT_DATA_DEFINE(OMAP3430_VDD_MPU_OPP2_UV, OMAP343X_CONTROL_FUSE_OPP2_VDD1, 0xf4, 0x0c),
|
||||
- VOLT_DATA_DEFINE(OMAP3430_VDD_MPU_OPP3_UV, OMAP343X_CONTROL_FUSE_OPP3_VDD1, 0xf9, 0x18),
|
||||
- VOLT_DATA_DEFINE(OMAP3430_VDD_MPU_OPP4_UV, OMAP343X_CONTROL_FUSE_OPP4_VDD1, 0xf9, 0x18),
|
||||
- VOLT_DATA_DEFINE(OMAP3430_VDD_MPU_OPP5_UV, OMAP343X_CONTROL_FUSE_OPP5_VDD1, 0xf9, 0x18),
|
||||
- VOLT_DATA_DEFINE(0, 0, 0, 0),
|
||||
+ VOLT_DATA_DEFINE(OMAP3430_VDD_MPU_OPP1_UV, OMAP343X_CONTROL_FUSE_OPP1_VDD1, 0xf4, 0x0c, OMAP_ABB_NO_LDO),
|
||||
+ VOLT_DATA_DEFINE(OMAP3430_VDD_MPU_OPP2_UV, OMAP343X_CONTROL_FUSE_OPP2_VDD1, 0xf4, 0x0c, OMAP_ABB_NO_LDO),
|
||||
+ VOLT_DATA_DEFINE(OMAP3430_VDD_MPU_OPP3_UV, OMAP343X_CONTROL_FUSE_OPP3_VDD1, 0xf9, 0x18, OMAP_ABB_NO_LDO),
|
||||
+ VOLT_DATA_DEFINE(OMAP3430_VDD_MPU_OPP4_UV, OMAP343X_CONTROL_FUSE_OPP4_VDD1, 0xf9, 0x18, OMAP_ABB_NO_LDO),
|
||||
+ VOLT_DATA_DEFINE(OMAP3430_VDD_MPU_OPP5_UV, OMAP343X_CONTROL_FUSE_OPP5_VDD1, 0xf9, 0x18, OMAP_ABB_NO_LDO),
|
||||
+ VOLT_DATA_DEFINE(0, 0, 0, 0, 0),
|
||||
};
|
||||
|
||||
/* VDD2 */
|
||||
@@ -51,10 +52,10 @@ struct omap_volt_data omap34xx_vddmpu_volt_data[] = {
|
||||
#define OMAP3430_VDD_CORE_OPP3_UV 1150000
|
||||
|
||||
struct omap_volt_data omap34xx_vddcore_volt_data[] = {
|
||||
- VOLT_DATA_DEFINE(OMAP3430_VDD_CORE_OPP1_UV, OMAP343X_CONTROL_FUSE_OPP1_VDD2, 0xf4, 0x0c),
|
||||
- VOLT_DATA_DEFINE(OMAP3430_VDD_CORE_OPP2_UV, OMAP343X_CONTROL_FUSE_OPP2_VDD2, 0xf4, 0x0c),
|
||||
- VOLT_DATA_DEFINE(OMAP3430_VDD_CORE_OPP3_UV, OMAP343X_CONTROL_FUSE_OPP3_VDD2, 0xf9, 0x18),
|
||||
- VOLT_DATA_DEFINE(0, 0, 0, 0),
|
||||
+ VOLT_DATA_DEFINE(OMAP3430_VDD_CORE_OPP1_UV, OMAP343X_CONTROL_FUSE_OPP1_VDD2, 0xf4, 0x0c, OMAP_ABB_NO_LDO),
|
||||
+ VOLT_DATA_DEFINE(OMAP3430_VDD_CORE_OPP2_UV, OMAP343X_CONTROL_FUSE_OPP2_VDD2, 0xf4, 0x0c, OMAP_ABB_NO_LDO),
|
||||
+ VOLT_DATA_DEFINE(OMAP3430_VDD_CORE_OPP3_UV, OMAP343X_CONTROL_FUSE_OPP3_VDD2, 0xf9, 0x18, OMAP_ABB_NO_LDO),
|
||||
+ VOLT_DATA_DEFINE(0, 0, 0, 0, 0),
|
||||
};
|
||||
|
||||
/* 36xx */
|
||||
@@ -67,11 +68,11 @@ struct omap_volt_data omap34xx_vddcore_volt_data[] = {
|
||||
#define OMAP3630_VDD_MPU_OPP1G_UV 1375000
|
||||
|
||||
struct omap_volt_data omap36xx_vddmpu_volt_data[] = {
|
||||
- VOLT_DATA_DEFINE(OMAP3630_VDD_MPU_OPP50_UV, OMAP3630_CONTROL_FUSE_OPP50_VDD1, 0xf4, 0x0c),
|
||||
- VOLT_DATA_DEFINE(OMAP3630_VDD_MPU_OPP100_UV, OMAP3630_CONTROL_FUSE_OPP100_VDD1, 0xf9, 0x16),
|
||||
- VOLT_DATA_DEFINE(OMAP3630_VDD_MPU_OPP120_UV, OMAP3630_CONTROL_FUSE_OPP120_VDD1, 0xfa, 0x23),
|
||||
- VOLT_DATA_DEFINE(OMAP3630_VDD_MPU_OPP1G_UV, OMAP3630_CONTROL_FUSE_OPP1G_VDD1, 0xfa, 0x27),
|
||||
- VOLT_DATA_DEFINE(0, 0, 0, 0),
|
||||
+ VOLT_DATA_DEFINE(OMAP3630_VDD_MPU_OPP50_UV, OMAP3630_CONTROL_FUSE_OPP50_VDD1, 0xf4, 0x0c, OMAP_ABB_NOMINAL_OPP),
|
||||
+ VOLT_DATA_DEFINE(OMAP3630_VDD_MPU_OPP100_UV, OMAP3630_CONTROL_FUSE_OPP100_VDD1, 0xf9, 0x16, OMAP_ABB_NOMINAL_OPP),
|
||||
+ VOLT_DATA_DEFINE(OMAP3630_VDD_MPU_OPP120_UV, OMAP3630_CONTROL_FUSE_OPP120_VDD1, 0xfa, 0x23, OMAP_ABB_NOMINAL_OPP),
|
||||
+ VOLT_DATA_DEFINE(OMAP3630_VDD_MPU_OPP1G_UV, OMAP3630_CONTROL_FUSE_OPP1G_VDD1, 0xfa, 0x27, OMAP_ABB_FAST_OPP),
|
||||
+ VOLT_DATA_DEFINE(0, 0, 0, 0, 0),
|
||||
};
|
||||
|
||||
/* VDD2 */
|
||||
@@ -80,9 +81,9 @@ struct omap_volt_data omap36xx_vddmpu_volt_data[] = {
|
||||
#define OMAP3630_VDD_CORE_OPP100_UV 1200000
|
||||
|
||||
struct omap_volt_data omap36xx_vddcore_volt_data[] = {
|
||||
- VOLT_DATA_DEFINE(OMAP3630_VDD_CORE_OPP50_UV, OMAP3630_CONTROL_FUSE_OPP50_VDD2, 0xf4, 0x0c),
|
||||
- VOLT_DATA_DEFINE(OMAP3630_VDD_CORE_OPP100_UV, OMAP3630_CONTROL_FUSE_OPP100_VDD2, 0xf9, 0x16),
|
||||
- VOLT_DATA_DEFINE(0, 0, 0, 0),
|
||||
+ VOLT_DATA_DEFINE(OMAP3630_VDD_CORE_OPP50_UV, OMAP3630_CONTROL_FUSE_OPP50_VDD2, 0xf4, 0x0c, OMAP_ABB_NO_LDO),
|
||||
+ VOLT_DATA_DEFINE(OMAP3630_VDD_CORE_OPP100_UV, OMAP3630_CONTROL_FUSE_OPP100_VDD2, 0xf9, 0x16, OMAP_ABB_NO_LDO),
|
||||
+ VOLT_DATA_DEFINE(0, 0, 0, 0, 0),
|
||||
};
|
||||
|
||||
/* OPP data */
|
||||
diff --git a/arch/arm/mach-omap2/opp4xxx_data.c b/arch/arm/mach-omap2/opp4xxx_data.c
|
||||
index 2293ba2..efdbf91 100644
|
||||
--- a/arch/arm/mach-omap2/opp4xxx_data.c
|
||||
+++ b/arch/arm/mach-omap2/opp4xxx_data.c
|
||||
@@ -25,6 +25,7 @@
|
||||
#include "control.h"
|
||||
#include "omap_opp_data.h"
|
||||
#include "pm.h"
|
||||
+#include "abb.h"
|
||||
|
||||
/*
|
||||
* Structures containing OMAP4430 voltage supported and various
|
||||
@@ -37,11 +38,11 @@
|
||||
#define OMAP4430_VDD_MPU_OPPNITRO_UV 1375000
|
||||
|
||||
struct omap_volt_data omap44xx_vdd_mpu_volt_data[] = {
|
||||
- VOLT_DATA_DEFINE(OMAP4430_VDD_MPU_OPP50_UV, OMAP44XX_CONTROL_FUSE_MPU_OPP50, 0xf4, 0x0c),
|
||||
- VOLT_DATA_DEFINE(OMAP4430_VDD_MPU_OPP100_UV, OMAP44XX_CONTROL_FUSE_MPU_OPP100, 0xf9, 0x16),
|
||||
- VOLT_DATA_DEFINE(OMAP4430_VDD_MPU_OPPTURBO_UV, OMAP44XX_CONTROL_FUSE_MPU_OPPTURBO, 0xfa, 0x23),
|
||||
- VOLT_DATA_DEFINE(OMAP4430_VDD_MPU_OPPNITRO_UV, OMAP44XX_CONTROL_FUSE_MPU_OPPNITRO, 0xfa, 0x27),
|
||||
- VOLT_DATA_DEFINE(0, 0, 0, 0),
|
||||
+ VOLT_DATA_DEFINE(OMAP4430_VDD_MPU_OPP50_UV, OMAP44XX_CONTROL_FUSE_MPU_OPP50, 0xf4, 0x0c, OMAP_ABB_NOMINAL_OPP),
|
||||
+ VOLT_DATA_DEFINE(OMAP4430_VDD_MPU_OPP100_UV, OMAP44XX_CONTROL_FUSE_MPU_OPP100, 0xf9, 0x16, OMAP_ABB_NOMINAL_OPP),
|
||||
+ VOLT_DATA_DEFINE(OMAP4430_VDD_MPU_OPPTURBO_UV, OMAP44XX_CONTROL_FUSE_MPU_OPPTURBO, 0xfa, 0x23, OMAP_ABB_NOMINAL_OPP),
|
||||
+ VOLT_DATA_DEFINE(OMAP4430_VDD_MPU_OPPNITRO_UV, OMAP44XX_CONTROL_FUSE_MPU_OPPNITRO, 0xfa, 0x27, OMAP_ABB_FAST_OPP),
|
||||
+ VOLT_DATA_DEFINE(0, 0, 0, 0, 0),
|
||||
};
|
||||
|
||||
#define OMAP4430_VDD_IVA_OPP50_UV 1013000
|
||||
@@ -49,19 +50,19 @@ struct omap_volt_data omap44xx_vdd_mpu_volt_data[] = {
|
||||
#define OMAP4430_VDD_IVA_OPPTURBO_UV 1300000
|
||||
|
||||
struct omap_volt_data omap44xx_vdd_iva_volt_data[] = {
|
||||
- VOLT_DATA_DEFINE(OMAP4430_VDD_IVA_OPP50_UV, OMAP44XX_CONTROL_FUSE_IVA_OPP50, 0xf4, 0x0c),
|
||||
- VOLT_DATA_DEFINE(OMAP4430_VDD_IVA_OPP100_UV, OMAP44XX_CONTROL_FUSE_IVA_OPP100, 0xf9, 0x16),
|
||||
- VOLT_DATA_DEFINE(OMAP4430_VDD_IVA_OPPTURBO_UV, OMAP44XX_CONTROL_FUSE_IVA_OPPTURBO, 0xfa, 0x23),
|
||||
- VOLT_DATA_DEFINE(0, 0, 0, 0),
|
||||
+ VOLT_DATA_DEFINE(OMAP4430_VDD_IVA_OPP50_UV, OMAP44XX_CONTROL_FUSE_IVA_OPP50, 0xf4, 0x0c, OMAP_ABB_NOMINAL_OPP),
|
||||
+ VOLT_DATA_DEFINE(OMAP4430_VDD_IVA_OPP100_UV, OMAP44XX_CONTROL_FUSE_IVA_OPP100, 0xf9, 0x16, OMAP_ABB_NOMINAL_OPP),
|
||||
+ VOLT_DATA_DEFINE(OMAP4430_VDD_IVA_OPPTURBO_UV, OMAP44XX_CONTROL_FUSE_IVA_OPPTURBO, 0xfa, 0x23, OMAP_ABB_NOMINAL_OPP),
|
||||
+ VOLT_DATA_DEFINE(0, 0, 0, 0, 0),
|
||||
};
|
||||
|
||||
#define OMAP4430_VDD_CORE_OPP50_UV 1025000
|
||||
#define OMAP4430_VDD_CORE_OPP100_UV 1200000
|
||||
|
||||
struct omap_volt_data omap44xx_vdd_core_volt_data[] = {
|
||||
- VOLT_DATA_DEFINE(OMAP4430_VDD_CORE_OPP50_UV, OMAP44XX_CONTROL_FUSE_CORE_OPP50, 0xf4, 0x0c),
|
||||
- VOLT_DATA_DEFINE(OMAP4430_VDD_CORE_OPP100_UV, OMAP44XX_CONTROL_FUSE_CORE_OPP100, 0xf9, 0x16),
|
||||
- VOLT_DATA_DEFINE(0, 0, 0, 0),
|
||||
+ VOLT_DATA_DEFINE(OMAP4430_VDD_CORE_OPP50_UV, OMAP44XX_CONTROL_FUSE_CORE_OPP50, 0xf4, 0x0c, OMAP_ABB_NO_LDO),
|
||||
+ VOLT_DATA_DEFINE(OMAP4430_VDD_CORE_OPP100_UV, OMAP44XX_CONTROL_FUSE_CORE_OPP100, 0xf9, 0x16, OMAP_ABB_NO_LDO),
|
||||
+ VOLT_DATA_DEFINE(0, 0, 0, 0, 0),
|
||||
};
|
||||
|
||||
|
||||
diff --git a/arch/arm/mach-omap2/voltage.h b/arch/arm/mach-omap2/voltage.h
|
||||
index b4c6259..2aa6c43 100644
|
||||
--- a/arch/arm/mach-omap2/voltage.h
|
||||
+++ b/arch/arm/mach-omap2/voltage.h
|
||||
@@ -105,6 +105,7 @@ struct omap_volt_data {
|
||||
u32 sr_efuse_offs;
|
||||
u8 sr_errminlimit;
|
||||
u8 vp_errgain;
|
||||
+ u32 opp_sel;
|
||||
};
|
||||
|
||||
/**
|
||||
--
|
||||
1.6.6.1
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user