Based on original work by Casey Leedom <leedom@chelsio.com>
Signed-off-by: Hariprasad Shenai <hariprasad@chelsio.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
        adap->params.sf_size = 1 << info;
        adap->params.sf_fw_start =
                t4_read_reg(adap, CIM_BOOT_CFG) & BOOTADDR_MASK;
+
+       if (adap->params.sf_size < FLASH_MIN_SIZE)
+               dev_warn(adap->pdev_dev, "WARNING!!! FLASH size %#x < %#x!!!\n",
+                        adap->params.sf_size, FLASH_MIN_SIZE);
        return 0;
 }
 
 
        FLASH_CFG_START = FLASH_START(FLASH_CFG_START_SEC),
        FLASH_CFG_MAX_SIZE = FLASH_MAX_SIZE(FLASH_CFG_NSECS),
 
+       /* We don't support FLASH devices which can't support the full
+        * standard set of sections which we need for normal
+        * operations.
+        */
+       FLASH_MIN_SIZE = FLASH_CFG_START + FLASH_CFG_MAX_SIZE,
+
        FLASH_FPGA_CFG_START_SEC = 15,
        FLASH_FPGA_CFG_START = FLASH_START(FLASH_FPGA_CFG_START_SEC),