123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- /*
- * SPDX-License-Identifier: BSD-2-Clause
- *
- * Copyright (c) 2019 Western Digital Corporation or its affiliates.
- *
- * Authors:
- * Anup Patel <anup.patel@wdc.com>
- */
- . = FW_TEXT_START;
- /* Don't add any section between FW_TEXT_START and _fw_start */
- PROVIDE(_fw_start = .);
- . = ALIGN(0x1000); /* Need this to create proper sections */
- /* Beginning of the code section */
- .text :
- {
- PROVIDE(_text_start = .);
- *(.entry)
- *(.text)
- . = ALIGN(8);
- PROVIDE(_text_end = .);
- }
- /* End of the code sections */
- . = ALIGN(0x1000); /* Ensure next section is page aligned */
- /* Beginning of the read-only data sections */
- PROVIDE(_rodata_start = .);
- .rodata :
- {
- *(.rodata .rodata.*)
- . = ALIGN(8);
- }
- . = ALIGN(0x1000); /* Ensure next section is page aligned */
- .dynsym : {
- PROVIDE(__dyn_sym_start = .);
- *(.dynsym)
- PROVIDE(__dyn_sym_end = .);
- }
- .rela.dyn : {
- PROVIDE(__rel_dyn_start = .);
- *(.rela*)
- . = ALIGN(8);
- PROVIDE(__rel_dyn_end = .);
- }
- PROVIDE(_rodata_end = .);
- /* End of the read-only data sections */
- /*
- * PMP regions must be to be power-of-2. RX/RW will have separate
- * regions, so ensure that the split is power-of-2.
- */
- . = ALIGN(1 << LOG2CEIL((SIZEOF(.rodata) + SIZEOF(.text)
- + SIZEOF(.dynsym) + SIZEOF(.rela.dyn))));
- PROVIDE(_fw_rw_start = .);
- /* Beginning of the read-write data sections */
- .data :
- {
- PROVIDE(_data_start = .);
- *(.sdata)
- *(.sdata.*)
- *(.data)
- *(.data.*)
- *(.readmostly.data)
- *(*.data)
- . = ALIGN(8);
- PROVIDE(_data_end = .);
- }
- . = ALIGN(0x1000); /* Ensure next section is page aligned */
- .bss :
- {
- PROVIDE(_bss_start = .);
- *(.sbss)
- *(.sbss.*)
- *(.bss)
- *(.bss.*)
- . = ALIGN(8);
- PROVIDE(_bss_end = .);
- }
- /* End of the read-write data sections */
- . = ALIGN(0x1000); /* Need this to create proper sections */
- PROVIDE(_fw_end = .);
|