Hi:
I am trying to use jailhouse-master on Ultra96 board, but met the problem
as the title shows:
My environment is as follows:
1. *The kernel is 5.15_LTS* with the patches picked from
jailhouse-enabling/5.15, exporting __hyp_stub_vectors,
__get_vm_area_caller..;
2. the command line is "earlycon console=ttyPS0,115200 clk_ignore_unused
*mem=1536M* root=/dev/mmcblk0p2 rw rootwait cma=512M rfkill.default_state=0"
and the board has 2GB RAM;
*# cat /proc/iomem:*
*00000000-3ecfffff : System RAM 00210000-0157ffff : Kernel code
01580000-0179ffff : reserved 017a0000-0193ffff : Kernel data
1ec00000-3ebfffff : reserved3ed00000-3ee47fff : reserved3ee48000-5fffffff :
System RAM 5e100000-5fbfffff : reserved 5fc60000-5fc60fff : reserved
5fc61000-5fca8fff : reserved 5fcab000-5fcadfff : reserved
5fcae000-5fcbefff : reserved 5fcbf000-5fffffff : reserveda0030000-a003ffff
: a0030000.gpio gpio@a0030000a0040000-a004ffff : a0040000.gpio
gpio@a0040000a0050000-a005ffff : a0050000.gpio
gpio@a0050000a0061000-a006ffff : seriala0071000-a007ffff :
serialfd0b0000-fd0bffff : fd0b0000.perf-monitor
perf-monitor@fd0b0000fd3d0000-fd3d0fff : fd400000.phy sioufd400000-fd43ffff
: fd400000.phy serdesfd490000-fd49ffff : fd490000.perf-monitor
perf-monitor@fd490000fd4a0000-fd4a0fff : fd4a0000.display
dpfd4aa000-fd4aafff : fd4a0000.display blendfd4ab000-fd4abfff :
fd4a0000.display av_buffd4c0000-fd4c0fff : fd4c0000.dma-controller
dma-controller@fd4c0000fd4d0000-fd4d0fff : fd4d0000.watchdog
watchdog@fd4d0000fd500000-fd500fff : fd500000.dma-controller
dma-controller@fd500000fd510000-fd510fff : fd510000.dma-controller
dma-controller@fd510000fd520000-fd520fff : fd520000.dma-controller
dma-controller@fd520000fd530000-fd530fff : fd530000.dma-controller
dma-controller@fd530000fd540000-fd540fff : fd540000.dma-controller
dma-controller@fd540000fd550000-fd550fff : fd550000.dma-controller
dma-controller@fd550000fd560000-fd560fff : fd560000.dma-controller
dma-controller@fd560000fd570000-fd570fff : fd570000.dma-controller
dma-controller@fd570000fd6e9000-fd6edfff : fd6e9000.pmu
pmu@9000fe20c100-fe23ffff : fe200000.usb usb@fe200000fe300000-fe307fff :
usb@fe300000 fe300000-fe307fff : xhci-hcd.1.auto
usb@fe300000fe30c100-fe33ffff : fe300000.usb usb@fe300000ff000000-ff000fff
: xuartpsff010000-ff010fff : xuartpsff030000-ff030fff : ff030000.i2c
i2c@ff030000ff040000-ff040fff : ff040000.spi spi@ff040000ff050000-ff050fff
: ff050000.spi spi@ff050000ff0a0000-ff0a0fff : ff0a0000.gpio
gpio@ff0a0000ff150000-ff150fff : ff150000.watchdog
watchdog@ff150000ff160000-ff160fff : ff160000.mmc
mmc@ff160000ff170000-ff170fff : ff170000.mmc mmc@ff170000ff960000-ff960fff
: ff960000.memory-controller memory-controller@ff960000ff9d0000-ff9d00ff :
ff9d0000.usb0 usb0@ff9d0000ff9e0000-ff9e00ff : ff9e0000.usb1
usb1@ff9e0000ffa00000-ffa0ffff : ffa00000.perf-monitor
perf-monitor@ffa00000ffa10000-ffa1ffff : ffa10000.perf-monitor
perf-monitor@ffa10000ffa50000-ffa507ff : ffa50000.ams
ams-baseffa60000-ffa600ff : ffa60000.rtc rtc@ffa60000ffa80000-ffa80fff :
ffa80000.dma-controller dma-controller@ffa80000ffa90000-ffa90fff :
ffa90000.dma-controller dma-controller@ffa90000ffaa0000-ffaa0fff :
ffaa0000.dma-controller dma-controller@ffaa0000ffab0000-ffab0fff :
ffab0000.dma-controller dma-controller@ffab0000ffac0000-ffac0fff :
ffac0000.dma-controller dma-controller@ffac0000ffad0000-ffad0fff :
ffad0000.dma-controller dma-controller@ffad0000ffae0000-ffae0fff :
ffae0000.dma-controller dma-controller@ffae0000ffaf0000-ffaf0fff :
ffaf0000.dma-controller dma-controller@ffaf0000*
---
The issue:
*Everything seems OK until I tried to:*
*# jailhouse enable ultra96.cell;*
it fails with *"jailhouse: failed to add virtual host controller*";
I did some debug:
1. it fails in* of_property_read_u32(root, “#address-cells”...) *when
create_vpci_of_overlay(); though the previouse "of_find_node_by_path("/")"
successes.
I checked the address of this "root", it is expected;
even if I tried of_property_read_u32(of_root, "#address-cells"...), it
still fails;
2. I tried to dump the properity's name with the following kernel patch:
*diff --git a/drivers/of/base.c b/drivers/of/base.cindex
54719f8156ed..6dc7eb50bb11 100644--- a/drivers/of/base.c+++
b/drivers/of/base.c@@ -198,6 +198,8 @@ static struct property
*__of_find_property(const struct device_node *np, return
NULL; for (pp = np->properties; pp; pp = pp->next) {+
if ((np == of_root) && (strcmp(name, "#address-cells") == 0))+
pr_info("root node: name = %s\n", pp->name); if
(of_prop_cmp(pp->name, name) == 0) { if (lenp)
*lenp = pp->length;*
before executing "*on_each_cpu(enter_hypervisor, header, 0)*", it is OK;
* OF: root node: name = compatible OF: root node: name = #address-cells*
but with "on_each_cpu(entery_hypervisor, header, 0)", the log is as
following:
* OF: root node: name = OF: root node: name = *
* OF: root node: name = name*
Seems the propery name is “hidden” by something(?)
Could you please give me some advice on this?what should I check next?
Thank you very much
*---*
Yi Zhang
--
You received this message because you are subscribed to the Google Groups
"Jailhouse" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/jailhouse-dev/27761601-6415-47c2-b923-8d6844e21f3dn%40googlegroups.com.