So as far as my understanding, we provide these binaries using Qemu command
as depicted in the example you provided and there is no way I found to put
them into a single image.
Regarding the overlapping space, I don't have much idea but I think we
could provide a starting address separately to these images something like
addr=0x00100000.

So as per your suggestion, I compared my images and I found that the image
does not show a virtual disk, and other commands like mkdir, do not have
these binaries.
So these binaries are not included at the time of image creation and I
don't exactly know that how can we add these binaries into the QNX image.

The Image that is currently installed in real hardware does not have a
debugging symbol, so I can't use GDB  to debug that.
Now I am looking for a way to create the correct QNX OS image for Qemu.

Any lead in this regard will be really helpful :)


BR!
Faiq

On Thu, Feb 22, 2024 at 11:55 AM Alex Bennée <alex.ben...@linaro.org> wrote:

> Peter Maydell <peter.mayd...@linaro.org> writes:
>
> (adding the other ZyncMP maintainers to the CC)
>
> > On Wed, 21 Feb 2024 at 18:20, Faiq Ali Sayed <faiqueali....@gmail.com>
> wrote:
> >>
> >>
> >>>
> >>> This is also useful information. I would suggest you look
> >>> at what the difference is between the image that boots and
> >>> the one that doesn't: is it the same format (and what format
> >>> is that)? is the way it is loaded on the real hardware the
> >>> same, or different?
> >>
> >>
> >> I am not able to distinguish between the images as they are in binary
> form,
> >> I noticed that the smaller size image can boot in Qemu.
> >> I normally put the image into an SD card of the real hardware to boot.
> >> so it is quite difficult for me now to distinguish.
> >>
> >>
> >>> From the debug info from gdb you provided, the file clearly
> >>> is not a raw binary file -- the initial bytes seem to be
> >>> largely ASCII text. So it might be that this image is in
> >>> a file format that whatever the real-hardware loader
> >>> recognizes, but QEMU doesn't, whereas the images you have
> >>> that work are really raw binaries. In that case you'd want
> >>> to convert the image somehow to a format QEMU can understand
> >>> (eg ELF, or raw-binary).
> >>
> >>
> >> ahh, that also makes sense, ok now let me try to convert the images,
> and let's see.
> >> Does Qemu provide such a tool or do you know any?
> >
> > We don't know what format these images are in, so hard
> > to say, but I would expect not (mostly QEMU's image
> > conversion handling is for filesystems, not guest
> > binaries). You'll probably do best to look on the QNX
> > and/or Xilinx side -- Xilinx should document what
> > file formats it is that their boot process accepts.
> > Your third-party vendor presumably also knows what
> > format it is that they're generating the image in.
>
> I did have a brief look through the Xilinx wiki pages to see if I could
> cobble together a test case for their PetaLinux images. A bunch of pages
> led to login walls which I assume are customer only. I did find:
>
>
> https://github.com/Xilinx/soc-prebuilt-firmware/tree/xlnx_rel_v2023.1/zcu102-zynqmp
>
> which has a number of the components for the firmware but there was no
> clear way to combine them into a single image. I did try just feeding
> the ELF's to the command line but there was a clash between zynqmp_fsbl
> and the bl31 (which I think is the normal ATF image).
>
>   ./qemu-system-aarch64 -M xlnx-zcu102 -audio none -smp 4 -serial
> mon:stdio -display none -s -S -device
> loader,file=/home/alex/lsrc/tests/testcases/zcu102-zyncmp-prebuilds/zynqmp_fsbl.elf
> -device
> loader,file=/home/alex/lsrc/tests/testcases/zcu102-zyncmp-prebuilds/bl31.elf,cpu-num=0
> -device
> loader,file=/home/alex/lsrc/tests/testcases/zcu102-zyncmp-prebuilds/system.dtb,addr=0x00100000
> -device
> loader,file=/home/alex/lsrc/tests/testcases/zcu102-zyncmp-prebuilds/u-boot.elf
> -dtb /home/alex/lsrc/tests/testcases/zcu102-zyncmp-prebuilds/system.dtb
>   qemu-system-aarch64: Some ROM regions are overlapping
>   These ROM regions might have been loaded by direct user request or by
> default.
>   They could be BIOS/firmware images, a guest kernel, initrd or some other
> file loaded into guest memory.
>   Check whether you intended to load all this guest code, and whether it
> has been built to load to the correct addresses.
>
>   The following two regions overlap (in the cpu-memory-0 address space):
>
> /home/alex/lsrc/tests/testcases/zcu102-zyncmp-prebuilds/zynqmp_fsbl.elf ELF
> program header segment 0 (addresses 0x00000000fffc0000 - 0x00000000fffe6058)
>     /home/alex/lsrc/tests/testcases/zcu102-zyncmp-prebuilds/bl31.elf ELF
> program header segment 0 (addresses 0x00000000fffe0000 - 0x00000000ffffe000)
>
>   The following two regions overlap (in the cpu-memory-0 address space):
>     /home/alex/lsrc/tests/testcases/zcu102-zyncmp-prebuilds/bl31.elf ELF
> program header segment 0 (addresses 0x00000000fffe0000 - 0x00000000ffffe000)
>
> /home/alex/lsrc/tests/testcases/zcu102-zyncmp-prebuilds/zynqmp_fsbl.elf ELF
> program header segment 1 (addresses 0x00000000fffe9e00 - 0x00000000fffe9e88)
>
> Most of the use cases on the Xilinx pages are hidden behind their launch
> scripts for their downstream fork. It would be nice if we could get at
> least one image published somewhere that we could add an avocado test
> for and hopefully an entry in the Arm system emulator pages (we have
> fairly complete docs for xlnx-versal-virt).
>
> >
> > -- PMM
>
> --
> Alex Bennée
> Virtualisation Tech Lead @ Linaro
>


-- 
Kind Regard-
Faiq Ali Sayed

Reply via email to