1f6482872SAlex BennéeENTRY(__start) 2f6482872SAlex Bennée 3f0ef6c35SGustavo RomeroMEMORY { 4f0ef6c35SGustavo Romero /* On virt machine RAM starts at 1 GiB. */ 5f0ef6c35SGustavo Romero 6f0ef6c35SGustavo Romero /* Align text and rodata to the 1st 2 MiB chunk. */ 7f0ef6c35SGustavo Romero TXT (rx) : ORIGIN = 1 << 30, LENGTH = 2M 8f0ef6c35SGustavo Romero /* Align r/w data to the 2nd 2 MiB chunk. */ 9f0ef6c35SGustavo Romero DAT (rw) : ORIGIN = (1 << 30) + 2M, LENGTH = 2M 10*06dd94e8SGustavo Romero /* Align the MTE-enabled page to the 3rd 2 MiB chunk. */ 11*06dd94e8SGustavo Romero TAG (rw) : ORIGIN = (1 << 30) + 4M, LENGTH = 2M 12f0ef6c35SGustavo Romero} 13f0ef6c35SGustavo Romero 14f0ef6c35SGustavo RomeroSECTIONS { 15f6482872SAlex Bennée .text : { 16f6482872SAlex Bennée *(.text) 17f6482872SAlex Bennée *(.rodata) 18f0ef6c35SGustavo Romero } >TXT 19f6482872SAlex Bennée .data : { 20f6482872SAlex Bennée *(.data) 21f6482872SAlex Bennée *(.bss) 22f0ef6c35SGustavo Romero } >DAT 23*06dd94e8SGustavo Romero .tag : { 24*06dd94e8SGustavo Romero /* 25*06dd94e8SGustavo Romero * Symbol 'mte_page' is used in boot.S to setup the PTE and in the mte.S 26*06dd94e8SGustavo Romero * test as the address that the MTE instructions operate on. 27*06dd94e8SGustavo Romero */ 28*06dd94e8SGustavo Romero mte_page = .; 29*06dd94e8SGustavo Romero } >TAG 30f6482872SAlex Bennée /DISCARD/ : { 31f6482872SAlex Bennée *(.ARM.attributes) 32f6482872SAlex Bennée } 33f6482872SAlex Bennée} 34