--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -777,6 +777,8 @@ void __init board_prom_init(void)
 	if (!memcmp(cfe, "cfe-v", 5))
 		snprintf(cfe_version, sizeof(cfe_version), "%u.%u.%u-%u.%u",
 			 cfe[5], cfe[6], cfe[7], cfe[8], cfe[9]);
+	else if (!memcmp(cfe, "cfe-", 4))
+		snprintf(cfe_version, 16, "%s", (char *) &cfe[4]);
 	else
 		strcpy(cfe_version, "unknown");
 	printk(KERN_INFO PFX "CFE version: %s\n", cfe_version);
--- a/drivers/mtd/bcm63xxpart.c
+++ b/drivers/mtd/bcm63xxpart.c
@@ -54,10 +54,10 @@ static int bcm63xx_detect_cfe(struct mtd
 	if (ret)
 		return ret;
 
-	if (strncmp("cfe-v", buf, 5) == 0)
+	if (strncmp("cfe-", buf, 4) == 0)
 		return 0;
 
-	/* very old CFE's do not have the cfe-v string, so check for magic */
+	/* very old CFE's do not have the cfe- string, so check for magic */
 	ret = mtd_read(master, BCM63XX_CFE_MAGIC_OFFSET, 8, &retlen,
 		       (void *)buf);
 	buf[retlen] = 0;
