x86: Make show_boot_progress() common
This function can probably be used on all x86 boards, so move it into the common file. Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
437c2b7cd0
commit
a49e3c7f09
@ -15,7 +15,6 @@
|
||||
#include <asm/cache.h>
|
||||
#include <asm/cpu.h>
|
||||
#include <asm/io.h>
|
||||
#include <asm/post.h>
|
||||
#include <asm/arch/tables.h>
|
||||
#include <asm/arch/sysinfo.h>
|
||||
#include <asm/arch/timestamp.h>
|
||||
@ -51,29 +50,6 @@ int board_early_init_r(void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
int print_cpuinfo(void)
|
||||
{
|
||||
return default_print_cpuinfo();
|
||||
|
@ -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);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user