More than 1GB RAM with pegasos2
Thanks for the report and analysis. I knew about the problem but considered only for AmigaOS because booting without firmware using -kernel boot.img which is the preferred way as the firmware is non-free and boots slower anyway, this isn't a problem and MorphOS booted with -kernel already for a while. (Now also AmigaOS can be booted with -kernel using BBoot in another subproject from the front page). QEMU is currnetly in freeze for 8.1 release but once development is open again I can send a patch upstream with tis. I'll probably make it conditional just to avoid additional delay with reading an additional EEPROM unless it's needed. Or I may want to restore the ability od spd_data_generate() to better support splitting RAM into SIMM size pieces so the differnte SIMMs don't need to be half of RAM that I orginally had but was lost in simplification in the meantime.
I did not understand the comment about the malta fix causing two banks to be added. Is that a problem with this patch or removing that would also fix this or how does that relate to the issue?
Regarding the malta fix creating two banks, I was attempting to explain that I believe it's the only reason 1GB works right now. Without the split into 2 banks you end up with 1 bank with a density of 1GB. In that case it throws the same error as if you were trying to use 2 banks each with 1GB density. With the split you end up with two banks with 512MB so the firmware is happy.
Apologies if you already know the issue here, but wanted to share in case it reveals anything new.
A newer firmware is available at https://morph.zone/modules/newbb_plus/viewtopic.php?forum=53&topic_id=13586&post_id=156631&viewmode=flat&sortorder=0&showonepost=1
With this firmware, when increasing the RAM to 2GB it complains about the density value. I could not for the life of me get it to work mucking with the eeprom values. And as far as I can see from https://www.rom.by/files/4_01_02_04R13.PDF / https://en.wikipedia.org/wiki/Serial_presence_detect the value is correct. bit 0 of byte 31 should be set to 1 and as far as I can tell it is. I also see conversations where people are discussing a single 2gb kingston dimm that works with their systems, so it would seems to me either 1 or 2 gb bank density would be required depending on the number of banks.
Interestingly this happens if I comment out this malta bug workaround such that there's just 1 bank even with 1GB. https://gitlab.com/qemu-project/qemu/-/blob/master/hw/i2c/smbus_eeprom.c#L237-241
Using two dimms does work. I don't know if conditionally doing something like if 2gb is specified; as far as I can tell the only value permitted over 1gb.