Merge pull request #155 from athoelke/at/support-foundation-v2.1

Support later revisions of the Foundation FVP
diff --git a/plat/fvp/aarch64/fvp_common.c b/plat/fvp/aarch64/fvp_common.c
index 580c793..ec81d5b 100644
--- a/plat/fvp/aarch64/fvp_common.c
+++ b/plat/fvp/aarch64/fvp_common.c
@@ -131,8 +131,10 @@
 	bld = (sys_id >> SYS_ID_BLD_SHIFT) & SYS_ID_BLD_MASK;
 	arch = (sys_id >> SYS_ID_ARCH_SHIFT) & SYS_ID_ARCH_MASK;
 
-	if ((rev != REV_FVP) || (arch != ARCH_MODEL))
+	if (arch != ARCH_MODEL) {
+		ERROR("This firmware is for FVP models\n");
 		panic();
+	}
 
 	/*
 	 * The build field in the SYS_ID tells which variant of the GIC
@@ -152,7 +154,8 @@
 		fvp_config[CONFIG_GICV_ADDR] = BASE_GICV_BASE;
 		break;
 	default:
-		assert(0);
+		ERROR("Unsupported board build %x\n", bld);
+		panic();
 	}
 
 	/*
@@ -167,6 +170,19 @@
 		fvp_config[CONFIG_BASE_MMAP] = 0;
 		fvp_config[CONFIG_HAS_CCI] = 0;
 		fvp_config[CONFIG_HAS_TZC] = 0;
+
+		/*
+		 * Check for supported revisions of Foundation FVP
+		 * Allow future revisions to run but emit warning diagnostic
+		 */
+		switch (rev) {
+		case REV_FOUNDATION_V2_0:
+		case REV_FOUNDATION_V2_1:
+			break;
+		default:
+			WARN("Unrecognized Foundation FVP revision %x\n", rev);
+			break;
+		}
 		break;
 	case HBI_FVP_BASE:
 		midr_pn = (read_midr() >> MIDR_PN_SHIFT) & MIDR_PN_MASK;
@@ -180,9 +196,22 @@
 		fvp_config[CONFIG_BASE_MMAP] = 1;
 		fvp_config[CONFIG_HAS_CCI] = 1;
 		fvp_config[CONFIG_HAS_TZC] = 1;
+
+		/*
+		 * Check for supported revisions
+		 * Allow future revisions to run but emit warning diagnostic
+		 */
+		switch (rev) {
+		case REV_FVP_BASE_V0:
+			break;
+		default:
+			WARN("Unrecognized Base FVP revision %x\n", rev);
+			break;
+		}
 		break;
 	default:
-		assert(0);
+		ERROR("Unsupported board HBI number 0x%x\n", hbi);
+		panic();
 	}
 
 	return 0;
diff --git a/plat/fvp/fvp_def.h b/plat/fvp/fvp_def.h
index 59dcc90..19422fd 100644
--- a/plat/fvp/fvp_def.h
+++ b/plat/fvp/fvp_def.h
@@ -1,4 +1,4 @@
-/*
+#/*
  * Copyright (c) 2014, ARM Limited and Contributors. All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -151,9 +151,12 @@
 
 #define SYS_ID_BLD_LENGTH	4
 
-#define REV_FVP		0x0
 #define HBI_FVP_BASE		0x020
+#define REV_FVP_BASE_V0		0x0
+
 #define HBI_FOUNDATION		0x010
+#define REV_FOUNDATION_V2_0	0x0
+#define REV_FOUNDATION_V2_1	0x1
 
 #define BLD_GIC_VE_MMAP	0x0
 #define BLD_GIC_A53A57_MMAP	0x1