Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
linux
Commits
5833f142
Commit
5833f142
authored
Oct 28, 2005
by
Tony Luck
Browse files
Options
Browse Files
Download
Plain Diff
Pull new-efi-memmap into release branch
parents
a1e78db3
d719948e
Changes
4
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
370 additions
and
193 deletions
+370
-193
arch/ia64/kernel/efi.c
arch/ia64/kernel/efi.c
+329
-181
arch/ia64/kernel/setup.c
arch/ia64/kernel/setup.c
+32
-0
arch/ia64/kernel/uncached.c
arch/ia64/kernel/uncached.c
+6
-11
include/asm-ia64/meminit.h
include/asm-ia64/meminit.h
+3
-1
No files found.
arch/ia64/kernel/efi.c
View file @
5833f142
This diff is collapsed.
Click to expand it.
arch/ia64/kernel/setup.c
View file @
5833f142
...
...
@@ -78,6 +78,19 @@ struct screen_info screen_info;
unsigned
long
vga_console_iobase
;
unsigned
long
vga_console_membase
;
static
struct
resource
data_resource
=
{
.
name
=
"Kernel data"
,
.
flags
=
IORESOURCE_BUSY
|
IORESOURCE_MEM
};
static
struct
resource
code_resource
=
{
.
name
=
"Kernel code"
,
.
flags
=
IORESOURCE_BUSY
|
IORESOURCE_MEM
};
extern
void
efi_initialize_iomem_resources
(
struct
resource
*
,
struct
resource
*
);
extern
char
_text
[],
_end
[],
_etext
[];
unsigned
long
ia64_max_cacheline_size
;
unsigned
long
ia64_iobase
;
/* virtual address for I/O accesses */
EXPORT_SYMBOL
(
ia64_iobase
);
...
...
@@ -171,6 +184,22 @@ sort_regions (struct rsvd_region *rsvd_region, int max)
}
}
/*
* Request address space for all standard resources
*/
static
int
__init
register_memory
(
void
)
{
code_resource
.
start
=
ia64_tpa
(
_text
);
code_resource
.
end
=
ia64_tpa
(
_etext
)
-
1
;
data_resource
.
start
=
ia64_tpa
(
_etext
);
data_resource
.
end
=
ia64_tpa
(
_end
)
-
1
;
efi_initialize_iomem_resources
(
&
code_resource
,
&
data_resource
);
return
0
;
}
__initcall
(
register_memory
);
/**
* reserve_memory - setup reserved memory areas
*
...
...
@@ -211,6 +240,9 @@ reserve_memory (void)
}
#endif
efi_memmap_init
(
&
rsvd_region
[
n
].
start
,
&
rsvd_region
[
n
].
end
);
n
++
;
/* end of memory marker */
rsvd_region
[
n
].
start
=
~
0UL
;
rsvd_region
[
n
].
end
=
~
0UL
;
...
...
arch/ia64/kernel/uncached.c
View file @
5833f142
...
...
@@ -205,23 +205,18 @@ EXPORT_SYMBOL(uncached_free_page);
static
int
__init
uncached_build_memmap
(
unsigned
long
start
,
unsigned
long
end
,
void
*
arg
)
{
long
length
;
unsigned
long
vstart
,
vend
;
long
length
=
end
-
start
;
int
node
;
length
=
end
-
start
;
vstart
=
start
+
__IA64_UNCACHED_OFFSET
;
vend
=
end
+
__IA64_UNCACHED_OFFSET
;
dprintk
(
KERN_ERR
"uncached_build_memmap(%lx %lx)
\n
"
,
start
,
end
);
memset
((
char
*
)
v
start
,
0
,
length
);
memset
((
char
*
)
start
,
0
,
length
);
node
=
paddr_to_nid
(
start
);
node
=
paddr_to_nid
(
start
-
__IA64_UNCACHED_OFFSET
);
for
(;
vstart
<
vend
;
v
start
+=
PAGE_SIZE
)
{
dprintk
(
KERN_INFO
"sticking %lx into the pool!
\n
"
,
v
start
);
gen_pool_free
(
uncached_pool
[
node
],
v
start
,
PAGE_SIZE
);
for
(;
start
<
end
;
start
+=
PAGE_SIZE
)
{
dprintk
(
KERN_INFO
"sticking %lx into the pool!
\n
"
,
start
);
gen_pool_free
(
uncached_pool
[
node
],
start
,
PAGE_SIZE
);
}
return
0
;
...
...
include/asm-ia64/meminit.h
View file @
5833f142
...
...
@@ -16,10 +16,11 @@
* - initrd (optional)
* - command line string
* - kernel code & data
* - Kernel memory map built from EFI memory map
*
* More could be added if necessary
*/
#define IA64_MAX_RSVD_REGIONS
5
#define IA64_MAX_RSVD_REGIONS
6
struct
rsvd_region
{
unsigned
long
start
;
/* virtual address of beginning of element */
...
...
@@ -33,6 +34,7 @@ extern void find_memory (void);
extern
void
reserve_memory
(
void
);
extern
void
find_initrd
(
void
);
extern
int
filter_rsvd_memory
(
unsigned
long
start
,
unsigned
long
end
,
void
*
arg
);
extern
void
efi_memmap_init
(
unsigned
long
*
,
unsigned
long
*
);
/*
* For rounding an address to the next IA64_GRANULE_SIZE or order
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment