1 /***************************************************************************
3 * Open \______ \ ____ ____ | | _\_ |__ _______ ___
4 * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5 * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
10 * Copyright (C) 2008 by Marcoen Hirschberg
12 * This program is free software; you can redistribute it and/or
13 * modify it under the terms of the GNU General Public License
14 * as published by the Free Software Foundation; either version 2
15 * of the License, or (at your option) any later version.
17 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
18 * KIND, either express or implied.
20 ****************************************************************************/
24 .section .init.text,"ax",%progbits
28 /* Exception vectors */
38 #if CONFIG_CPU==S5L8700
39 .word 0x43554644 /* DFUC */
41 .word 0xdeadbeef /* to keep the same PC offsets */
45 .word undef_instr_handler
46 .word software_int_handler
47 .word prefetch_abort_handler
48 .word data_abort_handler
49 .word reserved_handler
58 msr cpsr_c, #0xd3 /* enter supervisor mode, disable IRQ/FIQ */
60 #if CONFIG_CPU==AS3525 && !defined(BOOTLOADER)
61 /* Setup MMU : has to be done before accessing IRAM ! */
84 /* Initialise bss section to zero */
93 /* Set up some stack and munge it with 0xdeadbeef */
102 /* Set up stack for IRQ mode */
106 /* Set up stack for FIQ mode */
110 /* Let abort and undefined modes use IRQ stack */
116 /* Switch back to supervisor mode */
122 /* All illegal exceptions call into UIE with exception address as first
123 * parameter. This is calculated differently depending on which exception
124 * we're in. Second parameter is exception number, used for a string lookup
131 /* We run supervisor mode most of the time, and should never see a software
132 * exception being thrown. Perhaps make it illegal and call UIE? */
133 software_int_handler:
137 prefetch_abort_handler:
147 /* 256 words of IRQ stack */
151 /* 256 words of FIQ stack */