xref: /openbmc/linux/arch/powerpc/boot/crt0.S (revision 68643cfb)
194b212c2SPaul Mackerras/*
294b212c2SPaul Mackerras * Copyright (C) Paul Mackerras 1997.
394b212c2SPaul Mackerras *
494b212c2SPaul Mackerras * This program is free software; you can redistribute it and/or
594b212c2SPaul Mackerras * modify it under the terms of the GNU General Public License
694b212c2SPaul Mackerras * as published by the Free Software Foundation; either version
794b212c2SPaul Mackerras * 2 of the License, or (at your option) any later version.
894b212c2SPaul Mackerras *
994b212c2SPaul Mackerras * NOTE: this code runs in 32 bit mode and is packaged as ELF32.
1094b212c2SPaul Mackerras */
1194b212c2SPaul Mackerras
1294b212c2SPaul Mackerras#include "ppc_asm.h"
1394b212c2SPaul Mackerras
1494b212c2SPaul Mackerras	.text
1594b212c2SPaul Mackerras	.globl	_zimage_start
1694b212c2SPaul Mackerras_zimage_start:
1768643cfbSOlaf Hering	bl	1f
1894b212c2SPaul Mackerras
1968643cfbSOlaf Hering1:
2094b212c2SPaul Mackerras	mflr	r0
2168643cfbSOlaf Hering	lis	r9,1b@ha
2268643cfbSOlaf Hering	addi	r9,r9,1b@l
2394b212c2SPaul Mackerras	subf.	r0,r9,r0
2468643cfbSOlaf Hering	beq	3f
2594b212c2SPaul Mackerras
2694b212c2SPaul Mackerras	lis	r9,__got2_start@ha
2794b212c2SPaul Mackerras	addi	r9,r9,__got2_start@l
2894b212c2SPaul Mackerras	lis	r8,__got2_end@ha
2994b212c2SPaul Mackerras	addi	r8,r8,__got2_end@l
3094b212c2SPaul Mackerras	subf.	r8,r9,r8
3168643cfbSOlaf Hering	beq	3f
3294b212c2SPaul Mackerras	srwi.	r8,r8,2
3394b212c2SPaul Mackerras	mtctr	r8
3494b212c2SPaul Mackerras	add	r9,r0,r9
3568643cfbSOlaf Hering2:
3694b212c2SPaul Mackerras	lwz	r8,0(r9)
3794b212c2SPaul Mackerras	add	r8,r8,r0
3894b212c2SPaul Mackerras	stw	r8,0(r9)
3994b212c2SPaul Mackerras	addi	r9,r9,4
4068643cfbSOlaf Hering	bdnz	2b
4194b212c2SPaul Mackerras
4268643cfbSOlaf Hering3:
4394b212c2SPaul Mackerras	lis	r9,_start@h
4494b212c2SPaul Mackerras	add	r9,r0,r9
4594b212c2SPaul Mackerras	lis	r8,_etext@ha
4694b212c2SPaul Mackerras	addi	r8,r8,_etext@l
4794b212c2SPaul Mackerras	add	r8,r0,r8
4868643cfbSOlaf Hering4:	dcbf	r0,r9
4994b212c2SPaul Mackerras	icbi	r0,r9
5094b212c2SPaul Mackerras	addi	r9,r9,0x20
5194b212c2SPaul Mackerras	cmplwi	0,r9,8
5268643cfbSOlaf Hering	blt	4b
5394b212c2SPaul Mackerras	sync
5494b212c2SPaul Mackerras	isync
5594b212c2SPaul Mackerras
5694b212c2SPaul Mackerras	mr	r6,r1
5794b212c2SPaul Mackerras	b	start
5894b212c2SPaul Mackerras
59