AMD’s decision to drop 4th Gen Ryzen support from the older B450 and X470 motherboards has drawn a lot of criticism from fans and enthusiasts alike. We’ve already covered the business side of this and today we have a better idea about the technical side of the story (thanks to Gamersnexus).
AMD’s 1st and 2nd Gen Ryzen CPUs Can Only Address 16MB BIOS ROMs
The crux of the story is that AMD’s older 1st and 2nd Gen Ryzen CPUs can only address 16MB BIOS ROMs while the 3rd Gen and the upcoming 4th Gen “Vermeer” processors work with 32MB BIOS ROMs as well. The BIOS ROMs contain all the data required by the motherboard at the time of booting. This includes the BIOS interface (UEFI), microcode (AGESA), compatibility data, default settings, and all the other data required to initialize the system startup before the OS kernel takes over.
Now, the 3rd Gen Matisse chips retained compatibility with the older B450 motherboards by using a workaround. As already mentioned above, the 1st and 2nd Gen Ryzen CPUs can only address 16MB BIOS ROMs. They simply aren’t compatible with 32MB ROMs. The 3rd Gen Ryzen parts, however, do support 32MB BIOS ROMs, and the same goes true for the 4th Gen Vermeer chips. OEMs overcame this hurdle by partitioning the ROM into two 16MB chunks allowing both the older as well as the newer Ryzen CPUs to run with the same chipset.
However, back when Matisse launched, there were only 2 prior generations. By the time Vermeer lands, there will be three generations of Ryzen processors plus two APU generations under the Zen family.
It won’t be possible to retain compatibility for all six lineups in the older 16MB BIOS ROMs. Motherboard makers will need to cut down either certain CPU lineups or some chipset features. The later includes downgrading from 3D UIs to bare-bore 2D ones, remove support for advanced I/O or limit fan control and addressable RGB headers.
One of the reasons why the X570 boards have advanced I/O and a larger feature set is cos they have 32MB BIOS ROMs (again partitioned into two 16MB chunks to support 2nd Gen). The older B450 and X470 motherboards, on the other hand, are mostly very limited in terms of the I/O and other BIOS level features. There are some 400 series boards, especially X470 offerings that from the beginning included a partitioned 32MB ROM which is why they were able to get most of the features of the X570 platform with minimal effort (in most cases a BIOS update).
In essence, partitioning the BIOS ROM can technically allow the motherboard to support all three (or four) generations of CPUs but you’ll lose some of the advanced features of the new chipset. The first 16MB partition will be used to store the data related to Matisse and Vermeer (3rd and 4th Gen Ryzen) while the second one will hold compatibility data for the older generations. In normal scenarios, the latter would be used for I/O, fan-control, UI or other addressable functions that can be controlled from the BIOS.
However, in this case, it’d hold data pertaining to the older Ryzen lineups, and microcode required to allow the motherboard to support the older processors. So, it’s either a better feature-set or flexible compatibility.
Of course, many users will just suggest going with the latter, but AMD needs to maintain some uniformity here. As more and more OEMs adopt AMD hardware, the feature-set and CPU support should be universal across all manufacturers. Otherwise, it can cause significant confusion amongst the mainstream audience, who might buy a system only to find out that it lacks certain features shown in a review because it’s of a different branding or a newer model. The feature set and the compatibility for a particular chipset both need to stay the same across different variants and OEM offerings.