cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Highlighted
Observer
Observer
4,822 Views
Registered: ‎07-30-2017

rom: requested regions overlap

Jump to solution

I am attempting to launch the pre-built PetaLinux image from the latest 2017.2 SDK/PetaLinux install.  I receive the following error when launching QEMU:

 

rom: requested regions overlap (rom phdr #1: /home/xilinx/XCU102/pre-built/linux/images/zynqmp_fsbl.elf. free=0x00000000fffffc40, addr=0x00000000fffe9e00)
/amba@0/zynqmp_sysmon_ps@0xFFA50800: Decode error: write to 114=3210
Xilinx Zynq MP First Stage Boot Loader
Release 2017.1 Apr 25 2017 - 04:04:04

 

Here is my QEMU command:

/opt/pkg/Xilinx/SDK/2017.2/bin/qemu-system-aarch64 \
-M arm-generic-fdt \
-device loader,addr=0xfd1a0104,data=0x8000000e,data-len=4 \
-nographic \
-serial mon:stdio -serial /dev/null \
-device loader,file=/home/xilinx/XCU102/pre-built/linux/images/zynqmp_fsbl.elf,cpu-num=0 \
-hw-dtb /home/xilinx/XCU102/pre-built/linux/images/zynqmp-qemu-arm.dtb

 

Suggestions? 

 

Thank you,

-Troy

Tags (1)
0 Kudos
1 Solution

Accepted Solutions
Highlighted
Observer
Observer
7,039 Views
Registered: ‎07-30-2017

The "rom: requested regions overlap" was not the "error" stopping my QEMU boot process.  I modified the ~<PetaLinux Project Folder>/components/plnx_workspace/fsbl/src/xfsbl_board.c source file and disabled the Xfsbl_BoardInit() per below:

 

/*****************************************************************************/
/**
* This function does board specific initialization.
* Currently this is done for ZCU102 board.
* If there isn't any board specific initialization required, it just returns.
*
* @param none
*
* @return
* - XFSBL_SUCCESS for successful configuration
* - errors as mentioned in xfsbl_error.h
*
*****************************************************************************/
u32 XFsbl_BoardInit(void)
{
u32 Status;
#ifdef XPS_BOARD_ZCU102
#undef XPS_BOARD_ZCU102
#endif
#if defined(XPS_BOARD_ZCU102) || defined(XPS_BOARD_ZCU106)
/* Program I2C to configure GT lanes */
Status = XFsbl_BoardConfig();
if (Status != XFSBL_SUCCESS) {
goto END;
}

XFsbl_UsbPhyReset();
#if defined(XPS_BOARD_ZCU102)
XFsbl_PcieReset();
#endif
#else
Status = XFSBL_SUCCESS;
goto END;
#endif

END:
return Status;
}

 

 

View solution in original post

0 Kudos
2 Replies
Highlighted
Observer
Observer
4,773 Views
Registered: ‎07-30-2017

For completeness, here is the SD card image I am trying to launch from:

 

boot.bif:

the_ROM_image:
{
[bootloader,destination_cpu=a53-0] /home/xilinx/XCU102/pre-built/linux/images/zynqmp_fsbl.elf
[destination_cpu=a53-0,exception_level=el-3, trustzone] /home/xilinx/XCU102/pre-built/linux/images/bl31.elf
[destination_cpu=a53-0,exception_level=el-2] /home/xilinx/XCU102/pre-built/linux/images/u-boot.elf
}

 

The bootgen command:

bootgen -image boot.bif -arch zynqmp -r -w -o i BOOT.bin
dd if=/dev/zero of=qemu_sd.img bs=256M count=1; sync
mkfs.vfat -F 32 qemu_sd.img
mcopy -i qemu_sd.img /home/xilinx/support/BOOT.bin ::/
mcopy -i qemu_sd.img /home/xilinx/XCU102/pre-built/linux/images/Image ::/
mcopy -i qemu_sd.img /home/xilinx/XCU102/pre-built/linux/images/system.dtb ::/

 

And the full QEMU command:

# Launch PMU
echo "Launching PMU on QEMU in background..."
qemu-system-microblazeel \
-M microblaze-fdt \
-display none \
-kernel /home/xilinx/XCU102/pre-built/linux/images/pmu_rom_qemu_sha3.elf \
-device loader,file=/home/xilinx/XCU102/pre-built/linux/images/pmufw.elf \
-hw-dtb /home/xilinx/XCU102/images/linux/zynqmp-qemu-multiarch-pmu.dtb \
-machine-path /home/xilinx/support/qemu-tmp \
-device loader,addr=0xfd1a0074,data=0x1011003,data-len=4 \
-device loader,addr=0xfd1a007C,data=0x1010f03,data-len=4 \
&

# create a new terminal for the APU
echo "Creating QEMU terminal and launching APU..."
gnome-terminal.real --geometry=80x25+800+200 -e "
qemu-system-aarch64 \
-M arm-generic-fdt \
-global xlnx,zynqmp-boot.cpu-num=0 \
-global xlnx,zynqmp-boot.use-pmufw=true \
-serial mon:stdio \
-serial /dev/null \
-display none \
-device loader,file=/home/xilinx/XCU102/pre-built/linux/images/zynqmp_fsbl.elf,cpu-num=0 \
-dtb /home/xilinx/XCU102/pre-built/linux/images/system.dtb \
-net nic -net nic -net nic -net nic,vlan=1 \
-net user,vlan=1,tftp=/tftpboot \
-hw-dtb /home/xilinx/XCU102/images/linux/zynqmp-qemu-multiarch-arm.dtb \
-machine-path /home/xilinx/support/qemu-tmp \
-drive file=/home/xilinx/support/qemu_sd.img,if=sd,format=raw,index=1 \
-boot mode=5 \
-m 4G \
"&

0 Kudos
Highlighted
Observer
Observer
7,040 Views
Registered: ‎07-30-2017

The "rom: requested regions overlap" was not the "error" stopping my QEMU boot process.  I modified the ~<PetaLinux Project Folder>/components/plnx_workspace/fsbl/src/xfsbl_board.c source file and disabled the Xfsbl_BoardInit() per below:

 

/*****************************************************************************/
/**
* This function does board specific initialization.
* Currently this is done for ZCU102 board.
* If there isn't any board specific initialization required, it just returns.
*
* @param none
*
* @return
* - XFSBL_SUCCESS for successful configuration
* - errors as mentioned in xfsbl_error.h
*
*****************************************************************************/
u32 XFsbl_BoardInit(void)
{
u32 Status;
#ifdef XPS_BOARD_ZCU102
#undef XPS_BOARD_ZCU102
#endif
#if defined(XPS_BOARD_ZCU102) || defined(XPS_BOARD_ZCU106)
/* Program I2C to configure GT lanes */
Status = XFsbl_BoardConfig();
if (Status != XFSBL_SUCCESS) {
goto END;
}

XFsbl_UsbPhyReset();
#if defined(XPS_BOARD_ZCU102)
XFsbl_PcieReset();
#endif
#else
Status = XFSBL_SUCCESS;
goto END;
#endif

END:
return Status;
}

 

 

View solution in original post

0 Kudos