Good day! I found out it is possible to have 64 MB SPI flash on DIP-8
boards such as AMD opensource AGESA ones (A88XM-E, AM1I-A, KGPE-D16, etc.)
: simply take a WSON8 chip such as W25Q512JVEIQ / W25Q512JVEIM and plug it
into WSON8-to-DIP8 adapter. It works with flashrom + USB CH341A adapter,
although it takes almost 10 minutes to read. So this setup is physically
possible, although a bit slow.

Some time ago while we've been discussing 64MB QEMU builds, Felix Held sent
me the following detailed reply:

> SPI NOR flash chips with more than 16MByte use 4 byte addresses while
ones with up to 16MBytes use 3 byte addresses. The SPI flash controllers on
older systems often only support the 3 byte address mode. Also typically
only up to 16 MBytes worth of SPI flash contents can be mapped right below
the 4GB boundary, since the 16MByte below that contain the MMIO of for
example LAPIC and IOAPIC.
> Had a quick look at the BKDG for family 16h model 30h, which is newer
than the chip used on G505S or A88XM-E, and it didn't have the registers in
the SPI controller that I'd expect to be present if it supports the 4 byte
address mode.

However, recently I discovered the following notes on flashrom mailing list
and got a bit confused:

> Large size flash chips support special instructions to use 4-bytes
addresses directly from 3-bytes addressing mode and without switching to
4-bytes mode.
> The W25Q256FV [a smaller sibling of W25Q512JV] is an example of a chip
which supports: - Native 4BA instructions - Extended address register: 3BA
commands used with a separate register to hold the most significant address
byte. - 4BA address mode: 3BA commands re-purposed to clock in 4 address
bytes instead of 3.

I just built an old 64MB coreboot for KGPE-D16 using almost the same config
as the 2MB one (I used the unofficial SeaBIOS advanced_bootmenu /
multiple_floppies patches from
https://review.coreboot.org/c/coreboot/+/32351 and filled the free CBFS
space with a lot of KolibriOS floppies that are the hardest to compress) .
But so far I have been waiting for 20 minutes (just in case it is as slow
as CH341A) and still no reaction from this coreboot board. However, a
coreboot of this board (provided by 15h.org community) is quite far from
coreboot master and doesn't have its later benefits - so these test results
are a bit inconclusive - and my A88XM-E board that has almost the latest
coreboot master thanks to restore_agesa.sh script (
https://review.coreboot.org/c/coreboot/+/79838) is hard to access at the
moment...

Please tell me, is there any modern coreboot's support for extended address
register - as a workaround to use >16MB chips in 3BA mode with the help of
such a register? If not - could it be added somehow, so that the older SPI
controllers capable of only 3BA still could access the chips which support
this helpful register?
-- 
Best regards, Mike Banon
Open Source Community Manager of 3mdeb - https://3mdeb.com/
_______________________________________________
coreboot mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to