TARGET_FPU not getting populated for powerpc 405/440 fpu-hard targets
Elvis Dowson
Hi,
I just observed that TARGET_FPU is not getting populated, when you do a build for fpu-hard targets. For fpu-soft targets, it displays TARGET_FPU = "soft", but for fpu-hard targets, it display TARGET_FPU = "". For example, for my tune-ppc440e.inc file DEFAULTTUNE ?= "ppc440e" require conf/machine/include/powerpc/arch-powerpc.inc TUNEVALID[ppc440e] = "Enable ppc440e specific processor optimizations" TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "ppc440e", "-mcpu=440fp", "", d)}" AVAILTUNES += "ppc440e" TUNE_FEATURES_tune-ppc440e = "m32 ppc440e fpu-hard" TUNE_PKGARCH_tune-ppc440e = "ppc440e" PACKAGE_EXTRA_ARCHS_tune-ppc440e = "${PACKAGE_EXTRA_ARCHS_tune-powerpc} ppc440e" # glibc configure options to get ppc440e specific library (for sqrt) GLIBC_EXTRA_OECONF += "${@bb.utils.contains("TUNE_FEATURES", "ppc440e", "-with-cpu=440fp", "", d)}" it is empty: uild Configuration: BB_VERSION = "1.15.3" TARGET_ARCH = "powerpc" TARGET_OS = "linux" MACHINE = "virtex5" DISTRO = "poky" DISTRO_VERSION = "1.2+snapshot-20120824" TUNE_FEATURES = "m32 ppc440e fpu-hard" TARGET_FPU = "" meta meta-yocto = "(nobranch):77192ec8ed3563920b969306aaa7609d05184255" toolchain-layer = "(nobranch):3fd2bf4c5e6c3a353aff9795294b7c25f5f50c49" meta-xilinx = "master-xilinx-ml507-gcc-4.5:18ab4890b00d12c58f750008688d2e97687e33da" Similarily, for my tune-ppc405e.inc file: DEFAULTTUNE ?= "ppc405e" require conf/machine/include/powerpc/arch-powerpc.inc TUNEVALID[ppc405e] = "Enable ppc405e specific processor optimizations" TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "ppc405e", "-mcpu=405fp", "", d)}" AVAILTUNES += "ppc405e" TUNE_FEATURES_tune-ppc405e = "m32 ppc405e fpu-hard" TUNE_PKGARCH_tune-ppc405e = "ppc405e" PACKAGE_EXTRA_ARCHS_tune-ppc405e = "${PACKAGE_EXTRA_ARCHS_tune-powerpc} ppc405e" # glibc configure options to get ppc405e specific library (for sqrt) GLIBC_EXTRA_OECONF += "${@bb.utils.contains("TUNE_FEATURES", "ppc405e", "-with-cpu=405fp", "", d)}" it is empty: Build Configuration: BB_VERSION = "1.15.3" TARGET_ARCH = "powerpc" TARGET_OS = "linux" MACHINE = "virtex5" DISTRO = "poky" DISTRO_VERSION = "1.2+snapshot-20120824" TUNE_FEATURES = "m32 ppc405e fpu-hard" TARGET_FPU = "" meta meta-yocto = "(nobranch):77192ec8ed3563920b969306aaa7609d05184255" toolchain-layer = "(nobranch):3fd2bf4c5e6c3a353aff9795294b7c25f5f50c49" meta-xilinx = "master-xilinx-ml507-gcc-4.5:18ab4890b00d12c58f750008688d2e97687e33da" The PowerPC405 and 440 processors are on a Xilinx Virtex-4 and Virtex-5 FGPA, and as such can be attached to a hardware floating point unit. There is a special gcc compiler option for this situation, which is -mxilinx-fpu Perform optimizations for the floating-point unit on Xilinx PPC 405/440. See RS/6000 and PowerPC Options - Using the GNU Compiler Collection (GCC) for more information. What should I do to get TARGET_FPU to fill correctly for hardware floating point units ? Best regards, Elvis Dowson |
|