[meta-xilinx] [PATCH 7/9] pmu-firmware: Port pmu-firmware recipe
Manjukumar Harthikote Matha
MANJUKUM at xilinx.com
Tue Dec 11 08:07:02 PST 2018
Hi Luca,
> -----Original Message-----
> From: meta-xilinx-bounces at yoctoproject.org [mailto:meta-xilinx-
> bounces at yoctoproject.org] On Behalf Of Luca Ceresoli
> Sent: Tuesday, December 11, 2018 7:45 AM
> To: Alejandro Enedino Hernandez Samaniego <alejandr at xilinx.com>; meta-
> xilinx at yoctoproject.org
> Subject: Re: [meta-xilinx] [PATCH 7/9] pmu-firmware: Port pmu-firmware recipe
>
> Hi Alejandro,
>
> On 06/12/18 22:56, Alejandro Enedino Hernandez Samaniego wrote:
> > This patch ports the pmu-firmware recipe from meta-xilinx-bsp to be
> > used with the standalone/baremetal toolchain and also upgrades it to
> > the latest release at this point.
> >
> > The recipe was trimmed down, and a few changes had to be made to make
> > it compatible with the baremetal layer, DEPENDS, pass include dir,
> > license and such.
> >
> > Signed-off-by: Alejandro Enedino Hernandez Samaniego
> > <alejandr at xilinx.com>
> > Signed-off-by: Manjukumar Matha
> > <manjukumar.harthikote-matha at xilinx.com>
>
> I tried to test your entire patch series but with bad luck. Well, indeed I tested the
> patches from the github meta-xilinx repo up to [0], not sure whether the repo is
> more up to date than the patches here.
>
> The first issue is that xilinx-standalone is compatible with thud, but on the mentioned
> commit (as well as on master) the mete-xilinx-bsp layer is compatible with sumo
> only. I solved by cherry-picking [1].
>
> Then I followed the instructions in README.md and 'bitbake newlib' ran successfully.
> But 'bitbake pmu-firmware' gives:
>
> microblazeel-xilinx-elf-gcc -mlittle-endian -mxl-barrel-shift -mxl-pattern-compare -
> mno-xl-reorder -mcpu=v9.2 -mxl-soft-mul -mxl-soft-div --
> sysroot=/home/ceresoli/temp/prova-thud-
> xilinx/poky/build/tmp/work/microblazeel-v9.2-bs-cmp-xilinx-elf/pmu-
> firmware/v2018.2+gitAUTOINC+0c6cd096c8-r0/recipe-sysroot
> -o executable.elf pm_master.o pm_api.o xpfw_error_manager.o xpfw_restart.o
> pm_config.o xpfw_mod_legacy.o pm_requirement.o pm_node_reset.o pm_core.o
> pm_system.o pm_common.o xpfw_xpu.o pm_gic_proxy.o xpfw_aib.o
> xpfw_events.o pm_binding.o pm_mmio_access.o xpfw_scheduler.o pm_slave.o
> xpfw_mod_pm.o pm_ddr.o pm_qspi.o pm_sram.o xpfw_mod_sched.o
> xpfw_mod_rtc.o pm_usb.o pm_extern.o xpfw_user_startup.o
> xpfw_rom_interface.o xpfw_mod_wdt.o pm_proc.o pm_reset.o pm_callbacks.o
> xpfw_mod_stl.o idle_hooks.o xpfw_crc.o xpfw_ipi_manager.o xpfw_interrupts.o
> xpfw_mod_dap.o xpfw_platform.o pm_node.o xpfw_core.o xpfw_resets.o
> xpfw_module.o pm_periph.o xpfw_util.o xpfw_main.o pm_hooks.o pm_gpp.o
> pm_power.o xpfw_mod_em.o pm_pll.o pm_clock.o pm_notifier.o xpfw_start.o -
> MMD -MP -Wl,--build-id=none -I/home/ceresoli/temp/prova-thud-
> xilinx/poky/build/tmp/work/microblazeel-v9.2-bs-cmp-xilinx-elf/pmu-
> firmware/v2018.2+gitAUTOINC+0c6cd096c8-r0/recipe-sysroot/usr/include
> -Os -Wl,--start-group,-lxil,-lgcc,-lc,--end-group
> -Wl,--start-group,-lxilfpga,-lxilsecure,-lxil,-lgcc,-lc,--end-group
> -nostartfiles -Wl,--gc-sections -L../misc/zynqmp_pmufw_bsp/psu_pmu_0/lib
> -Tlscript.ld
> lto1: fatal error: multiple prevailing defs for 'XUsbPsu_DisableIntr'
> compilation terminated.
> lto-wrapper: fatal error: microblazeel-xilinx-elf-gcc returned 1 exit status
> compilation terminated.
> /home/ceresoli/temp/prova-thud-xilinx/poky/build/tmp/work/microblazeel-v9.2-bs-
> cmp-xilinx-elf/pmu-firmware/v2018.2+gitAUTOINC+0c6cd096c8-r0/recipe-sysroot-
> native/usr/bin/microblazeel-xilinx-elf/../../libexec/microblazeel-xilinx-
> elf/gcc/microblazeel-xilinx-elf/8.2.0/ld:
> error: lto-wrapper failed
> collect2: error: ld returned 1 exit status
> Makefile:28: recipe for target 'executable.elf' failed
> make: *** [executable.elf] Error 1
>
> I then tried with current master-next [2] and got:
>
> microblazeel-xilinx-elf-gcc -mlittle-endian -mxl-barrel-shift -mxl-pattern-compare -
> mno-xl-reorder -mcpu=v9.2 -mxl-soft-mul -mxl-soft-div --
> sysroot=/home/ceresoli/temp/prova-thud-
> xilinx/poky/build/tmp/work/microblazeel-v9.2-bs-cmp-xilinx-elf/pmu-
> firmware/v2018.3+gitAUTOINC+56f3da2afb-r0/recipe-sysroot
> -o executable.elf pm_master.o xpfw_error_manager.o xpfw_restart.o
> pm_notifier.o xpfw_mod_legacy.o pm_requirement.o pm_node_reset.o
> pm_core.o pm_system.o pm_config.o xpfw_xpu.o pm_gic_proxy.o xpfw_aib.o
> xpfw_events.o pm_binding.o pm_mmio_access.o xpfw_scheduler.o pm_slave.o
> pm_pinctrl.o xpfw_mod_pm.o pm_ddr.o pm_qspi.o pm_sram.o
> xpfw_mod_sched.o xpfw_mod_rtc.o pm_usb.o pm_extern.o xpfw_user_startup.o
> xpfw_rom_interface.o xpfw_mod_wdt.o pm_proc.o pm_reset.o pm_callbacks.o
> xpfw_mod_stl.o idle_hooks.o xpfw_crc.o xpfw_ipi_manager.o xpfw_interrupts.o
> xpfw_mod_dap.o xpfw_platform.o pm_node.o xpfw_core.o xpfw_resets.o
> xpfw_module.o pm_periph.o xpfw_util.o xpfw_main.o pm_hooks.o pm_gpp.o
> pm_power.o xpfw_mod_em.o pm_pll.o pm_clock.o xpfw_start.o -MMD -MP -
> Wl,--build-id=none -I/home/ceresoli/temp/prova-thud-
> xilinx/poky/build/tmp/work/microblazeel-v9.2-bs-cmp-xilinx-elf/pmu-
> firmware/v2018.3+gitAUTOINC+56f3da2afb-r0/recipe-sysroot/usr/include
> -Os -Wl,--start-group,-lxil,-lgcc,-lc,--end-group
> -Wl,--start-group,-lxilfpga,-lxilsecure,-lxilskey,-lxil,-lgcc,-lc,--end-group
> -nostartfiles -Wl,--gc-sections -L../misc/zynqmp_pmufw_bsp/psu_pmu_0/lib
> -Tlscript.ld
> /home/ceresoli/temp/prova-thud-xilinx/poky/build/tmp/work/microblazeel-v9.2-bs-
> cmp-xilinx-elf/pmu-firmware/v2018.3+gitAUTOINC+56f3da2afb-r0/recipe-sysroot-
> native/usr/bin/microblazeel-xilinx-elf/../../lib/microblazeel-xilinx-
> elf/gcc/../../../libexec/microblazeel-xilinx-elf/gcc/microblazeel-xilinx-elf/8.2.0/ld:
> cannot open linker script file xilinx.ld: No such file or directory
> collect2: error: ld returned 1 exit status
> lto-wrapper: fatal error: microblazeel-xilinx-elf-gcc returned 1 exit status
> compilation terminated.
> /home/ceresoli/temp/prova-thud-xilinx/poky/build/tmp/work/microblazeel-v9.2-bs-
> cmp-xilinx-elf/pmu-firmware/v2018.3+gitAUTOINC+56f3da2afb-r0/recipe-sysroot-
> native/usr/bin/microblazeel-xilinx-elf/../../libexec/microblazeel-xilinx-
> elf/gcc/microblazeel-xilinx-elf/8.2.0/ld:
> error: lto-wrapper failed
> collect2: error: ld returned 1 exit status
> Makefile:28: recipe for target 'executable.elf' failed
>
> Am I doing something wrong?
I tried replicating the issue but I am unable to do so.
Do you have pmu-firmware in a different tmp work directory?
I have the following in my local.conf
MACHINE="zynqmp-pmu"
DISTRO="xilinx-standalone"
GCCVERSION="7.%"
TMPDIR="${TOPDIR}/pmutmp"
And run as bitbake pmu-firmware
>
> > diff --git
> > a/meta-xilinx-standalone/recipes-standalone/pmu-firmware/pmu-firmware_
> > 2018.2.bb
> > b/meta-xilinx-standalone/recipes-standalone/pmu-firmware/pmu-firmware_
> > 2018.2.bb
> > new file mode 100644
> > index 0000000..1a447e2
> > --- /dev/null
> > +++ b/meta-xilinx-standalone/recipes-standalone/pmu-firmware/pmu-firmw
> > +++ are_2018.2.bb
> > @@ -0,0 +1,80 @@
> > +inherit deploy
> > +
> > +LICENSE = "Proprietary"
> > +LIC_FILES_CHKSUM =
> "file://../../../../license.txt;md5=2a8d7a7f870f65ce77e8ccd8150cce10"
> > +
> > +XILINX_RELEASE_VERSION = "v2018.2"
> > +SRCREV = "0c6cd096c8f81978854c782c7aa175241fc3af20"
> > +PV = "${XILINX_RELEASE_VERSION}+git${SRCPV}"
> > +
> > +SRC_URI = "git://github.com/Xilinx/embeddedsw.git;protocol=https;nobranch=1"
> > +
> > +COMPATIBLE_HOST = "microblaze.*-elf"
> > +COMPATIBLE_MACHINE = "^$"
> > +COMPATIBLE_MACHINE_zynqmp-pmu = "zynqmp-pmu"
> > +
> > +
> > +S = "${WORKDIR}/git/lib/sw_apps/zynqmp_pmufw/src"
> > +
> > +# The makefile does not handle parallelization PARALLEL_MAKE = ""
> > +
> > +do_configure() {
> > + # manually do the copy_bsp step first, so as to be able to fix up use of
> > + # mb-* commands
> > + ${S}/../misc/copy_bsp.sh
> > +}
> > +
> > +COMPILER = "${CC}"
> > +COMPILER_FLAGS = "-O2 -c"
> > +EXTRA_COMPILER_FLAGS = "-g -Wall -Wextra -Os -flto -ffat-lto-objects"
> > +ARCHIVER = "${AR}"
> > +
> > +
> > +# HACK: fix the dirty bug where xilsecure wants to call this
> > +PSVersion # function, which is not implemented for microblaze. The
> > +symbols never make it # into the final elf as the xilsecure function
> > +that uses it is not called in # pmufw.
> > +
> > +# Also add recipe-sysroot include
> > +EXTRA_COMPILER_FLAGS_append = " -DXGetPSVersion_Info=atexit -
> I${STAGING_DIR_TARGET}/usr/include"
>
> There's a later commit on master-next that bumps to 2018.3 and removes this hack.
> Why not just adding 2018.3 directly, without any hacks?
>
>
Ok that makes sense, we will merge it
<...>
Thanks,
Manju
More information about the meta-xilinx
mailing list