aboutsummaryrefslogtreecommitdiff
path: root/tests/tcg/aarch64/system/kernel.ld
blob: aef043e31db0f1f03260bc1593bde98794b2a243 (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
ENTRY(__start)

MEMORY {
    /* On virt machine RAM starts at 1 GiB. */

    /* Align text and rodata to the 1st 2 MiB chunk. */
    TXT (rx) : ORIGIN = 1 << 30, LENGTH = 2M
    /* Align r/w data to the 2nd 2 MiB chunk. */
    DAT (rw) : ORIGIN = (1 << 30) + 2M, LENGTH = 2M
    /* Align the MTE-enabled page to the 3rd 2 MiB chunk. */
    TAG (rw) : ORIGIN = (1 << 30) + 4M, LENGTH = 2M
}

SECTIONS {
    .text : {
        *(.text)
        *(.rodata)
    } >TXT
    .data : {
        *(.data)
        *(.bss)
    } >DAT
    .tag : {
        /*
         * Symbol 'mte_page' is used in boot.S to setup the PTE and in the mte.S
         * test as the address that the MTE instructions operate on.
         */
        mte_page = .;
    } >TAG
    /DISCARD/ : {
        *(.ARM.attributes)
    }
}