On 13/02/18 13:13, John Paul Adrian Glaubitz wrote:
If you have patches ready that I can apply to the yaboot package, I am
to apply them and perform an NMU to fix the particular issue you have.
Gah - I've got it, and it's an OpenBIOS memory allocation bug so yaboot
isn't the culprit here.
Normally when allocating memory via the memory and MMU node methods,
OpenBIOS enforces minimum and maximum limits for allocating memory which
defaults to the VM ram size for physical memory and a per-arch upper
virtual memory limit. So any allocations requested outside these regions
should fail if requested by the client.
Unfortunately it so transpires that if you call the CIF claim service
with align set to zero as in this case, all these checks are by-passed
and OpenBIOS happily returns a non-existent mapping exactly the same as
that requested. Hence the top-down search algorithm in yaboot's
prom_claim_chunk_top() returns immediately with a non-existent physical
address for the mapping which explains why all the writes were failing.
I'll post a patch over to the OpenBIOS list in a bit, but just a
heads-up up that powerpc sid users will need to be running either a git
QEMU once the OpenBIOS changes have been merged or 2.12 when it is
released in a couple of months time.