mirror of
https://source.denx.de/u-boot/u-boot.git
synced 2025-08-11 09:47:00 +02:00
This is needed to support Truetype fonts. In any case, the compiler expects SSE to be available in 64-bit mode. Provide an option to enable SSE so that hardware floating-point arithmetic works. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Tom Rini <trini@konsulko.com> Suggested-by: Bin Meng <bmeng.cn@gmail.com>
79 lines
1.2 KiB
C
79 lines
1.2 KiB
C
// SPDX-License-Identifier: GPL-2.0+
|
|
/*
|
|
* (C) Copyright 2016 Google, Inc
|
|
* Written by Simon Glass <sjg@chromium.org>
|
|
*/
|
|
|
|
#include <common.h>
|
|
#include <cpu_func.h>
|
|
#include <debug_uart.h>
|
|
#include <init.h>
|
|
#include <asm/cpu.h>
|
|
#include <asm/global_data.h>
|
|
#include <asm/processor-flags.h>
|
|
|
|
DECLARE_GLOBAL_DATA_PTR;
|
|
|
|
int cpu_has_64bit(void)
|
|
{
|
|
return true;
|
|
}
|
|
|
|
void enable_caches(void)
|
|
{
|
|
/* Not implemented */
|
|
}
|
|
|
|
void disable_caches(void)
|
|
{
|
|
/* Not implemented */
|
|
}
|
|
|
|
int dcache_status(void)
|
|
{
|
|
return true;
|
|
}
|
|
|
|
int x86_mp_init(void)
|
|
{
|
|
/* Not implemented */
|
|
return 0;
|
|
}
|
|
|
|
/* enable SSE features for hardware floating point */
|
|
static void setup_sse_features(void)
|
|
{
|
|
asm ("mov %%cr4, %%rax\n" \
|
|
"or %0, %%rax\n" \
|
|
"mov %%rax, %%cr4\n" \
|
|
: : "i" (X86_CR4_OSFXSR | X86_CR4_OSXMMEXCPT) : "eax");
|
|
}
|
|
|
|
int x86_cpu_reinit_f(void)
|
|
{
|
|
/* set the vendor to Intel so that native_calibrate_tsc() works */
|
|
gd->arch.x86_vendor = X86_VENDOR_INTEL;
|
|
gd->arch.has_mtrr = true;
|
|
if (IS_ENABLED(CONFIG_X86_HARDFP))
|
|
setup_sse_features();
|
|
|
|
return 0;
|
|
}
|
|
|
|
int cpu_phys_address_size(void)
|
|
{
|
|
return CONFIG_CPU_ADDR_BITS;
|
|
}
|
|
|
|
int x86_cpu_init_f(void)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
#ifdef CONFIG_DEBUG_UART_BOARD_INIT
|
|
void board_debug_uart_init(void)
|
|
{
|
|
/* this was already done in SPL */
|
|
}
|
|
#endif
|