mirror of
https://github.com/torvalds/linux.git
synced 2024-12-13 22:53:20 +00:00
709ebe6dff
- handle inexact watchpoint addresses from Douglas Anderson. - decompressor serial debug cleanups from Linus Walleij. - update L2 cache prefetch bits from Guillaume Tucker. - add text offset and malloc size to the decompressor kexec data. -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEuNNh8scc2k/wOAE+9OeQG+StrGQFAl+MwEcACgkQ9OeQG+St rGSfEw//QywY4JWkK/4Qi35jiihr4b6ANUDbai2QbeOMCu00aUfpRXTmm/J6/+LU ACFLW456L405PmdPx6GirpRvkUOoGnfs/SMwO3GCxiK02vtnh7Ewy4wQi5ZbeIXQ 0scYBadzdpt3WVI/Lxq9grN476X2xZetwpZq05H4WHip6xwTH/JNeMPNhNuP1HgQ GoTFl+xTA8SirNobzzrhpLfBja3xdN6lVjmB6b+DdBBtbgh/k/4oFjLT1eHAJ511 SBQWuN3GjXMXhDfX93g+17qJNZE40593DSMzgdnK5KrxEC2YzsbGNI0eulID6Zlf lhB9kktvEZ5NfnItBUFqB+To+8Jr0eRu1Dj2Bu9qJ6c4pNo6bDt++D45Aj/jADKx wrLiuOl4g9wJ376DJCp6+LkDAcwaAjg4QTdt8GfAEifbnPCTq74vaKo2xGTeBI1E sbxaXcSSan+uP6NA7/cq/SwEhgA9knyCICgFNXb68hEyR4X9CCMPav+3tNOz6V8E u62DQkKJU2v7wnwR7lDJxKu08xlf2XBX3P+OSA0FlMYbTsBmKveTywIqEzKNQWvm e0gdgWIfCKfQmxVmpuS+3zsSTR1ZSmLkSwTV22juoJ9jQn2p6n5LJnnzT/Pl3ldS WG0DVGQYQSkgSkrbsiudZ70HfrK6UAm4VkJR5ay98HyS3XT537k= =0hdr -----END PGP SIGNATURE----- Merge tag 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm Pull ARM updates from Russell King: - handle inexact watchpoint addresses (Douglas Anderson) - decompressor serial debug cleanups (Linus Walleij) - update L2 cache prefetch bits (Guillaume Tucker) - add text offset and malloc size to the decompressor kexec data * tag 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm: ARM: add malloc size to decompressor kexec size structure ARM: add TEXT_OFFSET to decompressor kexec image structure ARM: 9007/1: l2c: fix prefetch bits init in L2X0_AUX_CTRL using DT values ARM: 9010/1: uncompress: Print the location of appended DTB ARM: 9009/1: uncompress: Enable debug in head.S ARM: 9008/1: uncompress: Drop excess whitespace print ARM: 9006/1: uncompress: Wait for ready and busy in debug prints ARM: 9005/1: debug: Select flow control for all debug UARTs ARM: 9004/1: debug: Split waituart to CTS and TXRDY ARM: 9003/1: uncompress: Delete unused debug macros ARM: 8997/2: hw_breakpoint: Handle inexact watchpoint addresses
142 lines
3.3 KiB
ArmAsm
142 lines
3.3 KiB
ArmAsm
/* SPDX-License-Identifier: GPL-2.0-only */
|
|
/*
|
|
* Copyright (C) 2000 Russell King
|
|
*/
|
|
#include <asm/vmlinux.lds.h>
|
|
|
|
#ifdef CONFIG_CPU_ENDIAN_BE8
|
|
#define ZIMAGE_MAGIC(x) ( (((x) >> 24) & 0x000000ff) | \
|
|
(((x) >> 8) & 0x0000ff00) | \
|
|
(((x) << 8) & 0x00ff0000) | \
|
|
(((x) << 24) & 0xff000000) )
|
|
#else
|
|
#define ZIMAGE_MAGIC(x) (x)
|
|
#endif
|
|
|
|
OUTPUT_ARCH(arm)
|
|
ENTRY(_start)
|
|
SECTIONS
|
|
{
|
|
/DISCARD/ : {
|
|
COMMON_DISCARDS
|
|
*(.ARM.exidx*)
|
|
*(.ARM.extab*)
|
|
*(.note.*)
|
|
*(.rel.*)
|
|
/*
|
|
* Discard any r/w data - this produces a link error if we have any,
|
|
* which is required for PIC decompression. Local data generates
|
|
* GOTOFF relocations, which prevents it being relocated independently
|
|
* of the text/got segments.
|
|
*/
|
|
*(.data)
|
|
}
|
|
|
|
. = TEXT_START;
|
|
_text = .;
|
|
|
|
.text : {
|
|
_start = .;
|
|
*(.start)
|
|
*(.text)
|
|
*(.text.*)
|
|
ARM_STUBS_TEXT
|
|
}
|
|
.table : ALIGN(4) {
|
|
_table_start = .;
|
|
LONG(ZIMAGE_MAGIC(6))
|
|
LONG(ZIMAGE_MAGIC(0x5a534c4b))
|
|
LONG(ZIMAGE_MAGIC(__piggy_size_addr - _start))
|
|
LONG(ZIMAGE_MAGIC(_kernel_bss_size))
|
|
LONG(ZIMAGE_MAGIC(TEXT_OFFSET))
|
|
LONG(ZIMAGE_MAGIC(MALLOC_SIZE))
|
|
LONG(0)
|
|
_table_end = .;
|
|
}
|
|
.rodata : {
|
|
*(.rodata)
|
|
*(.rodata.*)
|
|
*(.data.rel.ro)
|
|
}
|
|
.piggydata : {
|
|
*(.piggydata)
|
|
__piggy_size_addr = . - 4;
|
|
}
|
|
|
|
. = ALIGN(4);
|
|
_etext = .;
|
|
|
|
.got.plt : { *(.got.plt) }
|
|
#ifndef CONFIG_EFI_STUB
|
|
_got_start = .;
|
|
.got : { *(.got) }
|
|
_got_end = .;
|
|
#endif
|
|
|
|
/* ensure the zImage file size is always a multiple of 64 bits */
|
|
/* (without a dummy byte, ld just ignores the empty section) */
|
|
.pad : { BYTE(0); . = ALIGN(8); }
|
|
|
|
#ifdef CONFIG_EFI_STUB
|
|
.data : ALIGN(4096) {
|
|
__pecoff_data_start = .;
|
|
_got_start = .;
|
|
*(.got)
|
|
_got_end = .;
|
|
/*
|
|
* The EFI stub always executes from RAM, and runs strictly before the
|
|
* decompressor, so we can make an exception for its r/w data, and keep it
|
|
*/
|
|
*(.data.efistub .bss.efistub)
|
|
__pecoff_data_end = .;
|
|
|
|
/*
|
|
* PE/COFF mandates a file size which is a multiple of 512 bytes if the
|
|
* section size equals or exceeds 4 KB
|
|
*/
|
|
. = ALIGN(512);
|
|
}
|
|
__pecoff_data_rawsize = . - ADDR(.data);
|
|
#endif
|
|
|
|
_edata = .;
|
|
|
|
/*
|
|
* The image_end section appears after any additional loadable sections
|
|
* that the linker may decide to insert in the binary image. Having
|
|
* this symbol allows further debug in the near future.
|
|
*/
|
|
.image_end (NOLOAD) : {
|
|
/*
|
|
* EFI requires that the image is aligned to 512 bytes, and appended
|
|
* DTB requires that we know where the end of the image is. Ensure
|
|
* that both are satisfied by ensuring that there are no additional
|
|
* sections emitted into the decompressor image.
|
|
*/
|
|
_edata_real = .;
|
|
}
|
|
|
|
_magic_sig = ZIMAGE_MAGIC(0x016f2818);
|
|
_magic_start = ZIMAGE_MAGIC(_start);
|
|
_magic_end = ZIMAGE_MAGIC(_edata);
|
|
_magic_table = ZIMAGE_MAGIC(_table_start - _start);
|
|
|
|
. = BSS_START;
|
|
__bss_start = .;
|
|
.bss : { *(.bss) }
|
|
_end = .;
|
|
|
|
. = ALIGN(8); /* the stack must be 64-bit aligned */
|
|
.stack : { *(.stack) }
|
|
|
|
PROVIDE(__pecoff_data_size = ALIGN(512) - ADDR(.data));
|
|
PROVIDE(__pecoff_end = ALIGN(512));
|
|
|
|
STABS_DEBUG
|
|
DWARF_DEBUG
|
|
ARM_DETAILS
|
|
|
|
ARM_ASSERTS
|
|
}
|
|
ASSERT(_edata_real == _edata, "error: zImage file size is incorrect");
|