diff --git a/arch/sparc/mm/fault.c b/arch/sparc/mm/fault.c index e4d9c8e19df5d1e70c3de848898cba9fe977eda4..f25876a56fe628a9fba545a98c858a977d74d052 100644 --- a/arch/sparc/mm/fault.c +++ b/arch/sparc/mm/fault.c @@ -55,7 +55,7 @@ int prom_probe_memory (void) register int i; i = 0; - mlist= *prom_meminfo()->v0_available; + mlist= prom_meminfo(); bytes = tally = mlist->num_bytes; base_paddr = (unsigned long) mlist->start_adr; diff --git a/arch/sparc/prom/memory.c b/arch/sparc/prom/memory.c index b0c0f9c4fc14bc36f4bd67090d2a576a2f5f5bd4..08ac1bf2e588416ce3c33593ad533087aa20621e 100644 --- a/arch/sparc/prom/memory.c +++ b/arch/sparc/prom/memory.c @@ -1,5 +1,4 @@ -/* $Id: memory.c,v 1.15 2000/01/29 01:09:12 anton Exp $ - * memory.c: Prom routine for acquiring various bits of information +/* 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) @@ -22,19 +21,9 @@ */ struct linux_prom_registers prom_reg_memlist[64]; -struct linux_prom_registers prom_reg_tmp[64]; -struct linux_mlist_v0 prom_phys_total[64]; -struct linux_mlist_v0 prom_prom_taken[64]; struct linux_mlist_v0 prom_phys_avail[64]; -struct linux_mlist_v0 *prom_ptot_ptr = prom_phys_total; -struct linux_mlist_v0 *prom_ptak_ptr = prom_prom_taken; -struct linux_mlist_v0 *prom_pavl_ptr = prom_phys_avail; - -struct linux_mem_v0 prom_memlist; - - /* Internal Prom library routine to sort a linux_mlist_v0 memory * list. Used below in initialization. */ @@ -77,23 +66,6 @@ void __init prom_meminit(void) switch(prom_vers) { case PROM_V0: /* Nice, kind of easier to do in this case. */ - /* First, the total physical descriptors. */ - for(mptr = (*(romvec->pv_v0mem.v0_totphys)), iter=0; - mptr; mptr=mptr->theres_more, iter++) { - prom_phys_total[iter].start_adr = mptr->start_adr; - prom_phys_total[iter].num_bytes = mptr->num_bytes; - prom_phys_total[iter].theres_more = &prom_phys_total[iter+1]; - } - prom_phys_total[iter-1].theres_more = NULL; - /* Second, the total prom taken descriptors. */ - for(mptr = (*(romvec->pv_v0mem.v0_prommap)), iter=0; - mptr; mptr=mptr->theres_more, iter++) { - prom_prom_taken[iter].start_adr = mptr->start_adr; - prom_prom_taken[iter].num_bytes = mptr->num_bytes; - prom_prom_taken[iter].theres_more = &prom_prom_taken[iter+1]; - } - prom_prom_taken[iter-1].theres_more = NULL; - /* Last, the available physical descriptors. */ for(mptr = (*(romvec->pv_v0mem.v0_available)), iter=0; mptr; mptr=mptr->theres_more, iter++) { prom_phys_avail[iter].start_adr = mptr->start_adr; @@ -101,9 +73,6 @@ void __init prom_meminit(void) prom_phys_avail[iter].theres_more = &prom_phys_avail[iter+1]; } prom_phys_avail[iter-1].theres_more = NULL; - /* Sort all the lists. */ - prom_sortmemlist(prom_phys_total); - prom_sortmemlist(prom_prom_taken); prom_sortmemlist(prom_phys_avail); break; case PROM_V2: @@ -124,69 +93,12 @@ void __init prom_meminit(void) &prom_phys_avail[iter+1]; } prom_phys_avail[iter-1].theres_more = NULL; - - num_regs = prom_getproperty(node, "reg", - (char *) prom_reg_memlist, - sizeof(prom_reg_memlist)); - num_regs = (num_regs/sizeof(struct linux_prom_registers)); - for(iter=0; itermemorysize); - prom_phys_total[0].theres_more = NULL; - prom_prom_taken[0].start_adr = NULL; - prom_prom_taken[0].num_bytes = 0x0; - prom_prom_taken[0].theres_more = NULL; prom_phys_avail[0].start_adr = NULL; prom_phys_avail[0].num_bytes = *(sun4_romvec->memoryavail); prom_phys_avail[0].theres_more = NULL; @@ -196,20 +108,13 @@ void __init prom_meminit(void) default: break; }; - - /* Link all the lists into the top-level descriptor. */ - prom_memlist.v0_totphys=&prom_ptot_ptr; - prom_memlist.v0_prommap=&prom_ptak_ptr; - prom_memlist.v0_available=&prom_pavl_ptr; - - return; } /* This returns a pointer to our libraries internal v0 format - * memory descriptor. + * available memory list. */ -struct linux_mem_v0 * +struct linux_mlist_v0 * prom_meminfo(void) { - return &prom_memlist; + return prom_phys_avail; } diff --git a/include/asm-sparc/oplib.h b/include/asm-sparc/oplib.h index 17ba82ee220a791c40b13d4079ab607c11f4c2a4..6ff1a3bb15bc8a49909b597d7ccd34dcccfc5e07 100644 --- a/include/asm-sparc/oplib.h +++ b/include/asm-sparc/oplib.h @@ -86,17 +86,10 @@ extern void prom_seek(int device_handle, unsigned int seek_hival, /* Machine memory configuration routine. */ -/* This function returns a V0 format memory descriptor table, it has three - * entries. One for the total amount of physical ram on the machine, one - * for the amount of physical ram available, and one describing the virtual - * areas which are allocated by the prom. So, in a sense the physical - * available is a calculation of the total physical minus the physical mapped - * by the prom with virtual mappings. - * - * These lists are returned pre-sorted, this should make your life easier - * since the prom itself is way too lazy to do such nice things. +/* This function returns a V0 format available memory descriptor entry. + * This list is pre-sorted, */ -extern struct linux_mem_v0 *prom_meminfo(void); +extern struct linux_mlist_v0 *prom_meminfo(void); /* Miscellaneous routines, don't really fit in any category per se. */