xref: /rk3399_ARM-atf/plat/rpi/common/aarch64/armstub8_header.S (revision 5318255f12f88c91846b7261ce12254fb8395557)
1*97ef5305SMario Bălănică/*
2*97ef5305SMario Bălănică * Copyright (c) 2019-2024, Arm Limited and Contributors. All rights reserved.
3*97ef5305SMario Bălănică *
4*97ef5305SMario Bălănică * SPDX-License-Identifier: BSD-3-Clause
5*97ef5305SMario Bălănică */
6*97ef5305SMario Bălănică
7*97ef5305SMario Bălănică/*
8*97ef5305SMario Bălănică * armstub8.bin header to let the GPU firmware recognise this code.
9*97ef5305SMario Bălănică * It will then write the load address of the kernel image and the DT
10*97ef5305SMario Bălănică * after the header magic in RAM, so we can read those addresses at runtime.
11*97ef5305SMario Bălănică */
12*97ef5305SMario Bălănică
13*97ef5305SMario Bălănică.text
14*97ef5305SMario Bălănică	b	armstub8_end
15*97ef5305SMario Bălănică
16*97ef5305SMario Bălănică.global stub_magic
17*97ef5305SMario Bălănică.global dtb_ptr32
18*97ef5305SMario Bălănică.global kernel_entry32
19*97ef5305SMario Bălănică
20*97ef5305SMario Bălănică.org 0xf0
21*97ef5305SMario Bălănicăarmstub8:
22*97ef5305SMario Bălănicăstub_magic:
23*97ef5305SMario Bălănică	.word 0x5afe570b
24*97ef5305SMario Bălănicăstub_version:
25*97ef5305SMario Bălănică	.word 0
26*97ef5305SMario Bălănicădtb_ptr32:
27*97ef5305SMario Bălănică	.word 0x0
28*97ef5305SMario Bălănicăkernel_entry32:
29*97ef5305SMario Bălănică	.word 0x0
30*97ef5305SMario Bălănică
31*97ef5305SMario Bălănică/*
32*97ef5305SMario Bălănică * Technically an offset of 0x100 would suffice, but the follow-up code
33*97ef5305SMario Bălănică * (bl31_entrypoint.S at BL31_BASE) needs to be page aligned, so pad here
34*97ef5305SMario Bălănică * till the end of the first 4K page.
35*97ef5305SMario Bălănică */
36*97ef5305SMario Bălănică.org 0x1000
37*97ef5305SMario Bălănicăarmstub8_end:
38