From c3fe9d7a36c04a06d9531b28a9d982fd4edee8df Mon Sep 17 00:00:00 2001 From: Scott Rifenbark Date: Fri, 23 Mar 2012 11:16:31 -0600 Subject: documentation/poky-ref-manual/technical-details.xml: new x32 section added. (From yocto-docs rev: 78f8b0367b3e5bbc71712f71fe87367d929424c8) Signed-off-by: Scott Rifenbark Signed-off-by: Richard Purdie --- .../poky-ref-manual/technical-details.xml | 113 +++++++++++++++++++++ 1 file changed, 113 insertions(+) (limited to 'documentation/poky-ref-manual') diff --git a/documentation/poky-ref-manual/technical-details.xml b/documentation/poky-ref-manual/technical-details.xml index f327806eb2..7905697ec0 100644 --- a/documentation/poky-ref-manual/technical-details.xml +++ b/documentation/poky-ref-manual/technical-details.xml @@ -566,6 +566,119 @@ +
+ x32 + + + 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. + + + + 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. + + +
+ Support + + + 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: + + You can create packages and images using an x32 psABI on x86_64 architecture targets. + + You can use the x32 psABI support through the meta-x32 + layer on top of the OE-core/Yocto layer. + You can use the toolchain for building x32 psABI program binaries and kernel support + from the experimental/meta-x32 layer. + You can successfully build many recipes with the x32 toolchain. + You can create and boot core-image-minimal and + core-image-sato images. + + +
+ +
+ Future Development and Limitations + + + For this release of the Yocto Project, the x32 psABI kernel and library interfaces + and their use are not finalized. + + + + Plans for the x32 psABI in the Yocto Project include the following: + + Enhance and fix recipes so they fully + support x32 toolchains and binaries. + Complete RPM Package Manager (RPM) support for x32 binaries. + Support larger images. + Integrate x32 toolchain and kernel changes from + experimental/meta-x32 into OE-core. + + +
+ +
+ Using x32 Right Now + + + 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: + + Add the experimental/meta-x32 layer to your local + Yocto Project Files + Git repository. + You can find the experimental/meta-x32 source repository at + . + Edit your conf/bblayers.conf file so that it includes + the experimental/meta-x32. + Here is an example: + + BBLAYERS ?= " \ + /home/nitin/prj/poky.git/meta \ + /home/nitin/prj/poky.git/meta-yocto \ + /home/nitin/prj/meta-x32.git \ + " + + Enable the x32 psABI tuning file for x86_64 + machines by editing the conf/local.conf as follows: + + 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" + + Use BitBake to build an image that supports the x32 psABI. + Here is an example: + + $ bitake core-image-sato + + Run your image using QUEM: + + $ runqemu qemux86-64 core-image-sato + + + +
+
+
Licenses -- cgit v1.2.3-54-g00ecf