From 6aad7407464ec9cc807916b71068fdae323bfcd1 Mon Sep 17 00:00:00 2001 From: Darren Hart Date: Mon, 23 Jan 2012 15:46:07 -0800 Subject: meta-intel: Add Inforce SYS940x BSP The Inforce SYS940x-ECX Developer-Ready Reference Platform features: o Intel Atom E6xx (0.6-1.6 GHz) o Up to 1GB on-board DDR2 o Intel Platform Controller Hub EG20T o VGA,LVDS o HD Audio o SD Card o Dual SATA o Mini-PCIe http://www.inforcecomputing.com/SYS940X_ECX.html Signed-off-by: Darren Hart --- meta-sys940x/COPYING.MIT | 17 +++ meta-sys940x/README | 140 +++++++++++++++++++++ meta-sys940x/README.sources | 18 +++ meta-sys940x/binary/.gitignore | 0 meta-sys940x/conf/layer.conf | 10 ++ meta-sys940x/conf/machine/sys940x-noemgd.conf | 19 +++ meta-sys940x/conf/machine/sys940x.conf | 23 ++++ .../formfactor/sys940x-noemgd/machconfig | 3 + .../formfactor/formfactor/sys940x/machconfig | 3 + .../recipes-bsp/formfactor/formfactor_0.0.bbappend | 3 + .../xserver-xf86-config/sys940x-noemgd/xorg.conf | 26 ++++ .../xserver-xf86-config/sys940x/xorg.conf | 48 +++++++ .../xorg-xserver/xserver-xf86-config_0.1.bbappend | 3 + .../linux/linux-yocto-rt_3.0.bbappend | 14 +++ .../recipes-kernel/linux/linux-yocto_3.0.bbappend | 17 +++ 15 files changed, 344 insertions(+) create mode 100644 meta-sys940x/COPYING.MIT create mode 100644 meta-sys940x/README create mode 100644 meta-sys940x/README.sources create mode 100644 meta-sys940x/binary/.gitignore create mode 100644 meta-sys940x/conf/layer.conf create mode 100644 meta-sys940x/conf/machine/sys940x-noemgd.conf create mode 100644 meta-sys940x/conf/machine/sys940x.conf create mode 100644 meta-sys940x/recipes-bsp/formfactor/formfactor/sys940x-noemgd/machconfig create mode 100644 meta-sys940x/recipes-bsp/formfactor/formfactor/sys940x/machconfig create mode 100644 meta-sys940x/recipes-bsp/formfactor/formfactor_0.0.bbappend create mode 100644 meta-sys940x/recipes-graphics/xorg-xserver/xserver-xf86-config/sys940x-noemgd/xorg.conf create mode 100644 meta-sys940x/recipes-graphics/xorg-xserver/xserver-xf86-config/sys940x/xorg.conf create mode 100644 meta-sys940x/recipes-graphics/xorg-xserver/xserver-xf86-config_0.1.bbappend create mode 100644 meta-sys940x/recipes-kernel/linux/linux-yocto-rt_3.0.bbappend create mode 100644 meta-sys940x/recipes-kernel/linux/linux-yocto_3.0.bbappend (limited to 'meta-sys940x') diff --git a/meta-sys940x/COPYING.MIT b/meta-sys940x/COPYING.MIT new file mode 100644 index 00000000..fb950dc6 --- /dev/null +++ b/meta-sys940x/COPYING.MIT @@ -0,0 +1,17 @@ +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/meta-sys940x/README b/meta-sys940x/README new file mode 100644 index 00000000..e349008f --- /dev/null +++ b/meta-sys940x/README @@ -0,0 +1,140 @@ +This README file contains information on building the meta-sys940x BSP +layer, and booting the images contained in the /binary directory. +Please see the corresponding sections below for details. + +The Inforce SYS940x platform consists of the Intel Atom E6xx +processor, plus the Intel EG20T Platform Controller Hub (Tunnel Creek ++ Topcliff). + +It also supports the E6xx embedded on-chip graphics via the Intel +Embedded Media and Graphics Driver (EMGD) 1.10 Driver. + + +Dependencies +============ + +This layer depends on: + + URI: git://git.openembedded.org/bitbake + branch: master + + URI: git://git.openembedded.org/openembedded-core + layers: meta + branch: master + + URI: git://git.yoctoproject.org/meta-intel + layers: intel + branch: master + + +Patches +======= + +Please submit any patches against this BSP to the Yocto mailing list +(yocto@yoctoproject.org) and cc: the maintainer: + +Maintainer: Darren Hart + +Please see the meta-intel/MAINTAINERS file for more details. + + +Table of Contents +================= + + I. Building the meta-sys940x BSP layer + II. Booting the images in /binary + + +I. Building the meta-sys940x BSP layer +=================================== + +In order to build an image with BSP support for a given release, you +need to download the corresponding BSP tarball from the 'Board Support +Package (BSP) Downloads' page of the Yocto Project website. + +Having done that, and assuming you extracted the BSP tarball contents +at the top-level of your yocto build tree, you can build an sys940x image +by adding the location of the meta-sys940x layer to bblayers.conf, along +with the meta-intel layer itself (to access common metadata shared +between BSPs) e.g.: + + yocto/meta-intel \ + yocto/meta-intel/meta-sys940x \ + +The meta-sys940x layer contains support for two different machine +configurations. These configurations are identical except for the fact +that the one prefixed with 'sys940x' makes use of the Intel-proprietary +EMGD 1.10 graphics driver, while the one prefixed with 'sys940x-noemgd' +does not. + +If you want to enable the layer that supports EMGD graphics add the +following to the local.conf file: + + MACHINE ?= "sys940x" + +The 'sys940x' machine includes the emgd-driver-bin package, which has a +proprietary license that must be whitelisted by adding the string +"license_emgd-driver-bin_1.10" to the LICENSE_FLAGS_WHITELIST variable +in your local.conf. For example: + + LICENSE_FLAGS_WHITELIST = "license_emgd-driver-bin_1.10" + +If you want to enable the layer that does not support EMGD graphics +add the following to the local.conf file: + + MACHINE ?= "sys940x-noemgd" + +You should then be able to build an sys940x image as such: + + $ source oe-init-build-env + $ bitbake core-image-sato + +At the end of a successful build, you should have a live image that +you can boot from a USB flash drive (see instructions on how to do +that below, in the section 'Booting the images from /binary'). + +As an alternative to downloading the BSP tarball, you can also work +directly from the meta-intel git repository. For each BSP in the +'meta-intel' repository, there are multiple branches, one +corresponding to each major release starting with 'laverne' (0.90), in +addition to the latest code which tracks the current master (note that +not all BSPs are present in every release). Instead of extracting a +BSP tarball at the top level of your yocto build tree, you can +equivalently check out the appropriate branch from the meta-intel +repository at the same location. + + +II. Booting the images in /binary +================================= + +This BSP contains bootable live images, which can be used to directly +boot Yocto off of a USB flash drive. + +Under Linux, insert a USB flash drive. Assuming the USB flash drive +takes device /dev/sdf, use dd to copy the live image to it. For +example: + +# dd if=core-image-sato-sys940x-20101207053738.hddimg of=/dev/sdf +# sync +# eject /dev/sdf + +This should give you a bootable USB flash device. Insert the device +into a bootable USB socket on the target, and power on. This should +result in a system booted to the Sato graphical desktop. + +If you want a terminal, use the arrows at the top of the UI to move to +different pages of available applications, one of which is named +'Terminal'. Clicking that should give you a root terminal. + +If you want to ssh into the system, you can use the root terminal to +ifconfig the IP address and use that to ssh in. The root password is +empty, so to log in type 'root' for the user name and hit 'Enter' at +the Password prompt: and you should be in. + +---- + +If you find you're getting corrupt images on the USB (it doesn't show +the syslinux boot: prompt, or the boot: prompt contains strange +characters), try doing this first: + +# dd if=/dev/zero of=/dev/sdf bs=1M count=512 diff --git a/meta-sys940x/README.sources b/meta-sys940x/README.sources new file mode 100644 index 00000000..c6cab4d3 --- /dev/null +++ b/meta-sys940x/README.sources @@ -0,0 +1,18 @@ +The sources for the packages comprising the images shipped with this +BSP can be found at the following location: + +http://downloads.yoctoproject.org/mirror/sources/ + +The metadata used to generate the images shipped with this BSP, in +addition to the code contained in this BSP, can be found at the +following location: + +# FIXME: update the following link after the Yocto Project 1.2 release +http://www.yoctoproject.org/downloads/yocto-1.2/poky-RELEASENAME-6.0.tar.bz2 + +The metadata used to generate the images shipped with this BSP, in +addition to the code contained in this BSP, can also be found at the +following locations: + +git://git.yoctoproject.org/poky.git +git://git.yoctoproject.org/meta-intel diff --git a/meta-sys940x/binary/.gitignore b/meta-sys940x/binary/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/meta-sys940x/conf/layer.conf b/meta-sys940x/conf/layer.conf new file mode 100644 index 00000000..459c7102 --- /dev/null +++ b/meta-sys940x/conf/layer.conf @@ -0,0 +1,10 @@ +# We have a conf and classes directory, add to BBPATH +BBPATH := "${BBPATH}:${LAYERDIR}" + +# We have a recipes directory, add to BBFILES +BBFILES := "${BBFILES} ${LAYERDIR}/recipes-*/*/*.bb \ + ${LAYERDIR}/recipes-*/*/*.bbappend" + +BBFILE_COLLECTIONS += "sys940x" +BBFILE_PATTERN_sys940x := "^${LAYERDIR}/" +BBFILE_PRIORITY_sys940x = "6" diff --git a/meta-sys940x/conf/machine/sys940x-noemgd.conf b/meta-sys940x/conf/machine/sys940x-noemgd.conf new file mode 100644 index 00000000..8a1c20f5 --- /dev/null +++ b/meta-sys940x/conf/machine/sys940x-noemgd.conf @@ -0,0 +1,19 @@ +#@TYPE: Machine +#@NAME: sys940x + +#@DESCRIPTION: Machine configuration for Inforce SYS940X systems +# i.e. E660 + EG20T + +include conf/machine/include/tune-atom.inc +include conf/machine/include/ia32-base.inc + +# Add "pcbios" if you have a non-efi version of the firmware +MACHINE_FEATURES += "efi pcbios" + +XSERVER ?= "${XSERVER_IA32_BASE} \ + ${XSERVER_IA32_EXT} \ + ${XSERVER_IA32_VESA} \ + " + +SERIAL_CONSOLE = "115200 ttyS0" +APPEND += "console=ttyS0,115200 console=tty0" diff --git a/meta-sys940x/conf/machine/sys940x.conf b/meta-sys940x/conf/machine/sys940x.conf new file mode 100644 index 00000000..ceb6e0fa --- /dev/null +++ b/meta-sys940x/conf/machine/sys940x.conf @@ -0,0 +1,23 @@ +#@TYPE: Machine +#@NAME: sys940x + +#@DESCRIPTION: Machine configuration for Inforce SYS940x systems +# i.e. E660 + EG20T + +include conf/machine/include/tune-atom.inc +include conf/machine/include/ia32-base.inc + +# Add "pcbios" if you have a non-efi version of the firmware +MACHINE_FEATURES += "efi pcbios" + +XSERVER ?= "${XSERVER_IA32_BASE} \ + ${XSERVER_IA32_EXT} \ + ${XSERVER_IA32_EMGD} \ + " + +PREFERRED_VERSION_xserver-xorg ?= "1.9.3" +PREFERRED_VERSION_mesa-dri ?= "7.11" +PREFERRED_VERSION_emgd-driver-bin ?= "1.8" + +SERIAL_CONSOLE = "115200 ttyS0" +APPEND += "console=ttyS0,115200 console=tty0" diff --git a/meta-sys940x/recipes-bsp/formfactor/formfactor/sys940x-noemgd/machconfig b/meta-sys940x/recipes-bsp/formfactor/formfactor/sys940x-noemgd/machconfig new file mode 100644 index 00000000..ffce0122 --- /dev/null +++ b/meta-sys940x/recipes-bsp/formfactor/formfactor/sys940x-noemgd/machconfig @@ -0,0 +1,3 @@ +# Assume a USB mouse and keyboard are connected +HAVE_TOUCHSCREEN=0 +HAVE_KEYBOARD=1 diff --git a/meta-sys940x/recipes-bsp/formfactor/formfactor/sys940x/machconfig b/meta-sys940x/recipes-bsp/formfactor/formfactor/sys940x/machconfig new file mode 100644 index 00000000..ffce0122 --- /dev/null +++ b/meta-sys940x/recipes-bsp/formfactor/formfactor/sys940x/machconfig @@ -0,0 +1,3 @@ +# Assume a USB mouse and keyboard are connected +HAVE_TOUCHSCREEN=0 +HAVE_KEYBOARD=1 diff --git a/meta-sys940x/recipes-bsp/formfactor/formfactor_0.0.bbappend b/meta-sys940x/recipes-bsp/formfactor/formfactor_0.0.bbappend new file mode 100644 index 00000000..54da0ffd --- /dev/null +++ b/meta-sys940x/recipes-bsp/formfactor/formfactor_0.0.bbappend @@ -0,0 +1,3 @@ +FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" + +PRINC = "1" diff --git a/meta-sys940x/recipes-graphics/xorg-xserver/xserver-xf86-config/sys940x-noemgd/xorg.conf b/meta-sys940x/recipes-graphics/xorg-xserver/xserver-xf86-config/sys940x-noemgd/xorg.conf new file mode 100644 index 00000000..da4fc3c6 --- /dev/null +++ b/meta-sys940x/recipes-graphics/xorg-xserver/xserver-xf86-config/sys940x-noemgd/xorg.conf @@ -0,0 +1,26 @@ +Section "Device" + Identifier "Generic VESA" + Driver "vesa" +EndSection + +Section "Monitor" + Identifier "Generic Monitor" + Option "DPMS" +EndSection + +Section "Screen" + Identifier "Default Screen" + Device "Generic VESA" + Monitor "Generic Monitor" + DefaultDepth 24 +EndSection + +Section "ServerLayout" + Identifier "Default Layout" + Screen "Default Screen" +EndSection + +Section "ServerFlags" + Option "DontZap" "0" + Option "AutoAddDevices" "False" +EndSection diff --git a/meta-sys940x/recipes-graphics/xorg-xserver/xserver-xf86-config/sys940x/xorg.conf b/meta-sys940x/recipes-graphics/xorg-xserver/xserver-xf86-config/sys940x/xorg.conf new file mode 100644 index 00000000..73736aca --- /dev/null +++ b/meta-sys940x/recipes-graphics/xorg-xserver/xserver-xf86-config/sys940x/xorg.conf @@ -0,0 +1,48 @@ +## +## X Config options generated from CED +## x11 conf skeleton +## DriverVer= +## + +Section "Screen" + Identifier "Screen0" + Device "IntelEMGD-0" + Monitor "Monitor0" + SubSection "Display" + EndSubSection +EndSection + +# Primary (First/only) display +Section "Device" + Identifier "IntelEMGD-0" + Driver "emgd" + VendorName "Intel(R) DEG" + BoardName "Embedded Graphics" + BusID "0:2:0" + Screen 0 + Option "PcfVersion" "1792" + Option "ConfigId" "1" + Option "ALL/1/name" "e6xx" + Option "ALL/1/General/PortOrder" "32400" + Option "ALL/1/General/DisplayConfig" "1" + Option "ALL/1/General/DisplayDetect" "1" + Option "ALL/1/General/TuningWA" "1" + Option "ALL/1/Port/4/General/name" "lvds" + Option "ALL/1/Port/4/General/EdidAvail" "3" + Option "ALL/1/Port/4/General/EdidNotAvail" "1" + Option "ALL/1/Port/4/General/Rotation" "0" + Option "ALL/1/Port/4/General/Edid" "0" +EndSection + +Section "ServerLayout" + Identifier "Default Layout" + Screen 0 "Screen0" 0 0 + # InputDevice "Mouse0" "CorePointer" + # InputDevice "Keyboard0" "CoreKeyboard" + # InputDevice "DevInputMice" "SendCoreEvents" +EndSection + +Section "ServerFlags" + Option "DontZap" "0" + Option "AutoAddDevices" "False" +EndSection diff --git a/meta-sys940x/recipes-graphics/xorg-xserver/xserver-xf86-config_0.1.bbappend b/meta-sys940x/recipes-graphics/xorg-xserver/xserver-xf86-config_0.1.bbappend new file mode 100644 index 00000000..4b8d0e65 --- /dev/null +++ b/meta-sys940x/recipes-graphics/xorg-xserver/xserver-xf86-config_0.1.bbappend @@ -0,0 +1,3 @@ +THISDIR := "${@os.path.dirname(bb.data.getVar('FILE', d, True))}" +FILESPATH =. "${@base_set_filespath(["${THISDIR}/${PN}"], d)}:" + diff --git a/meta-sys940x/recipes-kernel/linux/linux-yocto-rt_3.0.bbappend b/meta-sys940x/recipes-kernel/linux/linux-yocto-rt_3.0.bbappend new file mode 100644 index 00000000..5d3567d5 --- /dev/null +++ b/meta-sys940x/recipes-kernel/linux/linux-yocto-rt_3.0.bbappend @@ -0,0 +1,14 @@ +FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" + +COMPATIBLE_MACHINE_sys940x = "sys940x" +KMACHINE_sys940x = "sys940x" +KERNEL_FEATURES_append_sys940x += " cfg/smp.scc cfg/efi-ext.scc" + +COMPATIBLE_MACHINE_sys940x-noemgd = "sys940x-noemgd" +KMACHINE_sys940x-noemgd = "sys940x" +KERNEL_FEATURES_append_sys940x-noemgd += " cfg/smp.scc cfg/efi-ext.scc" + +# Update the following to use a different BSP branch or meta SRCREV +#KBRANCH_sys940x = "yocto/standard/preempt-rt/base" +#SRCREV_machine_pn-linux-yocto-rt_sys940x ?= XXXX +#SRCREV_meta_pn-linux-yocto-rt_sys940x ?= XXXX diff --git a/meta-sys940x/recipes-kernel/linux/linux-yocto_3.0.bbappend b/meta-sys940x/recipes-kernel/linux/linux-yocto_3.0.bbappend new file mode 100644 index 00000000..1d8bfb81 --- /dev/null +++ b/meta-sys940x/recipes-kernel/linux/linux-yocto_3.0.bbappend @@ -0,0 +1,17 @@ +FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" + + +COMPATIBLE_MACHINE_sys940x = "sys940x" +KMACHINE_sys940x = "sys940x" +KBRANCH_sys940x = "yocto/standard/base" +KERNEL_FEATURES_append_sys940x += " cfg/smp.scc cfg/efi-ext.scc" + +COMPATIBLE_MACHINE_sys940x-noemgd = "sys940x-noemgd" +KMACHINE_sys940x-noemgd = "sys940x" +KBRANCH_sys940x-noemgd = "yocto/standard/base" +KERNEL_FEATURES_append_sys940x-noemgd += " cfg/smp.scc cfg/efi-ext.scc" + +SRCREV_machine_pn-linux-yocto_sys940x ?= "5df0b4c2538399aed543133b3855f809adf08ab8" +SRCREV_meta_pn-linux-yocto_sys940x ?= "77ca4855e80acb8dad21acea946908716c308b5b" +SRCREV_machine_pn-linux-yocto_sys940x-noemgd ?= "5df0b4c2538399aed543133b3855f809adf08ab8" +SRCREV_meta_pn-linux-yocto_sys940x-noemgd ?= "77ca4855e80acb8dad21acea946908716c308b5b" -- cgit v1.2.3-54-g00ecf