patch-1.3.93 linux/arch/sparc/prom/memory.c

Next file: linux/arch/sparc/prom/misc.c
Previous file: linux/arch/sparc/prom/init.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v1.3.92/linux/arch/sparc/prom/memory.c linux/arch/sparc/prom/memory.c
@@ -1,19 +1,21 @@
-/* $Id: memory.c,v 1.4 1995/11/25 01:00:02 davem Exp $
+/* $Id: memory.c,v 1.6 1996/04/08 09:02:27 davem Exp $
  * memory.c: Prom routine for acquiring various bits of information
  *           about RAM on the machine, both virtual and physical.
  *
  * Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu)
  */
 
+#include <linux/kernel.h>
+
 #include <asm/openprom.h>
 #include <asm/oplib.h>
 
-/* This routine, for consistency, returns the ram parameters in the
- * V0 prom memory descriptor format.  I choose this format because I
+/* This routine, for consistancy, returns the ram parameters in the
+ * V0 prom memory descriptor format.  I choose this format becuase I
  * think it was the easiest to work with.  I feel the religious
  * arguments now... ;)  Also, I return the linked lists sorted to
- * prevent paging_init() upset stomach as I have not yet written
- * the pepto-bismol kernel module yet.
+ * prevent paging_init() upset stomache as I have not yet written
+ * the pepto-bismal kernel module yet.
  */
 
 struct linux_prom_registers prom_reg_memlist[64];
@@ -173,7 +175,24 @@
 		/* Sort the other two lists. */
 		prom_sortmemlist(prom_phys_total);
 		prom_sortmemlist(prom_phys_avail);
+		break;
 
+        case PROM_AP1000:
+          /* really simple memory map */
+          prom_phys_total[0].start_adr = 0x00000000;
+          prom_phys_total[0].num_bytes = 0x01000000; /* 16MB */
+          prom_phys_total[0].theres_more = 0x0;
+          prom_prom_taken[0].start_adr = 0x00000000; 
+          prom_prom_taken[0].num_bytes = 0x00000000;
+          prom_prom_taken[0].theres_more = 0x0;
+          prom_phys_avail[0].start_adr = 0x00000000;
+          prom_phys_avail[0].num_bytes = 0x01000000; /* 16MB */
+          prom_phys_avail[0].theres_more = 0x0;
+          prom_sortmemlist(prom_phys_total);
+          prom_sortmemlist(prom_prom_taken);
+          prom_sortmemlist(prom_phys_avail);
+          printk("Initialised AP1000 memory lists (forced 16MB)\n");
+          break;
 	};
 
 	/* Link all the lists into the top-level descriptor. */

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov with Sam's (original) version
of this