* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
+#include <delay.h>
+#include <stdint.h>
#include <cpu/x86/tsc.h>
#include <cpu/x86/msr.h>
* Intel Core(tm) cpus always run the TSC at the maximum possible CPU clock
*/
-static void udelay(u32 us)
+void udelay(u32 us)
{
u32 dword;
tsc_t tsc, tsc1, tscd;
case 3:
fsb = 667;
break;
+ case 2:
+ fsb = 800;
+ break;
+ case 0:
+ fsb = 1067;
+ break;
+ case 4:
+ fsb = 1333;
+ break;
+ case 6:
+ fsb = 1600;
+ break;
}
msr = rdmsr(0x198);
do {
tsc = rdtsc();
- } while ((tsc.hi > tsc1.hi)
- || ((tsc.hi == tsc1.hi) && (tsc.lo > tsc1.lo)));
+ } while ((tsc.hi < tsc1.hi)
+ || ((tsc.hi == tsc1.hi) && (tsc.lo < tsc1.lo)));
}