summaryrefslogtreecommitdiffstats
path: root/arch/x86/include/asm/cpu.h
diff options
context:
space:
mode:
authorTom Rini <trini@ti.com>2014-10-29 15:57:59 -0400
committerTom Rini <trini@ti.com>2014-10-29 15:57:59 -0400
commit2c54cb5516238ae93c930dee7f8e353291f2cdfb (patch)
tree17a1322a88f7381964bb1c89f8ed4b15472bbd3d /arch/x86/include/asm/cpu.h
parentb8be4e365c6f7b5351037bba5d400ace9363fa0a (diff)
parent026090e4c51e00841b04abf58f48cc3a45654bc4 (diff)
downloadblackbird-obmc-uboot-2c54cb5516238ae93c930dee7f8e353291f2cdfb.tar.gz
blackbird-obmc-uboot-2c54cb5516238ae93c930dee7f8e353291f2cdfb.zip
Merge git://git.denx.de/u-boot-x86
Diffstat (limited to 'arch/x86/include/asm/cpu.h')
-rw-r--r--arch/x86/include/asm/cpu.h55
1 files changed, 55 insertions, 0 deletions
diff --git a/arch/x86/include/asm/cpu.h b/arch/x86/include/asm/cpu.h
new file mode 100644
index 0000000000..6c6774af76
--- /dev/null
+++ b/arch/x86/include/asm/cpu.h
@@ -0,0 +1,55 @@
+/*
+ * Copyright (c) 2014 The Chromium OS Authors.
+ *
+ * SPDX-License-Identifier: GPL-2.0+
+ */
+
+#ifndef __X86_CPU_H
+#define __X86_CPU_H
+
+ /**
+ * cpu_enable_paging_pae() - Enable PAE-paging
+ *
+ * @pdpt: Value to set in cr3 (PDPT or PML4T)
+ */
+void cpu_enable_paging_pae(ulong cr3);
+
+/**
+ * cpu_disable_paging_pae() - Disable paging and PAE
+ */
+void cpu_disable_paging_pae(void);
+
+/**
+ * cpu_has_64bit() - Check if the CPU has 64-bit support
+ *
+ * @return 1 if this CPU supports long mode (64-bit), 0 if not
+ */
+int cpu_has_64bit(void);
+
+/**
+ * cpu_call64() - Jump to a 64-bit Linux kernel (internal function)
+ *
+ * The kernel is uncompressed and the 64-bit entry point is expected to be
+ * at @target.
+ *
+ * This function is used internally - see cpu_jump_to_64bit() for a more
+ * useful function.
+ *
+ * @pgtable: Address of 24KB area containing the page table
+ * @setup_base: Pointer to the setup.bin information for the kernel
+ * @target: Pointer to the start of the kernel image
+ */
+void cpu_call64(ulong pgtable, ulong setup_base, ulong target);
+
+/**
+ * cpu_jump_to_64bit() - Jump to a 64-bit Linux kernel
+ *
+ * The kernel is uncompressed and the 64-bit entry point is expected to be
+ * at @target.
+ *
+ * @setup_base: Pointer to the setup.bin information for the kernel
+ * @target: Pointer to the start of the kernel image
+ */
+int cpu_jump_to_64bit(ulong setup_base, ulong target);
+
+#endif
OpenPOWER on IntegriCloud