bsps/powerpc: Use shared linker command file

Close #3339.
This commit is contained in:
Sebastian Huber committed 2018-03-16 15:11:19 +01:00
1 parent 9860cc7bba
commit 2e5cf7fb53
4 files changed
+42 -225

No files matched your search

+15 -5
View File
@@ -3,13 +3,15 @@
#include <bspopts.h>
#.section ".text"
.section .entry_point_section,"awx",@progbits
.global _start
.global bsp_interrupt_stack_start
.global bsp_interrupt_stack_end
.global _start
.section .bsp_start_text,"awx",@progbits
_start:
lis %r1,_stack@h
ori %r1,%r1,_stack@l
lis %r1,bsp_interrupt_stack_start@h
ori %r1,%r1,bsp_interrupt_stack_start@l
/* Make sure stack is properly aligned */
li %r3, CPU_STACK_ALIGNMENT - 1
andc %r1, %r1, %r3
@@ -40,3 +42,11 @@ __eabi:
_reset:
b _start
.size _reset, . - _reset
/* Start stack area */
.section ".bsp_rwextra", "aw", @nobits
.align 4
.space 4096
bsp_interrupt_stack_start:
.space 32768
bsp_interrupt_stack_end:
@@ -44,7 +44,6 @@ uint32_t bsp_clicks_per_usec;
extern char RamSize[];
extern char bsp_interrupt_stack_start[];
extern char bsp_interrupt_stack_end[];
extern char bsp_interrupt_stack_size[];
uint32_t BSP_mem_size = (uint32_t)RamSize;
/* Default decrementer exception handler */
@@ -87,7 +86,7 @@ void bsp_start( void )
* Initialize the interrupt related settings.
*/
intrStackStart = (uintptr_t) bsp_interrupt_stack_start;
intrStackSize = (uintptr_t) bsp_interrupt_stack_size;
intrStackSize = (uintptr_t) bsp_interrupt_stack_end - intrStackStart;
BSP_mem_size = (uint32_t )RamSize;
@@ -1,4 +1,5 @@
#include <bsp/bootcard.h>
#include <bsp/linker-symbols.h>
static void
__outb(int port, unsigned char v)
@@ -30,13 +31,6 @@ __bzero (unsigned char *d, int len)
*d++ = 0;
}
extern unsigned char __sdata2_load[], __sdata2_start[], __sdata2_end[];
extern unsigned char __data_load[], __data_start[], __data_end[];
extern unsigned char __sdata_load[], __sdata_start[], __sdata_end[];
extern unsigned char __sbss2_start[], __sbss2_end[];
extern unsigned char __sbss_start[], __sbss_end[];
extern unsigned char __bss_start[], __bss_end[];
/*
* Prototype this here because it is just the entry symbol and
@@ -49,12 +43,9 @@ void cmain (void)
/*
* init variable sections
*/
__memcpy (__sdata2_start, __sdata2_load, __sdata2_end - __sdata2_start);
__memcpy (__sdata_start , __sdata_load , __sdata_end - __sdata_start);
__memcpy (__data_start , __data_load , __data_end - __data_start);
__bzero (__sbss2_start , __sbss2_end - __sbss2_start);
__bzero (__sbss_start , __sbss_end - __sbss_start);
__bzero (__bss_start , __bss_end - __bss_start);
__memcpy (bsp_section_data_begin, bsp_section_data_load_begin, (int)bsp_section_data_size);
__bzero (bsp_section_bss_begin, (int)bsp_section_bss_size);
__bzero (bsp_section_sbss_begin, (int)bsp_section_sbss_size);
/* printk( "start of BSP\n"); */
boot_card(0);
/* printk( "end of BSP\n"); */
File diff suppressed because it is too large. Load diff