Hi Michal,
> On 9 Jun 2022, at 10:57, Michal Orzel via lists.yoctoproject.org
> <[email protected]> wrote:
>
> This reverts commit fb0a7b97db4f419b82309f98a4944ae3330d1e2e.
>
> Justification:
> Commit fb0a7b97db4f removed the PCI node from the qemu device tree
> due to the issue when trying to access PCI configuration space that
> was causing Linux running on top of Xen to end up in an infinite loop.
> The investigation showed that the problem occurs due to qemu placing
> ECAM space at 256GiB mark. Even though Xen officially supports on arm32
> up to 12GiB of physical address space, it is able to map it correctly
> for dom0. However, when Linux tries to access the ECAM space and the
> stage2 translation fault occurs, HPFAR register contains incorrect IPA.
> We can say it is incorrect because using hardware AT instruction or
> software lookup, we can obtain the correct IPA from the same VA. This
> can suggest that the problem is related to QEMU fault handling.
>
> Instead of removing the PCI node the follow-up commit will disable
> highmem option in qemu which will cause placing ECAM space in the
> 32-bit space.
>
> Signed-off-by: Michal Orzel <[email protected]>
Reviewed-by: Bertrand Marquis <[email protected]>
Also tested on kirkstone and dom0 boots fine and pci is working.
Thanks a lot
Cheers
Bertrand
> ---
> classes/qemuboot-xen-dtb.bbclass | 22 ----------------------
> 1 file changed, 22 deletions(-)
>
> diff --git a/classes/qemuboot-xen-dtb.bbclass
> b/classes/qemuboot-xen-dtb.bbclass
> index 1f17a86..d43d23a 100644
> --- a/classes/qemuboot-xen-dtb.bbclass
> +++ b/classes/qemuboot-xen-dtb.bbclass
> @@ -63,21 +63,6 @@ write_lops_xen_section() {
> EOF
> }
>
> -write_lop_rm_pci() {
> - cat <<EOF >"$1"
> -/dts-v1/;
> -/ {
> - compatible = "system-device-tree-v1";
> - lops {
> - lop_1 {
> - compatible = "system-device-tree-v1,lop,modify";
> - modify = "/pcie@10000000::";
> - };
> - };
> -};
> -EOF
> -}
> -
> write_lop_add_to_xen_cmdline() {
> EXTRA_XEN_BOOTARGS="$2"
> cat <<EOF >"$1"
> @@ -150,13 +135,6 @@ generate_xen_qemuboot_dtb() {
> write_lop_add_to_xen_cmdline "${B}/lop-xen-cmdline.dts" \
> "${QB_XEN_CMDLINE_EXTRA}"
>
> - # On Qemu Arm32, Dom0 accessing PCI config space ends up in an
> - # infinite loop. Remove pci node from the device tree
> - if [ "${MACHINE}" = "qemuarm" ]; then
> - write_lop_rm_pci "${B}/lop-rm-pci.dts"
> - LOP_MODULE_ARGS="${LOP_MODULE_ARGS} -i ${B}/lop-rm-pci.dts"
> - fi
> -
> if [ -z "${QB_XEN_DOMAIN_MODULES}" ]; then
> bbwarn "No domain modules: please set QB_XEN_DOMAIN_MODULES"
> fi
> --
> 2.25.1
>
>
>
>
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#7353):
https://lists.yoctoproject.org/g/meta-virtualization/message/7353
Mute This Topic: https://lists.yoctoproject.org/mt/91642063/21656
Group Owner: [email protected]
Unsubscribe: https://lists.yoctoproject.org/g/meta-virtualization/unsub
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-