blob: 73287ea85e4983fb7beb5aa84d7aa995311993cb [file] [log] [blame]
/*
* Copyright (C) 2018 Synaptics Incorporated. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* INFORMATION CONTAINED IN THIS DOCUMENT IS PROVIDED "AS-IS," AND
* SYNAPTICS EXPRESSLY DISCLAIMS ALL EXPRESS AND IMPLIED WARRANTIES,
* INCLUDING ANY IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE, AND ANY WARRANTIES OF NON-INFRINGEMENT OF ANY
* INTELLECTUAL PROPERTY RIGHTS. IN NO EVENT SHALL SYNAPTICS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, PUNITIVE, OR
* CONSEQUENTIAL DAMAGES ARISING OUT OF OR IN CONNECTION WITH THE USE
* OF THE INFORMATION CONTAINED IN THIS DOCUMENT, HOWEVER CAUSED AND
* BASED ON ANY THEORY OF LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
* NEGLIGENCE OR OTHER TORTIOUS ACTION, AND EVEN IF SYNAPTICS WAS
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. IF A TRIBUNAL OF
* COMPETENT JURISDICTION DOES NOT PERMIT THE DISCLAIMER OF DIRECT
* DAMAGES OR ANY OTHER DAMAGES, SYNAPTICS' TOTAL CUMULATIVE LIABILITY
* TO ANY PARTY SHALL NOT EXCEED ONE HUNDRED U.S. DOLLARS.
*/
/*
* bootloader memory layout:
* 0x00100000 - 0x0017C000 496kB vt, drm_img, custkey, bootloader preloaded buffer
* 0x0017C000 - 0x00180000 16kB 16kB for level 1 translation table base
* 0x00180000 - 0x004C0000 3328kB code, rodata, data, bss, heap
* 0x004C0000 - 0x00500000 256kB stack
*
*******************************************************************************/
OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
OUTPUT_ARCH(arm)
ENTRY(BootLoaderEntry)
SECTIONS
{
. = 0x1100000 - 0x10000;
__usb_console_buf_start = .;
. = 0x1100000;
__usb_console_buf_end = .;
. = 0x01600000;
__preload_buf_start = .;
. = 0x01680000 - 0x4000;
. = ALIGN(0x4000);
__ttb_base_start = .;
. = 0x01680000;
. = ALIGN(4);
.text :
{
*(.text)
}
.rodata :
{
*(.rodata)
}
. = ALIGN(4);
.data :
{
*(.data)
}
__exidx_start = .;
.ARM.exidx : { *(.ARM.exidx* .gnu.linkonce.armexidx.*) }
__exidx_end = .;
. = ALIGN(4);
.bss :
{
*(.bss)
}
. = ALIGN(8);
__heap_start = .;
. = 0x01A00000 - 0x00040000;
__heap_end = .;
. = 0x01A00000;
. = ALIGN(8);
__stack_start = .;
}