summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdrian Dudau <adrian.dudau@enea.com>2014-06-26 13:59:10 +0200
committerAdrian Dudau <adrian.dudau@enea.com>2014-06-26 14:13:09 +0200
commite064c208e2c78663b0be1316117d963798839d6e (patch)
treed5d7bb0e950e5d6960d464f96f82f8132b8225c8
downloadmeta-fsl-ppc-daisy-enea.tar.gz
initial commit for Enea Linux 4.0daisy-enea
Migrated from the internal git server on the daisy-enea branch Signed-off-by: Adrian Dudau <adrian.dudau@enea.com>
-rw-r--r--README45
-rw-r--r--conf/layer.conf14
-rw-r--r--conf/machine/b4420qds-64b.conf18
-rw-r--r--conf/machine/b4420qds.conf17
-rw-r--r--conf/machine/b4860qds-64b.conf29
-rw-r--r--conf/machine/b4860qds.conf17
-rw-r--r--conf/machine/bsc9131rdb.conf16
-rw-r--r--conf/machine/bsc9132qds.conf16
-rw-r--r--conf/machine/c293pcie.conf17
-rw-r--r--conf/machine/e500mc.inc17
-rw-r--r--conf/machine/e500v2.inc15
-rw-r--r--conf/machine/e5500-64b.inc18
-rw-r--r--conf/machine/e5500.inc17
-rw-r--r--conf/machine/e6500-64b.inc18
-rw-r--r--conf/machine/e6500.inc17
-rw-r--r--conf/machine/p1010rdb.conf20
-rw-r--r--conf/machine/p1020rdb.conf19
-rw-r--r--conf/machine/p1021rdb.conf18
-rw-r--r--conf/machine/p1022ds.conf27
-rw-r--r--conf/machine/p1023rdb.conf16
-rw-r--r--conf/machine/p1025twr.conf18
-rw-r--r--conf/machine/p2020ds.conf17
-rw-r--r--conf/machine/p2020rdb.conf18
-rw-r--r--conf/machine/p2041rdb.conf16
-rw-r--r--conf/machine/p3041ds.conf16
-rw-r--r--conf/machine/p4080ds.conf16
-rw-r--r--conf/machine/p5020ds-64b.conf17
-rw-r--r--conf/machine/p5020ds.conf16
-rw-r--r--conf/machine/p5040ds-64b.conf16
-rw-r--r--conf/machine/p5040ds.conf16
-rw-r--r--conf/machine/t2080qds-64b.conf17
-rw-r--r--conf/machine/t2080qds.conf17
-rw-r--r--conf/machine/t4160qds-64b.conf17
-rw-r--r--conf/machine/t4160qds.conf17
-rw-r--r--conf/machine/t4240qds-64b.conf17
-rw-r--r--conf/machine/t4240qds.conf17
-rw-r--r--custom-licenses/Freescale-EULA214
-rw-r--r--custom-licenses/TestFloat24
-rw-r--r--recipes-bsp/boot-format/boot-format_git.bb19
-rw-r--r--recipes-bsp/rcw/rcw_git.bb43
-rw-r--r--recipes-bsp/u-boot/files/Fix-the-depend-race-issue.patch38
-rw-r--r--recipes-bsp/u-boot/u-boot_git.bb179
-rw-r--r--recipes-core/sysvinit/sysvinit_2.88dsf.bbappend2
-rw-r--r--recipes-core/udev/udev-extraconf/71-fsl-dpaa-persistent-networking.rules20
-rw-r--r--recipes-core/udev/udev-extraconf/72-fsl-dpaa-persistent-networking.rules24
-rw-r--r--recipes-core/udev/udev-extraconf/local.rules42
-rw-r--r--recipes-core/udev/udev-extraconf_%.bbappend12
-rw-r--r--recipes-core/udev/udev_182.bbappend2
-rw-r--r--recipes-devtools/libedit/libedit_20121213.bb18
-rw-r--r--recipes-devtools/qemu/files/0001-doc-Fix-texinfo-table-markup-in-qemu-options.hx.patch201
-rw-r--r--recipes-devtools/qemu/files/0002-docs-Fix-generating-qemu-doc.html-with-texinfo-5.patch54
-rw-r--r--recipes-devtools/qemu/files/add-gtk-options.patch13
-rw-r--r--recipes-devtools/qemu/files/fdt_header.patch39
-rw-r--r--recipes-devtools/qemu/files/fix-libcap-header-issue-on-some-distro.patch84
-rw-r--r--recipes-devtools/qemu/files/relocatable_sdk.patch34
-rw-r--r--recipes-devtools/qemu/qemu_fslgit.bb54
-rw-r--r--recipes-devtools/tclap/tclap_1.2.1.bb17
-rw-r--r--recipes-dpaa/eth-config/eth-config_git.bb19
-rw-r--r--recipes-dpaa/flib/flib_git.bb17
-rw-r--r--recipes-dpaa/fm-ucode/fm-ucode_git.bb48
-rw-r--r--recipes-dpaa/fmc/fmc_git.bb53
-rw-r--r--recipes-dpaa/fmlib/fmlib_git.bb45
-rw-r--r--recipes-dpaa/usdpaa/usdpaa_git.bb51
-rw-r--r--recipes-extended/cst/cst_git.bb31
-rw-r--r--recipes-extended/procps/procps_3.2.8.bbappend2
-rw-r--r--recipes-extended/skmm-ep/skmm-ep_git.bb27
-rw-r--r--recipes-extended/testfloat/files/SoftFloat-powerpc-1.patch1427
-rw-r--r--recipes-extended/testfloat/files/TestFloat-powerpc-E500v2-SPE-1.patch1644
-rw-r--r--recipes-extended/testfloat/files/Yocto-replace-COMPILE_PREFIX-gcc.patch67
-rw-r--r--recipes-extended/testfloat/testfloat_2a.bb45
-rw-r--r--recipes-extended/web-sysmon/web-sysmon_git.bb22
-rw-r--r--recipes-graphics/xorg-driver/xf86-video-fbdev_0.4.2.bb11
-rw-r--r--recipes-graphics/xorg-driver/xorg-driver-common.inc40
-rw-r--r--recipes-graphics/xorg-driver/xorg-driver-video.inc4
-rw-r--r--recipes-graphics/xorg-xserver/xserver-xf86-config/p1022ds/xorg.conf27
-rw-r--r--recipes-graphics/xorg-xserver/xserver-xf86-config_%.bbappend3
-rw-r--r--recipes-kernel/asf/asf_git.bb48
-rw-r--r--recipes-kernel/cryptodev/cryptodev_1.5.bb51
-rw-r--r--recipes-kernel/cryptodev/files/Add-the-compile-and-install-rules-for-cryptodev-test.patch69
-rw-r--r--recipes-kernel/cryptodev/files/makefile_fixup.patch26
-rw-r--r--recipes-kernel/linux/files/libtraceevent-Remove-hard-coded-include-to-usr-local-include-in-Makefile.patch36
-rw-r--r--recipes-kernel/linux/linux-qoriq-sdk.bb37
-rw-r--r--recipes-kernel/linux/linux-qoriq-sdk.inc37
-rw-r--r--recipes-kernel/lttng/lttng-modules_%.bbappend18
-rw-r--r--recipes-kernel/qoriq-debug/qoriq-debug_git.bb35
-rw-r--r--recipes-virtualization/hv-cfg/hv-cfg_git.bb48
-rw-r--r--recipes-virtualization/hypervisor/files/0001-fix-sizeof-pointer-memaccess-error.patch39
-rw-r--r--recipes-virtualization/hypervisor/files/81-fsl-embedded-hv.rules2
-rw-r--r--recipes-virtualization/hypervisor/hypervisor_git.bb92
-rw-r--r--recipes-virtualization/mux-server/files/mux-server-1.02.tar.gzbin0 -> 10021 bytes
-rw-r--r--recipes-virtualization/mux-server/mux-server_1.02.bb16
91 files changed, 5929 insertions, 0 deletions
diff --git a/README b/README
new file mode 100644
index 0000000..39a54bf
--- /dev/null
+++ b/README
@@ -0,0 +1,45 @@
1OpenEmbedded/Yocto BSP layer for Freescale's PPC platforms
2==========================================================
3
4This layer provides support for Freescale's PPC platforms for use with
5OpenEmbedded and/or Yocto.
6
7This layer depends on:
8
9URI: git://git.openembedded.org/openembedded-core
10branch: master
11revision: HEAD
12
13Contributing
14------------
15
16To contribute to this layer you should the patches for review to the
17mailing list.
18
19Mailing list:
20
21 https://lists.yoctoproject.org/listinfo/meta-freescale
22
23Source code:
24
25 git://git.yoctoproject.org/meta-fsl-ppc
26 http://git.yoctoproject.org/git/meta-fsl-ppc
27
28When creating patches, please use something like:
29
30 git format-patch -s --subject-prefix='meta-fsl-ppc dylan][PATCH' origin
31optionally include a branch if the patch applies to multiple branches,
32otherwise master is assumed
33
34When sending patches, please use something like:
35
36 git send-email --to meta-freescale@yoctoproject.org <generated patch>
37
38git.yoctoproject.org vs. git.freescale.com:
39-------------------------------------------
40
41git.yoctoproject.org hosts the official upstream work of Freescale's OE/YP repos,
42for official SDK releases at times we need to do last minute fixes or include things
43not supported upstream so we have a different repo on git.freescale.com for the
44official release. git.freescale.com should be based off repos from git.yoctoproject.org
45
diff --git a/conf/layer.conf b/conf/layer.conf
new file mode 100644
index 0000000..0f81db0
--- /dev/null
+++ b/conf/layer.conf
@@ -0,0 +1,14 @@
1# We have a packages directory, add to BBFILES
2BBPATH .= ":${LAYERDIR}"
3
4BBFILES += "${LAYERDIR}/recipes-*/*/*.bb*"
5BBFILES += "${LAYERDIR}/images/*.bb*"
6
7BBFILE_COLLECTIONS += "fsl-ppc"
8BBFILE_PATTERN_fsl-ppc = "^${LAYERDIR}/"
9BBFILE_PRIORITY_fsl-ppc = "5"
10
11BB_ENV_EXTRAWHITE := "KSRC USRC"
12
13LICENSE_PATH += "${LAYERDIR}/custom-licenses"
14
diff --git a/conf/machine/b4420qds-64b.conf b/conf/machine/b4420qds-64b.conf
new file mode 100644
index 0000000..0bb959c
--- /dev/null
+++ b/conf/machine/b4420qds-64b.conf
@@ -0,0 +1,18 @@
1#@TYPE: Machine
2#@DESCRIPTION: Machine configuration for running B4420QDS in 64-bit mode
3
4require e6500-64b.inc
5require conf/machine/include/soc-family.inc
6
7SOC_FAMILY = "b4420"
8
9# TODO: fix 32bit build of u-boot
10UBOOT_MACHINES ?= "B4420QDS"
11KERNEL_DEVICETREE ?= "b4420qds.dtb b4420qds-usdpaa.dtb"
12KERNEL_DEFCONFIG ?= "${S}/arch/powerpc/configs/85xx/e6500rev2_defconfig"
13
14JFFS2_ERASEBLOCK = "0x10000"
15
16SERIAL_CONSOLES = "115200;ttyS0 115200;ttyS1 115200;ttyEHV0"
17SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}"
18USE_VT = "0"
diff --git a/conf/machine/b4420qds.conf b/conf/machine/b4420qds.conf
new file mode 100644
index 0000000..b07ab5d
--- /dev/null
+++ b/conf/machine/b4420qds.conf
@@ -0,0 +1,17 @@
1#@TYPE: Machine
2#@DESCRIPTION: Machine configuration for running B4420QDS in 32-bit mode
3
4require e6500.inc
5require conf/machine/include/soc-family.inc
6
7SOC_FAMILY = "b4420"
8UBOOT_MACHINES ?= "B4420QDS"
9KERNEL_DEVICETREE ?= "b4420qds.dtb b4420qds-usdpaa.dtb"
10KERNEL_DEFCONFIG ?= "${S}/arch/powerpc/configs/85xx/e6500rev2_defconfig"
11
12JFFS2_ERASEBLOCK = "0x10000"
13
14SERIAL_CONSOLES = "115200;ttyS0 115200;ttyS1 115200;ttyEHV0"
15SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}"
16USE_VT = "0"
17BUILD_64BIT_KERNEL = "1"
diff --git a/conf/machine/b4860qds-64b.conf b/conf/machine/b4860qds-64b.conf
new file mode 100644
index 0000000..528f900
--- /dev/null
+++ b/conf/machine/b4860qds-64b.conf
@@ -0,0 +1,29 @@
1#@TYPE: Machine
2#@DESCRIPTION: Machine configuration for running B4860QDS in 64-bit mode
3
4require e6500-64b.inc
5require conf/machine/include/soc-family.inc
6
7SOC_FAMILY = "b4860"
8# TODO: fix 32bit build of u-boot
9UBOOT_MACHINES ?= "B4860QDS"
10KERNEL_DEVICETREE ?= "b4860qds.dtb b4860qds-usdpaa.dtb"
11KERNEL_DEFCONFIG ?= "${S}/arch/powerpc/configs/85xx/e6500rev2_defconfig"
12
13JFFS2_ERASEBLOCK = "0x10000"
14
15SERIAL_CONSOLES = "115200;ttyS0 115200;ttyS1 115200;ttyEHV0"
16SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}"
17USE_VT = "0"
18
19#required to build u-boot recipe
20require conf/multilib.conf
21MULTILIBS = "multilib:lib32"
22DEFAULTTUNE_virtclass-multilib-lib32 = "powerpc"
23
24#required to boot rootfs from RAM
25IMAGE_FSTYPES += "ext2.gz.u-boot"
26
27#removed rootfs image-prelink because some errors
28#appeared when prelink of the libs was done
29USER_CLASSES = "buildstats image-mklibs"
diff --git a/conf/machine/b4860qds.conf b/conf/machine/b4860qds.conf
new file mode 100644
index 0000000..2aa471e
--- /dev/null
+++ b/conf/machine/b4860qds.conf
@@ -0,0 +1,17 @@
1#@TYPE: Machine
2#@DESCRIPTION: Machine configuration for running B4860QDS in 32-bit mode
3
4require e6500.inc
5require conf/machine/include/soc-family.inc
6
7SOC_FAMILY = "b4860"
8UBOOT_MACHINES ?= "B4860QDS"
9KERNEL_DEVICETREE ?= "b4860qds.dtb b4860qds-usdpaa.dtb"
10KERNEL_DEFCONFIG ?= "${S}/arch/powerpc/configs/85xx/e6500rev2_defconfig"
11
12JFFS2_ERASEBLOCK = "0x10000"
13
14SERIAL_CONSOLES = "115200;ttyS0 115200;ttyS1 115200;ttyEHV0"
15SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}"
16USE_VT = "0"
17BUILD_64BIT_KERNEL = "1"
diff --git a/conf/machine/bsc9131rdb.conf b/conf/machine/bsc9131rdb.conf
new file mode 100644
index 0000000..c145a04
--- /dev/null
+++ b/conf/machine/bsc9131rdb.conf
@@ -0,0 +1,16 @@
1#@TYPE: Machine
2#@DESCRIPTION: Machine configuration for running
3
4require e500v2.inc
5require conf/machine/include/soc-family.inc
6
7SOC_FAMILY = "bsc9131"
8UBOOT_MACHINES ?= "BSC9131RDB_SPIFLASH BSC9131RDB_NAND BSC9131RDB_NAND_SYSCLK100 BSC9131RDB_SPIFLASH_SYSCLK100"
9KERNEL_DEVICETREE ?= "bsc9131rdb.dtb"
10KERNEL_DEFCONFIG ?= "${S}/arch/powerpc/configs/85xx/bsc913x_defconfig"
11
12JFFS2_ERASEBLOCK = "0x10000"
13
14SERIAL_CONSOLES = "115200;ttyS0 115200;ttyS1 115200;ttyEHV0"
15SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}"
16USE_VT = "0"
diff --git a/conf/machine/bsc9132qds.conf b/conf/machine/bsc9132qds.conf
new file mode 100644
index 0000000..5b9a100
--- /dev/null
+++ b/conf/machine/bsc9132qds.conf
@@ -0,0 +1,16 @@
1#@TYPE: Machine
2#@DESCRIPTION: Machine configuration for running
3
4require e500v2.inc
5require conf/machine/include/soc-family.inc
6
7SOC_FAMILY = "bsc9132"
8UBOOT_MACHINES ?= " BSC9132QDS_NAND_DDRCLK133 BSC9132QDS_NAND_DDRCLK100 BSC9132QDS_NOR_DDRCLK100 BSC9132QDS_NOR_DDRCLK133 BSC9132QDS_SDCARD_DDRCLK100 BSC9132QDS_SDCARD_DDRCLK133 BSC9132QDS_SPIFLASH_DDRCLK100 BSC9132QDS_SPIFLASH_DDRCLK133"
9KERNEL_DEVICETREE ?= "bsc9132qds.dtb"
10KERNEL_DEFCONFIG ?= "${S}/arch/powerpc/configs/85xx/bsc913x_smp_defconfig"
11
12JFFS2_ERASEBLOCK = "0x10000"
13
14SERIAL_CONSOLES = "115200;ttyS0 115200;ttyS1 115200;ttyEHV0"
15SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}"
16USE_VT = "0"
diff --git a/conf/machine/c293pcie.conf b/conf/machine/c293pcie.conf
new file mode 100644
index 0000000..9e7252a
--- /dev/null
+++ b/conf/machine/c293pcie.conf
@@ -0,0 +1,17 @@
1#@TYPE: Machine
2#@DESCRIPTION: Machine configuration for running C293PCIE in 36-bit mode
3
4require e500v2.inc
5require conf/machine/include/soc-family.inc
6
7SOC_FAMILY = "c293pcie"
8BOOTFORMAT_CONFIG = "config_ddr3_512m_c29xpcie_800M.dat"
9UBOOT_MACHINES ?= "C293PCIE C293PCIE_NAND C293PCIE_SPIFLASH C293PCIE_SECBOOT C293PCIE_SPIFLASH_SECBOOT"
10KERNEL_DEVICETREE ?= "c293pcie_36b.dtb"
11KERNEL_DEFCONFIG ?= "${S}/arch/powerpc/configs/mpc85xx_defconfig"
12
13JFFS2_ERASEBLOCK = "0x10000"
14
15SERIAL_CONSOLES = "115200;ttyS0 115200;ttyS1 115200;ttyEHV0"
16SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}"
17USE_VT = "0"
diff --git a/conf/machine/e500mc.inc b/conf/machine/e500mc.inc
new file mode 100644
index 0000000..57952e7
--- /dev/null
+++ b/conf/machine/e500mc.inc
@@ -0,0 +1,17 @@
1TARGET_FPU = "hard"
2
3require conf/machine/include/tune-ppce500mc.inc
4
5MACHINE_FEATURES = "kernel26 keyboard pci ext2 ext3 serial"
6MACHINE_EXTRA_RRECOMMENDS = "u-boot udev-extraconf"
7
8PREFERRED_PROVIDER_virtual/kernel ?= "linux-qoriq-sdk"
9PREFERRED_VERSION_virtual/kernel ?= "3.0.34"
10PREFERRED_VERSION_qemu = "1.4+fsl"
11
12KERNEL_IMAGETYPE ?= "uImage"
13# disable the images below for now
14# ext2.bz2 ext2.lzma \
15# ext2.gz.u-boot ext2.bz2.u-boot ext2.lzma.u-boot"
16
17MACHINEOVERRIDES .= ":e500mc:fslmachine"
diff --git a/conf/machine/e500v2.inc b/conf/machine/e500v2.inc
new file mode 100644
index 0000000..befc296
--- /dev/null
+++ b/conf/machine/e500v2.inc
@@ -0,0 +1,15 @@
1require conf/machine/include/tune-ppce500v2.inc
2
3MACHINE_FEATURES = "kernel26 pci ext2 ext3 serial"
4MACHINE_EXTRA_RRECOMMENDS = "u-boot udev-extraconf"
5
6PREFERRED_PROVIDER_virtual/kernel ?= "linux-qoriq-sdk"
7PREFERRED_VERSION_virtual/kernel ?= "3.0.34"
8PREFERRED_VERSION_qemu = "1.4+fsl"
9
10KERNEL_IMAGETYPE ?= "uImage"
11# disable the images below for now
12# ext2.bz2 ext2.lzma \
13# ext2.gz.u-boot ext2.bz2.u-boot ext2.lzma.u-boot"
14
15MACHINEOVERRIDES .= ":e500v2:fslmachine"
diff --git a/conf/machine/e5500-64b.inc b/conf/machine/e5500-64b.inc
new file mode 100644
index 0000000..0ce7f11
--- /dev/null
+++ b/conf/machine/e5500-64b.inc
@@ -0,0 +1,18 @@
1TARGET_FPU = "hard"
2
3DEFAULTTUNE ?= "ppc64e5500"
4require conf/machine/include/tune-ppce5500.inc
5
6MACHINE_FEATURES = "kernel26 keyboard pci ext2 ext3 serial"
7MACHINE_EXTRA_RRECOMMENDS = "u-boot udev-extraconf"
8
9PREFERRED_PROVIDER_virtual/kernel ?= "linux-qoriq-sdk"
10PREFERRED_VERSION_virtual/kernel ?= "3.0.34"
11PREFERRED_VERSION_qemu = "1.4+fsl"
12
13KERNEL_IMAGETYPE ?= "uImage"
14# disable the images below for now
15# ext2.bz2 ext2.lzma \
16# ext2.gz.u-boot ext2.bz2.u-boot ext2.lzma.u-boot"
17
18MACHINEOVERRIDES .= ":e5500-64b:fslmachine"
diff --git a/conf/machine/e5500.inc b/conf/machine/e5500.inc
new file mode 100644
index 0000000..ae66342
--- /dev/null
+++ b/conf/machine/e5500.inc
@@ -0,0 +1,17 @@
1TARGET_FPU = "hard"
2
3require conf/machine/include/tune-ppce5500.inc
4
5MACHINE_FEATURES = "kernel26 keyboard pci ext2 ext3 serial"
6MACHINE_EXTRA_RRECOMMENDS = "u-boot udev-extraconf"
7
8PREFERRED_PROVIDER_virtual/kernel ?= "linux-qoriq-sdk"
9PREFERRED_VERSION_virtual/kernel ?= "3.0.34"
10PREFERRED_VERSION_qemu = "1.4+fsl"
11
12KERNEL_IMAGETYPE ?= "uImage"
13# disable the images below for now
14# ext2.bz2 ext2.lzma \
15# ext2.gz.u-boot ext2.bz2.u-boot ext2.lzma.u-boot"
16
17MACHINEOVERRIDES .= ":e5500:fslmachine"
diff --git a/conf/machine/e6500-64b.inc b/conf/machine/e6500-64b.inc
new file mode 100644
index 0000000..2007353
--- /dev/null
+++ b/conf/machine/e6500-64b.inc
@@ -0,0 +1,18 @@
1TARGET_FPU = "hard"
2
3DEFAULTTUNE ?= "ppc64e6500"
4require conf/machine/include/tune-ppce6500.inc
5
6MACHINE_FEATURES = "kernel26 keyboard pci ext2 ext3 serial"
7MACHINE_EXTRA_RRECOMMENDS = "u-boot udev-extraconf"
8
9PREFERRED_PROVIDER_virtual/kernel ?= "linux-qoriq-sdk"
10PREFERRED_VERSION_virtual/kernel ?= "3.0.34"
11PREFERRED_VERSION_qemu = "1.4+fsl"
12
13KERNEL_IMAGETYPE ?= "uImage"
14# disable the images below for now
15# ext2.bz2 ext2.lzma \
16# ext2.gz.u-boot ext2.bz2.u-boot ext2.lzma.u-boot"
17
18MACHINEOVERRIDES .= ":e6500-64b:fslmachine"
diff --git a/conf/machine/e6500.inc b/conf/machine/e6500.inc
new file mode 100644
index 0000000..23adf15
--- /dev/null
+++ b/conf/machine/e6500.inc
@@ -0,0 +1,17 @@
1TARGET_FPU = "hard"
2
3require conf/machine/include/tune-ppce6500.inc
4
5MACHINE_FEATURES = "kernel26 keyboard pci ext2 ext3 serial"
6MACHINE_EXTRA_RRECOMMENDS = "u-boot udev-extraconf"
7
8PREFERRED_PROVIDER_virtual/kernel ?= "linux-qoriq-sdk"
9PREFERRED_VERSION_virtual/kernel ?= "3.0.34"
10PREFERRED_VERSION_qemu = "1.4+fsl"
11
12KERNEL_IMAGETYPE ?= "uImage"
13# disable the images below for now
14# ext2.bz2 ext2.lzma \
15# ext2.gz.u-boot ext2.bz2.u-boot ext2.lzma.u-boot"
16
17MACHINEOVERRIDES .= ":e6500:fslmachine"
diff --git a/conf/machine/p1010rdb.conf b/conf/machine/p1010rdb.conf
new file mode 100644
index 0000000..a921747
--- /dev/null
+++ b/conf/machine/p1010rdb.conf
@@ -0,0 +1,20 @@
1#@TYPE: Machine
2#@Name: Freescale P1010RDB
3#@DESCRIPTION: Machine configuration for the Freescale P1010RDB
4
5require e500v2.inc
6require conf/machine/include/soc-family.inc
7
8SOC_FAMILY = "p1010"
9BOOTFORMAT_CONFIG = "config_sram_p1010rdb.dat"
10UBOOT_MACHINES ?= "P1010RDB-PB_NAND P1010RDB-PB_NOR \
11 P1010RDB-PB_SPIFLASH P1010RDB-PB_36BIT_NOR P1010RDB-PB_36BIT_NAND \
12 P1010RDB-PB_36BIT_SPIFLASH"
13KERNEL_DEVICETREE ?= "p1010rdb-pa.dtb p1010rdb-pb.dtb"
14KERNEL_DEFCONFIG ?= "${S}/arch/powerpc/configs/mpc85xx_defconfig"
15
16JFFS2_ERASEBLOCK = "0x20000"
17
18SERIAL_CONSOLES = "115200;ttyS0 115200;ttyS1 115200;ttyEHV0"
19SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}"
20USE_VT = "0"
diff --git a/conf/machine/p1020rdb.conf b/conf/machine/p1020rdb.conf
new file mode 100644
index 0000000..9adac79
--- /dev/null
+++ b/conf/machine/p1020rdb.conf
@@ -0,0 +1,19 @@
1#@TYPE: Machine
2#@DESCRIPTION: Machine configuration for running
3
4require e500v2.inc
5require conf/machine/include/soc-family.inc
6
7SOC_FAMILY = "p1020"
8BOOTFORMAT_CONFIG = "config_sram_p1022ds.dat"
9UBOOT_MACHINES ?= " P1020RDB-PD P1020RDB-PD_NAND P1020RDB-PD_SDCARD P1020RDB-PD_SPIFLASH"
10
11KERNEL_DEVICETREE ?= "p1020rdb-pd_32b.dtb"
12
13KERNEL_DEFCONFIG ?= "${S}/arch/powerpc/configs/mpc85xx_smp_defconfig"
14
15JFFS2_ERASEBLOCK = "0x20000"
16
17SERIAL_CONSOLES = "115200;ttyS0 115200;ttyS1 115200;ttyEHV0"
18SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}"
19USE_VT = "0"
diff --git a/conf/machine/p1021rdb.conf b/conf/machine/p1021rdb.conf
new file mode 100644
index 0000000..37c17a4
--- /dev/null
+++ b/conf/machine/p1021rdb.conf
@@ -0,0 +1,18 @@
1#@TYPE: Machine
2#@Name: Freescale P1021RDB
3#@DESCRIPTION: Machine configuration for the Freescale P1021RDB
4
5require e500v2.inc
6require conf/machine/include/soc-family.inc
7
8SOC_FAMILY = "p1021"
9BOOTFORMAT_CONFIG = "config_sram_p1022ds.dat"
10UBOOT_MACHINES ?= "P1021RDB-PC P1021RDB-PC_NAND P1021RDB-PC_SDCARD P1021RDB-PC_SPIFLASH P1021RDB-PC_36BIT P1021RDB-PC_36BIT_SPIFLASH P1021RDB-PC_36BIT_NAND P1021RDB-PC_36BIT_SDCARD"
11KERNEL_DEVICETREE ?= "p1021rdb-pc_32b.dtb"
12KERNEL_DEFCONFIG ?= "${S}/arch/powerpc/configs/mpc85xx_smp_defconfig"
13
14JFFS2_ERASEBLOCK = "0x20000"
15
16SERIAL_CONSOLES = "115200;ttyS0 115200;ttyS1 115200;ttyEHV0"
17SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}"
18USE_VT = "0"
diff --git a/conf/machine/p1022ds.conf b/conf/machine/p1022ds.conf
new file mode 100644
index 0000000..b06da81
--- /dev/null
+++ b/conf/machine/p1022ds.conf
@@ -0,0 +1,27 @@
1#@TYPE: Machine
2#@DESCRIPTION: Machine configuration for running
3
4require e500v2.inc
5require conf/machine/include/soc-family.inc
6
7SOC_FAMILY = "p1022"
8BOOTFORMAT_CONFIG = "config_sram_p1022ds.dat"
9UBOOT_MACHINES ?= "P1022DS P1022DS_NAND P1022DS_SPIFLASH P1022DS_SDCARD P1022DS_36BIT P1022DS_36BIT_SPIFLASH P1022DS_36BIT_NAND P1022DS_36BIT_SDCARD"
10KERNEL_DEVICETREE ?= "p1022ds_32b.dtb"
11KERNEL_DEFCONFIG ?= "${S}/arch/powerpc/configs/mpc85xx_smp_defconfig"
12
13PREFERRED_PROVIDER_virtual/xserver ?= "xserver-xorg"
14
15XSERVER = " \
16 xserver-xorg \
17 xf86-input-evdev \
18 xf86-input-mouse \
19 xf86-input-keyboard \
20 xf86-video-fbdev \
21"
22
23JFFS2_ERASEBLOCK = "0x20000"
24
25SERIAL_CONSOLES = "115200;ttyS0 115200;ttyS1 115200;ttyEHV0"
26SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}"
27USE_VT = "0"
diff --git a/conf/machine/p1023rdb.conf b/conf/machine/p1023rdb.conf
new file mode 100644
index 0000000..ece7e3f
--- /dev/null
+++ b/conf/machine/p1023rdb.conf
@@ -0,0 +1,16 @@
1#@TYPE: Machine
2#@DESCRIPTION: Machine configuration for running
3
4require e500v2.inc
5require conf/machine/include/soc-family.inc
6
7SOC_FAMILY = "p1023"
8UBOOT_MACHINES ?= "P1023RDB"
9KERNEL_DEVICETREE ?= "p1023rdb.dtb"
10KERNEL_DEFCONFIG ?= "${S}/arch/powerpc/configs/85xx/p1023rds_defconfig"
11
12JFFS2_ERASEBLOCK = "0x10000"
13
14SERIAL_CONSOLES = "115200;ttyS0 115200;ttyS1 115200;ttyEHV0"
15SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}"
16USE_VT = "0"
diff --git a/conf/machine/p1025twr.conf b/conf/machine/p1025twr.conf
new file mode 100644
index 0000000..eb7c439
--- /dev/null
+++ b/conf/machine/p1025twr.conf
@@ -0,0 +1,18 @@
1#@TYPE: Machine
2#@Name: Freescale P1025TWR
3#@DESCRIPTION: Machine configuration for the Freescale P1025TWR
4
5require e500v2.inc
6require conf/machine/include/soc-family.inc
7
8SOC_FAMILY = "p1025"
9BOOTFORMAT_CONFIG = "config_ddr3_1gb_p1_p2_rdb_pc_667M.dat"
10UBOOT_MACHINES ?= "TWR-P1025"
11KERNEL_DEVICETREE ?= "p1025twr_32b.dtb"
12KERNEL_DEFCONFIG ?= "${S}/arch/powerpc/configs/mpc85xx_smp_defconfig"
13
14JFFS2_ERASEBLOCK = "0x20000"
15
16SERIAL_CONSOLES = "115200;ttyS0 115200;ttyS1 115200;ttyEHV0"
17SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}"
18USE_VT = "0"
diff --git a/conf/machine/p2020ds.conf b/conf/machine/p2020ds.conf
new file mode 100644
index 0000000..3dbaf3f
--- /dev/null
+++ b/conf/machine/p2020ds.conf
@@ -0,0 +1,17 @@
1#@TYPE: Machine
2#@DESCRIPTION: Machine configuration for running
3
4require e500v2.inc
5require conf/machine/include/soc-family.inc
6
7SOC_FAMILY = "p2020"
8BOOTFORMAT_CONFIG = "config_sram_p2020ds.dat"
9UBOOT_MACHINES ?= "P2020DS P2020DS_36BIT P2020DS_DDR2 P2020DS_SDCARD P2020DS_SPIFLASH"
10KERNEL_DEVICETREE ?= "p2020ds.dtb"
11KERNEL_DEFCONFIG ?= "${S}/arch/powerpc/configs/mpc85xx_smp_defconfig"
12
13JFFS2_ERASEBLOCK = "0x20000"
14
15SERIAL_CONSOLES = "115200;ttyS0 115200;ttyS1"
16SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}"
17USE_VT = "0"
diff --git a/conf/machine/p2020rdb.conf b/conf/machine/p2020rdb.conf
new file mode 100644
index 0000000..e7c5c9c
--- /dev/null
+++ b/conf/machine/p2020rdb.conf
@@ -0,0 +1,18 @@
1#@TYPE: Machine
2#@Name: Freescale P2020RDB
3#@DESCRIPTION: Machine configuration for the Freescale P2020RDB
4
5require e500v2.inc
6require conf/machine/include/soc-family.inc
7
8SOC_FAMILY = "p2020"
9BOOTFORMAT_CONFIG = "config_sram_p1022ds.dat"
10UBOOT_MACHINES ?= " P2020RDB-PC P2020RDB-PC_NAND P2020RDB-PC_SDCARD P2020RDB-PC_SPIFLASH P2020RDB-PC_36BIT P2020RDB-PC_36BIT_SPIFLASH P2020RDB-PC_36BIT_NAND P2020RDB-PC_36BIT_SDCARD"
11KERNEL_DEVICETREE ?= "p2020rdb-pc_32b.dtb"
12KERNEL_DEFCONFIG ?= "${S}/arch/powerpc/configs/mpc85xx_smp_defconfig"
13
14JFFS2_ERASEBLOCK = "0x20000"
15
16SERIAL_CONSOLES = "115200;ttyS0 115200;ttyS1"
17SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}"
18USE_VT = "0"
diff --git a/conf/machine/p2041rdb.conf b/conf/machine/p2041rdb.conf
new file mode 100644
index 0000000..517adad
--- /dev/null
+++ b/conf/machine/p2041rdb.conf
@@ -0,0 +1,16 @@
1#@TYPE: Machine
2#@DESCRIPTION: Machine configuration for running
3
4require e500mc.inc
5require conf/machine/include/soc-family.inc
6
7SOC_FAMILY = "p2041"
8UBOOT_MACHINES ?= "P2041RDB P2041RDB_NAND P2041RDB_SECURE_BOOT P2041RDB_SDCARD P2041RDB_SPIFLASH"
9KERNEL_DEVICETREE ?= "p2041rdb.dtb p2041rdb-usdpaa.dtb"
10KERNEL_DEFCONFIG ?= "${S}/arch/powerpc/configs/corenet32_smp_defconfig"
11
12JFFS2_ERASEBLOCK = "0x10000"
13
14SERIAL_CONSOLES = "115200;ttyS0 115200;ttyS1"
15SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}"
16USE_VT = "0"
diff --git a/conf/machine/p3041ds.conf b/conf/machine/p3041ds.conf
new file mode 100644
index 0000000..0116ab5
--- /dev/null
+++ b/conf/machine/p3041ds.conf
@@ -0,0 +1,16 @@
1#@TYPE: Machine
2#@DESCRIPTION: Machine configuration for running
3
4require e500mc.inc
5require conf/machine/include/soc-family.inc
6
7SOC_FAMILY = "p3041"
8UBOOT_MACHINES ?= "P3041DS P3041DS_NAND P3041DS_SECURE_BOOT P3041DS_SDCARD P3041DS_SPIFLASH"
9KERNEL_DEVICETREE ?= "p3041ds.dtb p3041ds-usdpaa.dtb"
10KERNEL_DEFCONFIG ?= "${S}/arch/powerpc/configs/corenet32_smp_defconfig"
11
12JFFS2_ERASEBLOCK = "0x10000"
13
14SERIAL_CONSOLES = "115200;ttyS0 115200;ttyS1 115200;ttyEHV0"
15SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}"
16USE_VT = "0"
diff --git a/conf/machine/p4080ds.conf b/conf/machine/p4080ds.conf
new file mode 100644
index 0000000..e285fd3
--- /dev/null
+++ b/conf/machine/p4080ds.conf
@@ -0,0 +1,16 @@
1#@TYPE: Machine
2#@DESCRIPTION: Machine configuration for running
3
4require e500mc.inc
5require conf/machine/include/soc-family.inc
6
7SOC_FAMILY = "p4080"
8UBOOT_MACHINES ?= "P4080DS P4080DS_SECURE_BOOT P4080DS_SDCARD P4080DS_SPIFLASH "
9KERNEL_DEVICETREE ?= "p4080ds.dtb p4080ds-usdpaa.dtb"
10KERNEL_DEFCONFIG ?= "${S}/arch/powerpc/configs/corenet32_smp_defconfig"
11
12JFFS2_ERASEBLOCK = "0x10000"
13
14SERIAL_CONSOLES = "115200;ttyS0 115200;ttyS1"
15SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}"
16USE_VT = "0"
diff --git a/conf/machine/p5020ds-64b.conf b/conf/machine/p5020ds-64b.conf
new file mode 100644
index 0000000..144781b
--- /dev/null
+++ b/conf/machine/p5020ds-64b.conf
@@ -0,0 +1,17 @@
1#@TYPE: Machine
2#@DESCRIPTION: Machine configuration for running
3
4require e5500-64b.inc
5require conf/machine/include/soc-family.inc
6
7SOC_FAMILY = "p5020"
8# TODO: fix 32bit build of u-boot for p5020ds-64b
9UBOOT_MACHINES ?= "P5020DS"
10KERNEL_DEVICETREE ?= "p5020ds.dtb p5020ds-usdpaa.dtb"
11KERNEL_DEFCONFIG ?= "${S}/arch/powerpc/configs/corenet64_smp_defconfig"
12
13JFFS2_ERASEBLOCK = "0x10000"
14
15SERIAL_CONSOLES = "115200;ttyS0 115200;ttyS1 115200;ttyEHV0"
16SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}"
17USE_VT = "0"
diff --git a/conf/machine/p5020ds.conf b/conf/machine/p5020ds.conf
new file mode 100644
index 0000000..8c263d8
--- /dev/null
+++ b/conf/machine/p5020ds.conf
@@ -0,0 +1,16 @@
1#@TYPE: Machine
2#@DESCRIPTION: Machine configuration for running
3
4require e5500.inc
5require conf/machine/include/soc-family.inc
6
7SOC_FAMILY = "p5020"
8UBOOT_MACHINES ?= "P5020DS P5020DS_NAND P5020DS_SECURE_BOOT P5020DS_SDCARD P5020DS_SPIFLASH "
9KERNEL_DEVICETREE ?= "p5020ds.dtb p5020ds-usdpaa.dtb"
10KERNEL_DEFCONFIG ?= "${S}/arch/powerpc/configs/corenet32_smp_defconfig"
11
12JFFS2_ERASEBLOCK = "0x10000"
13
14SERIAL_CONSOLES = "115200;ttyS0 115200;ttyS1 115200;ttyEHV0"
15SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}"
16USE_VT = "0"
diff --git a/conf/machine/p5040ds-64b.conf b/conf/machine/p5040ds-64b.conf
new file mode 100644
index 0000000..e3f6ce1
--- /dev/null
+++ b/conf/machine/p5040ds-64b.conf
@@ -0,0 +1,16 @@
1#@TYPE: Machine
2#@DESCRIPTION: Machine configuration for running
3
4require e5500-64b.inc
5require conf/machine/include/soc-family.inc
6
7SOC_FAMILY = "p5040"
8UBOOT_MACHINES ?= "P5040DS P5040DS_NAND P5040DS_SECURE_BOOT P5040DS_SDCARD P5040DS_SPIFLASH"
9KERNEL_DEVICETREE ?= "p5040ds.dtb p5040ds-usdpaa.dtb"
10KERNEL_DEFCONFIG ?= "${S}/arch/powerpc/configs/corenet64_smp_defconfig"
11
12JFFS2_ERASEBLOCK = "0x10000"
13
14SERIAL_CONSOLES = "115200;ttyS0 115200;ttyS1 115200;ttyEHV0"
15SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}"
16USE_VT = "0"
diff --git a/conf/machine/p5040ds.conf b/conf/machine/p5040ds.conf
new file mode 100644
index 0000000..5692ab0
--- /dev/null
+++ b/conf/machine/p5040ds.conf
@@ -0,0 +1,16 @@
1#@TYPE: Machine
2#@DESCRIPTION: Machine configuration for running
3
4require e5500.inc
5require conf/machine/include/soc-family.inc
6
7SOC_FAMILY = "p5040"
8UBOOT_MACHINES ?= "P5040DS P5040DS_NAND P5040DS_SECURE_BOOT P5040DS_SDCARD P5040DS_SPIFLASH"
9KERNEL_DEVICETREE ?= "p5040ds.dtb p5040ds-usdpaa.dtb"
10KERNEL_DEFCONFIG ?= "${S}/arch/powerpc/configs/corenet32_smp_defconfig"
11
12JFFS2_ERASEBLOCK = "0x10000"
13
14SERIAL_CONSOLES = "115200;ttyS0 115200;ttyS1 115200;ttyEHV0"
15SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}"
16USE_VT = "0"
diff --git a/conf/machine/t2080qds-64b.conf b/conf/machine/t2080qds-64b.conf
new file mode 100644
index 0000000..d149b6e
--- /dev/null
+++ b/conf/machine/t2080qds-64b.conf
@@ -0,0 +1,17 @@
1#@TYPE: Machine
2#@DESCRIPTION: Machine configuration for running T2080QDS in 64-bit mode
3
4require e6500-64b.inc
5require conf/machine/include/soc-family.inc
6
7SOC_FAMILY = "t2080"
8# TODO: fix 32bit build of u-boot
9UBOOT_MACHINES ?= "T2080QDS T2080QDS_SDCARD T2080QDS_SPIFLASH T2080QDS_NAND T2080QDS_SRIO_PCIE_BOOT"
10KERNEL_DEVICETREE ?= "t2080qds.dtb t2080qds-usdpaa.dtb"
11KERNEL_DEFCONFIG ?= "${S}/arch/powerpc/configs/85xx/e6500rev2_defconfig"
12
13JFFS2_ERASEBLOCK = "0x10000"
14
15SERIAL_CONSOLES = "115200;ttyS0 115200;ttyS1 115200;ttyEHV0"
16SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}"
17USE_VT = "0"
diff --git a/conf/machine/t2080qds.conf b/conf/machine/t2080qds.conf
new file mode 100644
index 0000000..a9874b5
--- /dev/null
+++ b/conf/machine/t2080qds.conf
@@ -0,0 +1,17 @@
1#@TYPE: Machine
2#@DESCRIPTION: Machine configuration for running T2080QDS in 32-bit mode
3
4require e6500.inc
5require conf/machine/include/soc-family.inc
6
7SOC_FAMILY = "t2080"
8UBOOT_MACHINES ?= "T2080QDS T2080QDS_SDCARD T2080QDS_SPIFLASH T2080QDS_NAND T2080QDS_SRIO_PCIE_BOOT"
9KERNEL_DEVICETREE ?= "t2080qds.dtb t2080qds-usdpaa.dtb"
10KERNEL_DEFCONFIG ?= "${S}/arch/powerpc/configs/85xx/e6500rev2_defconfig"
11
12JFFS2_ERASEBLOCK = "0x10000"
13
14SERIAL_CONSOLES = "115200;ttyS0 115200;ttyS1 115200;ttyEHV0"
15SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}"
16USE_VT = "0"
17BUILD_64BIT_KERNEL = "1"
diff --git a/conf/machine/t4160qds-64b.conf b/conf/machine/t4160qds-64b.conf
new file mode 100644
index 0000000..83696d5
--- /dev/null
+++ b/conf/machine/t4160qds-64b.conf
@@ -0,0 +1,17 @@
1#@TYPE: Machine
2#@DESCRIPTION: Machine configuration for running T4160QDS in 64-bit mode
3
4require e6500-64b.inc
5require conf/machine/include/soc-family.inc
6
7SOC_FAMILY = "t4160"
8# TODO: fix 32bit build of u-boot
9UBOOT_MACHINES ?= "T4160QDS"
10KERNEL_DEVICETREE ?= "t4240qds.dtb t4240qds-usdpaa.dtb"
11KERNEL_DEFCONFIG ?= "${S}/arch/powerpc/configs/85xx/e6500rev2_defconfig"
12
13JFFS2_ERASEBLOCK = "0x10000"
14
15SERIAL_CONSOLES = "115200;ttyS0 115200;ttyS1 115200;ttyEHV0"
16SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}"
17USE_VT = "0"
diff --git a/conf/machine/t4160qds.conf b/conf/machine/t4160qds.conf
new file mode 100644
index 0000000..34b2b2e
--- /dev/null
+++ b/conf/machine/t4160qds.conf
@@ -0,0 +1,17 @@
1#@TYPE: Machine
2#@DESCRIPTION: Machine configuration for running T4160QDS in 32-bit mode
3
4require e6500.inc
5require conf/machine/include/soc-family.inc
6
7SOC_FAMILY = "t4160"
8UBOOT_MACHINES ?= "T4160QDS"
9KERNEL_DEVICETREE ?= "t4240qds.dtb t4240qds-usdpaa.dtb"
10KERNEL_DEFCONFIG ?= "${S}/arch/powerpc/configs/85xx/e6500rev2_defconfig"
11
12JFFS2_ERASEBLOCK = "0x10000"
13
14SERIAL_CONSOLES = "115200;ttyS0 115200;ttyS1 115200;ttyEHV0"
15SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}"
16USE_VT = "0"
17BUILD_64BIT_KERNEL = "1"
diff --git a/conf/machine/t4240qds-64b.conf b/conf/machine/t4240qds-64b.conf
new file mode 100644
index 0000000..ffdf658
--- /dev/null
+++ b/conf/machine/t4240qds-64b.conf
@@ -0,0 +1,17 @@
1#@TYPE: Machine
2#@DESCRIPTION: Machine configuration for running T4240QDS in 64-bit mode
3
4require e6500-64b.inc
5require conf/machine/include/soc-family.inc
6
7SOC_FAMILY = "t4240"
8# TODO: fix 32bit build of u-boot
9UBOOT_MACHINES ?= "T4240QDS"
10KERNEL_DEVICETREE ?= "t4240qds.dtb t4240qds-usdpaa.dtb"
11KERNEL_DEFCONFIG ?= "${S}/arch/powerpc/configs/85xx/e6500rev2_defconfig"
12
13JFFS2_ERASEBLOCK = "0x10000"
14
15SERIAL_CONSOLES = "115200;ttyS0 115200;ttyS1 115200;ttyEHV0"
16SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}"
17USE_VT = "0"
diff --git a/conf/machine/t4240qds.conf b/conf/machine/t4240qds.conf
new file mode 100644
index 0000000..c2c31dd
--- /dev/null
+++ b/conf/machine/t4240qds.conf
@@ -0,0 +1,17 @@
1#@TYPE: Machine
2#@DESCRIPTION: Machine configuration for running T4240QDS in 32-bit mode
3
4require e6500.inc
5require conf/machine/include/soc-family.inc
6
7SOC_FAMILY = "t4240"
8UBOOT_MACHINES ?= "T4240QDS"
9KERNEL_DEVICETREE ?= "t4240qds.dtb t4240qds-usdpaa.dtb"
10KERNEL_DEFCONFIG ?= "${S}/arch/powerpc/configs/85xx/e6500rev2_defconfig"
11
12JFFS2_ERASEBLOCK = "0x10000"
13
14SERIAL_CONSOLES = "115200;ttyS0 115200;ttyS1 115200;ttyEHV0"
15SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}"
16USE_VT = "0"
17BUILD_64BIT_KERNEL = "1"
diff --git a/custom-licenses/Freescale-EULA b/custom-licenses/Freescale-EULA
new file mode 100644
index 0000000..2122a1f
--- /dev/null
+++ b/custom-licenses/Freescale-EULA
@@ -0,0 +1,214 @@
1IMPORTANT. Read the following Freescale Software License Agreement ("Agreement")
2completely. By selecting the "I Accept" button at the end of this page, you
3indicate that you accept the terms of the Freescale Proprietary Software License
4Agreement and you also acknowledge that you have the authority, on behalf of your
5company, to bind your company to such terms. You may then download or install the
6file.
7
8FREESCALE PROPRIETARY SOFTWARE LICENSE AGREEMENT
9This is a license agreement ("Agreement") between you (either as an individual
10or as an authorized representative acting on behalf of your employer) and Freescale
11Semiconductor, Inc. ("Freescale"). It concerns your rights to use the software
12provided to you in binary or source code form and any accompanying written materials
13(the "Software"). The Software may include any updates or error corrections or
14documentation relating to the Software provided to you by Freescale under this
15License. In consideration for Freescale allowing you to access the Software, you are
16agreeing to be bound by the terms of this Agreement. If you do not agree to all of
17the terms of this Agreement, do not download or install the Software. If you change
18your mind later, stop using the Software and delete all copies of the Software in
19your possession or control. Any copies of the Software that you have already
20distributed, where permitted, and do not destroy will continue to be governed by
21this Agreement. Your prior use will also continue to be governed by this Agreement.
22
231. LICENSE GRANT. Freescale grants to you, free of charge, the non-exclusive,
24non-transferable, non-sublicensable right (1) to use the Software, (2) to reproduce
25the Software, (3) to prepare derivative works of the Software, (4) to distribute the
26Software and derivative works thereof in object (machine-readable) form as part of
27a programmable processing unit (e.g. a microprocessor, microcontroller, or digital
28signal processor) supplied directly or indirectly from Freescale ("Freescale
29System") and (5) to sublicense to others the right to use the distributed Software,
30provided that any and all such sublicenses include the same terms and conditions of
31this Agreement. Notwithstanding the limitation on damages in Section 8, Licensee
32will indemnify, defend, and hold harmless Freescale against any and all claims,
33costs, damages, liabilities, judgments and attorneys' fees resulting from or
34arising out of any breach by the sublicensee, or resulting from or arising out of
35any action by the sublicensee inconsistent with this Agreement.
36You must notify Freescale, in writing, any time you create a derivative of the
37Software. Freescale owns all derivatives created from the Software, and derivatives
38are licensed to you under the same terms as the Software under this Agreement. Upon
39request, you must provide Freescale the source code of any derivative of the Software.
40If you violate any of the terms or restrictions of this Agreement, Freescale may
41immediately terminate this Agreement, and require that you stop using and delete all
42copies of the Software and any derivative in your possession or control. Any license
43granted above only extends to Freescale's intellectual property rights that would
44be necessarily infringed by the Software as provided to you by Freescale and as used
45within the scope of the licenses granted. You must advise Freescale of any results
46obtained including any problems or suggested improvements thereof. Freescale retains
47the right to use such results and related information in any manner it deems
48appropriate.
49
502. OTHER RESTRICTIONS. Subject to the license grant above, the following restrictions
51 apply:
52
53a. Freescale reserves all rights not expressly granted herein.
54b. You may not rent, lease, sublicense, lend or encumber the Software, unless
55 otherwise expressly agreed to within this Agreement
56c. You may not distribute, manufacture, have manufactured, sublicense or otherwise
57 reproduce the Software for purposes other than intended in this Agreement.
58d. You may not remove or alter any proprietary legends, notices, or trademarks
59 contained in the Licensed Software,
60e. The terms and conditions of this Agreement will apply to any Software updates,
61 provided to you at Freescale's discretion, that replace and/or supplement the
62 original Software, unless such update contains a separate license.
63f. You may not translate, reverse engineer, decompile, or disassemble the Software
64 provided to you solely in object code format (machine readable) except to the
65 extent applicable law specifically prohibits such restriction. You will prohibit
66 your sublicensees from translating, reverse engineering, decompiling, or
67 disassembling the Software except to the extent applicable law specifically
68 prohibits such restriction.
69
703. OPEN SOURCE. You are about to download or install certain software that is
71subject to various open source licenses such as the Apache License, the BSD license,
72the Free Software Foundation General Public License and Lesser General Public
73License, the Mozilla Public License and others. Your use of such open source
74software is subject to the terms of each applicable license. You must agree to the
75terms of each such applicable license, or you should not use the open source software.
76Any open source license that is incompatible with the terms of this Agreement
77supersedes the terms of this Agreement.
78
794. COPYRIGHT. The Software is licensed to you, not sold. Freescale owns the
80Software, and United States copyright laws and international treaty provisions
81protect the Software. Therefore, you must treat the Software like any other
82copyrighted material (e.g. a book or musical recording). You may not use or
83copy the Software for any other purpose than what is described in this Agreement.
84Except as expressly provided herein, Freescale does not grant to you any express or
85implied rights under any Freescale or third party patents, copyrights, trademarks,
86or trade secrets. Additionally, you must reproduce and apply any copyright or other
87proprietary rights notices included on or embedded in the Software to any copies
88made thereof, in whole or in part, if any. You may not remove any copyright
89notices of Freescale incorporated in the Software.
90
915. TERM AND TERMINATION. The term of this Agreement shall commence on the date
92of installation or download and shall continue perpetually, unless earlier
93terminated in accordance with this Agreement. Freescale has the right to terminate
94this Agreement without notice and require that you stop using and delete all copies
95of the Software in your possession or control if you violate any of the terms or
96restrictions of this Agreement. Freescale may terminate this Agreement should any
97of the Software become, or in Freescale's reasonable opinion is likely to become,
98the subject of a claim of intellectual infringement or trade secret misappropriation.
99Upon termination, you must cease use of and destroy, the Software and confirm
100compliance in writing to Freescale. Upon termination, the license granted pursuant
101to this Agreement immediately terminates and the provisions of Sections 4 through
10218 will survive any termination of this Agreement.
103
1046. SUPPORT. Freescale is NOT obligated to provide any support, upgrades or new
105releases of the Software. If you wish, you may contact Freescale and report problems
106and provide suggestions regarding the Software. Freescale has no obligation
107whatsoever to respond in any way to such a problem report or suggestion. Freescale
108may make changes to the Software at any time, without any obligation to notify or
109provide updated versions of the Software to you.
110
1117. NO WARRANTY. TO THE MAXIMUM EXTENT PERMITTED BY LAW, FREESCALE EXPRESSLY
112DISCLAIMS ANY WARRANTY FOR THE SOFTWARE. THE SOFTWARE IS PROVIDED "AS IS",
113WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, WITHOUT
114LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
115PURPOSE, OR NON-INFRINGEMENT. YOU ASSUME THE ENTIRE RISK ARISING OUT OF THE USE
116OR PERFORMANCE OF THE SOFTWARE, OR ANY SYSTEMS YOU DESIGN USING THE SOFTWARE (IF
117ANY). NOTHING IN THIS AGREEMENT MAY BE CONSTRUED AS A WARRANTY OR REPRESENTATION
118BY FREESCALE THAT THE SOFTWARE OR ANY DERIVATIVE WORK DEVELOPED WITH OR INCORPORATING
119THE SOFTWARE WILL BE FREE FROM INFRINGEMENT OF THE INTELLECTUAL PROPERTY RIGHTS OF
120THIRD PARTIES.
121
1228. INDEMNITY. You agree to fully defend and indemnify Freescale from any and all
123claims, liabilities, and costs (including reasonable attorney's fees) related to
124(1) your use (including your sublicensee's use, if permitted) of the Software or
125(2) your violation of the terms and conditions of this Agreement.
126
1279. LIMITATION OF LIABILITY. IN NO EVENT WILL FREESCALE BE LIABLE, WHETHER IN
128CONTRACT, TORT, OR OTHERWISE, FOR ANY INCIDENTAL, SPECIAL, INDIRECT, CONSEQUENTIAL
129OR PUNITIVE DAMAGES, INCLUDING, BUT NOT LIMITED TO, DAMAGES FOR ANY LOSS OF USE,
130LOSS OF TIME, INCONVENIENCE, COMMERCIAL LOSS, OR LOST PROFITS, SAVINGS, OR REVENUES
131TO THE FULL EXTENT SUCH MAY BE DISCLAIMED BY LAW EVEN IF INFORMED IN ADVANCE OF THE
132POSSIBILITY OF SUCH DAMAGES. FREESCALE'S LIABILITY WILL IN ANY EVENT AND UNDER ANY
133THEORY OF RECOVERY BE LIMITED TO THE TOTAL AMOUNT RECEIVED BY FREESCALE UNDER THIS
134AGREEMENT.
135
13610. COMPLIANCE WITH LAWS; EXPORT RESTRICTIONS. You must not resell, re-export, or
137provide, directly or indirectly, the licensed software or direct product thereof,
138in any form without obtaining appropriate export or re-export licenses from the
139United States Government and from the country from which the export or re-export
140is to occur. An export occurs when products, technology, or software is transferred
141from one country to another by any means, including physical shipments, FTP file
142transfers, E-mails, faxes, remote server access, conversations, and the like. An
143export also occurs when technology or software is transferred to a foreign national
144in the United States, or foreign national of the country in which the business
145activity is taking place. A foreign national is any person who is neither a citizen
146nor permanent resident of the United States, or the country in which the business
147activity is taking place. Furthermore, if an export/import license, permit or other
148government required authority (collectively referred to as "government
149authorization") is required to transfer technology, software, hardware or other
150Freescale property to non- Freescale party(ies) and is not approved, then Freescale
151is not obligated to transfer the Software under this Agreement until such
152"government authorization" is granted..
153
15411. GOVERNMENT RIGHTS. The Licensed Software is a "Commercial Item as defined in
15548 C.F.R. $2.101, consisting of "Commercial Computer Software" and "Commercial
156Computer Software Documentation," as such terms are used in 48 C.F.R. $ 12.212 or
15748 C.F.R. $227.7202, as applicable and are only licensed to U.S. Government end
158users with the rights as are set forth herein..
159
16012. HIGH RISK ACTIVITIES. You acknowledge that the Software is not fault tolerant
161and is not designed, manufactured or intended by Freescale for incorporation into
162products intended for use or resale in on-line control equipment in hazardous,
163dangerous to life or potentially life-threatening environments requiring fail-safe
164 performance, such as in the operation of nuclear facilities, aircraft navigation
165 or communication systems, air traffic control, direct life support machines or
166weapons systems, in which the failure of products could lead directly to death,
167personal injury or severe physical or environmental damage ("High Risk Activities").
168 You specifically represent and warrant that you will not use the Software or any
169derivative work of the Software for High Risk Activities.
170
17113. CHOICE OF LAW; VENUE; LIMITATIONS. You agree that the statutes and laws of the
172United States and the State of Texas, USA, without regard to conflicts of laws
173principles, will apply to all matters relating to this Agreement or the Software,
174and you agree that any litigation will be subject to the exclusive jurisdiction of
175the state or federal courts in Texas, USA. You agree that regardless of any
176statute or law to the contrary, any claim or cause of action arising out of or
177related to this Agreement or the Software must be filed within one (1) year after
178such claim or cause of action arose or be forever barred.
179
18014. CONFIDENTIAL INFORMATION. You must treat the Software as confidential
181information and you agree to retain the Software in confidence perpetually, with
182respect to Software in source code form (human readable), or for a period of five
183(5) years from the date of termination of this Agreement, with respect to all other
184parts of the Software. During this period you may not disclose any part of the
185Software to anyone other than employees who have a need to know of the Software and
186 who have executed written agreements obligating them to protect such Licensed
187Software to at least the same degree of care as in this Agreement. You agree to use
188 the same degree of care, but no less than a reasonable degree of care, with the
189Software as you do with your own confidential information. You may disclose Software
190 to the extent required by a court or under operation of law or order provided that
191 you notify Freescale of such requirement prior to disclosure, which you only
192disclose information required, and that you allow Freescale the opportunity to
193object to such court or other legal body requiring such disclosure.
194
19515. PRODUCT LABELING. You are not authorized to use any Freescale trademarks,
196brand names, or logos.
197
19816. ENTIRE AGREEMENT. This Agreement constitutes the entire agreement between you
199and Freescale regarding the subject matter of this Agreement, and supersedes all
200prior communications, negotiations, understandings, agreements or representations,
201either written or oral, if any. This Agreement may only be amended in written form,
202executed by you and Freescale.
203
20417. SEVERABILITY. If any provision of this Agreement is held for any reason to be
205invalid or unenforceable, then the remaining provisions of this Agreement will be
206unimpaired and, unless a modification or replacement of the invalid or unenforceable
207provision is further held to deprive you or Freescale of a material benefit, in
208which case the Agreement will immediately terminate, the invalid or unenforceable
209provision will be replaced with a provision that is valid and enforceable and that
210comes closest to the intention underlying the invalid or unenforceable provision.
211
21218. NO WAIVER. The waiver by Freescale of any breach of any provision of this
213Agreement will not operate or be construed as a waiver of any other or a subsequent
214breach of the same or a different provision.
diff --git a/custom-licenses/TestFloat b/custom-licenses/TestFloat
new file mode 100644
index 0000000..1a1a23f
--- /dev/null
+++ b/custom-licenses/TestFloat
@@ -0,0 +1,24 @@
1Written by John R. Hauser. This work was made possible in part by the
2International Computer Science Institute, located at Suite 600, 1947 Center
3Street, Berkeley, California 94704. Funding was partially provided by the
4National Science Foundation under grant MIP-9311980. The original version
5of this code was written as part of a project to build a fixed-point vector
6processor in collaboration with the University of California at Berkeley,
7overseen by Profs. Nelson Morgan and John Wawrzynek. More information
8is available through the Web page `http://www.cs.berkeley.edu/~jhauser/
9arithmetic/SoftFloat.html'.
10
11THIS SOFTWARE IS DISTRIBUTED AS IS, FOR FREE. Although reasonable effort has
12been made to avoid it, THIS SOFTWARE MAY CONTAIN FAULTS THAT WILL AT TIMES
13RESULT IN INCORRECT BEHAVIOR. USE OF THIS SOFTWARE IS RESTRICTED TO PERSONS
14AND ORGANIZATIONS WHO CAN AND WILL TAKE FULL RESPONSIBILITY FOR ALL LOSSES,
15COSTS, OR OTHER PROBLEMS THEY INCUR DUE TO THE SOFTWARE, AND WHO FURTHERMORE
16EFFECTIVELY INDEMNIFY JOHN HAUSER AND THE INTERNATIONAL COMPUTER SCIENCE
17INSTITUTE (possibly via similar legal warning) AGAINST ALL LOSSES, COSTS, OR
18OTHER PROBLEMS INCURRED BY THEIR CUSTOMERS AND CLIENTS DUE TO THE SOFTWARE.
19
20Derivative works are acceptable, even for commercial purposes, so long as
21(1) the source code for the derivative work includes prominent notice that
22the work is derivative, and (2) the source code includes prominent notice with
23these four paragraphs for those parts of this code that are retained.
24
diff --git a/recipes-bsp/boot-format/boot-format_git.bb b/recipes-bsp/boot-format/boot-format_git.bb
new file mode 100644
index 0000000..5e1719b
--- /dev/null
+++ b/recipes-bsp/boot-format/boot-format_git.bb
@@ -0,0 +1,19 @@
1DESCRIPTION = "Boot format utility for booting from eSDHC/eSPI"
2LICENSE = "GPLv2"
3PR = "r6"
4LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
5
6SRC_URI = "git://git.freescale.com/ppc/sdk/boot-format.git;nobranch=1"
7SRCREV = "3d5f5ae1461eb14927a89eea12a841983e151ec7"
8
9S = "${WORKDIR}/git"
10EXTRA_OEMAKE = 'CC="${CC}"'
11
12do_install(){
13 oe_runmake DESTDIR=${D} PREFIX=${prefix} install
14}
15
16PACKAGES =+ "${PN}-config"
17FILES_${PN}-config += "${datadir}/*"
18
19BBCLASSEXTEND = "native nativesdk"
diff --git a/recipes-bsp/rcw/rcw_git.bb b/recipes-bsp/rcw/rcw_git.bb
new file mode 100644
index 0000000..ad961ed
--- /dev/null
+++ b/recipes-bsp/rcw/rcw_git.bb
@@ -0,0 +1,43 @@
1DESCRIPTION = "Reset Control Words (RCW)"
2SECTION = "rcw"
3LICENSE = "BSD"
4PR = "r8"
5
6LIC_FILES_CHKSUM = "file://rcw.py;beginline=8;endline=28;md5=9ba0b28922dd187b06b6c8ebcfdd208e"
7
8# this package is specific to the machine itself
9INHIBIT_DEFAULT_DEPS = "1"
10PACKAGE_ARCH = "${MACHINE_ARCH}"
11
12inherit deploy
13
14SRC_URI = "git://git.freescale.com/ppc/sdk/rcw.git;nobranch=1"
15SRCREV = "bc38737b5cb08336a075cb38481881f87b33b7a1"
16SRCREV_t2080qds = "a694a89f4b57ce700b5b2ea84302c8618ece2f0f"
17SRCREV_t2080qds-64b = "a694a89f4b57ce700b5b2ea84302c8618ece2f0f"
18
19S = "${WORKDIR}/git"
20
21export PYTHON
22
23do_install () {
24 make install
25
26 M=`echo ${MACHINE} | sed s/-64b//g`
27 install -d ${D}/boot/rcw
28 cp -r ${S}/${M}/${M}/* ${D}/boot/rcw
29}
30
31do_deploy () {
32 M=`echo ${MACHINE} | sed s/-64b//g`
33 install -d ${DEPLOYDIR}/rcw
34 cp -r ${S}/${M}/${M}/* ${DEPLOYDIR}/rcw
35}
36addtask deploy after do_install
37
38PACKAGES += "${PN}-image"
39FILES_${PN}-image += "/boot"
40
41COMPATIBLE_HOST_fslmachine = ".*"
42COMPATIBLE_HOST ?= "(none)"
43ALLOW_EMPTY_${PN} = "1"
diff --git a/recipes-bsp/u-boot/files/Fix-the-depend-race-issue.patch b/recipes-bsp/u-boot/files/Fix-the-depend-race-issue.patch
new file mode 100644
index 0000000..1ddc667
--- /dev/null
+++ b/recipes-bsp/u-boot/files/Fix-the-depend-race-issue.patch
@@ -0,0 +1,38 @@
1Upstream-Status: Pending
2
3From 301832414369b749918e0d5db850eed19b81c0fc Mon Sep 17 00:00:00 2001
4From: Zhenhua Luo <zhenhua.luo@freescale.com>
5Date: Tue, 24 Sep 2013 00:54:40 -0500
6Subject: [PATCH] Fix the depend race issue
7
8| make[3]: Entering directory `/srv/home/pokybuild/yocto-autobuilder-new/yocto-slave/nightly-fsl-ppc/build/build/tmp/work/p1022ds-poky-linux-gnuspe/u-boot/git-r30/git/arch/powerpc/cpu/mpc85xx'
9| /srv/home/pokybuild/yocto-autobuilder-new/yocto-slave/nightly-fsl-ppc/build/build/tmp/work/p1022ds-poky-linux-gnuspe/u-boot/git-r30/git/P1022DS_NAND/spl/arch/powerpc/cpu/mpc85xx/.depend:125: *** missing separator. Stop.
10| make[3]: Leaving directory `/srv/home/pokybuild/yocto-autobuilder-new/yocto-slave/nightly-fsl-ppc/build/build/tmp/work/p1022ds-poky-linux-gnuspe/u-boot/git-r30/git/arch/powerpc/cpu/mpc85xx'
11| make[2]: *** [/srv/home/pokybuild/yocto-autobuilder-new/yocto-slave/nightly-fsl-ppc/build/build/tmp/work/p1022ds-poky-linux-gnuspe/u-boot/git-r30/git/P1022DS_NAND/spl/arch/powerpc/cpu/mpc85xx/start.o] Error 2
12| make[2]: *** Waiting for unfinished jobs....
13
14Signed-off-by: Zhenhua Luo <zhenhua.luo@freescale.com>
15---
16 spl/Makefile | 6 +++++-
17 1 file changed, 5 insertions(+), 1 deletion(-)
18
19diff --git a/spl/Makefile b/spl/Makefile
20index 6dbb105..3156d87 100644
21--- a/spl/Makefile
22+++ b/spl/Makefile
23@@ -185,7 +185,11 @@ $(eval $(call make_u_boot_list, $(obj)u-boot.lst, $(LIBS)))
24 $(obj)u-boot-spl.lds: $(LDSCRIPT) $(obj)u-boot.lst depend
25 $(CPP) $(CPPFLAGS) $(LDPPFLAGS) -I$(obj). -ansi -D__ASSEMBLY__ -P - < $< > $@
26
27-depend: $(obj).depend
28+# Explicitly make _depend in subdirs containing multiple targets to prevent
29+# parallel sub-makes creating .depend files simultaneously.
30+depend dep: $(obj).depend
31+ for dir in $(SUBDIRS) $(CPUDIR) $(LDSCRIPT_MAKEFILE_DIR) ; do \
32+ $(MAKE) -C $(SRCTREE)/$$dir _depend ; done
33 .PHONY: depend
34
35 # defines $(obj).depend target
36--
371.8.2.1
38
diff --git a/recipes-bsp/u-boot/u-boot_git.bb b/recipes-bsp/u-boot/u-boot_git.bb
new file mode 100644
index 0000000..406914c
--- /dev/null
+++ b/recipes-bsp/u-boot/u-boot_git.bb
@@ -0,0 +1,179 @@
1DESCRIPTION = "U-boot bootloader"
2HOMEPAGE = "http://u-boot.sf.net"
3SECTION = "bootloaders"
4PROVIDES = "virtual/bootloader"
5LICENSE = "GPLv2"
6LIC_FILES_CHKSUM = "file://COPYING;md5=1707d6db1d42237583f50183a5651ecb"
7LICENSE_t2080qds = "GPLv2 & BSD-3-Clause & BSD-2-Clause & LGPL-2.0 & LGPL-2.1"
8LIC_FILES_CHKSUM_t2080qds = " \
9 file://Licenses/gpl-2.0.txt;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
10 file://Licenses/bsd-2-clause.txt;md5=6a31f076f5773aabd8ff86191ad6fdd5 \
11 file://Licenses/bsd-3-clause.txt;md5=4a1190eac56a9db675d58ebe86eaf50c \
12 file://Licenses/lgpl-2.0.txt;md5=5f30f0716dfdd0d91eb439ebec522ec2 \
13 file://Licenses/lgpl-2.1.txt;md5=4fbd65380cdd255951079008b364516c \
14"
15LICENSE_t2080qds-64b = "GPLv2 & BSD-3-Clause & BSD-2-Clause & LGPL-2.0 & LGPL-2.1"
16LIC_FILES_CHKSUM_t2080qds-64b = " \
17 file://Licenses/gpl-2.0.txt;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
18 file://Licenses/bsd-2-clause.txt;md5=6a31f076f5773aabd8ff86191ad6fdd5 \
19 file://Licenses/bsd-3-clause.txt;md5=4a1190eac56a9db675d58ebe86eaf50c \
20 file://Licenses/lgpl-2.0.txt;md5=5f30f0716dfdd0d91eb439ebec522ec2 \
21 file://Licenses/lgpl-2.1.txt;md5=4fbd65380cdd255951079008b364516c \
22"
23
24PR = "r30"
25INHIBIT_DEFAULT_DEPS = "1"
26DEPENDS = "boot-format-native libgcc ${@base_contains('TCMODE', 'external-fsl', '', 'virtual/${TARGET_PREFIX}gcc', d)}"
27
28inherit deploy
29
30SRC_URI = "git://git.freescale.com/ppc/sdk/u-boot.git;nobranch=1 \
31 file://Fix-the-depend-race-issue.patch"
32SRCREV = "5438fc1ca159c8f5724272efd1289e6d49771e69"
33SRCREV_t2080qds = "fc03874549668c1a10f97c10b3a77cb0f236df19"
34SRCREV_t2080qds-64b = "fc03874549668c1a10f97c10b3a77cb0f236df19"
35
36python () {
37 if d.getVar("TCMODE", True) == "external-fsl":
38 return
39
40 ml = d.getVar("MULTILIB_VARIANTS", True)
41 arch = d.getVar("OVERRIDES", True)
42
43 if ("e5500-64b:" in arch or "e6500-64b:" in arch) and not "lib32" in ml:
44 raise bb.parse.SkipPackage("Building the u-boot for this arch requires multilib to be enabled")
45}
46
47DEPENDS_append_e5500-64b = "${@base_contains('TCMODE', 'external-fsl', '', ' lib32-gcc-cross lib32-libgcc', d)}"
48PATH_append_e5500-64b = ":${STAGING_BINDIR_NATIVE}/${DEFAULTTUNE_virtclass-multilib-lib32}${TARGET_VENDOR_virtclass-multilib-lib32}-${HOST_OS}/"
49TOOLCHAIN_OPTIONS_append_e5500-64b = "${@base_contains('TCMODE', 'external-fsl', '', '/../lib32-${MACHINE}', d)}"
50TARGET_VENDOR_virtclass-multilib-lib32 ?= "${@base_contains('TCMODE', 'external-fsl', '', '-${DISTRO}mllib32', d)}"
51WRAP_TARGET_PREFIX_e5500-64b := "powerpc${TARGET_VENDOR_virtclass-multilib-lib32}-${HOST_OS}-"
52
53DEPENDS_append_e6500-64b = "${@base_contains('TCMODE', 'external-fsl', '', ' lib32-gcc-cross lib32-libgcc', d)}"
54PATH_append_e6500-64b = ":${STAGING_BINDIR_NATIVE}/${DEFAULTTUNE_virtclass-multilib-lib32}${TARGET_VENDOR_virtclass-multilib-lib32}-${HOST_OS}/"
55TOOLCHAIN_OPTIONS_append_e6500-64b = "${@base_contains('TCMODE', 'external-fsl', '', '/../lib32-${MACHINE}', d)}"
56TARGET_VENDOR_virtclass-multilib-lib32 ?= "${@base_contains('TCMODE', 'external-fsl', '', '-${DISTRO}mllib32', d)}"
57WRAP_TARGET_PREFIX_e6500-64b := "powerpc${TARGET_VENDOR_virtclass-multilib-lib32}-${HOST_OS}-"
58WRAP_TARGET_PREFIX = "${TARGET_PREFIX}"
59
60PACKAGE_ARCH = "${MACHINE_ARCH}"
61
62UBOOT_LOCALVERSION = "${@d.getVar('SDK_VERSION', True).partition(' ')[0]}"
63
64USRC ?= ""
65S = '${@base_conditional("USRC", "", "${WORKDIR}/git", "${USRC}", d)}'
66
67CROSS_COMPILE = '${@base_conditional("TCMODE", "external-fsl", "${TARGET_PREFIX}", "${WRAP_TARGET_PREFIX}", d)}'
68EXTRA_OEMAKE = 'CROSS_COMPILE=${CROSS_COMPILE} CC="${CROSS_COMPILE}gcc ${TOOLCHAIN_OPTIONS}"'
69
70do_compile () {
71 unset LDFLAGS
72 unset CFLAGS
73 unset CPPFLAGS
74
75 if [ ! -e ${B}/.scmversion -a ! -e ${S}/.scmversion ]
76 then
77 head=`git rev-parse --verify --short HEAD 2> /dev/null`
78 printf "%s%s%s" ${UBOOT_LOCALVERSION} +g $head > ${B}/.scmversion
79 printf "%s%s%s" ${UBOOT_LOCALVERSION} +g $head > ${S}/.scmversion
80 fi
81
82 if [ "x${UBOOT_MACHINES}" = "x" ]; then
83 UBOOT_MACHINES=${UBOOT_MACHINE}
84 fi
85
86 for board in ${UBOOT_MACHINES}; do
87 oe_runmake O=${board} distclean
88 oe_runmake O=${board} ${board}
89 oe_runmake O=${board} all
90
91 case "${board}" in
92 *SDCARD*) UBOOT_TARGET="u-boot-sd";;
93 *SPIFLASH*) UBOOT_TARGET="u-boot-spi";;
94 *NAND*) UBOOT_TARGET="u-boot-nand";;
95 *SRIO*) UBOOT_TARGET="u-boot-srio";;
96 *) UBOOT_TARGET="";;
97 esac
98
99 # deal with sd/spi/nand/srio image
100 UBOOT_SOURCE=u-boot
101 if [ "x${UBOOT_TARGET}" != "x" ]; then
102 # some boards' nand image was named as u-boot-with-spl
103 if [ "${UBOOT_TARGET}" = "u-boot-nand" ];then
104 if echo $board |egrep -q "(P1010RDB|P1020RDB|P1021RDB|P2020RDB|P1022DS|BSC913)";then
105 UBOOT_SOURCE=u-boot-with-spl
106 fi
107 elif [ "${UBOOT_TARGET}" = "u-boot-spi" ];then
108 if echo $board |egrep -q "(P1010RDB|P1020RDB|P1021RDB|P2020RDB|P1022DS)";then
109 UBOOT_SOURCE=u-boot-with-spl
110 fi
111 elif [ "${UBOOT_TARGET}" = "u-boot-sd" ];then
112 if echo $board |egrep -q "(P1010RDB|P1020RDB|P1021RDB|P2020RDB|P1022DS)";then
113 UBOOT_SOURCE=u-boot-with-spl
114 fi
115 fi
116 cp ${S}/${board}/${UBOOT_SOURCE}.bin ${S}/${board}/${UBOOT_TARGET}.bin
117
118 # use boot-format to regenerate spi image if BOOTFORMAT_CONFIG is not empty
119 if [ "${UBOOT_TARGET}" = "u-boot-spi" ] && [ -n "${BOOTFORMAT_CONFIG}" ];then
120 ${STAGING_BINDIR_NATIVE}/boot_format \
121 ${STAGING_DATADIR_NATIVE}/boot_format/${BOOTFORMAT_CONFIG} \
122 ${S}/${board}/${UBOOT_SOURCE}.bin -spi ${S}/${board}/${UBOOT_TARGET}.bin
123 fi
124 fi
125 done
126}
127
128do_install(){
129 if [ "x${UBOOT_MACHINES}" = "x" ]; then
130 UBOOT_MACHINES=${UBOOT_MACHINE}
131 fi
132
133 for board in ${UBOOT_MACHINES}; do
134 case "${board}" in
135 *SDCARD*) UBOOT_TARGET="u-boot-sd";;
136 *SPIFLASH*) UBOOT_TARGET="u-boot-spi";;
137 *NAND*) UBOOT_TARGET="u-boot-nand";;
138 *SRIO*) UBOOT_TARGET="u-boot-srio";;
139 *) UBOOT_TARGET="u-boot";;
140 esac
141
142 if [ -f ${S}/${board}/${UBOOT_TARGET}.bin ]; then
143 mkdir -p ${D}/boot/
144 install ${S}/${board}/${UBOOT_TARGET}.bin ${D}/boot/${UBOOT_TARGET}-${board}-${PV}-${PR}.bin
145 ln -sf ${UBOOT_TARGET}-${board}-${PV}-${PR}.bin ${D}/boot/${UBOOT_TARGET}.bin
146 fi
147 done
148}
149
150do_deploy(){
151 if [ "x${UBOOT_MACHINES}" = "x" ]; then
152 UBOOT_MACHINES=${UBOOT_MACHINE}
153 fi
154
155 for board in ${UBOOT_MACHINES}; do
156 case "${board}" in
157 *SDCARD*) UBOOT_TARGET="u-boot-sd";;
158 *SPIFLASH*) UBOOT_TARGET="u-boot-spi";;
159 *NAND*) UBOOT_TARGET="u-boot-nand";;
160 *SRIO*) UBOOT_TARGET="u-boot-srio";;
161 *) UBOOT_TARGET="u-boot";;
162 esac
163
164 if [ -f ${S}/${board}/${UBOOT_TARGET}.bin ]; then
165 mkdir -p ${DEPLOYDIR}
166 install ${S}/${board}/${UBOOT_TARGET}.bin ${DEPLOYDIR}/${UBOOT_TARGET}-${board}-${PV}-${PR}.bin
167
168 cd ${DEPLOYDIR}
169 rm -f ${UBOOT_TARGET}-${board}.bin
170 ln -sf ${UBOOT_TARGET}-${board}-${PV}-${PR}.bin ${UBOOT_TARGET}-${board}.bin
171 fi
172 done
173}
174addtask deploy after do_install
175
176PACKAGES += "${PN}-images"
177FILES_${PN}-images += "/boot"
178
179ALLOW_EMPTY_${PN} = "1"
diff --git a/recipes-core/sysvinit/sysvinit_2.88dsf.bbappend b/recipes-core/sysvinit/sysvinit_2.88dsf.bbappend
new file mode 100644
index 0000000..8445337
--- /dev/null
+++ b/recipes-core/sysvinit/sysvinit_2.88dsf.bbappend
@@ -0,0 +1,2 @@
1PRINC := "${@int(PRINC) + 1}"
2
diff --git a/recipes-core/udev/udev-extraconf/71-fsl-dpaa-persistent-networking.rules b/recipes-core/udev/udev-extraconf/71-fsl-dpaa-persistent-networking.rules
new file mode 100644
index 0000000..6c6dc35
--- /dev/null
+++ b/recipes-core/udev/udev-extraconf/71-fsl-dpaa-persistent-networking.rules
@@ -0,0 +1,20 @@
1# Rules for handling naming the DPAA FMan ethernet ports in a consistent way
2SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ffe4e0000", NAME="fm1-gb0"
3SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ffe4e2000", NAME="fm1-gb1"
4SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ffe4e4000", NAME="fm1-gb2"
5SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ffe4e6000", NAME="fm1-gb3"
6SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ffe4e8000", NAME="fm1-gb4"
7SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ffe4f0000", NAME="fm1-10g"
8SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ffe5e0000", NAME="fm2-gb0"
9SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ffe5e2000", NAME="fm2-gb1"
10SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ffe5e4000", NAME="fm2-gb2"
11SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ffe5e6000", NAME="fm2-gb3"
12SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ffe5e8000", NAME="fm2-gb4"
13SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ffe5f0000", NAME="fm2-10g"
14
15# P1023 has its Fman @ different offsets
16SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ff7e0000", NAME="fm1-gb0"
17SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ff7e2000", NAME="fm1-gb1"
18
19# Rename macless0 port to "macless0"
20SUBSYSTEM=="net", ATTR{device_type}=="macless0", NAME="macless0"
diff --git a/recipes-core/udev/udev-extraconf/72-fsl-dpaa-persistent-networking.rules b/recipes-core/udev/udev-extraconf/72-fsl-dpaa-persistent-networking.rules
new file mode 100644
index 0000000..d0eec9c
--- /dev/null
+++ b/recipes-core/udev/udev-extraconf/72-fsl-dpaa-persistent-networking.rules
@@ -0,0 +1,24 @@
1# Rules for handling naming the DPAA FMan ethernet ports in a consistent way
2SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ffe4e0000", NAME="fm1-mac1"
3SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ffe4e2000", NAME="fm1-mac2"
4SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ffe4e4000", NAME="fm1-mac3"
5SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ffe4e6000", NAME="fm1-mac4"
6SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ffe4e8000", NAME="fm1-mac5"
7SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ffe4ea000", NAME="fm1-mac6"
8SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ffe4ec000", NAME="fm1-mac7"
9SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ffe4ee000", NAME="fm1-mac8"
10SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ffe4f0000", NAME="fm1-mac9"
11SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ffe4f2000", NAME="fm1-mac10"
12SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ffe5e0000", NAME="fm2-mac1"
13SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ffe5e2000", NAME="fm2-mac2"
14SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ffe5e4000", NAME="fm2-mac3"
15SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ffe5e6000", NAME="fm2-mac4"
16SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ffe5e8000", NAME="fm2-mac5"
17SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ffe5ea000", NAME="fm2-mac6"
18SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ffe5ec000", NAME="fm2-mac7"
19SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ffe5ee000", NAME="fm2-mac8"
20SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ffe5f0000", NAME="fm2-mac9"
21SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ffe5f2000", NAME="fm2-mac10"
22
23# Rename macless0 to "macless0"
24SUBSYSTEM=="net", ATTR{device_type}=="macless0", NAME="macless0"
diff --git a/recipes-core/udev/udev-extraconf/local.rules b/recipes-core/udev/udev-extraconf/local.rules
new file mode 100644
index 0000000..43034b8
--- /dev/null
+++ b/recipes-core/udev/udev-extraconf/local.rules
@@ -0,0 +1,42 @@
1# There are a number of modifiers that are allowed to be used in some
2# of the different fields. They provide the following subsitutions:
3#
4# %n the "kernel number" of the device.
5# For example, 'sda3' has a "kernel number" of '3'
6# %e the smallest number for that name which does not matches an existing node
7# %k the kernel name for the device
8# %M the kernel major number for the device
9# %m the kernel minor number for the device
10# %b the bus id for the device
11# %c the string returned by the PROGRAM
12# %s{filename} the content of a sysfs attribute
13# %% the '%' char itself
14#
15
16KERNEL=="nbd*", GOTO="persistent_storage_end"
17
18SUBSYSTEM=="block", ENV{DEVTYPE}=="partition", GOTO="nomountblock"
19
20# Media automounting
21SUBSYSTEM=="block", ACTION=="add" RUN+="/etc/udev/scripts/mount.sh"
22SUBSYSTEM=="block", ACTION=="remove" RUN+="/etc/udev/scripts/mount.sh"
23
24# Handle network interface setup
25SUBSYSTEM=="net", ACTION=="add" RUN+="/etc/udev/scripts/network.sh"
26SUBSYSTEM=="net", ACTION=="remove" RUN+="/etc/udev/scripts/network.sh"
27
28# The first framebuffer is symlinked to /dev/fb
29KERNEL=="fb0", SYMLINK+="fb"
30
31# The first rtc device is symlinked to /dev/rtc
32KERNEL=="rtc0", SYMLINK+="rtc"
33
34# Try and modprobe for drivers for new hardware
35ACTION=="add", DEVPATH=="/devices/*", ENV{MODALIAS}=="?*", RUN+="/sbin/modprobe $env{MODALIAS}"
36
37# Create a symlink to any touchscreen input device
38SUBSYSTEM=="input", KERNEL=="event[0-9]*", ATTRS{modalias}=="input:*-e0*,3,*a0,1,*18,*", SYMLINK+="input/touchscreen0"
39
40LABEL="persistent_storage_end"
41
42LABEL="nomountblock"
diff --git a/recipes-core/udev/udev-extraconf_%.bbappend b/recipes-core/udev/udev-extraconf_%.bbappend
new file mode 100644
index 0000000..056d037
--- /dev/null
+++ b/recipes-core/udev/udev-extraconf_%.bbappend
@@ -0,0 +1,12 @@
1FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
2
3PRINC := "${@int(PRINC) + 2}"
4
5SRC_URI_append = " file://${@bb.utils.contains("TUNE_FEATURES", "e6500", \
6 "72-fsl-dpaa-persistent-networking.rules", "71-fsl-dpaa-persistent-networking.rules", d)}"
7
8do_install_append () {
9 install -d ${D}${sysconfdir}/udev/rules.d/
10 install -m 0644 ${WORKDIR}/*-fsl-dpaa-persistent-networking.rules ${D}${sysconfdir}/udev/rules.d
11}
12
diff --git a/recipes-core/udev/udev_182.bbappend b/recipes-core/udev/udev_182.bbappend
new file mode 100644
index 0000000..8445337
--- /dev/null
+++ b/recipes-core/udev/udev_182.bbappend
@@ -0,0 +1,2 @@
1PRINC := "${@int(PRINC) + 1}"
2
diff --git a/recipes-devtools/libedit/libedit_20121213.bb b/recipes-devtools/libedit/libedit_20121213.bb
new file mode 100644
index 0000000..08dba44
--- /dev/null
+++ b/recipes-devtools/libedit/libedit_20121213.bb
@@ -0,0 +1,18 @@
1DESCRIPTION = "BSD replacement for libreadline"
2HOMEPAGE = "http://www.thrysoee.dk/editline/"
3SECTION = "libs"
4LICENSE = "BSD"
5LIC_FILES_CHKSUM = "file://COPYING;md5=1e4228d0c5a9093b01aeaaeae6641533"
6
7DEPENDS = "ncurses"
8
9inherit autotools
10
11# upstream site does not allow wget's User-Agent
12FETCHCMD_wget += "-U bitbake"
13SRC_URI = "http://www.thrysoee.dk/editline/${BPN}-${PV}-3.0.tar.gz"
14
15S = "${WORKDIR}/${BPN}-${PV}-3.0"
16
17SRC_URI[md5sum] = "f475f50fe7467c1074c0fbae8b5bca1a"
18SRC_URI[sha256sum] = "0379e4a73c219f260e6d16adbc2e87635532ebb4c5a83a7399f231dc40108d1f"
diff --git a/recipes-devtools/qemu/files/0001-doc-Fix-texinfo-table-markup-in-qemu-options.hx.patch b/recipes-devtools/qemu/files/0001-doc-Fix-texinfo-table-markup-in-qemu-options.hx.patch
new file mode 100644
index 0000000..30daf29
--- /dev/null
+++ b/recipes-devtools/qemu/files/0001-doc-Fix-texinfo-table-markup-in-qemu-options.hx.patch
@@ -0,0 +1,201 @@
1From 9a7146ca91c04d05af36684d8b3ca79c1254abc2 Mon Sep 17 00:00:00 2001
2From: Markus Armbruster <armbru@redhat.com>
3Date: Wed, 13 Feb 2013 19:49:40 +0100
4Subject: [PATCH 1/2] doc: Fix texinfo @table markup in qemu-options.hx
5
6End tables before headings, start new ones afterwards. Fixes
7incorrect indentation of headings "File system options" and "Virtual
8File system pass-through options" in manual page and qemu-doc.
9
10Normalize markup some to increase chances it survives future edits.
11
12Upstream-Status: Backport
13
14Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
15Signed-off-by: Markus Armbruster <armbru@redhat.com>
16Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
17Message-id: 1360781383-28635-5-git-send-email-armbru@redhat.com
18Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
19---
20 qemu-options.hx | 56 +++++++++++++++++++++++++++++++++++++-------------------
21 1 file changed, 37 insertions(+), 19 deletions(-)
22
23diff --git a/qemu-options.hx b/qemu-options.hx
24index 9d7131a..54bd92a 100644
25--- a/qemu-options.hx
26+++ b/qemu-options.hx
27@@ -537,13 +537,15 @@ STEXI
28 @end table
29 ETEXI
30
31-DEF("usb", 0, QEMU_OPTION_usb,
32- "-usb enable the USB driver (will be the default soon)\n",
33- QEMU_ARCH_ALL)
34 STEXI
35 USB options:
36 @table @option
37+ETEXI
38
39+DEF("usb", 0, QEMU_OPTION_usb,
40+ "-usb enable the USB driver (will be the default soon)\n",
41+ QEMU_ARCH_ALL)
42+STEXI
43 @item -usb
44 @findex -usb
45 Enable the USB driver (will be the default soon)
46@@ -610,9 +612,15 @@ possible drivers and properties, use @code{-device help} and
47 @code{-device @var{driver},help}.
48 ETEXI
49
50+STEXI
51+@end table
52+ETEXI
53 DEFHEADING()
54
55 DEFHEADING(File system options:)
56+STEXI
57+@table @option
58+ETEXI
59
60 DEF("fsdev", HAS_ARG, QEMU_OPTION_fsdev,
61 "-fsdev fsdriver,id=id[,path=path,][security_model={mapped-xattr|mapped-file|passthrough|none}]\n"
62@@ -676,9 +684,15 @@ Specifies the tag name to be used by the guest to mount this export point
63
64 ETEXI
65
66+STEXI
67+@end table
68+ETEXI
69 DEFHEADING()
70
71 DEFHEADING(Virtual File system pass-through options:)
72+STEXI
73+@table @option
74+ETEXI
75
76 DEF("virtfs", HAS_ARG, QEMU_OPTION_virtfs,
77 "-virtfs local,path=path,mount_tag=tag,security_model=[mapped-xattr|mapped-file|passthrough|none]\n"
78@@ -769,11 +783,9 @@ ETEXI
79 STEXI
80 @end table
81 ETEXI
82-
83 DEFHEADING()
84
85 DEFHEADING(Display options:)
86-
87 STEXI
88 @table @option
89 ETEXI
90@@ -1215,7 +1227,6 @@ ETEXI
91 STEXI
92 @end table
93 ETEXI
94-
95 ARCHHEADING(, QEMU_ARCH_I386)
96
97 ARCHHEADING(i386 target only:, QEMU_ARCH_I386)
98@@ -1301,10 +1312,10 @@ Specify SMBIOS type 0 fields
99 Specify SMBIOS type 1 fields
100 ETEXI
101
102-DEFHEADING()
103 STEXI
104 @end table
105 ETEXI
106+DEFHEADING()
107
108 DEFHEADING(Network options:)
109 STEXI
110@@ -1718,13 +1729,19 @@ libpcap, so it can be analyzed with tools such as tcpdump or Wireshark.
111 Indicate that no network devices should be configured. It is used to
112 override the default configuration (@option{-net nic -net user}) which
113 is activated if no @option{-net} options are provided.
114+ETEXI
115
116+STEXI
117 @end table
118 ETEXI
119-
120 DEFHEADING()
121
122 DEFHEADING(Character device options:)
123+STEXI
124+
125+The general form of a character device option is:
126+@table @option
127+ETEXI
128
129 DEF("chardev", HAS_ARG, QEMU_OPTION_chardev,
130 "-chardev null,id=id[,mux=on|off]\n"
131@@ -1766,10 +1783,6 @@ DEF("chardev", HAS_ARG, QEMU_OPTION_chardev,
132 )
133
134 STEXI
135-
136-The general form of a character device option is:
137-@table @option
138-
139 @item -chardev @var{backend} ,id=@var{id} [,mux=on|off] [,@var{options}]
140 @findex -chardev
141 Backend is one of:
142@@ -1990,14 +2003,15 @@ Connect to a spice virtual machine channel, such as vdiport.
143
144 Connect to a spice port, allowing a Spice client to handle the traffic
145 identified by a name (preferably a fqdn).
146+ETEXI
147
148+STEXI
149 @end table
150 ETEXI
151-
152 DEFHEADING()
153
154-STEXI
155 DEFHEADING(Device URL Syntax:)
156+STEXI
157
158 In addition to using normal file images for the emulated storage devices,
159 QEMU can also use networked resources such as iSCSI devices. These are
160@@ -2113,10 +2127,16 @@ qemu-system-x86_84 --drive file=gluster://192.0.2.1/testvol/a.img
161 @end example
162
163 See also @url{http://www.gluster.org}.
164+ETEXI
165+
166+STEXI
167 @end table
168 ETEXI
169
170 DEFHEADING(Bluetooth(R) options:)
171+STEXI
172+@table @option
173+ETEXI
174
175 DEF("bt", HAS_ARG, QEMU_OPTION_bt, \
176 "-bt hci,null dumb bluetooth HCI - doesn't respond to commands\n" \
177@@ -2130,8 +2150,6 @@ DEF("bt", HAS_ARG, QEMU_OPTION_bt, \
178 " emulate a bluetooth device 'dev' in scatternet 'n'\n",
179 QEMU_ARCH_ALL)
180 STEXI
181-@table @option
182-
183 @item -bt hci[...]
184 @findex -bt
185 Defines the function of the corresponding Bluetooth HCI. -bt options
186@@ -2183,9 +2201,11 @@ currently:
187 @item keyboard
188 Virtual wireless keyboard implementing the HIDP bluetooth profile.
189 @end table
190-@end table
191 ETEXI
192
193+STEXI
194+@end table
195+ETEXI
196 DEFHEADING()
197
198 DEFHEADING(Linux/Multiboot boot specific:)
199--
2001.8.1.5
201
diff --git a/recipes-devtools/qemu/files/0002-docs-Fix-generating-qemu-doc.html-with-texinfo-5.patch b/recipes-devtools/qemu/files/0002-docs-Fix-generating-qemu-doc.html-with-texinfo-5.patch
new file mode 100644
index 0000000..cabbf0e
--- /dev/null
+++ b/recipes-devtools/qemu/files/0002-docs-Fix-generating-qemu-doc.html-with-texinfo-5.patch
@@ -0,0 +1,54 @@
1From f983d4978e1c49ee936ad52bf2de0c531420f5f8 Mon Sep 17 00:00:00 2001
2From: Cole Robinson <crobinso@redhat.com>
3Date: Wed, 20 Feb 2013 07:20:31 +0000
4Subject: [PATCH 2/2] docs: Fix generating qemu-doc.html with texinfo 5
5
6LC_ALL=C makeinfo --no-headers --no-split --number-sections --html qemu-doc.texi -o qemu-doc.html
7./qemu-options.texi:1521: unknown command `list'
8./qemu-options.texi:1521: table requires an argument: the formatter for @item
9./qemu-options.texi:1521: warning: @table has text but no @item
10
11Upstream-Status: Pending
12http://patchwork.ozlabs.org/patch/222131/
13
14CC: qemu-stable@nongnu.org
15Signed-off-by: Cole Robinson <crobinso@redhat.com>
16Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
17Reviewed-by: Markus Armbruster <armbru@redhat.com>
18---
19 qemu-options.hx | 19 +++++++------------
20 1 file changed, 7 insertions(+), 12 deletions(-)
21
22diff --git a/qemu-options.hx b/qemu-options.hx
23index 54bd92a..5d2d9b8 100644
24--- a/qemu-options.hx
25+++ b/qemu-options.hx
26@@ -2089,18 +2089,13 @@ QEMU supports using either local sheepdog devices or remote networked
27 devices.
28
29 Syntax for specifying a sheepdog device
30-@table @list
31-``sheepdog:<vdiname>''
32-
33-``sheepdog:<vdiname>:<snapid>''
34-
35-``sheepdog:<vdiname>:<tag>''
36-
37-``sheepdog:<host>:<port>:<vdiname>''
38-
39-``sheepdog:<host>:<port>:<vdiname>:<snapid>''
40-
41-``sheepdog:<host>:<port>:<vdiname>:<tag>''
42+@table @code
43+@item sheepdog:<vdiname>
44+@item sheepdog:<vdiname>:<snapid>
45+@item sheepdog:<vdiname>:<tag>
46+@item sheepdog:<host>:<port>:<vdiname>
47+@item sheepdog:<host>:<port>:<vdiname>:<snapid>
48+@item sheepdog:<host>:<port>:<vdiname>:<tag>
49 @end table
50
51 Example
52--
531.8.1.5
54
diff --git a/recipes-devtools/qemu/files/add-gtk-options.patch b/recipes-devtools/qemu/files/add-gtk-options.patch
new file mode 100644
index 0000000..d8522de
--- /dev/null
+++ b/recipes-devtools/qemu/files/add-gtk-options.patch
@@ -0,0 +1,13 @@
1--- a/configure.old 2013-12-11 21:24:44.422276752 -0600
2+++ b/configure 2013-12-11 21:27:26.954335983 -0600
3@@ -897,6 +897,10 @@
4 ;;
5 --enable-virtio-blk-data-plane) virtio_blk_data_plane="yes"
6 ;;
7+ --disable-gtk) gtk="no"
8+ ;;
9+ --enable-gtk) gtk="yes"
10+ ;;
11 *) echo "ERROR: unknown option $opt"; show_help="yes"
12 ;;
13 esac
diff --git a/recipes-devtools/qemu/files/fdt_header.patch b/recipes-devtools/qemu/files/fdt_header.patch
new file mode 100644
index 0000000..dccfe53
--- /dev/null
+++ b/recipes-devtools/qemu/files/fdt_header.patch
@@ -0,0 +1,39 @@
1Upstream-Status: Pending
2
3qemu: define fdt types in libfdt_env.h from qemu
4
5 * fixes
6 In file included from /home/oe/setup-scripts/build/tmp-angstrom_next-uclibc/sysroots/x86_64-linux/usr/include/libfdt.h:55:0,
7 from /home/oe/setup-scripts/build/tmp-angstrom_next-uclibc/work/x86_64-linux/qemu-native/1.4.0-r0/qemu-1.4.0/hw/arm/../../device_tree.c:28:
8 /home/oe/setup-scripts/build/tmp-angstrom_next-uclibc/sysroots/x86_64-linux/usr/include/fdt.h:58:2: error: unknown type name 'fdt32_t'
9 /home/oe/setup-scripts/build/tmp-angstrom_next-uclibc/sysroots/x86_64-linux/usr/include/fdt.h:59:2: error: unknown type name 'fdt32_t'
10 /home/oe/setup-scripts/build/tmp-angstrom_next-uclibc/sysroots/x86_64-linux/usr/include/fdt.h:60:2: error: unknown type name 'fdt32_t'
11 /home/oe/setup-scripts/build/tmp-angstrom_next-uclibc/sysroots/x86_64-linux/usr/include/fdt.h:61:2: error: unknown type name 'fdt32_t'
12 /home/oe/setup-scripts/build/tmp-angstrom_next-uclibc/sysroots/x86_64-linux/usr/include/fdt.h:62:2: error: unknown type name 'fdt32_t'
13 /home/oe/setup-scripts/build/tmp-angstrom_next-uclibc/sysroots/x86_64-linux/usr/include/fdt.h:63:2: error: unknown type name 'fdt32_t'
14 /home/oe/setup-scripts/build/tmp-angstrom_next-uclibc/sysroots/x86_64-linux/usr/include/fdt.h:64:2: error: unknown type name 'fdt32_t'
15 /home/oe/setup-scripts/build/tmp-angstrom_next-uclibc/sysroots/x86_64-linux/usr/include/fdt.h:67:2: error: unknown type name 'fdt32_t'
16 /home/oe/setup-scripts/build/tmp-angstrom_next-uclibc/sysroots/x86_64-linux/usr/include/fdt.h:70:2: error: unknown type name 'fdt32_t'
17 /home/oe/setup-scripts/build/tmp-angstrom_next-uclibc/sysroots/x86_64-linux/usr/include/fdt.h:73:2: error: unknown type name 'fdt32_t'
18 /home/oe/setup-scripts/build/tmp-angstrom_next-uclibc/sysroots/x86_64-linux/usr/include/fdt.h:77:2: error: unknown type name 'fdt64_t'
19 /home/oe/setup-scripts/build/tmp-angstrom_next-uclibc/sysroots/x86_64-linux/usr/include/fdt.h:78:2: error: unknown type name 'fdt64_t'
20 /home/oe/setup-scripts/build/tmp-angstrom_next-uclibc/sysroots/x86_64-linux/usr/include/fdt.h:82:2: error: unknown type name 'fdt32_t'
21 /home/oe/setup-scripts/build/tmp-angstrom_next-uclibc/sysroots/x86_64-linux/usr/include/fdt.h:87:2: error: unknown type name 'fdt32_t'
22 /home/oe/setup-scripts/build/tmp-angstrom_next-uclibc/sysroots/x86_64-linux/usr/include/fdt.h:88:2: error: unknown type name 'fdt32_t'
23 /home/oe/setup-scripts/build/tmp-angstrom_next-uclibc/sysroots/x86_64-linux/usr/include/fdt.h:89:2: error: unknown type name 'fdt32_t'
24
25Index: qemu-1.4.0/include/libfdt_env.h
26===================================================================
27--- qemu-1.4.0.orig/include/libfdt_env.h 2013-02-15 23:05:35.000000000 +0000
28+++ qemu-1.4.0/include/libfdt_env.h 2013-04-13 14:17:27.918885225 +0000
29@@ -21,6 +21,10 @@
30
31 #include "qemu/bswap.h"
32
33+typedef uint16_t fdt16_t;
34+typedef uint32_t fdt32_t;
35+typedef uint64_t fdt64_t;
36+
37 #ifdef HOST_WORDS_BIGENDIAN
38 #define fdt32_to_cpu(x) (x)
39 #define cpu_to_fdt32(x) (x)
diff --git a/recipes-devtools/qemu/files/fix-libcap-header-issue-on-some-distro.patch b/recipes-devtools/qemu/files/fix-libcap-header-issue-on-some-distro.patch
new file mode 100644
index 0000000..13a6ea2
--- /dev/null
+++ b/recipes-devtools/qemu/files/fix-libcap-header-issue-on-some-distro.patch
@@ -0,0 +1,84 @@
1fix libcap header issue on some distro
2
31, When build qemu-native on SLED 11.2, there is an error:
4...
5| In file included from /usr/include/bits/sigcontext.h:28,
6| from /usr/include/signal.h:339,
7| from /buildarea2/tmp/work/i686-linux/qemu-native/1.4.0-r0/
8qemu-1.4.0/include/qemu-common.h:42,
9| from fsdev/virtfs-proxy-helper.c:23:
10| /usr/include/asm/sigcontext.h:28: error: expected specifier-
11qualifier-list before '__u64'
12| /usr/include/asm/sigcontext.h:191: error: expected specifier-
13qualifier-list before '__u64'
14...
15
162, The virtfs-proxy-helper.c includes <sys/capability.h> and
17qemu-common.h in sequence. The header include map is:
18(`-->' presents `include')
19...
20"virtfs-proxy-helper.c" --> <sys/capability.h>
21...
22"virtfs-proxy-helper.c" --> "qemu-common.h" --> <signal.h> -->
23<bits/sigcontext.h> --> <asm/sigcontext.h> --> <linux/types.h> -->
24<asm/types.h> --> <asm-generic/types.h> --> <asm-generic/int-ll64.h>
25...
26
273, The bug is found on SLED 11.2 x86. In libcap header file
28/usr/include/sys/capability.h, it does evil stuff like this:
29...
30 25 /*
31 26 * Make sure we can be included from userland by preventing
32 27 * capability.h from including other kernel headers
33 28 */
34 29 #define _LINUX_TYPES_H
35 30 #define _LINUX_FS_H
36 31 #define __LINUX_COMPILER_H
37 32 #define __user
38 33
39 34 typedef unsigned int __u32;
40 35 typedef __u32 __le32;
41...
42This completely prevents including /usr/include/linux/types.h.
43The above `<asm/sigcontext.h> --> <linux/types.h>' is prevented,
44and '__u64' is defined in <asm-generic/int-ll64.h>.
45
464, Modify virtfs-proxy-helper.c to include <sys/capability.h>
47last to workaround the issue.
48
49http://www.linuxtv.org/pipermail/vdr/2009-August/021194.html
50http://patchwork.linuxtv.org/patch/12748/
51
52Upstream-Status: Pending
53Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
54---
55 fsdev/virtfs-proxy-helper.c | 7 +++++--
56 1 file changed, 5 insertions(+), 2 deletions(-)
57
58diff --git a/fsdev/virtfs-proxy-helper.c b/fsdev/virtfs-proxy-helper.c
59--- a/fsdev/virtfs-proxy-helper.c
60+++ b/fsdev/virtfs-proxy-helper.c
61@@ -12,7 +12,6 @@
62 #include <sys/resource.h>
63 #include <getopt.h>
64 #include <syslog.h>
65-#include <sys/capability.h>
66 #include <sys/fsuid.h>
67 #include <sys/vfs.h>
68 #include <sys/ioctl.h>
69@@ -26,7 +25,11 @@
70 #include "virtio-9p-marshal.h"
71 #include "hw/9pfs/virtio-9p-proxy.h"
72 #include "fsdev/virtio-9p-marshal.h"
73-
74+/*
75+ * Include this one last due to some versions of it being buggy:
76+ * http://www.linuxtv.org/pipermail/vdr/2009-August/021194.html
77+ */
78+#include <sys/capability.h>
79 #define PROGNAME "virtfs-proxy-helper"
80
81 #ifndef XFS_SUPER_MAGIC
82--
831.7.10.4
84
diff --git a/recipes-devtools/qemu/files/relocatable_sdk.patch b/recipes-devtools/qemu/files/relocatable_sdk.patch
new file mode 100644
index 0000000..774a49c
--- /dev/null
+++ b/recipes-devtools/qemu/files/relocatable_sdk.patch
@@ -0,0 +1,34 @@
1Upstream-Status: Inappropriate [SDK specific]
2
3In order to be able to change the dynamic loader path when relocating
4binaries, the interp section has to be made big enough to accomodate
5the new path (4096 is the maximum path length in Linux).
6
7Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
8
9Index: qemu-1.4.0/ldscripts/i386.ld
10===================================================================
11--- qemu-1.4.0.orig/ldscripts/i386.ld 2013-02-15 15:05:35.000000000 -0800
12+++ qemu-1.4.0/ldscripts/i386.ld 2013-02-28 22:55:36.138816418 -0800
13@@ -8,7 +8,7 @@
14 {
15 /* Read-only sections, merged into text segment: */
16 . = 0x60000000 + SIZEOF_HEADERS;
17- .interp : { *(.interp) }
18+ .interp : { *(.interp); . = 0x1000; }
19 .hash : { *(.hash) }
20 .dynsym : { *(.dynsym) }
21 .dynstr : { *(.dynstr) }
22Index: qemu-1.4.0/ldscripts/x86_64.ld
23===================================================================
24--- qemu-1.4.0.orig/ldscripts/x86_64.ld 2013-02-15 15:05:35.000000000 -0800
25+++ qemu-1.4.0/ldscripts/x86_64.ld 2013-02-28 22:55:36.138816418 -0800
26@@ -6,7 +6,7 @@
27 {
28 /* Read-only sections, merged into text segment: */
29 . = 0x60000000 + SIZEOF_HEADERS;
30- .interp : { *(.interp) }
31+ .interp : { *(.interp); . = 0x1000; }
32 .hash : { *(.hash) }
33 .dynsym : { *(.dynsym) }
34 .dynstr : { *(.dynstr) }
diff --git a/recipes-devtools/qemu/qemu_fslgit.bb b/recipes-devtools/qemu/qemu_fslgit.bb
new file mode 100644
index 0000000..810794d
--- /dev/null
+++ b/recipes-devtools/qemu/qemu_fslgit.bb
@@ -0,0 +1,54 @@
1require recipes-devtools/qemu/qemu.inc
2
3LIC_FILES_CHKSUM = "file://COPYING;md5=441c28d2cf86e15a37fa47e15a72fbac \
4 file://COPYING.LIB;endline=24;md5=c04def7ae38850e7d3ef548588159913"
5
6# This means v1.4 with FSL specific patches applied
7PV = "1.4+fsl"
8
9SRC_URI = "git://git.freescale.com/ppc/sdk/qemu.git;nobranch=1"
10SRCREV = "99231018edf75522aea2630e4089c9163566fb73"
11
12SRC_URI += " \
13 file://0001-doc-Fix-texinfo-table-markup-in-qemu-options.hx.patch \
14 file://0002-docs-Fix-generating-qemu-doc.html-with-texinfo-5.patch \
15 file://fdt_header.patch \
16 file://add-gtk-options.patch \
17"
18
19S = "${WORKDIR}/git"
20
21QEMU_TARGETS = "ppc"
22PPC_OECONF = '${SDL} --cross-prefix=${TARGET_PREFIX} --disable-werror --disable-vnc --audio-drv-list="" --audio-card-list="" --disable-bluez --disable-curl'
23EXTRA_OECONF_e5500-64b = "--target-list=ppc64-softmmu ${PPC_OECONF}"
24EXTRA_OECONF_e6500-64b = "--target-list=ppc64-softmmu ${PPC_OECONF}"
25EXTRA_OECONF_e6500 = "--target-list=ppc64-softmmu ${PPC_OECONF}"
26EXTRA_OECONF_e5500 = "--target-list=ppc64-softmmu ${PPC_OECONF}"
27EXTRA_OECONF_e500v2 = "--target-list=ppc-softmmu ${PPC_OECONF}"
28EXTRA_OECONF_e500mc = "--target-list=ppc-softmmu ${PPC_OECONF}"
29
30do_configure_prepend() {
31 export PKG_CONFIG=${STAGING_DIR_NATIVE}${bindir_native}/pkg-config
32}
33
34do_configure_append () {
35 grep 'CONFIG_FDT=y' config-host.mak
36}
37
38# gets around qemu.inc trying to install powerpc_rom.bin
39do_install_prepend() {
40 touch ${WORKDIR}/powerpc_rom.bin
41}
42
43do_install_append() {
44 rm ${WORKDIR}/powerpc_rom.bin
45}
46
47INSANE_SKIP_${PN} += "dev-deps"
48
49# This is only meant to be build to run on the target
50# for the given arch types listed, otherwise don't let
51# the package get built. COMPATIBLE_HOST would not work
52# because it was too generic
53COMPATIBLE_MACHINE = "a^"
54COMPATIBLE_MACHINE_libc-glibc_fslmachine = ".*"
diff --git a/recipes-devtools/tclap/tclap_1.2.1.bb b/recipes-devtools/tclap/tclap_1.2.1.bb
new file mode 100644
index 0000000..aa478b5
--- /dev/null
+++ b/recipes-devtools/tclap/tclap_1.2.1.bb
@@ -0,0 +1,17 @@
1DESCRIPTION = "Templatized C++ Command Line Parser"
2HOMEPAGE = "http://tclap.sourceforge.net/"
3SECTION = "tclap"
4LICENSE = "MIT"
5LIC_FILES_CHKSUM = "file://COPYING;md5=c8ab0ff134bcc584d0e6b5b9f8732453"
6
7SRCREV = "3627d9402e529770df9b0edf2aa8c0e0d6c6bb41"
8SRC_URI = "git://tclap.git.sourceforge.net/gitroot/tclap/tclap;protocal=git;branch=master"
9
10S = "${WORKDIR}/git"
11inherit autotools
12
13do_install_prepend() {
14 install -d ${S}/docs/html
15}
16
17BBCLASSEXTEND = "native nativesdk"
diff --git a/recipes-dpaa/eth-config/eth-config_git.bb b/recipes-dpaa/eth-config/eth-config_git.bb
new file mode 100644
index 0000000..882fa69
--- /dev/null
+++ b/recipes-dpaa/eth-config/eth-config_git.bb
@@ -0,0 +1,19 @@
1DESCRIPTION = "Ethernet Configuration Files"
2SECTION = "eth-config"
3LICENSE = "Freescale-EULA"
4LIC_FILES_CHKSUM = "file://COPYING;md5=ee9cce4f1b396a50469f4dbde064e866"
5
6PR = "r2"
7
8SRC_URI = "git://git.freescale.com/ppc/sdk/eth-config.git"
9SRCREV = "96ac356dbe77948318c3806764f4a68862e30ac4"
10
11S = "${WORKDIR}/git"
12
13do_install() {
14 install -d ${D}/etc/fmc/config
15 install -m 644 ${S}/*.xml ${D}/etc/fmc/config
16 install -d ${D}/etc/fmc/config/shared_mac
17 install -m 644 ${S}/shared_mac/*.xml ${D}/etc/fmc/config/shared_mac
18 install -m 644 ${S}/shared_mac/README ${D}/etc/fmc/config/shared_mac
19}
diff --git a/recipes-dpaa/flib/flib_git.bb b/recipes-dpaa/flib/flib_git.bb
new file mode 100644
index 0000000..3f25999
--- /dev/null
+++ b/recipes-dpaa/flib/flib_git.bb
@@ -0,0 +1,17 @@
1DESCRIPTION = "Foundation Library"
2SECTION = "flib"
3LICENSE = "BSD & GPLv2"
4LIC_FILES_CHKSUM = "file://COPYING;md5=3f16fa8e677e45af3127c5c4bafc3c00"
5
6SRC_URI = "git://git.freescale.com/ppc/sdk/flib.git;nobranch=1"
7SRCREV = "bb6162efa0767fc515c87a51191a9edba4750426"
8SRCREV_t2080qds = "64a3233ae426f36119268381c62100b02f7fe7e1"
9SRCREV_t2080qds-64b = "64a3233ae426f36119268381c62100b02f7fe7e1"
10
11S = "${WORKDIR}/git"
12
13do_install(){
14 oe_runmake install DESTDIR=${D}
15}
16
17ALLOW_EMPTY_${PN} = "1"
diff --git a/recipes-dpaa/fm-ucode/fm-ucode_git.bb b/recipes-dpaa/fm-ucode/fm-ucode_git.bb
new file mode 100644
index 0000000..3840e23
--- /dev/null
+++ b/recipes-dpaa/fm-ucode/fm-ucode_git.bb
@@ -0,0 +1,48 @@
1DESCRIPTION = "Fman microcode binary"
2SECTION = "fm-ucode"
3LICENSE = "Freescale-EULA"
4LIC_FILES_CHKSUM = "file://EULA;md5=60037ccba533a5995e8d1a838d85799c"
5
6PR = "r1"
7
8COMPATIBLE_MACHINE = "(p1023rdb|p2041rdb|p3041ds|p4080ds|p5020ds|p5040ds|p5020ds-64b|p5040ds-64b|b4420qds|b4420qds-64b|b4860qds|b4860qds-64b|t4160qds|t4160qds-64b|t2080qds|t2080qds-64b|t4240qds|t4240qds-64b)"
9inherit deploy
10
11SRC_URI = "git://git.freescale.com/ppc/sdk/fm-ucode.git;nobranch=1"
12SRCREV = "c8fe73d734ed733f39c80aa3a8f167808ba3913c"
13
14S = "${WORKDIR}/git"
15
16ALLOW_EMPTY_${PN} = "1"
17do_install () {
18 case ${MACHINE} in
19 b4420qds|b4420qds-64b|b4860qds|b4860qds-64b) UCODE=b4860qds;;
20 t4240qds|t4240qds-64b|t4160qds|t4160qds-64b) UCODE=t4240qds;;
21 p5020ds|p5020ds-64b) UCODE=p5020ds;;
22 p5040ds|p5040ds-64b) UCODE=p5040ds;;
23 t2080qds|t2080qds-64b) UCODE=t2080qds;;
24 *) UCODE=${MACHINE};;
25 esac
26 UCODE=`echo $UCODE | sed -e 's,[a-zA-Z]*$,,'`
27 install -d ${D}/boot
28 install -m 644 fsl_fman_ucode_${UCODE}*.bin ${D}/boot/
29}
30
31do_deploy () {
32 case ${MACHINE} in
33 b4420qds|b4420qds-64b|b4860qds|b4860qds-64b) UCODE=b4860qds;;
34 t4240qds|t4240qds-64b|t4160qds|t4160qds-64b) UCODE=t4240qds;;
35 p5020ds|p5020ds-64b) UCODE=p5020ds;;
36 p5040ds|p5040ds-64b) UCODE=p5040ds;;
37 t2080qds|t2080qds-64b) UCODE=t2080qds;;
38 *) UCODE=${MACHINE};;
39 esac
40 UCODE=`echo $UCODE | sed -e 's,[a-zA-Z]*$,,'`
41 install -d ${DEPLOYDIR}/
42 install -m 644 fsl_fman_ucode_${UCODE}*.bin ${DEPLOYDIR}/
43}
44addtask deploy before do_build after do_install
45
46PACKAGES += "${PN}-image"
47FILES_${PN}-image += "/boot"
48
diff --git a/recipes-dpaa/fmc/fmc_git.bb b/recipes-dpaa/fmc/fmc_git.bb
new file mode 100644
index 0000000..9d98fec
--- /dev/null
+++ b/recipes-dpaa/fmc/fmc_git.bb
@@ -0,0 +1,53 @@
1DESCRIPTION = "Frame Manager Configuration tool"
2SECTION = "fmc"
3LICENSE = "MIT"
4LIC_FILES_CHKSUM = "file://COPYING;md5=a504ab5a8ff235e67c7301214749346c"
5
6PR = "r2"
7
8SRC_URI = "git://git.freescale.com/ppc/sdk/fmc.git;nobranch=1"
9SRCREV = "363f8497cf04d242c477b12a21f679b2ec9e3fa4"
10
11DEPENDS = "libxml2 fmlib tclap"
12
13PACKAGE_ARCH = "${MACHINE_ARCH}"
14
15S = "${WORKDIR}/git"
16
17EXTRA_OEMAKE = 'FMD_USPACE_HEADER_PATH="${STAGING_INCDIR}/fmd" \
18 FMD_USPACE_LIB_PATH="${STAGING_LIBDIR}" LIBXML2_HEADER_PATH="${STAGING_INCDIR}/libxml2" \
19 TCLAP_HEADER_PATH="${STAGING_INCDIR}" '
20EXTRA_OEMAKE_virtclass-native = 'FMCHOSTMODE=1 FMD_USPACE_HEADER_PATH="${STAGING_INCDIR}/fmd" \
21 FMD_USPACE_LIB_PATH="${STAGING_LIBDIR}" LIBXML2_HEADER_PATH="${STAGING_INCDIR}/libxml2" \
22 TCLAP_HEADER_PATH="${STAGING_INCDIR}" '
23
24PARALLEL_MAKE = ""
25
26do_compile () {
27 if [ "b4860qds" = "${MACHINE}" ] || [ "t2080qds" = "${MACHINE}" ] || [ "b4420qds" = "${MACHINE}" ];then
28 EXTRA_OEMAKE_PLATFORM="b4860qds"
29 elif [ "t4240qds" = "${MACHINE}" ] || [ "t4160qds" = "${MACHINE}" ];then
30 EXTRA_OEMAKE_PLATFORM="t4240qds"
31 elif [ "p1023rds" = "${MACHINE}" ];then
32 EXTRA_OEMAKE_PLATFORM="p1023rds"
33 else
34 EXTRA_OEMAKE_PLATFORM=""
35 fi
36 oe_runmake MACHINE=${EXTRA_OEMAKE_PLATFORM} -C source
37}
38
39do_install () {
40 install -d ${D}/${bindir}
41 install -m 755 ${S}/source/fmc ${D}/${bindir}/fmc
42
43 install -d ${D}/etc/fmc/config
44 install -m 644 ${S}/etc/fmc/config/hxs_pdl_v3.xml ${D}/etc/fmc/config
45
46 install -d ${D}/${includedir}/fmc
47 install ${S}/source/fmc.h ${D}/${includedir}/fmc
48
49 install -d ${D}/${libdir}
50 install ${S}/source/libfmc.a ${D}/${libdir}
51}
52
53BBCLASSEXTEND = "native"
diff --git a/recipes-dpaa/fmlib/fmlib_git.bb b/recipes-dpaa/fmlib/fmlib_git.bb
new file mode 100644
index 0000000..df7caf8
--- /dev/null
+++ b/recipes-dpaa/fmlib/fmlib_git.bb
@@ -0,0 +1,45 @@
1DESCRIPTION = "Frame Manager User Space Library"
2SECTION = "fman"
3LICENSE = "BSD & GPLv2"
4LIC_FILES_CHKSUM = "file://COPYING;md5=3f16fa8e677e45af3127c5c4bafc3c00"
5
6PR = "r1"
7
8DEPENDS += "virtual/kernel"
9DEPENDS_virtclass-native = ""
10
11SRC_URI = "git://git.freescale.com/ppc/sdk/fmlib.git;nobranch=1"
12SRCREV = "1fce11f17a102820a20cdbf80f557d74b169fc4c"
13SRCREV_t2080qds = "49f50a4bf4f0e34708003d7b49ce629630b68489"
14SRCREV_t2080qds-64b = "49f50a4bf4f0e34708003d7b49ce629630b68489"
15
16S = "${WORKDIR}/git"
17
18TARGET_ARCH_FMLIB = "${DEFAULTTUNE}"
19TARGET_ARCH_FMLIB_e5500 = "ppc32e5500"
20TARGET_ARCH_FMLIB_e6500 = "ppc32e6500"
21COMPATIBLE_HOST_fslmachine = ".*"
22COMPATIBLE_HOST ?= "(none)"
23
24EXTRA_OEMAKE = "DESTDIR=${D} PREFIX=${prefix} LIB_DEST_DIR=${libdir} \
25 CROSS_COMPILE=${TARGET_PREFIX} KERNEL_SRC=${STAGING_KERNEL_DIR}"
26
27do_compile () {
28 oe_runmake libfm-${TARGET_ARCH_FMLIB}.a
29}
30
31do_compile_virtclass-native () {
32}
33
34do_install () {
35 oe_runmake install-libfm-${TARGET_ARCH_FMLIB}
36}
37
38do_install_virtclass-native () {
39 install -d ${D}/${includedir}
40 cp -rf ${S}/include/* ${D}/${includedir}
41}
42
43ALLOW_EMPTY_${PN} = "1"
44
45BBCLASSEXTEND = "native"
diff --git a/recipes-dpaa/usdpaa/usdpaa_git.bb b/recipes-dpaa/usdpaa/usdpaa_git.bb
new file mode 100644
index 0000000..8288b2a
--- /dev/null
+++ b/recipes-dpaa/usdpaa/usdpaa_git.bb
@@ -0,0 +1,51 @@
1DESCRIPTION = "User-Space Data-Path Acceleration Architecture drivers"
2LICENSE = "BSD & GPLv2"
3LIC_FILES_CHKSUM = "file://Makefile;endline=30;md5=39e58bedc879163c9338596e52df5b1f"
4PR = "r4"
5
6inherit pkgconfig
7
8PACKAGE_ARCH = "${MACHINE_ARCH}"
9
10DEPENDS = "libxml2 libedit ncurses readline flib fmc"
11RDEPENDS_${PN} = "libgcc bash"
12
13SRC_URI = "git://git.freescale.com/ppc/sdk/usdpaa.git;nobranch=1"
14SRCREV = "cc8e332c64e5840ea2037624159801284434caba"
15SRCREV_t2080qds = "e6659c7a473fbaa64313c941d5fb10c723c64731"
16SRCREV_t2080qds-64b = "e6659c7a473fbaa64313c941d5fb10c723c64731"
17
18S = "${WORKDIR}/git"
19
20EXTRA_OEMAKE = 'CC="${CC}" LD="${LD}" AR="${AR}"'
21export ARCH="${TARGET_ARCH}"
22
23do_compile_prepend () {
24 case ${MACHINE} in
25 b4420qds|b4420qds-64b|b4860qds|b4860qds-64b) SOC=B4860;;
26 t4240qds|t4240qds-64b) SOC=T4240;;
27 p1023rdb) SOC=P1023;;
28 *) SOC=P4080;;
29 esac
30 export FMC_EXTRA_CFLAGS="-I ${STAGING_INCDIR}/fmc"
31 export FMLIB_EXTRA_CFLAGS="-I ${STAGING_INCDIR}/fmd \
32 -I ${STAGING_INCDIR}/fmd/Peripherals \
33 -I ${STAGING_INCDIR}/fmd/integrations \
34 -D $SOC"
35
36 export LIBXML2_CFLAGS="$(pkg-config --cflags libxml-2.0)"
37 export LIBXML2_LDFLAGS="$(pkg-config --libs --static libxml-2.0)"
38 export LIBEDIT_CFLAGS="$(pkg-config --cflags libedit)"
39 export LIBEDIT_LDFLAGS="$(pkg-config --libs --static libedit)"
40}
41
42do_install () {
43 oe_runmake install DESTDIR=${D}
44}
45
46PARALLEL_MAKE_pn-${PN} = ""
47FILES_${PN} += "/root/SOURCE_THIS /usr/etc/"
48
49COMPATIBLE_HOST_fslmachine = ".*"
50COMPATIBLE_HOST ?= "(none)"
51
diff --git a/recipes-extended/cst/cst_git.bb b/recipes-extended/cst/cst_git.bb
new file mode 100644
index 0000000..a9d41ac
--- /dev/null
+++ b/recipes-extended/cst/cst_git.bb
@@ -0,0 +1,31 @@
1DESCRIPTION = "CST Tool"
2SECTION = "cst"
3LICENSE = "BSD"
4
5# TODO: fix license - this file is not a license
6LIC_FILES_CHKSUM = "file://RELEASENOTES;beginline=8;endline=43;md5=5a7b22a2c96b5f94e0498c5f413aa8d3"
7
8DEPENDS += "openssl"
9
10SRC_URI = "git://git.freescale.com/ppc/sdk/cst.git;nobranch=1"
11SRCREV = "55223ed64404ee57c55416017a8d65b28314282e"
12SRCREV_t2080qds = "fd8f47ed97bc9a878a203e77ca74b2b8eda86a66"
13SRCREV_t2080qds-64b = "fd8f47ed97bc9a878a203e77ca74b2b8eda86a66"
14
15S = "${WORKDIR}/git"
16
17EXTRA_OEMAKE = 'OPENSSL_LIB_PATH=${STAGING_LIBDIR} OPENSSL_INC_PATH=${STAGING_INCDIR} CC="${CC}" LD="${CC}" LDFLAGS="${LDFLAGS}"'
18
19do_install () {
20 install -d ${D}/${bindir}/cst
21 install -m 755 ${S}/gen_keys ${D}/${bindir}/cst/
22 install -m 755 ${S}/gen_otpmk ${D}/${bindir}/cst/
23 install -m 755 ${S}/uni_cfsign ${D}/${bindir}/cst/
24 install -m 755 ${S}/uni_sign ${D}/${bindir}/cst/
25 cp -rf ${S}/input_files ${D}/${bindir}/cst
26}
27
28BBCLASSEXTEND = "native nativesdk"
29PARALLEL_MAKE = ""
30
31FILES_${PN}-dbg += "${bindir}/cst/.debug"
diff --git a/recipes-extended/procps/procps_3.2.8.bbappend b/recipes-extended/procps/procps_3.2.8.bbappend
new file mode 100644
index 0000000..8445337
--- /dev/null
+++ b/recipes-extended/procps/procps_3.2.8.bbappend
@@ -0,0 +1,2 @@
1PRINC := "${@int(PRINC) + 1}"
2
diff --git a/recipes-extended/skmm-ep/skmm-ep_git.bb b/recipes-extended/skmm-ep/skmm-ep_git.bb
new file mode 100644
index 0000000..65659b9
--- /dev/null
+++ b/recipes-extended/skmm-ep/skmm-ep_git.bb
@@ -0,0 +1,27 @@
1DESCRIPTION = "SKMM application for PCIe endpoint"
2SECTION = "skmm-ep"
3LICENSE = "BSD & GPLv2"
4LIC_FILES_CHKSUM = "file://Makefile;endline=30;md5=39e58bedc879163c9338596e52df5b1f"
5
6DEPENDS = "libedit openssl"
7
8SRC_URI = "git://git.freescale.com/ppc/sdk/skmm-ep.git;nobranch=1"
9SRCREV = "448522aa1ba3f0c4a1481631dc1c3b168d410a61"
10
11COMPATIBLE_MACHINE = "(p4080ds|t4240qds|c293pcie)"
12
13S = "${WORKDIR}/git"
14
15EXTRA_OEMAKE = 'MACHINE=${MACHINE}'
16
17export LIBEDIT_CFLAGS="$(pkg-config --cflags libedit)"
18export LIBEDIT_LDFLAGS="$(pkg-config --libs --static libedit)"
19
20do_compile () {
21 export ARCH=${TARGET_ARCH}
22 oe_runmake
23}
24
25do_install () {
26 oe_runmake ARCH=${TARGET_ARCH} install DESTDIR=${D}
27}
diff --git a/recipes-extended/testfloat/files/SoftFloat-powerpc-1.patch b/recipes-extended/testfloat/files/SoftFloat-powerpc-1.patch
new file mode 100644
index 0000000..b6db2de
--- /dev/null
+++ b/recipes-extended/testfloat/files/SoftFloat-powerpc-1.patch
@@ -0,0 +1,1427 @@
1This patch adds PowerPC support in SoftFloat.
2
3Signed-off-by: Ebony Zhu <ebony.zhu@freescale.com>
4Signed-off-by: Liu Yu <Yu.Liu@freescale.com>
5---
6 SoftFloat-2b/processors/powerpc-GCC.h | 87 ++++
7 SoftFloat-2b/softfloat/bits32/powerpc-GCC/Makefile | 26 ++
8 SoftFloat-2b/softfloat/bits32/powerpc-GCC/milieu.h | 55 +++
9 .../bits32/powerpc-GCC/softfloat-specialize | 252 ++++++++++++
10 .../softfloat/bits32/powerpc-GCC/softfloat.h | 155 +++++++
11 SoftFloat-2b/softfloat/bits64/powerpc-GCC/Makefile | 24 ++
12 SoftFloat-2b/softfloat/bits64/powerpc-GCC/milieu.h | 55 +++
13 .../bits64/powerpc-GCC/softfloat-specialize | 422 ++++++++++++++++++++
14 .../softfloat/bits64/powerpc-GCC/softfloat.h | 269 +++++++++++++
15 9 files changed, 1345 insertions(+), 0 deletions(-)
16 create mode 100644 SoftFloat-2b/processors/powerpc-GCC.h
17 create mode 100644 SoftFloat-2b/softfloat/bits32/powerpc-GCC/Makefile
18 create mode 100644 SoftFloat-2b/softfloat/bits32/powerpc-GCC/milieu.h
19 create mode 100644 SoftFloat-2b/softfloat/bits32/powerpc-GCC/softfloat-specialize
20 create mode 100644 SoftFloat-2b/softfloat/bits32/powerpc-GCC/softfloat.h
21 create mode 100644 SoftFloat-2b/softfloat/bits64/powerpc-GCC/Makefile
22 create mode 100644 SoftFloat-2b/softfloat/bits64/powerpc-GCC/milieu.h
23 create mode 100644 SoftFloat-2b/softfloat/bits64/powerpc-GCC/softfloat-specialize
24 create mode 100644 SoftFloat-2b/softfloat/bits64/powerpc-GCC/softfloat.h
25
26diff --git a/SoftFloat-2b/processors/powerpc-GCC.h b/SoftFloat-2b/processors/powerpc-GCC.h
27new file mode 100644
28index 0000000..002a786
29--- /dev/null
30+++ b/SoftFloat-2b/processors/powerpc-GCC.h
31@@ -0,0 +1,87 @@
32+/*
33+ * This file is derived from processors/386-gcc.h,
34+ * the copyright for that material belongs to the original owners.
35+ *
36+ * Additional material and changes where applicable is:
37+ * Copyright (C) 2008 Freescale Semiconductor, Inc. All rights reserved.
38+ *
39+ * Author: Ebony Zhu, <ebony.zhu@freescale.com>
40+ * Yu Liu, <yu.liu@freescale.com>
41+ *
42+ * THIS SOFTWARE IS DISTRIBUTED AS IS, FOR FREE. Although reasonable effort has
43+ * been made to avoid it, THIS SOFTWARE MAY CONTAIN FAULTS THAT WILL AT TIMES
44+ * RESULT IN INCORRECT BEHAVIOR. USE OF THIS SOFTWARE IS RESTRICTED TO PERSONS
45+ * AND ORGANIZATIONS WHO CAN AND WILL TAKE FULL RESPONSIBILITY FOR ALL LOSSES,
46+ * COSTS, OR OTHER PROBLEMS THEY INCUR DUE TO THE SOFTWARE, AND WHO FURTHERMORE
47+ * EFFECTIVELY INDEMNIFY JOHN HAUSER AND THE INTERNATIONAL COMPUTER SCIENCE
48+ * INSTITUTE (possibly via similar legal warning) AGAINST ALL LOSSES, COSTS, OR
49+ * OTHER PROBLEMS INCURRED BY THEIR CUSTOMERS AND CLIENTS DUE TO THE SOFTWARE.
50+ */
51+
52+/*----------------------------------------------------------------------------
53+| One of the macros `BIGENDIAN' or `LITTLEENDIAN' must be defined.
54+*----------------------------------------------------------------------------*/
55+#define BIGENDIAN
56+
57+/*----------------------------------------------------------------------------
58+| The macro `BITS64' can be defined to indicate that 64-bit integer types are
59+| supported by the compiler.
60+*----------------------------------------------------------------------------*/
61+#define BITS32
62+
63+/*----------------------------------------------------------------------------
64+| Each of the following `typedef's defines the most convenient type that holds
65+| integers of at least as many bits as specified. For example, `uint8' should
66+| be the most convenient type that can hold unsigned integers of as many as
67+| 8 bits. The `flag' type must be able to hold either a 0 or 1. For most
68+| implementations of C, `flag', `uint8', and `int8' should all be `typedef'ed
69+| to the same as `int'.
70+*----------------------------------------------------------------------------*/
71+typedef int flag;
72+typedef int uint8;
73+typedef int int8;
74+typedef int uint16;
75+typedef int int16;
76+typedef unsigned int uint32;
77+typedef signed int int32;
78+#ifdef BITS64
79+typedef unsigned long long int uint64;
80+typedef signed long long int int64;
81+#endif
82+
83+/*----------------------------------------------------------------------------
84+| Each of the following `typedef's defines a type that holds integers
85+| of _exactly_ the number of bits specified. For instance, for most
86+| implementation of C, `bits16' and `sbits16' should be `typedef'ed to
87+| `unsigned short int' and `signed short int' (or `short int'), respectively.
88+*----------------------------------------------------------------------------*/
89+typedef unsigned char bits8;
90+typedef signed char sbits8;
91+typedef unsigned short int bits16;
92+typedef signed short int sbits16;
93+typedef unsigned int bits32;
94+typedef signed int sbits32;
95+#ifdef BITS64
96+typedef unsigned long long int bits64;
97+typedef signed long long int sbits64;
98+#endif
99+
100+#ifdef BITS64
101+/*----------------------------------------------------------------------------
102+| The `LIT64' macro takes as its argument a textual integer literal and
103+| if necessary ``marks'' the literal as having a 64-bit integer type.
104+| For example, the GNU C Compiler (`gcc') requires that 64-bit literals be
105+| appended with the letters `LL' standing for `long long', which is `gcc's
106+| name for the 64-bit integer type. Some compilers may allow `LIT64' to be
107+| defined as the identity macro: `#define LIT64( a ) a'.
108+*----------------------------------------------------------------------------*/
109+#define LIT64( a ) a##LL
110+#endif
111+
112+/*----------------------------------------------------------------------------
113+| The macro `INLINE' can be used before functions that should be inlined. If
114+| a compiler does not support explicit inlining, this macro should be defined
115+| to be `static'.
116+*----------------------------------------------------------------------------*/
117+#define INLINE extern inline
118+
119diff --git a/SoftFloat-2b/softfloat/bits32/powerpc-GCC/Makefile b/SoftFloat-2b/softfloat/bits32/powerpc-GCC/Makefile
120new file mode 100644
121index 0000000..28f1e33
122--- /dev/null
123+++ b/SoftFloat-2b/softfloat/bits32/powerpc-GCC/Makefile
124@@ -0,0 +1,26 @@
125+
126+PROCESSOR_H = ../../../processors/powerpc-GCC.h
127+SOFTFLOAT_MACROS = ../softfloat-macros
128+
129+OBJ = .o
130+EXE =
131+INCLUDES = -I. -I..
132+COMPILE_C = $(COMPILE_PREFIX)gcc -msoft-float -c -o $@ $(INCLUDES) -I- -O2
133+LINK = $(COMPILE_PREFIX)gcc -o $@
134+
135+ALL: softfloat$(OBJ) timesoftfloat$(EXE)
136+
137+milieu.h: $(PROCESSOR_H)
138+ touch milieu.h
139+
140+softfloat$(OBJ): milieu.h softfloat.h softfloat-specialize $(SOFTFLOAT_MACROS) ../softfloat.c
141+ $(COMPILE_C) ../softfloat.c
142+
143+timesoftfloat$(OBJ): milieu.h softfloat.h ../timesoftfloat.c
144+ $(COMPILE_C) ../timesoftfloat.c
145+
146+timesoftfloat$(EXE): softfloat$(OBJ) timesoftfloat$(OBJ)
147+ $(LINK) softfloat$(OBJ) timesoftfloat$(OBJ)
148+
149+clean:
150+ rm -f *.o timesoftfloat$(EXE)
151diff --git a/SoftFloat-2b/softfloat/bits32/powerpc-GCC/milieu.h b/SoftFloat-2b/softfloat/bits32/powerpc-GCC/milieu.h
152new file mode 100644
153index 0000000..d8b6012
154--- /dev/null
155+++ b/SoftFloat-2b/softfloat/bits32/powerpc-GCC/milieu.h
156@@ -0,0 +1,55 @@
157+/*
158+ * This file is derived from softfloat/bits32/386-Win32-GCC/milieu.h,
159+ * the copyright for that material belongs to the original owners.
160+ *
161+ * Additional material and changes where applicable is:
162+ * Copyright (C) 2008 Freescale Semiconductor, Inc. All rights reserved.
163+ *
164+ * Author: Ebony Zhu, <ebony.zhu@freescale.com>
165+ * Yu Liu, <yu.liu@freescale.com>
166+ */
167+
168+/*============================================================================
169+
170+This C header file is part of the SoftFloat IEC/IEEE Floating-point Arithmetic
171+Package, Release 2b.
172+
173+Written by John R. Hauser. This work was made possible in part by the
174+International Computer Science Institute, located at Suite 600, 1947 Center
175+Street, Berkeley, California 94704. Funding was partially provided by the
176+National Science Foundation under grant MIP-9311980. The original version
177+of this code was written as part of a project to build a fixed-point vector
178+processor in collaboration with the University of California at Berkeley,
179+overseen by Profs. Nelson Morgan and John Wawrzynek. More information
180+is available through the Web page `http://www.cs.berkeley.edu/~jhauser/
181+arithmetic/SoftFloat.html'.
182+
183+THIS SOFTWARE IS DISTRIBUTED AS IS, FOR FREE. Although reasonable effort has
184+been made to avoid it, THIS SOFTWARE MAY CONTAIN FAULTS THAT WILL AT TIMES
185+RESULT IN INCORRECT BEHAVIOR. USE OF THIS SOFTWARE IS RESTRICTED TO PERSONS
186+AND ORGANIZATIONS WHO CAN AND WILL TAKE FULL RESPONSIBILITY FOR ALL LOSSES,
187+COSTS, OR OTHER PROBLEMS THEY INCUR DUE TO THE SOFTWARE, AND WHO FURTHERMORE
188+EFFECTIVELY INDEMNIFY JOHN HAUSER AND THE INTERNATIONAL COMPUTER SCIENCE
189+INSTITUTE (possibly via similar legal warning) AGAINST ALL LOSSES, COSTS, OR
190+OTHER PROBLEMS INCURRED BY THEIR CUSTOMERS AND CLIENTS DUE TO THE SOFTWARE.
191+
192+Derivative works are acceptable, even for commercial purposes, so long as
193+(1) the source code for the derivative work includes prominent notice that
194+the work is derivative, and (2) the source code includes prominent notice with
195+these four paragraphs for those parts of this code that are retained.
196+
197+=============================================================================*/
198+
199+/*----------------------------------------------------------------------------
200+| Include common integer types and flags.
201+*----------------------------------------------------------------------------*/
202+#include "../../../processors/powerpc-GCC.h"
203+
204+/*----------------------------------------------------------------------------
205+| Symbolic Boolean literals.
206+*----------------------------------------------------------------------------*/
207+enum {
208+ FALSE = 0,
209+ TRUE = 1
210+};
211+
212diff --git a/SoftFloat-2b/softfloat/bits32/powerpc-GCC/softfloat-specialize b/SoftFloat-2b/softfloat/bits32/powerpc-GCC/softfloat-specialize
213new file mode 100644
214index 0000000..fd2caa4
215--- /dev/null
216+++ b/SoftFloat-2b/softfloat/bits32/powerpc-GCC/softfloat-specialize
217@@ -0,0 +1,252 @@
218+/*
219+ * This file is derived from softfloat/bits32/386-Win32-GCC/softfloat-specialize,
220+ * the copyright for that material belongs to the original owners.
221+ *
222+ * Additional material and changes where applicable is:
223+ * Copyright (C) 2008 Freescale Semiconductor, Inc. All rights reserved.
224+ *
225+ * Author: Ebony Zhu, <ebony.zhu@freescale.com>
226+ * Yu Liu, <yu.liu@freescale.com>
227+ */
228+
229+/*============================================================================
230+
231+This C source fragment is part of the SoftFloat IEC/IEEE Floating-point
232+Arithmetic Package, Release 2b.
233+
234+Written by John R. Hauser. This work was made possible in part by the
235+International Computer Science Institute, located at Suite 600, 1947 Center
236+Street, Berkeley, California 94704. Funding was partially provided by the
237+National Science Foundation under grant MIP-9311980. The original version
238+of this code was written as part of a project to build a fixed-point vector
239+processor in collaboration with the University of California at Berkeley,
240+overseen by Profs. Nelson Morgan and John Wawrzynek. More information
241+is available through the Web page `http://www.cs.berkeley.edu/~jhauser/
242+arithmetic/SoftFloat.html'.
243+
244+THIS SOFTWARE IS DISTRIBUTED AS IS, FOR FREE. Although reasonable effort has
245+been made to avoid it, THIS SOFTWARE MAY CONTAIN FAULTS THAT WILL AT TIMES
246+RESULT IN INCORRECT BEHAVIOR. USE OF THIS SOFTWARE IS RESTRICTED TO PERSONS
247+AND ORGANIZATIONS WHO CAN AND WILL TAKE FULL RESPONSIBILITY FOR ALL LOSSES,
248+COSTS, OR OTHER PROBLEMS THEY INCUR DUE TO THE SOFTWARE, AND WHO FURTHERMORE
249+EFFECTIVELY INDEMNIFY JOHN HAUSER AND THE INTERNATIONAL COMPUTER SCIENCE
250+INSTITUTE (possibly via similar legal warning) AGAINST ALL LOSSES, COSTS, OR
251+OTHER PROBLEMS INCURRED BY THEIR CUSTOMERS AND CLIENTS DUE TO THE SOFTWARE.
252+
253+Derivative works are acceptable, even for commercial purposes, so long as
254+(1) the source code for the derivative work includes prominent notice that
255+the work is derivative, and (2) the source code includes prominent notice with
256+these four paragraphs for those parts of this code that are retained.
257+
258+=============================================================================*/
259+
260+/*----------------------------------------------------------------------------
261+| Underflow tininess-detection mode, statically initialized to default value.
262+| (The declaration in `softfloat.h' must match the `int8' type here.)
263+*----------------------------------------------------------------------------*/
264+int8 float_detect_tininess = float_tininess_after_rounding;
265+
266+/*----------------------------------------------------------------------------
267+| Raises the exceptions specified by `flags'. Floating-point traps can be
268+| defined here if desired. It is currently not possible for such a trap
269+| to substitute a result value. If traps are not implemented, this routine
270+| should be simply `float_exception_flags |= flags;'.
271+*----------------------------------------------------------------------------*/
272+
273+void float_raise( int8 flags )
274+{
275+
276+ float_exception_flags |= flags;
277+
278+}
279+
280+/*----------------------------------------------------------------------------
281+| Internal canonical NaN format.
282+*----------------------------------------------------------------------------*/
283+typedef struct {
284+ flag sign;
285+ bits32 high, low;
286+} commonNaNT;
287+
288+/*----------------------------------------------------------------------------
289+| The pattern for a default generated single-precision NaN.
290+*----------------------------------------------------------------------------*/
291+enum {
292+ float32_default_nan = 0xFFFFFFFF
293+};
294+
295+/*----------------------------------------------------------------------------
296+| Returns 1 if the single-precision floating-point value `a' is a NaN;
297+| otherwise returns 0.
298+*----------------------------------------------------------------------------*/
299+
300+flag float32_is_nan( float32 a )
301+{
302+
303+ return ( 0xFF000000 < (bits32) ( a<<1 ) );
304+
305+}
306+
307+/*----------------------------------------------------------------------------
308+| Returns 1 if the single-precision floating-point value `a' is a signaling
309+| NaN; otherwise returns 0.
310+*----------------------------------------------------------------------------*/
311+
312+flag float32_is_signaling_nan( float32 a )
313+{
314+
315+ return ( ( ( a>>22 ) & 0x1FF ) == 0x1FE ) && ( a & 0x003FFFFF );
316+
317+}
318+
319+/*----------------------------------------------------------------------------
320+| Returns the result of converting the single-precision floating-point NaN
321+| `a' to the canonical NaN format. If `a' is a signaling NaN, the invalid
322+| exception is raised.
323+*----------------------------------------------------------------------------*/
324+
325+static commonNaNT float32ToCommonNaN( float32 a )
326+{
327+ commonNaNT z;
328+
329+ if ( float32_is_signaling_nan( a ) ) float_raise( float_flag_invalid );
330+ z.sign = a>>31;
331+ z.low = 0;
332+ z.high = a<<9;
333+ return z;
334+
335+}
336+
337+/*----------------------------------------------------------------------------
338+| Returns the result of converting the canonical NaN `a' to the single-
339+| precision floating-point format.
340+*----------------------------------------------------------------------------*/
341+
342+static float32 commonNaNToFloat32( commonNaNT a )
343+{
344+
345+ return ( ( (bits32) a.sign )<<31 ) | 0x7FC00000 | ( a.high>>9 );
346+
347+}
348+
349+/*----------------------------------------------------------------------------
350+| Takes two single-precision floating-point values `a' and `b', one of which
351+| is a NaN, and returns the appropriate NaN result. If either `a' or `b' is a
352+| signaling NaN, the invalid exception is raised.
353+*----------------------------------------------------------------------------*/
354+
355+static float32 propagateFloat32NaN( float32 a, float32 b )
356+{
357+ flag aIsNaN, aIsSignalingNaN, bIsNaN, bIsSignalingNaN;
358+
359+ aIsNaN = float32_is_nan( a );
360+ aIsSignalingNaN = float32_is_signaling_nan( a );
361+ bIsNaN = float32_is_nan( b );
362+ bIsSignalingNaN = float32_is_signaling_nan( b );
363+ a |= 0x00400000;
364+ b |= 0x00400000;
365+ if ( aIsSignalingNaN | bIsSignalingNaN ) float_raise( float_flag_invalid );
366+ if ( aIsNaN ) {
367+ return ( aIsSignalingNaN & bIsNaN ) ? b : a;
368+ }
369+ else {
370+ return b;
371+ }
372+
373+}
374+
375+/*----------------------------------------------------------------------------
376+| The pattern for a default generated double-precision NaN. The `high' and
377+| `low' values hold the most- and least-significant bits, respectively.
378+*----------------------------------------------------------------------------*/
379+enum {
380+ float64_default_nan_high = 0xFFFFFFFF,
381+ float64_default_nan_low = 0xFFFFFFFF
382+};
383+
384+/*----------------------------------------------------------------------------
385+| Returns 1 if the double-precision floating-point value `a' is a NaN;
386+| otherwise returns 0.
387+*----------------------------------------------------------------------------*/
388+
389+flag float64_is_nan( float64 a )
390+{
391+
392+ return
393+ ( 0xFFE00000 <= (bits32) ( a.high<<1 ) )
394+ && ( a.low || ( a.high & 0x000FFFFF ) );
395+
396+}
397+
398+/*----------------------------------------------------------------------------
399+| Returns 1 if the double-precision floating-point value `a' is a signaling
400+| NaN; otherwise returns 0.
401+*----------------------------------------------------------------------------*/
402+
403+flag float64_is_signaling_nan( float64 a )
404+{
405+
406+ return
407+ ( ( ( a.high>>19 ) & 0xFFF ) == 0xFFE )
408+ && ( a.low || ( a.high & 0x0007FFFF ) );
409+
410+}
411+
412+/*----------------------------------------------------------------------------
413+| Returns the result of converting the double-precision floating-point NaN
414+| `a' to the canonical NaN format. If `a' is a signaling NaN, the invalid
415+| exception is raised.
416+*----------------------------------------------------------------------------*/
417+
418+static commonNaNT float64ToCommonNaN( float64 a )
419+{
420+ commonNaNT z;
421+
422+ if ( float64_is_signaling_nan( a ) ) float_raise( float_flag_invalid );
423+ z.sign = a.high>>31;
424+ shortShift64Left( a.high, a.low, 12, &z.high, &z.low );
425+ return z;
426+
427+}
428+
429+/*----------------------------------------------------------------------------
430+| Returns the result of converting the canonical NaN `a' to the double-
431+| precision floating-point format.
432+*----------------------------------------------------------------------------*/
433+
434+static float64 commonNaNToFloat64( commonNaNT a )
435+{
436+ float64 z;
437+
438+ shift64Right( a.high, a.low, 12, &z.high, &z.low );
439+ z.high |= ( ( (bits32) a.sign )<<31 ) | 0x7FF80000;
440+ return z;
441+
442+}
443+
444+/*----------------------------------------------------------------------------
445+| Takes two double-precision floating-point values `a' and `b', one of which
446+| is a NaN, and returns the appropriate NaN result. If either `a' or `b' is a
447+| signaling NaN, the invalid exception is raised.
448+*----------------------------------------------------------------------------*/
449+
450+static float64 propagateFloat64NaN( float64 a, float64 b )
451+{
452+ flag aIsNaN, aIsSignalingNaN, bIsNaN, bIsSignalingNaN;
453+
454+ aIsNaN = float64_is_nan( a );
455+ aIsSignalingNaN = float64_is_signaling_nan( a );
456+ bIsNaN = float64_is_nan( b );
457+ bIsSignalingNaN = float64_is_signaling_nan( b );
458+ a.high |= 0x00080000;
459+ b.high |= 0x00080000;
460+ if ( aIsSignalingNaN | bIsSignalingNaN ) float_raise( float_flag_invalid );
461+ if ( aIsNaN ) {
462+ return ( aIsSignalingNaN & bIsNaN ) ? b : a;
463+ }
464+ else {
465+ return b;
466+ }
467+
468+}
469+
470diff --git a/SoftFloat-2b/softfloat/bits32/powerpc-GCC/softfloat.h b/SoftFloat-2b/softfloat/bits32/powerpc-GCC/softfloat.h
471new file mode 100644
472index 0000000..0015b8e
473--- /dev/null
474+++ b/SoftFloat-2b/softfloat/bits32/powerpc-GCC/softfloat.h
475@@ -0,0 +1,155 @@
476+/*
477+ * This file is derived from softfloat/bits32/386-Win32-GCC/softfloat.h,
478+ * the copyright for that material belongs to the original owners.
479+ *
480+ * Additional material and changes where applicable is:
481+ * Copyright (C) 2008 Freescale Semiconductor, Inc. All rights reserved.
482+ *
483+ * Author: Ebony Zhu, <ebony.zhu@freescale.com>
484+ * Yu Liu, <yu.liu@freescale.com>
485+ */
486+
487+/*============================================================================
488+
489+This C header file is part of the SoftFloat IEC/IEEE Floating-point Arithmetic
490+Package, Release 2b.
491+
492+Written by John R. Hauser. This work was made possible in part by the
493+International Computer Science Institute, located at Suite 600, 1947 Center
494+Street, Berkeley, California 94704. Funding was partially provided by the
495+National Science Foundation under grant MIP-9311980. The original version
496+of this code was written as part of a project to build a fixed-point vector
497+processor in collaboration with the University of California at Berkeley,
498+overseen by Profs. Nelson Morgan and John Wawrzynek. More information
499+is available through the Web page `http://www.cs.berkeley.edu/~jhauser/
500+arithmetic/SoftFloat.html'.
501+
502+THIS SOFTWARE IS DISTRIBUTED AS IS, FOR FREE. Although reasonable effort has
503+been made to avoid it, THIS SOFTWARE MAY CONTAIN FAULTS THAT WILL AT TIMES
504+RESULT IN INCORRECT BEHAVIOR. USE OF THIS SOFTWARE IS RESTRICTED TO PERSONS
505+AND ORGANIZATIONS WHO CAN AND WILL TAKE FULL RESPONSIBILITY FOR ALL LOSSES,
506+COSTS, OR OTHER PROBLEMS THEY INCUR DUE TO THE SOFTWARE, AND WHO FURTHERMORE
507+EFFECTIVELY INDEMNIFY JOHN HAUSER AND THE INTERNATIONAL COMPUTER SCIENCE
508+INSTITUTE (possibly via similar legal warning) AGAINST ALL LOSSES, COSTS, OR
509+OTHER PROBLEMS INCURRED BY THEIR CUSTOMERS AND CLIENTS DUE TO THE SOFTWARE.
510+
511+Derivative works are acceptable, even for commercial purposes, so long as
512+(1) the source code for the derivative work includes prominent notice that
513+the work is derivative, and (2) the source code includes prominent notice with
514+these four paragraphs for those parts of this code that are retained.
515+
516+=============================================================================*/
517+
518+/*----------------------------------------------------------------------------
519+| Software IEC/IEEE floating-point types.
520+*----------------------------------------------------------------------------*/
521+typedef bits32 float32;
522+typedef struct {
523+ bits32 high, low;
524+} float64;
525+
526+/*----------------------------------------------------------------------------
527+| Software IEC/IEEE floating-point underflow tininess-detection mode.
528+*----------------------------------------------------------------------------*/
529+extern int8 float_detect_tininess;
530+enum {
531+ float_tininess_after_rounding = 0,
532+ float_tininess_before_rounding = 1
533+};
534+
535+/*----------------------------------------------------------------------------
536+| Software IEC/IEEE floating-point rounding mode.
537+*----------------------------------------------------------------------------*/
538+extern int8 float_rounding_mode;
539+enum {
540+ float_round_nearest_even = 0,
541+ float_round_to_zero = 1,
542+ float_round_up = 2,
543+ float_round_down = 3
544+};
545+
546+/*----------------------------------------------------------------------------
547+| Software IEC/IEEE floating-point exception flags.
548+*----------------------------------------------------------------------------*/
549+/*
550+extern int8 float_exception_flags;
551+enum {
552+ float_flag_inexact = 1,
553+ float_flag_underflow = 2,
554+ float_flag_overflow = 4,
555+ float_flag_divbyzero = 8,
556+ float_flag_invalid = 16
557+};
558+*/
559+
560+extern int8 float_exception_flags;
561+enum {
562+ float_flag_inexact = 16,
563+ float_flag_underflow = 2,
564+ float_flag_overflow = 1,
565+ float_flag_divbyzero = 4,
566+ float_flag_invalid = 8
567+};
568+
569+/*----------------------------------------------------------------------------
570+| Routine to raise any or all of the software IEC/IEEE floating-point
571+| exception flags.
572+*----------------------------------------------------------------------------*/
573+void float_raise( int8 );
574+
575+/*----------------------------------------------------------------------------
576+| Software IEC/IEEE integer-to-floating-point conversion routines.
577+*----------------------------------------------------------------------------*/
578+float32 int32_to_float32( int32 );
579+float64 int32_to_float64( int32 );
580+
581+/*----------------------------------------------------------------------------
582+| Software IEC/IEEE single-precision conversion routines.
583+*----------------------------------------------------------------------------*/
584+int32 float32_to_int32( float32 );
585+int32 float32_to_int32_round_to_zero( float32 );
586+float64 float32_to_float64( float32 );
587+
588+/*----------------------------------------------------------------------------
589+| Software IEC/IEEE single-precision operations.
590+*----------------------------------------------------------------------------*/
591+float32 float32_round_to_int( float32 );
592+float32 float32_add( float32, float32 );
593+float32 float32_sub( float32, float32 );
594+float32 float32_mul( float32, float32 );
595+float32 float32_div( float32, float32 );
596+float32 float32_rem( float32, float32 );
597+float32 float32_sqrt( float32 );
598+flag float32_eq( float32, float32 );
599+flag float32_le( float32, float32 );
600+flag float32_lt( float32, float32 );
601+flag float32_eq_signaling( float32, float32 );
602+flag float32_le_quiet( float32, float32 );
603+flag float32_lt_quiet( float32, float32 );
604+flag float32_is_signaling_nan( float32 );
605+
606+/*----------------------------------------------------------------------------
607+| Software IEC/IEEE double-precision conversion routines.
608+*----------------------------------------------------------------------------*/
609+int32 float64_to_int32( float64 );
610+int32 float64_to_int32_round_to_zero( float64 );
611+float32 float64_to_float32( float64 );
612+
613+/*----------------------------------------------------------------------------
614+| Software IEC/IEEE double-precision operations.
615+*----------------------------------------------------------------------------*/
616+float64 float64_round_to_int( float64 );
617+float64 float64_add( float64, float64 );
618+float64 float64_sub( float64, float64 );
619+float64 float64_mul( float64, float64 );
620+float64 float64_div( float64, float64 );
621+float64 float64_rem( float64, float64 );
622+float64 float64_sqrt( float64 );
623+flag float64_eq( float64, float64 );
624+flag float64_le( float64, float64 );
625+flag float64_lt( float64, float64 );
626+flag float64_eq_signaling( float64, float64 );
627+flag float64_le_quiet( float64, float64 );
628+flag float64_lt_quiet( float64, float64 );
629+flag float64_is_signaling_nan( float64 );
630+
631diff --git a/SoftFloat-2b/softfloat/bits64/powerpc-GCC/Makefile b/SoftFloat-2b/softfloat/bits64/powerpc-GCC/Makefile
632new file mode 100644
633index 0000000..a5e2cc7
634--- /dev/null
635+++ b/SoftFloat-2b/softfloat/bits64/powerpc-GCC/Makefile
636@@ -0,0 +1,24 @@
637+
638+PROCESSOR_H = ../../../processors/powerpc-GCC.h
639+SOFTFLOAT_MACROS = ../softfloat-macros
640+
641+OBJ = .o
642+EXE =
643+INCLUDES = -I. -I..
644+COMPILE_C = $(COMPILE_PREFIX) -mcpu=8548 -mhard-float -mfloat-gprs=double -o $@ $(INCLUDES) -I- -O2
645+LINK = $(COMPILE_PREFIX) -o $@
646+
647+ALL: softfloat$(OBJ) timesoftfloat$(EXE)
648+
649+milieu.h: $(PROCESSOR_H)
650+ touch milieu.h
651+
652+softfloat$(OBJ): milieu.h softfloat.h softfloat-specialize $(SOFTFLOAT_MACROS) ../softfloat.c
653+ $(COMPILE_C) ../softfloat.c
654+
655+timesoftfloat$(OBJ): milieu.h softfloat.h ../timesoftfloat.c
656+ $(COMPILE_C) ../timesoftfloat.c
657+
658+timesoftfloat$(EXE): softfloat$(OBJ) timesoftfloat$(OBJ)
659+ $(LINK) softfloat$(OBJ) timesoftfloat$(OBJ)
660+
661diff --git a/SoftFloat-2b/softfloat/bits64/powerpc-GCC/milieu.h b/SoftFloat-2b/softfloat/bits64/powerpc-GCC/milieu.h
662new file mode 100644
663index 0000000..1b66490
664--- /dev/null
665+++ b/SoftFloat-2b/softfloat/bits64/powerpc-GCC/milieu.h
666@@ -0,0 +1,55 @@
667+/*
668+ * This file is derived from softfloat/bits64/386-Win32-GCC/milieu.h,
669+ * the copyright for that material belongs to the original owners.
670+ *
671+ * Additional material and changes where applicable is:
672+ * Copyright (C) 2008 Freescale Semiconductor, Inc. All rights reserved.
673+ *
674+ * Author: Ebony Zhu, <ebony.zhu@freescale.com>
675+ * Yu Liu, <yu.liu@freescale.com>
676+ */
677+
678+/*============================================================================
679+
680+This C header file is part of the SoftFloat IEC/IEEE Floating-point Arithmetic
681+Package, Release 2b.
682+
683+Written by John R. Hauser. This work was made possible in part by the
684+International Computer Science Institute, located at Suite 600, 1947 Center
685+Street, Berkeley, California 94704. Funding was partially provided by the
686+National Science Foundation under grant MIP-9311980. The original version
687+of this code was written as part of a project to build a fixed-point vector
688+processor in collaboration with the University of California at Berkeley,
689+overseen by Profs. Nelson Morgan and John Wawrzynek. More information
690+is available through the Web page `http://www.cs.berkeley.edu/~jhauser/
691+arithmetic/SoftFloat.html'.
692+
693+THIS SOFTWARE IS DISTRIBUTED AS IS, FOR FREE. Although reasonable effort has
694+been made to avoid it, THIS SOFTWARE MAY CONTAIN FAULTS THAT WILL AT TIMES
695+RESULT IN INCORRECT BEHAVIOR. USE OF THIS SOFTWARE IS RESTRICTED TO PERSONS
696+AND ORGANIZATIONS WHO CAN AND WILL TAKE FULL RESPONSIBILITY FOR ALL LOSSES,
697+COSTS, OR OTHER PROBLEMS THEY INCUR DUE TO THE SOFTWARE, AND WHO FURTHERMORE
698+EFFECTIVELY INDEMNIFY JOHN HAUSER AND THE INTERNATIONAL COMPUTER SCIENCE
699+INSTITUTE (possibly via similar legal warning) AGAINST ALL LOSSES, COSTS, OR
700+OTHER PROBLEMS INCURRED BY THEIR CUSTOMERS AND CLIENTS DUE TO THE SOFTWARE.
701+
702+Derivative works are acceptable, even for commercial purposes, so long as
703+(1) the source code for the derivative work includes prominent notice that
704+the work is derivative, and (2) the source code includes prominent notice with
705+these four paragraphs for those parts of this code that are retained.
706+
707+=============================================================================*/
708+
709+/*----------------------------------------------------------------------------
710+| Include common integer types and flags.
711+*----------------------------------------------------------------------------*/
712+#include "../../../processors/SPARC-GCC.h"
713+
714+/*----------------------------------------------------------------------------
715+| Symbolic Boolean literals.
716+*----------------------------------------------------------------------------*/
717+enum {
718+ FALSE = 0,
719+ TRUE = 1
720+};
721+
722diff --git a/SoftFloat-2b/softfloat/bits64/powerpc-GCC/softfloat-specialize b/SoftFloat-2b/softfloat/bits64/powerpc-GCC/softfloat-specialize
723new file mode 100644
724index 0000000..b1d0bc8
725--- /dev/null
726+++ b/SoftFloat-2b/softfloat/bits64/powerpc-GCC/softfloat-specialize
727@@ -0,0 +1,422 @@
728+/*
729+ * This file is derived from softfloat/bits64/386-Win32-GCC/softfloat-specialize,
730+ * the copyright for that material belongs to the original owners.
731+ *
732+ * Additional material and changes where applicable is:
733+ * Copyright (C) 2008 Freescale Semiconductor, Inc. All rights reserved.
734+ *
735+ * Author: Ebony Zhu, <ebony.zhu@freescale.com>
736+ * Yu Liu, <yu.liu@freescale.com>
737+ */
738+
739+/*============================================================================
740+
741+This C source fragment is part of the SoftFloat IEC/IEEE Floating-point
742+Arithmetic Package, Release 2b.
743+
744+Written by John R. Hauser. This work was made possible in part by the
745+International Computer Science Institute, located at Suite 600, 1947 Center
746+Street, Berkeley, California 94704. Funding was partially provided by the
747+National Science Foundation under grant MIP-9311980. The original version
748+of this code was written as part of a project to build a fixed-point vector
749+processor in collaboration with the University of California at Berkeley,
750+overseen by Profs. Nelson Morgan and John Wawrzynek. More information
751+is available through the Web page `http://www.cs.berkeley.edu/~jhauser/
752+arithmetic/SoftFloat.html'.
753+
754+THIS SOFTWARE IS DISTRIBUTED AS IS, FOR FREE. Although reasonable effort has
755+been made to avoid it, THIS SOFTWARE MAY CONTAIN FAULTS THAT WILL AT TIMES
756+RESULT IN INCORRECT BEHAVIOR. USE OF THIS SOFTWARE IS RESTRICTED TO PERSONS
757+AND ORGANIZATIONS WHO CAN AND WILL TAKE FULL RESPONSIBILITY FOR ALL LOSSES,
758+COSTS, OR OTHER PROBLEMS THEY INCUR DUE TO THE SOFTWARE, AND WHO FURTHERMORE
759+EFFECTIVELY INDEMNIFY JOHN HAUSER AND THE INTERNATIONAL COMPUTER SCIENCE
760+INSTITUTE (possibly via similar legal warning) AGAINST ALL LOSSES, COSTS, OR
761+OTHER PROBLEMS INCURRED BY THEIR CUSTOMERS AND CLIENTS DUE TO THE SOFTWARE.
762+
763+Derivative works are acceptable, even for commercial purposes, so long as
764+(1) the source code for the derivative work includes prominent notice that
765+the work is derivative, and (2) the source code includes prominent notice with
766+these four paragraphs for those parts of this code that are retained.
767+
768+=============================================================================*/
769+
770+/*----------------------------------------------------------------------------
771+| Underflow tininess-detection mode, statically initialized to default value.
772+| (The declaration in `softfloat.h' must match the `int8' type here.)
773+*----------------------------------------------------------------------------*/
774+int8 float_detect_tininess = float_tininess_before_rounding;
775+
776+/*----------------------------------------------------------------------------
777+| Raises the exceptions specified by `flags'. Floating-point traps can be
778+| defined here if desired. It is currently not possible for such a trap
779+| to substitute a result value. If traps are not implemented, this routine
780+| should be simply `float_exception_flags |= flags;'.
781+*----------------------------------------------------------------------------*/
782+
783+void float_raise( int8 flags )
784+{
785+
786+ float_exception_flags |= flags;
787+
788+}
789+
790+/*----------------------------------------------------------------------------
791+| Internal canonical NaN format.
792+*----------------------------------------------------------------------------*/
793+typedef struct {
794+ flag sign;
795+ bits64 high, low;
796+} commonNaNT;
797+
798+/*----------------------------------------------------------------------------
799+| The pattern for a default generated single-precision NaN.
800+*----------------------------------------------------------------------------*/
801+#define float32_default_nan 0x7FFFFFFF
802+
803+/*----------------------------------------------------------------------------
804+| Returns 1 if the single-precision floating-point value `a' is a NaN;
805+| otherwise returns 0.
806+*----------------------------------------------------------------------------*/
807+
808+flag float32_is_nan( float32 a )
809+{
810+
811+ return ( 0xFF000000 < (bits32) ( a<<1 ) );
812+
813+}
814+
815+/*----------------------------------------------------------------------------
816+| Returns 1 if the single-precision floating-point value `a' is a signaling
817+| NaN; otherwise returns 0.
818+*----------------------------------------------------------------------------*/
819+
820+flag float32_is_signaling_nan( float32 a )
821+{
822+
823+ return ( ( ( a>>22 ) & 0x1FF ) == 0x1FE ) && ( a & 0x003FFFFF );
824+
825+}
826+
827+/*----------------------------------------------------------------------------
828+| Returns the result of converting the single-precision floating-point NaN
829+| `a' to the canonical NaN format. If `a' is a signaling NaN, the invalid
830+| exception is raised.
831+*----------------------------------------------------------------------------*/
832+
833+static commonNaNT float32ToCommonNaN( float32 a )
834+{
835+ commonNaNT z;
836+
837+ if ( float32_is_signaling_nan( a ) ) float_raise( float_flag_invalid );
838+ z.sign = a>>31;
839+ z.low = 0;
840+ z.high = ( (bits64) a )<<41;
841+ return z;
842+
843+}
844+
845+/*----------------------------------------------------------------------------
846+| Returns the result of converting the canonical NaN `a' to the single-
847+| precision floating-point format.
848+*----------------------------------------------------------------------------*/
849+
850+static float32 commonNaNToFloat32( commonNaNT a )
851+{
852+
853+ return ( ( (bits32) a.sign )<<31 ) | 0x7FC00000 | ( a.high>>41 );
854+
855+}
856+
857+/*----------------------------------------------------------------------------
858+| Takes two single-precision floating-point values `a' and `b', one of which
859+| is a NaN, and returns the appropriate NaN result. If either `a' or `b' is a
860+| signaling NaN, the invalid exception is raised.
861+*----------------------------------------------------------------------------*/
862+
863+static float32 propagateFloat32NaN( float32 a, float32 b )
864+{
865+ flag aIsNaN, aIsSignalingNaN, bIsNaN, bIsSignalingNaN;
866+
867+ aIsNaN = float32_is_nan( a );
868+ aIsSignalingNaN = float32_is_signaling_nan( a );
869+ bIsNaN = float32_is_nan( b );
870+ bIsSignalingNaN = float32_is_signaling_nan( b );
871+ a |= 0x00400000;
872+ b |= 0x00400000;
873+ if ( aIsSignalingNaN | bIsSignalingNaN ) float_raise( float_flag_invalid );
874+ return bIsSignalingNaN ? b : aIsSignalingNaN ? a : bIsNaN ? b : a;
875+
876+}
877+
878+/*----------------------------------------------------------------------------
879+| The pattern for a default generated double-precision NaN.
880+*----------------------------------------------------------------------------*/
881+#define float64_default_nan LIT64( 0x7FFFFFFFFFFFFFFF )
882+
883+/*----------------------------------------------------------------------------
884+| Returns 1 if the double-precision floating-point value `a' is a NaN;
885+| otherwise returns 0.
886+*----------------------------------------------------------------------------*/
887+
888+flag float64_is_nan( float64 a )
889+{
890+
891+ return ( LIT64( 0xFFE0000000000000 ) < (bits64) ( a<<1 ) );
892+
893+}
894+
895+/*----------------------------------------------------------------------------
896+| Returns 1 if the double-precision floating-point value `a' is a signaling
897+| NaN; otherwise returns 0.
898+*----------------------------------------------------------------------------*/
899+
900+flag float64_is_signaling_nan( float64 a )
901+{
902+
903+ return
904+ ( ( ( a>>51 ) & 0xFFF ) == 0xFFE )
905+ && ( a & LIT64( 0x0007FFFFFFFFFFFF ) );
906+
907+}
908+
909+/*----------------------------------------------------------------------------
910+| Returns the result of converting the double-precision floating-point NaN
911+| `a' to the canonical NaN format. If `a' is a signaling NaN, the invalid
912+| exception is raised.
913+*----------------------------------------------------------------------------*/
914+
915+static commonNaNT float64ToCommonNaN( float64 a )
916+{
917+ commonNaNT z;
918+
919+ if ( float64_is_signaling_nan( a ) ) float_raise( float_flag_invalid );
920+ z.sign = a>>63;
921+ z.low = 0;
922+ z.high = a<<12;
923+ return z;
924+
925+}
926+
927+/*----------------------------------------------------------------------------
928+| Returns the result of converting the canonical NaN `a' to the double-
929+| precision floating-point format.
930+*----------------------------------------------------------------------------*/
931+
932+static float64 commonNaNToFloat64( commonNaNT a )
933+{
934+
935+ return
936+ ( ( (bits64) a.sign )<<63 )
937+ | LIT64( 0x7FF8000000000000 )
938+ | ( a.high>>12 );
939+
940+}
941+
942+/*----------------------------------------------------------------------------
943+| Takes two double-precision floating-point values `a' and `b', one of which
944+| is a NaN, and returns the appropriate NaN result. If either `a' or `b' is a
945+| signaling NaN, the invalid exception is raised.
946+*----------------------------------------------------------------------------*/
947+
948+static float64 propagateFloat64NaN( float64 a, float64 b )
949+{
950+ flag aIsNaN, aIsSignalingNaN, bIsNaN, bIsSignalingNaN;
951+
952+ aIsNaN = float64_is_nan( a );
953+ aIsSignalingNaN = float64_is_signaling_nan( a );
954+ bIsNaN = float64_is_nan( b );
955+ bIsSignalingNaN = float64_is_signaling_nan( b );
956+ a |= LIT64( 0x0008000000000000 );
957+ b |= LIT64( 0x0008000000000000 );
958+ if ( aIsSignalingNaN | bIsSignalingNaN ) float_raise( float_flag_invalid );
959+ return bIsSignalingNaN ? b : aIsSignalingNaN ? a : bIsNaN ? b : a;
960+
961+}
962+
963+#ifdef FLOATX80
964+
965+/*----------------------------------------------------------------------------
966+| The pattern for a default generated extended double-precision NaN. The
967+| `high' and `low' values hold the most- and least-significant bits,
968+| respectively.
969+*----------------------------------------------------------------------------*/
970+#define floatx80_default_nan_high 0x7FFF
971+#define floatx80_default_nan_low LIT64( 0xFFFFFFFFFFFFFFFF )
972+
973+/*----------------------------------------------------------------------------
974+| Returns 1 if the extended double-precision floating-point value `a' is a
975+| NaN; otherwise returns 0.
976+*----------------------------------------------------------------------------*/
977+
978+flag floatx80_is_nan( floatx80 a )
979+{
980+
981+ return ( ( a.high & 0x7FFF ) == 0x7FFF ) && (bits64) ( a.low<<1 );
982+
983+}
984+
985+/*----------------------------------------------------------------------------
986+| Returns 1 if the extended double-precision floating-point value `a' is a
987+| signaling NaN; otherwise returns 0.
988+*----------------------------------------------------------------------------*/
989+
990+flag floatx80_is_signaling_nan( floatx80 a )
991+{
992+ bits64 aLow;
993+
994+ aLow = a.low & ~ LIT64( 0x4000000000000000 );
995+ return
996+ ( ( a.high & 0x7FFF ) == 0x7FFF )
997+ && (bits64) ( aLow<<1 )
998+ && ( a.low == aLow );
999+
1000+}
1001+
1002+/*----------------------------------------------------------------------------
1003+| Returns the result of converting the extended double-precision floating-
1004+| point NaN `a' to the canonical NaN format. If `a' is a signaling NaN, the
1005+| invalid exception is raised.
1006+*----------------------------------------------------------------------------*/
1007+
1008+static commonNaNT floatx80ToCommonNaN( floatx80 a )
1009+{
1010+ commonNaNT z;
1011+
1012+ if ( floatx80_is_signaling_nan( a ) ) float_raise( float_flag_invalid );
1013+ z.sign = a.high>>15;
1014+ z.low = 0;
1015+ z.high = a.low<<1;
1016+ return z;
1017+
1018+}
1019+
1020+/*----------------------------------------------------------------------------
1021+| Returns the result of converting the canonical NaN `a' to the extended
1022+| double-precision floating-point format.
1023+*----------------------------------------------------------------------------*/
1024+
1025+static floatx80 commonNaNToFloatx80( commonNaNT a )
1026+{
1027+ floatx80 z;
1028+
1029+ z.low = LIT64( 0xC000000000000000 ) | ( a.high>>1 );
1030+ z.high = ( ( (bits16) a.sign )<<15 ) | 0x7FFF;
1031+ return z;
1032+
1033+}
1034+
1035+/*----------------------------------------------------------------------------
1036+| Takes two extended double-precision floating-point values `a' and `b', one
1037+| of which is a NaN, and returns the appropriate NaN result. If either `a' or
1038+| `b' is a signaling NaN, the invalid exception is raised.
1039+*----------------------------------------------------------------------------*/
1040+
1041+static floatx80 propagateFloatx80NaN( floatx80 a, floatx80 b )
1042+{
1043+ flag aIsNaN, aIsSignalingNaN, bIsNaN, bIsSignalingNaN;
1044+
1045+ aIsNaN = floatx80_is_nan( a );
1046+ aIsSignalingNaN = floatx80_is_signaling_nan( a );
1047+ bIsNaN = floatx80_is_nan( b );
1048+ bIsSignalingNaN = floatx80_is_signaling_nan( b );
1049+ a.low |= LIT64( 0xC000000000000000 );
1050+ b.low |= LIT64( 0xC000000000000000 );
1051+ if ( aIsSignalingNaN | bIsSignalingNaN ) float_raise( float_flag_invalid );
1052+ return bIsSignalingNaN ? b : aIsSignalingNaN ? a : bIsNaN ? b : a;
1053+
1054+}
1055+
1056+#endif
1057+
1058+#ifdef FLOAT128
1059+
1060+/*----------------------------------------------------------------------------
1061+| The pattern for a default generated quadruple-precision NaN. The `high' and
1062+| `low' values hold the most- and least-significant bits, respectively.
1063+*----------------------------------------------------------------------------*/
1064+#define float128_default_nan_high LIT64( 0x7FFFFFFFFFFFFFFF )
1065+#define float128_default_nan_low LIT64( 0xFFFFFFFFFFFFFFFF )
1066+
1067+/*----------------------------------------------------------------------------
1068+| Returns 1 if the quadruple-precision floating-point value `a' is a NaN;
1069+| otherwise returns 0.
1070+*----------------------------------------------------------------------------*/
1071+
1072+flag float128_is_nan( float128 a )
1073+{
1074+
1075+ return
1076+ ( LIT64( 0xFFFE000000000000 ) <= (bits64) ( a.high<<1 ) )
1077+ && ( a.low || ( a.high & LIT64( 0x0000FFFFFFFFFFFF ) ) );
1078+
1079+}
1080+
1081+/*----------------------------------------------------------------------------
1082+| Returns 1 if the quadruple-precision floating-point value `a' is a
1083+| signaling NaN; otherwise returns 0.
1084+*----------------------------------------------------------------------------*/
1085+
1086+flag float128_is_signaling_nan( float128 a )
1087+{
1088+
1089+ return
1090+ ( ( ( a.high>>47 ) & 0xFFFF ) == 0xFFFE )
1091+ && ( a.low || ( a.high & LIT64( 0x00007FFFFFFFFFFF ) ) );
1092+
1093+}
1094+
1095+/*----------------------------------------------------------------------------
1096+| Returns the result of converting the quadruple-precision floating-point NaN
1097+| `a' to the canonical NaN format. If `a' is a signaling NaN, the invalid
1098+| exception is raised.
1099+*----------------------------------------------------------------------------*/
1100+
1101+static commonNaNT float128ToCommonNaN( float128 a )
1102+{
1103+ commonNaNT z;
1104+
1105+ if ( float128_is_signaling_nan( a ) ) float_raise( float_flag_invalid );
1106+ z.sign = a.high>>63;
1107+ shortShift128Left( a.high, a.low, 16, &z.high, &z.low );
1108+ return z;
1109+
1110+}
1111+
1112+/*----------------------------------------------------------------------------
1113+| Returns the result of converting the canonical NaN `a' to the quadruple-
1114+| precision floating-point format.
1115+*----------------------------------------------------------------------------*/
1116+
1117+static float128 commonNaNToFloat128( commonNaNT a )
1118+{
1119+ float128 z;
1120+
1121+ shift128Right( a.high, a.low, 16, &z.high, &z.low );
1122+ z.high |= ( ( (bits64) a.sign )<<63 ) | LIT64( 0x7FFF800000000000 );
1123+ return z;
1124+
1125+}
1126+
1127+/*----------------------------------------------------------------------------
1128+| Takes two quadruple-precision floating-point values `a' and `b', one of
1129+| which is a NaN, and returns the appropriate NaN result. If either `a' or
1130+| `b' is a signaling NaN, the invalid exception is raised.
1131+*----------------------------------------------------------------------------*/
1132+
1133+static float128 propagateFloat128NaN( float128 a, float128 b )
1134+{
1135+ flag aIsNaN, aIsSignalingNaN, bIsNaN, bIsSignalingNaN;
1136+
1137+ aIsNaN = float128_is_nan( a );
1138+ aIsSignalingNaN = float128_is_signaling_nan( a );
1139+ bIsNaN = float128_is_nan( b );
1140+ bIsSignalingNaN = float128_is_signaling_nan( b );
1141+ a.high |= LIT64( 0x0000800000000000 );
1142+ b.high |= LIT64( 0x0000800000000000 );
1143+ if ( aIsSignalingNaN | bIsSignalingNaN ) float_raise( float_flag_invalid );
1144+ return bIsSignalingNaN ? b : aIsSignalingNaN ? a : bIsNaN ? b : a;
1145+
1146+}
1147+
1148+#endif
1149+
1150diff --git a/SoftFloat-2b/softfloat/bits64/powerpc-GCC/softfloat.h b/SoftFloat-2b/softfloat/bits64/powerpc-GCC/softfloat.h
1151new file mode 100644
1152index 0000000..5b7cb1c
1153--- /dev/null
1154+++ b/SoftFloat-2b/softfloat/bits64/powerpc-GCC/softfloat.h
1155@@ -0,0 +1,269 @@
1156+/*
1157+ * This file is derived from softfloat/bits64/386-Win32-GCC/softfloat.h,
1158+ * the copyright for that material belongs to the original owners.
1159+ *
1160+ * Additional material and changes where applicable is:
1161+ * Copyright (C) 2008 Freescale Semiconductor, Inc. All rights reserved.
1162+ *
1163+ * Author: Ebony Zhu, <ebony.zhu@freescale.com>
1164+ * Yu Liu, <yu.liu@freescale.com>
1165+ */
1166+
1167+/*============================================================================
1168+
1169+This C header file is part of the SoftFloat IEC/IEEE Floating-point Arithmetic
1170+Package, Release 2b.
1171+
1172+Written by John R. Hauser. This work was made possible in part by the
1173+International Computer Science Institute, located at Suite 600, 1947 Center
1174+Street, Berkeley, California 94704. Funding was partially provided by the
1175+National Science Foundation under grant MIP-9311980. The original version
1176+of this code was written as part of a project to build a fixed-point vector
1177+processor in collaboration with the University of California at Berkeley,
1178+overseen by Profs. Nelson Morgan and John Wawrzynek. More information
1179+is available through the Web page `http://www.cs.berkeley.edu/~jhauser/
1180+arithmetic/SoftFloat.html'.
1181+
1182+THIS SOFTWARE IS DISTRIBUTED AS IS, FOR FREE. Although reasonable effort has
1183+been made to avoid it, THIS SOFTWARE MAY CONTAIN FAULTS THAT WILL AT TIMES
1184+RESULT IN INCORRECT BEHAVIOR. USE OF THIS SOFTWARE IS RESTRICTED TO PERSONS
1185+AND ORGANIZATIONS WHO CAN AND WILL TAKE FULL RESPONSIBILITY FOR ALL LOSSES,
1186+COSTS, OR OTHER PROBLEMS THEY INCUR DUE TO THE SOFTWARE, AND WHO FURTHERMORE
1187+EFFECTIVELY INDEMNIFY JOHN HAUSER AND THE INTERNATIONAL COMPUTER SCIENCE
1188+INSTITUTE (possibly via similar legal warning) AGAINST ALL LOSSES, COSTS, OR
1189+OTHER PROBLEMS INCURRED BY THEIR CUSTOMERS AND CLIENTS DUE TO THE SOFTWARE.
1190+
1191+Derivative works are acceptable, even for commercial purposes, so long as
1192+(1) the source code for the derivative work includes prominent notice that
1193+the work is derivative, and (2) the source code includes prominent notice with
1194+these four paragraphs for those parts of this code that are retained.
1195+
1196+=============================================================================*/
1197+
1198+/*----------------------------------------------------------------------------
1199+| The macro `FLOATX80' must be defined to enable the extended double-precision
1200+| floating-point format `floatx80'. If this macro is not defined, the
1201+| `floatx80' type will not be defined, and none of the functions that either
1202+| input or output the `floatx80' type will be defined. The same applies to
1203+| the `FLOAT128' macro and the quadruple-precision format `float128'.
1204+*----------------------------------------------------------------------------*/
1205+#define FLOATX80
1206+#define FLOAT128
1207+
1208+/*----------------------------------------------------------------------------
1209+| Software IEC/IEEE floating-point types.
1210+*----------------------------------------------------------------------------*/
1211+typedef unsigned int float32;
1212+typedef unsigned long long float64;
1213+#ifdef FLOATX80
1214+typedef struct {
1215+ unsigned short high;
1216+ unsigned long long low;
1217+} floatx80;
1218+#endif
1219+#ifdef FLOAT128
1220+typedef struct {
1221+ unsigned long long high, low;
1222+} float128;
1223+#endif
1224+
1225+/*----------------------------------------------------------------------------
1226+| Software IEC/IEEE floating-point underflow tininess-detection mode.
1227+*----------------------------------------------------------------------------*/
1228+extern int float_detect_tininess;
1229+enum {
1230+ float_tininess_after_rounding = 0,
1231+ float_tininess_before_rounding = 1
1232+};
1233+
1234+/*----------------------------------------------------------------------------
1235+| Software IEC/IEEE floating-point rounding mode.
1236+*----------------------------------------------------------------------------*/
1237+extern int float_rounding_mode;
1238+enum {
1239+ float_round_nearest_even = 0,
1240+ float_round_to_zero = 1,
1241+ float_round_up = 2,
1242+ float_round_down = 3
1243+};
1244+
1245+/*----------------------------------------------------------------------------
1246+| Software IEC/IEEE floating-point exception flags.
1247+*----------------------------------------------------------------------------*/
1248+extern int float_exception_flags;
1249+enum {
1250+ float_flag_inexact = 1,
1251+ float_flag_divbyzero = 2,
1252+ float_flag_underflow = 4,
1253+ float_flag_overflow = 8,
1254+ float_flag_invalid = 16
1255+};
1256+
1257+/*----------------------------------------------------------------------------
1258+| Routine to raise any or all of the software IEC/IEEE floating-point
1259+| exception flags.
1260+*----------------------------------------------------------------------------*/
1261+void float_raise( int );
1262+
1263+/*----------------------------------------------------------------------------
1264+| Software IEC/IEEE integer-to-floating-point conversion routines.
1265+*----------------------------------------------------------------------------*/
1266+float32 int32_to_float32( int );
1267+float64 int32_to_float64( int );
1268+#ifdef FLOATX80
1269+floatx80 int32_to_floatx80( int );
1270+#endif
1271+#ifdef FLOAT128
1272+float128 int32_to_float128( int );
1273+#endif
1274+float32 int64_to_float32( long long );
1275+float64 int64_to_float64( long long );
1276+#ifdef FLOATX80
1277+floatx80 int64_to_floatx80( long long );
1278+#endif
1279+#ifdef FLOAT128
1280+float128 int64_to_float128( long long );
1281+#endif
1282+
1283+/*----------------------------------------------------------------------------
1284+| Software IEC/IEEE single-precision conversion routines.
1285+*----------------------------------------------------------------------------*/
1286+int float32_to_int32( float32 );
1287+int float32_to_int32_round_to_zero( float32 );
1288+long long float32_to_int64( float32 );
1289+long long float32_to_int64_round_to_zero( float32 );
1290+float64 float32_to_float64( float32 );
1291+#ifdef FLOATX80
1292+floatx80 float32_to_floatx80( float32 );
1293+#endif
1294+#ifdef FLOAT128
1295+float128 float32_to_float128( float32 );
1296+#endif
1297+
1298+/*----------------------------------------------------------------------------
1299+| Software IEC/IEEE single-precision operations.
1300+*----------------------------------------------------------------------------*/
1301+float32 float32_round_to_int( float32 );
1302+float32 float32_add( float32, float32 );
1303+float32 float32_sub( float32, float32 );
1304+float32 float32_mul( float32, float32 );
1305+float32 float32_div( float32, float32 );
1306+float32 float32_rem( float32, float32 );
1307+float32 float32_sqrt( float32 );
1308+int float32_eq( float32, float32 );
1309+int float32_le( float32, float32 );
1310+int float32_lt( float32, float32 );
1311+int float32_eq_signaling( float32, float32 );
1312+int float32_le_quiet( float32, float32 );
1313+int float32_lt_quiet( float32, float32 );
1314+int float32_is_signaling_nan( float32 );
1315+
1316+/*----------------------------------------------------------------------------
1317+| Software IEC/IEEE double-precision conversion routines.
1318+*----------------------------------------------------------------------------*/
1319+int float64_to_int32( float64 );
1320+int float64_to_int32_round_to_zero( float64 );
1321+long long float64_to_int64( float64 );
1322+long long float64_to_int64_round_to_zero( float64 );
1323+float32 float64_to_float32( float64 );
1324+#ifdef FLOATX80
1325+floatx80 float64_to_floatx80( float64 );
1326+#endif
1327+#ifdef FLOAT128
1328+float128 float64_to_float128( float64 );
1329+#endif
1330+
1331+/*----------------------------------------------------------------------------
1332+| Software IEC/IEEE double-precision operations.
1333+*----------------------------------------------------------------------------*/
1334+float64 float64_round_to_int( float64 );
1335+float64 float64_add( float64, float64 );
1336+float64 float64_sub( float64, float64 );
1337+float64 float64_mul( float64, float64 );
1338+float64 float64_div( float64, float64 );
1339+float64 float64_rem( float64, float64 );
1340+float64 float64_sqrt( float64 );
1341+int float64_eq( float64, float64 );
1342+int float64_le( float64, float64 );
1343+int float64_lt( float64, float64 );
1344+int float64_eq_signaling( float64, float64 );
1345+int float64_le_quiet( float64, float64 );
1346+int float64_lt_quiet( float64, float64 );
1347+int float64_is_signaling_nan( float64 );
1348+
1349+#ifdef FLOATX80
1350+
1351+/*----------------------------------------------------------------------------
1352+| Software IEC/IEEE extended double-precision conversion routines.
1353+*----------------------------------------------------------------------------*/
1354+int floatx80_to_int32( floatx80 );
1355+int floatx80_to_int32_round_to_zero( floatx80 );
1356+long long floatx80_to_int64( floatx80 );
1357+long long floatx80_to_int64_round_to_zero( floatx80 );
1358+float32 floatx80_to_float32( floatx80 );
1359+float64 floatx80_to_float64( floatx80 );
1360+#ifdef FLOAT128
1361+float128 floatx80_to_float128( floatx80 );
1362+#endif
1363+
1364+/*----------------------------------------------------------------------------
1365+| Software IEC/IEEE extended double-precision rounding precision. Valid
1366+| values are 32, 64, and 80.
1367+*----------------------------------------------------------------------------*/
1368+extern int floatx80_rounding_precision;
1369+
1370+/*----------------------------------------------------------------------------
1371+| Software IEC/IEEE extended double-precision operations.
1372+*----------------------------------------------------------------------------*/
1373+floatx80 floatx80_round_to_int( floatx80 );
1374+floatx80 floatx80_add( floatx80, floatx80 );
1375+floatx80 floatx80_sub( floatx80, floatx80 );
1376+floatx80 floatx80_mul( floatx80, floatx80 );
1377+floatx80 floatx80_div( floatx80, floatx80 );
1378+floatx80 floatx80_rem( floatx80, floatx80 );
1379+floatx80 floatx80_sqrt( floatx80 );
1380+int floatx80_eq( floatx80, floatx80 );
1381+int floatx80_le( floatx80, floatx80 );
1382+int floatx80_lt( floatx80, floatx80 );
1383+int floatx80_eq_signaling( floatx80, floatx80 );
1384+int floatx80_le_quiet( floatx80, floatx80 );
1385+int floatx80_lt_quiet( floatx80, floatx80 );
1386+int floatx80_is_signaling_nan( floatx80 );
1387+
1388+#endif
1389+
1390+#ifdef FLOAT128
1391+
1392+/*----------------------------------------------------------------------------
1393+| Software IEC/IEEE quadruple-precision conversion routines.
1394+*----------------------------------------------------------------------------*/
1395+int float128_to_int32( float128 );
1396+int float128_to_int32_round_to_zero( float128 );
1397+long long float128_to_int64( float128 );
1398+long long float128_to_int64_round_to_zero( float128 );
1399+float32 float128_to_float32( float128 );
1400+float64 float128_to_float64( float128 );
1401+#ifdef FLOATX80
1402+floatx80 float128_to_floatx80( float128 );
1403+#endif
1404+
1405+/*----------------------------------------------------------------------------
1406+| Software IEC/IEEE quadruple-precision operations.
1407+*----------------------------------------------------------------------------*/
1408+float128 float128_round_to_int( float128 );
1409+float128 float128_add( float128, float128 );
1410+float128 float128_sub( float128, float128 );
1411+float128 float128_mul( float128, float128 );
1412+float128 float128_div( float128, float128 );
1413+float128 float128_rem( float128, float128 );
1414+float128 float128_sqrt( float128 );
1415+int float128_eq( float128, float128 );
1416+int float128_le( float128, float128 );
1417+int float128_lt( float128, float128 );
1418+int float128_eq_signaling( float128, float128 );
1419+int float128_le_quiet( float128, float128 );
1420+int float128_lt_quiet( float128, float128 );
1421+int float128_is_signaling_nan( float128 );
1422+
1423+#endif
1424+
1425--
14261.5.4
1427
diff --git a/recipes-extended/testfloat/files/TestFloat-powerpc-E500v2-SPE-1.patch b/recipes-extended/testfloat/files/TestFloat-powerpc-E500v2-SPE-1.patch
new file mode 100644
index 0000000..c34421c
--- /dev/null
+++ b/recipes-extended/testfloat/files/TestFloat-powerpc-E500v2-SPE-1.patch
@@ -0,0 +1,1644 @@
1This patch adds PowerPC E500v2 SPE support in TestFloat.
2And it disables the testing for hardware that can not trigger SPE interrupt.
3
4Signed-off-by: Ebony Zhu <ebony.zhu@freescale.com>
5Signed-off-by: Liu Yu <Yu.Liu@freescale.com>
6---
7 processors/POWERPC-gcc.h | 99 +++++
8 testfloat/powerpc-linux-gcc/Makefile | 83 +++++
9 testfloat/powerpc-linux-gcc/milieu.h | 71 ++++
10 testfloat/powerpc-linux-gcc/systflags.c | 107 ++++++
11 testfloat/powerpc-linux-gcc/systfloat.c | 595 +++++++++++++++++++++++++++++++
12 testfloat/powerpc-linux-gcc/systmodes.c | 67 ++++
13 testfloat/templates/Makefile | 18 +-
14 testfloat/templates/milieu.h | 2 +-
15 testfloat/testFunction.h | 2 +-
16 testfloat/testLoops.c | 216 +++++++++++
17 10 files changed, 1252 insertions(+), 8 deletions(-)
18 create mode 100644 processors/POWERPC-gcc.h
19 create mode 100644 testfloat/powerpc-linux-gcc/Makefile
20 create mode 100644 testfloat/powerpc-linux-gcc/milieu.h
21 create mode 100644 testfloat/powerpc-linux-gcc/systflags.c
22 create mode 100644 testfloat/powerpc-linux-gcc/systfloat.c
23 create mode 100644 testfloat/powerpc-linux-gcc/systmodes.c
24
25diff --git a/processors/POWERPC-gcc.h b/processors/POWERPC-gcc.h
26new file mode 100644
27index 0000000..4201faa
28--- /dev/null
29+++ b/processors/POWERPC-gcc.h
30@@ -0,0 +1,99 @@
31+/*
32+ * This file is derived from processors/i386-GCC.h,
33+ * the copyright for that material belongs to the original owners.
34+ *
35+ * Additional material and changes where applicable is:
36+ * Copyright (C) 2008 Freescale Semiconductor, Inc. All rights reserved.
37+ *
38+ * Author: Ebony Zhu, <ebony.zhu@freescale.com>
39+ * Yu Liu, <yu.liu@freescale.com>
40+ *
41+ * THIS SOFTWARE IS DISTRIBUTED AS IS, FOR FREE. Although reasonable effort has
42+ * been made to avoid it, THIS SOFTWARE MAY CONTAIN FAULTS THAT WILL AT TIMES
43+ * RESULT IN INCORRECT BEHAVIOR. USE OF THIS SOFTWARE IS RESTRICTED TO PERSONS
44+ * AND ORGANIZATIONS WHO CAN AND WILL TAKE FULL RESPONSIBILITY FOR ALL LOSSES,
45+ * COSTS, OR OTHER PROBLEMS THEY INCUR DUE TO THE SOFTWARE, AND WHO FURTHERMORE
46+ * EFFECTIVELY INDEMNIFY JOHN HAUSER AND THE INTERNATIONAL COMPUTER SCIENCE
47+ * INSTITUTE (possibly via similar legal warning) AGAINST ALL LOSSES, COSTS, OR
48+ * OTHER PROBLEMS INCURRED BY THEIR CUSTOMERS AND CLIENTS DUE TO THE SOFTWARE.
49+ */
50+
51+/*
52+-------------------------------------------------------------------------------
53+One of the macros `BIGENDIAN' or `LITTLEENDIAN' must be defined.
54+-------------------------------------------------------------------------------
55+*/
56+#define BIGENDIAN
57+
58+/*
59+-------------------------------------------------------------------------------
60+The macro `BITS64' can be defined to indicate that 64-bit integer types are
61+supported by the compiler.
62+-------------------------------------------------------------------------------
63+*/
64+#undef BITS64
65+
66+/*
67+-------------------------------------------------------------------------------
68+Each of the following `typedef's defines the most convenient type that holds
69+integers of at least as many bits as specified. For example, `uint8' should
70+be the most convenient type that can hold unsigned integers of as many as
71+8 bits. The `flag' type must be able to hold either a 0 or 1. For most
72+implementations of C, `flag', `uint8', and `int8' should all be `typedef'ed
73+to the same as `int'.
74+-------------------------------------------------------------------------------
75+*/
76+typedef int flag;
77+typedef int uint8;
78+typedef int int8;
79+typedef int uint16;
80+typedef int int16;
81+typedef unsigned int uint32;
82+typedef signed int int32;
83+#ifdef BITS64
84+typedef unsigned long long int uint64;
85+typedef signed long long int int64;
86+#endif
87+
88+/*
89+-------------------------------------------------------------------------------
90+Each of the following `typedef's defines a type that holds integers
91+of _exactly_ the number of bits specified. For instance, for most
92+implementation of C, `bits16' and `sbits16' should be `typedef'ed to
93+`unsigned short int' and `signed short int' (or `short int'), respectively.
94+-------------------------------------------------------------------------------
95+*/
96+typedef unsigned char bits8;
97+typedef signed char sbits8;
98+typedef unsigned short int bits16;
99+typedef signed short int sbits16;
100+typedef unsigned int bits32;
101+typedef signed int sbits32;
102+#ifdef BITS64
103+typedef unsigned long long int bits64;
104+typedef signed long long int sbits64;
105+#endif
106+
107+#ifdef BITS64
108+/*
109+-------------------------------------------------------------------------------
110+The `LIT64' macro takes as its argument a textual integer literal and
111+if necessary ``marks'' the literal as having a 64-bit integer type.
112+For example, the GNU C Compiler (`gcc') requires that 64-bit literals be
113+appended with the letters `LL' standing for `long long', which is `gcc's
114+name for the 64-bit integer type. Some compilers may allow `LIT64' to be
115+defined as the identity macro: `#define LIT64( a ) a'.
116+-------------------------------------------------------------------------------
117+*/
118+#define LIT64( a ) a##LL
119+#endif
120+
121+/*
122+-------------------------------------------------------------------------------
123+The macro `INLINE' can be used before functions that should be inlined. If
124+a compiler does not support explicit inlining, this macro should be defined
125+to be `static'.
126+-------------------------------------------------------------------------------
127+*/
128+#define INLINE extern inline
129+
130diff --git a/testfloat/powerpc-linux-gcc/Makefile b/testfloat/powerpc-linux-gcc/Makefile
131new file mode 100644
132index 0000000..de50aad
133--- /dev/null
134+++ b/testfloat/powerpc-linux-gcc/Makefile
135@@ -0,0 +1,83 @@
136+
137+PROCESSOR_H = ../../processors/POWERPC-gcc.h
138+SOFTFLOAT_VERSION = bits32
139+TARGET = powerpc-GCC
140+SOFTFLOAT_DIR = ../../SoftFloat-2b/softfloat/$(SOFTFLOAT_VERSION)/$(TARGET)
141+
142+OBJ = .o
143+EXE =
144+INCLUDES = -I. -I.. -I$(SOFTFLOAT_DIR)
145+
146+COMPILE_C = $(COMPILE_PREFIX)gcc -c -o $@ $(INCLUDES) -I- -O $(EXTRA_CFLAGS)
147+
148+COMPILE_C_HARD = $(COMPILE_PREFIX)gcc -c -te500v2 -o $@ $(INCLUDES)
149+
150+COMPILE_SLOWFLOAT_C = $(COMPILE_PREFIX)gcc -c -o $@ $(INCLUDES) -I- -O
151+
152+LINK = $(COMPILE_PREFIX)gcc -lm -o $@
153+
154+SOFTFLOAT_H = $(SOFTFLOAT_DIR)/softfloat.h
155+SOFTFLOAT_OBJ = $(SOFTFLOAT_DIR)/softfloat$(OBJ)
156+
157+ALL: testsoftfloat$(EXE) testfloat$(EXE)
158+
159+systmodes$(OBJ): milieu.h systmodes.c
160+ $(COMPILE_C) systmodes.c
161+
162+systflags$(OBJ): milieu.h ../systflags.h systflags.c
163+ $(COMPILE_C) systflags.c
164+
165+systfloat$(OBJ): milieu.h $(SOFTFLOAT_H) ../systfloat.h systfloat.c
166+ $(COMPILE_C_HARD) systfloat.c
167+
168+#------------------------------------------------------------------------------
169+# Probably O.K. below here.
170+#------------------------------------------------------------------------------
171+
172+milieu.h: $(PROCESSOR_H)
173+ touch milieu.h
174+
175+fail$(OBJ): milieu.h ../fail.h
176+ $(COMPILE_C) ../fail.c
177+
178+random$(OBJ): milieu.h ../random.h
179+ $(COMPILE_C) ../random.c
180+
181+testCases$(OBJ): milieu.h ../fail.h ../random.h $(SOFTFLOAT_H) ../testCases.h ../testCases.c
182+ $(COMPILE_C) ../testCases.c
183+
184+writeHex$(OBJ): milieu.h $(SOFTFLOAT_H) ../writeHex.h ../writeHex.c
185+ $(COMPILE_C) ../writeHex.c
186+
187+testLoops$(OBJ): milieu.h $(SOFTFLOAT_H) ../testCases.h ../writeHex.h ../testLoops.h ../testLoops.c
188+ $(COMPILE_C) ../testLoops.c
189+
190+slowfloat$(OBJ): milieu.h $(SOFTFLOAT_H) ../slowfloat.h ../slowfloat-32.c ../slowfloat-64.c ../slowfloat.c
191+ $(COMPILE_SLOWFLOAT_C) ../slowfloat.c
192+
193+testsoftfloat$(OBJ): milieu.h ../fail.h $(SOFTFLOAT_H) ../testCases.h ../testLoops.h ../slowfloat.h ../testsoftfloat.c
194+ $(COMPILE_C) ../testsoftfloat.c
195+
196+testsoftfloat$(EXE): fail$(OBJ) random$(OBJ) $(SOFTFLOAT_OBJ) testCases$(OBJ) writeHex$(OBJ) testLoops$(OBJ) slowfloat$(OBJ) testsoftfloat$(OBJ) systflags$(OBJ) systmodes$(OBJ)
197+ $(LINK) fail$(OBJ) random$(OBJ) $(SOFTFLOAT_OBJ) testCases$(OBJ) writeHex$(OBJ) testLoops$(OBJ) slowfloat$(OBJ) testsoftfloat$(OBJ) systflags$(OBJ) systmodes$(OBJ)
198+
199+testFunction$(OBJ): milieu.h $(SOFTFLOAT_H) ../testCases.h ../testLoops.h ../systmodes.h ../systflags.h ../systfloat.h ../testFunction.h ../testFunction.c
200+ $(COMPILE_C) ../testFunction.c
201+
202+testfloat$(OBJ): milieu.h ../fail.h $(SOFTFLOAT_H) ../testCases.h ../testLoops.h ../systflags.h ../testFunction.h ../testfloat.c
203+ $(COMPILE_C) ../testfloat.c
204+
205+testfloat$(EXE): fail$(OBJ) random$(OBJ) $(SOFTFLOAT_OBJ) testCases$(OBJ) writeHex$(OBJ) testLoops$(OBJ) systmodes$(OBJ) systflags$(OBJ) systfloat$(OBJ) testFunction$(OBJ) testfloat$(OBJ)
206+ $(LINK) fail$(OBJ) random$(OBJ) $(SOFTFLOAT_OBJ) testCases$(OBJ) writeHex$(OBJ) testLoops$(OBJ) systmodes$(OBJ) systflags$(OBJ) systfloat$(OBJ) testFunction$(OBJ) testfloat$(OBJ)
207+
208+$(SOFTFLOAT_OBJ):
209+ make -C $(SOFTFLOAT_DIR)
210+
211+cp: ALL
212+ cp testsoftfloat$(EXE) ../../test_softfloat$(EXE)
213+ cp testfloat$(EXE) ../../test_float$(EXE)
214+
215+clean:
216+ make -C $(SOFTFLOAT_DIR) clean
217+ rm -f *.o testfloat$(EXE) testsoftfloat$(EXE)
218+ rm -f ../../test_softfloat$(EXE) ../../test_float$(EXE)
219diff --git a/testfloat/powerpc-linux-gcc/milieu.h b/testfloat/powerpc-linux-gcc/milieu.h
220new file mode 100644
221index 0000000..29d2b18
222--- /dev/null
223+++ b/testfloat/powerpc-linux-gcc/milieu.h
224@@ -0,0 +1,71 @@
225+/*
226+ * This file is derived from testfloat/386-Win32-gcc/milieu.h,
227+ * the copyright for that material belongs to the original owners.
228+ *
229+ * Additional material and changes where applicable is:
230+ * Copyright (C) 2008 Freescale Semiconductor, Inc. All rights reserved.
231+ *
232+ * Author: Ebony Zhu, <ebony.zhu@freescale.com>
233+ * Yu Liu, <yu.liu@freescale.com>
234+ */
235+
236+/*
237+===============================================================================
238+
239+This C header file is part of TestFloat, Release 2a, a package of programs
240+for testing the correctness of floating-point arithmetic complying to the
241+IEC/IEEE Standard for Floating-Point.
242+
243+Written by John R. Hauser. More information is available through the Web
244+page `http://HTTP.CS.Berkeley.EDU/~jhauser/arithmetic/TestFloat.html'.
245+
246+THIS SOFTWARE IS DISTRIBUTED AS IS, FOR FREE. Although reasonable effort
247+has been made to avoid it, THIS SOFTWARE MAY CONTAIN FAULTS THAT WILL AT
248+TIMES RESULT IN INCORRECT BEHAVIOR. USE OF THIS SOFTWARE IS RESTRICTED TO
249+PERSONS AND ORGANIZATIONS WHO CAN AND WILL TAKE FULL RESPONSIBILITY FOR ANY
250+AND ALL LOSSES, COSTS, OR OTHER PROBLEMS ARISING FROM ITS USE.
251+
252+Derivative works are acceptable, even for commercial purposes, so long as
253+(1) they include prominent notice that the work is derivative, and (2) they
254+include prominent notice akin to these four paragraphs for those parts of
255+this code that are retained.
256+
257+===============================================================================
258+*/
259+
260+/*
261+-------------------------------------------------------------------------------
262+Include common integer types and flags.
263+-------------------------------------------------------------------------------
264+*/
265+#include "../../processors/POWERPC-gcc.h"
266+/*
267+-------------------------------------------------------------------------------
268+If the `BITS64' macro is defined by the processor header file but the
269+version of SoftFloat being used/tested is the 32-bit one (`bits32'), the
270+`BITS64' macro must be undefined here.
271+-------------------------------------------------------------------------------
272+*/
273+
274+#undef BITS64
275+/*
276+-------------------------------------------------------------------------------
277+The macro `LONG_DOUBLE_IS_FLOATX80' can be defined to indicate that the
278+C compiler supports the type `long double' as an extended double-precision
279+format. Alternatively, the macro `LONG_DOUBLE_IS_FLOAT128' can be defined
280+to indicate that `long double' is a quadruple-precision format. If neither
281+of these macros is defined, `long double' will be ignored.
282+-------------------------------------------------------------------------------
283+#define LONG_DOUBLE_IS_FLOATX80
284+*/
285+
286+/*
287+-------------------------------------------------------------------------------
288+Symbolic Boolean literals.
289+-------------------------------------------------------------------------------
290+*/
291+enum {
292+ FALSE = 0,
293+ TRUE = 1
294+};
295+
296diff --git a/testfloat/powerpc-linux-gcc/systflags.c b/testfloat/powerpc-linux-gcc/systflags.c
297new file mode 100644
298index 0000000..c382442
299--- /dev/null
300+++ b/testfloat/powerpc-linux-gcc/systflags.c
301@@ -0,0 +1,107 @@
302+/*
303+ * This file is derived from testfloat/386-Win32-gcc/systflags.c,
304+ * the copyright for that material belongs to the original owners.
305+ *
306+ * Additional material and changes where applicable is:
307+ * Copyright (C) 2008 Freescale Semiconductor, Inc. All rights reserved.
308+ *
309+ * Author: Ebony Zhu, <ebony.zhu@freescale.com>
310+ * Yu Liu, <yu.liu@freescale.com>
311+ */
312+
313+/*
314+===============================================================================
315+
316+This C source file is part of TestFloat, Release 2a, a package of programs
317+for testing the correctness of floating-point arithmetic complying to the
318+IEC/IEEE Standard for Floating-Point.
319+
320+Written by John R. Hauser. More information is available through the Web
321+page `http://HTTP.CS.Berkeley.EDU/~jhauser/arithmetic/TestFloat.html'.
322+
323+THIS SOFTWARE IS DISTRIBUTED AS IS, FOR FREE. Although reasonable effort
324+has been made to avoid it, THIS SOFTWARE MAY CONTAIN FAULTS THAT WILL AT
325+TIMES RESULT IN INCORRECT BEHAVIOR. USE OF THIS SOFTWARE IS RESTRICTED TO
326+PERSONS AND ORGANIZATIONS WHO CAN AND WILL TAKE FULL RESPONSIBILITY FOR ANY
327+AND ALL LOSSES, COSTS, OR OTHER PROBLEMS ARISING FROM ITS USE.
328+
329+Derivative works are acceptable, even for commercial purposes, so long as
330+(1) they include prominent notice that the work is derivative, and (2) they
331+include prominent notice akin to these four paragraphs for those parts of
332+this code that are retained.
333+
334+===============================================================================
335+*/
336+
337+#include "milieu.h"
338+#include "systflags.h"
339+#include <fenv.h>
340+#include <stdio.h>
341+#include <math.h>
342+#include <bits/nan.h>
343+#include <bits/inf.h>
344+
345+#ifdef __SPE__
346+
347+#include <spe.h>
348+
349+
350+#define SPE_FINV_ENABLE (1UL << 5)
351+#define SPE_FDBZ_ENABLE (1UL << 4)
352+#define SPE_FUNF_ENABLE (1UL << 3)
353+#define SPE_FOVF_ENABLE (1UL << 2)
354+
355+#define SPE_FG (1UL << 13)
356+#define SPE_FX (1UL << 12)
357+#define SPE_FINV (1UL << 11)
358+#define SPE_FDBZ (1UL << 10)
359+#define SPE_FUNF (1UL << 9)
360+#define SPE_FOVF (1UL << 8)
361+
362+#define SPE_FG_H (1UL << 29)
363+#define SPE_FX_H (1UL << 28)
364+#define SPE_FINV_H (1UL << 27)
365+#define SPE_FDBZ_H (1UL << 26)
366+#define SPE_FUNF_H (1UL << 25)
367+#define SPE_FOVF_H (1UL << 24)
368+
369+static int is_soft_emu = 0;
370+
371+#endif
372+/*
373+-------------------------------------------------------------------------------
374+Clears the system's IEC/IEEE floating-point exception flags. Returns the
375+previous value of the flags.
376+-------------------------------------------------------------------------------
377+*/
378+extern int rounding;
379+unsigned int spefscr = 0;
380+
381+int8 syst_float_flags_clear( void )
382+{
383+#ifdef TEST_KERNEL_EMU
384+ if( (spefscr & (SPE_FINV | SPE_FINV_H))
385+ || (spefscr & (SPE_FDBZ | SPE_FDBZ_H))
386+ || (spefscr & (SPE_FUNF | SPE_FUNF_H))
387+ || (spefscr & (SPE_FOVF | SPE_FOVF_H))
388+ || (spefscr & (SPE_FX | SPE_FG | SPE_FX_H | SPE_FG_H))){
389+ is_soft_emu = 1;
390+ } else {
391+ is_soft_emu = 0;
392+ }
393+#endif
394+ __builtin_spe_mtspefscr(0x3c|(rounding & 0x3));
395+
396+ return ((spefscr>>17) & 0x1f);
397+}
398+
399+int syst_float_is_soft_emu(void)
400+{
401+ int ret = 0;
402+#ifdef TEST_KERNEL_EMU
403+ ret = is_soft_emu;
404+#endif
405+ return ret;
406+}
407+
408+
409diff --git a/testfloat/powerpc-linux-gcc/systfloat.c b/testfloat/powerpc-linux-gcc/systfloat.c
410new file mode 100644
411index 0000000..8d06f9f
412--- /dev/null
413+++ b/testfloat/powerpc-linux-gcc/systfloat.c
414@@ -0,0 +1,595 @@
415+/*
416+ * This file is derived from testfloat/systfloat.c,
417+ * the copyright for that material belongs to the original owners.
418+ *
419+ * Additional material and changes where applicable is:
420+ * Copyright (C) 2008 Freescale Semiconductor, Inc. All rights reserved.
421+ *
422+ * Author: Ebony Zhu, <ebony.zhu@freescale.com>
423+ * Yu Liu, <yu.liu@freescale.com>
424+ */
425+
426+/*
427+===============================================================================
428+
429+This C source file is part of TestFloat, Release 2a, a package of programs
430+for testing the correctness of floating-point arithmetic complying to the
431+IEC/IEEE Standard for Floating-Point.
432+
433+Written by John R. Hauser. More information is available through the Web
434+page `http://HTTP.CS.Berkeley.EDU/~jhauser/arithmetic/TestFloat.html'.
435+
436+THIS SOFTWARE IS DISTRIBUTED AS IS, FOR FREE. Although reasonable effort
437+has been made to avoid it, THIS SOFTWARE MAY CONTAIN FAULTS THAT WILL AT
438+TIMES RESULT IN INCORRECT BEHAVIOR. USE OF THIS SOFTWARE IS RESTRICTED TO
439+PERSONS AND ORGANIZATIONS WHO CAN AND WILL TAKE FULL RESPONSIBILITY FOR ANY
440+AND ALL LOSSES, COSTS, OR OTHER PROBLEMS ARISING FROM ITS USE.
441+
442+Derivative works are acceptable, even for commercial purposes, so long as
443+(1) they include prominent notice that the work is derivative, and (2) they
444+include prominent notice akin to these four paragraphs for those parts of
445+this code that are retained.
446+
447+===============================================================================
448+*/
449+
450+#include <math.h>
451+#include "milieu.h"
452+#include "softfloat.h"
453+#include "systfloat.h"
454+
455+extern unsigned int spefscr;
456+
457+float32 syst_int32_to_float32( int32 a )
458+{
459+ float32 z;
460+
461+ *( (float *) &z ) = a;
462+ spefscr = __builtin_spe_mfspefscr();
463+ return z;
464+
465+}
466+
467+float64 syst_int32_to_float64( int32 a )
468+{
469+ float64 z;
470+
471+ *( (double *) &z ) = a;
472+ spefscr = __builtin_spe_mfspefscr();
473+ return z;
474+
475+}
476+
477+#if defined( FLOATX80 ) && defined( LONG_DOUBLE_IS_FLOATX80 )
478+
479+floatx80 syst_int32_to_floatx80( int32 a )
480+{
481+ floatx80 z;
482+
483+ *( (long double *) &z ) = a;
484+ return z;
485+
486+}
487+
488+#endif
489+
490+#if defined( FLOAT128 ) && defined( LONG_DOUBLE_IS_FLOAT128 )
491+
492+float128 syst_int32_to_float128( int32 a )
493+{
494+ float128 z;
495+
496+ *( (long double *) &z ) = a;
497+ return z;
498+
499+}
500+
501+#endif
502+
503+#ifdef BITS64
504+
505+float32 syst_int64_to_float32( int64 a )
506+{
507+ float32 z;
508+
509+ *( (float *) &z ) = a;
510+ spefscr = __builtin_spe_mfspefscr();
511+ return z;
512+
513+}
514+
515+float64 syst_int64_to_float64( int64 a )
516+{
517+ float64 z;
518+
519+ *( (double *) &z ) = a;
520+ spefscr = __builtin_spe_mfspefscr();
521+ return z;
522+
523+}
524+
525+#if defined( FLOATX80 ) && defined( LONG_DOUBLE_IS_FLOATX80 )
526+
527+floatx80 syst_int64_to_floatx80( int64 a )
528+{
529+ floatx80 z;
530+
531+ *( (long double *) &z ) = a;
532+ return z;
533+
534+}
535+
536+#endif
537+
538+#if defined( FLOAT128 ) && defined( LONG_DOUBLE_IS_FLOAT128 )
539+
540+float128 syst_int64_to_float128( int64 a )
541+{
542+ float128 z;
543+
544+ *( (long double *) &z ) = a;
545+ return z;
546+
547+}
548+
549+#endif
550+
551+#endif
552+
553+int32 syst_float32_to_int32_round_to_zero( float32 a )
554+{
555+ int32 z = *( (float *) &a );
556+ spefscr = __builtin_spe_mfspefscr();
557+
558+ return z;
559+
560+}
561+
562+#ifdef BITS64
563+
564+int64 syst_float32_to_int64_round_to_zero( float32 a )
565+{
566+ int64 z = *( (float *) &a );
567+ spefscr = __builtin_spe_mfspefscr();
568+ return z;
569+
570+}
571+
572+#endif
573+
574+float64 syst_float32_to_float64( float32 a )
575+{
576+ float64 z;
577+
578+ *( (double *) &z ) = *( (float *) &a );
579+ spefscr = __builtin_spe_mfspefscr();
580+ return z;
581+
582+}
583+
584+#if defined( FLOATX80 ) && defined( LONG_DOUBLE_IS_FLOATX80 )
585+
586+floatx80 syst_float32_to_floatx80( float32 a )
587+{
588+ floatx80 z;
589+
590+ *( (long double *) &z ) = *( (float *) &a );
591+ return z;
592+
593+}
594+
595+#endif
596+
597+#if defined( FLOAT128 ) && defined( LONG_DOUBLE_IS_FLOAT128 )
598+
599+float128 syst_float32_to_float128( float32 a )
600+{
601+ float128 z;
602+
603+ *( (long double *) &z ) = *( (float *) &a );
604+ return z;
605+
606+}
607+
608+#endif
609+
610+float32 syst_float32_add( float32 a, float32 b )
611+{
612+ float32 z;
613+
614+ *( (float *) &z ) = *( (float *) &a ) + *( (float *) &b );
615+ spefscr = __builtin_spe_mfspefscr();
616+ return z;
617+
618+}
619+
620+float32 syst_float32_sub( float32 a, float32 b )
621+{
622+ float32 z;
623+
624+ *( (float *) &z ) = *( (float *) &a ) - *( (float *) &b );
625+ spefscr = __builtin_spe_mfspefscr();
626+ return z;
627+
628+}
629+
630+float32 syst_float32_mul( float32 a, float32 b )
631+{
632+ float32 z;
633+
634+ *( (float *) &z ) = *( (float *) &a ) * *( (float *) &b );
635+ spefscr = __builtin_spe_mfspefscr();
636+ return z;
637+
638+}
639+
640+float32 syst_float32_div( float32 a, float32 b )
641+{
642+ float32 z;
643+
644+ *( (float *) &z ) = *( (float *) &a ) / *( (float *) &b );
645+ spefscr = __builtin_spe_mfspefscr();
646+ return z;
647+
648+}
649+
650+flag syst_float32_eq( float32 a, float32 b )
651+{
652+ flag f = ( *( (float *) &a ) == *( (float *) &b ) );
653+ spefscr = __builtin_spe_mfspefscr();
654+ return f;
655+
656+}
657+
658+flag syst_float32_le( float32 a, float32 b )
659+{
660+ flag f = ( *( (float *) &a ) <= *( (float *) &b ) );
661+ spefscr = __builtin_spe_mfspefscr();
662+ return f;
663+
664+}
665+
666+flag syst_float32_lt( float32 a, float32 b )
667+{
668+ flag f = ( *( (float *) &a ) < *( (float *) &b ) );
669+ spefscr = __builtin_spe_mfspefscr();
670+ return f;
671+
672+}
673+
674+int32 syst_float64_to_int32_round_to_zero( float64 a )
675+{
676+ int32 z = *( (double *) &a );
677+ spefscr = __builtin_spe_mfspefscr();
678+ return z;
679+
680+}
681+
682+#ifdef BITS64
683+
684+int64 syst_float64_to_int64_round_to_zero( float64 a )
685+{
686+ int64 z = *( (double *) &a );
687+ spefscr = __builtin_spe_mfspefscr();
688+ return z;
689+
690+}
691+
692+#endif
693+
694+float32 syst_float64_to_float32( float64 a )
695+{
696+ float32 z;
697+
698+ *( (float *) &z ) = *( (double *) &a );
699+ spefscr = __builtin_spe_mfspefscr();
700+ return z;
701+
702+}
703+
704+#if defined( FLOATX80 ) && defined( LONG_DOUBLE_IS_FLOATX80 )
705+
706+floatx80 syst_float64_to_floatx80( float64 a )
707+{
708+ floatx80 z;
709+
710+ *( (long double *) &z ) = *( (double *) &a );
711+ return z;
712+
713+}
714+
715+#endif
716+
717+#if defined( FLOAT128 ) && defined( LONG_DOUBLE_IS_FLOAT128 )
718+
719+float128 syst_float64_to_float128( float64 a )
720+{
721+ float128 z;
722+
723+ *( (long double *) &z ) = *( (double *) &a );
724+ return z;
725+
726+}
727+
728+#endif
729+
730+float64 syst_float64_add( float64 a, float64 b )
731+{
732+ float64 z;
733+
734+ *( (double *) &z ) = *( (double *) &a ) + *( (double *) &b );
735+ spefscr = __builtin_spe_mfspefscr();
736+ return z;
737+
738+}
739+
740+float64 syst_float64_sub( float64 a, float64 b )
741+{
742+ float64 z;
743+
744+ *( (double *) &z ) = *( (double *) &a ) - *( (double *) &b );
745+ spefscr = __builtin_spe_mfspefscr();
746+ return z;
747+
748+}
749+
750+float64 syst_float64_mul( float64 a, float64 b )
751+{
752+ float64 z;
753+
754+ *( (double *) &z ) = *( (double *) &a ) * *( (double *) &b );
755+ spefscr = __builtin_spe_mfspefscr();
756+ return z;
757+
758+}
759+
760+float64 syst_float64_div( float64 a, float64 b )
761+{
762+ float64 z;
763+
764+ *( (double *) &z ) = *( (double *) &a ) / *( (double *) &b );
765+ spefscr = __builtin_spe_mfspefscr();
766+ return z;
767+
768+}
769+
770+float64 syst_float64_sqrt( float64 a )
771+{
772+ /* Ebony
773+ float64 z;
774+
775+ *( (double *) &z ) = sqrt( *( (double *) &a ) );
776+ spefscr = __builtin_spe_mfspefscr();
777+ return z;
778+ */
779+
780+}
781+
782+flag syst_float64_eq( float64 a, float64 b )
783+{
784+ flag f = ( *( (double *) &a ) == *( (double *) &b ) );
785+ spefscr = __builtin_spe_mfspefscr();
786+ return f;
787+
788+}
789+
790+flag syst_float64_le( float64 a, float64 b )
791+{
792+ flag f = ( *( (double *) &a ) <= *( (double *) &b ) );
793+ spefscr = __builtin_spe_mfspefscr();
794+ return f;
795+
796+}
797+
798+flag syst_float64_lt( float64 a, float64 b )
799+{
800+ flag f = ( *( (double *) &a ) < *( (double *) &b ) );
801+ spefscr = __builtin_spe_mfspefscr();
802+ return f;
803+
804+}
805+
806+#if defined( FLOATX80 ) && defined( LONG_DOUBLE_IS_FLOATX80 )
807+
808+int32 syst_floatx80_to_int32_round_to_zero( floatx80 a )
809+{
810+
811+ return *( (long double *) &a );
812+
813+}
814+
815+#ifdef BITS64
816+
817+int64 syst_floatx80_to_int64_round_to_zero( floatx80 a )
818+{
819+
820+ return *( (long double *) &a );
821+
822+}
823+
824+#endif
825+
826+float32 syst_floatx80_to_float32( floatx80 a )
827+{
828+ float32 z;
829+
830+ *( (float *) &z ) = *( (long double *) &a );
831+ return z;
832+
833+}
834+
835+float64 syst_floatx80_to_float64( floatx80 a )
836+{
837+ float64 z;
838+
839+ *( (double *) &z ) = *( (long double *) &a );
840+ return z;
841+
842+}
843+
844+floatx80 syst_floatx80_add( floatx80 a, floatx80 b )
845+{
846+ floatx80 z;
847+
848+ *( (long double *) &z ) =
849+ *( (long double *) &a ) + *( (long double *) &b );
850+ return z;
851+
852+}
853+
854+floatx80 syst_floatx80_sub( floatx80 a, floatx80 b )
855+{
856+ floatx80 z;
857+
858+ *( (long double *) &z ) =
859+ *( (long double *) &a ) - *( (long double *) &b );
860+ return z;
861+
862+}
863+
864+floatx80 syst_floatx80_mul( floatx80 a, floatx80 b )
865+{
866+ floatx80 z;
867+
868+ *( (long double *) &z ) =
869+ *( (long double *) &a ) * *( (long double *) &b );
870+ return z;
871+
872+}
873+
874+floatx80 syst_floatx80_div( floatx80 a, floatx80 b )
875+{
876+ floatx80 z;
877+
878+ *( (long double *) &z ) =
879+ *( (long double *) &a ) / *( (long double *) &b );
880+ spefscr = __builtin_spe_mfspefscr();
881+ return z;
882+
883+}
884+
885+flag syst_floatx80_eq( floatx80 a, floatx80 b )
886+{
887+
888+ return ( *( (long double *) &a ) == *( (long double *) &b ) );
889+
890+}
891+
892+flag syst_floatx80_le( floatx80 a, floatx80 b )
893+{
894+
895+ return ( *( (long double *) &a ) <= *( (long double *) &b ) );
896+
897+}
898+
899+flag syst_floatx80_lt( floatx80 a, floatx80 b )
900+{
901+
902+ return ( *( (long double *) &a ) < *( (long double *) &b ) );
903+
904+}
905+
906+#endif
907+
908+#if defined( FLOAT128 ) && defined( LONG_DOUBLE_IS_FLOAT128 )
909+
910+int32 syst_float128_to_int32_round_to_zero( float128 a )
911+{
912+
913+ return *( (long double *) &a );
914+
915+}
916+
917+#ifdef BITS64
918+
919+int64 syst_float128_to_int64_round_to_zero( float128 a )
920+{
921+
922+ return *( (long double *) &a );
923+
924+}
925+
926+#endif
927+
928+float32 syst_float128_to_float32( float128 a )
929+{
930+ float32 z;
931+
932+ *( (float *) &z ) = *( (long double *) &a );
933+ return z;
934+
935+}
936+
937+float64 syst_float128_to_float64( float128 a )
938+{
939+ float64 z;
940+
941+ *( (double *) &z ) = *( (long double *) &a );
942+ return z;
943+
944+}
945+
946+float128 syst_float128_add( float128 a, float128 b )
947+{
948+ float128 z;
949+
950+ *( (long double *) &z ) =
951+ *( (long double *) &a ) + *( (long double *) &b );
952+ return z;
953+
954+}
955+
956+float128 syst_float128_sub( float128 a, float128 b )
957+{
958+ float128 z;
959+
960+ *( (long double *) &z ) =
961+ *( (long double *) &a ) - *( (long double *) &b );
962+ return z;
963+
964+}
965+
966+float128 syst_float128_mul( float128 a, float128 b )
967+{
968+ float128 z;
969+
970+ *( (long double *) &z ) =
971+ *( (long double *) &a ) * *( (long double *) &b );
972+ return z;
973+
974+}
975+
976+float128 syst_float128_div( float128 a, float128 b )
977+{
978+ float128 z;
979+
980+ *( (long double *) &z ) =
981+ *( (long double *) &a ) / *( (long double *) &b );
982+ spefscr = __builtin_spe_mfspefscr();
983+ return z;
984+
985+}
986+
987+flag syst_float128_eq( float128 a, float128 b )
988+{
989+
990+ return ( *( (long double *) &a ) == *( (long double *) &b ) );
991+
992+}
993+
994+flag syst_float128_le( float128 a, float128 b )
995+{
996+
997+ return ( *( (long double *) &a ) <= *( (long double *) &b ) );
998+
999+}
1000+
1001+flag syst_float128_lt( float128 a, float128 b )
1002+{
1003+
1004+ return ( *( (long double *) &a ) < *( (long double *) &b ) );
1005+
1006+}
1007+
1008+#endif
1009+
1010diff --git a/testfloat/powerpc-linux-gcc/systmodes.c b/testfloat/powerpc-linux-gcc/systmodes.c
1011new file mode 100644
1012index 0000000..143cdea
1013--- /dev/null
1014+++ b/testfloat/powerpc-linux-gcc/systmodes.c
1015@@ -0,0 +1,67 @@
1016+/*
1017+ * This file is derived from testfloat/386-Win32-gcc/systmodes.S,
1018+ * the copyright for that material belongs to the original owners.
1019+ *
1020+ * Additional material and changes where applicable is:
1021+ * Copyright (C) 2008 Freescale Semiconductor, Inc. All rights reserved.
1022+ *
1023+ * Author: Ebony Zhu, <ebony.zhu@freescale.com>
1024+ * Yu Liu, <yu.liu@freescale.com>
1025+ */
1026+
1027+/*
1028+===============================================================================
1029+
1030+This C source file is part of TestFloat, Release 2a, a package of programs
1031+for testing the correctness of floating-point arithmetic complying to the
1032+IEC/IEEE Standard for Floating-Point.
1033+
1034+Written by John R. Hauser. More information is available through the Web
1035+page `http://HTTP.CS.Berkeley.EDU/~jhauser/arithmetic/TestFloat.html'.
1036+
1037+THIS SOFTWARE IS DISTRIBUTED AS IS, FOR FREE. Although reasonable effort
1038+has been made to avoid it, THIS SOFTWARE MAY CONTAIN FAULTS THAT WILL AT
1039+TIMES RESULT IN INCORRECT BEHAVIOR. USE OF THIS SOFTWARE IS RESTRICTED TO
1040+PERSONS AND ORGANIZATIONS WHO CAN AND WILL TAKE FULL RESPONSIBILITY FOR ANY
1041+AND ALL LOSSES, COSTS, OR OTHER PROBLEMS ARISING FROM ITS USE.
1042+
1043+Derivative works are acceptable, even for commercial purposes, so long as
1044+(1) they include prominent notice that the work is derivative, and (2) they
1045+include prominent notice akin to these four paragraphs for those parts of
1046+this code that are retained.
1047+
1048+===============================================================================
1049+*/
1050+
1051+#include <fenv.h>
1052+#include "milieu.h"
1053+#include "systmodes.h"
1054+/*
1055+-------------------------------------------------------------------------------
1056+Sets the system's IEC/IEEE floating-point rounding mode. Also disables all
1057+system exception traps.
1058+-------------------------------------------------------------------------------
1059+*/
1060+int rounding;
1061+
1062+void syst_float_set_rounding_mode( int8 roundingMode )
1063+{
1064+ (void) fesetround ( roundingMode );
1065+ rounding = roundingMode;
1066+}
1067+
1068+/*
1069+-------------------------------------------------------------------------------
1070+Sets the rounding precision of subsequent extended double-precision
1071+operations. The `precision' argument should be one of 0, 32, 64, or 80.
1072+If `precision' is 32, the rounding precision is set equivalent to single
1073+precision; else if `precision' is 64, the rounding precision is set
1074+equivalent to double precision; else the rounding precision is set to full
1075+extended double precision.
1076+-------------------------------------------------------------------------------
1077+*/
1078+void syst_float_set_rounding_precision( int8 precision )
1079+{
1080+
1081+}
1082+
1083diff --git a/testfloat/templates/Makefile b/testfloat/templates/Makefile
1084index f5f3cde..18cffe0 100644
1085--- a/testfloat/templates/Makefile
1086+++ b/testfloat/templates/Makefile
1087@@ -1,15 +1,21 @@
1088
1089-PROCESSOR_H = ../../processors/!!!processor.h
1090+#PROCESSOR_H = ../../processors/!!!processor.h
1091+PROCESSOR_H = ../../processors/POWERPC-gcc.h
1092 SOFTFLOAT_VERSION = bits64
1093-TARGET = !!!target
1094-SOFTFLOAT_DIR = ../../softfloat/$(SOFTFLOAT_VERSION)/$(TARGET)
1095+
1096+#TARGET = !!!target
1097+TARGET = powerpc-GCC
1098+SOFTFLOAT_DIR = ../../../SoftFloat-2b/softfloat/$(SOFTFLOAT_VERSION)/$(TARGET)
1099
1100 OBJ = .o
1101 EXE =
1102 INCLUDES = -I. -I.. -I$(SOFTFLOAT_DIR)
1103-COMPILE_C = gcc -c -o $@ $(INCLUDES) -I- -O2
1104-COMPILE_SLOWFLOAT_C = gcc -c -o $@ $(INCLUDES) -I- -O3
1105-LINK = gcc -o $@
1106+#COMPILE_C = gcc -c -o $@ $(INCLUDES) -I- -O2
1107+#COMPILE_SLOWFLOAT_C = gcc -c -o $@ $(INCLUDES) -I- -O3
1108+#LINK = gcc -o $@
1109+COMPILE_C = /opt/mtwk/usr/local/gcc-3_4-e500-glibc-2.3.4-dp/powerpc-linux-gnuspe/bin/powerpc-linux-gnuspe-gcc -c -o $@ $(INCLUDES) -I- -O2
1110+COMPILE_SLOWFLOAT_C = /opt/mtwk/usr/local/gcc-3_4-e500-glibc-2.3.4-dp/powerpc-linux-gnuspe/bin/powerpc-linux-gnuspe-gcc -c -o $@ $(INCLUDES) -I- -O3
1111+LINK = /opt/mtwk/usr/local/gcc-3_4-e500-glibc-2.3.4-dp/powerpc-linux-gnuspe/bin/powerpc-linux-gnuspe-gcc -o $@
1112
1113 SOFTFLOAT_H = $(SOFTFLOAT_DIR)/softfloat.h
1114 SOFTFLOAT_OBJ = $(SOFTFLOAT_DIR)/softfloat$(OBJ)
1115diff --git a/testfloat/templates/milieu.h b/testfloat/templates/milieu.h
1116index 56d3ac4..3214ca8 100644
1117--- a/testfloat/templates/milieu.h
1118+++ b/testfloat/templates/milieu.h
1119@@ -28,7 +28,7 @@ this code that are retained.
1120 Include common integer types and flags.
1121 -------------------------------------------------------------------------------
1122 */
1123-#include "../../processors/!!!processor.h"
1124+#include "../../processors/SPARC-gcc.h"
1125
1126 /*
1127 -------------------------------------------------------------------------------
1128diff --git a/testfloat/testFunction.h b/testfloat/testFunction.h
1129index 04bf856..00139a7 100644
1130--- a/testfloat/testFunction.h
1131+++ b/testfloat/testFunction.h
1132@@ -126,8 +126,8 @@ extern const flag functionExists[ NUM_FUNCTIONS ];
1133 enum {
1134 ROUND_NEAREST_EVEN = 1,
1135 ROUND_TO_ZERO,
1136- ROUND_DOWN,
1137 ROUND_UP,
1138+ ROUND_DOWN,
1139 NUM_ROUNDINGMODES
1140 };
1141
1142diff --git a/testfloat/testLoops.c b/testfloat/testLoops.c
1143index 8ba92f3..ba05548 100644
1144--- a/testfloat/testLoops.c
1145+++ b/testfloat/testLoops.c
1146@@ -488,6 +488,11 @@ void
1147 (void) testFlagsFunctionPtr();
1148 testZ = testFunction( testCases_a_int32 );
1149 testFlags = testFlagsFunctionPtr();
1150+#ifdef TEST_KERNEL_EMU
1151+ if (! syst_float_is_soft_emu()){
1152+ continue;
1153+ }
1154+#endif
1155 --count;
1156 if ( count == 0 ) {
1157 checkEarlyExit();
1158@@ -539,6 +544,11 @@ void
1159 (void) testFlagsFunctionPtr();
1160 testZ = testFunction( testCases_a_int32 );
1161 testFlags = testFlagsFunctionPtr();
1162+#ifdef TEST_KERNEL_EMU
1163+ if (! syst_float_is_soft_emu()){
1164+ continue;
1165+ }
1166+#endif
1167 --count;
1168 if ( count == 0 ) {
1169 checkEarlyExit();
1170@@ -592,6 +602,11 @@ void
1171 (void) testFlagsFunctionPtr();
1172 testZ = testFunction( testCases_a_int32 );
1173 testFlags = testFlagsFunctionPtr();
1174+#ifdef TEST_KERNEL_EMU
1175+ if (! syst_float_is_soft_emu()){
1176+ continue;
1177+ }
1178+#endif
1179 --count;
1180 if ( count == 0 ) {
1181 checkEarlyExit();
1182@@ -647,6 +662,11 @@ void
1183 (void) testFlagsFunctionPtr();
1184 testZ = testFunction( testCases_a_int32 );
1185 testFlags = testFlagsFunctionPtr();
1186+#ifdef TEST_KERNEL_EMU
1187+ if (! syst_float_is_soft_emu()){
1188+ continue;
1189+ }
1190+#endif
1191 --count;
1192 if ( count == 0 ) {
1193 checkEarlyExit();
1194@@ -702,6 +722,11 @@ void
1195 (void) testFlagsFunctionPtr();
1196 testZ = testFunction( testCases_a_int64 );
1197 testFlags = testFlagsFunctionPtr();
1198+#ifdef TEST_KERNEL_EMU
1199+ if (! syst_float_is_soft_emu()){
1200+ continue;
1201+ }
1202+#endif
1203 --count;
1204 if ( count == 0 ) {
1205 checkEarlyExit();
1206@@ -753,6 +778,11 @@ void
1207 (void) testFlagsFunctionPtr();
1208 testZ = testFunction( testCases_a_int64 );
1209 testFlags = testFlagsFunctionPtr();
1210+#ifdef TEST_KERNEL_EMU
1211+ if (! syst_float_is_soft_emu()){
1212+ continue;
1213+ }
1214+#endif
1215 --count;
1216 if ( count == 0 ) {
1217 checkEarlyExit();
1218@@ -806,6 +836,11 @@ void
1219 (void) testFlagsFunctionPtr();
1220 testZ = testFunction( testCases_a_int64 );
1221 testFlags = testFlagsFunctionPtr();
1222+#ifdef TEST_KERNEL_EMU
1223+ if (! syst_float_is_soft_emu()){
1224+ continue;
1225+ }
1226+#endif
1227 --count;
1228 if ( count == 0 ) {
1229 checkEarlyExit();
1230@@ -861,6 +896,11 @@ void
1231 (void) testFlagsFunctionPtr();
1232 testZ = testFunction( testCases_a_int64 );
1233 testFlags = testFlagsFunctionPtr();
1234+#ifdef TEST_KERNEL_EMU
1235+ if (! syst_float_is_soft_emu()){
1236+ continue;
1237+ }
1238+#endif
1239 --count;
1240 if ( count == 0 ) {
1241 checkEarlyExit();
1242@@ -916,6 +956,11 @@ void
1243 (void) testFlagsFunctionPtr();
1244 testZ = testFunction( testCases_a_float32 );
1245 testFlags = testFlagsFunctionPtr();
1246+#ifdef TEST_KERNEL_EMU
1247+ if (! syst_float_is_soft_emu()){
1248+ continue;
1249+ }
1250+#endif
1251 --count;
1252 if ( count == 0 ) {
1253 checkEarlyExit();
1254@@ -973,6 +1018,11 @@ void
1255 (void) testFlagsFunctionPtr();
1256 testZ = testFunction( testCases_a_float32 );
1257 testFlags = testFlagsFunctionPtr();
1258+#ifdef TEST_KERNEL_EMU
1259+ if (! syst_float_is_soft_emu()){
1260+ continue;
1261+ }
1262+#endif
1263 --count;
1264 if ( count == 0 ) {
1265 checkEarlyExit();
1266@@ -1030,6 +1080,11 @@ void
1267 (void) testFlagsFunctionPtr();
1268 testZ = testFunction( testCases_a_float32 );
1269 testFlags = testFlagsFunctionPtr();
1270+#ifdef TEST_KERNEL_EMU
1271+ if (! syst_float_is_soft_emu()){
1272+ continue;
1273+ }
1274+#endif
1275 --count;
1276 if ( count == 0 ) {
1277 checkEarlyExit();
1278@@ -1087,6 +1142,11 @@ void
1279 (void) testFlagsFunctionPtr();
1280 testZ = testFunction( testCases_a_float32 );
1281 testFlags = testFlagsFunctionPtr();
1282+#ifdef TEST_KERNEL_EMU
1283+ if (! syst_float_is_soft_emu()){
1284+ continue;
1285+ }
1286+#endif
1287 --count;
1288 if ( count == 0 ) {
1289 checkEarlyExit();
1290@@ -1146,6 +1206,11 @@ void
1291 (void) testFlagsFunctionPtr();
1292 testZ = testFunction( testCases_a_float32 );
1293 testFlags = testFlagsFunctionPtr();
1294+#ifdef TEST_KERNEL_EMU
1295+ if (! syst_float_is_soft_emu()){
1296+ continue;
1297+ }
1298+#endif
1299 --count;
1300 if ( count == 0 ) {
1301 checkEarlyExit();
1302@@ -1203,6 +1268,11 @@ void
1303 (void) testFlagsFunctionPtr();
1304 testZ = testFunction( testCases_a_float32 );
1305 testFlags = testFlagsFunctionPtr();
1306+#ifdef TEST_KERNEL_EMU
1307+ if (! syst_float_is_soft_emu()){
1308+ continue;
1309+ }
1310+#endif
1311 --count;
1312 if ( count == 0 ) {
1313 checkEarlyExit();
1314@@ -1260,6 +1330,11 @@ void
1315 (void) testFlagsFunctionPtr();
1316 testZ = testFunction( testCases_a_float32, testCases_b_float32 );
1317 testFlags = testFlagsFunctionPtr();
1318+#ifdef TEST_KERNEL_EMU
1319+ if (! syst_float_is_soft_emu()){
1320+ continue;
1321+ }
1322+#endif
1323 --count;
1324 if ( count == 0 ) {
1325 checkEarlyExit();
1326@@ -1312,6 +1387,25 @@ void
1327 (void) testFlagsFunctionPtr();
1328 testZ = testFunction( testCases_a_float32, testCases_b_float32 );
1329 testFlags = testFlagsFunctionPtr();
1330+
1331+if(testCases_a_float32 == 0x7ffffe && testCases_b_float32 == 0x3f7ffffe)
1332+{
1333+
1334+ writeErrorFound( 10000 - count );
1335+ writeInputs_ab_float32();
1336+ fputs( " ", stdout );
1337+ writeOutputs_z_float32( trueZ, trueFlags, testZ, testFlags );
1338+ fflush( stdout );
1339+ if (! syst_float_is_soft_emu()){
1340+ exit(-1);
1341+ }
1342+}
1343+#ifdef TEST_KERNEL_EMU
1344+ if (! syst_float_is_soft_emu()){
1345+ continue;
1346+ }
1347+#endif
1348+
1349 --count;
1350 if ( count == 0 ) {
1351 checkEarlyExit();
1352@@ -1370,6 +1464,11 @@ void
1353 (void) testFlagsFunctionPtr();
1354 testZ = testFunction( testCases_a_float64 );
1355 testFlags = testFlagsFunctionPtr();
1356+#ifdef TEST_KERNEL_EMU
1357+ if (! syst_float_is_soft_emu()){
1358+ continue;
1359+ }
1360+#endif
1361 --count;
1362 if ( count == 0 ) {
1363 checkEarlyExit();
1364@@ -1427,6 +1526,11 @@ void
1365 (void) testFlagsFunctionPtr();
1366 testZ = testFunction( testCases_a_float64 );
1367 testFlags = testFlagsFunctionPtr();
1368+#ifdef TEST_KERNEL_EMU
1369+ if (! syst_float_is_soft_emu()){
1370+ continue;
1371+ }
1372+#endif
1373 --count;
1374 if ( count == 0 ) {
1375 checkEarlyExit();
1376@@ -1484,6 +1588,11 @@ void
1377 (void) testFlagsFunctionPtr();
1378 testZ = testFunction( testCases_a_float64 );
1379 testFlags = testFlagsFunctionPtr();
1380+#ifdef TEST_KERNEL_EMU
1381+ if (! syst_float_is_soft_emu()){
1382+ continue;
1383+ }
1384+#endif
1385 --count;
1386 if ( count == 0 ) {
1387 checkEarlyExit();
1388@@ -1541,6 +1650,11 @@ void
1389 (void) testFlagsFunctionPtr();
1390 testZ = testFunction( testCases_a_float64 );
1391 testFlags = testFlagsFunctionPtr();
1392+#ifdef TEST_KERNEL_EMU
1393+ if (! syst_float_is_soft_emu()){
1394+ continue;
1395+ }
1396+#endif
1397 --count;
1398 if ( count == 0 ) {
1399 checkEarlyExit();
1400@@ -1600,6 +1714,11 @@ void
1401 (void) testFlagsFunctionPtr();
1402 testZ = testFunction( testCases_a_float64 );
1403 testFlags = testFlagsFunctionPtr();
1404+#ifdef TEST_KERNEL_EMU
1405+ if (! syst_float_is_soft_emu()){
1406+ continue;
1407+ }
1408+#endif
1409 --count;
1410 if ( count == 0 ) {
1411 checkEarlyExit();
1412@@ -1657,6 +1776,11 @@ void
1413 (void) testFlagsFunctionPtr();
1414 testZ = testFunction( testCases_a_float64 );
1415 testFlags = testFlagsFunctionPtr();
1416+#ifdef TEST_KERNEL_EMU
1417+ if (! syst_float_is_soft_emu()){
1418+ continue;
1419+ }
1420+#endif
1421 --count;
1422 if ( count == 0 ) {
1423 checkEarlyExit();
1424@@ -1714,6 +1838,11 @@ void
1425 (void) testFlagsFunctionPtr();
1426 testZ = testFunction( testCases_a_float64, testCases_b_float64 );
1427 testFlags = testFlagsFunctionPtr();
1428+#ifdef TEST_KERNEL_EMU
1429+ if (! syst_float_is_soft_emu()){
1430+ continue;
1431+ }
1432+#endif
1433 --count;
1434 if ( count == 0 ) {
1435 checkEarlyExit();
1436@@ -1766,6 +1895,13 @@ void
1437 (void) testFlagsFunctionPtr();
1438 testZ = testFunction( testCases_a_float64, testCases_b_float64 );
1439 testFlags = testFlagsFunctionPtr();
1440+
1441+#ifdef TEST_KERNEL_EMU
1442+ if (! syst_float_is_soft_emu()){
1443+ continue;
1444+ }
1445+#endif
1446+
1447 --count;
1448 if ( count == 0 ) {
1449 checkEarlyExit();
1450@@ -1826,6 +1962,11 @@ void
1451 (void) testFlagsFunctionPtr();
1452 testZ = testFunction( testCases_a_floatx80 );
1453 testFlags = testFlagsFunctionPtr();
1454+#ifdef TEST_KERNEL_EMU
1455+ if (! syst_float_is_soft_emu()){
1456+ continue;
1457+ }
1458+#endif
1459 --count;
1460 if ( count == 0 ) {
1461 checkEarlyExit();
1462@@ -1883,6 +2024,11 @@ void
1463 (void) testFlagsFunctionPtr();
1464 testZ = testFunction( testCases_a_floatx80 );
1465 testFlags = testFlagsFunctionPtr();
1466+#ifdef TEST_KERNEL_EMU
1467+ if (! syst_float_is_soft_emu()){
1468+ continue;
1469+ }
1470+#endif
1471 --count;
1472 if ( count == 0 ) {
1473 checkEarlyExit();
1474@@ -1940,6 +2086,11 @@ void
1475 (void) testFlagsFunctionPtr();
1476 testZ = testFunction( testCases_a_floatx80 );
1477 testFlags = testFlagsFunctionPtr();
1478+#ifdef TEST_KERNEL_EMU
1479+ if (! syst_float_is_soft_emu()){
1480+ continue;
1481+ }
1482+#endif
1483 --count;
1484 if ( count == 0 ) {
1485 checkEarlyExit();
1486@@ -1995,6 +2146,11 @@ void
1487 (void) testFlagsFunctionPtr();
1488 testZ = testFunction( testCases_a_floatx80 );
1489 testFlags = testFlagsFunctionPtr();
1490+#ifdef TEST_KERNEL_EMU
1491+ if (! syst_float_is_soft_emu()){
1492+ continue;
1493+ }
1494+#endif
1495 --count;
1496 if ( count == 0 ) {
1497 checkEarlyExit();
1498@@ -2052,6 +2208,11 @@ void
1499 (void) testFlagsFunctionPtr();
1500 testZ = testFunction( testCases_a_floatx80 );
1501 testFlags = testFlagsFunctionPtr();
1502+#ifdef TEST_KERNEL_EMU
1503+ if (! syst_float_is_soft_emu()){
1504+ continue;
1505+ }
1506+#endif
1507 --count;
1508 if ( count == 0 ) {
1509 checkEarlyExit();
1510@@ -2109,6 +2270,11 @@ void
1511 (void) testFlagsFunctionPtr();
1512 testZ = testFunction( testCases_a_floatx80 );
1513 testFlags = testFlagsFunctionPtr();
1514+#ifdef TEST_KERNEL_EMU
1515+ if (! syst_float_is_soft_emu()){
1516+ continue;
1517+ }
1518+#endif
1519 --count;
1520 if ( count == 0 ) {
1521 checkEarlyExit();
1522@@ -2166,6 +2332,11 @@ void
1523 (void) testFlagsFunctionPtr();
1524 testZ = testFunction( testCases_a_floatx80, testCases_b_floatx80 );
1525 testFlags = testFlagsFunctionPtr();
1526+#ifdef TEST_KERNEL_EMU
1527+ if (! syst_float_is_soft_emu()){
1528+ continue;
1529+ }
1530+#endif
1531 --count;
1532 if ( count == 0 ) {
1533 checkEarlyExit();
1534@@ -2218,6 +2389,11 @@ void
1535 (void) testFlagsFunctionPtr();
1536 testZ = testFunction( testCases_a_floatx80, testCases_b_floatx80 );
1537 testFlags = testFlagsFunctionPtr();
1538+#ifdef TEST_KERNEL_EMU
1539+ if (! syst_float_is_soft_emu()){
1540+ continue;
1541+ }
1542+#endif
1543 --count;
1544 if ( count == 0 ) {
1545 checkEarlyExit();
1546@@ -2280,6 +2456,11 @@ void
1547 (void) testFlagsFunctionPtr();
1548 testZ = testFunction( testCases_a_float128 );
1549 testFlags = testFlagsFunctionPtr();
1550+#ifdef TEST_KERNEL_EMU
1551+ if (! syst_float_is_soft_emu()){
1552+ continue;
1553+ }
1554+#endif
1555 --count;
1556 if ( count == 0 ) {
1557 checkEarlyExit();
1558@@ -2337,6 +2518,11 @@ void
1559 (void) testFlagsFunctionPtr();
1560 testZ = testFunction( testCases_a_float128 );
1561 testFlags = testFlagsFunctionPtr();
1562+#ifdef TEST_KERNEL_EMU
1563+ if (! syst_float_is_soft_emu()){
1564+ continue;
1565+ }
1566+#endif
1567 --count;
1568 if ( count == 0 ) {
1569 checkEarlyExit();
1570@@ -2394,6 +2580,11 @@ void
1571 (void) testFlagsFunctionPtr();
1572 testZ = testFunction( testCases_a_float128 );
1573 testFlags = testFlagsFunctionPtr();
1574+#ifdef TEST_KERNEL_EMU
1575+ if (! syst_float_is_soft_emu()){
1576+ continue;
1577+ }
1578+#endif
1579 --count;
1580 if ( count == 0 ) {
1581 checkEarlyExit();
1582@@ -2449,6 +2640,11 @@ void
1583 (void) testFlagsFunctionPtr();
1584 testZ = testFunction( testCases_a_float128 );
1585 testFlags = testFlagsFunctionPtr();
1586+#ifdef TEST_KERNEL_EMU
1587+ if (! syst_float_is_soft_emu()){
1588+ continue;
1589+ }
1590+#endif
1591 --count;
1592 if ( count == 0 ) {
1593 checkEarlyExit();
1594@@ -2506,6 +2702,11 @@ void
1595 (void) testFlagsFunctionPtr();
1596 testZ = testFunction( testCases_a_float128 );
1597 testFlags = testFlagsFunctionPtr();
1598+#ifdef TEST_KERNEL_EMU
1599+ if (! syst_float_is_soft_emu()){
1600+ continue;
1601+ }
1602+#endif
1603 --count;
1604 if ( count == 0 ) {
1605 checkEarlyExit();
1606@@ -2563,6 +2764,11 @@ void
1607 (void) testFlagsFunctionPtr();
1608 testZ = testFunction( testCases_a_float128 );
1609 testFlags = testFlagsFunctionPtr();
1610+#ifdef TEST_KERNEL_EMU
1611+ if (! syst_float_is_soft_emu()){
1612+ continue;
1613+ }
1614+#endif
1615 --count;
1616 if ( count == 0 ) {
1617 checkEarlyExit();
1618@@ -2620,6 +2826,11 @@ void
1619 (void) testFlagsFunctionPtr();
1620 testZ = testFunction( testCases_a_float128, testCases_b_float128 );
1621 testFlags = testFlagsFunctionPtr();
1622+#ifdef TEST_KERNEL_EMU
1623+ if (! syst_float_is_soft_emu()){
1624+ continue;
1625+ }
1626+#endif
1627 --count;
1628 if ( count == 0 ) {
1629 checkEarlyExit();
1630@@ -2672,6 +2883,11 @@ void
1631 (void) testFlagsFunctionPtr();
1632 testZ = testFunction( testCases_a_float128, testCases_b_float128 );
1633 testFlags = testFlagsFunctionPtr();
1634+#ifdef TEST_KERNEL_EMU
1635+ if (! syst_float_is_soft_emu()){
1636+ continue;
1637+ }
1638+#endif
1639 --count;
1640 if ( count == 0 ) {
1641 checkEarlyExit();
1642--
16431.5.4
1644
diff --git a/recipes-extended/testfloat/files/Yocto-replace-COMPILE_PREFIX-gcc.patch b/recipes-extended/testfloat/files/Yocto-replace-COMPILE_PREFIX-gcc.patch
new file mode 100644
index 0000000..42de56d
--- /dev/null
+++ b/recipes-extended/testfloat/files/Yocto-replace-COMPILE_PREFIX-gcc.patch
@@ -0,0 +1,67 @@
1From 6c7567e05c28b8cb6c7dc68c278950a32feb6f64 Mon Sep 17 00:00:00 2001
2From: Ting Liu <b28495@freescale.com>
3Date: Wed, 9 May 2012 02:42:57 -0500
4Subject: [PATCH] Yocto: replace $(COMPILE_PREFIX)gcc with $(CC) and remove -te500v2 flags
5
6Signed-off-by: Ting Liu <b28495@freescale.com>
7---
8 SoftFloat-2b/softfloat/bits32/powerpc-GCC/Makefile | 4 ++--
9 SoftFloat-2b/softfloat/bits64/powerpc-GCC/Makefile | 4 ++--
10 testfloat/powerpc-linux-gcc/Makefile | 8 ++++----
11 3 files changed, 8 insertions(+), 8 deletions(-)
12
13diff --git a/SoftFloat-2b/softfloat/bits32/powerpc-GCC/Makefile b/SoftFloat-2b/softfloat/bits32/powerpc-GCC/Makefile
14index 28f1e33..4098048 100644
15--- a/SoftFloat-2b/softfloat/bits32/powerpc-GCC/Makefile
16+++ b/SoftFloat-2b/softfloat/bits32/powerpc-GCC/Makefile
17@@ -5,8 +5,8 @@ SOFTFLOAT_MACROS = ../softfloat-macros
18 OBJ = .o
19 EXE =
20 INCLUDES = -I. -I..
21-COMPILE_C = $(COMPILE_PREFIX)gcc -msoft-float -c -o $@ $(INCLUDES) -I- -O2
22-LINK = $(COMPILE_PREFIX)gcc -o $@
23+COMPILE_C = $(CC) -msoft-float -c -o $@ $(INCLUDES) -I- -O2
24+LINK = $(CC) -o $@
25
26 ALL: softfloat$(OBJ) timesoftfloat$(EXE)
27
28diff --git a/SoftFloat-2b/softfloat/bits64/powerpc-GCC/Makefile b/SoftFloat-2b/softfloat/bits64/powerpc-GCC/Makefile
29index a5e2cc7..c34e16e 100644
30--- a/SoftFloat-2b/softfloat/bits64/powerpc-GCC/Makefile
31+++ b/SoftFloat-2b/softfloat/bits64/powerpc-GCC/Makefile
32@@ -5,8 +5,8 @@ SOFTFLOAT_MACROS = ../softfloat-macros
33 OBJ = .o
34 EXE =
35 INCLUDES = -I. -I..
36-COMPILE_C = $(COMPILE_PREFIX) -mcpu=8548 -mhard-float -mfloat-gprs=double -o $@ $(INCLUDES) -I- -O2
37-LINK = $(COMPILE_PREFIX) -o $@
38+COMPILE_C = $(CC) -mcpu=8548 -mhard-float -mfloat-gprs=double -o $@ $(INCLUDES) -I- -O2
39+LINK = $(CC) -o $@
40
41 ALL: softfloat$(OBJ) timesoftfloat$(EXE)
42
43diff --git a/testfloat/powerpc-linux-gcc/Makefile b/testfloat/powerpc-linux-gcc/Makefile
44index de50aad..1a8b5f7 100644
45--- a/testfloat/powerpc-linux-gcc/Makefile
46+++ b/testfloat/powerpc-linux-gcc/Makefile
47@@ -8,13 +8,13 @@ OBJ = .o
48 EXE =
49 INCLUDES = -I. -I.. -I$(SOFTFLOAT_DIR)
50
51-COMPILE_C = $(COMPILE_PREFIX)gcc -c -o $@ $(INCLUDES) -I- -O $(EXTRA_CFLAGS)
52+COMPILE_C = $(CC) -c -o $@ $(INCLUDES) -I- -O $(EXTRA_CFLAGS)
53
54-COMPILE_C_HARD = $(COMPILE_PREFIX)gcc -c -te500v2 -o $@ $(INCLUDES)
55+COMPILE_C_HARD = $(CC) -c -o $@ $(INCLUDES)
56
57-COMPILE_SLOWFLOAT_C = $(COMPILE_PREFIX)gcc -c -o $@ $(INCLUDES) -I- -O
58+COMPILE_SLOWFLOAT_C = $(CC) -c -o $@ $(INCLUDES) -I- -O
59
60-LINK = $(COMPILE_PREFIX)gcc -lm -o $@
61+LINK = $(CC) -lm -o $@
62
63 SOFTFLOAT_H = $(SOFTFLOAT_DIR)/softfloat.h
64 SOFTFLOAT_OBJ = $(SOFTFLOAT_DIR)/softfloat$(OBJ)
65--
661.7.3.4
67
diff --git a/recipes-extended/testfloat/testfloat_2a.bb b/recipes-extended/testfloat/testfloat_2a.bb
new file mode 100644
index 0000000..fb89e26
--- /dev/null
+++ b/recipes-extended/testfloat/testfloat_2a.bb
@@ -0,0 +1,45 @@
1DESCRIPTION = "A program for testing floating-point implementation"
2LICENSE = "TestFloat"
3
4LIC_FILES_CHKSUM = "file://testfloat/testfloat.txt;beginline=87;endline=95;md5=bdb2e8111838a48015c29bd97f5b6145"
5
6SRC_URI = " http://www.jhauser.us/arithmetic/TestFloat-2a.tar.Z;name=TestFloat \
7 http://www.jhauser.us/arithmetic/SoftFloat-2b.tar.Z;name=SoftFloat \
8 "
9SRC_URI_append_fslmachine = " file://SoftFloat-powerpc-1.patch \
10 file://TestFloat-powerpc-E500v2-SPE-1.patch \
11 file://Yocto-replace-COMPILE_PREFIX-gcc.patch \
12 "
13SRC_URI[TestFloat.md5sum] = "4dc889319ae1e0c5381ec511f784553a"
14SRC_URI[TestFloat.sha256sum] = "84d14aa42adefbda2ec9708b42946f7fa59f93689b042684bd027863481f8e4e"
15SRC_URI[SoftFloat.md5sum] = "b4a58b5c941f1a2317e4c2500086e3fa"
16SRC_URI[SoftFloat.sha256sum] = "89d14b55113a2ba8cbda7011443ba1d298d381c89d939515d56c5f18f2febf81"
17
18S = "${WORKDIR}/TestFloat-2a"
19
20do_unpack2(){
21 mv ${WORKDIR}/SoftFloat-2b ${S}/SoftFloat-2b
22 cd ${S}
23 if [ -n "$(which fromdos)" ];then
24 find -type f -exec fromdos {} \;
25 elif [ -n "$(which dos2unix)" ];then
26 find -type f -exec dos2unix {} \;
27 else
28 echo -e "\nERROR: command dos2unix or fromdos not found\n" && return 1
29 fi
30}
31addtask do_unpack2 after do_unpack before do_patch
32
33do_compile(){
34 oe_runmake -C testfloat/powerpc-linux-gcc/ CC="${CC}" EXTRA_CFLAGS="-DTEST_KERNEL_EMU"
35}
36
37do_install(){
38 install -d ${D}/${bindir}
39 install testfloat/powerpc-linux-gcc/testfloat ${D}/${bindir}
40 install testfloat/powerpc-linux-gcc/testsoftfloat ${D}/${bindir}
41}
42
43COMPATIBLE_HOST_e500v2 = ".*"
44COMPATIBLE_HOST ?= "(none)"
45
diff --git a/recipes-extended/web-sysmon/web-sysmon_git.bb b/recipes-extended/web-sysmon/web-sysmon_git.bb
new file mode 100644
index 0000000..d9df8e4
--- /dev/null
+++ b/recipes-extended/web-sysmon/web-sysmon_git.bb
@@ -0,0 +1,22 @@
1DESCRIPTION = "Web System Monitor Files"
2SECTION = "web-sysmon"
3LICENSE = "GPLv2"
4LIC_FILES_CHKSUM = "file://COPYING;md5=12f884d2ae1ff87c09e5b7ccc2c4ca7e"
5
6SRCBRANCH = "sdk-v1.4.x"
7SRC_URI = "git://git.freescale.com/ppc/sdk/web-sysmon.git;branch=${SRCBRANCH}"
8SRCREV = "40b47611378ef5c07d98f0f691bb146ae52dcdc1"
9
10S = "${WORKDIR}/git"
11
12FILES_${PN} += "/"
13
14RDEPENDS_${PN} = "lighttpd"
15
16do_install() {
17 install -d ${D}/etc
18 install -m 644 ${S}/lighttpd.conf ${D}/etc
19 install -d ${D}/usr/local/bin
20 install -m 755 ${S}/rrd/sens_update_rrd ${D}/usr/local/bin
21 cp -r ${S}/rrd ${D}/usr
22}
diff --git a/recipes-graphics/xorg-driver/xf86-video-fbdev_0.4.2.bb b/recipes-graphics/xorg-driver/xf86-video-fbdev_0.4.2.bb
new file mode 100644
index 0000000..038c421
--- /dev/null
+++ b/recipes-graphics/xorg-driver/xf86-video-fbdev_0.4.2.bb
@@ -0,0 +1,11 @@
1require xorg-driver-video.inc
2LIC_FILES_CHKSUM = "file://COPYING;md5=d8cbd99fff773f92e844948f74ef0df8"
3
4DESCRIPTION = "X.Org X server -- fbdev display driver"
5PE = "1"
6PR = "${INC_PR}.1"
7
8DEPENDS += "virtual/xserver"
9
10SRC_URI[md5sum] = "53a533d9e0c2da50962282526bace074"
11SRC_URI[sha256sum] = "93b271b4b41d7e5ca108849a583b9523e96c51813d046282285355b7001f82d5"
diff --git a/recipes-graphics/xorg-driver/xorg-driver-common.inc b/recipes-graphics/xorg-driver/xorg-driver-common.inc
new file mode 100644
index 0000000..c0f4a15
--- /dev/null
+++ b/recipes-graphics/xorg-driver/xorg-driver-common.inc
@@ -0,0 +1,40 @@
1DESCRIPTION = "X driver"
2HOMEPAGE = "http://www.x.org"
3SECTION = "x11/drivers"
4LICENSE = "MIT-X"
5INC_PR = "r15"
6
7DEPENDS = "randrproto virtual/xserver-xf86 xproto"
8
9SRC_URI = "${XORG_MIRROR}/individual/driver/${BPN}-${PV}.tar.bz2"
10
11S = "${WORKDIR}/${BPN}-${PV}"
12
13FILES_${PN} += " ${libdir}/xorg/modules"
14FILES_${PN}-dbg += "${libdir}/xorg/modules/*/.debug"
15
16inherit autotools pkgconfig
17
18TARGET_CPPFLAGS += "-I${STAGING_DIR_HOST}/usr/include/xorg"
19
20# Another sucky behavor from Xorg configure scripts.
21# They use AC_CHECK_FILE to check for DRI headers. Yuck!
22# Of course this will blow up when cross compiling.
23
24do_configure_prepend() {
25 incdir=${layout_includedir}/xorg
26 for f in dri.h sarea.h dristruct.h exa.h damage.h xf86Module.h; do
27 path="$incdir/$f"
28 if [ -f "${STAGING_DIR_HOST}/$path" ]; then
29 p=`echo "$path" | sed 'y%*+%pp%;s%[^_[:alnum:]]%_%g'`
30 eval "export ac_cv_file_$p=yes"
31 fi
32 done
33}
34
35# FIXME: We don't want to include the libtool archives (*.la) from modules
36# directory, as they serve no useful purpose. Upstream should fix Makefile.am
37do_install_append() {
38 find ${D}${libdir}/xorg/modules -regex ".*\.la$" | xargs rm -f --
39}
40
diff --git a/recipes-graphics/xorg-driver/xorg-driver-video.inc b/recipes-graphics/xorg-driver/xorg-driver-video.inc
new file mode 100644
index 0000000..bce8c9a
--- /dev/null
+++ b/recipes-graphics/xorg-driver/xorg-driver-video.inc
@@ -0,0 +1,4 @@
1include xorg-driver-common.inc
2
3DEPENDS = "randrproto renderproto videoproto xextproto fontsproto xproto"
4
diff --git a/recipes-graphics/xorg-xserver/xserver-xf86-config/p1022ds/xorg.conf b/recipes-graphics/xorg-xserver/xserver-xf86-config/p1022ds/xorg.conf
new file mode 100644
index 0000000..57f284e
--- /dev/null
+++ b/recipes-graphics/xorg-xserver/xserver-xf86-config/p1022ds/xorg.conf
@@ -0,0 +1,27 @@
1Section "Screen"
2 Identifier "Builtin Default fbdev Screen 0"
3 Device "Builtin Default fbdev Device 0"
4EndSection
5
6Section "ServerLayout"
7 Identifier "Builtin Default Layout"
8 Screen "Builtin Default fbdev Screen 0"
9EndSection
10
11Section "ServerFlags"
12 Option "DontZap" "0"
13EndSection
14
15Section "InputClass"
16 Identifier "keyboard-all"
17 Driver "evdev"
18 MatchIsKeyboard "on"
19EndSection
20
21
22Section "InputClass"
23 Identifier "mouse-all"
24 Driver "evdev"
25 MatchIsPointer "on"
26EndSection
27
diff --git a/recipes-graphics/xorg-xserver/xserver-xf86-config_%.bbappend b/recipes-graphics/xorg-xserver/xserver-xf86-config_%.bbappend
new file mode 100644
index 0000000..7ae4ec2
--- /dev/null
+++ b/recipes-graphics/xorg-xserver/xserver-xf86-config_%.bbappend
@@ -0,0 +1,3 @@
1FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
2
3PRINC := "${@int(PRINC) + 1}"
diff --git a/recipes-kernel/asf/asf_git.bb b/recipes-kernel/asf/asf_git.bb
new file mode 100644
index 0000000..c9948ee
--- /dev/null
+++ b/recipes-kernel/asf/asf_git.bb
@@ -0,0 +1,48 @@
1DESCRIPTION = "Non-DPAA software Application Specific Fast-path"
2SECTION = "asf"
3LICENSE = "GPLv2 & GPLv2+ & BSD"
4LIC_FILES_CHKSUM = "file://COPYING;md5=b5881ecf398da8a03a3f4c501e29d287"
5
6SRC_URI = "git://git.freescale.com/ppc/sdk/asf.git;nobranch=1"
7SRCREV = "c262d7701af325b50cae54279a021ae7b5081e24"
8SRCREV_t2080qds = "6af9df06e2747bdee91c21d1626b5b53b97849c5"
9SRCREV_t2080qds-64b = "6af9df06e2747bdee91c21d1626b5b53b97849c5"
10
11DEPENDS="virtual/kernel"
12RDEPENDS_${PN} += "ipsec-tools"
13
14inherit module
15
16S = "${WORKDIR}/git/asfmodule"
17
18EXTRA_OEMAKE = "CROSS_COMPILE=${TARGET_PREFIX}"
19export KERNEL_PATH = "${STAGING_KERNEL_DIR}"
20
21python () {
22 ma = d.getVar("DISTRO_FEATURES", True)
23 arch = d.getVar("OVERRIDES", True)
24
25 # the : after the arch is to skip the message on 64b
26 if not "multiarch" in ma and "e6500:" in arch:
27 raise bb.parse.SkipPackage("Building the kernel for this arch requires multiarch to be in DISTRO_FEATURES")
28
29 promote_kernel = d.getVar('BUILD_64BIT_KERNEL')
30
31 if promote_kernel == "1":
32 d.setVar('KERNEL_CC_append', ' -m64')
33 d.setVar('KERNEL_LD_append', ' -melf64ppc')
34
35 error_qa = d.getVar('ERROR_QA', True)
36 if 'arch' in error_qa:
37 d.setVar('ERROR_QA', error_qa.replace(' arch', ''))
38}
39
40do_install(){
41 mkdir -p ${D}/usr/driver/asf
42 cp -rf ${S}/bin/full ${D}/usr/driver/asf
43 cp -rf ${S}/bin/min ${D}/usr/driver/asf
44 cp -rf ${S}/../scripts ${D}/usr/driver/asf/.
45}
46
47FILES_${PN} += "/usr/driver/asf"
48INHIBIT_PACKAGE_STRIP = "1"
diff --git a/recipes-kernel/cryptodev/cryptodev_1.5.bb b/recipes-kernel/cryptodev/cryptodev_1.5.bb
new file mode 100644
index 0000000..4c1dade
--- /dev/null
+++ b/recipes-kernel/cryptodev/cryptodev_1.5.bb
@@ -0,0 +1,51 @@
1SECTION = "devel"
2SUMMARY = "Linux Cryptodev KERNEL MODULE"
3DESCRIPTION = "The Cryptodev package contains the kernel /dev/crypto module"
4LICENSE = "GPLv2"
5LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
6RCONFLICTS_${PN} = "ocf-linux"
7
8inherit module
9
10PR = "r1"
11DEPENDS += "openssl"
12
13SRCREV = "1c24a0aa996630518d47826a2e3fea129ea094c7"
14
15SRC_URI = "git://repo.or.cz/cryptodev-linux.git;protocol=git \
16 file://makefile_fixup.patch \
17 file://Add-the-compile-and-install-rules-for-cryptodev-test.patch"
18
19EXTRA_OEMAKE='KERNEL_DIR="${STAGING_KERNEL_DIR}" PREFIX="${D}"'
20
21S = "${WORKDIR}/git"
22python () {
23 ma = d.getVar("DISTRO_FEATURES", True)
24 arch = d.getVar("OVERRIDES", True)
25
26 # the : after the arch is to skip the message on 64b
27 if not "multiarch" in ma and ("e5500:" in arch or "e6500:" in arch):
28 raise bb.parse.SkipPackage("Building the kernel for this arch requires multiarch to be in DISTRO_FEATURES")
29
30 promote_kernel = d.getVar('BUILD_64BIT_KERNEL')
31
32 if promote_kernel == "1":
33 d.setVar('KERNEL_CC_append', ' -m64')
34 d.setVar('KERNEL_LD_append', ' -melf64ppc')
35
36 error_qa = d.getVar('ERROR_QA', True)
37 if 'arch' in error_qa:
38 d.setVar('ERROR_QA', error_qa.replace(' arch', ''))
39}
40
41do_compile_append() {
42 oe_runmake testprogs
43}
44
45do_install_append() {
46 oe_runmake install_tests
47}
48
49PACKAGES += "${PN}-tests"
50FILES_${PN}-dbg += "${bindir}/tests_cryptodev/.debug"
51FILES_${PN}-tests = "${bindir}/tests_cryptodev/*"
diff --git a/recipes-kernel/cryptodev/files/Add-the-compile-and-install-rules-for-cryptodev-test.patch b/recipes-kernel/cryptodev/files/Add-the-compile-and-install-rules-for-cryptodev-test.patch
new file mode 100644
index 0000000..cb871f6
--- /dev/null
+++ b/recipes-kernel/cryptodev/files/Add-the-compile-and-install-rules-for-cryptodev-test.patch
@@ -0,0 +1,69 @@
1From 1980a8f4779a955e73285e7a0d86549b69bea5c8 Mon Sep 17 00:00:00 2001
2From: Yu Zongchun <b40527@freescale.com>
3Date: Sun, 28 Apr 2013 14:39:22 +0800
4Subject: [PATCH] Add the compile and install rules for cryptodev tests folder
5
6This is required to install the cryptodev tests folder to rootfs
7
8Signed-off-by: Yu Zongchun <b40527@freescale.com>
9
10Upstream-Status: Pending
11
12---
13 Makefile | 6 ++++++
14 tests/Makefile | 8 ++++++++
15 2 files changed, 14 insertions(+), 0 deletions(-)
16
17diff --git a/Makefile b/Makefile
18index 2be8825..4cbb865 100644
19--- a/Makefile
20+++ b/Makefile
21@@ -17,6 +17,9 @@ install:
22 @echo "Installing cryptodev.h in /usr/include/crypto ..."
23 @install -D crypto/cryptodev.h /usr/include/crypto/cryptodev.h
24
25+install_tests:
26+ make -C tests install DESTDIR=$(PREFIX)
27+
28 clean:
29 make -C $(KERNEL_DIR) SUBDIRS=`pwd` clean
30 rm -f $(hostprogs) *~
31@@ -25,6 +28,9 @@ clean:
32 check:
33 KERNEL_DIR=$(KERNEL_DIR) make -C tests check
34
35+testprogs:
36+ KERNEL_DIR=$(KERNEL_DIR) make -C tests testprogs
37+
38 FILEBASE = cryptodev-linux-$(VERSION)
39 TMPDIR ?= /tmp
40 OUTPUT = $(FILEBASE).tar.gz
41diff --git a/tests/Makefile b/tests/Makefile
42index 87ca3c7..0488cf6 100644
43--- a/tests/Makefile
44+++ b/tests/Makefile
45@@ -19,6 +19,12 @@ example-async-hmac-objs := async_hmac.o
46 example-async-speed-objs := async_speed.o
47 example-hashcrypt-speed-objs := hashcrypt_speed.c
48
49+install:
50+ install -d $(DESTDIR)/usr/bin/tests_cryptodev
51+ for bin in $(hostprogs); do \
52+ install -m 755 $${bin} $(DESTDIR)/usr/bin/tests_cryptodev/; \
53+ done
54+
55 check: $(hostprogs)
56 ./cipher
57 ./hmac
58@@ -28,6 +34,8 @@ check: $(hostprogs)
59 ./cipher-gcm
60 ./cipher-aead
61
62+testprogs: $(hostprogs)
63+
64 clean:
65 rm -f *.o *~ $(hostprogs)
66
67--
681.7.5.4
69
diff --git a/recipes-kernel/cryptodev/files/makefile_fixup.patch b/recipes-kernel/cryptodev/files/makefile_fixup.patch
new file mode 100644
index 0000000..323aacd
--- /dev/null
+++ b/recipes-kernel/cryptodev/files/makefile_fixup.patch
@@ -0,0 +1,26 @@
1diff --git a/Makefile b/Makefile
2index 2be8825..b36d68c 100644
3--- a/Makefile
4+++ b/Makefile
5@@ -1,6 +1,7 @@
6 KBUILD_CFLAGS += -I$(src)
7 KERNEL_DIR = /lib/modules/$(shell uname -r)/build
8 VERSION = 1.5
9+PREFIX =
10
11 cryptodev-objs = ioctl.o main.o cryptlib.o authenc.o zc.o util.o
12
13@@ -12,10 +13,10 @@ build: version.h
14 version.h: Makefile
15 @echo "#define VERSION \"$(VERSION)\"" > version.h
16
17-install:
18+modules_install:
19 make -C $(KERNEL_DIR) SUBDIRS=`pwd` modules_install
20- @echo "Installing cryptodev.h in /usr/include/crypto ..."
21- @install -D crypto/cryptodev.h /usr/include/crypto/cryptodev.h
22+ @echo "Installing cryptodev.h in $(PREFIX)/usr/include/crypto ..."
23+ @install -D crypto/cryptodev.h $(PREFIX)/usr/include/crypto/cryptodev.h
24
25 clean:
26 make -C $(KERNEL_DIR) SUBDIRS=`pwd` clean
diff --git a/recipes-kernel/linux/files/libtraceevent-Remove-hard-coded-include-to-usr-local-include-in-Makefile.patch b/recipes-kernel/linux/files/libtraceevent-Remove-hard-coded-include-to-usr-local-include-in-Makefile.patch
new file mode 100644
index 0000000..15c397d
--- /dev/null
+++ b/recipes-kernel/linux/files/libtraceevent-Remove-hard-coded-include-to-usr-local-include-in-Makefile.patch
@@ -0,0 +1,36 @@
1Upstream-Status: Backport
2
3From b9e8c37220c80e78289a1e87b50c09418eb59a7e Mon Sep 17 00:00:00 2001
4From: Jack Mitchell <jack.mitchell@dbbroadcast.co.uk>
5Date: Fri, 08 Mar 2013 11:21:52 +0000
6Subject: libtraceevent: Remove hard coded include to /usr/local/include in Makefile
7
8having /usr/local/include hardcoded into the makefile is not necessary
9as this is automatically included by GCC. It also infects cross-compile
10builds with the host systems includes.
11
12Signed-off-by: Jack Mitchell <jack.mitchell@dbbroadcast.co.uk>
13Acked-by: Namhyung Kim <namhyung@kernel.org>
14Cc: Ingo Molnar <mingo@redhat.com>
15Cc: Paul Mackerras <paulus@samba.org>
16Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
17Link: http://lkml.kernel.org/r/1362741712-21308-1-git-send-email-ml@communistcode.co.uk
18Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
19---
20(limited to 'tools/lib/traceevent/Makefile')
21
22diff --git a/tools/lib/traceevent/Makefile b/tools/lib/traceevent/Makefile
23index a20e320..0b0a907 100644
24--- a/tools/lib/traceevent/Makefile
25+++ b/tools/lib/traceevent/Makefile
26@@ -122,7 +122,7 @@ export Q VERBOSE
27
28 EVENT_PARSE_VERSION = $(EP_VERSION).$(EP_PATCHLEVEL).$(EP_EXTRAVERSION)
29
30-INCLUDES = -I. -I/usr/local/include $(CONFIG_INCLUDES)
31+INCLUDES = -I. $(CONFIG_INCLUDES)
32
33 # Set compile option CFLAGS if not set elsewhere
34 CFLAGS ?= -g -Wall
35--
36cgit v0.9.2
diff --git a/recipes-kernel/linux/linux-qoriq-sdk.bb b/recipes-kernel/linux/linux-qoriq-sdk.bb
new file mode 100644
index 0000000..275691a
--- /dev/null
+++ b/recipes-kernel/linux/linux-qoriq-sdk.bb
@@ -0,0 +1,37 @@
1inherit kernel
2require recipes-kernel/linux/linux-dtb.inc
3
4DESCRIPTION = "Linux kernel for Freescale platforms"
5SECTION = "kernel"
6LICENSE = "GPLv2"
7
8require recipes-kernel/linux/linux-qoriq-sdk.inc
9
10PR = "${INC_PR}.1"
11
12SCMVERSION ?= "y"
13
14DEPENDS_append = " libgcc"
15KERNEL_CC_append = " ${TOOLCHAIN_OPTIONS}"
16KERNEL_LD_append = " ${TOOLCHAIN_OPTIONS}"
17
18do_configure_prepend() {
19 # copy desired defconfig so we pick it up for the real kernel_do_configure
20 cp ${KERNEL_DEFCONFIG} ${B}/.config
21
22 # add config fragments
23 if [ -f "${DELTA_KERNEL_DEFCONFIG}" ]; then
24 ${S}/scripts/kconfig/merge_config.sh -m .config ${DELTA_KERNEL_DEFCONFIG}
25 fi
26
27 # append sdk version in kernel version if SDK_VERSION is defined
28 if [ -n "${SDK_VERSION}" ]; then
29 echo "CONFIG_LOCALVERSION=\"-${SDK_VERSION}\"" >> ${S}/.config
30 fi
31
32 # Add GIT revision to the local version
33 if [ "${SCMVERSION}" = "y" ]; then
34 head=`git rev-parse --verify --short HEAD 2> /dev/null`
35 printf "%s%s" +g $head > ${S}/.scmversion
36 fi
37}
diff --git a/recipes-kernel/linux/linux-qoriq-sdk.inc b/recipes-kernel/linux/linux-qoriq-sdk.inc
new file mode 100644
index 0000000..83c632e
--- /dev/null
+++ b/recipes-kernel/linux/linux-qoriq-sdk.inc
@@ -0,0 +1,37 @@
1LIC_FILES_CHKSUM = "file://COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7"
2
3PV = "3.8"
4INC_PR = "r11"
5
6SRC_URI = "git://git.freescale.com/ppc/sdk/linux.git;nobranch=1"
7SRCREV = "3edd71eeb4e4ae27baf539e0a5f0c8e8261bf65b"
8SRCREV_t2080qds = "47914f6cf77197921c648c6ea8977974fa54d03a"
9SRCREV_t2080qds-64b = "47914f6cf77197921c648c6ea8977974fa54d03a"
10
11KSRC ?= ""
12S = '${@base_conditional("KSRC", "", "${WORKDIR}/git", "${KSRC}", d)}'
13# make everything compatible for the time being
14COMPATIBLE_MACHINE_$MACHINE = "$MACHINE"
15
16python () {
17 ma = d.getVar("DISTRO_FEATURES", True)
18 arch = d.getVar("OVERRIDES", True)
19
20 # the : after the arch is to skip the message on 64b
21 if not "multiarch" in ma and ("e5500:" in arch or "e6500:" in arch):
22 raise bb.parse.SkipPackage("Building the kernel for this arch requires multiarch to be in DISTRO_FEATURES")
23
24 promote_kernel = d.getVar('BUILD_64BIT_KERNEL')
25
26 if promote_kernel == "1":
27 d.setVar('KERNEL_CC_append', ' -m64')
28 d.setVar('KERNEL_LD_append', ' -melf64ppc')
29
30 error_qa = d.getVar('ERROR_QA', True)
31 if 'arch' in error_qa:
32 d.setVar('ERROR_QA', error_qa.replace(' arch', ''))
33
34 all_qa = d.getVar('ALL_QA', True)
35 if 'arch' in all_qa:
36 d.setVar('ALL_QA', all_qa.replace(' arch', ''))
37}
diff --git a/recipes-kernel/lttng/lttng-modules_%.bbappend b/recipes-kernel/lttng/lttng-modules_%.bbappend
new file mode 100644
index 0000000..5415f16
--- /dev/null
+++ b/recipes-kernel/lttng/lttng-modules_%.bbappend
@@ -0,0 +1,18 @@
1inherit distro_features_check
2
3REQUIRED_DISTRO_FEATURES_append_e6500 ?= "multiarch"
4
5python () {
6
7 promote_kernel = d.getVar('BUILD_64BIT_KERNEL')
8
9 if promote_kernel == "1":
10 d.appendVar('KERNEL_CC', ' -m64')
11 d.appendVar('KERNEL_LD', ' -melf64ppc')
12
13
14 error_qa = d.getVar('ERROR_QA', True)
15 if 'arch' in error_qa:
16 d.setVar('ERROR_QA', error_qa.replace(' arch', ''))
17
18}
diff --git a/recipes-kernel/qoriq-debug/qoriq-debug_git.bb b/recipes-kernel/qoriq-debug/qoriq-debug_git.bb
new file mode 100644
index 0000000..5b0256f
--- /dev/null
+++ b/recipes-kernel/qoriq-debug/qoriq-debug_git.bb
@@ -0,0 +1,35 @@
1DESCRIPTION = "QorIQ Debug File System Module"
2SECTION = "qoriq-debug"
3LICENSE = "GPLv2+"
4LIC_FILES_CHKSUM = "file://COPYING;md5=e29234dd5d40dc352cc60cc0c93437ba"
5
6inherit module autotools
7
8SRCBRANCH = "sdk-v1.4.x"
9SRC_URI = "git://git.freescale.com/ppc/sdk/qoriq-debug.git;branch=${SRCBRANCH}"
10SRCREV = "08de2902af9a79ba9e436a284b8d7754b351f608"
11
12S = "${WORKDIR}/git"
13
14EXTRA_OECONF += "--with-linux=${STAGING_KERNEL_DIR}"
15EXTRA_OEMAKE += 'SYSROOT="${D}"'
16
17python () {
18 ma = d.getVar("DISTRO_FEATURES", True)
19 arch = d.getVar("OVERRIDES", True)
20
21 # the : after the arch is to skip the message on 64b
22 if not "multiarch" in ma and ("e5500:" in arch or "e6500:" in arch):
23 raise bb.parse.SkipPackage("Building the kernel for this arch requires multiarch to be in DISTRO_FEATURES")
24
25 promote_kernel = d.getVar('BUILD_64BIT_KERNEL')
26
27 if promote_kernel == "1":
28 d.setVar('KERNEL_CC_append', ' -m64')
29 d.setVar('KERNEL_LD_append', ' -melf64ppc')
30
31 error_qa = d.getVar('ERROR_QA', True)
32 if 'arch' in error_qa:
33 d.setVar('ERROR_QA', error_qa.replace(' arch', ''))
34}
35
diff --git a/recipes-virtualization/hv-cfg/hv-cfg_git.bb b/recipes-virtualization/hv-cfg/hv-cfg_git.bb
new file mode 100644
index 0000000..a913524
--- /dev/null
+++ b/recipes-virtualization/hv-cfg/hv-cfg_git.bb
@@ -0,0 +1,48 @@
1DESCRIPTION = "Hypervisor Config"
2SECTION = "hv-cfg"
3LICENSE = "BSD"
4PR = "r6"
5
6LIC_FILES_CHKSUM = " \
7 file://p2041rdb/LICENSE;md5=96dd72f26e9bb861de5c76c60e35e1bc \
8 file://p3041ds/LICENSE;md5=96dd72f26e9bb861de5c76c60e35e1bc \
9 file://p4080ds/LICENSE;md5=96dd72f26e9bb861de5c76c60e35e1bc \
10 file://p5020ds/LICENSE;md5=96dd72f26e9bb861de5c76c60e35e1bc \
11"
12
13DEPENDS += "dtc-native"
14
15# this package is specific to the machine itself
16INHIBIT_DEFAULT_DEPS = "1"
17PACKAGE_ARCH = "${MACHINE_ARCH}"
18
19inherit deploy
20
21SRC_URI = "git://git.freescale.com/ppc/sdk/hv-cfg.git;nobranch=1"
22SRCREV = "39f1e585e0a70634e009b2e720407b27f787ace1"
23SRCREV_t2080qds = "46065e277a853ca3fa80040d3b00d7582b619a47"
24SRCREV_t2080qds-64b = "46065e277a853ca3fa80040d3b00d7582b619a47"
25
26S = "${WORKDIR}/git"
27
28do_install () {
29 make install
30
31 M=`echo ${MACHINE} | sed s/-64b//g`
32 install -d ${D}/boot/hv-cfg
33 cp -r ${S}/${M}/${M}/* ${D}/boot/hv-cfg
34}
35
36do_deploy () {
37 M=`echo ${MACHINE} | sed s/-64b//g`
38 install -d ${DEPLOYDIR}/hv-cfg
39 cp -r ${S}/${M}/${M}/* ${DEPLOYDIR}/hv-cfg
40}
41addtask deploy after do_install
42
43PACKAGES += "${PN}-image"
44FILES_${PN}-image += "/boot"
45
46COMPATIBLE_HOST_fslmachine = ".*"
47COMPATIBLE_HOST ?= "(none)"
48ALLOW_EMPTY_${PN} = "1"
diff --git a/recipes-virtualization/hypervisor/files/0001-fix-sizeof-pointer-memaccess-error.patch b/recipes-virtualization/hypervisor/files/0001-fix-sizeof-pointer-memaccess-error.patch
new file mode 100644
index 0000000..a562273
--- /dev/null
+++ b/recipes-virtualization/hypervisor/files/0001-fix-sizeof-pointer-memaccess-error.patch
@@ -0,0 +1,39 @@
1From 59e68351114a65a1f315ded1ee92f4370b8547e2 Mon Sep 17 00:00:00 2001
2From: Ting Liu <b28495@freescale.com>
3Date: Mon, 8 Jul 2013 17:03:43 +0800
4Subject: [PATCH] fix sizeof-pointer-memaccess error
5
6build: src/livetree.c
7.../hypervisor/git-r3/git/src/devtree.c: In function 'read_intmap':
8.../hypervisor/git-r3/git/src/devtree.c:1513:25: error: argument to 'sizeof' in 'memset' call is the same expression as the destination; did you mean to dereference it? [-Werror=sizeof-pointer-memaccess]
9 memset(ent, 0, sizeof(ent));
10 ^
11cc1: all warnings being treated as errors
12build: src/ipi_doorbell.c
13make[1]: *** [bin/devtree.o] Error 1
14make[1]: *** Waiting for unfinished jobs....
15make[1]: Leaving directory `.../hypervisor/git-r3/git/output'
16make: *** [all] Error 2
17ERROR: oe_runmake failed
18
19Signed-off-by: Ting Liu <b28495@freescale.com>
20---
21 src/devtree.c | 2 +-
22 1 files changed, 1 insertions(+), 1 deletions(-)
23
24diff --git a/src/devtree.c b/src/devtree.c
25index f3710e4..3295e20 100644
26--- a/src/devtree.c
27+++ b/src/devtree.c
28@@ -1510,7 +1510,7 @@ static void read_intmap(dt_node_t *node)
29 }
30
31 if (imap + ent->parent_naddr + ent->parent_nint > imap_end) {
32- memset(ent, 0, sizeof(ent));
33+ memset(ent, 0, sizeof(intmap_entry_t));
34 break;
35 }
36
37--
381.7.5.4
39
diff --git a/recipes-virtualization/hypervisor/files/81-fsl-embedded-hv.rules b/recipes-virtualization/hypervisor/files/81-fsl-embedded-hv.rules
new file mode 100644
index 0000000..5edfa11
--- /dev/null
+++ b/recipes-virtualization/hypervisor/files/81-fsl-embedded-hv.rules
@@ -0,0 +1,2 @@
1# Add rule to handle setting up device node for FSL HV mgmt driver
2SUBSYSTEM=="misc", KERNEL=="fsl-hv", NAME="fsl-hv"
diff --git a/recipes-virtualization/hypervisor/hypervisor_git.bb b/recipes-virtualization/hypervisor/hypervisor_git.bb
new file mode 100644
index 0000000..318c942
--- /dev/null
+++ b/recipes-virtualization/hypervisor/hypervisor_git.bb
@@ -0,0 +1,92 @@
1DESCRIPTION = "Freescale embedded hypervisor"
2SECTION = "embedded-hv"
3LICENSE = "BSD"
4LIC_FILES_CHKSUM = "file://README;endline=22;md5=0655bbc3b7d7166c30c87208b4e23cf0"
5
6PR = "r3"
7
8DEPENDS = "u-boot-mkimage-native"
9
10inherit deploy
11
12S = "${WORKDIR}/git"
13
14# TODO: fix dtc to use the already built package
15SRC_URI = " \
16 git://git.freescale.com/ppc/sdk/hypervisor/hypervisor.git;name=hypervisor;nobranch=1 \
17 git://git.freescale.com/ppc/sdk/hypervisor/kconfig.git;name=kconfig;destsuffix=git/kconfig;nobranch=1 \
18 git://git.freescale.com/ppc/sdk/hypervisor/libos.git;name=libos;destsuffix=git/libos;nobranch=1 \
19 git://www.jdl.com/software/dtc.git;name=dtc;destsuffix=dtc \
20 git://git.freescale.com/ppc/sdk/hypertrk.git;name=hypertrk;destsuffix=git/hypertrk;nobranch=1 \
21 file://81-fsl-embedded-hv.rules \
22 "
23
24SRCREV_FORMAT="hypervisor"
25SRCREV = "acbde15272d46a80bcf4a00d7d18ca4a86e49c16"
26SRCREV_t2080qds = "2a430ebaa59841fdb49c0c87f8766cc2ef99123b"
27SRCREV_t2080qds-64b = "2a430ebaa59841fdb49c0c87f8766cc2ef99123b"
28SRCREV_kconfig = "a56025d4da992b856796b0eccac2e410d751dbac"
29SRCREV_libos = "4691387e15be78d140142104f30b3f356281c46a"
30SRCREV_dtc = "033089f29099bdfd5c2d6986cdb9fd07b16cfde0"
31SRCREV_hypertrk = "975c98b562186afbd3bbf103ae54b96cf9b3e533"
32
33EXTRA_OEMAKE = 'CROSS_COMPILE=${TARGET_PREFIX} CC="${TARGET_PREFIX}gcc ${TOOLCHAIN_OPTIONS}"'
34
35DEFCONFIG = "defconfig"
36DEFCONFIG_powerpc64 = "64bit_defconfig"
37
38COMPATIBLE_HOST_fslmachine = ".*"
39COMPATIBLE_HOST ?= "(none)"
40
41inherit cml1
42do_configure () {
43 oe_runmake ${DEFCONFIG}
44}
45
46PKG_HV_HYPERTRK_SUPPORT = "n"
47do_compile () {
48 if [ "${PKG_HV_HYPERTRK_SUPPORT}" = "y" ]
49 then
50 oe_runmake silentoldconfig
51 export HV_DIR=$PWD
52 cd hypertrk
53 oe_runmake deploy
54 cd ..
55 fi
56
57 oe_runmake
58 oe_runmake partman
59}
60
61do_install () {
62 install -d ${D}/${bindir}
63 install ${S}/output/bin/linux/partman ${D}/${bindir}/partman
64
65 install -d ${D}${sysconfdir}/udev/rules.d
66 install -m 0644 ${WORKDIR}/81-fsl-embedded-hv.rules ${D}${sysconfdir}/udev/rules.d
67
68 install -d ${D}/boot/hv
69 install ${S}/output/.config ${D}/boot/hv/hypervisor.config
70 install -m 644 ${S}/output/bin/hv ${S}/output/bin/hv.map \
71 ${S}/output/bin/hv.uImage ${S}/output/bin/hv.bin \
72 ${D}/boot/hv/
73}
74
75do_deploy () {
76 install -d ${DEPLOYDIR}/hv/
77 install ${S}/output/.config ${DEPLOYDIR}/hv/hypervisor.config
78 install -m 644 ${S}/output/bin/hv ${S}/output/bin/hv.map \
79 ${S}/output/bin/hv.uImage ${S}/output/bin/hv.bin \
80 ${DEPLOYDIR}/hv/
81}
82addtask deploy before do_build after do_install
83
84do_deploy_append() {
85 rm -f ${S}/../hv
86}
87
88INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
89ALLOW_EMPTY_${PN} = "1"
90PACKAGES_prepend = "${PN}-image ${PN}-partman "
91FILES_${PN}-image = "/boot/"
92FILES_${PN}-partman = "${bindir}/partman"
diff --git a/recipes-virtualization/mux-server/files/mux-server-1.02.tar.gz b/recipes-virtualization/mux-server/files/mux-server-1.02.tar.gz
new file mode 100644
index 0000000..d8f2014
--- /dev/null
+++ b/recipes-virtualization/mux-server/files/mux-server-1.02.tar.gz
Binary files differ
diff --git a/recipes-virtualization/mux-server/mux-server_1.02.bb b/recipes-virtualization/mux-server/mux-server_1.02.bb
new file mode 100644
index 0000000..ab9cce1
--- /dev/null
+++ b/recipes-virtualization/mux-server/mux-server_1.02.bb
@@ -0,0 +1,16 @@
1DESCRIPTION = "A Linux-based utility supporting console multiplexing and demultiplexing"
2SECTION = "mux-server"
3LICENSE = "LGPL-2.1"
4# TODO: add a dedicated COPYING file
5LIC_FILES_CHKSUM = "file://mux_server.c;endline=9;md5=e59eeb0812bb88b7af2d932f2dc22aed"
6
7SRC_URI = "file://mux-server-${PV}.tar.gz;name=mux_server"
8
9EXTRA_OEMAKE='HOSTCC="${CC}"'
10
11do_install () {
12 install -d ${D}${bindir}
13 install -m 755 mux_server ${D}${bindir}
14}
15
16BBCLASSEXTEND = "native nativesdk"