Hi all,
First byte after IBM is usually a checksum. So in fact only two bytes differ. Now you may ask what it is... and it is a IOBASE :)
typedef struct _ATOM_ROM_HEADER { ATOM_COMMON_TABLE_HEADER sHeader; UCHAR> uaFirmWareSignature[4]; /*Signature to distinguish between Atombios and non-atombios,atombios should init it as "ATOM", don't change the position */ USHORT usBiosRuntimeSegmentAddress; USHORT usProtectedModeInfoOffset; USHORT usConfigFilenameOffset; USHORT usCRC_BlockOffset; USHORT usBIOS_BootupMessageOffset; USHORT usInt10Offset; USHORT usPciBusDevInitCode; USHORT usIoBaseAddress; <---------------this changes
I guess IOBASE of PCI device changes also...
USHORT usSubsystemVendorID; USHORT usSubsystemID; USHORT usPCI_InfoOffset;. USHORT usMasterCommandTableOffset; /*Offset for SW to get all command table offsets, Don't change the position */ USHORT usMasterDataTableOffset; /*Offset for SW to get all data table offsets, Don't change the position */ UCHAR ucExtendedFunctionCode; UCHAR ucReserved; }ATOM_ROM_HEADER;
You can use atomDis to dump it I guess (Did not check if it dumps also the header.
Thanks Rudolf