This README file contains information on building the meta-crownbay
BSP layer, and booting the images contained in the /binary directory.
Please see the corresponding sections below for details.

The Crown Bay platform consists of the Intel Atom Z6xx 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.6 Gold Driver.

Table of Contents
=================

  I. Building the meta-crownbay BSP layer
 II. Special notes for building the meta-crownbay BSP layer
III. Booting the images in /binary


I. Building the meta-crownbay 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 a crownbay
image by adding the location of the meta-crownbay layer to
bblayers.conf e.g.:

  yocto/meta-intel/meta-crownbay \

The meta-crownbay layer contains support for two different machine
configurations. These configurations are identical except for the fact
that the one prefixed with 'crownbay' makes use of the
Intel-proprietary EMGD 1.6 graphics driver, while the one prefixed
with 'crownbay-noemgd' does not.

If you want to enable the layer that supports EMGD graphics add
following to the local.conf file:

  MACHINE ?= "crownbay"

If you want to enable the layer that does not support EMGD graphics
add the following to the local.conf file:

  MACHINE ?= "crownbay-noemgd"

You should then be able to build a crownbay image as such:

  $ source poky-init-build-env
  $ bitbake poky-image-sato-live

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.  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. Special notes for building the meta-crownbay BSP layer
==========================================================

The meta-crownbay layer makes use of the proprietary Intel EMGD
userspace drivers when building the "crownbay" machine (but not when
building the "crownbay-noemgd" machine).  If you got the BSP from the
'BSP Downloads' section of the Yocto website, the EMGD binaries needed
to perform the build will already be present in the BSP, located in
the recipes-graphics/xorg-xserver/emgd-driver-bin-1.6 directory, and
you can ignore the rest of this section.

If you didn't get the BSP from the 'BSP Downloads' section of the
Yocto website, you have two choices:

- You can download a tarball containing an rpm that contains the
  binaries and extract the binaries from that, and copy them to the
  proper location in the meta-crownbay layer.

- You can download a Windows executable from the official EMGD
  website, extract the binaries from it, and copy them to the proper
  location in the meta-crownbay layer.

The following subsections describe each option in detail.


IIa Downloading and extracting the binaries using the EMGD Linux tarball
------------------------------------------------------------------------

The first step of the process is to download the EMGD 1.6 Gold Driver.
Here is the current link to the URL which it can be downloaded from:

http://edc.intel.com/Software/Downloads/EMGD/

In the Download Now tab, select:

Intel® architecture-based product: Linux Tar Ball
Operating System: MeeGo 1.0 IVI Linux (kernel 2.6.33.3, X.server 1.8.0)

That will give you a large tar file:

Lin_EMGD_1_6_RC_1922.tar

Extract the files in the tar file, which will in turn give you a
directory named IEMGD_HEAD_Linux.

The binaries are contained in an rpm file; you can extract the
binaries from the rpm file using rpm2cpio and cpio:

$ cd IEMGD_HEAD_Linux/MeeGo1.2
$ rpm2cpio emgd-bin-1922-1.6.i586.rpm > emgd-bin-1922-1.6.i586.cpio
$ mkdir extracted; cd extracted
$ cpio -idv < ../poky-image-minimal-initramfs-emenlow.cpio

Finally, you can copy the xorg-xserver binaries to the
emgd-driver-bin-1.6 directory in the meta-crownbay layer:

$ cp -a usr/lib meta-crownbay/recipes-graphics/xorg-xserver/emgd-driver-bin-1.6

You also need to copy the IEMGD License.txt file to the same directory:

$ cp IEMGD_HEAD_Linux/License/License.txt meta-crownbay/recipes/xorg-xserver/emgd-driver-bin-1.6

At this point, you should be able to build meta-crownbay images as usual.


IIb Extracting the binaries using the graphical ced application
---------------------------------------------------------------

These steps require that you run a graphical application in Windows.
Windows 7 was used for these instructions, but it shouldn't matter
which version of Windows you use.

The first step of the process is to download the EMGD 1.6 Gold Driver.
Here is the current link to the URL which it can be downloaded from:

http://edc.intel.com/Software/Downloads/EMGD/

In the Download Now tab, select:

Intel® architecture-based product: Intel Atom Processor E6XX Series
Operating System: MeeGo 1.0 IVI Linux (kernel 2.6.33.3, X.server 1.8.0)

That will give you a large zip file:

IEMGD_1_6_GOLD_1922.zip

Extract the files in the zip file, which will in turn give you a large
.exe file:

IEMGD_1_6_GOLD_ALL_1922.exe

Run IEMGD_1_6_GOLD_ALL_1922.exe to install, accept licenses, etc.

If it says to install watcom, follow the instructions to do that.

When the installation completes, an application named "emgd-ced" will
be present in the install directory.  Double-click to run it.

Select the menu item: New Configuration

In the tabbed page, make the following selections and/or enter the
specified data:

Configuration File Name: myconfig
Platform Chipset: Intel Atom Processor E6xx
Port Devices: LVDS, sDVO

Hit the 'Next' button.

On the next tabbed page, make the following selections and/or enter
the specified data:

Readable Port Name: portname0
Encoder Configuration: Select sDVO Device: Internal LVDS

Hit the 'Finish' button.

Select the menu item: New Package

In the tabbed page, make the following selections and/or enter the
specified data:

Package File Name: mypackage
Configurations: selec myconfig.cnfg
Target OS: Linux operating System

Hit the 'Finish' button.

Select the menu item: Generate Installation

This will create the EMGD installation package:

Generating EMGD installation...

The installation package should now be under the 'workspace'
subdirectory of the directory you installed to:

workspace/installation/mypackage.pkg_installation/IEMGD_HEAD_Linux/IEMGD_HEAD_Linux.tgz

This is the file you are interested in.  Copy it to your Poky build
system, and uncompress/untar it:

$ tar cvfz IEMGD_HEAD_Linux.tgz

The binaries are contained in an rpm file; you can extract the
binaries from the rpm file using rpm2cpio and cpio:

$ cd IEMGD_HEAD_Linux/MeeGo1.2
$ rpm2cpio emgd-bin-1922-1.6.i586.rpm > emgd-bin-1922-1.6.i586.cpio
$ mkdir extracted; cd extracted
$ cpio -idv < ../poky-image-minimal-initramfs-emenlow.cpio

Finally, you can copy the xorg-xserver binaries to the
emgd-driver-bin-1.6 directory in the meta-crownbay layer:

$ cp -a usr/lib meta-crownbay/recipes-graphics/xorg-xserver/emgd-driver-bin-1.6

You also need to copy the IEMGD License.txt file to the same directory:

$ cp IEMGD_HEAD_Linux/License/License.txt meta-crownbay/recipes/xorg-xserver/emgd-driver-bin-1.6

At this point, you should be able to build meta-crownbay images as usual.

----

For reference, the EMGD Driver documentation is also available at the
above link.

The specific text of the document is:

User Guide: Intel® Embedded Media and Graphics Driver, EFI Video
Driver, EPOG, and Video BIOS v1.6 for Windows* XP and Linux* Provides
installation requirements/procedures & describes the vbios/firmware,
configuration options, & functionality of Intel® EMGD under Windows* &
Linux*. Refer to guide for details.

April 2011


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=poky-image-sato-live-crownbay-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
