sparc: unify sections.h
While doing this use standard names for start/end so we could use definitions straight from asm-generic for all the typical symbols. This also allowed us to drop the use of PROVIDE in the linker script so sprc is less non-standard on this area. Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
		
					parent
					
						
							
								b74e34dbde
							
						
					
				
			
			
				commit
				
					
						86ed40bd6f
					
				
			
		
					 7 changed files with 19 additions and 35 deletions
				
			
		| 
						 | 
					@ -1,8 +1,10 @@
 | 
				
			||||||
#ifndef ___ASM_SPARC_SECTIONS_H
 | 
					#ifndef __SPARC_SECTIONS_H
 | 
				
			||||||
#define ___ASM_SPARC_SECTIONS_H
 | 
					#define __SPARC_SECTIONS_H
 | 
				
			||||||
#if defined(__sparc__) && defined(__arch64__)
 | 
					
 | 
				
			||||||
#include <asm/sections_64.h>
 | 
					/* nothing to see, move along */
 | 
				
			||||||
#else
 | 
					#include <asm-generic/sections.h>
 | 
				
			||||||
#include <asm/sections_32.h>
 | 
					
 | 
				
			||||||
#endif
 | 
					/* sparc entry point */
 | 
				
			||||||
 | 
					extern char _start[];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,6 +0,0 @@
 | 
				
			||||||
#ifndef _SPARC_SECTIONS_H
 | 
					 | 
				
			||||||
#define _SPARC_SECTIONS_H
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#include <asm-generic/sections.h>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,9 +0,0 @@
 | 
				
			||||||
#ifndef _SPARC64_SECTIONS_H
 | 
					 | 
				
			||||||
#define _SPARC64_SECTIONS_H
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/* nothing to see, move along */
 | 
					 | 
				
			||||||
#include <asm-generic/sections.h>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
extern char _start[];
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
| 
						 | 
					@ -990,7 +990,7 @@ sun4c_continue_boot:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		/* Zero out our BSS section. */
 | 
							/* Zero out our BSS section. */
 | 
				
			||||||
		set	__bss_start , %o0	! First address of BSS
 | 
							set	__bss_start , %o0	! First address of BSS
 | 
				
			||||||
		set	end , %o1		! Last address of BSS
 | 
							set	_end , %o1		! Last address of BSS
 | 
				
			||||||
		add	%o0, 0x1, %o0
 | 
							add	%o0, 0x1, %o0
 | 
				
			||||||
