documentation/poky-ref-manual/technical-details.xml: new x32 section added.
(From yocto-docs rev: 78f8b0367b3e5bbc71712f71fe87367d929424c8) Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
4a0720fd32
commit
c3fe9d7a36
|
@ -566,6 +566,119 @@
|
||||||
</section>
|
</section>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
<section id='x32'>
|
||||||
|
<title>x32</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
x32 is a new processor-specific Application Binary Interface (psABI) for x86_64.
|
||||||
|
An ABI defines the calling conventions between functions in a processing environment.
|
||||||
|
The interface determines what registers are used and what the sizes are for various C data types.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Some processing environments prefer using 32-bit applications even when running
|
||||||
|
on Intel 64-bit platforms.
|
||||||
|
Consider the i386 psABI, which is a very old 32-bit ABI for Intel 64-bit platforms.
|
||||||
|
The i386 psABI does not provide efficient use and access of the Intel 64-bit processor resources,
|
||||||
|
leaving the system underutilized.
|
||||||
|
Now consider the x86_64 psABI.
|
||||||
|
This ABI is newer and uses 64-bits for data sizes and program pointers.
|
||||||
|
The extra bits increase the footprint size of the programs, libraries, memory, and file system size
|
||||||
|
requirements.
|
||||||
|
Executing under the x32 psABI enables user programs to utilize CPU and system resources
|
||||||
|
more efficiently while keeping the memory footprint of the applications low.
|
||||||
|
Extra bits are used for registers but not for addressing mechanisms.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<section id='support'>
|
||||||
|
<title>Support</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
While the x32 psABI is not fully implemented with this release of the Yocto Project,
|
||||||
|
it is partially functional.
|
||||||
|
As of this release of the Yocto Project, x32 psABI support exists as follows:
|
||||||
|
<itemizedlist>
|
||||||
|
<listitem><para>You can create packages and images using an x32 psABI on x86_64 architecture targets.
|
||||||
|
</para></listitem>
|
||||||
|
<listitem><para>You can use the x32 psABI support through the <filename>meta-x32</filename>
|
||||||
|
layer on top of the OE-core/Yocto layer.</para></listitem>
|
||||||
|
<listitem><para>You can use the toolchain for building x32 psABI program binaries and kernel support
|
||||||
|
from the <filename>experimental/meta-x32</filename> layer.</para></listitem>
|
||||||
|
<listitem><para>You can successfully build many recipes with the x32 toolchain.</para></listitem>
|
||||||
|
<listitem><para>You can create and boot <filename>core-image-minimal</filename> and
|
||||||
|
<filename>core-image-sato</filename> images.</para></listitem>
|
||||||
|
</itemizedlist>
|
||||||
|
</para>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section id='future-development-and-limitations'>
|
||||||
|
<title>Future Development and Limitations</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
For this release of the Yocto Project, the x32 psABI kernel and library interfaces
|
||||||
|
and their use are not finalized.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Plans for the x32 psABI in the Yocto Project include the following:
|
||||||
|
<itemizedlist>
|
||||||
|
<listitem><para>Enhance and fix recipes so they fully
|
||||||
|
support x32 toolchains and binaries.</para></listitem>
|
||||||
|
<listitem><para>Complete RPM Package Manager (RPM) support for x32 binaries.</para></listitem>
|
||||||
|
<listitem><para>Support larger images.</para></listitem>
|
||||||
|
<listitem><para>Integrate x32 toolchain and kernel changes from
|
||||||
|
<filename>experimental/meta-x32</filename> into OE-core.</para></listitem>
|
||||||
|
</itemizedlist>
|
||||||
|
</para>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section id='using-x32-right-now'>
|
||||||
|
<title>Using x32 Right Now</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Despite the fact that the x32 psABI is incomplete for this release of the Yocto Project, you can
|
||||||
|
use it to some degree.
|
||||||
|
Follow these steps to use the x32 spABI:
|
||||||
|
<itemizedlist>
|
||||||
|
<listitem><para>Add the <filename>experimental/meta-x32</filename> layer to your local
|
||||||
|
<ulink url='&YOCTO_DOCS_DEV_URL;#yocto-project-files'>Yocto Project Files</ulink>
|
||||||
|
Git repository.
|
||||||
|
You can find the <filename>experimental/meta-x32</filename> source repository at
|
||||||
|
<ulink url='&YOCTO_GIT_URL;'></ulink>.</para></listitem>
|
||||||
|
<listitem><para>Edit your <filename>conf/bblayers.conf</filename> file so that it includes
|
||||||
|
the <filename>experimental/meta-x32</filename>.
|
||||||
|
Here is an example:
|
||||||
|
<literallayout class='monospaced'>
|
||||||
|
BBLAYERS ?= " \
|
||||||
|
/home/nitin/prj/poky.git/meta \
|
||||||
|
/home/nitin/prj/poky.git/meta-yocto \
|
||||||
|
/home/nitin/prj/meta-x32.git \
|
||||||
|
"
|
||||||
|
</literallayout></para></listitem>
|
||||||
|
<listitem><para>Enable the x32 psABI tuning file for <filename>x86_64</filename>
|
||||||
|
machines by editing the <filename>conf/local.conf</filename> as follows:
|
||||||
|
<literallayout class='monospaced'>
|
||||||
|
MACHINE = "qemux86-64"
|
||||||
|
DEFAULTTUNE = "x86-64-x32"
|
||||||
|
baselib = "${@d.getVar('BASE_LIB_tune-' + (d.getVar('DEFAULTTUNE', True) \
|
||||||
|
or 'INVALID'), True) or 'lib'}"
|
||||||
|
#MACHINE = "atom-pc"
|
||||||
|
#DEFAULTTUNE = "core2-64-x32"
|
||||||
|
</literallayout></para></listitem>
|
||||||
|
<listitem><para>Use BitBake to build an image that supports the x32 psABI.
|
||||||
|
Here is an example:
|
||||||
|
<literallayout class='monospaced'>
|
||||||
|
$ bitake core-image-sato
|
||||||
|
</literallayout></para></listitem>
|
||||||
|
<listitem><para>Run your image using QUEM:
|
||||||
|
<literallayout class='monospaced'>
|
||||||
|
$ runqemu qemux86-64 core-image-sato
|
||||||
|
</literallayout></para></listitem>
|
||||||
|
</itemizedlist>
|
||||||
|
</para>
|
||||||
|
</section>
|
||||||
|
</section>
|
||||||
|
|
||||||
<section id="licenses">
|
<section id="licenses">
|
||||||
<title>Licenses</title>
|
<title>Licenses</title>
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue