aboutsummaryrefslogtreecommitdiff
path: root/src/arch/ppc/init/crt0.S.lb
diff options
context:
space:
mode:
Diffstat (limited to 'src/arch/ppc/init/crt0.S.lb')
-rw-r--r--src/arch/ppc/init/crt0.S.lb137
1 files changed, 0 insertions, 137 deletions
diff --git a/src/arch/ppc/init/crt0.S.lb b/src/arch/ppc/init/crt0.S.lb
deleted file mode 100644
index bbccc59213..0000000000
--- a/src/arch/ppc/init/crt0.S.lb
+++ /dev/null
@@ -1,137 +0,0 @@
-/* Copyright 2000 AG Electronics Ltd. */
-/* This code is distributed without warranty under the GPL v2 (see COPYING) */
-
-#define ASM
-#include "ppcreg.h"
-#include <ppc_asm.tmpl>
-
-.section ".rom.reset", "ax", @progbits
-
-.globl _start
-_start:
- b system_reset
-
-.section ".rom.exception_vectors", "ax", @progbits
-
-%%EXCEPTION_VECTOR_TABLE%%
-
-.section ".rom.data", "a", @progbits
-.section ".rom.text", "ax", @progbits
-
-system_reset:
-
- /*
- * Do processor family initialization
- */
-%%FAMILY_INIT%%
-
- /*
- * Do processor specific initialization
- */
-%%PROCESSOR_INIT%%
-
-#if CONFIG_USE_DCACHE_RAM == 1
-#define DCACHE_RAM_END (CONFIG_DCACHE_RAM_BASE + CONFIG_DCACHE_RAM_SIZE - 1)
- /*
- * Initialize data cache blocks
- * (assumes cache block size of 32 bytes)
- *
- * NOTE: This may need to be moved to FAMILY_INIT if
- * dcbz is not supported on all CPU's
- */
- lis r1, CONFIG_DCACHE_RAM_BASE@h
- ori r1, r1, CONFIG_DCACHE_RAM_BASE@l
- li r3, (CONFIG_DCACHE_RAM_SIZE / 32)
- mtctr r3
-0: dcbz r0, r1
- addi r1, r1, 32
- bdnz 0b
-
- /*
- * Set up stack in cache. The SP must be 16-byte (4-word) aligned
- * for SYSV EABI or 8-byte (2-word) aligned for PPC EABI, so we make
- * it 16-byte aligned to cover both cases. Also we have to ensure that
- * the first word is located within the cache.
- */
- lis r1, (CONFIG_DCACHE_RAM_BASE+CONFIG_DCACHE_RAM_SIZE)@h
- ori r1, r1, (CONFIG_DCACHE_RAM_BASE+CONFIG_DCACHE_RAM_SIZE)@l
- lis r0, 0
- stwu r0, -4(r1)
- stwu r0, -4(r1)
- stwu r0, -4(r1)
- stwu r0, -4(r1)
-
-#if 0
- /*
- * Clear stack
- */
- lis r4, CONFIG_DCACHE_RAM_BASE@h
- ori r4, r4, CONFIG_DCACHE_RAM_BASE@l
- lis r7, DCACHE_RAM_END@h
- ori r7, r7, DCACHE_RAM_END@l
- lis r5, 0
-1: stwx r5, 0, r4
- addi r4, r4, 4
- cmp 0, 0, r4, r7
- ble 1b
- sync
-#endif
-
- /*
- * Set up the EABI pointers, before we enter any C code
- */
- lis r13, _SDA_BASE_@h
- ori r13, r13, _SDA_BASE_@l
- lis r2, _SDA2_BASE_@h
- ori r2, r2, _SDA2_BASE_@l
-
- /*
- * load start address into SRR0 for rfi
- */
- lis r3, ppc_main@h
- ori r3, r3, ppc_main@l
- mtspr SRR0, r3
-
- /*
- * load the current MSR into SRR1 so that it will be copied
- * back into MSR on rfi
- */
- mfmsr r4
- mtspr SRR1, r4 // load SRR1 with r4
-
- /*
- * If something returns after rfi then die
- */
- lis r3, dead@h
- ori r3, r3, dead@l
- mtlr r3
-
- /*
- * Complete rest of initialization in C (ppc_main)
- */
- rfi
-#endif /* CONFIG_USE_DCACHE_RAM */
-
- /*
- * Stop here if something goes wrong
- */
-dead:
- b dead
- /*NOTREACHED*/
-
-/* Remove need for ecrti.o and ectrn.o */
-.globl __init
-__init:
-.globl __fini
-__fini:
-.globl __CTOR_LIST__
-__CTOR_LIST__:
-.globl __CTOR_END__
-__CTOR_END__:
-.globl __DTOR_LIST__
-__DTOR_LIST__:
-.globl __DTOR_END__
-__DTOR_END__:
- blr
-
-%%NORTHBRIDGE_INIT%%