[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Kernel uses only half of Mac IIci memory with built-in video



On Thu, 18 Mar 2021, Finn Thain wrote:

> Am I right in thinking that Linux only crashes when Penguin loads the 
> kernel into Bank A (i.e. Penguin says "The kernel will be located at 
> physical 0x00001000") and the kernel then goes and drops that segment 
> (i.e. Linux says "Ignoring memory chunk at 0x0:0x1000000 before the 
> first chunk")?

After re-reading your message, I think I got that wrong -- you said that 
"Penguin-1.txt is with 80 MB (crashes)". So I don't have a good 
explanation for the v5.11 crash.

> 
> Thanks for collecting these logs. The Penguin logs show that rbv_boot is 
> false, indicating that the on-board video is not in use, as described.
> 
> So I think the important question is, why does Penguin fail to sort the 
> segments in this case? That is, why did Penguin produce this list:
> 
> Physical RAM: 80 MB
> ...
> BI_MEMCHUNK[0].addr   = 0x04000000
> BI_MEMCHUNK[0].size   = 0x04000000
> BI_MEMCHUNK[1].addr   = 0x00000000
> BI_MEMCHUNK[1].size   = 0x01000000
> 
> rather than a sorted list, something like the other example:
> 
> Physical RAM: 32 MB
> ...
> BI_MEMCHUNK[0].addr   = 0x00000000
> BI_MEMCHUNK[0].size   = 0x01000000
> BI_MEMCHUNK[1].addr   = 0x04000000
> BI_MEMCHUNK[1].size   = 0x01000000
> 

After looking at the Penguin source code, I understand how this happens. 
Penguin sorts the pysical memory chunks by size, not by address, except on 
68020, where it sorts by address.

If you move the 64 MB to bank A and the 16 MB to bank B, does that solve 
the problem? (Please also try v5.10 before you make that change.)

AIUI, Penguin needs a large physically contiguous region, so it used the 
largest pysical RAM chunk (which was bank B). But that alone doesn't 
really justify the weird sort order.

Laurent, can you comment on this? In particular, does EMILE sort memory 
chunks the way Penguin does?


Reply to: