Hi Team

I am trying to bring-up Zephyr as a domU guest with Linux as dom0. My
devkit has an ARM-A55 core and currently, Xen support in Zephyr (
https://github.com/zephyrproject-rtos/zephyr) is limited with only timer
and GIC virtualized with support to a HVC console.

I am trying to add more device support for Xen in Zephyr. So, I started
with enabling QSPI node in passthrough mode as I believe it is the simplest
way of quickly starting things as I am also new to Xen.

*Code/configuration changes done:*

   1. Disabled QSPI node in Linux (dom0) and enabled it in xen, passthrough
   mode

status = "disabled";
> xen,passthrough;
>

        2. Enabled QSPI node in Zephyr dts
        3. Created partial dts file which is used to create a dtb file to
pass in Zephyr's Xen configuration file (more information of Xen support in
Zephyr can be found here:
https://docs.zephyrproject.org/latest/boards/xen/xenvm/doc/index.html)


But I am running into issues where, during the first boot of Zephyr as domU
guest, I am able to read and write to the QSPI device but the first byte of
every page isn't written for some reason. Strangely, after I destroy the
Zephyr guest and create a new VM with the same config, binary and dtb, I am
unable to write any bytes; there are no errors printed on the HVC console
from Zephyr.

Note that the QSPI driver is working flawlessly in a standalone non-virtualized
Zephyr environment. Also, at the beginning of QSPI driver boot in Zephyr,
we query the size of the QSPI flash device by communicating with it, during
every boot this query is printing correct size; so the QSPI communication
seems to work but apparently anything to do with data transfers is failing.

Can someone help with the above issue, am I missing something obvious?

Thanks
Naresh

Reply via email to