Displaying 20 results from an estimated 33 matches for "vmi_rom".
2007 Apr 18
1
[RFC, PATCH 21/24] i386 Vmi proc node
...;linux/kernel.h>
+#include <linux/errno.h>
+#include <linux/spinlock.h>
+#include <linux/string.h>
+#include <linux/seq_file.h>
+#include <linux/proc_fs.h>
+#include <linux/init.h>
+#include <asm/processor.h>
+#include <vmi.h>
+
+extern VROMHeader *vmi_rom;
+static struct proc_dir_entry *proc_vmi_root;
+
+struct pnp_header {
+ char sig[4];
+ char rev;
+ char size;
+ short next;
+ short res;
+ long devID;
+ unsigned short manufacturer_offset;
+ unsigned short product_offset;
+} __attribute__((packed));
+
+/* XXX This hack can only be used with passthr...
2007 Apr 18
1
[RFC, PATCH 21/24] i386 Vmi proc node
...;linux/kernel.h>
+#include <linux/errno.h>
+#include <linux/spinlock.h>
+#include <linux/string.h>
+#include <linux/seq_file.h>
+#include <linux/proc_fs.h>
+#include <linux/init.h>
+#include <asm/processor.h>
+#include <vmi.h>
+
+extern VROMHeader *vmi_rom;
+static struct proc_dir_entry *proc_vmi_root;
+
+struct pnp_header {
+ char sig[4];
+ char rev;
+ char size;
+ short next;
+ short res;
+ long devID;
+ unsigned short manufacturer_offset;
+ unsigned short product_offset;
+} __attribute__((packed));
+
+/* XXX This hack can only be used with passthr...
2007 Apr 18
0
[PATCH 8/9] Vmi apic ops.diff
...tsc;
static int disable_tsc;
static int disable_mtrr;
static int disable_noidle;
+static int disable_vmi_timer;
/* Cached VMI operations */
struct {
@@ -662,12 +663,12 @@ void vmi_bringup(void)
void vmi_bringup(void)
{
/* We must establish the lowmem mapping for MMU ops to work */
- if (vmi_rom)
+ if (vmi_ops.set_linear_mapping)
vmi_ops.set_linear_mapping(0, __PAGE_OFFSET, max_low_pfn, 0);
}
/*
- * Return a pointer to the VMI function or a NOP stub
+ * Return a pointer to a VMI function or NULL if unimplemented
*/
static void *vmi_get_function(int vmicall)
{
@@ -678,12 +679,13...
2007 Apr 18
0
[PATCH 8/9] Vmi apic ops.diff
...tsc;
static int disable_tsc;
static int disable_mtrr;
static int disable_noidle;
+static int disable_vmi_timer;
/* Cached VMI operations */
struct {
@@ -662,12 +663,12 @@ void vmi_bringup(void)
void vmi_bringup(void)
{
/* We must establish the lowmem mapping for MMU ops to work */
- if (vmi_rom)
+ if (vmi_ops.set_linear_mapping)
vmi_ops.set_linear_mapping(0, __PAGE_OFFSET, max_low_pfn, 0);
}
/*
- * Return a pointer to the VMI function or a NOP stub
+ * Return a pointer to a VMI function or NULL if unimplemented
*/
static void *vmi_get_function(int vmicall)
{
@@ -678,12 +679,13...
2007 Apr 18
0
[PATCH 4/5] Vmi.patch
...ribute__((regparm(1))) (VROMFUNC)(void);
+typedef u64 __attribute__((regparm(2))) (VROMLONGFUNC)(int);
+
+#define call_vrom_func(rom,func) \
+ (((VROMFUNC *)(rom->func))())
+
+#define call_vrom_long_func(rom,func,arg) \
+ (((VROMLONGFUNC *)(rom->func)) (arg))
+
+static struct vrom_header *vmi_rom;
+static int license_gplok;
+static int disable_nodelay;
+static int disable_pge;
+static int disable_pse;
+static int disable_sep;
+static int disable_tsc;
+static int disable_mtrr;
+
+/* Cached VMI operations */
+struct {
+ void (fastcall *cpuid)(void /* non-c */);
+ void (fastcall *_set_ldt)(u32...
2007 Apr 18
0
[PATCH 4/5] Vmi.patch
...ribute__((regparm(1))) (VROMFUNC)(void);
+typedef u64 __attribute__((regparm(2))) (VROMLONGFUNC)(int);
+
+#define call_vrom_func(rom,func) \
+ (((VROMFUNC *)(rom->func))())
+
+#define call_vrom_long_func(rom,func,arg) \
+ (((VROMLONGFUNC *)(rom->func)) (arg))
+
+static struct vrom_header *vmi_rom;
+static int license_gplok;
+static int disable_nodelay;
+static int disable_pge;
+static int disable_pse;
+static int disable_sep;
+static int disable_tsc;
+static int disable_mtrr;
+
+/* Cached VMI operations */
+struct {
+ void (fastcall *cpuid)(void /* non-c */);
+ void (fastcall *_set_ldt)(u32...
2007 Apr 18
0
[PATCH 5/6] VMI backend for paravirt-ops
...ribute__((regparm(1))) (VROMFUNC)(void);
+typedef u64 __attribute__((regparm(2))) (VROMLONGFUNC)(int);
+
+#define call_vrom_func(rom,func) \
+ (((VROMFUNC *)(rom->func))())
+
+#define call_vrom_long_func(rom,func,arg) \
+ (((VROMLONGFUNC *)(rom->func)) (arg))
+
+static struct vrom_header *vmi_rom;
+static int license_gplok;
+static int disable_nodelay;
+static int disable_pge;
+static int disable_pse;
+static int disable_sep;
+static int disable_tsc;
+static int disable_mtrr;
+
+/* Cached VMI operations */
+struct {
+ void (fastcall *cpuid)(void /* non-c */);
+ void (fastcall *_set_ldt)(u32...
2007 Apr 18
0
[PATCH 5/6] VMI backend for paravirt-ops
...ribute__((regparm(1))) (VROMFUNC)(void);
+typedef u64 __attribute__((regparm(2))) (VROMLONGFUNC)(int);
+
+#define call_vrom_func(rom,func) \
+ (((VROMFUNC *)(rom->func))())
+
+#define call_vrom_long_func(rom,func,arg) \
+ (((VROMLONGFUNC *)(rom->func)) (arg))
+
+static struct vrom_header *vmi_rom;
+static int license_gplok;
+static int disable_nodelay;
+static int disable_pge;
+static int disable_pse;
+static int disable_sep;
+static int disable_tsc;
+static int disable_mtrr;
+
+/* Cached VMI operations */
+struct {
+ void (fastcall *cpuid)(void /* non-c */);
+ void (fastcall *_set_ldt)(u32...
2007 Apr 18
7
[RFC, PATCH 5/24] i386 Vmi code patching
...lude <asm/arch_hooks.h>
+#include <asm/processor.h>
+#include <asm/desc.h>
+#include <asm/io.h>
+#include <asm/highmem.h>
+#include <asm/pgtable.h>
+#include <vmi.h>
+
+extern char __VMI_END;
+extern char __VMI_START;
+extern char __VMI_SHARED;
+VROMHeader *vmi_rom = NULL;
+
+VMI_UINT8 hypervisor_found;
+
+/* Convenient macro for calling VMI functions indirectly in the ROM */
+typedef VMI_UINT32 __attribute__((regparm(1))) (VROMFUNC)(void);
+
+#define VROMFunc(table,func) \
+ (((VROMFUNC *)&(((VROMCallTable *)(table))->vromCall[(func)].f)) \
+...
2007 Apr 18
7
[RFC, PATCH 5/24] i386 Vmi code patching
...lude <asm/arch_hooks.h>
+#include <asm/processor.h>
+#include <asm/desc.h>
+#include <asm/io.h>
+#include <asm/highmem.h>
+#include <asm/pgtable.h>
+#include <vmi.h>
+
+extern char __VMI_END;
+extern char __VMI_START;
+extern char __VMI_SHARED;
+VROMHeader *vmi_rom = NULL;
+
+VMI_UINT8 hypervisor_found;
+
+/* Convenient macro for calling VMI functions indirectly in the ROM */
+typedef VMI_UINT32 __attribute__((regparm(1))) (VROMFUNC)(void);
+
+#define VROMFunc(table,func) \
+ (((VROMFUNC *)&(((VROMCallTable *)(table))->vromCall[(func)].f)) \
+...
2010 Aug 23
1
Removing VMI kernel support from 2.6.37
...ribute__((regparm(1))) (VROMFUNC)(void);
-typedef u64 __attribute__((regparm(2))) (VROMLONGFUNC)(int);
-
-#define call_vrom_func(rom,func) \
- (((VROMFUNC *)(rom->func))())
-
-#define call_vrom_long_func(rom,func,arg) \
- (((VROMLONGFUNC *)(rom->func)) (arg))
-
-static struct vrom_header *vmi_rom;
-static int disable_pge;
-static int disable_pse;
-static int disable_sep;
-static int disable_tsc;
-static int disable_mtrr;
-static int disable_noidle;
-static int disable_vmi_timer;
-
-/* Cached VMI operations */
-static struct {
- void (*cpuid)(void /* non-c */);
- void (*_set_ldt)(u32 selecto...
2010 Aug 23
1
Removing VMI kernel support from 2.6.37
...ribute__((regparm(1))) (VROMFUNC)(void);
-typedef u64 __attribute__((regparm(2))) (VROMLONGFUNC)(int);
-
-#define call_vrom_func(rom,func) \
- (((VROMFUNC *)(rom->func))())
-
-#define call_vrom_long_func(rom,func,arg) \
- (((VROMLONGFUNC *)(rom->func)) (arg))
-
-static struct vrom_header *vmi_rom;
-static int disable_pge;
-static int disable_pse;
-static int disable_sep;
-static int disable_tsc;
-static int disable_mtrr;
-static int disable_noidle;
-static int disable_vmi_timer;
-
-/* Cached VMI operations */
-static struct {
- void (*cpuid)(void /* non-c */);
- void (*_set_ldt)(u32 selecto...
2007 Apr 18
1
[PATCH] 2.6.21 - VMI logic error
...gned-off-by: Zachary Amsden <zach@vmware.com>
diff -r 99800d11a3ec arch/i386/kernel/vmi.c
--- a/arch/i386/kernel/vmi.c Thu Apr 12 16:37:29 2007 -0700
+++ b/arch/i386/kernel/vmi.c Thu Apr 12 19:00:46 2007 -0700
@@ -685,11 +685,14 @@ do { \
do { \
reloc =3D call_vrom_long_func(vmi_rom, get_reloc, \
VMI_CALL_##vmicall); \
- if (rel->type !=3D VMI_RELOCATION_NONE) { \
- BUG_ON(rel->type !=3D VMI_RELOCATION_CALL_REL); \
+ if (rel->type =3D=3D VMI_RELOCATION_CALL_REL) \
paravirt_ops.opname =3D (void *)rel->eip; \
- } else if (rel->type =3D=3D VMI_RE...
2007 Apr 18
0
[PATCH 3/3] Vmi native fix
....c Thu Jan 04 15:56:40 2007 -0800
+++ b/arch/i386/kernel/vmi.c Thu Jan 04 15:57:38 2007 -0800
@@ -645,7 +645,8 @@ void vmi_bringup(void)
void vmi_bringup(void)
{
/* We must establish the lowmem mapping for MMU ops to work */
- vmi_ops.set_linear_mapping(0, __PAGE_OFFSET, max_low_pfn, 0);
+ if (vmi_rom)
+ vmi_ops.set_linear_mapping(0, __PAGE_OFFSET, max_low_pfn, 0);
}
/*
2007 Apr 18
0
[PATCH 3/3] Vmi native fix
....c Thu Jan 04 15:56:40 2007 -0800
+++ b/arch/i386/kernel/vmi.c Thu Jan 04 15:57:38 2007 -0800
@@ -645,7 +645,8 @@ void vmi_bringup(void)
void vmi_bringup(void)
{
/* We must establish the lowmem mapping for MMU ops to work */
- vmi_ops.set_linear_mapping(0, __PAGE_OFFSET, max_low_pfn, 0);
+ if (vmi_rom)
+ vmi_ops.set_linear_mapping(0, __PAGE_OFFSET, max_low_pfn, 0);
}
/*
2007 Apr 18
1
[PATCH] 2.6.21 - VMI logic error
...gned-off-by: Zachary Amsden <zach@vmware.com>
diff -r 99800d11a3ec arch/i386/kernel/vmi.c
--- a/arch/i386/kernel/vmi.c Thu Apr 12 16:37:29 2007 -0700
+++ b/arch/i386/kernel/vmi.c Thu Apr 12 19:00:46 2007 -0700
@@ -685,11 +685,14 @@ do { \
do { \
reloc =3D call_vrom_long_func(vmi_rom, get_reloc, \
VMI_CALL_##vmicall); \
- if (rel->type !=3D VMI_RELOCATION_NONE) { \
- BUG_ON(rel->type !=3D VMI_RELOCATION_CALL_REL); \
+ if (rel->type =3D=3D VMI_RELOCATION_CALL_REL) \
paravirt_ops.opname =3D (void *)rel->eip; \
- } else if (rel->type =3D=3D VMI_RE...
2007 Apr 18
0
[PATCH 5/9] Paravirt drop udelay op
...ux/init.h>
#include <linux/kernel.h>
diff -r 135d1b73c878 arch/i386/kernel/vmi.c
--- a/arch/i386/kernel/vmi.c Tue Feb 27 16:23:56 2007 -0800
+++ b/arch/i386/kernel/vmi.c Tue Feb 27 16:28:00 2007 -0800
@@ -48,7 +48,6 @@ typedef u64 __attribute__((regparm(2)))
static struct vrom_header *vmi_rom;
static int license_gplok;
-static int disable_nodelay;
static int disable_pge;
static int disable_pse;
static int disable_sep;
@@ -801,9 +800,6 @@ static inline int __init activate_vmi(vo
para_fill(set_iopl_mask, SetIOPLMask);
paravirt_ops.io_delay = (void *)vmi_nop;
- if (!disable_nodel...
2007 Apr 18
0
[PATCH 5/9] Paravirt drop udelay op
...ux/init.h>
#include <linux/kernel.h>
diff -r 135d1b73c878 arch/i386/kernel/vmi.c
--- a/arch/i386/kernel/vmi.c Tue Feb 27 16:23:56 2007 -0800
+++ b/arch/i386/kernel/vmi.c Tue Feb 27 16:28:00 2007 -0800
@@ -48,7 +48,6 @@ typedef u64 __attribute__((regparm(2)))
static struct vrom_header *vmi_rom;
static int license_gplok;
-static int disable_nodelay;
static int disable_pge;
static int disable_pse;
static int disable_sep;
@@ -801,9 +800,6 @@ static inline int __init activate_vmi(vo
para_fill(set_iopl_mask, SetIOPLMask);
paravirt_ops.io_delay = (void *)vmi_nop;
- if (!disable_nodel...
2007 Apr 18
0
[PATCH 6/6] VMI timer patches
...ine int __init activate_vmi(vo
paravirt_ops.apic_write = vmi_get_function(VMI_CALL_APICWrite);
paravirt_ops.apic_write_atomic = vmi_get_function(VMI_CALL_APICWrite);
#endif
+
+ /*
+ * Check for VMI timer functionality by probing for a cycle frequency method
+ */
+ reloc = call_vrom_long_func(vmi_rom, get_reloc, VMI_CALL_GetCycleFrequency);
+ if (rel->type != VMI_RELOCATION_NONE) {
+ vmi_timer_ops.get_cycle_frequency = (void *)rel->eip;
+ vmi_timer_ops.get_cycle_counter =
+ vmi_get_function(VMI_CALL_GetCycleCounter);
+ vmi_timer_ops.get_wallclock =
+ vmi_get_function(VMI_CALL_GetW...
2007 Apr 18
0
[PATCH 6/6] VMI timer patches
...ine int __init activate_vmi(vo
paravirt_ops.apic_write = vmi_get_function(VMI_CALL_APICWrite);
paravirt_ops.apic_write_atomic = vmi_get_function(VMI_CALL_APICWrite);
#endif
+
+ /*
+ * Check for VMI timer functionality by probing for a cycle frequency method
+ */
+ reloc = call_vrom_long_func(vmi_rom, get_reloc, VMI_CALL_GetCycleFrequency);
+ if (rel->type != VMI_RELOCATION_NONE) {
+ vmi_timer_ops.get_cycle_frequency = (void *)rel->eip;
+ vmi_timer_ops.get_cycle_counter =
+ vmi_get_function(VMI_CALL_GetCycleCounter);
+ vmi_timer_ops.get_wallclock =
+ vmi_get_function(VMI_CALL_GetW...