aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/mpc85xx/image/spi-loader/head.S
blob: 032e9141260dca403d0f873108ccf180354e96b3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
/* SPDX-License-Identifier: GPL-2.0-or-later */
/*
 * Copyright (C) 2022 Matthias Schiffer <mschiffer@universe-factory.net>
 *
 * Based on Linux arch/powerpc/boot/crt0.S, which is:
 *
 * Copyright (C) Paul Mackerras 1997.
 */

#include <ppc_asm.h>

	.text
	.global _start
_start:
	/* Do a cache flush for our text, in case the loader didn't */
	lis	r3,_text_start@ha
	addi	r3,r3,_text_start@l
	li	r4,_text_len
	bl	flush_cache

	/* Clear the BSS */
	lis	r3,_bss_start@ha
	addi	r3,r3,_bss_start@l
	li	r4,0
	li	r5,_bss_len
	bl	memset

	/* Set up stack */
	lis	r1,_stack_top@ha
	addi	r1,r1,_stack_top@l
	/* Establish a stack frame */
	li	r0,0
	stwu	r0,-16(r1)

	/* Call start */
	b	start