diff --git a/cpu/ppc4xx/speed.c b/cpu/ppc4xx/speed.c
index be0de0c..0d6d88a 100644
--- a/cpu/ppc4xx/speed.c
+++ b/cpu/ppc4xx/speed.c
@@ -132,10 +132,10 @@
 			m = sysInfo->pllFbkDiv * sysInfo->pllFwdDivB * sysInfo->pllPlbDiv;
 		}
 
-		sysInfo->freqVCOMhz = (1000000 * m) / sysClkPeriodPs;
-		sysInfo->freqProcessor = (sysInfo->freqVCOMhz * 1000000) / sysInfo->pllFwdDiv;
-		sysInfo->freqPLB = (sysInfo->freqVCOMhz * 1000000) /
-			(sysInfo->pllFwdDivB * sysInfo->pllPlbDiv);
+		sysInfo->freqVCOHz = (1000000000000LL * (unsigned long long)m) /
+			(unsigned long long)sysClkPeriodPs;
+		sysInfo->freqProcessor = sysInfo->freqVCOHz / sysInfo->pllFwdDiv;
+		sysInfo->freqPLB = sysInfo->freqVCOHz / (sysInfo->pllFwdDivB * sysInfo->pllPlbDiv);
 	} else {
 		/*
 		 * Check pllFwdDiv to see if running in bypass mode where the CPU speed
@@ -148,26 +148,14 @@
 			sysInfo->freqProcessor = CONFIG_SYS_CLK_FREQ;
 			sysInfo->freqPLB = CONFIG_SYS_CLK_FREQ / sysInfo->pllPlbDiv;
 		} else {
-			sysInfo->freqVCOMhz = ( 1000000 *
-						sysInfo->pllFwdDiv *
-						sysInfo->pllFbkDiv *
-						sysInfo->pllPlbDiv
-				) / sysClkPeriodPs;
-			if (sysInfo->freqVCOMhz >= VCO_MIN
-			    && sysInfo->freqVCOMhz <= VCO_MAX) {
-				sysInfo->freqPLB = (ONE_BILLION /
-						    ((sysClkPeriodPs * 10) /
-						     sysInfo->pllFbkDiv)) * 10000;
-				sysInfo->freqProcessor = sysInfo->freqPLB * sysInfo->pllPlbDiv;
-			} else {
-				printf ("\nInvalid VCO frequency calculated :  %ld MHz \a\n",
-					sysInfo->freqVCOMhz);
-				printf ("It must be between %d-%d MHz \a\n",
-					VCO_MIN, VCO_MAX);
-				printf ("PLL Mode reg           :  %8.8lx\a\n",
-					pllmr);
-				hang ();
-			}
+			sysInfo->freqVCOHz = ( 1000000000000LL *
+					       (unsigned long long)sysInfo->pllFwdDiv *
+					       (unsigned long long)sysInfo->pllFbkDiv *
+					       (unsigned long long)sysInfo->pllPlbDiv
+				) / (unsigned long long)sysClkPeriodPs;
+			sysInfo->freqPLB = (ONE_BILLION / ((sysClkPeriodPs * 10) /
+							   sysInfo->pllFbkDiv)) * 10000;
+			sysInfo->freqProcessor = sysInfo->freqPLB * sysInfo->pllPlbDiv;
 		}
 	}
 }
@@ -376,7 +364,8 @@
 	/*
 	 * Determine VCO clock frequency
 	 */
-	sysInfo->freqVCOMhz = (1000000 * m) / sysClkPeriodPs;
+	sysInfo->freqVCOHz = (1000000000000LL * (unsigned long long)m) /
+		(unsigned long long)sysClkPeriodPs;
 
 	/*
 	 * Determine CPU clock frequency
@@ -398,15 +387,6 @@
 	 * Determine PLB clock frequency
 	 */
 	sysInfo->freqPLB = sysInfo->freqProcessor / sysInfo->pllPlbDiv;
-
-	if (!((sysInfo->freqVCOMhz >= VCO_MIN) && (sysInfo->freqVCOMhz <= VCO_MAX))) {
-		printf ("\nInvalid VCO frequency calculated :  %ld MHz \a\n",
-			sysInfo->freqVCOMhz);
-		printf ("It must be between %d-%d MHz \a\n", VCO_MIN, VCO_MAX);
-		printf ("PLL Mode reg 0           :  %8.8lx\a\n", pllmr0);
-		printf ("PLL Mode reg 1           :  %8.8lx\a\n", pllmr1);
-		hang ();
-	}
 }
 
 
