]> git.sur5r.net Git - u-boot/blobdiff - arch/x86/cpu/cpu.c
patman: Use the full commit hash for 'git checkout'
[u-boot] / arch / x86 / cpu / cpu.c
index 97c77ba161045ac86d9030356f8f94185e69d3f1..b391b7ade47298336bb9042c9b3cbb8f2bebde14 100644 (file)
@@ -25,6 +25,7 @@
 #include <malloc.h>
 #include <asm/control_regs.h>
 #include <asm/cpu.h>
+#include <asm/post.h>
 #include <asm/processor.h>
 #include <asm/processor-flags.h>
 #include <asm/interrupt.h>
@@ -567,3 +568,26 @@ int cpu_jump_to_64bit(ulong setup_base, ulong target)
 
        return -EFAULT;
 }
+
+void show_boot_progress(int val)
+{
+#if MIN_PORT80_KCLOCKS_DELAY
+       /*
+        * Scale the time counter reading to avoid using 64 bit arithmetics.
+        * Can't use get_timer() here becuase it could be not yet
+        * initialized or even implemented.
+        */
+       if (!gd->arch.tsc_prev) {
+               gd->arch.tsc_base_kclocks = rdtsc() / 1000;
+               gd->arch.tsc_prev = 0;
+       } else {
+               uint32_t now;
+
+               do {
+                       now = rdtsc() / 1000 - gd->arch.tsc_base_kclocks;
+               } while (now < (gd->arch.tsc_prev + MIN_PORT80_KCLOCKS_DELAY));
+               gd->arch.tsc_prev = now;
+       }
+#endif
+       outb(val, POST_PORT);
+}