From: Frederik van Hövell <[email protected]> The returned value for revision is interpreted as an unix epoch timestamp after year 2000 by EDK2 for RPi3/4 boards. EDK2 firmware uses the revision to show as human-readable 'year.month', and asserted to have year between 2000 and 2255 (both inclusive).
See [PlatformSmbiosDxe.c](https://github.com/tianocore/edk2-platforms/blob/master/Platform/RaspberryPi/Drivers/PlatformSmbiosDxe/PlatformSmbiosDxe.c#L763). Signed-off-by: Frederik van Hövell <[email protected]> --- hw/misc/bcm2835_property.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/hw/misc/bcm2835_property.c b/hw/misc/bcm2835_property.c index a90c7e6c863..a705e44b1fe 100644 --- a/hw/misc/bcm2835_property.c +++ b/hw/misc/bcm2835_property.c @@ -52,7 +52,8 @@ static void bcm2835_property_mbox_push(BCM2835PropertyState *s, uint32_t value) case RPI_FWREQ_PROPERTY_END: break; case RPI_FWREQ_GET_FIRMWARE_REVISION: - stl_le_phys(&s->dma_as, value + 12, 346337); + // Use timestamp of first released Raspberry Pi as minimum 'revision': 2012-02-29T00:00:00.000Z + stl_le_phys(&s->dma_as, value + 12, 1330473600); resplen = 4; break; case RPI_FWREQ_GET_BOARD_MODEL: -- 2.55.0