1:	
 | 
					1:	
 | 
				
			||||||
		stb	%g0, [%o0]
 | 
							stb	%g0, [%o0]
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -49,7 +49,6 @@ SECTIONS
 | 
				
			||||||
		*(.gnu.warning)
 | 
							*(.gnu.warning)
 | 
				
			||||||
	} = 0
 | 
						} = 0
 | 
				
			||||||
	_etext = .;
 | 
						_etext = .;
 | 
				
			||||||
	PROVIDE (etext = .);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	RO_DATA(PAGE_SIZE)
 | 
						RO_DATA(PAGE_SIZE)
 | 
				
			||||||
	.data :	{
 | 
						.data :	{
 | 
				
			||||||
| 
						 | 
					@ -69,7 +68,6 @@ SECTIONS
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	/* End of data section */
 | 
						/* End of data section */
 | 
				
			||||||
	_edata = .;
 | 
						_edata = .;
 | 
				
			||||||
	PROVIDE (edata = .);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/* init_task */
 | 
						/* init_task */
 | 
				
			||||||
	. = ALIGN(THREAD_SIZE);
 | 
						. = ALIGN(THREAD_SIZE);
 | 
				
			||||||
| 
						 | 
					@ -172,7 +170,6 @@ SECTIONS
 | 
				
			||||||
		*(COMMON)
 | 
							*(COMMON)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	_end = . ;
 | 
						_end = . ;
 | 
				
			||||||
	PROVIDE (end = .);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/DISCARD/ : {
 | 
						/DISCARD/ : {
 | 
				
			||||||
		EXIT_TEXT
 | 
							EXIT_TEXT
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -25,6 +25,7 @@
 | 
				
			||||||
#include <linux/pagemap.h>
 | 
					#include <linux/pagemap.h>
 | 
				
			||||||
#include <linux/poison.h>
 | 
					#include <linux/poison.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <asm/sections.h>
 | 
				
			||||||
#include <asm/system.h>
 | 
					#include <asm/system.h>
 | 
				
			||||||
#include <asm/vac-ops.h>
 | 
					#include <asm/vac-ops.h>
 | 
				
			||||||
#include <asm/page.h>
 | 
					#include <asm/page.h>
 | 
				
			||||||
| 
						 | 
					@ -48,9 +49,6 @@ unsigned long sparc_unmapped_base;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
struct pgtable_cache_struct pgt_quicklists;
 | 
					struct pgtable_cache_struct pgt_quicklists;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* References to section boundaries */
 | 
					 | 
				
			||||||
extern char __init_begin, __init_end, _start, _end, etext , edata;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/* Initial ramdisk setup */
 | 
					/* Initial ramdisk setup */
 | 
				
			||||||
extern unsigned int sparc_ramdisk_image;
 | 
					extern unsigned int sparc_ramdisk_image;
 | 
				
			||||||
extern unsigned int sparc_ramdisk_size;
 | 
					extern unsigned int sparc_ramdisk_size;
 | 
				
			||||||
| 
						 | 
					@ -450,9 +448,9 @@ void __init mem_init(void)
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	totalram_pages += totalhigh_pages;
 | 
						totalram_pages += totalhigh_pages;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	codepages = (((unsigned long) &etext) - ((unsigned long)&_start));
 | 
						codepages = (((unsigned long) &_etext) - ((unsigned long)&_start));
 | 
				
			||||||
	codepages = PAGE_ALIGN(codepages) >> PAGE_SHIFT;
 | 
						codepages = PAGE_ALIGN(codepages) >> PAGE_SHIFT;
 | 
				
			||||||
	datapages = (((unsigned long) &edata) - ((unsigned long)&etext));
 | 
						datapages = (((unsigned long) &_edata) - ((unsigned long)&_etext));
 | 
				
			||||||
	datapages = PAGE_ALIGN(datapages) >> PAGE_SHIFT;
 | 
						datapages = PAGE_ALIGN(datapages) >> PAGE_SHIFT;
 | 
				
			||||||
	initpages = (((unsigned long) &__init_end) - ((unsigned long) &__init_begin));
 | 
						initpages = (((unsigned long) &__init_end) - ((unsigned long) &__init_begin));
 | 
				
			||||||
	initpages = PAGE_ALIGN(initpages) >> PAGE_SHIFT;
 | 
						initpages = PAGE_ALIGN(initpages) >> PAGE_SHIFT;
 | 
				
			||||||
| 
						 | 
					@ -476,8 +474,10 @@ void __init mem_init(void)
 | 
				
			||||||
void free_initmem (void)
 | 
					void free_initmem (void)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	unsigned long addr;
 | 
						unsigned long addr;
 | 
				
			||||||
 | 
						unsigned long freed;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	addr = (unsigned long)(&__init_begin);
 | 
						addr = (unsigned long)(&__init_begin);
 | 
				
			||||||
 | 
						freed = (unsigned long)(&__init_end) - addr;
 | 
				
			||||||
	for (; addr < (unsigned long)(&__init_end); addr += PAGE_SIZE) {
 | 
						for (; addr < (unsigned long)(&__init_end); addr += PAGE_SIZE) {
 | 
				
			||||||
		struct page *p;
 | 
							struct page *p;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -490,8 +490,8 @@ void free_initmem (void)
 | 
				
			||||||
		totalram_pages++;
 | 
							totalram_pages++;
 | 
				
			||||||
		num_physpages++;
 | 
							num_physpages++;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	printk(KERN_INFO "Freeing unused kernel memory: %dk freed\n",
 | 
						printk(KERN_INFO "Freeing unused kernel memory: %ldk freed\n",
 | 
				
			||||||
		(&__init_end - &__init_begin) >> 10);
 | 
							freed >> 10);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef CONFIG_BLK_DEV_INITRD
 | 
					#ifdef CONFIG_BLK_DEV_INITRD
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -18,6 +18,7 @@
 | 
				
			||||||
#include <linux/seq_file.h>
 | 
					#include <linux/seq_file.h>
 | 
				
			||||||
#include <linux/scatterlist.h>
 | 
					#include <linux/scatterlist.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <asm/sections.h>
 | 
				
			||||||
#include <asm/page.h>
 | 
					#include <asm/page.h>
 | 
				
			||||||
#include <asm/pgalloc.h>
 | 
					#include <asm/pgalloc.h>
 | 
				
			||||||
#include <asm/pgtable.h>
 | 
					#include <asm/pgtable.h>
 | 
				
			||||||
| 
						 | 
					@ -1951,7 +1952,6 @@ void sun4c_update_mmu_cache(struct vm_area_struct *vma, unsigned long address, p
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
extern void sparc_context_init(int);
 | 
					extern void sparc_context_init(int);
 | 
				
			||||||
extern unsigned long end;
 | 
					 | 
				
			||||||
extern unsigned long bootmem_init(unsigned long *pages_avail);
 | 
					extern unsigned long bootmem_init(unsigned long *pages_avail);
 | 
				
			||||||
extern unsigned long last_valid_pfn;
 | 
					extern unsigned long last_valid_pfn;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1962,7 +1962,7 @@ void __init sun4c_paging_init(void)
 | 
				
			||||||
	extern struct resource sparc_iomap;
 | 
						extern struct resource sparc_iomap;
 | 
				
			||||||
	unsigned long end_pfn, pages_avail;
 | 
						unsigned long end_pfn, pages_avail;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	kernel_end = (unsigned long) &end;
 | 
						kernel_end = (unsigned long) &_end;
 | 
				
			||||||
	kernel_end = SUN4C_REAL_PGDIR_ALIGN(kernel_end);
 | 
						kernel_end = SUN4C_REAL_PGDIR_ALIGN(kernel_end);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	pages_avail = 0;
 | 
						pages_avail = 0;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue