search for: romsignature

Displaying 10 results from an estimated 10 matches for "romsignature".

2007 Apr 18
1
Handling PCI/ROM space
...Anyway, I've got these patches to deal with these cases: --- a/arch/i386/kernel/setup.c +++ b/arch/i386/kernel/setup.c @@ -276,7 +276,14 @@ static struct resource standard_io_resou #define STANDARD_IO_RESOURCES \ (sizeof standard_io_resources / sizeof standard_io_resources[0]) -#define romsignature(x) (*(unsigned short *)(x) == 0xaa55) +static inline int romsignature(const unsigned char *x) +{ + unsigned short sig; + int ret = 0; + if (__get_user(sig, (const unsigned short *)x) == 0) + ret = (sig == 0xaa55); + return ret; +} static int __init romchecksum(unsigned char *ro...
2007 Apr 18
1
Handling PCI/ROM space
...Anyway, I've got these patches to deal with these cases: --- a/arch/i386/kernel/setup.c +++ b/arch/i386/kernel/setup.c @@ -276,7 +276,14 @@ static struct resource standard_io_resou #define STANDARD_IO_RESOURCES \ (sizeof standard_io_resources / sizeof standard_io_resources[0]) -#define romsignature(x) (*(unsigned short *)(x) == 0xaa55) +static inline int romsignature(const unsigned char *x) +{ + unsigned short sig; + int ret = 0; + if (__get_user(sig, (const unsigned short *)x) == 0) + ret = (sig == 0xaa55); + return ret; +} static int __init romchecksum(unsigned char *ro...
2007 Apr 18
2
[PATCH 1/4] Prep for paravirt: move pagetable includes.
Move header includes for the nopud / nopmd types to the location of the actual pte / pgd type definitions. This allows generic 4-level page type code to be written before the split 2/3 level page table headers are included. Signed-off-by: Zachary Amsden <zach@vmware.com> Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2007 Apr 18
2
[PATCH 1/4] Prep for paravirt: move pagetable includes.
Move header includes for the nopud / nopmd types to the location of the actual pte / pgd type definitions. This allows generic 4-level page type code to be written before the split 2/3 level page table headers are included. Signed-off-by: Zachary Amsden <zach@vmware.com> Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2007 Apr 18
4
[RFC, PATCH 3/24] i386 Vmi interface definition
...initions + * + *--------------------------------------------------------------------- + */ + +/* VROM call table definitions */ +#define VROM_CALL_LEN 32 + +typedef struct VROMCallEntry { + char f[VROM_CALL_LEN]; +} VROMCallEntry; + +typedef struct VROMHeader { + VMI_UINT16 romSignature; // option ROM signature + VMI_INT8 romLength; // ROM length in 512 byte chunks + unsigned char romEntry[4]; // 16-bit code entry point + VMI_UINT8 romPad0; // 4-byte align pad + VMI_UINT32 vRomSign...
2007 Apr 18
4
[RFC, PATCH 3/24] i386 Vmi interface definition
...initions + * + *--------------------------------------------------------------------- + */ + +/* VROM call table definitions */ +#define VROM_CALL_LEN 32 + +typedef struct VROMCallEntry { + char f[VROM_CALL_LEN]; +} VROMCallEntry; + +typedef struct VROMHeader { + VMI_UINT16 romSignature; // option ROM signature + VMI_INT8 romLength; // ROM length in 512 byte chunks + unsigned char romEntry[4]; // 16-bit code entry point + VMI_UINT8 romPad0; // 4-byte align pad + VMI_UINT32 vRomSign...
2007 Apr 18
4
[RFC, PATCH 1/24] i386 Vmi documentation
...region of the first megabyte of physical memory. Multiple + ROMs may be provided to support older API versions for legacy guest + OS support. ROM detection is done in the traditional manner, by + scanning the memory region from C8000h - DFFFFh in 2 kilobyte + increments. The romSignature bytes must be '0x55, 0xAA', and the + checksum of the region indicated by the romLength field must be zero. + The checksum is a simple 8-bit addition of all bytes in the ROM region. + + Data layout + + typedef struct HyperRomHeader { + uint16_t romSignature;...
2007 Apr 18
4
[RFC, PATCH 1/24] i386 Vmi documentation
...region of the first megabyte of physical memory. Multiple + ROMs may be provided to support older API versions for legacy guest + OS support. ROM detection is done in the traditional manner, by + scanning the memory region from C8000h - DFFFFh in 2 kilobyte + increments. The romSignature bytes must be '0x55, 0xAA', and the + checksum of the region indicated by the romLength field must be zero. + The checksum is a simple 8-bit addition of all bytes in the ROM region. + + Data layout + + typedef struct HyperRomHeader { + uint16_t romSignature;...
2007 Apr 18
7
[RFC, PATCH 5/24] i386 Vmi code patching
...oid __init probe_vmi_rom(void) +{ + unsigned long base; + + hypervisor_found = 0; + + /* VMI ROM is in option ROM area, check signature */ + for (base = 0xC0000; base < 0xE0000; base += 2048) { + VROMHeader *romstart; + romstart = (VROMHeader *)isa_bus_to_virt(base); + if (romstart->romSignature != 0xaa55) + continue; + if (romstart->vRomSignature == VMI_SIGNATURE && !vmi_rom) { + printk(KERN_WARNING "Detected VMI ROM version %d.%d\n", + romstart->APIVersionMajor, + romstart->APIVersionMinor); + vmi_rom = romstart; + if (romstart->APIVersionMajo...
2007 Apr 18
7
[RFC, PATCH 5/24] i386 Vmi code patching
...oid __init probe_vmi_rom(void) +{ + unsigned long base; + + hypervisor_found = 0; + + /* VMI ROM is in option ROM area, check signature */ + for (base = 0xC0000; base < 0xE0000; base += 2048) { + VROMHeader *romstart; + romstart = (VROMHeader *)isa_bus_to_virt(base); + if (romstart->romSignature != 0xaa55) + continue; + if (romstart->vRomSignature == VMI_SIGNATURE && !vmi_rom) { + printk(KERN_WARNING "Detected VMI ROM version %d.%d\n", + romstart->APIVersionMajor, + romstart->APIVersionMinor); + vmi_rom = romstart; + if (romstart->APIVersionMajo...