|
@@ -50,6 +50,7 @@
|
|
|
#include <asm/param.h>
|
|
|
#include <asm/traps.h>
|
|
|
#include <asm/smp.h>
|
|
|
+#include <asm/sysmem.h>
|
|
|
|
|
|
#include <platform/hardware.h>
|
|
|
|
|
@@ -88,12 +89,6 @@ static char __initdata command_line[COMMAND_LINE_SIZE];
|
|
|
static char default_command_line[COMMAND_LINE_SIZE] __initdata = CONFIG_CMDLINE;
|
|
|
#endif
|
|
|
|
|
|
-sysmem_info_t __initdata sysmem;
|
|
|
-
|
|
|
-extern int mem_reserve(unsigned long, unsigned long, int);
|
|
|
-extern void bootmem_init(void);
|
|
|
-extern void zones_init(void);
|
|
|
-
|
|
|
/*
|
|
|
* Boot parameter parsing.
|
|
|
*
|
|
@@ -113,31 +108,14 @@ typedef struct tagtable {
|
|
|
|
|
|
/* parse current tag */
|
|
|
|
|
|
-static int __init add_sysmem_bank(unsigned long type, unsigned long start,
|
|
|
- unsigned long end)
|
|
|
-{
|
|
|
- if (sysmem.nr_banks >= SYSMEM_BANKS_MAX) {
|
|
|
- printk(KERN_WARNING
|
|
|
- "Ignoring memory bank 0x%08lx size %ldKB\n",
|
|
|
- start, end - start);
|
|
|
- return -EINVAL;
|
|
|
- }
|
|
|
- sysmem.bank[sysmem.nr_banks].type = type;
|
|
|
- sysmem.bank[sysmem.nr_banks].start = PAGE_ALIGN(start);
|
|
|
- sysmem.bank[sysmem.nr_banks].end = end & PAGE_MASK;
|
|
|
- sysmem.nr_banks++;
|
|
|
-
|
|
|
- return 0;
|
|
|
-}
|
|
|
-
|
|
|
static int __init parse_tag_mem(const bp_tag_t *tag)
|
|
|
{
|
|
|
- meminfo_t *mi = (meminfo_t *)(tag->data);
|
|
|
+ struct bp_meminfo *mi = (struct bp_meminfo *)(tag->data);
|
|
|
|
|
|
if (mi->type != MEMORY_TYPE_CONVENTIONAL)
|
|
|
return -1;
|
|
|
|
|
|
- return add_sysmem_bank(mi->type, mi->start, mi->end);
|
|
|
+ return add_sysmem_bank(mi->start, mi->end);
|
|
|
}
|
|
|
|
|
|
__tagtable(BP_TAG_MEMORY, parse_tag_mem);
|
|
@@ -146,8 +124,8 @@ __tagtable(BP_TAG_MEMORY, parse_tag_mem);
|
|
|
|
|
|
static int __init parse_tag_initrd(const bp_tag_t* tag)
|
|
|
{
|
|
|
- meminfo_t* mi;
|
|
|
- mi = (meminfo_t*)(tag->data);
|
|
|
+ struct bp_meminfo *mi = (struct bp_meminfo *)(tag->data);
|
|
|
+
|
|
|
initrd_start = (unsigned long)__va(mi->start);
|
|
|
initrd_end = (unsigned long)__va(mi->end);
|
|
|
|
|
@@ -255,7 +233,7 @@ void __init early_init_dt_add_memory_arch(u64 base, u64 size)
|
|
|
return;
|
|
|
|
|
|
size &= PAGE_MASK;
|
|
|
- add_sysmem_bank(MEMORY_TYPE_CONVENTIONAL, base, base + size);
|
|
|
+ add_sysmem_bank(base, base + size);
|
|
|
}
|
|
|
|
|
|
void * __init early_init_dt_alloc_memory_arch(u64 size, u64 align)
|
|
@@ -292,8 +270,6 @@ device_initcall(xtensa_device_probe);
|
|
|
|
|
|
void __init init_arch(bp_tag_t *bp_start)
|
|
|
{
|
|
|
- sysmem.nr_banks = 0;
|
|
|
-
|
|
|
/* Parse boot parameters */
|
|
|
|
|
|
if (bp_start)
|
|
@@ -304,10 +280,9 @@ void __init init_arch(bp_tag_t *bp_start)
|
|
|
#endif
|
|
|
|
|
|
if (sysmem.nr_banks == 0) {
|
|
|
- sysmem.nr_banks = 1;
|
|
|
- sysmem.bank[0].start = PLATFORM_DEFAULT_MEM_START;
|
|
|
- sysmem.bank[0].end = PLATFORM_DEFAULT_MEM_START
|
|
|
- + PLATFORM_DEFAULT_MEM_SIZE;
|
|
|
+ add_sysmem_bank(PLATFORM_DEFAULT_MEM_START,
|
|
|
+ PLATFORM_DEFAULT_MEM_START +
|
|
|
+ PLATFORM_DEFAULT_MEM_SIZE);
|
|
|
}
|
|
|
|
|
|
#ifdef CONFIG_CMDLINE_BOOL
|