From 177ef53047019757b70b5ca87171b2c88e26ba07 Mon Sep 17 00:00:00 2001 From: Adrian Dudau Date: Thu, 12 Dec 2013 13:41:56 +0100 Subject: initial commit of Enea Linux 3.1 Migrated from the internal git server on the dora-enea branch Signed-off-by: Adrian Dudau --- README | 45 + conf/layer.conf | 14 + conf/machine/b4420qds-64b.conf | 18 + conf/machine/b4420qds.conf | 17 + conf/machine/b4860qds-64b.conf | 17 + conf/machine/b4860qds.conf | 17 + conf/machine/bsc9131rdb.conf | 16 + conf/machine/bsc9132qds.conf | 16 + conf/machine/e500mc.inc | 17 + conf/machine/e500v2.inc | 15 + conf/machine/e5500-64b.inc | 18 + conf/machine/e5500.inc | 17 + conf/machine/e6500-64b.inc | 18 + conf/machine/e6500.inc | 17 + conf/machine/p1010rdb.conf | 17 + conf/machine/p1020rdb.conf | 19 + conf/machine/p1021rdb.conf | 18 + conf/machine/p1022ds.conf | 27 + conf/machine/p1023rdb.conf | 16 + conf/machine/p1025twr.conf | 18 + conf/machine/p2020ds.conf | 17 + conf/machine/p2020rdb.conf | 18 + conf/machine/p2041rdb.conf | 16 + conf/machine/p3041ds.conf | 16 + conf/machine/p4080ds.conf | 16 + conf/machine/p5020ds-64b.conf | 17 + conf/machine/p5020ds.conf | 16 + conf/machine/p5040ds-64b.conf | 16 + conf/machine/p5040ds.conf | 16 + conf/machine/t4160qds-64b.conf | 17 + conf/machine/t4160qds.conf | 17 + conf/machine/t4240qds-64b.conf | 17 + conf/machine/t4240qds.conf | 17 + custom-licenses/Freescale-EULA | 214 +++ custom-licenses/TestFloat | 24 + recipes-bsp/boot-format/boot-format_git.bb | 19 + recipes-bsp/rcw/rcw_git.bb | 41 + .../u-boot/files/Fix-the-depend-race-issue.patch | 38 + recipes-bsp/u-boot/u-boot_git.bb | 148 ++ recipes-core/sysvinit/sysvinit_2.88dsf.bbappend | 2 + .../71-fsl-dpaa-persistent-networking.rules | 20 + .../72-fsl-dpaa-persistent-networking.rules | 24 + recipes-core/udev/udev-extraconf/local.rules | 42 + recipes-core/udev/udev-extraconf_1.0.bbappend | 12 + recipes-core/udev/udev_182.bbappend | 2 + recipes-devtools/libedit/libedit_20121213.bb | 18 + ...x-texinfo-table-markup-in-qemu-options.hx.patch | 201 +++ ...x-generating-qemu-doc.html-with-texinfo-5.patch | 54 + recipes-devtools/qemu/files/fdt_header.patch | 39 + .../fix-libcap-header-issue-on-some-distro.patch | 84 + recipes-devtools/qemu/files/relocatable_sdk.patch | 34 + recipes-devtools/qemu/qemu_fslgit.bb | 53 + recipes-devtools/tclap/tclap_1.2.1.bb | 17 + recipes-dpaa/eth-config/eth-config_git.bb | 19 + recipes-dpaa/flib/flib_git.bb | 15 + recipes-dpaa/fm-ucode/fm-ucode_git.bb | 46 + recipes-dpaa/fmc/fmc_git.bb | 53 + ...ake-the-library-install-path-configurable.patch | 43 + recipes-dpaa/fmlib/fmlib_git.bb | 43 + recipes-dpaa/usdpaa/usdpaa_git.bb | 49 + recipes-extended/cst/cst_git.bb | 29 + recipes-extended/procps/procps_3.2.8.bbappend | 2 + .../testfloat/files/SoftFloat-powerpc-1.patch | 1427 +++++++++++++++++ .../files/TestFloat-powerpc-E500v2-SPE-1.patch | 1644 ++++++++++++++++++++ .../files/Yocto-replace-COMPILE_PREFIX-gcc.patch | 67 + recipes-extended/testfloat/testfloat_2a.bb | 45 + recipes-extended/web-sysmon/web-sysmon_git.bb | 21 + .../xorg-driver/xf86-video-fbdev_0.4.2.bb | 11 + .../xorg-driver/xorg-driver-common.inc | 40 + recipes-graphics/xorg-driver/xorg-driver-video.inc | 4 + .../xserver-xf86-config/p1022ds/xorg.conf | 27 + .../xorg-xserver/xserver-xf86-config_0.1.bbappend | 3 + recipes-kernel/asf/asf_git.bb | 45 + recipes-kernel/cryptodev/cryptodev_1.5.bb | 51 + ...pile-and-install-rules-for-cryptodev-test.patch | 69 + .../cryptodev/files/makefile_fixup.patch | 26 + ...-include-to-usr-local-include-in-Makefile.patch | 36 + recipes-kernel/linux/linux-qoriq-sdk.bb | 31 + recipes-kernel/linux/linux-qoriq-sdk.inc | 36 + recipes-kernel/qoriq-debug/qoriq-debug_git.bb | 34 + recipes-kernel/skmm/skmm_git.bb | 33 + recipes-virtualization/hv-cfg/hv-cfg_git.bb | 46 + .../0001-fix-sizeof-pointer-memaccess-error.patch | 39 + .../hypervisor/files/81-fsl-embedded-hv.rules | 2 + .../hypervisor/hypervisor_git.bb | 91 ++ .../mux-server/files/mux-server-1.02.tar.gz | Bin 0 -> 10021 bytes .../mux-server/mux-server_1.02.bb | 16 + 87 files changed, 5822 insertions(+) create mode 100644 README create mode 100644 conf/layer.conf create mode 100644 conf/machine/b4420qds-64b.conf create mode 100644 conf/machine/b4420qds.conf create mode 100644 conf/machine/b4860qds-64b.conf create mode 100644 conf/machine/b4860qds.conf create mode 100644 conf/machine/bsc9131rdb.conf create mode 100644 conf/machine/bsc9132qds.conf create mode 100644 conf/machine/e500mc.inc create mode 100644 conf/machine/e500v2.inc create mode 100644 conf/machine/e5500-64b.inc create mode 100644 conf/machine/e5500.inc create mode 100644 conf/machine/e6500-64b.inc create mode 100644 conf/machine/e6500.inc create mode 100644 conf/machine/p1010rdb.conf create mode 100644 conf/machine/p1020rdb.conf create mode 100644 conf/machine/p1021rdb.conf create mode 100644 conf/machine/p1022ds.conf create mode 100644 conf/machine/p1023rdb.conf create mode 100644 conf/machine/p1025twr.conf create mode 100644 conf/machine/p2020ds.conf create mode 100644 conf/machine/p2020rdb.conf create mode 100644 conf/machine/p2041rdb.conf create mode 100644 conf/machine/p3041ds.conf create mode 100644 conf/machine/p4080ds.conf create mode 100644 conf/machine/p5020ds-64b.conf create mode 100644 conf/machine/p5020ds.conf create mode 100644 conf/machine/p5040ds-64b.conf create mode 100644 conf/machine/p5040ds.conf create mode 100644 conf/machine/t4160qds-64b.conf create mode 100644 conf/machine/t4160qds.conf create mode 100644 conf/machine/t4240qds-64b.conf create mode 100644 conf/machine/t4240qds.conf create mode 100644 custom-licenses/Freescale-EULA create mode 100644 custom-licenses/TestFloat create mode 100644 recipes-bsp/boot-format/boot-format_git.bb create mode 100644 recipes-bsp/rcw/rcw_git.bb create mode 100644 recipes-bsp/u-boot/files/Fix-the-depend-race-issue.patch create mode 100644 recipes-bsp/u-boot/u-boot_git.bb create mode 100644 recipes-core/sysvinit/sysvinit_2.88dsf.bbappend create mode 100644 recipes-core/udev/udev-extraconf/71-fsl-dpaa-persistent-networking.rules create mode 100644 recipes-core/udev/udev-extraconf/72-fsl-dpaa-persistent-networking.rules create mode 100644 recipes-core/udev/udev-extraconf/local.rules create mode 100644 recipes-core/udev/udev-extraconf_1.0.bbappend create mode 100644 recipes-core/udev/udev_182.bbappend create mode 100644 recipes-devtools/libedit/libedit_20121213.bb create mode 100644 recipes-devtools/qemu/files/0001-doc-Fix-texinfo-table-markup-in-qemu-options.hx.patch create mode 100644 recipes-devtools/qemu/files/0002-docs-Fix-generating-qemu-doc.html-with-texinfo-5.patch create mode 100644 recipes-devtools/qemu/files/fdt_header.patch create mode 100644 recipes-devtools/qemu/files/fix-libcap-header-issue-on-some-distro.patch create mode 100644 recipes-devtools/qemu/files/relocatable_sdk.patch create mode 100644 recipes-devtools/qemu/qemu_fslgit.bb create mode 100644 recipes-devtools/tclap/tclap_1.2.1.bb create mode 100644 recipes-dpaa/eth-config/eth-config_git.bb create mode 100644 recipes-dpaa/flib/flib_git.bb create mode 100644 recipes-dpaa/fm-ucode/fm-ucode_git.bb create mode 100644 recipes-dpaa/fmc/fmc_git.bb create mode 100644 recipes-dpaa/fmlib/files/0001-fm-lib-make-the-library-install-path-configurable.patch create mode 100644 recipes-dpaa/fmlib/fmlib_git.bb create mode 100644 recipes-dpaa/usdpaa/usdpaa_git.bb create mode 100644 recipes-extended/cst/cst_git.bb create mode 100644 recipes-extended/procps/procps_3.2.8.bbappend create mode 100644 recipes-extended/testfloat/files/SoftFloat-powerpc-1.patch create mode 100644 recipes-extended/testfloat/files/TestFloat-powerpc-E500v2-SPE-1.patch create mode 100644 recipes-extended/testfloat/files/Yocto-replace-COMPILE_PREFIX-gcc.patch create mode 100644 recipes-extended/testfloat/testfloat_2a.bb create mode 100644 recipes-extended/web-sysmon/web-sysmon_git.bb create mode 100644 recipes-graphics/xorg-driver/xf86-video-fbdev_0.4.2.bb create mode 100644 recipes-graphics/xorg-driver/xorg-driver-common.inc create mode 100644 recipes-graphics/xorg-driver/xorg-driver-video.inc create mode 100644 recipes-graphics/xorg-xserver/xserver-xf86-config/p1022ds/xorg.conf create mode 100644 recipes-graphics/xorg-xserver/xserver-xf86-config_0.1.bbappend create mode 100644 recipes-kernel/asf/asf_git.bb create mode 100644 recipes-kernel/cryptodev/cryptodev_1.5.bb create mode 100644 recipes-kernel/cryptodev/files/Add-the-compile-and-install-rules-for-cryptodev-test.patch create mode 100644 recipes-kernel/cryptodev/files/makefile_fixup.patch create mode 100644 recipes-kernel/linux/files/libtraceevent-Remove-hard-coded-include-to-usr-local-include-in-Makefile.patch create mode 100644 recipes-kernel/linux/linux-qoriq-sdk.bb create mode 100644 recipes-kernel/linux/linux-qoriq-sdk.inc create mode 100644 recipes-kernel/qoriq-debug/qoriq-debug_git.bb create mode 100644 recipes-kernel/skmm/skmm_git.bb create mode 100644 recipes-virtualization/hv-cfg/hv-cfg_git.bb create mode 100644 recipes-virtualization/hypervisor/files/0001-fix-sizeof-pointer-memaccess-error.patch create mode 100644 recipes-virtualization/hypervisor/files/81-fsl-embedded-hv.rules create mode 100644 recipes-virtualization/hypervisor/hypervisor_git.bb create mode 100644 recipes-virtualization/mux-server/files/mux-server-1.02.tar.gz create mode 100644 recipes-virtualization/mux-server/mux-server_1.02.bb diff --git a/README b/README new file mode 100644 index 0000000..2258bf9 --- /dev/null +++ b/README @@ -0,0 +1,45 @@ +OpenEmbedded/Yocto BSP layer for Freescale's PPC platforms +========================================================== + +This layer provides support for Freescale's PPC platforms for use with +OpenEmbedded and/or Yocto. + +This layer depends on: + +URI: git://git.yoctoproject.org/poky +branch: dora +revision: HEAD + +Contributing +------------ + +To contribute to this layer you should the patches for review to the +mailing list. + +Mailing list: + + https://lists.yoctoproject.org/listinfo/meta-freescale + +Source code: + + git://git.yoctoproject.org/meta-fsl-ppc + http://git.yoctoproject.org/git/meta-fsl-ppc + +When creating patches, please use something like: + + git format-patch -s --subject-prefix='meta-fsl-ppc dora][PATCH' origin +optionally include a branch if the patch applies to multiple branches, +otherwise master is assumed + +When sending patches, please use something like: + + git send-email --to meta-freescale@yoctoproject.org + +git.yoctoproject.org vs. git.freescale.com: +------------------------------------------- + +git.yoctoproject.org hosts the official upstream work of Freescale's OE/YP repos, +for official SDK releases at times we need to do last minute fixes or include things +not supported upstream so we have a different repo on git.freescale.com for the +official release. git.freescale.com should be based off repos from git.yoctoproject.org + 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 @@ +# We have a packages directory, add to BBFILES +BBPATH .= ":${LAYERDIR}" + +BBFILES += "${LAYERDIR}/recipes-*/*/*.bb*" +BBFILES += "${LAYERDIR}/images/*.bb*" + +BBFILE_COLLECTIONS += "fsl-ppc" +BBFILE_PATTERN_fsl-ppc = "^${LAYERDIR}/" +BBFILE_PRIORITY_fsl-ppc = "5" + +BB_ENV_EXTRAWHITE := "KSRC USRC" + +LICENSE_PATH += "${LAYERDIR}/custom-licenses" + diff --git a/conf/machine/b4420qds-64b.conf b/conf/machine/b4420qds-64b.conf new file mode 100644 index 0000000..ec697ab --- /dev/null +++ b/conf/machine/b4420qds-64b.conf @@ -0,0 +1,18 @@ +#@TYPE: Machine +#@DESCRIPTION: Machine configuration for running B4420QDS in 64-bit mode + +require e6500-64b.inc +require conf/machine/include/soc-family.inc + +SOC_FAMILY = "b4420" + +# TODO: fix 32bit build of u-boot +UBOOT_MACHINES ?= "B4420QDS" +KERNEL_DEVICETREE = "b4420qds.dtb b4420qds-usdpaa.dtb" +KERNEL_DEFCONFIG = "${S}/arch/powerpc/configs/85xx/e6500rev1_defconfig" + +JFFS2_ERASEBLOCK = "0x10000" + +SERIAL_CONSOLES = "115200;ttyS0 115200;ttyS1 115200;ttyEHV0" +SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}" +USE_VT = "0" diff --git a/conf/machine/b4420qds.conf b/conf/machine/b4420qds.conf new file mode 100644 index 0000000..2ae5b5b --- /dev/null +++ b/conf/machine/b4420qds.conf @@ -0,0 +1,17 @@ +#@TYPE: Machine +#@DESCRIPTION: Machine configuration for running B4420QDS in 32-bit mode + +require e6500.inc +require conf/machine/include/soc-family.inc + +SOC_FAMILY = "b4420" +UBOOT_MACHINES ?= "B4420QDS" +KERNEL_DEVICETREE = "b4420qds.dtb b4420qds-usdpaa.dtb" +KERNEL_DEFCONFIG = "${S}/arch/powerpc/configs/85xx/e6500rev1_defconfig" + +JFFS2_ERASEBLOCK = "0x10000" + +SERIAL_CONSOLES = "115200;ttyS0 115200;ttyS1 115200;ttyEHV0" +SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}" +USE_VT = "0" +BUILD_64BIT_KERNEL = "1" diff --git a/conf/machine/b4860qds-64b.conf b/conf/machine/b4860qds-64b.conf new file mode 100644 index 0000000..06268ef --- /dev/null +++ b/conf/machine/b4860qds-64b.conf @@ -0,0 +1,17 @@ +#@TYPE: Machine +#@DESCRIPTION: Machine configuration for running B4860QDS in 64-bit mode + +require e6500-64b.inc +require conf/machine/include/soc-family.inc + +SOC_FAMILY = "b4860" +# TODO: fix 32bit build of u-boot +UBOOT_MACHINES ?= "B4860QDS" +KERNEL_DEVICETREE = "b4860qds.dtb b4860qds-usdpaa.dtb" +KERNEL_DEFCONFIG = "${S}/arch/powerpc/configs/85xx/e6500rev1_defconfig" + +JFFS2_ERASEBLOCK = "0x10000" + +SERIAL_CONSOLES = "115200;ttyS0 115200;ttyS1 115200;ttyEHV0" +SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}" +USE_VT = "0" diff --git a/conf/machine/b4860qds.conf b/conf/machine/b4860qds.conf new file mode 100644 index 0000000..6ca29e3 --- /dev/null +++ b/conf/machine/b4860qds.conf @@ -0,0 +1,17 @@ +#@TYPE: Machine +#@DESCRIPTION: Machine configuration for running B4860QDS in 32-bit mode + +require e6500.inc +require conf/machine/include/soc-family.inc + +SOC_FAMILY = "b4860" +UBOOT_MACHINES ?= "B4860QDS" +KERNEL_DEVICETREE = "b4860qds.dtb b4860qds-usdpaa.dtb" +KERNEL_DEFCONFIG = "${S}/arch/powerpc/configs/85xx/e6500rev1_defconfig" + +JFFS2_ERASEBLOCK = "0x10000" + +SERIAL_CONSOLES = "115200;ttyS0 115200;ttyS1 115200;ttyEHV0" +SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}" +USE_VT = "0" +BUILD_64BIT_KERNEL = "1" diff --git a/conf/machine/bsc9131rdb.conf b/conf/machine/bsc9131rdb.conf new file mode 100644 index 0000000..766d5d2 --- /dev/null +++ b/conf/machine/bsc9131rdb.conf @@ -0,0 +1,16 @@ +#@TYPE: Machine +#@DESCRIPTION: Machine configuration for running + +require e500v2.inc +require conf/machine/include/soc-family.inc + +SOC_FAMILY = "bsc9131" +UBOOT_MACHINES ?= "BSC9131RDB_SPIFLASH BSC9131RDB_NAND BSC9131RDB_NAND_SYSCLK100 BSC9131RDB_SPIFLASH_SYSCLK100" +KERNEL_DEVICETREE = "bsc9131rdb.dtb" +KERNEL_DEFCONFIG = "${S}/arch/powerpc/configs/85xx/bsc913x_defconfig" + +JFFS2_ERASEBLOCK = "0x10000" + +SERIAL_CONSOLES = "115200;ttyS0 115200;ttyS1 115200;ttyEHV0" +SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}" +USE_VT = "0" diff --git a/conf/machine/bsc9132qds.conf b/conf/machine/bsc9132qds.conf new file mode 100644 index 0000000..9baa49b --- /dev/null +++ b/conf/machine/bsc9132qds.conf @@ -0,0 +1,16 @@ +#@TYPE: Machine +#@DESCRIPTION: Machine configuration for running + +require e500v2.inc +require conf/machine/include/soc-family.inc + +SOC_FAMILY = "bsc9132" +UBOOT_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" +KERNEL_DEVICETREE = "bsc9132qds.dtb" +KERNEL_DEFCONFIG = "${S}/arch/powerpc/configs/85xx/bsc913x_smp_defconfig" + +JFFS2_ERASEBLOCK = "0x10000" + +SERIAL_CONSOLES = "115200;ttyS0 115200;ttyS1 115200;ttyEHV0" +SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}" +USE_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 @@ +TARGET_FPU = "hard" + +require conf/machine/include/tune-ppce500mc.inc + +MACHINE_FEATURES = "kernel26 keyboard pci ext2 ext3 serial" +MACHINE_EXTRA_RRECOMMENDS = "u-boot udev-extraconf" + +PREFERRED_PROVIDER_virtual/kernel ?= "linux-qoriq-sdk" +PREFERRED_VERSION_virtual/kernel ?= "3.0.34" +PREFERRED_VERSION_qemu = "1.4+fsl" + +KERNEL_IMAGETYPE ?= "uImage" +# disable the images below for now +# ext2.bz2 ext2.lzma \ +# ext2.gz.u-boot ext2.bz2.u-boot ext2.lzma.u-boot" + +MACHINEOVERRIDES .= ":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 @@ +require conf/machine/include/tune-ppce500v2.inc + +MACHINE_FEATURES = "kernel26 pci ext2 ext3 serial" +MACHINE_EXTRA_RRECOMMENDS = "u-boot udev-extraconf" + +PREFERRED_PROVIDER_virtual/kernel ?= "linux-qoriq-sdk" +PREFERRED_VERSION_virtual/kernel ?= "3.0.34" +PREFERRED_VERSION_qemu = "1.4+fsl" + +KERNEL_IMAGETYPE ?= "uImage" +# disable the images below for now +# ext2.bz2 ext2.lzma \ +# ext2.gz.u-boot ext2.bz2.u-boot ext2.lzma.u-boot" + +MACHINEOVERRIDES .= ":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 @@ +TARGET_FPU = "hard" + +DEFAULTTUNE ?= "ppc64e5500" +require conf/machine/include/tune-ppce5500.inc + +MACHINE_FEATURES = "kernel26 keyboard pci ext2 ext3 serial" +MACHINE_EXTRA_RRECOMMENDS = "u-boot udev-extraconf" + +PREFERRED_PROVIDER_virtual/kernel ?= "linux-qoriq-sdk" +PREFERRED_VERSION_virtual/kernel ?= "3.0.34" +PREFERRED_VERSION_qemu = "1.4+fsl" + +KERNEL_IMAGETYPE ?= "uImage" +# disable the images below for now +# ext2.bz2 ext2.lzma \ +# ext2.gz.u-boot ext2.bz2.u-boot ext2.lzma.u-boot" + +MACHINEOVERRIDES .= ":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 @@ +TARGET_FPU = "hard" + +require conf/machine/include/tune-ppce5500.inc + +MACHINE_FEATURES = "kernel26 keyboard pci ext2 ext3 serial" +MACHINE_EXTRA_RRECOMMENDS = "u-boot udev-extraconf" + +PREFERRED_PROVIDER_virtual/kernel ?= "linux-qoriq-sdk" +PREFERRED_VERSION_virtual/kernel ?= "3.0.34" +PREFERRED_VERSION_qemu = "1.4+fsl" + +KERNEL_IMAGETYPE ?= "uImage" +# disable the images below for now +# ext2.bz2 ext2.lzma \ +# ext2.gz.u-boot ext2.bz2.u-boot ext2.lzma.u-boot" + +MACHINEOVERRIDES .= ":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 @@ +TARGET_FPU = "hard" + +DEFAULTTUNE ?= "ppc64e6500" +require conf/machine/include/tune-ppce6500.inc + +MACHINE_FEATURES = "kernel26 keyboard pci ext2 ext3 serial" +MACHINE_EXTRA_RRECOMMENDS = "u-boot udev-extraconf" + +PREFERRED_PROVIDER_virtual/kernel ?= "linux-qoriq-sdk" +PREFERRED_VERSION_virtual/kernel ?= "3.0.34" +PREFERRED_VERSION_qemu = "1.4+fsl" + +KERNEL_IMAGETYPE ?= "uImage" +# disable the images below for now +# ext2.bz2 ext2.lzma \ +# ext2.gz.u-boot ext2.bz2.u-boot ext2.lzma.u-boot" + +MACHINEOVERRIDES .= ":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 @@ +TARGET_FPU = "hard" + +require conf/machine/include/tune-ppce6500.inc + +MACHINE_FEATURES = "kernel26 keyboard pci ext2 ext3 serial" +MACHINE_EXTRA_RRECOMMENDS = "u-boot udev-extraconf" + +PREFERRED_PROVIDER_virtual/kernel ?= "linux-qoriq-sdk" +PREFERRED_VERSION_virtual/kernel ?= "3.0.34" +PREFERRED_VERSION_qemu = "1.4+fsl" + +KERNEL_IMAGETYPE ?= "uImage" +# disable the images below for now +# ext2.bz2 ext2.lzma \ +# ext2.gz.u-boot ext2.bz2.u-boot ext2.lzma.u-boot" + +MACHINEOVERRIDES .= ":e6500:fslmachine" diff --git a/conf/machine/p1010rdb.conf b/conf/machine/p1010rdb.conf new file mode 100644 index 0000000..2ee53fc --- /dev/null +++ b/conf/machine/p1010rdb.conf @@ -0,0 +1,17 @@ +#@TYPE: Machine +#@Name: Freescale P1010RDB +#@DESCRIPTION: Machine configuration for the Freescale P1010RDB + +require e500v2.inc +require conf/machine/include/soc-family.inc + +SOC_FAMILY = "p1010" +UBOOT_MACHINES ?= "P1010RDB_NAND P1010RDB_NOR" +KERNEL_DEVICETREE = "p1010rdb.dtb" +KERNEL_DEFCONFIG = "${S}/arch/powerpc/configs/mpc85xx_defconfig" + +JFFS2_ERASEBLOCK = "0x20000" + +SERIAL_CONSOLES = "115200;ttyS0 115200;ttyS1 115200;ttyEHV0" +SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}" +USE_VT = "0" diff --git a/conf/machine/p1020rdb.conf b/conf/machine/p1020rdb.conf new file mode 100644 index 0000000..ced2d37 --- /dev/null +++ b/conf/machine/p1020rdb.conf @@ -0,0 +1,19 @@ +#@TYPE: Machine +#@DESCRIPTION: Machine configuration for running + +require e500v2.inc +require conf/machine/include/soc-family.inc + +SOC_FAMILY = "p1020" +BOOTFORMAT_CONFIG = "config_ddr3_1gb_p1_p2_rdb_pc_800M.dat" +UBOOT_MACHINES ?= " P1020RDB-PD P1020RDB-PD_NAND P1020RDB-PD_SDCARD P1020RDB-PD_SPIFLASH" + +KERNEL_DEVICETREE = "p1020rdb-pd_32b.dtb" + +KERNEL_DEFCONFIG = "${S}/arch/powerpc/configs/mpc85xx_smp_defconfig" + +JFFS2_ERASEBLOCK = "0x20000" + +SERIAL_CONSOLES = "115200;ttyS0 115200;ttyS1 115200;ttyEHV0" +SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}" +USE_VT = "0" diff --git a/conf/machine/p1021rdb.conf b/conf/machine/p1021rdb.conf new file mode 100644 index 0000000..2e62adb --- /dev/null +++ b/conf/machine/p1021rdb.conf @@ -0,0 +1,18 @@ +#@TYPE: Machine +#@Name: Freescale P1021RDB +#@DESCRIPTION: Machine configuration for the Freescale P1021RDB + +require e500v2.inc +require conf/machine/include/soc-family.inc + +SOC_FAMILY = "p1021" +BOOTFORMAT_CONFIG = "config_ddr3_1gb_p1_p2_rdb_pc_800M.dat" +UBOOT_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" +KERNEL_DEVICETREE = "p1021rdb-pc_32b.dtb" +KERNEL_DEFCONFIG = "${S}/arch/powerpc/configs/mpc85xx_smp_defconfig" + +JFFS2_ERASEBLOCK = "0x20000" + +SERIAL_CONSOLES = "115200;ttyS0 115200;ttyS1 115200;ttyEHV0" +SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}" +USE_VT = "0" diff --git a/conf/machine/p1022ds.conf b/conf/machine/p1022ds.conf new file mode 100644 index 0000000..624353f --- /dev/null +++ b/conf/machine/p1022ds.conf @@ -0,0 +1,27 @@ +#@TYPE: Machine +#@DESCRIPTION: Machine configuration for running + +require e500v2.inc +require conf/machine/include/soc-family.inc + +SOC_FAMILY = "p1022" +BOOTFORMAT_CONFIG = "config_ddr3_2gb_p1022ds.dat" +UBOOT_MACHINES ?= "P1022DS P1022DS_NAND P1022DS_SPIFLASH P1022DS_SDCARD P1022DS_36BIT P1022DS_36BIT_SPIFLASH P1022DS_36BIT_NAND P1022DS_36BIT_SDCARD" +KERNEL_DEVICETREE = "p1022ds_32b.dtb" +KERNEL_DEFCONFIG = "${S}/arch/powerpc/configs/mpc85xx_smp_defconfig" + +PREFERRED_PROVIDER_virtual/xserver ?= "xserver-xorg" + +XSERVER = " \ + xserver-xorg \ + xf86-input-evdev \ + xf86-input-mouse \ + xf86-input-keyboard \ + xf86-video-fbdev \ +" + +JFFS2_ERASEBLOCK = "0x20000" + +SERIAL_CONSOLES = "115200;ttyS0 115200;ttyS1 115200;ttyEHV0" +SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}" +USE_VT = "0" diff --git a/conf/machine/p1023rdb.conf b/conf/machine/p1023rdb.conf new file mode 100644 index 0000000..3422cbf --- /dev/null +++ b/conf/machine/p1023rdb.conf @@ -0,0 +1,16 @@ +#@TYPE: Machine +#@DESCRIPTION: Machine configuration for running + +require e500v2.inc +require conf/machine/include/soc-family.inc + +SOC_FAMILY = "p1023" +UBOOT_MACHINES ?= "P1023RDB" +KERNEL_DEVICETREE = "p1023rdb.dtb" +KERNEL_DEFCONFIG = "${S}/arch/powerpc/configs/85xx/p1023rds_defconfig" + +JFFS2_ERASEBLOCK = "0x10000" + +SERIAL_CONSOLES = "115200;ttyS0 115200;ttyS1 115200;ttyEHV0" +SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}" +USE_VT = "0" diff --git a/conf/machine/p1025twr.conf b/conf/machine/p1025twr.conf new file mode 100644 index 0000000..286ec69 --- /dev/null +++ b/conf/machine/p1025twr.conf @@ -0,0 +1,18 @@ +#@TYPE: Machine +#@Name: Freescale P1025TWR +#@DESCRIPTION: Machine configuration for the Freescale P1025TWR + +require e500v2.inc +require conf/machine/include/soc-family.inc + +SOC_FAMILY = "p1025" +BOOTFORMAT_CONFIG = "config_ddr3_1gb_p1_p2_rdb_pc_667M.dat" +UBOOT_MACHINES ?= "TWR-P1025" +KERNEL_DEVICETREE = "p1025twr_32b.dtb" +KERNEL_DEFCONFIG = "${S}/arch/powerpc/configs/mpc85xx_smp_defconfig" + +JFFS2_ERASEBLOCK = "0x20000" + +SERIAL_CONSOLES = "115200;ttyS0 115200;ttyS1 115200;ttyEHV0" +SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}" +USE_VT = "0" diff --git a/conf/machine/p2020ds.conf b/conf/machine/p2020ds.conf new file mode 100644 index 0000000..a69e62c --- /dev/null +++ b/conf/machine/p2020ds.conf @@ -0,0 +1,17 @@ +#@TYPE: Machine +#@DESCRIPTION: Machine configuration for running + +require e500v2.inc +require conf/machine/include/soc-family.inc + +SOC_FAMILY = "p2020" +BOOTFORMAT_CONFIG = "config_sram_p2020ds.dat" +UBOOT_MACHINES ?= "P2020DS P2020DS_36BIT P2020DS_DDR2 P2020DS_SDCARD P2020DS_SPIFLASH" +KERNEL_DEVICETREE = "p2020ds.dtb" +KERNEL_DEFCONFIG = "${S}/arch/powerpc/configs/mpc85xx_smp_defconfig" + +JFFS2_ERASEBLOCK = "0x20000" + +SERIAL_CONSOLES = "115200;ttyS0 115200;ttyS1 115200;ttyEHV0" +SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}" +USE_VT = "0" diff --git a/conf/machine/p2020rdb.conf b/conf/machine/p2020rdb.conf new file mode 100644 index 0000000..b9d9590 --- /dev/null +++ b/conf/machine/p2020rdb.conf @@ -0,0 +1,18 @@ +#@TYPE: Machine +#@Name: Freescale P2020RDB +#@DESCRIPTION: Machine configuration for the Freescale P2020RDB + +require e500v2.inc +require conf/machine/include/soc-family.inc + +SOC_FAMILY = "p2020" +BOOTFORMAT_CONFIG = "config_ddr3_1gb_64bit_p2020rdb_pc.dat" +UBOOT_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" +KERNEL_DEVICETREE = "p2020rdb-pc_32b.dtb" +KERNEL_DEFCONFIG = "${S}/arch/powerpc/configs/mpc85xx_smp_defconfig" + +JFFS2_ERASEBLOCK = "0x20000" + +SERIAL_CONSOLES = "115200;ttyS0 115200;ttyS1 115200;ttyEHV0" +SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}" +USE_VT = "0" diff --git a/conf/machine/p2041rdb.conf b/conf/machine/p2041rdb.conf new file mode 100644 index 0000000..bc6764f --- /dev/null +++ b/conf/machine/p2041rdb.conf @@ -0,0 +1,16 @@ +#@TYPE: Machine +#@DESCRIPTION: Machine configuration for running + +require e500mc.inc +require conf/machine/include/soc-family.inc + +SOC_FAMILY = "p2041" +UBOOT_MACHINES ?= "P2041RDB P2041RDB_NAND P2041RDB_SECURE_BOOT P2041RDB_SDCARD P2041RDB_SPIFLASH" +KERNEL_DEVICETREE = "p2041rdb.dtb p2041rdb-usdpaa.dtb" +KERNEL_DEFCONFIG = "${S}/arch/powerpc/configs/corenet32_smp_defconfig" + +JFFS2_ERASEBLOCK = "0x10000" + +SERIAL_CONSOLES = "115200;ttyS0 115200;ttyS1 115200;ttyEHV0" +SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}" +USE_VT = "0" diff --git a/conf/machine/p3041ds.conf b/conf/machine/p3041ds.conf new file mode 100644 index 0000000..ced9590 --- /dev/null +++ b/conf/machine/p3041ds.conf @@ -0,0 +1,16 @@ +#@TYPE: Machine +#@DESCRIPTION: Machine configuration for running + +require e500mc.inc +require conf/machine/include/soc-family.inc + +SOC_FAMILY = "p3041" +UBOOT_MACHINES ?= "P3041DS P3041DS_NAND P3041DS_SECURE_BOOT P3041DS_SDCARD P3041DS_SPIFLASH" +KERNEL_DEVICETREE = "p3041ds.dtb p3041ds-usdpaa.dtb" +KERNEL_DEFCONFIG = "${S}/arch/powerpc/configs/corenet32_smp_defconfig" + +JFFS2_ERASEBLOCK = "0x10000" + +SERIAL_CONSOLES = "115200;ttyS0 115200;ttyS1 115200;ttyEHV0" +SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}" +USE_VT = "0" diff --git a/conf/machine/p4080ds.conf b/conf/machine/p4080ds.conf new file mode 100644 index 0000000..6f4a89e --- /dev/null +++ b/conf/machine/p4080ds.conf @@ -0,0 +1,16 @@ +#@TYPE: Machine +#@DESCRIPTION: Machine configuration for running + +require e500mc.inc +require conf/machine/include/soc-family.inc + +SOC_FAMILY = "p4080" +UBOOT_MACHINES ?= "P4080DS P4080DS_SECURE_BOOT P4080DS_SDCARD P4080DS_SPIFLASH " +KERNEL_DEVICETREE = "p4080ds.dtb p4080ds-usdpaa.dtb" +KERNEL_DEFCONFIG = "${S}/arch/powerpc/configs/corenet32_smp_defconfig" + +JFFS2_ERASEBLOCK = "0x10000" + +SERIAL_CONSOLES = "115200;ttyS0 115200;ttyS1 115200;ttyEHV0" +SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}" +USE_VT = "0" diff --git a/conf/machine/p5020ds-64b.conf b/conf/machine/p5020ds-64b.conf new file mode 100644 index 0000000..968deaa --- /dev/null +++ b/conf/machine/p5020ds-64b.conf @@ -0,0 +1,17 @@ +#@TYPE: Machine +#@DESCRIPTION: Machine configuration for running + +require e5500-64b.inc +require conf/machine/include/soc-family.inc + +SOC_FAMILY = "p5020" +# TODO: fix 32bit build of u-boot for p5020ds-64b +UBOOT_MACHINES ?= "P5020DS" +KERNEL_DEVICETREE = "p5020ds.dtb p5020ds-usdpaa.dtb" +KERNEL_DEFCONFIG = "${S}/arch/powerpc/configs/corenet64_smp_defconfig" + +JFFS2_ERASEBLOCK = "0x10000" + +SERIAL_CONSOLES = "115200;ttyS0 115200;ttyS1 115200;ttyEHV0" +SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}" +USE_VT = "0" diff --git a/conf/machine/p5020ds.conf b/conf/machine/p5020ds.conf new file mode 100644 index 0000000..1a4055a --- /dev/null +++ b/conf/machine/p5020ds.conf @@ -0,0 +1,16 @@ +#@TYPE: Machine +#@DESCRIPTION: Machine configuration for running + +require e5500.inc +require conf/machine/include/soc-family.inc + +SOC_FAMILY = "p5020" +UBOOT_MACHINES ?= "P5020DS P5020DS_NAND P5020DS_SECURE_BOOT P5020DS_SDCARD P5020DS_SPIFLASH " +KERNEL_DEVICETREE = "p5020ds.dtb p5020ds-usdpaa.dtb" +KERNEL_DEFCONFIG = "${S}/arch/powerpc/configs/corenet32_smp_defconfig" + +JFFS2_ERASEBLOCK = "0x10000" + +SERIAL_CONSOLES = "115200;ttyS0 115200;ttyS1 115200;ttyEHV0" +SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}" +USE_VT = "0" diff --git a/conf/machine/p5040ds-64b.conf b/conf/machine/p5040ds-64b.conf new file mode 100644 index 0000000..4fdc3d6 --- /dev/null +++ b/conf/machine/p5040ds-64b.conf @@ -0,0 +1,16 @@ +#@TYPE: Machine +#@DESCRIPTION: Machine configuration for running + +require e5500-64b.inc +require conf/machine/include/soc-family.inc + +SOC_FAMILY = "p5040" +UBOOT_MACHINES ?= "P5040DS P5040DS_NAND P5040DS_SECURE_BOOT P5040DS_SDCARD P5040DS_SPIFLASH" +KERNEL_DEVICETREE = "p5040ds.dtb p5040ds-usdpaa.dtb" +KERNEL_DEFCONFIG = "${S}/arch/powerpc/configs/corenet64_smp_defconfig" + +JFFS2_ERASEBLOCK = "0x10000" + +SERIAL_CONSOLES = "115200;ttyS0 115200;ttyS1 115200;ttyEHV0" +SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}" +USE_VT = "0" diff --git a/conf/machine/p5040ds.conf b/conf/machine/p5040ds.conf new file mode 100644 index 0000000..53a3f09 --- /dev/null +++ b/conf/machine/p5040ds.conf @@ -0,0 +1,16 @@ +#@TYPE: Machine +#@DESCRIPTION: Machine configuration for running + +require e5500.inc +require conf/machine/include/soc-family.inc + +SOC_FAMILY = "p5040" +UBOOT_MACHINES ?= "P5040DS P5040DS_NAND P5040DS_SECURE_BOOT P5040DS_SDCARD P5040DS_SPIFLASH" +KERNEL_DEVICETREE = "p5040ds.dtb p5040ds-usdpaa.dtb" +KERNEL_DEFCONFIG = "${S}/arch/powerpc/configs/corenet32_smp_defconfig" + +JFFS2_ERASEBLOCK = "0x10000" + +SERIAL_CONSOLES = "115200;ttyS0 115200;ttyS1 115200;ttyEHV0" +SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}" +USE_VT = "0" diff --git a/conf/machine/t4160qds-64b.conf b/conf/machine/t4160qds-64b.conf new file mode 100644 index 0000000..af07526 --- /dev/null +++ b/conf/machine/t4160qds-64b.conf @@ -0,0 +1,17 @@ +#@TYPE: Machine +#@DESCRIPTION: Machine configuration for running T4160QDS in 64-bit mode + +require e6500-64b.inc +require conf/machine/include/soc-family.inc + +SOC_FAMILY = "t4160" +# TODO: fix 32bit build of u-boot +UBOOT_MACHINES ?= "T4160QDS" +KERNEL_DEVICETREE = "t4240qds.dtb t4240qds-usdpaa.dtb" +KERNEL_DEFCONFIG = "${S}/arch/powerpc/configs/85xx/e6500rev1_defconfig" + +JFFS2_ERASEBLOCK = "0x10000" + +SERIAL_CONSOLES = "115200;ttyS0 115200;ttyS1 115200;ttyEHV0" +SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}" +USE_VT = "0" diff --git a/conf/machine/t4160qds.conf b/conf/machine/t4160qds.conf new file mode 100644 index 0000000..150bbcd --- /dev/null +++ b/conf/machine/t4160qds.conf @@ -0,0 +1,17 @@ +#@TYPE: Machine +#@DESCRIPTION: Machine configuration for running T4160QDS in 32-bit mode + +require e6500.inc +require conf/machine/include/soc-family.inc + +SOC_FAMILY = "t4160" +UBOOT_MACHINES ?= "T4160QDS" +KERNEL_DEVICETREE = "t4240qds.dtb t4240qds-usdpaa.dtb" +KERNEL_DEFCONFIG = "${S}/arch/powerpc/configs/85xx/e6500rev1_defconfig" + +JFFS2_ERASEBLOCK = "0x10000" + +SERIAL_CONSOLES = "115200;ttyS0 115200;ttyS1 115200;ttyEHV0" +SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}" +USE_VT = "0" +BUILD_64BIT_KERNEL = "1" diff --git a/conf/machine/t4240qds-64b.conf b/conf/machine/t4240qds-64b.conf new file mode 100644 index 0000000..24a53dd --- /dev/null +++ b/conf/machine/t4240qds-64b.conf @@ -0,0 +1,17 @@ +#@TYPE: Machine +#@DESCRIPTION: Machine configuration for running T4240QDS in 64-bit mode + +require e6500-64b.inc +require conf/machine/include/soc-family.inc + +SOC_FAMILY = "t4240" +# TODO: fix 32bit build of u-boot +UBOOT_MACHINES ?= "T4240QDS" +KERNEL_DEVICETREE = "t4240qds.dtb t4240qds-usdpaa.dtb" +KERNEL_DEFCONFIG = "${S}/arch/powerpc/configs/85xx/e6500rev1_defconfig" + +JFFS2_ERASEBLOCK = "0x10000" + +SERIAL_CONSOLES = "115200;ttyS0 115200;ttyS1 115200;ttyEHV0" +SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}" +USE_VT = "0" diff --git a/conf/machine/t4240qds.conf b/conf/machine/t4240qds.conf new file mode 100644 index 0000000..8066e28 --- /dev/null +++ b/conf/machine/t4240qds.conf @@ -0,0 +1,17 @@ +#@TYPE: Machine +#@DESCRIPTION: Machine configuration for running T4240QDS in 32-bit mode + +require e6500.inc +require conf/machine/include/soc-family.inc + +SOC_FAMILY = "t4240" +UBOOT_MACHINES ?= "T4240QDS" +KERNEL_DEVICETREE = "t4240qds.dtb t4240qds-usdpaa.dtb" +KERNEL_DEFCONFIG = "${S}/arch/powerpc/configs/85xx/e6500rev1_defconfig" + +JFFS2_ERASEBLOCK = "0x10000" + +SERIAL_CONSOLES = "115200;ttyS0 115200;ttyS1 115200;ttyEHV0" +SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}" +USE_VT = "0" +BUILD_64BIT_KERNEL = "1" diff --git a/custom-licenses/Freescale-EULA b/custom-licenses/Freescale-EULA new file mode 100644 index 0000000..6a9b42d --- /dev/null +++ b/custom-licenses/Freescale-EULA @@ -0,0 +1,214 @@ +IMPORTANT. Read the following Freescale Software License Agreement ("Agreement") +completely. By selecting the "I Accept" button at the end of this page, you +indicate that you accept the terms of the Freescale Proprietary Software License +Agreement and you also acknowledge that you have the authority, on behalf of your +company, to bind your company to such terms. You may then download or install the +file. + +FREESCALE PROPRIETARY SOFTWARE LICENSE AGREEMENT +This is a license agreement ("Agreement") between you (either as an individual +or as an authorized representative acting on behalf of your employer) and Freescale +Semiconductor, Inc. ("Freescale"). It concerns your rights to use the software +provided to you in binary or source code form and any accompanying written materials +(the "Software"). The Software may include any updates or error corrections or +documentation relating to the Software provided to you by Freescale under this +License. In consideration for Freescale allowing you to access the Software, you are +agreeing to be bound by the terms of this Agreement. If you do not agree to all of +the terms of this Agreement, do not download or install the Software. If you change +your mind later, stop using the Software and delete all copies of the Software in +your possession or control. Any copies of the Software that you have already +distributed, where permitted, and do not destroy will continue to be governed by +this Agreement. Your prior use will also continue to be governed by this Agreement. + +1. LICENSE GRANT. Freescale grants to you, free of charge, the non-exclusive, +non-transferable, non-sublicensable right (1) to use the Software, (2) to reproduce +the Software, (3) to prepare derivative works of the Software, (4) to distribute the +Software and derivative works thereof in object (machine¨Creadable) form as part of +a programmable processing unit (e.g. a microprocessor, microcontroller, or digital +signal processor) supplied directly or indirectly from Freescale ("Freescale +System") and (5) to sublicense to others the right to use the distributed Software, +provided that any and all such sublicenses include the same terms and conditions of +this Agreement. Notwithstanding the limitation on damages in Section 8, Licensee +will indemnify, defend, and hold harmless Freescale against any and all claims, +costs, damages, liabilities, judgments and attorneys' fees resulting from or +arising out of any breach by the sublicensee, or resulting from or arising out of +any action by the sublicensee inconsistent with this Agreement. +You must notify Freescale, in writing, any time you create a derivative of the +Software. Freescale owns all derivatives created from the Software, and derivatives +are licensed to you under the same terms as the Software under this Agreement. Upon +request, you must provide Freescale the source code of any derivative of the Software. +If you violate any of the terms or restrictions of this Agreement, Freescale may +immediately terminate this Agreement, and require that you stop using and delete all +copies of the Software and any derivative in your possession or control. Any license +granted above only extends to Freescale's intellectual property rights that would +be necessarily infringed by the Software as provided to you by Freescale and as used +within the scope of the licenses granted. You must advise Freescale of any results +obtained including any problems or suggested improvements thereof. Freescale retains +the right to use such results and related information in any manner it deems +appropriate. + +2. OTHER RESTRICTIONS. Subject to the license grant above, the following restrictions + apply: + +a. Freescale reserves all rights not expressly granted herein. +b. You may not rent, lease, sublicense, lend or encumber the Software, unless + otherwise expressly agreed to within this Agreement +c. You may not distribute, manufacture, have manufactured, sublicense or otherwise + reproduce the Software for purposes other than intended in this Agreement. +d. You may not remove or alter any proprietary legends, notices, or trademarks + contained in the Licensed Software, +e. The terms and conditions of this Agreement will apply to any Software updates, + provided to you at Freescale's discretion, that replace and/or supplement the + original Software, unless such update contains a separate license. +f. You may not translate, reverse engineer, decompile, or disassemble the Software + provided to you solely in object code format (machine readable) except to the + extent applicable law specifically prohibits such restriction. You will prohibit + your sublicensees from translating, reverse engineering, decompiling, or + disassembling the Software except to the extent applicable law specifically + prohibits such restriction. + +3. OPEN SOURCE. You are about to download or install certain software that is +subject to various open source licenses such as the Apache License, the BSD license, +the Free Software Foundation General Public License and Lesser General Public +License, the Mozilla Public License and others. Your use of such open source +software is subject to the terms of each applicable license. You must agree to the +terms of each such applicable license, or you should not use the open source software. +Any open source license that is incompatible with the terms of this Agreement +supersedes the terms of this Agreement. + +4. COPYRIGHT. The Software is licensed to you, not sold. Freescale owns the +Software, and United States copyright laws and international treaty provisions +protect the Software. Therefore, you must treat the Software like any other +copyrighted material (e.g. a book or musical recording). You may not use or +copy the Software for any other purpose than what is described in this Agreement. +Except as expressly provided herein, Freescale does not grant to you any express or +implied rights under any Freescale or third party patents, copyrights, trademarks, +or trade secrets. Additionally, you must reproduce and apply any copyright or other +proprietary rights notices included on or embedded in the Software to any copies +made thereof, in whole or in part, if any. You may not remove any copyright +notices of Freescale incorporated in the Software. + +5. TERM AND TERMINATION. The term of this Agreement shall commence on the date +of installation or download and shall continue perpetually, unless earlier +terminated in accordance with this Agreement. Freescale has the right to terminate +this Agreement without notice and require that you stop using and delete all copies +of the Software in your possession or control if you violate any of the terms or +restrictions of this Agreement. Freescale may terminate this Agreement should any +of the Software become, or in Freescale's reasonable opinion is likely to become, +the subject of a claim of intellectual infringement or trade secret misappropriation. +Upon termination, you must cease use of and destroy, the Software and confirm +compliance in writing to Freescale. Upon termination, the license granted pursuant +to this Agreement immediately terminates and the provisions of Sections 4 through +18 will survive any termination of this Agreement. + +6. SUPPORT. Freescale is NOT obligated to provide any support, upgrades or new +releases of the Software. If you wish, you may contact Freescale and report problems +and provide suggestions regarding the Software. Freescale has no obligation +whatsoever to respond in any way to such a problem report or suggestion. Freescale +may make changes to the Software at any time, without any obligation to notify or +provide updated versions of the Software to you. + +7. NO WARRANTY. TO THE MAXIMUM EXTENT PERMITTED BY LAW, FREESCALE EXPRESSLY +DISCLAIMS ANY WARRANTY FOR THE SOFTWARE. THE SOFTWARE IS PROVIDED "AS IS", +WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, WITHOUT +LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR +PURPOSE, OR NON-INFRINGEMENT. YOU ASSUME THE ENTIRE RISK ARISING OUT OF THE USE +OR PERFORMANCE OF THE SOFTWARE, OR ANY SYSTEMS YOU DESIGN USING THE SOFTWARE (IF +ANY). NOTHING IN THIS AGREEMENT MAY BE CONSTRUED AS A WARRANTY OR REPRESENTATION +BY FREESCALE THAT THE SOFTWARE OR ANY DERIVATIVE WORK DEVELOPED WITH OR INCORPORATING +THE SOFTWARE WILL BE FREE FROM INFRINGEMENT OF THE INTELLECTUAL PROPERTY RIGHTS OF +THIRD PARTIES. + +8. INDEMNITY. You agree to fully defend and indemnify Freescale from any and all +claims, liabilities, and costs (including reasonable attorney's fees) related to +(1) your use (including your sublicensee's use, if permitted) of the Software or +(2) your violation of the terms and conditions of this Agreement. + +9. LIMITATION OF LIABILITY. IN NO EVENT WILL FREESCALE BE LIABLE, WHETHER IN +CONTRACT, TORT, OR OTHERWISE, FOR ANY INCIDENTAL, SPECIAL, INDIRECT, CONSEQUENTIAL +OR PUNITIVE DAMAGES, INCLUDING, BUT NOT LIMITED TO, DAMAGES FOR ANY LOSS OF USE, +LOSS OF TIME, INCONVENIENCE, COMMERCIAL LOSS, OR LOST PROFITS, SAVINGS, OR REVENUES +TO THE FULL EXTENT SUCH MAY BE DISCLAIMED BY LAW EVEN IF INFORMED IN ADVANCE OF THE +POSSIBILITY OF SUCH DAMAGES. FREESCALE'S LIABILITY WILL IN ANY EVENT AND UNDER ANY +THEORY OF RECOVERY BE LIMITED TO THE TOTAL AMOUNT RECEIVED BY FREESCALE UNDER THIS +AGREEMENT. + +10. COMPLIANCE WITH LAWS; EXPORT RESTRICTIONS. You must not resell, re-export, or +provide, directly or indirectly, the licensed software or direct product thereof, +in any form without obtaining appropriate export or re-export licenses from the +United States Government and from the country from which the export or re-export +is to occur. An export occurs when products, technology, or software is transferred +from one country to another by any means, including physical shipments, FTP file +transfers, E-mails, faxes, remote server access, conversations, and the like. An +export also occurs when technology or software is transferred to a foreign national +in the United States, or foreign national of the country in which the business +activity is taking place. A foreign national is any person who is neither a citizen +nor permanent resident of the United States, or the country in which the business +activity is taking place. Furthermore, if an export/import license, permit or other +government required authority (collectively referred to as "government +authorization") is required to transfer technology, software, hardware or other +Freescale property to non- Freescale party(ies) and is not approved, then Freescale +is not obligated to transfer the Software under this Agreement until such +"government authorization" is granted.. + +11. GOVERNMENT RIGHTS. The Licensed Software is a "Commercial Item as defined in +48 C.F.R. $2.101, consisting of "Commercial Computer Software" and "Commercial +Computer Software Documentation," as such terms are used in 48 C.F.R. $ 12.212 or +48 C.F.R. $227.7202, as applicable and are only licensed to U.S. Government end +users with the rights as are set forth herein.. + +12. HIGH RISK ACTIVITIES. You acknowledge that the Software is not fault tolerant +and is not designed, manufactured or intended by Freescale for incorporation into +products intended for use or resale in on-line control equipment in hazardous, +dangerous to life or potentially life-threatening environments requiring fail-safe + performance, such as in the operation of nuclear facilities, aircraft navigation + or communication systems, air traffic control, direct life support machines or +weapons systems, in which the failure of products could lead directly to death, +personal injury or severe physical or environmental damage ("High Risk Activities"). + You specifically represent and warrant that you will not use the Software or any +derivative work of the Software for High Risk Activities. + +13. CHOICE OF LAW; VENUE; LIMITATIONS. You agree that the statutes and laws of the +United States and the State of Texas, USA, without regard to conflicts of laws +principles, will apply to all matters relating to this Agreement or the Software, +and you agree that any litigation will be subject to the exclusive jurisdiction of +the state or federal courts in Texas, USA. You agree that regardless of any +statute or law to the contrary, any claim or cause of action arising out of or +related to this Agreement or the Software must be filed within one (1) year after +such claim or cause of action arose or be forever barred. + +14. CONFIDENTIAL INFORMATION. You must treat the Software as confidential +information and you agree to retain the Software in confidence perpetually, with +respect to Software in source code form (human readable), or for a period of five +(5) years from the date of termination of this Agreement, with respect to all other +parts of the Software. During this period you may not disclose any part of the +Software to anyone other than employees who have a need to know of the Software and + who have executed written agreements obligating them to protect such Licensed +Software to at least the same degree of care as in this Agreement. You agree to use + the same degree of care, but no less than a reasonable degree of care, with the +Software as you do with your own confidential information. You may disclose Software + to the extent required by a court or under operation of law or order provided that + you notify Freescale of such requirement prior to disclosure, which you only +disclose information required, and that you allow Freescale the opportunity to +object to such court or other legal body requiring such disclosure. + +15. PRODUCT LABELING. You are not authorized to use any Freescale trademarks, +brand names, or logos. + +16. ENTIRE AGREEMENT. This Agreement constitutes the entire agreement between you +and Freescale regarding the subject matter of this Agreement, and supersedes all +prior communications, negotiations, understandings, agreements or representations, +either written or oral, if any. This Agreement may only be amended in written form, +executed by you and Freescale. + +17. SEVERABILITY. If any provision of this Agreement is held for any reason to be +invalid or unenforceable, then the remaining provisions of this Agreement will be +unimpaired and, unless a modification or replacement of the invalid or unenforceable +provision is further held to deprive you or Freescale of a material benefit, in +which case the Agreement will immediately terminate, the invalid or unenforceable +provision will be replaced with a provision that is valid and enforceable and that +comes closest to the intention underlying the invalid or unenforceable provision. + +18. NO WAIVER. The waiver by Freescale of any breach of any provision of this +Agreement will not operate or be construed as a waiver of any other or a subsequent +breach 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 @@ +Written by John R. Hauser. This work was made possible in part by the +International Computer Science Institute, located at Suite 600, 1947 Center +Street, Berkeley, California 94704. Funding was partially provided by the +National Science Foundation under grant MIP-9311980. The original version +of this code was written as part of a project to build a fixed-point vector +processor in collaboration with the University of California at Berkeley, +overseen by Profs. Nelson Morgan and John Wawrzynek. More information +is available through the Web page `http://www.cs.berkeley.edu/~jhauser/ +arithmetic/SoftFloat.html'. + +THIS SOFTWARE IS DISTRIBUTED AS IS, FOR FREE. Although reasonable effort has +been made to avoid it, THIS SOFTWARE MAY CONTAIN FAULTS THAT WILL AT TIMES +RESULT IN INCORRECT BEHAVIOR. USE OF THIS SOFTWARE IS RESTRICTED TO PERSONS +AND ORGANIZATIONS WHO CAN AND WILL TAKE FULL RESPONSIBILITY FOR ALL LOSSES, +COSTS, OR OTHER PROBLEMS THEY INCUR DUE TO THE SOFTWARE, AND WHO FURTHERMORE +EFFECTIVELY INDEMNIFY JOHN HAUSER AND THE INTERNATIONAL COMPUTER SCIENCE +INSTITUTE (possibly via similar legal warning) AGAINST ALL LOSSES, COSTS, OR +OTHER PROBLEMS INCURRED BY THEIR CUSTOMERS AND CLIENTS DUE TO THE SOFTWARE. + +Derivative works are acceptable, even for commercial purposes, so long as +(1) the source code for the derivative work includes prominent notice that +the work is derivative, and (2) the source code includes prominent notice with +these four paragraphs for those parts of this code that are retained. + 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..ac1504d --- /dev/null +++ b/recipes-bsp/boot-format/boot-format_git.bb @@ -0,0 +1,19 @@ +DESCRIPTION = "Boot format utility for booting from eSDHC/eSPI" +LICENSE = "GPLv2" +PR = "r6" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +SRC_URI = "git://git.freescale.com/ppc/sdk/boot-format.git" +SRCREV = "d9bbfaba0c9316ae33455099c47bae429479e530" + +S = "${WORKDIR}/git" +EXTRA_OEMAKE = 'CC="${CC}"' + +do_install(){ + oe_runmake DESTDIR=${D} PREFIX=${prefix} install +} + +PACKAGES =+ "${PN}-config" +FILES_${PN}-config += "${datadir}/*" + +BBCLASSEXTEND = "native nativesdk" diff --git a/recipes-bsp/rcw/rcw_git.bb b/recipes-bsp/rcw/rcw_git.bb new file mode 100644 index 0000000..7d87783 --- /dev/null +++ b/recipes-bsp/rcw/rcw_git.bb @@ -0,0 +1,41 @@ +DESCRIPTION = "Reset Control Words (RCW)" +SECTION = "rcw" +LICENSE = "BSD" +PR = "r8" + +LIC_FILES_CHKSUM = "file://rcw.py;beginline=8;endline=28;md5=9ba0b28922dd187b06b6c8ebcfdd208e" + +# this package is specific to the machine itself +INHIBIT_DEFAULT_DEPS = "1" +PACKAGE_ARCH = "${MACHINE_ARCH}" +COMPATIBLE_HOST_fslmachine = ".*" +COMPATIBLE_HOST ?= "(none)" + +inherit deploy + +SRC_URI = "git://git.freescale.com/ppc/sdk/rcw.git" +SRCREV = "5d3c819bcca6d09dcf7b52b3f2855dda304a5997" + +S = "${WORKDIR}/git" + +export PYTHON + +do_install () { + make install + + M=`echo ${MACHINE} | sed s/-64b//g` + install -d ${D}/boot/rcw + cp -r ${S}/${M}/${M}/* ${D}/boot/rcw +} + +do_deploy () { + M=`echo ${MACHINE} | sed s/-64b//g` + install -d ${DEPLOYDIR}/rcw + cp -r ${S}/${M}/${M}/* ${DEPLOYDIR}/rcw +} +addtask deploy after do_install + +PACKAGES += "${PN}-image" +FILES_${PN}-image += "/boot" + +ALLOW_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 @@ +Upstream-Status: Pending + +From 301832414369b749918e0d5db850eed19b81c0fc Mon Sep 17 00:00:00 2001 +From: Zhenhua Luo +Date: Tue, 24 Sep 2013 00:54:40 -0500 +Subject: [PATCH] Fix the depend race issue + +| 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' +| /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. +| 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' +| 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 +| make[2]: *** Waiting for unfinished jobs.... + +Signed-off-by: Zhenhua Luo +--- + spl/Makefile | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/spl/Makefile b/spl/Makefile +index 6dbb105..3156d87 100644 +--- a/spl/Makefile ++++ b/spl/Makefile +@@ -185,7 +185,11 @@ $(eval $(call make_u_boot_list, $(obj)u-boot.lst, $(LIBS))) + $(obj)u-boot-spl.lds: $(LDSCRIPT) $(obj)u-boot.lst depend + $(CPP) $(CPPFLAGS) $(LDPPFLAGS) -I$(obj). -ansi -D__ASSEMBLY__ -P - < $< > $@ + +-depend: $(obj).depend ++# Explicitly make _depend in subdirs containing multiple targets to prevent ++# parallel sub-makes creating .depend files simultaneously. ++depend dep: $(obj).depend ++ for dir in $(SUBDIRS) $(CPUDIR) $(LDSCRIPT_MAKEFILE_DIR) ; do \ ++ $(MAKE) -C $(SRCTREE)/$$dir _depend ; done + .PHONY: depend + + # defines $(obj).depend target +-- +1.8.2.1 + 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..3479b23 --- /dev/null +++ b/recipes-bsp/u-boot/u-boot_git.bb @@ -0,0 +1,148 @@ +DESCRIPTION = "U-boot bootloader" +HOMEPAGE = "http://u-boot.sf.net" +SECTION = "bootloaders" +PROVIDES = "virtual/bootloader" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=1707d6db1d42237583f50183a5651ecb" + +PR = "r30" +INHIBIT_DEFAULT_DEPS = "1" +DEPENDS = "boot-format-native virtual/${TARGET_PREFIX}gcc libgcc" + +inherit deploy + +SRC_URI = "git://git.freescale.com/ppc/sdk/u-boot.git \ + file://Fix-the-depend-race-issue.patch" +SRCREV = "831b30de4b768f0b3b7dbfa11739b14cea612d7e" + +python () { + ml = d.getVar("MULTILIB_VARIANTS", True) + arch = d.getVar("OVERRIDES", True) + + if ("e5500-64b:" in arch or "e6500-64b:" in arch) and not "lib32" in ml: + raise bb.parse.SkipPackage("Building the u-boot for this arch requires multilib to be enabled") +} + +DEPENDS_append_e5500-64b = " lib32-gcc-cross lib32-libgcc" +PATH_append_e5500-64b = ":${STAGING_BINDIR_NATIVE}/${DEFAULTTUNE_virtclass-multilib-lib32}${TARGET_VENDOR_virtclass-multilib-lib32}-${HOST_OS}/" +TOOLCHAIN_OPTIONS_append_e5500-64b = "/../lib32-${MACHINE}" +TARGET_VENDOR_virtclass-multilib-lib32 ?= "-${DISTRO}mllib32" +WRAP_TARGET_PREFIX_e5500-64b = "powerpc${TARGET_VENDOR_virtclass-multilib-lib32}-${HOST_OS}-" + +DEPENDS_append_e6500-64b = " lib32-gcc-cross lib32-libgcc" +PATH_append_e6500-64b = ":${STAGING_BINDIR_NATIVE}/${DEFAULTTUNE_virtclass-multilib-lib32}${TARGET_VENDOR_virtclass-multilib-lib32}-${HOST_OS}/" +TOOLCHAIN_OPTIONS_append_e6500-64b = "/../lib32-${MACHINE}" +TARGET_VENDOR_virtclass-multilib-lib32 ?= "-${DISTRO}mllib32" +WRAP_TARGET_PREFIX_e6500-64b = "powerpc${TARGET_VENDOR_virtclass-multilib-lib32}-${HOST_OS}-" + +WRAP_TARGET_PREFIX = "${TARGET_PREFIX}" +EXTRA_OEMAKE = 'CROSS_COMPILE=${WRAP_TARGET_PREFIX} CC="${WRAP_TARGET_PREFIX}gcc ${TOOLCHAIN_OPTIONS}"' + +PACKAGE_ARCH = "${MACHINE_ARCH}" + +UBOOT_LOCALVERSION = "${@d.getVar('SDK_VERSION', True).partition(' ')[0]}" + +USRC ?= "" +S = '${@base_conditional("USRC", "", "${WORKDIR}/git", "${USRC}", d)}' + +do_compile () { + unset LDFLAGS + unset CFLAGS + unset CPPFLAGS + + if [ ! -e ${B}/.scmversion -a ! -e ${S}/.scmversion ] + then + echo ${UBOOT_LOCALVERSION} > ${B}/.scmversion + echo ${UBOOT_LOCALVERSION} > ${S}/.scmversion + fi + + if [ "x${UBOOT_MACHINES}" = "x" ]; then + UBOOT_MACHINES=${UBOOT_MACHINE} + fi + + for board in ${UBOOT_MACHINES}; do + oe_runmake O=${board} distclean + oe_runmake O=${board} ${board} + oe_runmake O=${board} all + + case "${board}" in + *SDCARD*) UBOOT_TARGET="u-boot-sd";; + *SPIFLASH*) UBOOT_TARGET="u-boot-spi";; + *NAND*) UBOOT_TARGET="u-boot-nand";; + *) UBOOT_TARGET="";; + esac + + if [ "x${UBOOT_TARGET}" != "x" ]; then + if [ "${UBOOT_TARGET}" = "u-boot-sd" ]; then + cp ${S}/${board}/u-boot.bin ${S}/${board}/${UBOOT_TARGET}.bin + elif [ "${UBOOT_TARGET}" = "u-boot-nand" ];then + if [ "${DEFAULTTUNE}" = "ppce500v2" ];then + if echo $board |egrep "(P1010RDB|P1020RDB|P1021RDB|P1024RDB|P2020RDB|P1022DS|P1025RDB|BSC9131RDB|BSC9132QDS)" 2>&1 >/dev/null;then + cp ${S}/${board}/u-boot-with-spl.bin ${S}/${board}/${UBOOT_TARGET}.bin + fi + else + cp ${S}/${board}/u-boot.bin ${S}/${board}/${UBOOT_TARGET}.bin + fi + else + if [ -n "${BOOTFORMAT_CONFIG}" ];then + ${STAGING_BINDIR_NATIVE}/boot_format \ + ${STAGING_DATADIR_NATIVE}/boot_format/${BOOTFORMAT_CONFIG} \ + ${S}/${board}/u-boot.bin -spi ${S}/${board}/${UBOOT_TARGET}.bin + else + cp ${S}/${board}/u-boot.bin ${S}/${board}/${UBOOT_TARGET}.bin + fi + fi + fi + done +} + +do_install(){ + if [ "x${UBOOT_MACHINES}" = "x" ]; then + UBOOT_MACHINES=${UBOOT_MACHINE} + fi + + for board in ${UBOOT_MACHINES}; do + case "${board}" in + *SDCARD*) UBOOT_TARGET="u-boot-sd";; + *SPIFLASH*) UBOOT_TARGET="u-boot-spi";; + *NAND*) UBOOT_TARGET="u-boot-nand";; + *) UBOOT_TARGET="u-boot";; + esac + + if [ -f ${S}/${board}/${UBOOT_TARGET}.bin ]; then + mkdir -p ${D}/boot/ + install ${S}/${board}/${UBOOT_TARGET}.bin ${D}/boot/${UBOOT_TARGET}-${board}-${PV}-${PR}.bin + ln -sf ${UBOOT_TARGET}-${board}-${PV}-${PR}.bin ${D}/boot/${UBOOT_TARGET}.bin + fi + done +} + +do_deploy(){ + if [ "x${UBOOT_MACHINES}" = "x" ]; then + UBOOT_MACHINES=${UBOOT_MACHINE} + fi + + for board in ${UBOOT_MACHINES}; do + case "${board}" in + *SDCARD*) UBOOT_TARGET="u-boot-sd";; + *SPIFLASH*) UBOOT_TARGET="u-boot-spi";; + *NAND*) UBOOT_TARGET="u-boot-nand";; + *) UBOOT_TARGET="u-boot";; + esac + + if [ -f ${S}/${board}/${UBOOT_TARGET}.bin ]; then + mkdir -p ${DEPLOYDIR} + install ${S}/${board}/${UBOOT_TARGET}.bin ${DEPLOYDIR}/${UBOOT_TARGET}-${board}-${PV}-${PR}.bin + + cd ${DEPLOYDIR} + rm -f ${UBOOT_TARGET}-${board}.bin + ln -sf ${UBOOT_TARGET}-${board}-${PV}-${PR}.bin ${UBOOT_TARGET}-${board}.bin + fi + done +} +addtask deploy after do_install + +PACKAGES += "${PN}-images" +FILES_${PN}-images += "/boot" + +ALLOW_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 @@ +PRINC := "${@int(PRINC) + 1}" + 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 @@ +# Rules for handling naming the DPAA FMan ethernet ports in a consistent way +SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ffe4e0000", NAME="fm1-gb0" +SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ffe4e2000", NAME="fm1-gb1" +SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ffe4e4000", NAME="fm1-gb2" +SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ffe4e6000", NAME="fm1-gb3" +SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ffe4e8000", NAME="fm1-gb4" +SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ffe4f0000", NAME="fm1-10g" +SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ffe5e0000", NAME="fm2-gb0" +SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ffe5e2000", NAME="fm2-gb1" +SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ffe5e4000", NAME="fm2-gb2" +SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ffe5e6000", NAME="fm2-gb3" +SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ffe5e8000", NAME="fm2-gb4" +SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ffe5f0000", NAME="fm2-10g" + +# P1023 has its Fman @ different offsets +SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ff7e0000", NAME="fm1-gb0" +SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ff7e2000", NAME="fm1-gb1" + +# Rename macless0 port to "macless0" +SUBSYSTEM=="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 @@ +# Rules for handling naming the DPAA FMan ethernet ports in a consistent way +SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ffe4e0000", NAME="fm1-mac1" +SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ffe4e2000", NAME="fm1-mac2" +SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ffe4e4000", NAME="fm1-mac3" +SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ffe4e6000", NAME="fm1-mac4" +SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ffe4e8000", NAME="fm1-mac5" +SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ffe4ea000", NAME="fm1-mac6" +SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ffe4ec000", NAME="fm1-mac7" +SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ffe4ee000", NAME="fm1-mac8" +SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ffe4f0000", NAME="fm1-mac9" +SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ffe4f2000", NAME="fm1-mac10" +SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ffe5e0000", NAME="fm2-mac1" +SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ffe5e2000", NAME="fm2-mac2" +SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ffe5e4000", NAME="fm2-mac3" +SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ffe5e6000", NAME="fm2-mac4" +SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ffe5e8000", NAME="fm2-mac5" +SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ffe5ea000", NAME="fm2-mac6" +SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ffe5ec000", NAME="fm2-mac7" +SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ffe5ee000", NAME="fm2-mac8" +SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ffe5f0000", NAME="fm2-mac9" +SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ffe5f2000", NAME="fm2-mac10" + +# Rename macless0 to "macless0" +SUBSYSTEM=="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 @@ +# There are a number of modifiers that are allowed to be used in some +# of the different fields. They provide the following subsitutions: +# +# %n the "kernel number" of the device. +# For example, 'sda3' has a "kernel number" of '3' +# %e the smallest number for that name which does not matches an existing node +# %k the kernel name for the device +# %M the kernel major number for the device +# %m the kernel minor number for the device +# %b the bus id for the device +# %c the string returned by the PROGRAM +# %s{filename} the content of a sysfs attribute +# %% the '%' char itself +# + +KERNEL=="nbd*", GOTO="persistent_storage_end" + +SUBSYSTEM=="block", ENV{DEVTYPE}=="partition", GOTO="nomountblock" + +# Media automounting +SUBSYSTEM=="block", ACTION=="add" RUN+="/etc/udev/scripts/mount.sh" +SUBSYSTEM=="block", ACTION=="remove" RUN+="/etc/udev/scripts/mount.sh" + +# Handle network interface setup +SUBSYSTEM=="net", ACTION=="add" RUN+="/etc/udev/scripts/network.sh" +SUBSYSTEM=="net", ACTION=="remove" RUN+="/etc/udev/scripts/network.sh" + +# The first framebuffer is symlinked to /dev/fb +KERNEL=="fb0", SYMLINK+="fb" + +# The first rtc device is symlinked to /dev/rtc +KERNEL=="rtc0", SYMLINK+="rtc" + +# Try and modprobe for drivers for new hardware +ACTION=="add", DEVPATH=="/devices/*", ENV{MODALIAS}=="?*", RUN+="/sbin/modprobe $env{MODALIAS}" + +# Create a symlink to any touchscreen input device +SUBSYSTEM=="input", KERNEL=="event[0-9]*", ATTRS{modalias}=="input:*-e0*,3,*a0,1,*18,*", SYMLINK+="input/touchscreen0" + +LABEL="persistent_storage_end" + +LABEL="nomountblock" diff --git a/recipes-core/udev/udev-extraconf_1.0.bbappend b/recipes-core/udev/udev-extraconf_1.0.bbappend new file mode 100644 index 0000000..056d037 --- /dev/null +++ b/recipes-core/udev/udev-extraconf_1.0.bbappend @@ -0,0 +1,12 @@ +FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" + +PRINC := "${@int(PRINC) + 2}" + +SRC_URI_append = " file://${@bb.utils.contains("TUNE_FEATURES", "e6500", \ + "72-fsl-dpaa-persistent-networking.rules", "71-fsl-dpaa-persistent-networking.rules", d)}" + +do_install_append () { + install -d ${D}${sysconfdir}/udev/rules.d/ + install -m 0644 ${WORKDIR}/*-fsl-dpaa-persistent-networking.rules ${D}${sysconfdir}/udev/rules.d +} + 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 @@ +PRINC := "${@int(PRINC) + 1}" + 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 @@ +DESCRIPTION = "BSD replacement for libreadline" +HOMEPAGE = "http://www.thrysoee.dk/editline/" +SECTION = "libs" +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://COPYING;md5=1e4228d0c5a9093b01aeaaeae6641533" + +DEPENDS = "ncurses" + +inherit autotools + +# upstream site does not allow wget's User-Agent +FETCHCMD_wget += "-U bitbake" +SRC_URI = "http://www.thrysoee.dk/editline/${BPN}-${PV}-3.0.tar.gz" + +S = "${WORKDIR}/${BPN}-${PV}-3.0" + +SRC_URI[md5sum] = "f475f50fe7467c1074c0fbae8b5bca1a" +SRC_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 @@ +From 9a7146ca91c04d05af36684d8b3ca79c1254abc2 Mon Sep 17 00:00:00 2001 +From: Markus Armbruster +Date: Wed, 13 Feb 2013 19:49:40 +0100 +Subject: [PATCH 1/2] doc: Fix texinfo @table markup in qemu-options.hx + +End tables before headings, start new ones afterwards. Fixes +incorrect indentation of headings "File system options" and "Virtual +File system pass-through options" in manual page and qemu-doc. + +Normalize markup some to increase chances it survives future edits. + +Upstream-Status: Backport + +Signed-off-by: Martin Jansa +Signed-off-by: Markus Armbruster +Reviewed-by: Stefan Hajnoczi +Message-id: 1360781383-28635-5-git-send-email-armbru@redhat.com +Signed-off-by: Anthony Liguori +--- + qemu-options.hx | 56 +++++++++++++++++++++++++++++++++++++------------------- + 1 file changed, 37 insertions(+), 19 deletions(-) + +diff --git a/qemu-options.hx b/qemu-options.hx +index 9d7131a..54bd92a 100644 +--- a/qemu-options.hx ++++ b/qemu-options.hx +@@ -537,13 +537,15 @@ STEXI + @end table + ETEXI + +-DEF("usb", 0, QEMU_OPTION_usb, +- "-usb enable the USB driver (will be the default soon)\n", +- QEMU_ARCH_ALL) + STEXI + USB options: + @table @option ++ETEXI + ++DEF("usb", 0, QEMU_OPTION_usb, ++ "-usb enable the USB driver (will be the default soon)\n", ++ QEMU_ARCH_ALL) ++STEXI + @item -usb + @findex -usb + Enable the USB driver (will be the default soon) +@@ -610,9 +612,15 @@ possible drivers and properties, use @code{-device help} and + @code{-device @var{driver},help}. + ETEXI + ++STEXI ++@end table ++ETEXI + DEFHEADING() + + DEFHEADING(File system options:) ++STEXI ++@table @option ++ETEXI + + DEF("fsdev", HAS_ARG, QEMU_OPTION_fsdev, + "-fsdev fsdriver,id=id[,path=path,][security_model={mapped-xattr|mapped-file|passthrough|none}]\n" +@@ -676,9 +684,15 @@ Specifies the tag name to be used by the guest to mount this export point + + ETEXI + ++STEXI ++@end table ++ETEXI + DEFHEADING() + + DEFHEADING(Virtual File system pass-through options:) ++STEXI ++@table @option ++ETEXI + + DEF("virtfs", HAS_ARG, QEMU_OPTION_virtfs, + "-virtfs local,path=path,mount_tag=tag,security_model=[mapped-xattr|mapped-file|passthrough|none]\n" +@@ -769,11 +783,9 @@ ETEXI + STEXI + @end table + ETEXI +- + DEFHEADING() + + DEFHEADING(Display options:) +- + STEXI + @table @option + ETEXI +@@ -1215,7 +1227,6 @@ ETEXI + STEXI + @end table + ETEXI +- + ARCHHEADING(, QEMU_ARCH_I386) + + ARCHHEADING(i386 target only:, QEMU_ARCH_I386) +@@ -1301,10 +1312,10 @@ Specify SMBIOS type 0 fields + Specify SMBIOS type 1 fields + ETEXI + +-DEFHEADING() + STEXI + @end table + ETEXI ++DEFHEADING() + + DEFHEADING(Network options:) + STEXI +@@ -1718,13 +1729,19 @@ libpcap, so it can be analyzed with tools such as tcpdump or Wireshark. + Indicate that no network devices should be configured. It is used to + override the default configuration (@option{-net nic -net user}) which + is activated if no @option{-net} options are provided. ++ETEXI + ++STEXI + @end table + ETEXI +- + DEFHEADING() + + DEFHEADING(Character device options:) ++STEXI ++ ++The general form of a character device option is: ++@table @option ++ETEXI + + DEF("chardev", HAS_ARG, QEMU_OPTION_chardev, + "-chardev null,id=id[,mux=on|off]\n" +@@ -1766,10 +1783,6 @@ DEF("chardev", HAS_ARG, QEMU_OPTION_chardev, + ) + + STEXI +- +-The general form of a character device option is: +-@table @option +- + @item -chardev @var{backend} ,id=@var{id} [,mux=on|off] [,@var{options}] + @findex -chardev + Backend is one of: +@@ -1990,14 +2003,15 @@ Connect to a spice virtual machine channel, such as vdiport. + + Connect to a spice port, allowing a Spice client to handle the traffic + identified by a name (preferably a fqdn). ++ETEXI + ++STEXI + @end table + ETEXI +- + DEFHEADING() + +-STEXI + DEFHEADING(Device URL Syntax:) ++STEXI + + In addition to using normal file images for the emulated storage devices, + QEMU can also use networked resources such as iSCSI devices. These are +@@ -2113,10 +2127,16 @@ qemu-system-x86_84 --drive file=gluster://192.0.2.1/testvol/a.img + @end example + + See also @url{http://www.gluster.org}. ++ETEXI ++ ++STEXI + @end table + ETEXI + + DEFHEADING(Bluetooth(R) options:) ++STEXI ++@table @option ++ETEXI + + DEF("bt", HAS_ARG, QEMU_OPTION_bt, \ + "-bt hci,null dumb bluetooth HCI - doesn't respond to commands\n" \ +@@ -2130,8 +2150,6 @@ DEF("bt", HAS_ARG, QEMU_OPTION_bt, \ + " emulate a bluetooth device 'dev' in scatternet 'n'\n", + QEMU_ARCH_ALL) + STEXI +-@table @option +- + @item -bt hci[...] + @findex -bt + Defines the function of the corresponding Bluetooth HCI. -bt options +@@ -2183,9 +2201,11 @@ currently: + @item keyboard + Virtual wireless keyboard implementing the HIDP bluetooth profile. + @end table +-@end table + ETEXI + ++STEXI ++@end table ++ETEXI + DEFHEADING() + + DEFHEADING(Linux/Multiboot boot specific:) +-- +1.8.1.5 + 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 @@ +From f983d4978e1c49ee936ad52bf2de0c531420f5f8 Mon Sep 17 00:00:00 2001 +From: Cole Robinson +Date: Wed, 20 Feb 2013 07:20:31 +0000 +Subject: [PATCH 2/2] docs: Fix generating qemu-doc.html with texinfo 5 + +LC_ALL=C makeinfo --no-headers --no-split --number-sections --html qemu-doc.texi -o qemu-doc.html +./qemu-options.texi:1521: unknown command `list' +./qemu-options.texi:1521: table requires an argument: the formatter for @item +./qemu-options.texi:1521: warning: @table has text but no @item + +Upstream-Status: Pending +http://patchwork.ozlabs.org/patch/222131/ + +CC: qemu-stable@nongnu.org +Signed-off-by: Cole Robinson +Signed-off-by: Martin Jansa +Reviewed-by: Markus Armbruster +--- + qemu-options.hx | 19 +++++++------------ + 1 file changed, 7 insertions(+), 12 deletions(-) + +diff --git a/qemu-options.hx b/qemu-options.hx +index 54bd92a..5d2d9b8 100644 +--- a/qemu-options.hx ++++ b/qemu-options.hx +@@ -2089,18 +2089,13 @@ QEMU supports using either local sheepdog devices or remote networked + devices. + + Syntax for specifying a sheepdog device +-@table @list +-``sheepdog:'' +- +-``sheepdog::'' +- +-``sheepdog::'' +- +-``sheepdog:::'' +- +-``sheepdog::::'' +- +-``sheepdog::::'' ++@table @code ++@item sheepdog: ++@item sheepdog:: ++@item sheepdog:: ++@item sheepdog::: ++@item sheepdog:::: ++@item sheepdog:::: + @end table + + Example +-- +1.8.1.5 + 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 @@ +Upstream-Status: Pending + +qemu: define fdt types in libfdt_env.h from qemu + + * fixes + In file included from /home/oe/setup-scripts/build/tmp-angstrom_next-uclibc/sysroots/x86_64-linux/usr/include/libfdt.h:55:0, + 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: + /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' + /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' + /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' + /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' + /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' + /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' + /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' + /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' + /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' + /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' + /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' + /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' + /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' + /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' + /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' + /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' + +Index: qemu-1.4.0/include/libfdt_env.h +=================================================================== +--- qemu-1.4.0.orig/include/libfdt_env.h 2013-02-15 23:05:35.000000000 +0000 ++++ qemu-1.4.0/include/libfdt_env.h 2013-04-13 14:17:27.918885225 +0000 +@@ -21,6 +21,10 @@ + + #include "qemu/bswap.h" + ++typedef uint16_t fdt16_t; ++typedef uint32_t fdt32_t; ++typedef uint64_t fdt64_t; ++ + #ifdef HOST_WORDS_BIGENDIAN + #define fdt32_to_cpu(x) (x) + #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 @@ +fix libcap header issue on some distro + +1, When build qemu-native on SLED 11.2, there is an error: +... +| In file included from /usr/include/bits/sigcontext.h:28, +| from /usr/include/signal.h:339, +| from /buildarea2/tmp/work/i686-linux/qemu-native/1.4.0-r0/ +qemu-1.4.0/include/qemu-common.h:42, +| from fsdev/virtfs-proxy-helper.c:23: +| /usr/include/asm/sigcontext.h:28: error: expected specifier- +qualifier-list before '__u64' +| /usr/include/asm/sigcontext.h:191: error: expected specifier- +qualifier-list before '__u64' +... + +2, The virtfs-proxy-helper.c includes and +qemu-common.h in sequence. The header include map is: +(`-->' presents `include') +... +"virtfs-proxy-helper.c" --> +... +"virtfs-proxy-helper.c" --> "qemu-common.h" --> --> + --> --> --> + --> --> +... + +3, The bug is found on SLED 11.2 x86. In libcap header file +/usr/include/sys/capability.h, it does evil stuff like this: +... + 25 /* + 26 * Make sure we can be included from userland by preventing + 27 * capability.h from including other kernel headers + 28 */ + 29 #define _LINUX_TYPES_H + 30 #define _LINUX_FS_H + 31 #define __LINUX_COMPILER_H + 32 #define __user + 33 + 34 typedef unsigned int __u32; + 35 typedef __u32 __le32; +... +This completely prevents including /usr/include/linux/types.h. +The above ` --> ' is prevented, +and '__u64' is defined in . + +4, Modify virtfs-proxy-helper.c to include +last to workaround the issue. + +http://www.linuxtv.org/pipermail/vdr/2009-August/021194.html +http://patchwork.linuxtv.org/patch/12748/ + +Upstream-Status: Pending +Signed-off-by: Hongxu Jia +--- + fsdev/virtfs-proxy-helper.c | 7 +++++-- + 1 file changed, 5 insertions(+), 2 deletions(-) + +diff --git a/fsdev/virtfs-proxy-helper.c b/fsdev/virtfs-proxy-helper.c +--- a/fsdev/virtfs-proxy-helper.c ++++ b/fsdev/virtfs-proxy-helper.c +@@ -12,7 +12,6 @@ + #include + #include + #include +-#include + #include + #include + #include +@@ -26,7 +25,11 @@ + #include "virtio-9p-marshal.h" + #include "hw/9pfs/virtio-9p-proxy.h" + #include "fsdev/virtio-9p-marshal.h" +- ++/* ++ * Include this one last due to some versions of it being buggy: ++ * http://www.linuxtv.org/pipermail/vdr/2009-August/021194.html ++ */ ++#include + #define PROGNAME "virtfs-proxy-helper" + + #ifndef XFS_SUPER_MAGIC +-- +1.7.10.4 + 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 @@ +Upstream-Status: Inappropriate [SDK specific] + +In order to be able to change the dynamic loader path when relocating +binaries, the interp section has to be made big enough to accomodate +the new path (4096 is the maximum path length in Linux). + +Signed-off-by: Laurentiu Palcu + +Index: qemu-1.4.0/ldscripts/i386.ld +=================================================================== +--- qemu-1.4.0.orig/ldscripts/i386.ld 2013-02-15 15:05:35.000000000 -0800 ++++ qemu-1.4.0/ldscripts/i386.ld 2013-02-28 22:55:36.138816418 -0800 +@@ -8,7 +8,7 @@ + { + /* Read-only sections, merged into text segment: */ + . = 0x60000000 + SIZEOF_HEADERS; +- .interp : { *(.interp) } ++ .interp : { *(.interp); . = 0x1000; } + .hash : { *(.hash) } + .dynsym : { *(.dynsym) } + .dynstr : { *(.dynstr) } +Index: qemu-1.4.0/ldscripts/x86_64.ld +=================================================================== +--- qemu-1.4.0.orig/ldscripts/x86_64.ld 2013-02-15 15:05:35.000000000 -0800 ++++ qemu-1.4.0/ldscripts/x86_64.ld 2013-02-28 22:55:36.138816418 -0800 +@@ -6,7 +6,7 @@ + { + /* Read-only sections, merged into text segment: */ + . = 0x60000000 + SIZEOF_HEADERS; +- .interp : { *(.interp) } ++ .interp : { *(.interp); . = 0x1000; } + .hash : { *(.hash) } + .dynsym : { *(.dynsym) } + .dynstr : { *(.dynstr) } diff --git a/recipes-devtools/qemu/qemu_fslgit.bb b/recipes-devtools/qemu/qemu_fslgit.bb new file mode 100644 index 0000000..921bf2f --- /dev/null +++ b/recipes-devtools/qemu/qemu_fslgit.bb @@ -0,0 +1,53 @@ +require recipes-devtools/qemu/qemu.inc + +LIC_FILES_CHKSUM = "file://COPYING;md5=441c28d2cf86e15a37fa47e15a72fbac \ + file://COPYING.LIB;endline=24;md5=c04def7ae38850e7d3ef548588159913" + +# This means v1.4 with FSL specific patches applied +PV = "1.4+fsl" + +SRC_URI = "git://git.freescale.com/ppc/sdk/qemu.git" +SRCREV = "8713c58725df407dbbedb48fa315248d0100720c" + +SRC_URI += " \ + file://0001-doc-Fix-texinfo-table-markup-in-qemu-options.hx.patch \ + file://0002-docs-Fix-generating-qemu-doc.html-with-texinfo-5.patch \ + file://fdt_header.patch \ +" + +S = "${WORKDIR}/git" + +QEMU_TARGETS = "ppc" +PPC_OECONF = '${SDL} --cross-prefix=${TARGET_PREFIX} --disable-werror --disable-vnc --audio-drv-list="" --audio-card-list="" --disable-bluez --disable-curl' +EXTRA_OECONF_e5500-64b = "--target-list=ppc64-softmmu ${PPC_OECONF}" +EXTRA_OECONF_e6500-64b = "--target-list=ppc64-softmmu ${PPC_OECONF}" +EXTRA_OECONF_e6500 = "--target-list=ppc64-softmmu ${PPC_OECONF}" +EXTRA_OECONF_e5500 = "--target-list=ppc64-softmmu ${PPC_OECONF}" +EXTRA_OECONF_e500v2 = "--target-list=ppc-softmmu ${PPC_OECONF}" +EXTRA_OECONF_e500mc = "--target-list=ppc-softmmu ${PPC_OECONF}" + +do_configure_prepend() { + export PKG_CONFIG=${STAGING_DIR_NATIVE}${bindir_native}/pkg-config +} + +do_configure_append () { + grep 'CONFIG_FDT=y' config-host.mak +} + +# gets around qemu.inc trying to install powerpc_rom.bin +do_install_prepend() { + touch ${WORKDIR}/powerpc_rom.bin +} + +do_install_append() { + rm ${WORKDIR}/powerpc_rom.bin +} + +INSANE_SKIP_${PN} += "dev-deps" + +# This is only meant to be build to run on the target +# for the given arch types listed, otherwise don't let +# the package get built. COMPATIBLE_HOST would not work +# because it was too generic +COMPATIBLE_MACHINE = "a^" +COMPATIBLE_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 @@ +DESCRIPTION = "Templatized C++ Command Line Parser" +HOMEPAGE = "http://tclap.sourceforge.net/" +SECTION = "tclap" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=c8ab0ff134bcc584d0e6b5b9f8732453" + +SRCREV = "3627d9402e529770df9b0edf2aa8c0e0d6c6bb41" +SRC_URI = "git://tclap.git.sourceforge.net/gitroot/tclap/tclap;protocal=git;branch=master" + +S = "${WORKDIR}/git" +inherit autotools + +do_install_prepend() { + install -d ${S}/docs/html +} + +BBCLASSEXTEND = "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..ac25013 --- /dev/null +++ b/recipes-dpaa/eth-config/eth-config_git.bb @@ -0,0 +1,19 @@ +DESCRIPTION = "Ethernet Configuration Files" +SECTION = "eth-config" +LICENSE = "Freescale-EULA" +LIC_FILES_CHKSUM = "file://COPYING;md5=cf02dc8eb5ac4a76f3812826520dea87" + +PR = "r2" + +SRC_URI = "git://git.freescale.com/ppc/sdk/eth-config.git" +SRCREV = "c255231fb606bff18390da3b26e1ee9fca55e4e6" + +S = "${WORKDIR}/git" + +do_install() { + install -d ${D}/etc/fmc/config + install -m 644 ${S}/*.xml ${D}/etc/fmc/config + install -d ${D}/etc/fmc/config/shared_mac + install -m 644 ${S}/shared_mac/*.xml ${D}/etc/fmc/config/shared_mac + install -m 644 ${S}/shared_mac/README ${D}/etc/fmc/config/shared_mac +} diff --git a/recipes-dpaa/flib/flib_git.bb b/recipes-dpaa/flib/flib_git.bb new file mode 100644 index 0000000..fb3f698 --- /dev/null +++ b/recipes-dpaa/flib/flib_git.bb @@ -0,0 +1,15 @@ +DESCRIPTION = "Foundation Library" +SECTION = "flib" +LICENSE = "BSD & GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=3f16fa8e677e45af3127c5c4bafc3c00" + +SRC_URI = "git://git.freescale.com/ppc/sdk/flib.git" +SRCREV = "ff692ad3c286a07717c6677177825889fe17d450" + +S = "${WORKDIR}/git" + +do_install(){ + oe_runmake install DESTDIR=${D} +} + +ALLOW_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..76d00b9 --- /dev/null +++ b/recipes-dpaa/fm-ucode/fm-ucode_git.bb @@ -0,0 +1,46 @@ +DESCRIPTION = "Fman microcode binary" +SECTION = "fm-ucode" +LICENSE = "Freescale-EULA" +LIC_FILES_CHKSUM = "file://EULA;md5=60037ccba533a5995e8d1a838d85799c" + +PR = "r1" + +COMPATIBLE_MACHINE = "(p1023rdb|p2041rdb|p3041ds|p4080ds|p5020ds|p5040ds|p5020ds-64b|p5040ds-64b|b4420qds|b4420qds-64b|b4860qds|b4860qds-64b|t4160qds|t4160qds-64b|t4240qds|t4240qds-64b)" +inherit deploy + +SRC_URI = "git://git.freescale.com/ppc/sdk/fm-ucode.git" +SRCREV = "4ca0e41de225b34962e1517c2c75bbb31a381e1a" + +S = "${WORKDIR}/git" + +ALLOW_EMPTY_${PN} = "1" +do_install () { + case ${MACHINE} in + b4420qds|b4420qds-64b|b4860qds|b4860qds-64b) UCODE=b4860qds;; + t4240qds|t4240qds-64b|t4160qds|t4160qds-64b) UCODE=t4240qds;; + p5020ds|p5020ds-64b) UCODE=p5020ds;; + p5040ds|p5040ds-64b) UCODE=p5040ds;; + *) UCODE=${MACHINE};; + esac + UCODE=`echo $UCODE | sed -e 's,[a-zA-Z]*$,,'` + install -d ${D}/boot + install -m 644 fsl_fman_ucode_${UCODE}*.bin ${D}/boot/ +} + +do_deploy () { + case ${MACHINE} in + b4420qds|b4420qds-64b|b4860qds|b4860qds-64b) UCODE=b4860qds;; + t4240qds|t4240qds-64b|t4160qds|t4160qds-64b) UCODE=t4240qds;; + p5020ds|p5020ds-64b) UCODE=p5020ds;; + p5040ds|p5040ds-64b) UCODE=p5040ds;; + *) UCODE=${MACHINE};; + esac + UCODE=`echo $UCODE | sed -e 's,[a-zA-Z]*$,,'` + install -d ${DEPLOYDIR}/ + install -m 644 fsl_fman_ucode_${UCODE}*.bin ${DEPLOYDIR}/ +} +addtask deploy before do_build after do_install + +PACKAGES += "${PN}-image" +FILES_${PN}-image += "/boot" + diff --git a/recipes-dpaa/fmc/fmc_git.bb b/recipes-dpaa/fmc/fmc_git.bb new file mode 100644 index 0000000..20f93f6 --- /dev/null +++ b/recipes-dpaa/fmc/fmc_git.bb @@ -0,0 +1,53 @@ +DESCRIPTION = "Frame Manager Configuration tool" +SECTION = "fmc" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=a504ab5a8ff235e67c7301214749346c" + +PR = "r2" + +SRC_URI = "git://git.freescale.com/ppc/sdk/fmc.git" +SRCREV = "f2e1a831a96f1d04d3d5a5970d2e54c38098cf39" + +DEPENDS = "libxml2 fmlib tclap" + +PACKAGE_ARCH = "${MACHINE_ARCH}" + +S = "${WORKDIR}/git" + +EXTRA_OEMAKE = 'FMD_USPACE_HEADER_PATH="${STAGING_INCDIR}/fmd" \ + FMD_USPACE_LIB_PATH="${STAGING_LIBDIR}" LIBXML2_HEADER_PATH="${STAGING_INCDIR}/libxml2" \ + TCLAP_HEADER_PATH="${STAGING_INCDIR}" ' +EXTRA_OEMAKE_virtclass-native = 'FMCHOSTMODE=1 FMD_USPACE_HEADER_PATH="${STAGING_INCDIR}/fmd" \ + FMD_USPACE_LIB_PATH="${STAGING_LIBDIR}" LIBXML2_HEADER_PATH="${STAGING_INCDIR}/libxml2" \ + TCLAP_HEADER_PATH="${STAGING_INCDIR}" ' + +PARALLEL_MAKE = "" + +do_compile () { + if [ "b4860qds" = "${MACHINE}" ] || [ "b4420qds" = "${MACHINE}" ];then + EXTRA_OEMAKE_PLATFORM="b4860qds" + elif [ "t4240qds" = "${MACHINE}" ] || [ "t4160qds" = "${MACHINE}" ];then + EXTRA_OEMAKE_PLATFORM="t4240qds" + elif [ "p1023rds" = "${MACHINE}" ];then + EXTRA_OEMAKE_PLATFORM="p1023rds" + else + EXTRA_OEMAKE_PLATFORM="" + fi + oe_runmake MACHINE=${EXTRA_OEMAKE_PLATFORM} -C source +} + +do_install () { + install -d ${D}/${bindir} + install -m 755 ${S}/source/fmc ${D}/${bindir}/fmc + + install -d ${D}/etc/fmc/config + install -m 644 ${S}/etc/fmc/config/hxs_pdl_v3.xml ${D}/etc/fmc/config + + install -d ${D}/${includedir}/fmc + install ${S}/source/fmc.h ${D}/${includedir}/fmc + + install -d ${D}/${libdir} + install ${S}/source/libfmc.a ${D}/${libdir} +} + +BBCLASSEXTEND = "native" diff --git a/recipes-dpaa/fmlib/files/0001-fm-lib-make-the-library-install-path-configurable.patch b/recipes-dpaa/fmlib/files/0001-fm-lib-make-the-library-install-path-configurable.patch new file mode 100644 index 0000000..4894ce3 --- /dev/null +++ b/recipes-dpaa/fmlib/files/0001-fm-lib-make-the-library-install-path-configurable.patch @@ -0,0 +1,43 @@ +From 67b539d256520f95f3c8101f4605ea6d496982df Mon Sep 17 00:00:00 2001 +From: Zhenhua Luo +Date: Thu, 18 Oct 2012 17:28:00 +0300 +Subject: [PATCH] fm-lib: make the library install path configurable + +currently library for both 32bit target and 64bit target +is installed in /usr/lib folder, add a variable to make the +install path configurable + +Signed-off-by: Zhenhua Luo +--- + Makefile | 8 +++++--- + 1 file changed, 5 insertions(+), 3 deletions(-) + +diff --git a/Makefile b/Makefile +index 06fe930..d59f44a 100644 +--- a/Makefile ++++ b/Makefile +@@ -59,6 +59,8 @@ endif + + INSTALL?=install + ++LIB_DEST_DIR?=$(PREFIX)/lib ++ + # Don't forget to increment .version before doing a new release! + FM_LIB_VERSION:=$(shell cat .version) + +@@ -118,9 +120,9 @@ archive: all .version + + install-%: %.a + @(echo "Installing...") +- @($(INSTALL) -d $(DESTDIR)$(PREFIX)/lib) +- @($(INSTALL) $< $(DESTDIR)$(PREFIX)/lib) +- @(ln -s $(DESTDIR)$(PREFIX)/lib/$< $(DESTDIR)$(PREFIX)/lib/libfm.a) ++ @($(INSTALL) -d $(DESTDIR)$(LIB_DEST_DIR)) ++ @($(INSTALL) $< $(DESTDIR)$(LIB_DEST_DIR)) ++ @(ln -s $(DESTDIR)$(LIB_DEST_DIR)/$< $(DESTDIR)$(LIB_DEST_DIR)/libfm.a) + @(cp -r -p ./include $(DESTDIR)$(PREFIX)) + @($(INSTALL) -d $(DESTDIR)$(PREFIX)/share/doc/fm-lib-$(FM_LIB_VERSION)) + @($(INSTALL) $(FM_LIB_DOCFILES) $(DESTDIR)$(PREFIX)/share/doc/fm-lib-$(FM_LIB_VERSION)) +-- +1.7.9.5 + diff --git a/recipes-dpaa/fmlib/fmlib_git.bb b/recipes-dpaa/fmlib/fmlib_git.bb new file mode 100644 index 0000000..0426caf --- /dev/null +++ b/recipes-dpaa/fmlib/fmlib_git.bb @@ -0,0 +1,43 @@ +DESCRIPTION = "Frame Manager User Space Library" +SECTION = "fman" +LICENSE = "BSD & GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=3f16fa8e677e45af3127c5c4bafc3c00" + +PR = "r1" + +DEPENDS += "virtual/kernel" +DEPENDS_virtclass-native = "" + +SRC_URI = "git://git.freescale.com/ppc/sdk/fmlib.git" +SRCREV = "7d843485bdac963d98f81773c0f3cb15936e09da" + +S = "${WORKDIR}/git" + +TARGET_ARCH_FMLIB = "${DEFAULTTUNE}" +TARGET_ARCH_FMLIB_e5500 = "ppc32e5500" +TARGET_ARCH_FMLIB_e6500 = "ppc32e6500" +COMPATIBLE_HOST_fslmachine = ".*" +COMPATIBLE_HOST ?= "(none)" + +EXTRA_OEMAKE = "DESTDIR=${D} PREFIX=${prefix} LIB_DEST_DIR=${libdir} \ + CROSS_COMPILE=${TARGET_PREFIX} KERNEL_SRC=${STAGING_KERNEL_DIR}" + +do_compile () { + oe_runmake libfm-${TARGET_ARCH_FMLIB}.a +} + +do_compile_virtclass-native () { +} + +do_install () { + oe_runmake install-libfm-${TARGET_ARCH_FMLIB} +} + +do_install_virtclass-native () { + install -d ${D}/${includedir} + cp -rf ${S}/include/* ${D}/${includedir} +} + +ALLOW_EMPTY_${PN} = "1" + +BBCLASSEXTEND = "native" diff --git a/recipes-dpaa/usdpaa/usdpaa_git.bb b/recipes-dpaa/usdpaa/usdpaa_git.bb new file mode 100644 index 0000000..48e860f --- /dev/null +++ b/recipes-dpaa/usdpaa/usdpaa_git.bb @@ -0,0 +1,49 @@ +DESCRIPTION = "User-Space Data-Path Acceleration Architecture drivers" +LICENSE = "BSD & GPLv2" +LIC_FILES_CHKSUM = "file://Makefile;endline=30;md5=39e58bedc879163c9338596e52df5b1f" +PR = "r4" + +inherit pkgconfig + +DEPENDS = "libxml2 libedit ncurses readline flib fmc" +RDEPENDS_${PN} = "libgcc bash" + +SRC_URI = "git://git.freescale.com/ppc/sdk/usdpaa.git" +SRCREV = "97fe45d9697ef339e10a1885539b23fa7fcb113e" + +S = "${WORKDIR}/git" + +EXTRA_OEMAKE = 'CC="${CC}" LD="${LD}" AR="${AR}"' +export ARCH="${TARGET_ARCH}" + +do_compile_prepend () { + case ${MACHINE} in + b4420qds|b4420qds-64b|b4860qds|b4860qds-64b) SOC=B4860;; + t4240qds|t4240qds-64b) SOC=T4240;; + p1023rdb) SOC=P1023;; + *) SOC=P4080;; + esac + export FMC_EXTRA_CFLAGS="-I ${STAGING_INCDIR}/fmc" + export FMLIB_EXTRA_CFLAGS="-I ${STAGING_INCDIR}/fmd \ + -I ${STAGING_INCDIR}/fmd/Peripherals \ + -I ${STAGING_INCDIR}/fmd/integrations \ + -D $SOC" + + export LIBXML2_CFLAGS="$(pkg-config --cflags libxml-2.0)" + export LIBXML2_LDFLAGS="$(pkg-config --libs --static libxml-2.0)" + export LIBEDIT_CFLAGS="$(pkg-config --cflags libedit)" + export LIBEDIT_LDFLAGS="$(pkg-config --libs --static libedit)" +} + +do_install () { + oe_runmake install DESTDIR=${D} +} + +PARALLEL_MAKE_pn-${PN} = "" +FILES_${PN} += "/root/SOURCE_THIS /usr/etc/" + +PACKAGE_ARCH = "${MACHINE_ARCH}" + +COMPATIBLE_HOST_fslmachine = ".*" +COMPATIBLE_HOST ?= "(none)" + diff --git a/recipes-extended/cst/cst_git.bb b/recipes-extended/cst/cst_git.bb new file mode 100644 index 0000000..177f23c --- /dev/null +++ b/recipes-extended/cst/cst_git.bb @@ -0,0 +1,29 @@ +DESCRIPTION = "CST Tool" +SECTION = "cst" +LICENSE = "BSD" + +# TODO: fix license - this file is not a license +LIC_FILES_CHKSUM = "file://RELEASENOTES;beginline=8;endline=43;md5=5a7b22a2c96b5f94e0498c5f413aa8d3" + +DEPENDS += "openssl" + +SRC_URI = "git://git.freescale.com/ppc/sdk/cst.git" +SRCREV = "e4035cbf54ed481147c6ae65c741ef75dc9ec37f" + +S = "${WORKDIR}/git" + +EXTRA_OEMAKE = 'OPENSSL_LIB_PATH=${STAGING_LIBDIR} OPENSSL_INC_PATH=${STAGING_INCDIR} CC="${CC}" LD="${CC}" LDFLAGS="${LDFLAGS}"' + +do_install () { + install -d ${D}/${bindir}/cst + install -m 755 ${S}/gen_keys ${D}/${bindir}/cst/ + install -m 755 ${S}/gen_otpmk ${D}/${bindir}/cst/ + install -m 755 ${S}/uni_cfsign ${D}/${bindir}/cst/ + install -m 755 ${S}/uni_sign ${D}/${bindir}/cst/ + cp -rf ${S}/input_files ${D}/${bindir}/cst +} + +BBCLASSEXTEND = "native nativesdk" +PARALLEL_MAKE = "" + +FILES_${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 @@ +PRINC := "${@int(PRINC) + 1}" + 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 @@ +This patch adds PowerPC support in SoftFloat. + +Signed-off-by: Ebony Zhu +Signed-off-by: Liu Yu +--- + SoftFloat-2b/processors/powerpc-GCC.h | 87 ++++ + SoftFloat-2b/softfloat/bits32/powerpc-GCC/Makefile | 26 ++ + SoftFloat-2b/softfloat/bits32/powerpc-GCC/milieu.h | 55 +++ + .../bits32/powerpc-GCC/softfloat-specialize | 252 ++++++++++++ + .../softfloat/bits32/powerpc-GCC/softfloat.h | 155 +++++++ + SoftFloat-2b/softfloat/bits64/powerpc-GCC/Makefile | 24 ++ + SoftFloat-2b/softfloat/bits64/powerpc-GCC/milieu.h | 55 +++ + .../bits64/powerpc-GCC/softfloat-specialize | 422 ++++++++++++++++++++ + .../softfloat/bits64/powerpc-GCC/softfloat.h | 269 +++++++++++++ + 9 files changed, 1345 insertions(+), 0 deletions(-) + create mode 100644 SoftFloat-2b/processors/powerpc-GCC.h + create mode 100644 SoftFloat-2b/softfloat/bits32/powerpc-GCC/Makefile + create mode 100644 SoftFloat-2b/softfloat/bits32/powerpc-GCC/milieu.h + create mode 100644 SoftFloat-2b/softfloat/bits32/powerpc-GCC/softfloat-specialize + create mode 100644 SoftFloat-2b/softfloat/bits32/powerpc-GCC/softfloat.h + create mode 100644 SoftFloat-2b/softfloat/bits64/powerpc-GCC/Makefile + create mode 100644 SoftFloat-2b/softfloat/bits64/powerpc-GCC/milieu.h + create mode 100644 SoftFloat-2b/softfloat/bits64/powerpc-GCC/softfloat-specialize + create mode 100644 SoftFloat-2b/softfloat/bits64/powerpc-GCC/softfloat.h + +diff --git a/SoftFloat-2b/processors/powerpc-GCC.h b/SoftFloat-2b/processors/powerpc-GCC.h +new file mode 100644 +index 0000000..002a786 +--- /dev/null ++++ b/SoftFloat-2b/processors/powerpc-GCC.h +@@ -0,0 +1,87 @@ ++/* ++ * This file is derived from processors/386-gcc.h, ++ * the copyright for that material belongs to the original owners. ++ * ++ * Additional material and changes where applicable is: ++ * Copyright (C) 2008 Freescale Semiconductor, Inc. All rights reserved. ++ * ++ * Author: Ebony Zhu, ++ * Yu Liu, ++ * ++ * THIS SOFTWARE IS DISTRIBUTED AS IS, FOR FREE. Although reasonable effort has ++ * been made to avoid it, THIS SOFTWARE MAY CONTAIN FAULTS THAT WILL AT TIMES ++ * RESULT IN INCORRECT BEHAVIOR. USE OF THIS SOFTWARE IS RESTRICTED TO PERSONS ++ * AND ORGANIZATIONS WHO CAN AND WILL TAKE FULL RESPONSIBILITY FOR ALL LOSSES, ++ * COSTS, OR OTHER PROBLEMS THEY INCUR DUE TO THE SOFTWARE, AND WHO FURTHERMORE ++ * EFFECTIVELY INDEMNIFY JOHN HAUSER AND THE INTERNATIONAL COMPUTER SCIENCE ++ * INSTITUTE (possibly via similar legal warning) AGAINST ALL LOSSES, COSTS, OR ++ * OTHER PROBLEMS INCURRED BY THEIR CUSTOMERS AND CLIENTS DUE TO THE SOFTWARE. ++ */ ++ ++/*---------------------------------------------------------------------------- ++| One of the macros `BIGENDIAN' or `LITTLEENDIAN' must be defined. ++*----------------------------------------------------------------------------*/ ++#define BIGENDIAN ++ ++/*---------------------------------------------------------------------------- ++| The macro `BITS64' can be defined to indicate that 64-bit integer types are ++| supported by the compiler. ++*----------------------------------------------------------------------------*/ ++#define BITS32 ++ ++/*---------------------------------------------------------------------------- ++| Each of the following `typedef's defines the most convenient type that holds ++| integers of at least as many bits as specified. For example, `uint8' should ++| be the most convenient type that can hold unsigned integers of as many as ++| 8 bits. The `flag' type must be able to hold either a 0 or 1. For most ++| implementations of C, `flag', `uint8', and `int8' should all be `typedef'ed ++| to the same as `int'. ++*----------------------------------------------------------------------------*/ ++typedef int flag; ++typedef int uint8; ++typedef int int8; ++typedef int uint16; ++typedef int int16; ++typedef unsigned int uint32; ++typedef signed int int32; ++#ifdef BITS64 ++typedef unsigned long long int uint64; ++typedef signed long long int int64; ++#endif ++ ++/*---------------------------------------------------------------------------- ++| Each of the following `typedef's defines a type that holds integers ++| of _exactly_ the number of bits specified. For instance, for most ++| implementation of C, `bits16' and `sbits16' should be `typedef'ed to ++| `unsigned short int' and `signed short int' (or `short int'), respectively. ++*----------------------------------------------------------------------------*/ ++typedef unsigned char bits8; ++typedef signed char sbits8; ++typedef unsigned short int bits16; ++typedef signed short int sbits16; ++typedef unsigned int bits32; ++typedef signed int sbits32; ++#ifdef BITS64 ++typedef unsigned long long int bits64; ++typedef signed long long int sbits64; ++#endif ++ ++#ifdef BITS64 ++/*---------------------------------------------------------------------------- ++| The `LIT64' macro takes as its argument a textual integer literal and ++| if necessary ``marks'' the literal as having a 64-bit integer type. ++| For example, the GNU C Compiler (`gcc') requires that 64-bit literals be ++| appended with the letters `LL' standing for `long long', which is `gcc's ++| name for the 64-bit integer type. Some compilers may allow `LIT64' to be ++| defined as the identity macro: `#define LIT64( a ) a'. ++*----------------------------------------------------------------------------*/ ++#define LIT64( a ) a##LL ++#endif ++ ++/*---------------------------------------------------------------------------- ++| The macro `INLINE' can be used before functions that should be inlined. If ++| a compiler does not support explicit inlining, this macro should be defined ++| to be `static'. ++*----------------------------------------------------------------------------*/ ++#define INLINE extern inline ++ +diff --git a/SoftFloat-2b/softfloat/bits32/powerpc-GCC/Makefile b/SoftFloat-2b/softfloat/bits32/powerpc-GCC/Makefile +new file mode 100644 +index 0000000..28f1e33 +--- /dev/null ++++ b/SoftFloat-2b/softfloat/bits32/powerpc-GCC/Makefile +@@ -0,0 +1,26 @@ ++ ++PROCESSOR_H = ../../../processors/powerpc-GCC.h ++SOFTFLOAT_MACROS = ../softfloat-macros ++ ++OBJ = .o ++EXE = ++INCLUDES = -I. -I.. ++COMPILE_C = $(COMPILE_PREFIX)gcc -msoft-float -c -o $@ $(INCLUDES) -I- -O2 ++LINK = $(COMPILE_PREFIX)gcc -o $@ ++ ++ALL: softfloat$(OBJ) timesoftfloat$(EXE) ++ ++milieu.h: $(PROCESSOR_H) ++ touch milieu.h ++ ++softfloat$(OBJ): milieu.h softfloat.h softfloat-specialize $(SOFTFLOAT_MACROS) ../softfloat.c ++ $(COMPILE_C) ../softfloat.c ++ ++timesoftfloat$(OBJ): milieu.h softfloat.h ../timesoftfloat.c ++ $(COMPILE_C) ../timesoftfloat.c ++ ++timesoftfloat$(EXE): softfloat$(OBJ) timesoftfloat$(OBJ) ++ $(LINK) softfloat$(OBJ) timesoftfloat$(OBJ) ++ ++clean: ++ rm -f *.o timesoftfloat$(EXE) +diff --git a/SoftFloat-2b/softfloat/bits32/powerpc-GCC/milieu.h b/SoftFloat-2b/softfloat/bits32/powerpc-GCC/milieu.h +new file mode 100644 +index 0000000..d8b6012 +--- /dev/null ++++ b/SoftFloat-2b/softfloat/bits32/powerpc-GCC/milieu.h +@@ -0,0 +1,55 @@ ++/* ++ * This file is derived from softfloat/bits32/386-Win32-GCC/milieu.h, ++ * the copyright for that material belongs to the original owners. ++ * ++ * Additional material and changes where applicable is: ++ * Copyright (C) 2008 Freescale Semiconductor, Inc. All rights reserved. ++ * ++ * Author: Ebony Zhu, ++ * Yu Liu, ++ */ ++ ++/*============================================================================ ++ ++This C header file is part of the SoftFloat IEC/IEEE Floating-point Arithmetic ++Package, Release 2b. ++ ++Written by John R. Hauser. This work was made possible in part by the ++International Computer Science Institute, located at Suite 600, 1947 Center ++Street, Berkeley, California 94704. Funding was partially provided by the ++National Science Foundation under grant MIP-9311980. The original version ++of this code was written as part of a project to build a fixed-point vector ++processor in collaboration with the University of California at Berkeley, ++overseen by Profs. Nelson Morgan and John Wawrzynek. More information ++is available through the Web page `http://www.cs.berkeley.edu/~jhauser/ ++arithmetic/SoftFloat.html'. ++ ++THIS SOFTWARE IS DISTRIBUTED AS IS, FOR FREE. Although reasonable effort has ++been made to avoid it, THIS SOFTWARE MAY CONTAIN FAULTS THAT WILL AT TIMES ++RESULT IN INCORRECT BEHAVIOR. USE OF THIS SOFTWARE IS RESTRICTED TO PERSONS ++AND ORGANIZATIONS WHO CAN AND WILL TAKE FULL RESPONSIBILITY FOR ALL LOSSES, ++COSTS, OR OTHER PROBLEMS THEY INCUR DUE TO THE SOFTWARE, AND WHO FURTHERMORE ++EFFECTIVELY INDEMNIFY JOHN HAUSER AND THE INTERNATIONAL COMPUTER SCIENCE ++INSTITUTE (possibly via similar legal warning) AGAINST ALL LOSSES, COSTS, OR ++OTHER PROBLEMS INCURRED BY THEIR CUSTOMERS AND CLIENTS DUE TO THE SOFTWARE. ++ ++Derivative works are acceptable, even for commercial purposes, so long as ++(1) the source code for the derivative work includes prominent notice that ++the work is derivative, and (2) the source code includes prominent notice with ++these four paragraphs for those parts of this code that are retained. ++ ++=============================================================================*/ ++ ++/*---------------------------------------------------------------------------- ++| Include common integer types and flags. ++*----------------------------------------------------------------------------*/ ++#include "../../../processors/powerpc-GCC.h" ++ ++/*---------------------------------------------------------------------------- ++| Symbolic Boolean literals. ++*----------------------------------------------------------------------------*/ ++enum { ++ FALSE = 0, ++ TRUE = 1 ++}; ++ +diff --git a/SoftFloat-2b/softfloat/bits32/powerpc-GCC/softfloat-specialize b/SoftFloat-2b/softfloat/bits32/powerpc-GCC/softfloat-specialize +new file mode 100644 +index 0000000..fd2caa4 +--- /dev/null ++++ b/SoftFloat-2b/softfloat/bits32/powerpc-GCC/softfloat-specialize +@@ -0,0 +1,252 @@ ++/* ++ * This file is derived from softfloat/bits32/386-Win32-GCC/softfloat-specialize, ++ * the copyright for that material belongs to the original owners. ++ * ++ * Additional material and changes where applicable is: ++ * Copyright (C) 2008 Freescale Semiconductor, Inc. All rights reserved. ++ * ++ * Author: Ebony Zhu, ++ * Yu Liu, ++ */ ++ ++/*============================================================================ ++ ++This C source fragment is part of the SoftFloat IEC/IEEE Floating-point ++Arithmetic Package, Release 2b. ++ ++Written by John R. Hauser. This work was made possible in part by the ++International Computer Science Institute, located at Suite 600, 1947 Center ++Street, Berkeley, California 94704. Funding was partially provided by the ++National Science Foundation under grant MIP-9311980. The original version ++of this code was written as part of a project to build a fixed-point vector ++processor in collaboration with the University of California at Berkeley, ++overseen by Profs. Nelson Morgan and John Wawrzynek. More information ++is available through the Web page `http://www.cs.berkeley.edu/~jhauser/ ++arithmetic/SoftFloat.html'. ++ ++THIS SOFTWARE IS DISTRIBUTED AS IS, FOR FREE. Although reasonable effort has ++been made to avoid it, THIS SOFTWARE MAY CONTAIN FAULTS THAT WILL AT TIMES ++RESULT IN INCORRECT BEHAVIOR. USE OF THIS SOFTWARE IS RESTRICTED TO PERSONS ++AND ORGANIZATIONS WHO CAN AND WILL TAKE FULL RESPONSIBILITY FOR ALL LOSSES, ++COSTS, OR OTHER PROBLEMS THEY INCUR DUE TO THE SOFTWARE, AND WHO FURTHERMORE ++EFFECTIVELY INDEMNIFY JOHN HAUSER AND THE INTERNATIONAL COMPUTER SCIENCE ++INSTITUTE (possibly via similar legal warning) AGAINST ALL LOSSES, COSTS, OR ++OTHER PROBLEMS INCURRED BY THEIR CUSTOMERS AND CLIENTS DUE TO THE SOFTWARE. ++ ++Derivative works are acceptable, even for commercial purposes, so long as ++(1) the source code for the derivative work includes prominent notice that ++the work is derivative, and (2) the source code includes prominent notice with ++these four paragraphs for those parts of this code that are retained. ++ ++=============================================================================*/ ++ ++/*---------------------------------------------------------------------------- ++| Underflow tininess-detection mode, statically initialized to default value. ++| (The declaration in `softfloat.h' must match the `int8' type here.) ++*----------------------------------------------------------------------------*/ ++int8 float_detect_tininess = float_tininess_after_rounding; ++ ++/*---------------------------------------------------------------------------- ++| Raises the exceptions specified by `flags'. Floating-point traps can be ++| defined here if desired. It is currently not possible for such a trap ++| to substitute a result value. If traps are not implemented, this routine ++| should be simply `float_exception_flags |= flags;'. ++*----------------------------------------------------------------------------*/ ++ ++void float_raise( int8 flags ) ++{ ++ ++ float_exception_flags |= flags; ++ ++} ++ ++/*---------------------------------------------------------------------------- ++| Internal canonical NaN format. ++*----------------------------------------------------------------------------*/ ++typedef struct { ++ flag sign; ++ bits32 high, low; ++} commonNaNT; ++ ++/*---------------------------------------------------------------------------- ++| The pattern for a default generated single-precision NaN. ++*----------------------------------------------------------------------------*/ ++enum { ++ float32_default_nan = 0xFFFFFFFF ++}; ++ ++/*---------------------------------------------------------------------------- ++| Returns 1 if the single-precision floating-point value `a' is a NaN; ++| otherwise returns 0. ++*----------------------------------------------------------------------------*/ ++ ++flag float32_is_nan( float32 a ) ++{ ++ ++ return ( 0xFF000000 < (bits32) ( a<<1 ) ); ++ ++} ++ ++/*---------------------------------------------------------------------------- ++| Returns 1 if the single-precision floating-point value `a' is a signaling ++| NaN; otherwise returns 0. ++*----------------------------------------------------------------------------*/ ++ ++flag float32_is_signaling_nan( float32 a ) ++{ ++ ++ return ( ( ( a>>22 ) & 0x1FF ) == 0x1FE ) && ( a & 0x003FFFFF ); ++ ++} ++ ++/*---------------------------------------------------------------------------- ++| Returns the result of converting the single-precision floating-point NaN ++| `a' to the canonical NaN format. If `a' is a signaling NaN, the invalid ++| exception is raised. ++*----------------------------------------------------------------------------*/ ++ ++static commonNaNT float32ToCommonNaN( float32 a ) ++{ ++ commonNaNT z; ++ ++ if ( float32_is_signaling_nan( a ) ) float_raise( float_flag_invalid ); ++ z.sign = a>>31; ++ z.low = 0; ++ z.high = a<<9; ++ return z; ++ ++} ++ ++/*---------------------------------------------------------------------------- ++| Returns the result of converting the canonical NaN `a' to the single- ++| precision floating-point format. ++*----------------------------------------------------------------------------*/ ++ ++static float32 commonNaNToFloat32( commonNaNT a ) ++{ ++ ++ return ( ( (bits32) a.sign )<<31 ) | 0x7FC00000 | ( a.high>>9 ); ++ ++} ++ ++/*---------------------------------------------------------------------------- ++| Takes two single-precision floating-point values `a' and `b', one of which ++| is a NaN, and returns the appropriate NaN result. If either `a' or `b' is a ++| signaling NaN, the invalid exception is raised. ++*----------------------------------------------------------------------------*/ ++ ++static float32 propagateFloat32NaN( float32 a, float32 b ) ++{ ++ flag aIsNaN, aIsSignalingNaN, bIsNaN, bIsSignalingNaN; ++ ++ aIsNaN = float32_is_nan( a ); ++ aIsSignalingNaN = float32_is_signaling_nan( a ); ++ bIsNaN = float32_is_nan( b ); ++ bIsSignalingNaN = float32_is_signaling_nan( b ); ++ a |= 0x00400000; ++ b |= 0x00400000; ++ if ( aIsSignalingNaN | bIsSignalingNaN ) float_raise( float_flag_invalid ); ++ if ( aIsNaN ) { ++ return ( aIsSignalingNaN & bIsNaN ) ? b : a; ++ } ++ else { ++ return b; ++ } ++ ++} ++ ++/*---------------------------------------------------------------------------- ++| The pattern for a default generated double-precision NaN. The `high' and ++| `low' values hold the most- and least-significant bits, respectively. ++*----------------------------------------------------------------------------*/ ++enum { ++ float64_default_nan_high = 0xFFFFFFFF, ++ float64_default_nan_low = 0xFFFFFFFF ++}; ++ ++/*---------------------------------------------------------------------------- ++| Returns 1 if the double-precision floating-point value `a' is a NaN; ++| otherwise returns 0. ++*----------------------------------------------------------------------------*/ ++ ++flag float64_is_nan( float64 a ) ++{ ++ ++ return ++ ( 0xFFE00000 <= (bits32) ( a.high<<1 ) ) ++ && ( a.low || ( a.high & 0x000FFFFF ) ); ++ ++} ++ ++/*---------------------------------------------------------------------------- ++| Returns 1 if the double-precision floating-point value `a' is a signaling ++| NaN; otherwise returns 0. ++*----------------------------------------------------------------------------*/ ++ ++flag float64_is_signaling_nan( float64 a ) ++{ ++ ++ return ++ ( ( ( a.high>>19 ) & 0xFFF ) == 0xFFE ) ++ && ( a.low || ( a.high & 0x0007FFFF ) ); ++ ++} ++ ++/*---------------------------------------------------------------------------- ++| Returns the result of converting the double-precision floating-point NaN ++| `a' to the canonical NaN format. If `a' is a signaling NaN, the invalid ++| exception is raised. ++*----------------------------------------------------------------------------*/ ++ ++static commonNaNT float64ToCommonNaN( float64 a ) ++{ ++ commonNaNT z; ++ ++ if ( float64_is_signaling_nan( a ) ) float_raise( float_flag_invalid ); ++ z.sign = a.high>>31; ++ shortShift64Left( a.high, a.low, 12, &z.high, &z.low ); ++ return z; ++ ++} ++ ++/*---------------------------------------------------------------------------- ++| Returns the result of converting the canonical NaN `a' to the double- ++| precision floating-point format. ++*----------------------------------------------------------------------------*/ ++ ++static float64 commonNaNToFloat64( commonNaNT a ) ++{ ++ float64 z; ++ ++ shift64Right( a.high, a.low, 12, &z.high, &z.low ); ++ z.high |= ( ( (bits32) a.sign )<<31 ) | 0x7FF80000; ++ return z; ++ ++} ++ ++/*---------------------------------------------------------------------------- ++| Takes two double-precision floating-point values `a' and `b', one of which ++| is a NaN, and returns the appropriate NaN result. If either `a' or `b' is a ++| signaling NaN, the invalid exception is raised. ++*----------------------------------------------------------------------------*/ ++ ++static float64 propagateFloat64NaN( float64 a, float64 b ) ++{ ++ flag aIsNaN, aIsSignalingNaN, bIsNaN, bIsSignalingNaN; ++ ++ aIsNaN = float64_is_nan( a ); ++ aIsSignalingNaN = float64_is_signaling_nan( a ); ++ bIsNaN = float64_is_nan( b ); ++ bIsSignalingNaN = float64_is_signaling_nan( b ); ++ a.high |= 0x00080000; ++ b.high |= 0x00080000; ++ if ( aIsSignalingNaN | bIsSignalingNaN ) float_raise( float_flag_invalid ); ++ if ( aIsNaN ) { ++ return ( aIsSignalingNaN & bIsNaN ) ? b : a; ++ } ++ else { ++ return b; ++ } ++ ++} ++ +diff --git a/SoftFloat-2b/softfloat/bits32/powerpc-GCC/softfloat.h b/SoftFloat-2b/softfloat/bits32/powerpc-GCC/softfloat.h +new file mode 100644 +index 0000000..0015b8e +--- /dev/null ++++ b/SoftFloat-2b/softfloat/bits32/powerpc-GCC/softfloat.h +@@ -0,0 +1,155 @@ ++/* ++ * This file is derived from softfloat/bits32/386-Win32-GCC/softfloat.h, ++ * the copyright for that material belongs to the original owners. ++ * ++ * Additional material and changes where applicable is: ++ * Copyright (C) 2008 Freescale Semiconductor, Inc. All rights reserved. ++ * ++ * Author: Ebony Zhu, ++ * Yu Liu, ++ */ ++ ++/*============================================================================ ++ ++This C header file is part of the SoftFloat IEC/IEEE Floating-point Arithmetic ++Package, Release 2b. ++ ++Written by John R. Hauser. This work was made possible in part by the ++International Computer Science Institute, located at Suite 600, 1947 Center ++Street, Berkeley, California 94704. Funding was partially provided by the ++National Science Foundation under grant MIP-9311980. The original version ++of this code was written as part of a project to build a fixed-point vector ++processor in collaboration with the University of California at Berkeley, ++overseen by Profs. Nelson Morgan and John Wawrzynek. More information ++is available through the Web page `http://www.cs.berkeley.edu/~jhauser/ ++arithmetic/SoftFloat.html'. ++ ++THIS SOFTWARE IS DISTRIBUTED AS IS, FOR FREE. Although reasonable effort has ++been made to avoid it, THIS SOFTWARE MAY CONTAIN FAULTS THAT WILL AT TIMES ++RESULT IN INCORRECT BEHAVIOR. USE OF THIS SOFTWARE IS RESTRICTED TO PERSONS ++AND ORGANIZATIONS WHO CAN AND WILL TAKE FULL RESPONSIBILITY FOR ALL LOSSES, ++COSTS, OR OTHER PROBLEMS THEY INCUR DUE TO THE SOFTWARE, AND WHO FURTHERMORE ++EFFECTIVELY INDEMNIFY JOHN HAUSER AND THE INTERNATIONAL COMPUTER SCIENCE ++INSTITUTE (possibly via similar legal warning) AGAINST ALL LOSSES, COSTS, OR ++OTHER PROBLEMS INCURRED BY THEIR CUSTOMERS AND CLIENTS DUE TO THE SOFTWARE. ++ ++Derivative works are acceptable, even for commercial purposes, so long as ++(1) the source code for the derivative work includes prominent notice that ++the work is derivative, and (2) the source code includes prominent notice with ++these four paragraphs for those parts of this code that are retained. ++ ++=============================================================================*/ ++ ++/*---------------------------------------------------------------------------- ++| Software IEC/IEEE floating-point types. ++*----------------------------------------------------------------------------*/ ++typedef bits32 float32; ++typedef struct { ++ bits32 high, low; ++} float64; ++ ++/*---------------------------------------------------------------------------- ++| Software IEC/IEEE floating-point underflow tininess-detection mode. ++*----------------------------------------------------------------------------*/ ++extern int8 float_detect_tininess; ++enum { ++ float_tininess_after_rounding = 0, ++ float_tininess_before_rounding = 1 ++}; ++ ++/*---------------------------------------------------------------------------- ++| Software IEC/IEEE floating-point rounding mode. ++*----------------------------------------------------------------------------*/ ++extern int8 float_rounding_mode; ++enum { ++ float_round_nearest_even = 0, ++ float_round_to_zero = 1, ++ float_round_up = 2, ++ float_round_down = 3 ++}; ++ ++/*---------------------------------------------------------------------------- ++| Software IEC/IEEE floating-point exception flags. ++*----------------------------------------------------------------------------*/ ++/* ++extern int8 float_exception_flags; ++enum { ++ float_flag_inexact = 1, ++ float_flag_underflow = 2, ++ float_flag_overflow = 4, ++ float_flag_divbyzero = 8, ++ float_flag_invalid = 16 ++}; ++*/ ++ ++extern int8 float_exception_flags; ++enum { ++ float_flag_inexact = 16, ++ float_flag_underflow = 2, ++ float_flag_overflow = 1, ++ float_flag_divbyzero = 4, ++ float_flag_invalid = 8 ++}; ++ ++/*---------------------------------------------------------------------------- ++| Routine to raise any or all of the software IEC/IEEE floating-point ++| exception flags. ++*----------------------------------------------------------------------------*/ ++void float_raise( int8 ); ++ ++/*---------------------------------------------------------------------------- ++| Software IEC/IEEE integer-to-floating-point conversion routines. ++*----------------------------------------------------------------------------*/ ++float32 int32_to_float32( int32 ); ++float64 int32_to_float64( int32 ); ++ ++/*---------------------------------------------------------------------------- ++| Software IEC/IEEE single-precision conversion routines. ++*----------------------------------------------------------------------------*/ ++int32 float32_to_int32( float32 ); ++int32 float32_to_int32_round_to_zero( float32 ); ++float64 float32_to_float64( float32 ); ++ ++/*---------------------------------------------------------------------------- ++| Software IEC/IEEE single-precision operations. ++*----------------------------------------------------------------------------*/ ++float32 float32_round_to_int( float32 ); ++float32 float32_add( float32, float32 ); ++float32 float32_sub( float32, float32 ); ++float32 float32_mul( float32, float32 ); ++float32 float32_div( float32, float32 ); ++float32 float32_rem( float32, float32 ); ++float32 float32_sqrt( float32 ); ++flag float32_eq( float32, float32 ); ++flag float32_le( float32, float32 ); ++flag float32_lt( float32, float32 ); ++flag float32_eq_signaling( float32, float32 ); ++flag float32_le_quiet( float32, float32 ); ++flag float32_lt_quiet( float32, float32 ); ++flag float32_is_signaling_nan( float32 ); ++ ++/*---------------------------------------------------------------------------- ++| Software IEC/IEEE double-precision conversion routines. ++*----------------------------------------------------------------------------*/ ++int32 float64_to_int32( float64 ); ++int32 float64_to_int32_round_to_zero( float64 ); ++float32 float64_to_float32( float64 ); ++ ++/*---------------------------------------------------------------------------- ++| Software IEC/IEEE double-precision operations. ++*----------------------------------------------------------------------------*/ ++float64 float64_round_to_int( float64 ); ++float64 float64_add( float64, float64 ); ++float64 float64_sub( float64, float64 ); ++float64 float64_mul( float64, float64 ); ++float64 float64_div( float64, float64 ); ++float64 float64_rem( float64, float64 ); ++float64 float64_sqrt( float64 ); ++flag float64_eq( float64, float64 ); ++flag float64_le( float64, float64 ); ++flag float64_lt( float64, float64 ); ++flag float64_eq_signaling( float64, float64 ); ++flag float64_le_quiet( float64, float64 ); ++flag float64_lt_quiet( float64, float64 ); ++flag float64_is_signaling_nan( float64 ); ++ +diff --git a/SoftFloat-2b/softfloat/bits64/powerpc-GCC/Makefile b/SoftFloat-2b/softfloat/bits64/powerpc-GCC/Makefile +new file mode 100644 +index 0000000..a5e2cc7 +--- /dev/null ++++ b/SoftFloat-2b/softfloat/bits64/powerpc-GCC/Makefile +@@ -0,0 +1,24 @@ ++ ++PROCESSOR_H = ../../../processors/powerpc-GCC.h ++SOFTFLOAT_MACROS = ../softfloat-macros ++ ++OBJ = .o ++EXE = ++INCLUDES = -I. -I.. ++COMPILE_C = $(COMPILE_PREFIX) -mcpu=8548 -mhard-float -mfloat-gprs=double -o $@ $(INCLUDES) -I- -O2 ++LINK = $(COMPILE_PREFIX) -o $@ ++ ++ALL: softfloat$(OBJ) timesoftfloat$(EXE) ++ ++milieu.h: $(PROCESSOR_H) ++ touch milieu.h ++ ++softfloat$(OBJ): milieu.h softfloat.h softfloat-specialize $(SOFTFLOAT_MACROS) ../softfloat.c ++ $(COMPILE_C) ../softfloat.c ++ ++timesoftfloat$(OBJ): milieu.h softfloat.h ../timesoftfloat.c ++ $(COMPILE_C) ../timesoftfloat.c ++ ++timesoftfloat$(EXE): softfloat$(OBJ) timesoftfloat$(OBJ) ++ $(LINK) softfloat$(OBJ) timesoftfloat$(OBJ) ++ +diff --git a/SoftFloat-2b/softfloat/bits64/powerpc-GCC/milieu.h b/SoftFloat-2b/softfloat/bits64/powerpc-GCC/milieu.h +new file mode 100644 +index 0000000..1b66490 +--- /dev/null ++++ b/SoftFloat-2b/softfloat/bits64/powerpc-GCC/milieu.h +@@ -0,0 +1,55 @@ ++/* ++ * This file is derived from softfloat/bits64/386-Win32-GCC/milieu.h, ++ * the copyright for that material belongs to the original owners. ++ * ++ * Additional material and changes where applicable is: ++ * Copyright (C) 2008 Freescale Semiconductor, Inc. All rights reserved. ++ * ++ * Author: Ebony Zhu, ++ * Yu Liu, ++ */ ++ ++/*============================================================================ ++ ++This C header file is part of the SoftFloat IEC/IEEE Floating-point Arithmetic ++Package, Release 2b. ++ ++Written by John R. Hauser. This work was made possible in part by the ++International Computer Science Institute, located at Suite 600, 1947 Center ++Street, Berkeley, California 94704. Funding was partially provided by the ++National Science Foundation under grant MIP-9311980. The original version ++of this code was written as part of a project to build a fixed-point vector ++processor in collaboration with the University of California at Berkeley, ++overseen by Profs. Nelson Morgan and John Wawrzynek. More information ++is available through the Web page `http://www.cs.berkeley.edu/~jhauser/ ++arithmetic/SoftFloat.html'. ++ ++THIS SOFTWARE IS DISTRIBUTED AS IS, FOR FREE. Although reasonable effort has ++been made to avoid it, THIS SOFTWARE MAY CONTAIN FAULTS THAT WILL AT TIMES ++RESULT IN INCORRECT BEHAVIOR. USE OF THIS SOFTWARE IS RESTRICTED TO PERSONS ++AND ORGANIZATIONS WHO CAN AND WILL TAKE FULL RESPONSIBILITY FOR ALL LOSSES, ++COSTS, OR OTHER PROBLEMS THEY INCUR DUE TO THE SOFTWARE, AND WHO FURTHERMORE ++EFFECTIVELY INDEMNIFY JOHN HAUSER AND THE INTERNATIONAL COMPUTER SCIENCE ++INSTITUTE (possibly via similar legal warning) AGAINST ALL LOSSES, COSTS, OR ++OTHER PROBLEMS INCURRED BY THEIR CUSTOMERS AND CLIENTS DUE TO THE SOFTWARE. ++ ++Derivative works are acceptable, even for commercial purposes, so long as ++(1) the source code for the derivative work includes prominent notice that ++the work is derivative, and (2) the source code includes prominent notice with ++these four paragraphs for those parts of this code that are retained. ++ ++=============================================================================*/ ++ ++/*---------------------------------------------------------------------------- ++| Include common integer types and flags. ++*----------------------------------------------------------------------------*/ ++#include "../../../processors/SPARC-GCC.h" ++ ++/*---------------------------------------------------------------------------- ++| Symbolic Boolean literals. ++*----------------------------------------------------------------------------*/ ++enum { ++ FALSE = 0, ++ TRUE = 1 ++}; ++ +diff --git a/SoftFloat-2b/softfloat/bits64/powerpc-GCC/softfloat-specialize b/SoftFloat-2b/softfloat/bits64/powerpc-GCC/softfloat-specialize +new file mode 100644 +index 0000000..b1d0bc8 +--- /dev/null ++++ b/SoftFloat-2b/softfloat/bits64/powerpc-GCC/softfloat-specialize +@@ -0,0 +1,422 @@ ++/* ++ * This file is derived from softfloat/bits64/386-Win32-GCC/softfloat-specialize, ++ * the copyright for that material belongs to the original owners. ++ * ++ * Additional material and changes where applicable is: ++ * Copyright (C) 2008 Freescale Semiconductor, Inc. All rights reserved. ++ * ++ * Author: Ebony Zhu, ++ * Yu Liu, ++ */ ++ ++/*============================================================================ ++ ++This C source fragment is part of the SoftFloat IEC/IEEE Floating-point ++Arithmetic Package, Release 2b. ++ ++Written by John R. Hauser. This work was made possible in part by the ++International Computer Science Institute, located at Suite 600, 1947 Center ++Street, Berkeley, California 94704. Funding was partially provided by the ++National Science Foundation under grant MIP-9311980. The original version ++of this code was written as part of a project to build a fixed-point vector ++processor in collaboration with the University of California at Berkeley, ++overseen by Profs. Nelson Morgan and John Wawrzynek. More information ++is available through the Web page `http://www.cs.berkeley.edu/~jhauser/ ++arithmetic/SoftFloat.html'. ++ ++THIS SOFTWARE IS DISTRIBUTED AS IS, FOR FREE. Although reasonable effort has ++been made to avoid it, THIS SOFTWARE MAY CONTAIN FAULTS THAT WILL AT TIMES ++RESULT IN INCORRECT BEHAVIOR. USE OF THIS SOFTWARE IS RESTRICTED TO PERSONS ++AND ORGANIZATIONS WHO CAN AND WILL TAKE FULL RESPONSIBILITY FOR ALL LOSSES, ++COSTS, OR OTHER PROBLEMS THEY INCUR DUE TO THE SOFTWARE, AND WHO FURTHERMORE ++EFFECTIVELY INDEMNIFY JOHN HAUSER AND THE INTERNATIONAL COMPUTER SCIENCE ++INSTITUTE (possibly via similar legal warning) AGAINST ALL LOSSES, COSTS, OR ++OTHER PROBLEMS INCURRED BY THEIR CUSTOMERS AND CLIENTS DUE TO THE SOFTWARE. ++ ++Derivative works are acceptable, even for commercial purposes, so long as ++(1) the source code for the derivative work includes prominent notice that ++the work is derivative, and (2) the source code includes prominent notice with ++these four paragraphs for those parts of this code that are retained. ++ ++=============================================================================*/ ++ ++/*---------------------------------------------------------------------------- ++| Underflow tininess-detection mode, statically initialized to default value. ++| (The declaration in `softfloat.h' must match the `int8' type here.) ++*----------------------------------------------------------------------------*/ ++int8 float_detect_tininess = float_tininess_before_rounding; ++ ++/*---------------------------------------------------------------------------- ++| Raises the exceptions specified by `flags'. Floating-point traps can be ++| defined here if desired. It is currently not possible for such a trap ++| to substitute a result value. If traps are not implemented, this routine ++| should be simply `float_exception_flags |= flags;'. ++*----------------------------------------------------------------------------*/ ++ ++void float_raise( int8 flags ) ++{ ++ ++ float_exception_flags |= flags; ++ ++} ++ ++/*---------------------------------------------------------------------------- ++| Internal canonical NaN format. ++*----------------------------------------------------------------------------*/ ++typedef struct { ++ flag sign; ++ bits64 high, low; ++} commonNaNT; ++ ++/*---------------------------------------------------------------------------- ++| The pattern for a default generated single-precision NaN. ++*----------------------------------------------------------------------------*/ ++#define float32_default_nan 0x7FFFFFFF ++ ++/*---------------------------------------------------------------------------- ++| Returns 1 if the single-precision floating-point value `a' is a NaN; ++| otherwise returns 0. ++*----------------------------------------------------------------------------*/ ++ ++flag float32_is_nan( float32 a ) ++{ ++ ++ return ( 0xFF000000 < (bits32) ( a<<1 ) ); ++ ++} ++ ++/*---------------------------------------------------------------------------- ++| Returns 1 if the single-precision floating-point value `a' is a signaling ++| NaN; otherwise returns 0. ++*----------------------------------------------------------------------------*/ ++ ++flag float32_is_signaling_nan( float32 a ) ++{ ++ ++ return ( ( ( a>>22 ) & 0x1FF ) == 0x1FE ) && ( a & 0x003FFFFF ); ++ ++} ++ ++/*---------------------------------------------------------------------------- ++| Returns the result of converting the single-precision floating-point NaN ++| `a' to the canonical NaN format. If `a' is a signaling NaN, the invalid ++| exception is raised. ++*----------------------------------------------------------------------------*/ ++ ++static commonNaNT float32ToCommonNaN( float32 a ) ++{ ++ commonNaNT z; ++ ++ if ( float32_is_signaling_nan( a ) ) float_raise( float_flag_invalid ); ++ z.sign = a>>31; ++ z.low = 0; ++ z.high = ( (bits64) a )<<41; ++ return z; ++ ++} ++ ++/*---------------------------------------------------------------------------- ++| Returns the result of converting the canonical NaN `a' to the single- ++| precision floating-point format. ++*----------------------------------------------------------------------------*/ ++ ++static float32 commonNaNToFloat32( commonNaNT a ) ++{ ++ ++ return ( ( (bits32) a.sign )<<31 ) | 0x7FC00000 | ( a.high>>41 ); ++ ++} ++ ++/*---------------------------------------------------------------------------- ++| Takes two single-precision floating-point values `a' and `b', one of which ++| is a NaN, and returns the appropriate NaN result. If either `a' or `b' is a ++| signaling NaN, the invalid exception is raised. ++*----------------------------------------------------------------------------*/ ++ ++static float32 propagateFloat32NaN( float32 a, float32 b ) ++{ ++ flag aIsNaN, aIsSignalingNaN, bIsNaN, bIsSignalingNaN; ++ ++ aIsNaN = float32_is_nan( a ); ++ aIsSignalingNaN = float32_is_signaling_nan( a ); ++ bIsNaN = float32_is_nan( b ); ++ bIsSignalingNaN = float32_is_signaling_nan( b ); ++ a |= 0x00400000; ++ b |= 0x00400000; ++ if ( aIsSignalingNaN | bIsSignalingNaN ) float_raise( float_flag_invalid ); ++ return bIsSignalingNaN ? b : aIsSignalingNaN ? a : bIsNaN ? b : a; ++ ++} ++ ++/*---------------------------------------------------------------------------- ++| The pattern for a default generated double-precision NaN. ++*----------------------------------------------------------------------------*/ ++#define float64_default_nan LIT64( 0x7FFFFFFFFFFFFFFF ) ++ ++/*---------------------------------------------------------------------------- ++| Returns 1 if the double-precision floating-point value `a' is a NaN; ++| otherwise returns 0. ++*----------------------------------------------------------------------------*/ ++ ++flag float64_is_nan( float64 a ) ++{ ++ ++ return ( LIT64( 0xFFE0000000000000 ) < (bits64) ( a<<1 ) ); ++ ++} ++ ++/*---------------------------------------------------------------------------- ++| Returns 1 if the double-precision floating-point value `a' is a signaling ++| NaN; otherwise returns 0. ++*----------------------------------------------------------------------------*/ ++ ++flag float64_is_signaling_nan( float64 a ) ++{ ++ ++ return ++ ( ( ( a>>51 ) & 0xFFF ) == 0xFFE ) ++ && ( a & LIT64( 0x0007FFFFFFFFFFFF ) ); ++ ++} ++ ++/*---------------------------------------------------------------------------- ++| Returns the result of converting the double-precision floating-point NaN ++| `a' to the canonical NaN format. If `a' is a signaling NaN, the invalid ++| exception is raised. ++*----------------------------------------------------------------------------*/ ++ ++static commonNaNT float64ToCommonNaN( float64 a ) ++{ ++ commonNaNT z; ++ ++ if ( float64_is_signaling_nan( a ) ) float_raise( float_flag_invalid ); ++ z.sign = a>>63; ++ z.low = 0; ++ z.high = a<<12; ++ return z; ++ ++} ++ ++/*---------------------------------------------------------------------------- ++| Returns the result of converting the canonical NaN `a' to the double- ++| precision floating-point format. ++*----------------------------------------------------------------------------*/ ++ ++static float64 commonNaNToFloat64( commonNaNT a ) ++{ ++ ++ return ++ ( ( (bits64) a.sign )<<63 ) ++ | LIT64( 0x7FF8000000000000 ) ++ | ( a.high>>12 ); ++ ++} ++ ++/*---------------------------------------------------------------------------- ++| Takes two double-precision floating-point values `a' and `b', one of which ++| is a NaN, and returns the appropriate NaN result. If either `a' or `b' is a ++| signaling NaN, the invalid exception is raised. ++*----------------------------------------------------------------------------*/ ++ ++static float64 propagateFloat64NaN( float64 a, float64 b ) ++{ ++ flag aIsNaN, aIsSignalingNaN, bIsNaN, bIsSignalingNaN; ++ ++ aIsNaN = float64_is_nan( a ); ++ aIsSignalingNaN = float64_is_signaling_nan( a ); ++ bIsNaN = float64_is_nan( b ); ++ bIsSignalingNaN = float64_is_signaling_nan( b ); ++ a |= LIT64( 0x0008000000000000 ); ++ b |= LIT64( 0x0008000000000000 ); ++ if ( aIsSignalingNaN | bIsSignalingNaN ) float_raise( float_flag_invalid ); ++ return bIsSignalingNaN ? b : aIsSignalingNaN ? a : bIsNaN ? b : a; ++ ++} ++ ++#ifdef FLOATX80 ++ ++/*---------------------------------------------------------------------------- ++| The pattern for a default generated extended double-precision NaN. The ++| `high' and `low' values hold the most- and least-significant bits, ++| respectively. ++*----------------------------------------------------------------------------*/ ++#define floatx80_default_nan_high 0x7FFF ++#define floatx80_default_nan_low LIT64( 0xFFFFFFFFFFFFFFFF ) ++ ++/*---------------------------------------------------------------------------- ++| Returns 1 if the extended double-precision floating-point value `a' is a ++| NaN; otherwise returns 0. ++*----------------------------------------------------------------------------*/ ++ ++flag floatx80_is_nan( floatx80 a ) ++{ ++ ++ return ( ( a.high & 0x7FFF ) == 0x7FFF ) && (bits64) ( a.low<<1 ); ++ ++} ++ ++/*---------------------------------------------------------------------------- ++| Returns 1 if the extended double-precision floating-point value `a' is a ++| signaling NaN; otherwise returns 0. ++*----------------------------------------------------------------------------*/ ++ ++flag floatx80_is_signaling_nan( floatx80 a ) ++{ ++ bits64 aLow; ++ ++ aLow = a.low & ~ LIT64( 0x4000000000000000 ); ++ return ++ ( ( a.high & 0x7FFF ) == 0x7FFF ) ++ && (bits64) ( aLow<<1 ) ++ && ( a.low == aLow ); ++ ++} ++ ++/*---------------------------------------------------------------------------- ++| Returns the result of converting the extended double-precision floating- ++| point NaN `a' to the canonical NaN format. If `a' is a signaling NaN, the ++| invalid exception is raised. ++*----------------------------------------------------------------------------*/ ++ ++static commonNaNT floatx80ToCommonNaN( floatx80 a ) ++{ ++ commonNaNT z; ++ ++ if ( floatx80_is_signaling_nan( a ) ) float_raise( float_flag_invalid ); ++ z.sign = a.high>>15; ++ z.low = 0; ++ z.high = a.low<<1; ++ return z; ++ ++} ++ ++/*---------------------------------------------------------------------------- ++| Returns the result of converting the canonical NaN `a' to the extended ++| double-precision floating-point format. ++*----------------------------------------------------------------------------*/ ++ ++static floatx80 commonNaNToFloatx80( commonNaNT a ) ++{ ++ floatx80 z; ++ ++ z.low = LIT64( 0xC000000000000000 ) | ( a.high>>1 ); ++ z.high = ( ( (bits16) a.sign )<<15 ) | 0x7FFF; ++ return z; ++ ++} ++ ++/*---------------------------------------------------------------------------- ++| Takes two extended double-precision floating-point values `a' and `b', one ++| of which is a NaN, and returns the appropriate NaN result. If either `a' or ++| `b' is a signaling NaN, the invalid exception is raised. ++*----------------------------------------------------------------------------*/ ++ ++static floatx80 propagateFloatx80NaN( floatx80 a, floatx80 b ) ++{ ++ flag aIsNaN, aIsSignalingNaN, bIsNaN, bIsSignalingNaN; ++ ++ aIsNaN = floatx80_is_nan( a ); ++ aIsSignalingNaN = floatx80_is_signaling_nan( a ); ++ bIsNaN = floatx80_is_nan( b ); ++ bIsSignalingNaN = floatx80_is_signaling_nan( b ); ++ a.low |= LIT64( 0xC000000000000000 ); ++ b.low |= LIT64( 0xC000000000000000 ); ++ if ( aIsSignalingNaN | bIsSignalingNaN ) float_raise( float_flag_invalid ); ++ return bIsSignalingNaN ? b : aIsSignalingNaN ? a : bIsNaN ? b : a; ++ ++} ++ ++#endif ++ ++#ifdef FLOAT128 ++ ++/*---------------------------------------------------------------------------- ++| The pattern for a default generated quadruple-precision NaN. The `high' and ++| `low' values hold the most- and least-significant bits, respectively. ++*----------------------------------------------------------------------------*/ ++#define float128_default_nan_high LIT64( 0x7FFFFFFFFFFFFFFF ) ++#define float128_default_nan_low LIT64( 0xFFFFFFFFFFFFFFFF ) ++ ++/*---------------------------------------------------------------------------- ++| Returns 1 if the quadruple-precision floating-point value `a' is a NaN; ++| otherwise returns 0. ++*----------------------------------------------------------------------------*/ ++ ++flag float128_is_nan( float128 a ) ++{ ++ ++ return ++ ( LIT64( 0xFFFE000000000000 ) <= (bits64) ( a.high<<1 ) ) ++ && ( a.low || ( a.high & LIT64( 0x0000FFFFFFFFFFFF ) ) ); ++ ++} ++ ++/*---------------------------------------------------------------------------- ++| Returns 1 if the quadruple-precision floating-point value `a' is a ++| signaling NaN; otherwise returns 0. ++*----------------------------------------------------------------------------*/ ++ ++flag float128_is_signaling_nan( float128 a ) ++{ ++ ++ return ++ ( ( ( a.high>>47 ) & 0xFFFF ) == 0xFFFE ) ++ && ( a.low || ( a.high & LIT64( 0x00007FFFFFFFFFFF ) ) ); ++ ++} ++ ++/*---------------------------------------------------------------------------- ++| Returns the result of converting the quadruple-precision floating-point NaN ++| `a' to the canonical NaN format. If `a' is a signaling NaN, the invalid ++| exception is raised. ++*----------------------------------------------------------------------------*/ ++ ++static commonNaNT float128ToCommonNaN( float128 a ) ++{ ++ commonNaNT z; ++ ++ if ( float128_is_signaling_nan( a ) ) float_raise( float_flag_invalid ); ++ z.sign = a.high>>63; ++ shortShift128Left( a.high, a.low, 16, &z.high, &z.low ); ++ return z; ++ ++} ++ ++/*---------------------------------------------------------------------------- ++| Returns the result of converting the canonical NaN `a' to the quadruple- ++| precision floating-point format. ++*----------------------------------------------------------------------------*/ ++ ++static float128 commonNaNToFloat128( commonNaNT a ) ++{ ++ float128 z; ++ ++ shift128Right( a.high, a.low, 16, &z.high, &z.low ); ++ z.high |= ( ( (bits64) a.sign )<<63 ) | LIT64( 0x7FFF800000000000 ); ++ return z; ++ ++} ++ ++/*---------------------------------------------------------------------------- ++| Takes two quadruple-precision floating-point values `a' and `b', one of ++| which is a NaN, and returns the appropriate NaN result. If either `a' or ++| `b' is a signaling NaN, the invalid exception is raised. ++*----------------------------------------------------------------------------*/ ++ ++static float128 propagateFloat128NaN( float128 a, float128 b ) ++{ ++ flag aIsNaN, aIsSignalingNaN, bIsNaN, bIsSignalingNaN; ++ ++ aIsNaN = float128_is_nan( a ); ++ aIsSignalingNaN = float128_is_signaling_nan( a ); ++ bIsNaN = float128_is_nan( b ); ++ bIsSignalingNaN = float128_is_signaling_nan( b ); ++ a.high |= LIT64( 0x0000800000000000 ); ++ b.high |= LIT64( 0x0000800000000000 ); ++ if ( aIsSignalingNaN | bIsSignalingNaN ) float_raise( float_flag_invalid ); ++ return bIsSignalingNaN ? b : aIsSignalingNaN ? a : bIsNaN ? b : a; ++ ++} ++ ++#endif ++ +diff --git a/SoftFloat-2b/softfloat/bits64/powerpc-GCC/softfloat.h b/SoftFloat-2b/softfloat/bits64/powerpc-GCC/softfloat.h +new file mode 100644 +index 0000000..5b7cb1c +--- /dev/null ++++ b/SoftFloat-2b/softfloat/bits64/powerpc-GCC/softfloat.h +@@ -0,0 +1,269 @@ ++/* ++ * This file is derived from softfloat/bits64/386-Win32-GCC/softfloat.h, ++ * the copyright for that material belongs to the original owners. ++ * ++ * Additional material and changes where applicable is: ++ * Copyright (C) 2008 Freescale Semiconductor, Inc. All rights reserved. ++ * ++ * Author: Ebony Zhu, ++ * Yu Liu, ++ */ ++ ++/*============================================================================ ++ ++This C header file is part of the SoftFloat IEC/IEEE Floating-point Arithmetic ++Package, Release 2b. ++ ++Written by John R. Hauser. This work was made possible in part by the ++International Computer Science Institute, located at Suite 600, 1947 Center ++Street, Berkeley, California 94704. Funding was partially provided by the ++National Science Foundation under grant MIP-9311980. The original version ++of this code was written as part of a project to build a fixed-point vector ++processor in collaboration with the University of California at Berkeley, ++overseen by Profs. Nelson Morgan and John Wawrzynek. More information ++is available through the Web page `http://www.cs.berkeley.edu/~jhauser/ ++arithmetic/SoftFloat.html'. ++ ++THIS SOFTWARE IS DISTRIBUTED AS IS, FOR FREE. Although reasonable effort has ++been made to avoid it, THIS SOFTWARE MAY CONTAIN FAULTS THAT WILL AT TIMES ++RESULT IN INCORRECT BEHAVIOR. USE OF THIS SOFTWARE IS RESTRICTED TO PERSONS ++AND ORGANIZATIONS WHO CAN AND WILL TAKE FULL RESPONSIBILITY FOR ALL LOSSES, ++COSTS, OR OTHER PROBLEMS THEY INCUR DUE TO THE SOFTWARE, AND WHO FURTHERMORE ++EFFECTIVELY INDEMNIFY JOHN HAUSER AND THE INTERNATIONAL COMPUTER SCIENCE ++INSTITUTE (possibly via similar legal warning) AGAINST ALL LOSSES, COSTS, OR ++OTHER PROBLEMS INCURRED BY THEIR CUSTOMERS AND CLIENTS DUE TO THE SOFTWARE. ++ ++Derivative works are acceptable, even for commercial purposes, so long as ++(1) the source code for the derivative work includes prominent notice that ++the work is derivative, and (2) the source code includes prominent notice with ++these four paragraphs for those parts of this code that are retained. ++ ++=============================================================================*/ ++ ++/*---------------------------------------------------------------------------- ++| The macro `FLOATX80' must be defined to enable the extended double-precision ++| floating-point format `floatx80'. If this macro is not defined, the ++| `floatx80' type will not be defined, and none of the functions that either ++| input or output the `floatx80' type will be defined. The same applies to ++| the `FLOAT128' macro and the quadruple-precision format `float128'. ++*----------------------------------------------------------------------------*/ ++#define FLOATX80 ++#define FLOAT128 ++ ++/*---------------------------------------------------------------------------- ++| Software IEC/IEEE floating-point types. ++*----------------------------------------------------------------------------*/ ++typedef unsigned int float32; ++typedef unsigned long long float64; ++#ifdef FLOATX80 ++typedef struct { ++ unsigned short high; ++ unsigned long long low; ++} floatx80; ++#endif ++#ifdef FLOAT128 ++typedef struct { ++ unsigned long long high, low; ++} float128; ++#endif ++ ++/*---------------------------------------------------------------------------- ++| Software IEC/IEEE floating-point underflow tininess-detection mode. ++*----------------------------------------------------------------------------*/ ++extern int float_detect_tininess; ++enum { ++ float_tininess_after_rounding = 0, ++ float_tininess_before_rounding = 1 ++}; ++ ++/*---------------------------------------------------------------------------- ++| Software IEC/IEEE floating-point rounding mode. ++*----------------------------------------------------------------------------*/ ++extern int float_rounding_mode; ++enum { ++ float_round_nearest_even = 0, ++ float_round_to_zero = 1, ++ float_round_up = 2, ++ float_round_down = 3 ++}; ++ ++/*---------------------------------------------------------------------------- ++| Software IEC/IEEE floating-point exception flags. ++*----------------------------------------------------------------------------*/ ++extern int float_exception_flags; ++enum { ++ float_flag_inexact = 1, ++ float_flag_divbyzero = 2, ++ float_flag_underflow = 4, ++ float_flag_overflow = 8, ++ float_flag_invalid = 16 ++}; ++ ++/*---------------------------------------------------------------------------- ++| Routine to raise any or all of the software IEC/IEEE floating-point ++| exception flags. ++*----------------------------------------------------------------------------*/ ++void float_raise( int ); ++ ++/*---------------------------------------------------------------------------- ++| Software IEC/IEEE integer-to-floating-point conversion routines. ++*----------------------------------------------------------------------------*/ ++float32 int32_to_float32( int ); ++float64 int32_to_float64( int ); ++#ifdef FLOATX80 ++floatx80 int32_to_floatx80( int ); ++#endif ++#ifdef FLOAT128 ++float128 int32_to_float128( int ); ++#endif ++float32 int64_to_float32( long long ); ++float64 int64_to_float64( long long ); ++#ifdef FLOATX80 ++floatx80 int64_to_floatx80( long long ); ++#endif ++#ifdef FLOAT128 ++float128 int64_to_float128( long long ); ++#endif ++ ++/*---------------------------------------------------------------------------- ++| Software IEC/IEEE single-precision conversion routines. ++*----------------------------------------------------------------------------*/ ++int float32_to_int32( float32 ); ++int float32_to_int32_round_to_zero( float32 ); ++long long float32_to_int64( float32 ); ++long long float32_to_int64_round_to_zero( float32 ); ++float64 float32_to_float64( float32 ); ++#ifdef FLOATX80 ++floatx80 float32_to_floatx80( float32 ); ++#endif ++#ifdef FLOAT128 ++float128 float32_to_float128( float32 ); ++#endif ++ ++/*---------------------------------------------------------------------------- ++| Software IEC/IEEE single-precision operations. ++*----------------------------------------------------------------------------*/ ++float32 float32_round_to_int( float32 ); ++float32 float32_add( float32, float32 ); ++float32 float32_sub( float32, float32 ); ++float32 float32_mul( float32, float32 ); ++float32 float32_div( float32, float32 ); ++float32 float32_rem( float32, float32 ); ++float32 float32_sqrt( float32 ); ++int float32_eq( float32, float32 ); ++int float32_le( float32, float32 ); ++int float32_lt( float32, float32 ); ++int float32_eq_signaling( float32, float32 ); ++int float32_le_quiet( float32, float32 ); ++int float32_lt_quiet( float32, float32 ); ++int float32_is_signaling_nan( float32 ); ++ ++/*---------------------------------------------------------------------------- ++| Software IEC/IEEE double-precision conversion routines. ++*----------------------------------------------------------------------------*/ ++int float64_to_int32( float64 ); ++int float64_to_int32_round_to_zero( float64 ); ++long long float64_to_int64( float64 ); ++long long float64_to_int64_round_to_zero( float64 ); ++float32 float64_to_float32( float64 ); ++#ifdef FLOATX80 ++floatx80 float64_to_floatx80( float64 ); ++#endif ++#ifdef FLOAT128 ++float128 float64_to_float128( float64 ); ++#endif ++ ++/*---------------------------------------------------------------------------- ++| Software IEC/IEEE double-precision operations. ++*----------------------------------------------------------------------------*/ ++float64 float64_round_to_int( float64 ); ++float64 float64_add( float64, float64 ); ++float64 float64_sub( float64, float64 ); ++float64 float64_mul( float64, float64 ); ++float64 float64_div( float64, float64 ); ++float64 float64_rem( float64, float64 ); ++float64 float64_sqrt( float64 ); ++int float64_eq( float64, float64 ); ++int float64_le( float64, float64 ); ++int float64_lt( float64, float64 ); ++int float64_eq_signaling( float64, float64 ); ++int float64_le_quiet( float64, float64 ); ++int float64_lt_quiet( float64, float64 ); ++int float64_is_signaling_nan( float64 ); ++ ++#ifdef FLOATX80 ++ ++/*---------------------------------------------------------------------------- ++| Software IEC/IEEE extended double-precision conversion routines. ++*----------------------------------------------------------------------------*/ ++int floatx80_to_int32( floatx80 ); ++int floatx80_to_int32_round_to_zero( floatx80 ); ++long long floatx80_to_int64( floatx80 ); ++long long floatx80_to_int64_round_to_zero( floatx80 ); ++float32 floatx80_to_float32( floatx80 ); ++float64 floatx80_to_float64( floatx80 ); ++#ifdef FLOAT128 ++float128 floatx80_to_float128( floatx80 ); ++#endif ++ ++/*---------------------------------------------------------------------------- ++| Software IEC/IEEE extended double-precision rounding precision. Valid ++| values are 32, 64, and 80. ++*----------------------------------------------------------------------------*/ ++extern int floatx80_rounding_precision; ++ ++/*---------------------------------------------------------------------------- ++| Software IEC/IEEE extended double-precision operations. ++*----------------------------------------------------------------------------*/ ++floatx80 floatx80_round_to_int( floatx80 ); ++floatx80 floatx80_add( floatx80, floatx80 ); ++floatx80 floatx80_sub( floatx80, floatx80 ); ++floatx80 floatx80_mul( floatx80, floatx80 ); ++floatx80 floatx80_div( floatx80, floatx80 ); ++floatx80 floatx80_rem( floatx80, floatx80 ); ++floatx80 floatx80_sqrt( floatx80 ); ++int floatx80_eq( floatx80, floatx80 ); ++int floatx80_le( floatx80, floatx80 ); ++int floatx80_lt( floatx80, floatx80 ); ++int floatx80_eq_signaling( floatx80, floatx80 ); ++int floatx80_le_quiet( floatx80, floatx80 ); ++int floatx80_lt_quiet( floatx80, floatx80 ); ++int floatx80_is_signaling_nan( floatx80 ); ++ ++#endif ++ ++#ifdef FLOAT128 ++ ++/*---------------------------------------------------------------------------- ++| Software IEC/IEEE quadruple-precision conversion routines. ++*----------------------------------------------------------------------------*/ ++int float128_to_int32( float128 ); ++int float128_to_int32_round_to_zero( float128 ); ++long long float128_to_int64( float128 ); ++long long float128_to_int64_round_to_zero( float128 ); ++float32 float128_to_float32( float128 ); ++float64 float128_to_float64( float128 ); ++#ifdef FLOATX80 ++floatx80 float128_to_floatx80( float128 ); ++#endif ++ ++/*---------------------------------------------------------------------------- ++| Software IEC/IEEE quadruple-precision operations. ++*----------------------------------------------------------------------------*/ ++float128 float128_round_to_int( float128 ); ++float128 float128_add( float128, float128 ); ++float128 float128_sub( float128, float128 ); ++float128 float128_mul( float128, float128 ); ++float128 float128_div( float128, float128 ); ++float128 float128_rem( float128, float128 ); ++float128 float128_sqrt( float128 ); ++int float128_eq( float128, float128 ); ++int float128_le( float128, float128 ); ++int float128_lt( float128, float128 ); ++int float128_eq_signaling( float128, float128 ); ++int float128_le_quiet( float128, float128 ); ++int float128_lt_quiet( float128, float128 ); ++int float128_is_signaling_nan( float128 ); ++ ++#endif ++ +-- +1.5.4 + 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 @@ +This patch adds PowerPC E500v2 SPE support in TestFloat. +And it disables the testing for hardware that can not trigger SPE interrupt. + +Signed-off-by: Ebony Zhu +Signed-off-by: Liu Yu +--- + processors/POWERPC-gcc.h | 99 +++++ + testfloat/powerpc-linux-gcc/Makefile | 83 +++++ + testfloat/powerpc-linux-gcc/milieu.h | 71 ++++ + testfloat/powerpc-linux-gcc/systflags.c | 107 ++++++ + testfloat/powerpc-linux-gcc/systfloat.c | 595 +++++++++++++++++++++++++++++++ + testfloat/powerpc-linux-gcc/systmodes.c | 67 ++++ + testfloat/templates/Makefile | 18 +- + testfloat/templates/milieu.h | 2 +- + testfloat/testFunction.h | 2 +- + testfloat/testLoops.c | 216 +++++++++++ + 10 files changed, 1252 insertions(+), 8 deletions(-) + create mode 100644 processors/POWERPC-gcc.h + create mode 100644 testfloat/powerpc-linux-gcc/Makefile + create mode 100644 testfloat/powerpc-linux-gcc/milieu.h + create mode 100644 testfloat/powerpc-linux-gcc/systflags.c + create mode 100644 testfloat/powerpc-linux-gcc/systfloat.c + create mode 100644 testfloat/powerpc-linux-gcc/systmodes.c + +diff --git a/processors/POWERPC-gcc.h b/processors/POWERPC-gcc.h +new file mode 100644 +index 0000000..4201faa +--- /dev/null ++++ b/processors/POWERPC-gcc.h +@@ -0,0 +1,99 @@ ++/* ++ * This file is derived from processors/i386-GCC.h, ++ * the copyright for that material belongs to the original owners. ++ * ++ * Additional material and changes where applicable is: ++ * Copyright (C) 2008 Freescale Semiconductor, Inc. All rights reserved. ++ * ++ * Author: Ebony Zhu, ++ * Yu Liu, ++ * ++ * THIS SOFTWARE IS DISTRIBUTED AS IS, FOR FREE. Although reasonable effort has ++ * been made to avoid it, THIS SOFTWARE MAY CONTAIN FAULTS THAT WILL AT TIMES ++ * RESULT IN INCORRECT BEHAVIOR. USE OF THIS SOFTWARE IS RESTRICTED TO PERSONS ++ * AND ORGANIZATIONS WHO CAN AND WILL TAKE FULL RESPONSIBILITY FOR ALL LOSSES, ++ * COSTS, OR OTHER PROBLEMS THEY INCUR DUE TO THE SOFTWARE, AND WHO FURTHERMORE ++ * EFFECTIVELY INDEMNIFY JOHN HAUSER AND THE INTERNATIONAL COMPUTER SCIENCE ++ * INSTITUTE (possibly via similar legal warning) AGAINST ALL LOSSES, COSTS, OR ++ * OTHER PROBLEMS INCURRED BY THEIR CUSTOMERS AND CLIENTS DUE TO THE SOFTWARE. ++ */ ++ ++/* ++------------------------------------------------------------------------------- ++One of the macros `BIGENDIAN' or `LITTLEENDIAN' must be defined. ++------------------------------------------------------------------------------- ++*/ ++#define BIGENDIAN ++ ++/* ++------------------------------------------------------------------------------- ++The macro `BITS64' can be defined to indicate that 64-bit integer types are ++supported by the compiler. ++------------------------------------------------------------------------------- ++*/ ++#undef BITS64 ++ ++/* ++------------------------------------------------------------------------------- ++Each of the following `typedef's defines the most convenient type that holds ++integers of at least as many bits as specified. For example, `uint8' should ++be the most convenient type that can hold unsigned integers of as many as ++8 bits. The `flag' type must be able to hold either a 0 or 1. For most ++implementations of C, `flag', `uint8', and `int8' should all be `typedef'ed ++to the same as `int'. ++------------------------------------------------------------------------------- ++*/ ++typedef int flag; ++typedef int uint8; ++typedef int int8; ++typedef int uint16; ++typedef int int16; ++typedef unsigned int uint32; ++typedef signed int int32; ++#ifdef BITS64 ++typedef unsigned long long int uint64; ++typedef signed long long int int64; ++#endif ++ ++/* ++------------------------------------------------------------------------------- ++Each of the following `typedef's defines a type that holds integers ++of _exactly_ the number of bits specified. For instance, for most ++implementation of C, `bits16' and `sbits16' should be `typedef'ed to ++`unsigned short int' and `signed short int' (or `short int'), respectively. ++------------------------------------------------------------------------------- ++*/ ++typedef unsigned char bits8; ++typedef signed char sbits8; ++typedef unsigned short int bits16; ++typedef signed short int sbits16; ++typedef unsigned int bits32; ++typedef signed int sbits32; ++#ifdef BITS64 ++typedef unsigned long long int bits64; ++typedef signed long long int sbits64; ++#endif ++ ++#ifdef BITS64 ++/* ++------------------------------------------------------------------------------- ++The `LIT64' macro takes as its argument a textual integer literal and ++if necessary ``marks'' the literal as having a 64-bit integer type. ++For example, the GNU C Compiler (`gcc') requires that 64-bit literals be ++appended with the letters `LL' standing for `long long', which is `gcc's ++name for the 64-bit integer type. Some compilers may allow `LIT64' to be ++defined as the identity macro: `#define LIT64( a ) a'. ++------------------------------------------------------------------------------- ++*/ ++#define LIT64( a ) a##LL ++#endif ++ ++/* ++------------------------------------------------------------------------------- ++The macro `INLINE' can be used before functions that should be inlined. If ++a compiler does not support explicit inlining, this macro should be defined ++to be `static'. ++------------------------------------------------------------------------------- ++*/ ++#define INLINE extern inline ++ +diff --git a/testfloat/powerpc-linux-gcc/Makefile b/testfloat/powerpc-linux-gcc/Makefile +new file mode 100644 +index 0000000..de50aad +--- /dev/null ++++ b/testfloat/powerpc-linux-gcc/Makefile +@@ -0,0 +1,83 @@ ++ ++PROCESSOR_H = ../../processors/POWERPC-gcc.h ++SOFTFLOAT_VERSION = bits32 ++TARGET = powerpc-GCC ++SOFTFLOAT_DIR = ../../SoftFloat-2b/softfloat/$(SOFTFLOAT_VERSION)/$(TARGET) ++ ++OBJ = .o ++EXE = ++INCLUDES = -I. -I.. -I$(SOFTFLOAT_DIR) ++ ++COMPILE_C = $(COMPILE_PREFIX)gcc -c -o $@ $(INCLUDES) -I- -O $(EXTRA_CFLAGS) ++ ++COMPILE_C_HARD = $(COMPILE_PREFIX)gcc -c -te500v2 -o $@ $(INCLUDES) ++ ++COMPILE_SLOWFLOAT_C = $(COMPILE_PREFIX)gcc -c -o $@ $(INCLUDES) -I- -O ++ ++LINK = $(COMPILE_PREFIX)gcc -lm -o $@ ++ ++SOFTFLOAT_H = $(SOFTFLOAT_DIR)/softfloat.h ++SOFTFLOAT_OBJ = $(SOFTFLOAT_DIR)/softfloat$(OBJ) ++ ++ALL: testsoftfloat$(EXE) testfloat$(EXE) ++ ++systmodes$(OBJ): milieu.h systmodes.c ++ $(COMPILE_C) systmodes.c ++ ++systflags$(OBJ): milieu.h ../systflags.h systflags.c ++ $(COMPILE_C) systflags.c ++ ++systfloat$(OBJ): milieu.h $(SOFTFLOAT_H) ../systfloat.h systfloat.c ++ $(COMPILE_C_HARD) systfloat.c ++ ++#------------------------------------------------------------------------------ ++# Probably O.K. below here. ++#------------------------------------------------------------------------------ ++ ++milieu.h: $(PROCESSOR_H) ++ touch milieu.h ++ ++fail$(OBJ): milieu.h ../fail.h ++ $(COMPILE_C) ../fail.c ++ ++random$(OBJ): milieu.h ../random.h ++ $(COMPILE_C) ../random.c ++ ++testCases$(OBJ): milieu.h ../fail.h ../random.h $(SOFTFLOAT_H) ../testCases.h ../testCases.c ++ $(COMPILE_C) ../testCases.c ++ ++writeHex$(OBJ): milieu.h $(SOFTFLOAT_H) ../writeHex.h ../writeHex.c ++ $(COMPILE_C) ../writeHex.c ++ ++testLoops$(OBJ): milieu.h $(SOFTFLOAT_H) ../testCases.h ../writeHex.h ../testLoops.h ../testLoops.c ++ $(COMPILE_C) ../testLoops.c ++ ++slowfloat$(OBJ): milieu.h $(SOFTFLOAT_H) ../slowfloat.h ../slowfloat-32.c ../slowfloat-64.c ../slowfloat.c ++ $(COMPILE_SLOWFLOAT_C) ../slowfloat.c ++ ++testsoftfloat$(OBJ): milieu.h ../fail.h $(SOFTFLOAT_H) ../testCases.h ../testLoops.h ../slowfloat.h ../testsoftfloat.c ++ $(COMPILE_C) ../testsoftfloat.c ++ ++testsoftfloat$(EXE): fail$(OBJ) random$(OBJ) $(SOFTFLOAT_OBJ) testCases$(OBJ) writeHex$(OBJ) testLoops$(OBJ) slowfloat$(OBJ) testsoftfloat$(OBJ) systflags$(OBJ) systmodes$(OBJ) ++ $(LINK) fail$(OBJ) random$(OBJ) $(SOFTFLOAT_OBJ) testCases$(OBJ) writeHex$(OBJ) testLoops$(OBJ) slowfloat$(OBJ) testsoftfloat$(OBJ) systflags$(OBJ) systmodes$(OBJ) ++ ++testFunction$(OBJ): milieu.h $(SOFTFLOAT_H) ../testCases.h ../testLoops.h ../systmodes.h ../systflags.h ../systfloat.h ../testFunction.h ../testFunction.c ++ $(COMPILE_C) ../testFunction.c ++ ++testfloat$(OBJ): milieu.h ../fail.h $(SOFTFLOAT_H) ../testCases.h ../testLoops.h ../systflags.h ../testFunction.h ../testfloat.c ++ $(COMPILE_C) ../testfloat.c ++ ++testfloat$(EXE): fail$(OBJ) random$(OBJ) $(SOFTFLOAT_OBJ) testCases$(OBJ) writeHex$(OBJ) testLoops$(OBJ) systmodes$(OBJ) systflags$(OBJ) systfloat$(OBJ) testFunction$(OBJ) testfloat$(OBJ) ++ $(LINK) fail$(OBJ) random$(OBJ) $(SOFTFLOAT_OBJ) testCases$(OBJ) writeHex$(OBJ) testLoops$(OBJ) systmodes$(OBJ) systflags$(OBJ) systfloat$(OBJ) testFunction$(OBJ) testfloat$(OBJ) ++ ++$(SOFTFLOAT_OBJ): ++ make -C $(SOFTFLOAT_DIR) ++ ++cp: ALL ++ cp testsoftfloat$(EXE) ../../test_softfloat$(EXE) ++ cp testfloat$(EXE) ../../test_float$(EXE) ++ ++clean: ++ make -C $(SOFTFLOAT_DIR) clean ++ rm -f *.o testfloat$(EXE) testsoftfloat$(EXE) ++ rm -f ../../test_softfloat$(EXE) ../../test_float$(EXE) +diff --git a/testfloat/powerpc-linux-gcc/milieu.h b/testfloat/powerpc-linux-gcc/milieu.h +new file mode 100644 +index 0000000..29d2b18 +--- /dev/null ++++ b/testfloat/powerpc-linux-gcc/milieu.h +@@ -0,0 +1,71 @@ ++/* ++ * This file is derived from testfloat/386-Win32-gcc/milieu.h, ++ * the copyright for that material belongs to the original owners. ++ * ++ * Additional material and changes where applicable is: ++ * Copyright (C) 2008 Freescale Semiconductor, Inc. All rights reserved. ++ * ++ * Author: Ebony Zhu, ++ * Yu Liu, ++ */ ++ ++/* ++=============================================================================== ++ ++This C header file is part of TestFloat, Release 2a, a package of programs ++for testing the correctness of floating-point arithmetic complying to the ++IEC/IEEE Standard for Floating-Point. ++ ++Written by John R. Hauser. More information is available through the Web ++page `http://HTTP.CS.Berkeley.EDU/~jhauser/arithmetic/TestFloat.html'. ++ ++THIS SOFTWARE IS DISTRIBUTED AS IS, FOR FREE. Although reasonable effort ++has been made to avoid it, THIS SOFTWARE MAY CONTAIN FAULTS THAT WILL AT ++TIMES RESULT IN INCORRECT BEHAVIOR. USE OF THIS SOFTWARE IS RESTRICTED TO ++PERSONS AND ORGANIZATIONS WHO CAN AND WILL TAKE FULL RESPONSIBILITY FOR ANY ++AND ALL LOSSES, COSTS, OR OTHER PROBLEMS ARISING FROM ITS USE. ++ ++Derivative works are acceptable, even for commercial purposes, so long as ++(1) they include prominent notice that the work is derivative, and (2) they ++include prominent notice akin to these four paragraphs for those parts of ++this code that are retained. ++ ++=============================================================================== ++*/ ++ ++/* ++------------------------------------------------------------------------------- ++Include common integer types and flags. ++------------------------------------------------------------------------------- ++*/ ++#include "../../processors/POWERPC-gcc.h" ++/* ++------------------------------------------------------------------------------- ++If the `BITS64' macro is defined by the processor header file but the ++version of SoftFloat being used/tested is the 32-bit one (`bits32'), the ++`BITS64' macro must be undefined here. ++------------------------------------------------------------------------------- ++*/ ++ ++#undef BITS64 ++/* ++------------------------------------------------------------------------------- ++The macro `LONG_DOUBLE_IS_FLOATX80' can be defined to indicate that the ++C compiler supports the type `long double' as an extended double-precision ++format. Alternatively, the macro `LONG_DOUBLE_IS_FLOAT128' can be defined ++to indicate that `long double' is a quadruple-precision format. If neither ++of these macros is defined, `long double' will be ignored. ++------------------------------------------------------------------------------- ++#define LONG_DOUBLE_IS_FLOATX80 ++*/ ++ ++/* ++------------------------------------------------------------------------------- ++Symbolic Boolean literals. ++------------------------------------------------------------------------------- ++*/ ++enum { ++ FALSE = 0, ++ TRUE = 1 ++}; ++ +diff --git a/testfloat/powerpc-linux-gcc/systflags.c b/testfloat/powerpc-linux-gcc/systflags.c +new file mode 100644 +index 0000000..c382442 +--- /dev/null ++++ b/testfloat/powerpc-linux-gcc/systflags.c +@@ -0,0 +1,107 @@ ++/* ++ * This file is derived from testfloat/386-Win32-gcc/systflags.c, ++ * the copyright for that material belongs to the original owners. ++ * ++ * Additional material and changes where applicable is: ++ * Copyright (C) 2008 Freescale Semiconductor, Inc. All rights reserved. ++ * ++ * Author: Ebony Zhu, ++ * Yu Liu, ++ */ ++ ++/* ++=============================================================================== ++ ++This C source file is part of TestFloat, Release 2a, a package of programs ++for testing the correctness of floating-point arithmetic complying to the ++IEC/IEEE Standard for Floating-Point. ++ ++Written by John R. Hauser. More information is available through the Web ++page `http://HTTP.CS.Berkeley.EDU/~jhauser/arithmetic/TestFloat.html'. ++ ++THIS SOFTWARE IS DISTRIBUTED AS IS, FOR FREE. Although reasonable effort ++has been made to avoid it, THIS SOFTWARE MAY CONTAIN FAULTS THAT WILL AT ++TIMES RESULT IN INCORRECT BEHAVIOR. USE OF THIS SOFTWARE IS RESTRICTED TO ++PERSONS AND ORGANIZATIONS WHO CAN AND WILL TAKE FULL RESPONSIBILITY FOR ANY ++AND ALL LOSSES, COSTS, OR OTHER PROBLEMS ARISING FROM ITS USE. ++ ++Derivative works are acceptable, even for commercial purposes, so long as ++(1) they include prominent notice that the work is derivative, and (2) they ++include prominent notice akin to these four paragraphs for those parts of ++this code that are retained. ++ ++=============================================================================== ++*/ ++ ++#include "milieu.h" ++#include "systflags.h" ++#include ++#include ++#include ++#include ++#include ++ ++#ifdef __SPE__ ++ ++#include ++ ++ ++#define SPE_FINV_ENABLE (1UL << 5) ++#define SPE_FDBZ_ENABLE (1UL << 4) ++#define SPE_FUNF_ENABLE (1UL << 3) ++#define SPE_FOVF_ENABLE (1UL << 2) ++ ++#define SPE_FG (1UL << 13) ++#define SPE_FX (1UL << 12) ++#define SPE_FINV (1UL << 11) ++#define SPE_FDBZ (1UL << 10) ++#define SPE_FUNF (1UL << 9) ++#define SPE_FOVF (1UL << 8) ++ ++#define SPE_FG_H (1UL << 29) ++#define SPE_FX_H (1UL << 28) ++#define SPE_FINV_H (1UL << 27) ++#define SPE_FDBZ_H (1UL << 26) ++#define SPE_FUNF_H (1UL << 25) ++#define SPE_FOVF_H (1UL << 24) ++ ++static int is_soft_emu = 0; ++ ++#endif ++/* ++------------------------------------------------------------------------------- ++Clears the system's IEC/IEEE floating-point exception flags. Returns the ++previous value of the flags. ++------------------------------------------------------------------------------- ++*/ ++extern int rounding; ++unsigned int spefscr = 0; ++ ++int8 syst_float_flags_clear( void ) ++{ ++#ifdef TEST_KERNEL_EMU ++ if( (spefscr & (SPE_FINV | SPE_FINV_H)) ++ || (spefscr & (SPE_FDBZ | SPE_FDBZ_H)) ++ || (spefscr & (SPE_FUNF | SPE_FUNF_H)) ++ || (spefscr & (SPE_FOVF | SPE_FOVF_H)) ++ || (spefscr & (SPE_FX | SPE_FG | SPE_FX_H | SPE_FG_H))){ ++ is_soft_emu = 1; ++ } else { ++ is_soft_emu = 0; ++ } ++#endif ++ __builtin_spe_mtspefscr(0x3c|(rounding & 0x3)); ++ ++ return ((spefscr>>17) & 0x1f); ++} ++ ++int syst_float_is_soft_emu(void) ++{ ++ int ret = 0; ++#ifdef TEST_KERNEL_EMU ++ ret = is_soft_emu; ++#endif ++ return ret; ++} ++ ++ +diff --git a/testfloat/powerpc-linux-gcc/systfloat.c b/testfloat/powerpc-linux-gcc/systfloat.c +new file mode 100644 +index 0000000..8d06f9f +--- /dev/null ++++ b/testfloat/powerpc-linux-gcc/systfloat.c +@@ -0,0 +1,595 @@ ++/* ++ * This file is derived from testfloat/systfloat.c, ++ * the copyright for that material belongs to the original owners. ++ * ++ * Additional material and changes where applicable is: ++ * Copyright (C) 2008 Freescale Semiconductor, Inc. All rights reserved. ++ * ++ * Author: Ebony Zhu, ++ * Yu Liu, ++ */ ++ ++/* ++=============================================================================== ++ ++This C source file is part of TestFloat, Release 2a, a package of programs ++for testing the correctness of floating-point arithmetic complying to the ++IEC/IEEE Standard for Floating-Point. ++ ++Written by John R. Hauser. More information is available through the Web ++page `http://HTTP.CS.Berkeley.EDU/~jhauser/arithmetic/TestFloat.html'. ++ ++THIS SOFTWARE IS DISTRIBUTED AS IS, FOR FREE. Although reasonable effort ++has been made to avoid it, THIS SOFTWARE MAY CONTAIN FAULTS THAT WILL AT ++TIMES RESULT IN INCORRECT BEHAVIOR. USE OF THIS SOFTWARE IS RESTRICTED TO ++PERSONS AND ORGANIZATIONS WHO CAN AND WILL TAKE FULL RESPONSIBILITY FOR ANY ++AND ALL LOSSES, COSTS, OR OTHER PROBLEMS ARISING FROM ITS USE. ++ ++Derivative works are acceptable, even for commercial purposes, so long as ++(1) they include prominent notice that the work is derivative, and (2) they ++include prominent notice akin to these four paragraphs for those parts of ++this code that are retained. ++ ++=============================================================================== ++*/ ++ ++#include ++#include "milieu.h" ++#include "softfloat.h" ++#include "systfloat.h" ++ ++extern unsigned int spefscr; ++ ++float32 syst_int32_to_float32( int32 a ) ++{ ++ float32 z; ++ ++ *( (float *) &z ) = a; ++ spefscr = __builtin_spe_mfspefscr(); ++ return z; ++ ++} ++ ++float64 syst_int32_to_float64( int32 a ) ++{ ++ float64 z; ++ ++ *( (double *) &z ) = a; ++ spefscr = __builtin_spe_mfspefscr(); ++ return z; ++ ++} ++ ++#if defined( FLOATX80 ) && defined( LONG_DOUBLE_IS_FLOATX80 ) ++ ++floatx80 syst_int32_to_floatx80( int32 a ) ++{ ++ floatx80 z; ++ ++ *( (long double *) &z ) = a; ++ return z; ++ ++} ++ ++#endif ++ ++#if defined( FLOAT128 ) && defined( LONG_DOUBLE_IS_FLOAT128 ) ++ ++float128 syst_int32_to_float128( int32 a ) ++{ ++ float128 z; ++ ++ *( (long double *) &z ) = a; ++ return z; ++ ++} ++ ++#endif ++ ++#ifdef BITS64 ++ ++float32 syst_int64_to_float32( int64 a ) ++{ ++ float32 z; ++ ++ *( (float *) &z ) = a; ++ spefscr = __builtin_spe_mfspefscr(); ++ return z; ++ ++} ++ ++float64 syst_int64_to_float64( int64 a ) ++{ ++ float64 z; ++ ++ *( (double *) &z ) = a; ++ spefscr = __builtin_spe_mfspefscr(); ++ return z; ++ ++} ++ ++#if defined( FLOATX80 ) && defined( LONG_DOUBLE_IS_FLOATX80 ) ++ ++floatx80 syst_int64_to_floatx80( int64 a ) ++{ ++ floatx80 z; ++ ++ *( (long double *) &z ) = a; ++ return z; ++ ++} ++ ++#endif ++ ++#if defined( FLOAT128 ) && defined( LONG_DOUBLE_IS_FLOAT128 ) ++ ++float128 syst_int64_to_float128( int64 a ) ++{ ++ float128 z; ++ ++ *( (long double *) &z ) = a; ++ return z; ++ ++} ++ ++#endif ++ ++#endif ++ ++int32 syst_float32_to_int32_round_to_zero( float32 a ) ++{ ++ int32 z = *( (float *) &a ); ++ spefscr = __builtin_spe_mfspefscr(); ++ ++ return z; ++ ++} ++ ++#ifdef BITS64 ++ ++int64 syst_float32_to_int64_round_to_zero( float32 a ) ++{ ++ int64 z = *( (float *) &a ); ++ spefscr = __builtin_spe_mfspefscr(); ++ return z; ++ ++} ++ ++#endif ++ ++float64 syst_float32_to_float64( float32 a ) ++{ ++ float64 z; ++ ++ *( (double *) &z ) = *( (float *) &a ); ++ spefscr = __builtin_spe_mfspefscr(); ++ return z; ++ ++} ++ ++#if defined( FLOATX80 ) && defined( LONG_DOUBLE_IS_FLOATX80 ) ++ ++floatx80 syst_float32_to_floatx80( float32 a ) ++{ ++ floatx80 z; ++ ++ *( (long double *) &z ) = *( (float *) &a ); ++ return z; ++ ++} ++ ++#endif ++ ++#if defined( FLOAT128 ) && defined( LONG_DOUBLE_IS_FLOAT128 ) ++ ++float128 syst_float32_to_float128( float32 a ) ++{ ++ float128 z; ++ ++ *( (long double *) &z ) = *( (float *) &a ); ++ return z; ++ ++} ++ ++#endif ++ ++float32 syst_float32_add( float32 a, float32 b ) ++{ ++ float32 z; ++ ++ *( (float *) &z ) = *( (float *) &a ) + *( (float *) &b ); ++ spefscr = __builtin_spe_mfspefscr(); ++ return z; ++ ++} ++ ++float32 syst_float32_sub( float32 a, float32 b ) ++{ ++ float32 z; ++ ++ *( (float *) &z ) = *( (float *) &a ) - *( (float *) &b ); ++ spefscr = __builtin_spe_mfspefscr(); ++ return z; ++ ++} ++ ++float32 syst_float32_mul( float32 a, float32 b ) ++{ ++ float32 z; ++ ++ *( (float *) &z ) = *( (float *) &a ) * *( (float *) &b ); ++ spefscr = __builtin_spe_mfspefscr(); ++ return z; ++ ++} ++ ++float32 syst_float32_div( float32 a, float32 b ) ++{ ++ float32 z; ++ ++ *( (float *) &z ) = *( (float *) &a ) / *( (float *) &b ); ++ spefscr = __builtin_spe_mfspefscr(); ++ return z; ++ ++} ++ ++flag syst_float32_eq( float32 a, float32 b ) ++{ ++ flag f = ( *( (float *) &a ) == *( (float *) &b ) ); ++ spefscr = __builtin_spe_mfspefscr(); ++ return f; ++ ++} ++ ++flag syst_float32_le( float32 a, float32 b ) ++{ ++ flag f = ( *( (float *) &a ) <= *( (float *) &b ) ); ++ spefscr = __builtin_spe_mfspefscr(); ++ return f; ++ ++} ++ ++flag syst_float32_lt( float32 a, float32 b ) ++{ ++ flag f = ( *( (float *) &a ) < *( (float *) &b ) ); ++ spefscr = __builtin_spe_mfspefscr(); ++ return f; ++ ++} ++ ++int32 syst_float64_to_int32_round_to_zero( float64 a ) ++{ ++ int32 z = *( (double *) &a ); ++ spefscr = __builtin_spe_mfspefscr(); ++ return z; ++ ++} ++ ++#ifdef BITS64 ++ ++int64 syst_float64_to_int64_round_to_zero( float64 a ) ++{ ++ int64 z = *( (double *) &a ); ++ spefscr = __builtin_spe_mfspefscr(); ++ return z; ++ ++} ++ ++#endif ++ ++float32 syst_float64_to_float32( float64 a ) ++{ ++ float32 z; ++ ++ *( (float *) &z ) = *( (double *) &a ); ++ spefscr = __builtin_spe_mfspefscr(); ++ return z; ++ ++} ++ ++#if defined( FLOATX80 ) && defined( LONG_DOUBLE_IS_FLOATX80 ) ++ ++floatx80 syst_float64_to_floatx80( float64 a ) ++{ ++ floatx80 z; ++ ++ *( (long double *) &z ) = *( (double *) &a ); ++ return z; ++ ++} ++ ++#endif ++ ++#if defined( FLOAT128 ) && defined( LONG_DOUBLE_IS_FLOAT128 ) ++ ++float128 syst_float64_to_float128( float64 a ) ++{ ++ float128 z; ++ ++ *( (long double *) &z ) = *( (double *) &a ); ++ return z; ++ ++} ++ ++#endif ++ ++float64 syst_float64_add( float64 a, float64 b ) ++{ ++ float64 z; ++ ++ *( (double *) &z ) = *( (double *) &a ) + *( (double *) &b ); ++ spefscr = __builtin_spe_mfspefscr(); ++ return z; ++ ++} ++ ++float64 syst_float64_sub( float64 a, float64 b ) ++{ ++ float64 z; ++ ++ *( (double *) &z ) = *( (double *) &a ) - *( (double *) &b ); ++ spefscr = __builtin_spe_mfspefscr(); ++ return z; ++ ++} ++ ++float64 syst_float64_mul( float64 a, float64 b ) ++{ ++ float64 z; ++ ++ *( (double *) &z ) = *( (double *) &a ) * *( (double *) &b ); ++ spefscr = __builtin_spe_mfspefscr(); ++ return z; ++ ++} ++ ++float64 syst_float64_div( float64 a, float64 b ) ++{ ++ float64 z; ++ ++ *( (double *) &z ) = *( (double *) &a ) / *( (double *) &b ); ++ spefscr = __builtin_spe_mfspefscr(); ++ return z; ++ ++} ++ ++float64 syst_float64_sqrt( float64 a ) ++{ ++ /* Ebony ++ float64 z; ++ ++ *( (double *) &z ) = sqrt( *( (double *) &a ) ); ++ spefscr = __builtin_spe_mfspefscr(); ++ return z; ++ */ ++ ++} ++ ++flag syst_float64_eq( float64 a, float64 b ) ++{ ++ flag f = ( *( (double *) &a ) == *( (double *) &b ) ); ++ spefscr = __builtin_spe_mfspefscr(); ++ return f; ++ ++} ++ ++flag syst_float64_le( float64 a, float64 b ) ++{ ++ flag f = ( *( (double *) &a ) <= *( (double *) &b ) ); ++ spefscr = __builtin_spe_mfspefscr(); ++ return f; ++ ++} ++ ++flag syst_float64_lt( float64 a, float64 b ) ++{ ++ flag f = ( *( (double *) &a ) < *( (double *) &b ) ); ++ spefscr = __builtin_spe_mfspefscr(); ++ return f; ++ ++} ++ ++#if defined( FLOATX80 ) && defined( LONG_DOUBLE_IS_FLOATX80 ) ++ ++int32 syst_floatx80_to_int32_round_to_zero( floatx80 a ) ++{ ++ ++ return *( (long double *) &a ); ++ ++} ++ ++#ifdef BITS64 ++ ++int64 syst_floatx80_to_int64_round_to_zero( floatx80 a ) ++{ ++ ++ return *( (long double *) &a ); ++ ++} ++ ++#endif ++ ++float32 syst_floatx80_to_float32( floatx80 a ) ++{ ++ float32 z; ++ ++ *( (float *) &z ) = *( (long double *) &a ); ++ return z; ++ ++} ++ ++float64 syst_floatx80_to_float64( floatx80 a ) ++{ ++ float64 z; ++ ++ *( (double *) &z ) = *( (long double *) &a ); ++ return z; ++ ++} ++ ++floatx80 syst_floatx80_add( floatx80 a, floatx80 b ) ++{ ++ floatx80 z; ++ ++ *( (long double *) &z ) = ++ *( (long double *) &a ) + *( (long double *) &b ); ++ return z; ++ ++} ++ ++floatx80 syst_floatx80_sub( floatx80 a, floatx80 b ) ++{ ++ floatx80 z; ++ ++ *( (long double *) &z ) = ++ *( (long double *) &a ) - *( (long double *) &b ); ++ return z; ++ ++} ++ ++floatx80 syst_floatx80_mul( floatx80 a, floatx80 b ) ++{ ++ floatx80 z; ++ ++ *( (long double *) &z ) = ++ *( (long double *) &a ) * *( (long double *) &b ); ++ return z; ++ ++} ++ ++floatx80 syst_floatx80_div( floatx80 a, floatx80 b ) ++{ ++ floatx80 z; ++ ++ *( (long double *) &z ) = ++ *( (long double *) &a ) / *( (long double *) &b ); ++ spefscr = __builtin_spe_mfspefscr(); ++ return z; ++ ++} ++ ++flag syst_floatx80_eq( floatx80 a, floatx80 b ) ++{ ++ ++ return ( *( (long double *) &a ) == *( (long double *) &b ) ); ++ ++} ++ ++flag syst_floatx80_le( floatx80 a, floatx80 b ) ++{ ++ ++ return ( *( (long double *) &a ) <= *( (long double *) &b ) ); ++ ++} ++ ++flag syst_floatx80_lt( floatx80 a, floatx80 b ) ++{ ++ ++ return ( *( (long double *) &a ) < *( (long double *) &b ) ); ++ ++} ++ ++#endif ++ ++#if defined( FLOAT128 ) && defined( LONG_DOUBLE_IS_FLOAT128 ) ++ ++int32 syst_float128_to_int32_round_to_zero( float128 a ) ++{ ++ ++ return *( (long double *) &a ); ++ ++} ++ ++#ifdef BITS64 ++ ++int64 syst_float128_to_int64_round_to_zero( float128 a ) ++{ ++ ++ return *( (long double *) &a ); ++ ++} ++ ++#endif ++ ++float32 syst_float128_to_float32( float128 a ) ++{ ++ float32 z; ++ ++ *( (float *) &z ) = *( (long double *) &a ); ++ return z; ++ ++} ++ ++float64 syst_float128_to_float64( float128 a ) ++{ ++ float64 z; ++ ++ *( (double *) &z ) = *( (long double *) &a ); ++ return z; ++ ++} ++ ++float128 syst_float128_add( float128 a, float128 b ) ++{ ++ float128 z; ++ ++ *( (long double *) &z ) = ++ *( (long double *) &a ) + *( (long double *) &b ); ++ return z; ++ ++} ++ ++float128 syst_float128_sub( float128 a, float128 b ) ++{ ++ float128 z; ++ ++ *( (long double *) &z ) = ++ *( (long double *) &a ) - *( (long double *) &b ); ++ return z; ++ ++} ++ ++float128 syst_float128_mul( float128 a, float128 b ) ++{ ++ float128 z; ++ ++ *( (long double *) &z ) = ++ *( (long double *) &a ) * *( (long double *) &b ); ++ return z; ++ ++} ++ ++float128 syst_float128_div( float128 a, float128 b ) ++{ ++ float128 z; ++ ++ *( (long double *) &z ) = ++ *( (long double *) &a ) / *( (long double *) &b ); ++ spefscr = __builtin_spe_mfspefscr(); ++ return z; ++ ++} ++ ++flag syst_float128_eq( float128 a, float128 b ) ++{ ++ ++ return ( *( (long double *) &a ) == *( (long double *) &b ) ); ++ ++} ++ ++flag syst_float128_le( float128 a, float128 b ) ++{ ++ ++ return ( *( (long double *) &a ) <= *( (long double *) &b ) ); ++ ++} ++ ++flag syst_float128_lt( float128 a, float128 b ) ++{ ++ ++ return ( *( (long double *) &a ) < *( (long double *) &b ) ); ++ ++} ++ ++#endif ++ +diff --git a/testfloat/powerpc-linux-gcc/systmodes.c b/testfloat/powerpc-linux-gcc/systmodes.c +new file mode 100644 +index 0000000..143cdea +--- /dev/null ++++ b/testfloat/powerpc-linux-gcc/systmodes.c +@@ -0,0 +1,67 @@ ++/* ++ * This file is derived from testfloat/386-Win32-gcc/systmodes.S, ++ * the copyright for that material belongs to the original owners. ++ * ++ * Additional material and changes where applicable is: ++ * Copyright (C) 2008 Freescale Semiconductor, Inc. All rights reserved. ++ * ++ * Author: Ebony Zhu, ++ * Yu Liu, ++ */ ++ ++/* ++=============================================================================== ++ ++This C source file is part of TestFloat, Release 2a, a package of programs ++for testing the correctness of floating-point arithmetic complying to the ++IEC/IEEE Standard for Floating-Point. ++ ++Written by John R. Hauser. More information is available through the Web ++page `http://HTTP.CS.Berkeley.EDU/~jhauser/arithmetic/TestFloat.html'. ++ ++THIS SOFTWARE IS DISTRIBUTED AS IS, FOR FREE. Although reasonable effort ++has been made to avoid it, THIS SOFTWARE MAY CONTAIN FAULTS THAT WILL AT ++TIMES RESULT IN INCORRECT BEHAVIOR. USE OF THIS SOFTWARE IS RESTRICTED TO ++PERSONS AND ORGANIZATIONS WHO CAN AND WILL TAKE FULL RESPONSIBILITY FOR ANY ++AND ALL LOSSES, COSTS, OR OTHER PROBLEMS ARISING FROM ITS USE. ++ ++Derivative works are acceptable, even for commercial purposes, so long as ++(1) they include prominent notice that the work is derivative, and (2) they ++include prominent notice akin to these four paragraphs for those parts of ++this code that are retained. ++ ++=============================================================================== ++*/ ++ ++#include ++#include "milieu.h" ++#include "systmodes.h" ++/* ++------------------------------------------------------------------------------- ++Sets the system's IEC/IEEE floating-point rounding mode. Also disables all ++system exception traps. ++------------------------------------------------------------------------------- ++*/ ++int rounding; ++ ++void syst_float_set_rounding_mode( int8 roundingMode ) ++{ ++ (void) fesetround ( roundingMode ); ++ rounding = roundingMode; ++} ++ ++/* ++------------------------------------------------------------------------------- ++Sets the rounding precision of subsequent extended double-precision ++operations. The `precision' argument should be one of 0, 32, 64, or 80. ++If `precision' is 32, the rounding precision is set equivalent to single ++precision; else if `precision' is 64, the rounding precision is set ++equivalent to double precision; else the rounding precision is set to full ++extended double precision. ++------------------------------------------------------------------------------- ++*/ ++void syst_float_set_rounding_precision( int8 precision ) ++{ ++ ++} ++ +diff --git a/testfloat/templates/Makefile b/testfloat/templates/Makefile +index f5f3cde..18cffe0 100644 +--- a/testfloat/templates/Makefile ++++ b/testfloat/templates/Makefile +@@ -1,15 +1,21 @@ + +-PROCESSOR_H = ../../processors/!!!processor.h ++#PROCESSOR_H = ../../processors/!!!processor.h ++PROCESSOR_H = ../../processors/POWERPC-gcc.h + SOFTFLOAT_VERSION = bits64 +-TARGET = !!!target +-SOFTFLOAT_DIR = ../../softfloat/$(SOFTFLOAT_VERSION)/$(TARGET) ++ ++#TARGET = !!!target ++TARGET = powerpc-GCC ++SOFTFLOAT_DIR = ../../../SoftFloat-2b/softfloat/$(SOFTFLOAT_VERSION)/$(TARGET) + + OBJ = .o + EXE = + INCLUDES = -I. -I.. -I$(SOFTFLOAT_DIR) +-COMPILE_C = gcc -c -o $@ $(INCLUDES) -I- -O2 +-COMPILE_SLOWFLOAT_C = gcc -c -o $@ $(INCLUDES) -I- -O3 +-LINK = gcc -o $@ ++#COMPILE_C = gcc -c -o $@ $(INCLUDES) -I- -O2 ++#COMPILE_SLOWFLOAT_C = gcc -c -o $@ $(INCLUDES) -I- -O3 ++#LINK = gcc -o $@ ++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 ++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 ++LINK = /opt/mtwk/usr/local/gcc-3_4-e500-glibc-2.3.4-dp/powerpc-linux-gnuspe/bin/powerpc-linux-gnuspe-gcc -o $@ + + SOFTFLOAT_H = $(SOFTFLOAT_DIR)/softfloat.h + SOFTFLOAT_OBJ = $(SOFTFLOAT_DIR)/softfloat$(OBJ) +diff --git a/testfloat/templates/milieu.h b/testfloat/templates/milieu.h +index 56d3ac4..3214ca8 100644 +--- a/testfloat/templates/milieu.h ++++ b/testfloat/templates/milieu.h +@@ -28,7 +28,7 @@ this code that are retained. + Include common integer types and flags. + ------------------------------------------------------------------------------- + */ +-#include "../../processors/!!!processor.h" ++#include "../../processors/SPARC-gcc.h" + + /* + ------------------------------------------------------------------------------- +diff --git a/testfloat/testFunction.h b/testfloat/testFunction.h +index 04bf856..00139a7 100644 +--- a/testfloat/testFunction.h ++++ b/testfloat/testFunction.h +@@ -126,8 +126,8 @@ extern const flag functionExists[ NUM_FUNCTIONS ]; + enum { + ROUND_NEAREST_EVEN = 1, + ROUND_TO_ZERO, +- ROUND_DOWN, + ROUND_UP, ++ ROUND_DOWN, + NUM_ROUNDINGMODES + }; + +diff --git a/testfloat/testLoops.c b/testfloat/testLoops.c +index 8ba92f3..ba05548 100644 +--- a/testfloat/testLoops.c ++++ b/testfloat/testLoops.c +@@ -488,6 +488,11 @@ void + (void) testFlagsFunctionPtr(); + testZ = testFunction( testCases_a_int32 ); + testFlags = testFlagsFunctionPtr(); ++#ifdef TEST_KERNEL_EMU ++ if (! syst_float_is_soft_emu()){ ++ continue; ++ } ++#endif + --count; + if ( count == 0 ) { + checkEarlyExit(); +@@ -539,6 +544,11 @@ void + (void) testFlagsFunctionPtr(); + testZ = testFunction( testCases_a_int32 ); + testFlags = testFlagsFunctionPtr(); ++#ifdef TEST_KERNEL_EMU ++ if (! syst_float_is_soft_emu()){ ++ continue; ++ } ++#endif + --count; + if ( count == 0 ) { + checkEarlyExit(); +@@ -592,6 +602,11 @@ void + (void) testFlagsFunctionPtr(); + testZ = testFunction( testCases_a_int32 ); + testFlags = testFlagsFunctionPtr(); ++#ifdef TEST_KERNEL_EMU ++ if (! syst_float_is_soft_emu()){ ++ continue; ++ } ++#endif + --count; + if ( count == 0 ) { + checkEarlyExit(); +@@ -647,6 +662,11 @@ void + (void) testFlagsFunctionPtr(); + testZ = testFunction( testCases_a_int32 ); + testFlags = testFlagsFunctionPtr(); ++#ifdef TEST_KERNEL_EMU ++ if (! syst_float_is_soft_emu()){ ++ continue; ++ } ++#endif + --count; + if ( count == 0 ) { + checkEarlyExit(); +@@ -702,6 +722,11 @@ void + (void) testFlagsFunctionPtr(); + testZ = testFunction( testCases_a_int64 ); + testFlags = testFlagsFunctionPtr(); ++#ifdef TEST_KERNEL_EMU ++ if (! syst_float_is_soft_emu()){ ++ continue; ++ } ++#endif + --count; + if ( count == 0 ) { + checkEarlyExit(); +@@ -753,6 +778,11 @@ void + (void) testFlagsFunctionPtr(); + testZ = testFunction( testCases_a_int64 ); + testFlags = testFlagsFunctionPtr(); ++#ifdef TEST_KERNEL_EMU ++ if (! syst_float_is_soft_emu()){ ++ continue; ++ } ++#endif + --count; + if ( count == 0 ) { + checkEarlyExit(); +@@ -806,6 +836,11 @@ void + (void) testFlagsFunctionPtr(); + testZ = testFunction( testCases_a_int64 ); + testFlags = testFlagsFunctionPtr(); ++#ifdef TEST_KERNEL_EMU ++ if (! syst_float_is_soft_emu()){ ++ continue; ++ } ++#endif + --count; + if ( count == 0 ) { + checkEarlyExit(); +@@ -861,6 +896,11 @@ void + (void) testFlagsFunctionPtr(); + testZ = testFunction( testCases_a_int64 ); + testFlags = testFlagsFunctionPtr(); ++#ifdef TEST_KERNEL_EMU ++ if (! syst_float_is_soft_emu()){ ++ continue; ++ } ++#endif + --count; + if ( count == 0 ) { + checkEarlyExit(); +@@ -916,6 +956,11 @@ void + (void) testFlagsFunctionPtr(); + testZ = testFunction( testCases_a_float32 ); + testFlags = testFlagsFunctionPtr(); ++#ifdef TEST_KERNEL_EMU ++ if (! syst_float_is_soft_emu()){ ++ continue; ++ } ++#endif + --count; + if ( count == 0 ) { + checkEarlyExit(); +@@ -973,6 +1018,11 @@ void + (void) testFlagsFunctionPtr(); + testZ = testFunction( testCases_a_float32 ); + testFlags = testFlagsFunctionPtr(); ++#ifdef TEST_KERNEL_EMU ++ if (! syst_float_is_soft_emu()){ ++ continue; ++ } ++#endif + --count; + if ( count == 0 ) { + checkEarlyExit(); +@@ -1030,6 +1080,11 @@ void + (void) testFlagsFunctionPtr(); + testZ = testFunction( testCases_a_float32 ); + testFlags = testFlagsFunctionPtr(); ++#ifdef TEST_KERNEL_EMU ++ if (! syst_float_is_soft_emu()){ ++ continue; ++ } ++#endif + --count; + if ( count == 0 ) { + checkEarlyExit(); +@@ -1087,6 +1142,11 @@ void + (void) testFlagsFunctionPtr(); + testZ = testFunction( testCases_a_float32 ); + testFlags = testFlagsFunctionPtr(); ++#ifdef TEST_KERNEL_EMU ++ if (! syst_float_is_soft_emu()){ ++ continue; ++ } ++#endif + --count; + if ( count == 0 ) { + checkEarlyExit(); +@@ -1146,6 +1206,11 @@ void + (void) testFlagsFunctionPtr(); + testZ = testFunction( testCases_a_float32 ); + testFlags = testFlagsFunctionPtr(); ++#ifdef TEST_KERNEL_EMU ++ if (! syst_float_is_soft_emu()){ ++ continue; ++ } ++#endif + --count; + if ( count == 0 ) { + checkEarlyExit(); +@@ -1203,6 +1268,11 @@ void + (void) testFlagsFunctionPtr(); + testZ = testFunction( testCases_a_float32 ); + testFlags = testFlagsFunctionPtr(); ++#ifdef TEST_KERNEL_EMU ++ if (! syst_float_is_soft_emu()){ ++ continue; ++ } ++#endif + --count; + if ( count == 0 ) { + checkEarlyExit(); +@@ -1260,6 +1330,11 @@ void + (void) testFlagsFunctionPtr(); + testZ = testFunction( testCases_a_float32, testCases_b_float32 ); + testFlags = testFlagsFunctionPtr(); ++#ifdef TEST_KERNEL_EMU ++ if (! syst_float_is_soft_emu()){ ++ continue; ++ } ++#endif + --count; + if ( count == 0 ) { + checkEarlyExit(); +@@ -1312,6 +1387,25 @@ void + (void) testFlagsFunctionPtr(); + testZ = testFunction( testCases_a_float32, testCases_b_float32 ); + testFlags = testFlagsFunctionPtr(); ++ ++if(testCases_a_float32 == 0x7ffffe && testCases_b_float32 == 0x3f7ffffe) ++{ ++ ++ writeErrorFound( 10000 - count ); ++ writeInputs_ab_float32(); ++ fputs( " ", stdout ); ++ writeOutputs_z_float32( trueZ, trueFlags, testZ, testFlags ); ++ fflush( stdout ); ++ if (! syst_float_is_soft_emu()){ ++ exit(-1); ++ } ++} ++#ifdef TEST_KERNEL_EMU ++ if (! syst_float_is_soft_emu()){ ++ continue; ++ } ++#endif ++ + --count; + if ( count == 0 ) { + checkEarlyExit(); +@@ -1370,6 +1464,11 @@ void + (void) testFlagsFunctionPtr(); + testZ = testFunction( testCases_a_float64 ); + testFlags = testFlagsFunctionPtr(); ++#ifdef TEST_KERNEL_EMU ++ if (! syst_float_is_soft_emu()){ ++ continue; ++ } ++#endif + --count; + if ( count == 0 ) { + checkEarlyExit(); +@@ -1427,6 +1526,11 @@ void + (void) testFlagsFunctionPtr(); + testZ = testFunction( testCases_a_float64 ); + testFlags = testFlagsFunctionPtr(); ++#ifdef TEST_KERNEL_EMU ++ if (! syst_float_is_soft_emu()){ ++ continue; ++ } ++#endif + --count; + if ( count == 0 ) { + checkEarlyExit(); +@@ -1484,6 +1588,11 @@ void + (void) testFlagsFunctionPtr(); + testZ = testFunction( testCases_a_float64 ); + testFlags = testFlagsFunctionPtr(); ++#ifdef TEST_KERNEL_EMU ++ if (! syst_float_is_soft_emu()){ ++ continue; ++ } ++#endif + --count; + if ( count == 0 ) { + checkEarlyExit(); +@@ -1541,6 +1650,11 @@ void + (void) testFlagsFunctionPtr(); + testZ = testFunction( testCases_a_float64 ); + testFlags = testFlagsFunctionPtr(); ++#ifdef TEST_KERNEL_EMU ++ if (! syst_float_is_soft_emu()){ ++ continue; ++ } ++#endif + --count; + if ( count == 0 ) { + checkEarlyExit(); +@@ -1600,6 +1714,11 @@ void + (void) testFlagsFunctionPtr(); + testZ = testFunction( testCases_a_float64 ); + testFlags = testFlagsFunctionPtr(); ++#ifdef TEST_KERNEL_EMU ++ if (! syst_float_is_soft_emu()){ ++ continue; ++ } ++#endif + --count; + if ( count == 0 ) { + checkEarlyExit(); +@@ -1657,6 +1776,11 @@ void + (void) testFlagsFunctionPtr(); + testZ = testFunction( testCases_a_float64 ); + testFlags = testFlagsFunctionPtr(); ++#ifdef TEST_KERNEL_EMU ++ if (! syst_float_is_soft_emu()){ ++ continue; ++ } ++#endif + --count; + if ( count == 0 ) { + checkEarlyExit(); +@@ -1714,6 +1838,11 @@ void + (void) testFlagsFunctionPtr(); + testZ = testFunction( testCases_a_float64, testCases_b_float64 ); + testFlags = testFlagsFunctionPtr(); ++#ifdef TEST_KERNEL_EMU ++ if (! syst_float_is_soft_emu()){ ++ continue; ++ } ++#endif + --count; + if ( count == 0 ) { + checkEarlyExit(); +@@ -1766,6 +1895,13 @@ void + (void) testFlagsFunctionPtr(); + testZ = testFunction( testCases_a_float64, testCases_b_float64 ); + testFlags = testFlagsFunctionPtr(); ++ ++#ifdef TEST_KERNEL_EMU ++ if (! syst_float_is_soft_emu()){ ++ continue; ++ } ++#endif ++ + --count; + if ( count == 0 ) { + checkEarlyExit(); +@@ -1826,6 +1962,11 @@ void + (void) testFlagsFunctionPtr(); + testZ = testFunction( testCases_a_floatx80 ); + testFlags = testFlagsFunctionPtr(); ++#ifdef TEST_KERNEL_EMU ++ if (! syst_float_is_soft_emu()){ ++ continue; ++ } ++#endif + --count; + if ( count == 0 ) { + checkEarlyExit(); +@@ -1883,6 +2024,11 @@ void + (void) testFlagsFunctionPtr(); + testZ = testFunction( testCases_a_floatx80 ); + testFlags = testFlagsFunctionPtr(); ++#ifdef TEST_KERNEL_EMU ++ if (! syst_float_is_soft_emu()){ ++ continue; ++ } ++#endif + --count; + if ( count == 0 ) { + checkEarlyExit(); +@@ -1940,6 +2086,11 @@ void + (void) testFlagsFunctionPtr(); + testZ = testFunction( testCases_a_floatx80 ); + testFlags = testFlagsFunctionPtr(); ++#ifdef TEST_KERNEL_EMU ++ if (! syst_float_is_soft_emu()){ ++ continue; ++ } ++#endif + --count; + if ( count == 0 ) { + checkEarlyExit(); +@@ -1995,6 +2146,11 @@ void + (void) testFlagsFunctionPtr(); + testZ = testFunction( testCases_a_floatx80 ); + testFlags = testFlagsFunctionPtr(); ++#ifdef TEST_KERNEL_EMU ++ if (! syst_float_is_soft_emu()){ ++ continue; ++ } ++#endif + --count; + if ( count == 0 ) { + checkEarlyExit(); +@@ -2052,6 +2208,11 @@ void + (void) testFlagsFunctionPtr(); + testZ = testFunction( testCases_a_floatx80 ); + testFlags = testFlagsFunctionPtr(); ++#ifdef TEST_KERNEL_EMU ++ if (! syst_float_is_soft_emu()){ ++ continue; ++ } ++#endif + --count; + if ( count == 0 ) { + checkEarlyExit(); +@@ -2109,6 +2270,11 @@ void + (void) testFlagsFunctionPtr(); + testZ = testFunction( testCases_a_floatx80 ); + testFlags = testFlagsFunctionPtr(); ++#ifdef TEST_KERNEL_EMU ++ if (! syst_float_is_soft_emu()){ ++ continue; ++ } ++#endif + --count; + if ( count == 0 ) { + checkEarlyExit(); +@@ -2166,6 +2332,11 @@ void + (void) testFlagsFunctionPtr(); + testZ = testFunction( testCases_a_floatx80, testCases_b_floatx80 ); + testFlags = testFlagsFunctionPtr(); ++#ifdef TEST_KERNEL_EMU ++ if (! syst_float_is_soft_emu()){ ++ continue; ++ } ++#endif + --count; + if ( count == 0 ) { + checkEarlyExit(); +@@ -2218,6 +2389,11 @@ void + (void) testFlagsFunctionPtr(); + testZ = testFunction( testCases_a_floatx80, testCases_b_floatx80 ); + testFlags = testFlagsFunctionPtr(); ++#ifdef TEST_KERNEL_EMU ++ if (! syst_float_is_soft_emu()){ ++ continue; ++ } ++#endif + --count; + if ( count == 0 ) { + checkEarlyExit(); +@@ -2280,6 +2456,11 @@ void + (void) testFlagsFunctionPtr(); + testZ = testFunction( testCases_a_float128 ); + testFlags = testFlagsFunctionPtr(); ++#ifdef TEST_KERNEL_EMU ++ if (! syst_float_is_soft_emu()){ ++ continue; ++ } ++#endif + --count; + if ( count == 0 ) { + checkEarlyExit(); +@@ -2337,6 +2518,11 @@ void + (void) testFlagsFunctionPtr(); + testZ = testFunction( testCases_a_float128 ); + testFlags = testFlagsFunctionPtr(); ++#ifdef TEST_KERNEL_EMU ++ if (! syst_float_is_soft_emu()){ ++ continue; ++ } ++#endif + --count; + if ( count == 0 ) { + checkEarlyExit(); +@@ -2394,6 +2580,11 @@ void + (void) testFlagsFunctionPtr(); + testZ = testFunction( testCases_a_float128 ); + testFlags = testFlagsFunctionPtr(); ++#ifdef TEST_KERNEL_EMU ++ if (! syst_float_is_soft_emu()){ ++ continue; ++ } ++#endif + --count; + if ( count == 0 ) { + checkEarlyExit(); +@@ -2449,6 +2640,11 @@ void + (void) testFlagsFunctionPtr(); + testZ = testFunction( testCases_a_float128 ); + testFlags = testFlagsFunctionPtr(); ++#ifdef TEST_KERNEL_EMU ++ if (! syst_float_is_soft_emu()){ ++ continue; ++ } ++#endif + --count; + if ( count == 0 ) { + checkEarlyExit(); +@@ -2506,6 +2702,11 @@ void + (void) testFlagsFunctionPtr(); + testZ = testFunction( testCases_a_float128 ); + testFlags = testFlagsFunctionPtr(); ++#ifdef TEST_KERNEL_EMU ++ if (! syst_float_is_soft_emu()){ ++ continue; ++ } ++#endif + --count; + if ( count == 0 ) { + checkEarlyExit(); +@@ -2563,6 +2764,11 @@ void + (void) testFlagsFunctionPtr(); + testZ = testFunction( testCases_a_float128 ); + testFlags = testFlagsFunctionPtr(); ++#ifdef TEST_KERNEL_EMU ++ if (! syst_float_is_soft_emu()){ ++ continue; ++ } ++#endif + --count; + if ( count == 0 ) { + checkEarlyExit(); +@@ -2620,6 +2826,11 @@ void + (void) testFlagsFunctionPtr(); + testZ = testFunction( testCases_a_float128, testCases_b_float128 ); + testFlags = testFlagsFunctionPtr(); ++#ifdef TEST_KERNEL_EMU ++ if (! syst_float_is_soft_emu()){ ++ continue; ++ } ++#endif + --count; + if ( count == 0 ) { + checkEarlyExit(); +@@ -2672,6 +2883,11 @@ void + (void) testFlagsFunctionPtr(); + testZ = testFunction( testCases_a_float128, testCases_b_float128 ); + testFlags = testFlagsFunctionPtr(); ++#ifdef TEST_KERNEL_EMU ++ if (! syst_float_is_soft_emu()){ ++ continue; ++ } ++#endif + --count; + if ( count == 0 ) { + checkEarlyExit(); +-- +1.5.4 + 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 @@ +From 6c7567e05c28b8cb6c7dc68c278950a32feb6f64 Mon Sep 17 00:00:00 2001 +From: Ting Liu +Date: Wed, 9 May 2012 02:42:57 -0500 +Subject: [PATCH] Yocto: replace $(COMPILE_PREFIX)gcc with $(CC) and remove -te500v2 flags + +Signed-off-by: Ting Liu +--- + SoftFloat-2b/softfloat/bits32/powerpc-GCC/Makefile | 4 ++-- + SoftFloat-2b/softfloat/bits64/powerpc-GCC/Makefile | 4 ++-- + testfloat/powerpc-linux-gcc/Makefile | 8 ++++---- + 3 files changed, 8 insertions(+), 8 deletions(-) + +diff --git a/SoftFloat-2b/softfloat/bits32/powerpc-GCC/Makefile b/SoftFloat-2b/softfloat/bits32/powerpc-GCC/Makefile +index 28f1e33..4098048 100644 +--- a/SoftFloat-2b/softfloat/bits32/powerpc-GCC/Makefile ++++ b/SoftFloat-2b/softfloat/bits32/powerpc-GCC/Makefile +@@ -5,8 +5,8 @@ SOFTFLOAT_MACROS = ../softfloat-macros + OBJ = .o + EXE = + INCLUDES = -I. -I.. +-COMPILE_C = $(COMPILE_PREFIX)gcc -msoft-float -c -o $@ $(INCLUDES) -I- -O2 +-LINK = $(COMPILE_PREFIX)gcc -o $@ ++COMPILE_C = $(CC) -msoft-float -c -o $@ $(INCLUDES) -I- -O2 ++LINK = $(CC) -o $@ + + ALL: softfloat$(OBJ) timesoftfloat$(EXE) + +diff --git a/SoftFloat-2b/softfloat/bits64/powerpc-GCC/Makefile b/SoftFloat-2b/softfloat/bits64/powerpc-GCC/Makefile +index a5e2cc7..c34e16e 100644 +--- a/SoftFloat-2b/softfloat/bits64/powerpc-GCC/Makefile ++++ b/SoftFloat-2b/softfloat/bits64/powerpc-GCC/Makefile +@@ -5,8 +5,8 @@ SOFTFLOAT_MACROS = ../softfloat-macros + OBJ = .o + EXE = + INCLUDES = -I. -I.. +-COMPILE_C = $(COMPILE_PREFIX) -mcpu=8548 -mhard-float -mfloat-gprs=double -o $@ $(INCLUDES) -I- -O2 +-LINK = $(COMPILE_PREFIX) -o $@ ++COMPILE_C = $(CC) -mcpu=8548 -mhard-float -mfloat-gprs=double -o $@ $(INCLUDES) -I- -O2 ++LINK = $(CC) -o $@ + + ALL: softfloat$(OBJ) timesoftfloat$(EXE) + +diff --git a/testfloat/powerpc-linux-gcc/Makefile b/testfloat/powerpc-linux-gcc/Makefile +index de50aad..1a8b5f7 100644 +--- a/testfloat/powerpc-linux-gcc/Makefile ++++ b/testfloat/powerpc-linux-gcc/Makefile +@@ -8,13 +8,13 @@ OBJ = .o + EXE = + INCLUDES = -I. -I.. -I$(SOFTFLOAT_DIR) + +-COMPILE_C = $(COMPILE_PREFIX)gcc -c -o $@ $(INCLUDES) -I- -O $(EXTRA_CFLAGS) ++COMPILE_C = $(CC) -c -o $@ $(INCLUDES) -I- -O $(EXTRA_CFLAGS) + +-COMPILE_C_HARD = $(COMPILE_PREFIX)gcc -c -te500v2 -o $@ $(INCLUDES) ++COMPILE_C_HARD = $(CC) -c -o $@ $(INCLUDES) + +-COMPILE_SLOWFLOAT_C = $(COMPILE_PREFIX)gcc -c -o $@ $(INCLUDES) -I- -O ++COMPILE_SLOWFLOAT_C = $(CC) -c -o $@ $(INCLUDES) -I- -O + +-LINK = $(COMPILE_PREFIX)gcc -lm -o $@ ++LINK = $(CC) -lm -o $@ + + SOFTFLOAT_H = $(SOFTFLOAT_DIR)/softfloat.h + SOFTFLOAT_OBJ = $(SOFTFLOAT_DIR)/softfloat$(OBJ) +-- +1.7.3.4 + 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 @@ +DESCRIPTION = "A program for testing floating-point implementation" +LICENSE = "TestFloat" + +LIC_FILES_CHKSUM = "file://testfloat/testfloat.txt;beginline=87;endline=95;md5=bdb2e8111838a48015c29bd97f5b6145" + +SRC_URI = " http://www.jhauser.us/arithmetic/TestFloat-2a.tar.Z;name=TestFloat \ + http://www.jhauser.us/arithmetic/SoftFloat-2b.tar.Z;name=SoftFloat \ + " +SRC_URI_append_fslmachine = " file://SoftFloat-powerpc-1.patch \ + file://TestFloat-powerpc-E500v2-SPE-1.patch \ + file://Yocto-replace-COMPILE_PREFIX-gcc.patch \ + " +SRC_URI[TestFloat.md5sum] = "4dc889319ae1e0c5381ec511f784553a" +SRC_URI[TestFloat.sha256sum] = "84d14aa42adefbda2ec9708b42946f7fa59f93689b042684bd027863481f8e4e" +SRC_URI[SoftFloat.md5sum] = "b4a58b5c941f1a2317e4c2500086e3fa" +SRC_URI[SoftFloat.sha256sum] = "89d14b55113a2ba8cbda7011443ba1d298d381c89d939515d56c5f18f2febf81" + +S = "${WORKDIR}/TestFloat-2a" + +do_unpack2(){ + mv ${WORKDIR}/SoftFloat-2b ${S}/SoftFloat-2b + cd ${S} + if [ -n "$(which fromdos)" ];then + find -type f -exec fromdos {} \; + elif [ -n "$(which dos2unix)" ];then + find -type f -exec dos2unix {} \; + else + echo -e "\nERROR: command dos2unix or fromdos not found\n" && return 1 + fi +} +addtask do_unpack2 after do_unpack before do_patch + +do_compile(){ + oe_runmake -C testfloat/powerpc-linux-gcc/ CC="${CC}" EXTRA_CFLAGS="-DTEST_KERNEL_EMU" +} + +do_install(){ + install -d ${D}/${bindir} + install testfloat/powerpc-linux-gcc/testfloat ${D}/${bindir} + install testfloat/powerpc-linux-gcc/testsoftfloat ${D}/${bindir} +} + +COMPATIBLE_HOST_e500v2 = ".*" +COMPATIBLE_HOST ?= "(none)" + 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..1b2e070 --- /dev/null +++ b/recipes-extended/web-sysmon/web-sysmon_git.bb @@ -0,0 +1,21 @@ +DESCRIPTION = "Web System Monitor Files" +SECTION = "web-sysmon" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=12f884d2ae1ff87c09e5b7ccc2c4ca7e" + +SRC_URI = "git://git.freescale.com/ppc/sdk/web-sysmon.git" +SRCREV = "40b47611378ef5c07d98f0f691bb146ae52dcdc1" + +S = "${WORKDIR}/git" + +FILES_${PN} += "/" + +RDEPENDS_${PN} = "lighttpd" + +do_install() { + install -d ${D}/etc + install -m 644 ${S}/lighttpd.conf ${D}/etc + install -d ${D}/usr/local/bin + install -m 755 ${S}/rrd/sens_update_rrd ${D}/usr/local/bin + cp -r ${S}/rrd ${D}/usr +} 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 @@ +require xorg-driver-video.inc +LIC_FILES_CHKSUM = "file://COPYING;md5=d8cbd99fff773f92e844948f74ef0df8" + +DESCRIPTION = "X.Org X server -- fbdev display driver" +PE = "1" +PR = "${INC_PR}.1" + +DEPENDS += "virtual/xserver" + +SRC_URI[md5sum] = "53a533d9e0c2da50962282526bace074" +SRC_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 @@ +DESCRIPTION = "X driver" +HOMEPAGE = "http://www.x.org" +SECTION = "x11/drivers" +LICENSE = "MIT-X" +INC_PR = "r15" + +DEPENDS = "randrproto virtual/xserver-xf86 xproto" + +SRC_URI = "${XORG_MIRROR}/individual/driver/${BPN}-${PV}.tar.bz2" + +S = "${WORKDIR}/${BPN}-${PV}" + +FILES_${PN} += " ${libdir}/xorg/modules" +FILES_${PN}-dbg += "${libdir}/xorg/modules/*/.debug" + +inherit autotools pkgconfig + +TARGET_CPPFLAGS += "-I${STAGING_DIR_HOST}/usr/include/xorg" + +# Another sucky behavor from Xorg configure scripts. +# They use AC_CHECK_FILE to check for DRI headers. Yuck! +# Of course this will blow up when cross compiling. + +do_configure_prepend() { + incdir=${layout_includedir}/xorg + for f in dri.h sarea.h dristruct.h exa.h damage.h xf86Module.h; do + path="$incdir/$f" + if [ -f "${STAGING_DIR_HOST}/$path" ]; then + p=`echo "$path" | sed 'y%*+%pp%;s%[^_[:alnum:]]%_%g'` + eval "export ac_cv_file_$p=yes" + fi + done +} + +# FIXME: We don't want to include the libtool archives (*.la) from modules +# directory, as they serve no useful purpose. Upstream should fix Makefile.am +do_install_append() { + find ${D}${libdir}/xorg/modules -regex ".*\.la$" | xargs rm -f -- +} + 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 @@ +include xorg-driver-common.inc + +DEPENDS = "randrproto renderproto videoproto xextproto fontsproto xproto" + 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 @@ +Section "Screen" + Identifier "Builtin Default fbdev Screen 0" + Device "Builtin Default fbdev Device 0" +EndSection + +Section "ServerLayout" + Identifier "Builtin Default Layout" + Screen "Builtin Default fbdev Screen 0" +EndSection + +Section "ServerFlags" + Option "DontZap" "0" +EndSection + +Section "InputClass" + Identifier "keyboard-all" + Driver "evdev" + MatchIsKeyboard "on" +EndSection + + +Section "InputClass" + Identifier "mouse-all" + Driver "evdev" + MatchIsPointer "on" +EndSection + diff --git a/recipes-graphics/xorg-xserver/xserver-xf86-config_0.1.bbappend b/recipes-graphics/xorg-xserver/xserver-xf86-config_0.1.bbappend new file mode 100644 index 0000000..7ae4ec2 --- /dev/null +++ b/recipes-graphics/xorg-xserver/xserver-xf86-config_0.1.bbappend @@ -0,0 +1,3 @@ +FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" + +PRINC := "${@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..7cc23cd --- /dev/null +++ b/recipes-kernel/asf/asf_git.bb @@ -0,0 +1,45 @@ +DESCRIPTION = "Non-DPAA software Application Specific Fast-path" +SECTION = "asf" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=9960b017720861b8c50c8c08723e57aa" + +SRC_URI = "git://git.freescale.com/ppc/sdk/asf.git" +SRCREV = "0b80c1df6a7490486d5106b28103598906793da0" + +DEPENDS="virtual/kernel" + +inherit module + +S = "${WORKDIR}/git/asfmodule" + +EXTRA_OEMAKE = "CROSS_COMPILE=${TARGET_PREFIX}" +export KERNEL_PATH = "${STAGING_KERNEL_DIR}" + +python () { + ma = d.getVar("DISTRO_FEATURES", True) + arch = d.getVar("OVERRIDES", True) + + # the : after the arch is to skip the message on 64b + if not "multiarch" in ma and "e6500:" in arch: + raise bb.parse.SkipPackage("Building the kernel for this arch requires multiarch to be in DISTRO_FEATURES") + + promote_kernel = d.getVar('BUILD_64BIT_KERNEL') + + if promote_kernel == "1": + d.setVar('KERNEL_CC_append', ' -m64') + d.setVar('KERNEL_LD_append', ' -melf64ppc') + + error_qa = d.getVar('ERROR_QA', True) + if 'arch' in error_qa: + d.setVar('ERROR_QA', error_qa.replace(' arch', '')) +} + +do_install(){ + mkdir -p ${D}/usr/driver/asf + cp -rf ${S}/bin/full ${D}/usr/driver/asf + cp -rf ${S}/bin/min ${D}/usr/driver/asf + cp -rf ${S}/../scripts ${D}/usr/driver/asf/. +} + +FILES_${PN} += "/usr/driver/asf" +INHIBIT_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 @@ +SECTION = "devel" +SUMMARY = "Linux Cryptodev KERNEL MODULE" +DESCRIPTION = "The Cryptodev package contains the kernel /dev/crypto module" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" +RCONFLICTS_${PN} = "ocf-linux" + +inherit module + +PR = "r1" +DEPENDS += "openssl" + +SRCREV = "1c24a0aa996630518d47826a2e3fea129ea094c7" + +SRC_URI = "git://repo.or.cz/cryptodev-linux.git;protocol=git \ + file://makefile_fixup.patch \ + file://Add-the-compile-and-install-rules-for-cryptodev-test.patch" + +EXTRA_OEMAKE='KERNEL_DIR="${STAGING_KERNEL_DIR}" PREFIX="${D}"' + +S = "${WORKDIR}/git" +python () { + ma = d.getVar("DISTRO_FEATURES", True) + arch = d.getVar("OVERRIDES", True) + + # the : after the arch is to skip the message on 64b + if not "multiarch" in ma and ("e5500:" in arch or "e6500:" in arch): + raise bb.parse.SkipPackage("Building the kernel for this arch requires multiarch to be in DISTRO_FEATURES") + + promote_kernel = d.getVar('BUILD_64BIT_KERNEL') + + if promote_kernel == "1": + d.setVar('KERNEL_CC_append', ' -m64') + d.setVar('KERNEL_LD_append', ' -melf64ppc') + + error_qa = d.getVar('ERROR_QA', True) + if 'arch' in error_qa: + d.setVar('ERROR_QA', error_qa.replace(' arch', '')) +} + +do_compile_append() { + oe_runmake testprogs +} + +do_install_append() { + oe_runmake install_tests +} + +PACKAGES += "${PN}-tests" +FILES_${PN}-dbg += "${bindir}/tests_cryptodev/.debug" +FILES_${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 @@ +From 1980a8f4779a955e73285e7a0d86549b69bea5c8 Mon Sep 17 00:00:00 2001 +From: Yu Zongchun +Date: Sun, 28 Apr 2013 14:39:22 +0800 +Subject: [PATCH] Add the compile and install rules for cryptodev tests folder + +This is required to install the cryptodev tests folder to rootfs + +Signed-off-by: Yu Zongchun + +Upstream-Status: Pending + +--- + Makefile | 6 ++++++ + tests/Makefile | 8 ++++++++ + 2 files changed, 14 insertions(+), 0 deletions(-) + +diff --git a/Makefile b/Makefile +index 2be8825..4cbb865 100644 +--- a/Makefile ++++ b/Makefile +@@ -17,6 +17,9 @@ install: + @echo "Installing cryptodev.h in /usr/include/crypto ..." + @install -D crypto/cryptodev.h /usr/include/crypto/cryptodev.h + ++install_tests: ++ make -C tests install DESTDIR=$(PREFIX) ++ + clean: + make -C $(KERNEL_DIR) SUBDIRS=`pwd` clean + rm -f $(hostprogs) *~ +@@ -25,6 +28,9 @@ clean: + check: + KERNEL_DIR=$(KERNEL_DIR) make -C tests check + ++testprogs: ++ KERNEL_DIR=$(KERNEL_DIR) make -C tests testprogs ++ + FILEBASE = cryptodev-linux-$(VERSION) + TMPDIR ?= /tmp + OUTPUT = $(FILEBASE).tar.gz +diff --git a/tests/Makefile b/tests/Makefile +index 87ca3c7..0488cf6 100644 +--- a/tests/Makefile ++++ b/tests/Makefile +@@ -19,6 +19,12 @@ example-async-hmac-objs := async_hmac.o + example-async-speed-objs := async_speed.o + example-hashcrypt-speed-objs := hashcrypt_speed.c + ++install: ++ install -d $(DESTDIR)/usr/bin/tests_cryptodev ++ for bin in $(hostprogs); do \ ++ install -m 755 $${bin} $(DESTDIR)/usr/bin/tests_cryptodev/; \ ++ done ++ + check: $(hostprogs) + ./cipher + ./hmac +@@ -28,6 +34,8 @@ check: $(hostprogs) + ./cipher-gcm + ./cipher-aead + ++testprogs: $(hostprogs) ++ + clean: + rm -f *.o *~ $(hostprogs) + +-- +1.7.5.4 + 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 @@ +diff --git a/Makefile b/Makefile +index 2be8825..b36d68c 100644 +--- a/Makefile ++++ b/Makefile +@@ -1,6 +1,7 @@ + KBUILD_CFLAGS += -I$(src) + KERNEL_DIR = /lib/modules/$(shell uname -r)/build + VERSION = 1.5 ++PREFIX = + + cryptodev-objs = ioctl.o main.o cryptlib.o authenc.o zc.o util.o + +@@ -12,10 +13,10 @@ build: version.h + version.h: Makefile + @echo "#define VERSION \"$(VERSION)\"" > version.h + +-install: ++modules_install: + make -C $(KERNEL_DIR) SUBDIRS=`pwd` modules_install +- @echo "Installing cryptodev.h in /usr/include/crypto ..." +- @install -D crypto/cryptodev.h /usr/include/crypto/cryptodev.h ++ @echo "Installing cryptodev.h in $(PREFIX)/usr/include/crypto ..." ++ @install -D crypto/cryptodev.h $(PREFIX)/usr/include/crypto/cryptodev.h + + clean: + 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 @@ +Upstream-Status: Backport + +From b9e8c37220c80e78289a1e87b50c09418eb59a7e Mon Sep 17 00:00:00 2001 +From: Jack Mitchell +Date: Fri, 08 Mar 2013 11:21:52 +0000 +Subject: libtraceevent: Remove hard coded include to /usr/local/include in Makefile + +having /usr/local/include hardcoded into the makefile is not necessary +as this is automatically included by GCC. It also infects cross-compile +builds with the host systems includes. + +Signed-off-by: Jack Mitchell +Acked-by: Namhyung Kim +Cc: Ingo Molnar +Cc: Paul Mackerras +Cc: Peter Zijlstra +Link: http://lkml.kernel.org/r/1362741712-21308-1-git-send-email-ml@communistcode.co.uk +Signed-off-by: Arnaldo Carvalho de Melo +--- +(limited to 'tools/lib/traceevent/Makefile') + +diff --git a/tools/lib/traceevent/Makefile b/tools/lib/traceevent/Makefile +index a20e320..0b0a907 100644 +--- a/tools/lib/traceevent/Makefile ++++ b/tools/lib/traceevent/Makefile +@@ -122,7 +122,7 @@ export Q VERBOSE + + EVENT_PARSE_VERSION = $(EP_VERSION).$(EP_PATCHLEVEL).$(EP_EXTRAVERSION) + +-INCLUDES = -I. -I/usr/local/include $(CONFIG_INCLUDES) ++INCLUDES = -I. $(CONFIG_INCLUDES) + + # Set compile option CFLAGS if not set elsewhere + CFLAGS ?= -g -Wall +-- +cgit 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..df18cfe --- /dev/null +++ b/recipes-kernel/linux/linux-qoriq-sdk.bb @@ -0,0 +1,31 @@ +inherit kernel +require recipes-kernel/linux/linux-dtb.inc + +DESCRIPTION = "Linux kernel for Freescale platforms" +SECTION = "kernel" +LICENSE = "GPLv2" + +require recipes-kernel/linux/linux-qoriq-sdk.inc + +SRC_URI += "file://libtraceevent-Remove-hard-coded-include-to-usr-local-include-in-Makefile.patch" + +PR = "${INC_PR}.1" + +DEPENDS_append = " libgcc" +KERNEL_CC_append = " ${TOOLCHAIN_OPTIONS}" +KERNEL_LD_append = " ${TOOLCHAIN_OPTIONS}" + +do_configure_prepend() { + # copy desired defconfig so we pick it up for the real kernel_do_configure + cp ${KERNEL_DEFCONFIG} ${B}/.config + + # add config fragments + if [ -f "${DELTA_KERNEL_DEFCONFIG}" ]; then + ${S}/scripts/kconfig/merge_config.sh -m .config ${DELTA_KERNEL_DEFCONFIG} + fi + + # append sdk version in kernel version if SDK_VERSION is defined + if [ -n "${SDK_VERSION}" ]; then + echo "CONFIG_LOCALVERSION=\"-${SDK_VERSION}\"" >> ${S}/.config + fi +} diff --git a/recipes-kernel/linux/linux-qoriq-sdk.inc b/recipes-kernel/linux/linux-qoriq-sdk.inc new file mode 100644 index 0000000..1c66f9b --- /dev/null +++ b/recipes-kernel/linux/linux-qoriq-sdk.inc @@ -0,0 +1,36 @@ +LIC_FILES_CHKSUM = "file://COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7" + +PV = "3.8" +INC_PR = "r11" + +SRCREV = "4b66366af2d77de68f4bd6548d07421e13d3df05" +SRC_URI = "git://git.freescale.com/ppc/sdk/linux.git \ + " + +KSRC ?= "" +S = '${@base_conditional("KSRC", "", "${WORKDIR}/git", "${KSRC}", d)}' +# make everything compatible for the time being +COMPATIBLE_MACHINE_$MACHINE = "$MACHINE" + +python () { + ma = d.getVar("DISTRO_FEATURES", True) + arch = d.getVar("OVERRIDES", True) + + # the : after the arch is to skip the message on 64b + if not "multiarch" in ma and ("e5500:" in arch or "e6500:" in arch): + raise bb.parse.SkipPackage("Building the kernel for this arch requires multiarch to be in DISTRO_FEATURES") + + promote_kernel = d.getVar('BUILD_64BIT_KERNEL') + + if promote_kernel == "1": + d.setVar('KERNEL_CC_append', ' -m64') + d.setVar('KERNEL_LD_append', ' -melf64ppc') + + error_qa = d.getVar('ERROR_QA', True) + if 'arch' in error_qa: + d.setVar('ERROR_QA', error_qa.replace(' arch', '')) + + all_qa = d.getVar('ALL_QA', True) + if 'arch' in all_qa: + d.setVar('ALL_QA', all_qa.replace(' arch', '')) +} 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..a8d2e96 --- /dev/null +++ b/recipes-kernel/qoriq-debug/qoriq-debug_git.bb @@ -0,0 +1,34 @@ +DESCRIPTION = "QorIQ Debug File System Module" +SECTION = "qoriq-debug" +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=e29234dd5d40dc352cc60cc0c93437ba" + +inherit module autotools + +SRC_URI = "git://git.freescale.com/ppc/sdk/qoriq-debug.git" +SRCREV = "08de2902af9a79ba9e436a284b8d7754b351f608" + +S = "${WORKDIR}/git" + +EXTRA_OECONF += "--with-linux=${STAGING_KERNEL_DIR}" +EXTRA_OEMAKE += 'SYSROOT="${D}"' + +python () { + ma = d.getVar("DISTRO_FEATURES", True) + arch = d.getVar("OVERRIDES", True) + + # the : after the arch is to skip the message on 64b + if not "multiarch" in ma and ("e5500:" in arch or "e6500:" in arch): + raise bb.parse.SkipPackage("Building the kernel for this arch requires multiarch to be in DISTRO_FEATURES") + + promote_kernel = d.getVar('BUILD_64BIT_KERNEL') + + if promote_kernel == "1": + d.setVar('KERNEL_CC_append', ' -m64') + d.setVar('KERNEL_LD_append', ' -melf64ppc') + + error_qa = d.getVar('ERROR_QA', True) + if 'arch' in error_qa: + d.setVar('ERROR_QA', error_qa.replace(' arch', '')) +} + diff --git a/recipes-kernel/skmm/skmm_git.bb b/recipes-kernel/skmm/skmm_git.bb new file mode 100644 index 0000000..224e556 --- /dev/null +++ b/recipes-kernel/skmm/skmm_git.bb @@ -0,0 +1,33 @@ +DESCRIPTION = "SKMM application for PCIe endpoint" +SECTION = "skmm" +LICENSE = "BSD & GPLv2" +LIC_FILES_CHKSUM = "file://Makefile;endline=30;md5=39e58bedc879163c9338596e52df5b1f" + +DEPENDS = "libedit" + +SRC_URI = "git://git.freescale.com/ppc/sdk/skmm-ep.git" +SRCREV = "80d8393a2033b3b0cc8f885702d7b288956f3a37" + +COMPATIBLE_MACHINE = "(p4080ds|t4240qds)" + +S = "${WORKDIR}/git" + +EXTRA_OEMAKE = 'MACHINE=${MACHINE}' + +export LIBEDIT_CFLAGS="$(pkg-config --cflags libedit)" +export LIBEDIT_LDFLAGS="$(pkg-config --libs --static libedit)" + +do_compile () { + export ARCH=${TARGET_ARCH} + oe_runmake HOST=x86_64 clean + oe_runmake HOST=x86_64 + oe_runmake HOST=powerpc clean + oe_runmake HOST=powerpc +} + +do_install () { + oe_runmake ARCH=${TARGET_ARCH} HOST=x86_64 install DESTDIR=${D} + oe_runmake ARCH=${TARGET_ARCH} HOST=powerpc install DESTDIR=${D} +} + +FILES_${PN} += "/home/root/.skmm/*" 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..2c6bb85 --- /dev/null +++ b/recipes-virtualization/hv-cfg/hv-cfg_git.bb @@ -0,0 +1,46 @@ +DESCRIPTION = "Hypervisor Config" +SECTION = "hv-cfg" +LICENSE = "BSD" +PR = "r6" + +LIC_FILES_CHKSUM = " \ + file://p2041rdb/LICENSE;md5=96dd72f26e9bb861de5c76c60e35e1bc \ + file://p3041ds/LICENSE;md5=96dd72f26e9bb861de5c76c60e35e1bc \ + file://p4080ds/LICENSE;md5=96dd72f26e9bb861de5c76c60e35e1bc \ + file://p5020ds/LICENSE;md5=96dd72f26e9bb861de5c76c60e35e1bc \ +" + +DEPENDS += "dtc-native" + +# this package is specific to the machine itself +INHIBIT_DEFAULT_DEPS = "1" +PACKAGE_ARCH = "${MACHINE_ARCH}" +COMPATIBLE_HOST_fslmachine = ".*" +COMPATIBLE_HOST ?= "(none)" + +inherit deploy + +SRCREV = "d037ab9d5b9ecd58e10a7dac2b601d781ed9b5bf" +SRC_URI = "git://git.freescale.com/ppc/sdk/hv-cfg.git" + +S = "${WORKDIR}/git" + +do_install () { + make install + + M=`echo ${MACHINE} | sed s/-64b//g` + install -d ${D}/boot/hv-cfg + cp -r ${S}/${M}/${M}/* ${D}/boot/hv-cfg +} + +do_deploy () { + M=`echo ${MACHINE} | sed s/-64b//g` + install -d ${DEPLOYDIR}/hv-cfg + cp -r ${S}/${M}/${M}/* ${DEPLOYDIR}/hv-cfg +} +addtask deploy after do_install + +PACKAGES += "${PN}-image" +FILES_${PN}-image += "/boot" + +ALLOW_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 @@ +From 59e68351114a65a1f315ded1ee92f4370b8547e2 Mon Sep 17 00:00:00 2001 +From: Ting Liu +Date: Mon, 8 Jul 2013 17:03:43 +0800 +Subject: [PATCH] fix sizeof-pointer-memaccess error + +build: src/livetree.c +.../hypervisor/git-r3/git/src/devtree.c: In function 'read_intmap': +.../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] + memset(ent, 0, sizeof(ent)); + ^ +cc1: all warnings being treated as errors +build: src/ipi_doorbell.c +make[1]: *** [bin/devtree.o] Error 1 +make[1]: *** Waiting for unfinished jobs.... +make[1]: Leaving directory `.../hypervisor/git-r3/git/output' +make: *** [all] Error 2 +ERROR: oe_runmake failed + +Signed-off-by: Ting Liu +--- + src/devtree.c | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/src/devtree.c b/src/devtree.c +index f3710e4..3295e20 100644 +--- a/src/devtree.c ++++ b/src/devtree.c +@@ -1510,7 +1510,7 @@ static void read_intmap(dt_node_t *node) + } + + if (imap + ent->parent_naddr + ent->parent_nint > imap_end) { +- memset(ent, 0, sizeof(ent)); ++ memset(ent, 0, sizeof(intmap_entry_t)); + break; + } + +-- +1.7.5.4 + 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 @@ +# Add rule to handle setting up device node for FSL HV mgmt driver +SUBSYSTEM=="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..ff89bfa --- /dev/null +++ b/recipes-virtualization/hypervisor/hypervisor_git.bb @@ -0,0 +1,91 @@ +DESCRIPTION = "Freescale embedded hypervisor" +SECTION = "embedded-hv" +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://README;endline=22;md5=0655bbc3b7d7166c30c87208b4e23cf0" + +PR = "r3" + +DEPENDS = "u-boot-mkimage-native" + +inherit deploy + +S = "${WORKDIR}/git" + +# TODO: fix dtc to use the already built package +SRC_URI = " \ + git://git.freescale.com/ppc/sdk/hypervisor/hypervisor.git;name=hypervisor \ + git://git.freescale.com/ppc/sdk/hypervisor/kconfig.git;name=kconfig;destsuffix=git/kconfig \ + git://git.freescale.com/ppc/sdk/hypervisor/libos.git;name=libos;destsuffix=git/libos \ + git://www.jdl.com/software/dtc.git;name=dtc;destsuffix=dtc \ + git://git.freescale.com/ppc/sdk/hypertrk.git;name=hypertrk;destsuffix=git/hypertrk \ + file://0001-fix-sizeof-pointer-memaccess-error.patch \ + file://81-fsl-embedded-hv.rules \ + " + +SRCREV_FORMAT="hypervisor" +SRCREV = "e6092cdf2a225c66c1ea46b1151eb828da29d139" +SRCREV_kconfig = "a56025d4da992b856796b0eccac2e410d751dbac" +SRCREV_libos = "5268371581f3ef3959be2a53235edfa6a8c6aa7c" +SRCREV_dtc = "033089f29099bdfd5c2d6986cdb9fd07b16cfde0" +SRCREV_hypertrk = "975c98b562186afbd3bbf103ae54b96cf9b3e533" + +EXTRA_OEMAKE = 'CROSS_COMPILE=${TARGET_PREFIX} CC="${TARGET_PREFIX}gcc ${TOOLCHAIN_OPTIONS}"' + +DEFCONFIG = "defconfig" +DEFCONFIG_powerpc64 = "64bit_defconfig" + +COMPATIBLE_HOST_fslmachine = ".*" +COMPATIBLE_HOST ?= "(none)" + +inherit cml1 +do_configure () { + oe_runmake ${DEFCONFIG} +} + +PKG_HV_HYPERTRK_SUPPORT = "n" +do_compile () { + if [ "${PKG_HV_HYPERTRK_SUPPORT}" = "y" ] + then + oe_runmake silentoldconfig + export HV_DIR=$PWD + cd hypertrk + oe_runmake deploy + cd .. + fi + + oe_runmake + oe_runmake partman +} + +do_install () { + install -d ${D}/${bindir} + install ${S}/output/bin/linux/partman ${D}/${bindir}/partman + + install -d ${D}${sysconfdir}/udev/rules.d + install -m 0644 ${WORKDIR}/81-fsl-embedded-hv.rules ${D}${sysconfdir}/udev/rules.d + + install -d ${D}/boot/hv + install ${S}/output/.config ${D}/boot/hv/hypervisor.config + install -m 644 ${S}/output/bin/hv ${S}/output/bin/hv.map \ + ${S}/output/bin/hv.uImage ${S}/output/bin/hv.bin \ + ${D}/boot/hv/ +} + +do_deploy () { + install -d ${DEPLOYDIR}/hv/ + install ${S}/output/.config ${DEPLOYDIR}/hv/hypervisor.config + install -m 644 ${S}/output/bin/hv ${S}/output/bin/hv.map \ + ${S}/output/bin/hv.uImage ${S}/output/bin/hv.bin \ + ${DEPLOYDIR}/hv/ +} +addtask deploy before do_build after do_install + +do_deploy_append() { + rm -f ${S}/../hv +} + +INHIBIT_PACKAGE_DEBUG_SPLIT = "1" +ALLOW_EMPTY_${PN} = "1" +PACKAGES_prepend = "${PN}-image ${PN}-partman " +FILES_${PN}-image = "/boot/" +FILES_${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 Binary files /dev/null and b/recipes-virtualization/mux-server/files/mux-server-1.02.tar.gz 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 @@ +DESCRIPTION = "A Linux-based utility supporting console multiplexing and demultiplexing" +SECTION = "mux-server" +LICENSE = "LGPL-2.1" +# TODO: add a dedicated COPYING file +LIC_FILES_CHKSUM = "file://mux_server.c;endline=9;md5=e59eeb0812bb88b7af2d932f2dc22aed" + +SRC_URI = "file://mux-server-${PV}.tar.gz;name=mux_server" + +EXTRA_OEMAKE='HOSTCC="${CC}"' + +do_install () { + install -d ${D}${bindir} + install -m 755 mux_server ${D}${bindir} +} + +BBCLASSEXTEND = "native nativesdk" -- cgit v1.2.3-54-g00ecf