36 lines
		
	
	
		
			929 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			36 lines
		
	
	
		
			929 B
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|  * This program is free software; you can redistribute  it and/or modify it
 | |
|  * under  the terms of  the GNU General  Public License as published by the
 | |
|  * Free Software Foundation;  either version 2 of the  License, or (at your
 | |
|  * option) any later version.
 | |
|  */
 | |
| #include <linux/fs.h>
 | |
| #include <linux/fcntl.h>
 | |
| #include <linux/mm.h>
 | |
| 
 | |
| #include <asm/bootinfo.h>
 | |
| 
 | |
| #include <loongson.h>
 | |
| #include <mem.h>
 | |
| 
 | |
| void __init prom_init_memory(void)
 | |
| {
 | |
|     add_memory_region(0x0, (memsize << 20), BOOT_MEM_RAM);
 | |
| #ifdef CONFIG_64BIT
 | |
|     if (highmemsize > 0)
 | |
| 	add_memory_region(LOONGSON_HIGHMEM_START,
 | |
| 		highmemsize << 20, BOOT_MEM_RAM);
 | |
| #endif /* CONFIG_64BIT */
 | |
| }
 | |
| 
 | |
| /* override of arch/mips/mm/cache.c: __uncached_access */
 | |
| int __uncached_access(struct file *file, unsigned long addr)
 | |
| {
 | |
| 	if (file->f_flags & O_SYNC)
 | |
| 		return 1;
 | |
| 
 | |
| 	return addr >= __pa(high_memory) ||
 | |
| 		((addr >= LOONGSON_MMIO_MEM_START) &&
 | |
| 		 (addr < LOONGSON_MMIO_MEM_END));
 | |
| }
 |