1 /******************************************************************************
2 * Copyright (c) 2004, 2008 IBM Corporation
4 * This program and the accompanying materials
5 * are made available under the terms of the BSD License
6 * which accompanies this distribution, and is available at
7 * http://www.opensource.org/licenses/bsd-license.php
10 * IBM Corporation - initial implementation
11 *****************************************************************************/
14 #include "../../llfw/boot_abort.h"
16 /*#################### defines #####################*/
17 #define STACK_SIZE 0x4000
19 /*#################### code ########################*/
30 /* clear out bss section */
31 LOAD64(r3, (__bss_start - 8))
32 LOAD64(r4, __bss_size)
34 /* divide __bss_size by 8 to get number */
35 /* of dwords to clear */
44 LOAD64(r1, __stack_end + STACK_SIZE)
46 /* save return address beside stack */
54 /* ------------------------------------ */
56 /* r10 = cpu_init_slave address - r3 */
57 /* r11 = slave_setup address - r4 */
58 /* ------------------------------------ */
63 /* return to caller... */
64 LOAD64(r1, __stack_end + STACK_SIZE)
70 /* #################################### */
71 /* Basic Additional Functions */
72 /* for extended lib functions see */
73 /* external library */
74 /* #################################### */
77 /* ------------------------------------ */
78 /* updates toc in r2 */
79 /* ------------------------------------ */
81 LOAD64(r2, __toc_start)
84 /* ------------------------------------ */
85 /* stores arg#1 in r27 and stops */
86 /* ------------------------------------ */
89 BOOT_ABORT_R3HINT(ABORT_CANIO, ALTBOOT, msg_e_ierror);