[meta-xilinx] [PATCH 7/9] pmu-firmware: Port pmu-firmware recipe
Alejandro Enedino Hernandez Samaniego
alejandro.enedino.hernandez-samaniego at xilinx.com
Tue Dec 11 14:06:42 PST 2018
Hey Luca,
On 12/11/2018 08:33 AM, Luca Ceresoli wrote:
> Hi Manjukumar,
>
> On 11/12/18 17:21, Manjukumar Harthikote Matha wrote:
>> Hi Luca,
>>
>>> -----Original Message-----
>>> From: Luca Ceresoli [mailto:luca at lucaceresoli.net]
>>> Sent: Tuesday, December 11, 2018 8:15 AM
>>> To: Manjukumar Harthikote Matha <MANJUKUM at xilinx.com>; 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 Manjukumar,
>>>
>>> On 11/12/18 17:07, Manjukumar Harthikote Matha wrote:
>>>> 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/microblazee
>>>>> l-v9.2-bs-
>>>>> cmp-xilinx-elf/pmu-firmware/v2018.2+gitAUTOINC+0c6cd096c8-r0/recipe-s
>>>>> ysroot-
>>>>> native/usr/bin/microblazeel-xilinx-elf/../../libexec/microblazeel-xil
>>>>> inx-
>>>>> 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,--e
>>>>> nd-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/microblazee
>>>>> l-v9.2-bs-
>>>>> cmp-xilinx-elf/pmu-firmware/v2018.3+gitAUTOINC+56f3da2afb-r0/recipe-s
>>>>> ysroot-
>>>>> 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/microblazee
>>>>> l-v9.2-bs-
>>>>> cmp-xilinx-elf/pmu-firmware/v2018.3+gitAUTOINC+56f3da2afb-r0/recipe-s
>>>>> ysroot-
>>>>> native/usr/bin/microblazeel-xilinx-elf/../../libexec/microblazeel-xil
>>>>> inx-
>>>>> 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
>>> I'm not trying the multiconfig setup yet. I'm trying to set up the standalone layer as
>>> per its README.md and get a pmufw binary out of that.
>>>
>> This is not multiconfig, just regular build. Maybe GCCVERSION="7.%" is missing in your setup, we should add it to MACHINE and README as well
> Good catch! Adding GCCVERSION="7.%" to conf/local.conf pmu-firmware builds.
>
> Thanks for the very fast reply!
Setting the GCCVERSION is a temporary fix, until GCC 8 works properly on
microblaze, were just trying to get a little bit ahead, but yes, it is
necessary for now.
Alejandro
More information about the meta-xilinx
mailing list