> From: Andrew Grillet <and...@grillet.co.uk> > Date: Tue, 2 Nov 2021 14:14:13 +0000 > > These were attached to the email I sent last week - that is, the entire > contents of the directories in > which I defined the ldom.conf file and the results of compiling it. I have > attached the file again. > > In each case, this was on a fresh install of the OS, and with a fresh copy > of the factory-default config. > > >> > After this, my device tree is empty. > >> > >> I'm not sure what you mean by that. > >> You mean you end up in OBP but there are no devices you can boot from? > >> > Yes, this. > The PCI address appears to be wrong - it is @780, when it should be @7c0. > > If you have a tool to examine the binaries in the directory, I would like a > copy, and any documentation > of what the contents means.
There is sysutils/mdprint in ports. There is https://sun4v.github.io/downloads/hypervisor-api-3.0draft7.pdf in particular chaper 8. But the documentation is somewhat incomplete. Quickly scanning your files, I found one difference related to PCIe. Might be worth trying the attached diff. Index: usr.sbin/ldomctl/config.c =================================================================== RCS file: /cvs/src/usr.sbin/ldomctl/config.c,v retrieving revision 1.42 diff -u -p -r1.42 config.c --- usr.sbin/ldomctl/config.c 31 Jan 2021 05:14:24 -0000 1.42 +++ usr.sbin/ldomctl/config.c 2 Nov 2021 14:41:58 -0000 @@ -704,7 +704,8 @@ hvmd_init_device(struct md *md, struct m device = xzalloc(sizeof(*device)); md_get_prop_val(md, node, "gid", &device->gid); md_get_prop_val(md, node, "cfghandle", &device->cfghandle); - md_get_prop_val(md, node, "rcid", &device->rcid); + if (!md_get_prop_val(md, node, "rcid", &device->rcid)) + device->rcid = -1; device->resource_id = resource_id; if (strcmp(node->name->str, "pcie_bus") == 0) pcie_busses[resource_id] = device; @@ -1072,7 +1073,8 @@ hvmd_finalize_device(struct md *md, stru md_add_prop_val(md, node, "resource_id", device->resource_id); md_add_prop_val(md, node, "cfghandle", device->cfghandle); md_add_prop_val(md, node, "gid", device->gid); - md_add_prop_val(md, node, "rcid", device->rcid); + if (device->rcid != -1) + md_add_prop_val(md, node, "rcid", device->rcid); device->hv_node = node; }