diff --git a/Tools/px_uploader.py b/Tools/px_uploader.py index a8f0b7ed44..1154506a11 100755 --- a/Tools/px_uploader.py +++ b/Tools/px_uploader.py @@ -488,9 +488,18 @@ class uploader(object): print("FORCED WRITE, FLASHING ANYWAY!") else: raise IOError(msg) + + # Prevent uploads where the image would overflow the flash if self.fw_maxsize < fw.property('image_size'): raise RuntimeError("Firmware image is too large for this board") + # Prevent uploads where the maximum image size of the board config is smaller than the flash + # of the board. This is a hint the user chose the wrong config and will lack features + # for this particular board. + if self.fw_maxsize > fw.property('image_maxsize'): + raise RuntimeError("Board can accept larger flash images (%u bytes) than board config (%u bytes). Please use the correct board configuration to avoid lacking critical functionality." + % (self.fw_maxsize, fw.property('image_maxsize'))) + # OTP added in v4: if self.bl_rev > 3: for byte in range(0, 32*6, 4):