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 happy
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.



Reply via email to