m1n1.hv: Remove __OS_LOG segments from coprocessors

These are supposed to be after the kernel, so we'd have to move them
for the guest to be able to access them. It seems things work if we just
delete those segments.

Signed-off-by: Asahi Lina <lina@asahilina.net>
This commit is contained in:
Asahi Lina 2023-04-14 23:25:11 +09:00 committed by Hector Martin
parent 22890f3ba1
commit 19e00f1f23

View file

@ -1687,6 +1687,18 @@ class HV(Reloadable):
self.adt["chosen"]["memory-map"].BootArgs = (guest_base + self.bootargs_off, bootargs_size)
if hasattr(self.u.adt["chosen"]["memory-map"], "preoslog"):
self.adt["chosen"]["memory-map"].preoslog = (guest_base + preoslog_off, preoslog_size)
if hasattr(self.u.adt["chosen"]["memory-map"], "Kernel_mach__header"):
self.adt["chosen"]["memory-map"].Kernel_mach__header = (guest_base, 0)
for name in ("mtp", "aop"):
if name in self.adt["/arm-io"]:
iop = self.adt[f"/arm-io/{name}"]
nub = self.adt[f"/arm-io/{name}/iop-{name}-nub"]
if iop.segment_names.endswith(";__OS_LOG"):
iop.segment_names = iop.segment_names[:-9]
nub.segment_names = nub.segment_names[:-9]
iop.segment_ranges = iop.segment_ranges[:-32]
nub.segment_ranges = nub.segment_ranges[:-32]
print(f"Setting up bootargs at 0x{guest_base + self.bootargs_off:x}...")