From 7b4fd36b0322ec98836a8459d9be80e2777fdc05 Mon Sep 17 00:00:00 2001
From: Wolfgang Denk <wd@atlas.denx.de>
Date: Sat, 18 Mar 2006 23:31:12 +0100
Subject: [PATCH] Add support for MPC859/866 Rev. A.0

---
 cpu/mpc8xx/cpu.c | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/cpu/mpc8xx/cpu.c b/cpu/mpc8xx/cpu.c
index 4a32986a2e..c4a0cba13a 100644
--- a/cpu/mpc8xx/cpu.c
+++ b/cpu/mpc8xx/cpu.c
@@ -69,14 +69,15 @@ static int check_CPU (long clock, uint pvr, uint immr)
 
 	k = (immr << 16) | *((ushort *) & immap->im_cpm.cp_dparam[0xB0]);
 	m = 0;
+	suf = "";
 
 	/*
 	 * Some boards use sockets so different CPUs can be used.
 	 * We have to check chip version in run time.
 	 */
 	switch (k) {
-	case 0x00020001: pre = 'P'; suf = ""; break;
-	case 0x00030001: suf = ""; break;
+	case 0x00020001: pre = 'P'; break;
+	case 0x00030001: break;
 	case 0x00120003: suf = "A"; break;
 	case 0x00130003: suf = "A3"; break;
 
@@ -93,7 +94,11 @@ static int check_CPU (long clock, uint pvr, uint immr)
 		/* this value is not documented anywhere */
 	case 0x40000000: pre = 'P'; suf = "D"; m = 1; break;
 		/* MPC866P/MPC866T/MPC859T/MPC859DSL/MPC852T */
-	case 0x08000003: pre = 'M'; suf = ""; m = 1;
+	case 0x08010004:		/* Rev. A.0 */
+		suf = "A";
+		/* fall through */
+	case 0x08000003:		/* Rev. 0.3 */
+		pre = 'M'; m = 1;
 		if (id_str == NULL)
 			id_str =
 # if defined(CONFIG_MPC852T)
-- 
2.39.5