Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus
* 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus: (119 commits)
MIPS: Delete unused function add_temporary_entry.
MIPS: Set default pci cache line size.
MIPS: Flush huge TLB
MIPS: Octeon: Remove SYS_SUPPORTS_HIGHMEM.
MIPS: Octeon: Add support for OCTEON II PCIe
MIPS: Octeon: Update PCI Latency timer and enable more error reporting.
MIPS: Alchemy: Update cpu-feature-overrides
MIPS: Alchemy: db1200: Improve PB1200 detection.
MIPS: Alchemy: merge Au1000 and Au1300-style IRQ controller code.
MIPS: Alchemy: chain IRQ controllers to MIPS IRQ controller
MIPS: Alchemy: irq: register pm at irq init time
MIPS: Alchemy: Touchscreen support on DB1100
MIPS: Alchemy: Hook up IrDA on DB1000/DB1100
net/irda: convert au1k_ir to platform driver.
MIPS: Alchemy: remove unused board headers
MTD: nand: make au1550nd.c a platform_driver
MIPS: Netlogic: Mark Netlogic chips as SMT capable
MIPS: Netlogic: Add support for XLP 3XX cores
MIPS: Netlogic: Merge some of XLR/XLP wakup code
MIPS: Netlogic: Add default XLP config.
...
Fix up trivial conflicts in arch/mips/kernel/{perf_event_mipsxx.c,
traps.c} and drivers/tty/serial/Makefile
This commit is contained in:
@@ -122,6 +122,9 @@ static void __init print_memory_map(void)
|
||||
case BOOT_MEM_RAM:
|
||||
printk(KERN_CONT "(usable)\n");
|
||||
break;
|
||||
case BOOT_MEM_INIT_RAM:
|
||||
printk(KERN_CONT "(usable after init)\n");
|
||||
break;
|
||||
case BOOT_MEM_ROM_DATA:
|
||||
printk(KERN_CONT "(ROM data)\n");
|
||||
break;
|
||||
@@ -362,15 +365,24 @@ static void __init bootmem_init(void)
|
||||
for (i = 0; i < boot_mem_map.nr_map; i++) {
|
||||
unsigned long start, end, size;
|
||||
|
||||
/*
|
||||
* Reserve usable memory.
|
||||
*/
|
||||
if (boot_mem_map.map[i].type != BOOT_MEM_RAM)
|
||||
continue;
|
||||
|
||||
start = PFN_UP(boot_mem_map.map[i].addr);
|
||||
end = PFN_DOWN(boot_mem_map.map[i].addr
|
||||
+ boot_mem_map.map[i].size);
|
||||
|
||||
/*
|
||||
* Reserve usable memory.
|
||||
*/
|
||||
switch (boot_mem_map.map[i].type) {
|
||||
case BOOT_MEM_RAM:
|
||||
break;
|
||||
case BOOT_MEM_INIT_RAM:
|
||||
memory_present(0, start, end);
|
||||
continue;
|
||||
default:
|
||||
/* Not usable memory */
|
||||
continue;
|
||||
}
|
||||
|
||||
/*
|
||||
* We are rounding up the start address of usable memory
|
||||
* and at the end of the usable range downwards.
|
||||
@@ -456,11 +468,33 @@ early_param("mem", early_parse_mem);
|
||||
|
||||
static void __init arch_mem_init(char **cmdline_p)
|
||||
{
|
||||
phys_t init_mem, init_end, init_size;
|
||||
|
||||
extern void plat_mem_setup(void);
|
||||
|
||||
/* call board setup routine */
|
||||
plat_mem_setup();
|
||||
|
||||
init_mem = PFN_UP(__pa_symbol(&__init_begin)) << PAGE_SHIFT;
|
||||
init_end = PFN_DOWN(__pa_symbol(&__init_end)) << PAGE_SHIFT;
|
||||
init_size = init_end - init_mem;
|
||||
if (init_size) {
|
||||
/* Make sure it is in the boot_mem_map */
|
||||
int i, found;
|
||||
found = 0;
|
||||
for (i = 0; i < boot_mem_map.nr_map; i++) {
|
||||
if (init_mem >= boot_mem_map.map[i].addr &&
|
||||
init_mem < (boot_mem_map.map[i].addr +
|
||||
boot_mem_map.map[i].size)) {
|
||||
found = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!found)
|
||||
add_memory_region(init_mem, init_size,
|
||||
BOOT_MEM_INIT_RAM);
|
||||
}
|
||||
|
||||
pr_info("Determined physical RAM map:\n");
|
||||
print_memory_map();
|
||||
|
||||
@@ -524,6 +558,7 @@ static void __init resource_init(void)
|
||||
res = alloc_bootmem(sizeof(struct resource));
|
||||
switch (boot_mem_map.map[i].type) {
|
||||
case BOOT_MEM_RAM:
|
||||
case BOOT_MEM_INIT_RAM:
|
||||
case BOOT_MEM_ROM_DATA:
|
||||
res->name = "System RAM";
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user