-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[PATCH] x86_64: Implement early DMI scanning
There are more and more cases where we need to know DMI information early to work around bugs. i386 already had early DMI scanning, but x86-64 didn't. Implement this now. This required some cleanup in the i386 code. Signed-off-by: Andi Kleen <ak@suse.de> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
- Loading branch information
Andi Kleen
authored and
Linus Torvalds
committed
Mar 25, 2006
1 parent
f083a32
commit f2d3efe
Showing
6 changed files
with
78 additions
and
12 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
#ifndef _ASM_DMI_H | ||
#define _ASM_DMI_H 1 | ||
|
||
#include <asm/io.h> | ||
|
||
/* Use early IO mappings for DMI because it's initialized early */ | ||
#define dmi_ioremap bt_ioremap | ||
#define dmi_iounmap bt_iounmap | ||
#define dmi_alloc alloc_bootmem | ||
|
||
#endif |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
#ifndef _ASM_DMI_H | ||
#define _ASM_DMI_H 1 | ||
|
||
#include <asm/io.h> | ||
|
||
extern void *dmi_ioremap(unsigned long addr, unsigned long size); | ||
extern void dmi_iounmap(void *addr, unsigned long size); | ||
|
||
#define DMI_MAX_DATA 2048 | ||
|
||
extern int dmi_alloc_index; | ||
extern char dmi_alloc_data[DMI_MAX_DATA]; | ||
|
||
/* This is so early that there is no good way to allocate dynamic memory. | ||
Allocate data in an BSS array. */ | ||
static inline void *dmi_alloc(unsigned len) | ||
{ | ||
int idx = dmi_alloc_index; | ||
if ((dmi_alloc_index += len) > DMI_MAX_DATA) | ||
return NULL; | ||
return dmi_alloc_data + idx; | ||
} | ||
|
||
#define dmi_ioremap early_ioremap | ||
#define dmi_iounmap early_iounmap | ||
|
||
#endif |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters