mirror of
https://github.com/hardkernel/linux.git
synced 2026-04-17 02:50:50 +09:00
Conflicts: drivers/net/wireless/adm8211.c drivers/net/wireless/airo.c drivers/net/wireless/airo_cs.c drivers/net/wireless/at76c50x-usb.c drivers/net/wireless/at76c50x-usb.h drivers/net/wireless/ath/Kconfig drivers/net/wireless/ath/Makefile drivers/net/wireless/ath/ath.h drivers/net/wireless/ath/ath5k/Kconfig drivers/net/wireless/ath/ath5k/Makefile drivers/net/wireless/ath/ath5k/ani.c drivers/net/wireless/ath/ath5k/ani.h drivers/net/wireless/ath/ath5k/ath5k.h drivers/net/wireless/ath/ath5k/attach.c drivers/net/wireless/ath/ath5k/base.c drivers/net/wireless/ath/ath5k/base.h drivers/net/wireless/ath/ath5k/caps.c drivers/net/wireless/ath/ath5k/debug.c drivers/net/wireless/ath/ath5k/debug.h drivers/net/wireless/ath/ath5k/desc.c drivers/net/wireless/ath/ath5k/desc.h drivers/net/wireless/ath/ath5k/dma.c drivers/net/wireless/ath/ath5k/eeprom.c drivers/net/wireless/ath/ath5k/eeprom.h drivers/net/wireless/ath/ath5k/initvals.c drivers/net/wireless/ath/ath5k/led.c drivers/net/wireless/ath/ath5k/pcu.c drivers/net/wireless/ath/ath5k/phy.c drivers/net/wireless/ath/ath5k/qcu.c drivers/net/wireless/ath/ath5k/reg.h drivers/net/wireless/ath/ath5k/reset.c drivers/net/wireless/ath/ath5k/rfbuffer.h drivers/net/wireless/ath/ath5k/sysfs.c drivers/net/wireless/ath/ath9k/Kconfig drivers/net/wireless/ath/ath9k/Makefile drivers/net/wireless/ath/ath9k/ahb.c drivers/net/wireless/ath/ath9k/ani.c drivers/net/wireless/ath/ath9k/ani.h drivers/net/wireless/ath/ath9k/ar5008_initvals.h drivers/net/wireless/ath/ath9k/ar5008_phy.c drivers/net/wireless/ath/ath9k/ar9001_initvals.h drivers/net/wireless/ath/ath9k/ar9002_calib.c drivers/net/wireless/ath/ath9k/ar9002_hw.c drivers/net/wireless/ath/ath9k/ar9002_initvals.h drivers/net/wireless/ath/ath9k/ar9002_mac.c drivers/net/wireless/ath/ath9k/ar9002_phy.c drivers/net/wireless/ath/ath9k/ar9002_phy.h drivers/net/wireless/ath/ath9k/ar9003_2p2_initvals.h drivers/net/wireless/ath/ath9k/ar9003_calib.c drivers/net/wireless/ath/ath9k/ar9003_eeprom.c drivers/net/wireless/ath/ath9k/ar9003_eeprom.h drivers/net/wireless/ath/ath9k/ar9003_hw.c drivers/net/wireless/ath/ath9k/ar9003_mac.c drivers/net/wireless/ath/ath9k/ar9003_mac.h drivers/net/wireless/ath/ath9k/ar9003_paprd.c drivers/net/wireless/ath/ath9k/ar9003_phy.c drivers/net/wireless/ath/ath9k/ar9003_phy.h drivers/net/wireless/ath/ath9k/ath9k.h drivers/net/wireless/ath/ath9k/beacon.c drivers/net/wireless/ath/ath9k/btcoex.c drivers/net/wireless/ath/ath9k/btcoex.h drivers/net/wireless/ath/ath9k/calib.c drivers/net/wireless/ath/ath9k/calib.h drivers/net/wireless/ath/ath9k/common.c drivers/net/wireless/ath/ath9k/common.h drivers/net/wireless/ath/ath9k/debug.c drivers/net/wireless/ath/ath9k/debug.h drivers/net/wireless/ath/ath9k/eeprom.c drivers/net/wireless/ath/ath9k/eeprom.h drivers/net/wireless/ath/ath9k/eeprom_4k.c drivers/net/wireless/ath/ath9k/eeprom_9287.c drivers/net/wireless/ath/ath9k/eeprom_def.c drivers/net/wireless/ath/ath9k/gpio.c drivers/net/wireless/ath/ath9k/hif_usb.c drivers/net/wireless/ath/ath9k/hif_usb.h drivers/net/wireless/ath/ath9k/htc.h drivers/net/wireless/ath/ath9k/htc_drv_beacon.c drivers/net/wireless/ath/ath9k/htc_drv_init.c drivers/net/wireless/ath/ath9k/htc_drv_main.c drivers/net/wireless/ath/ath9k/htc_drv_txrx.c drivers/net/wireless/ath/ath9k/htc_hst.c drivers/net/wireless/ath/ath9k/htc_hst.h drivers/net/wireless/ath/ath9k/hw-ops.h drivers/net/wireless/ath/ath9k/hw.c drivers/net/wireless/ath/ath9k/hw.h drivers/net/wireless/ath/ath9k/init.c drivers/net/wireless/ath/ath9k/mac.c drivers/net/wireless/ath/ath9k/mac.h drivers/net/wireless/ath/ath9k/main.c drivers/net/wireless/ath/ath9k/pci.c drivers/net/wireless/ath/ath9k/phy.h drivers/net/wireless/ath/ath9k/rc.c drivers/net/wireless/ath/ath9k/rc.h drivers/net/wireless/ath/ath9k/recv.c drivers/net/wireless/ath/ath9k/reg.h drivers/net/wireless/ath/ath9k/wmi.c drivers/net/wireless/ath/ath9k/wmi.h drivers/net/wireless/ath/ath9k/xmit.c drivers/net/wireless/ath/debug.c drivers/net/wireless/ath/hw.c drivers/net/wireless/ath/main.c drivers/net/wireless/ath/reg.h drivers/net/wireless/ath/regd.c drivers/net/wireless/ath/regd.h drivers/net/wireless/ath/regd_common.h drivers/net/wireless/atmel.c drivers/net/wireless/atmel_cs.c drivers/net/wireless/b43/Kconfig drivers/net/wireless/b43/Makefile drivers/net/wireless/b43/b43.h drivers/net/wireless/b43/debugfs.c drivers/net/wireless/b43/dma.c drivers/net/wireless/b43/dma.h drivers/net/wireless/b43/leds.c drivers/net/wireless/b43/lo.c drivers/net/wireless/b43/main.c drivers/net/wireless/b43/main.h drivers/net/wireless/b43/pcmcia.c drivers/net/wireless/b43/phy_a.c drivers/net/wireless/b43/phy_common.c drivers/net/wireless/b43/phy_common.h drivers/net/wireless/b43/phy_g.c drivers/net/wireless/b43/phy_g.h drivers/net/wireless/b43/phy_lp.c drivers/net/wireless/b43/phy_n.c drivers/net/wireless/b43/phy_n.h drivers/net/wireless/b43/pio.c drivers/net/wireless/b43/rfkill.c drivers/net/wireless/b43/sdio.c drivers/net/wireless/b43/sysfs.c drivers/net/wireless/b43/tables_lpphy.c drivers/net/wireless/b43/tables_nphy.c drivers/net/wireless/b43/tables_nphy.h drivers/net/wireless/b43/wa.c drivers/net/wireless/b43/xmit.c drivers/net/wireless/b43/xmit.h drivers/net/wireless/b43legacy/b43legacy.h drivers/net/wireless/b43legacy/debugfs.c drivers/net/wireless/b43legacy/main.c drivers/net/wireless/b43legacy/phy.c drivers/net/wireless/b43legacy/rfkill.c drivers/net/wireless/b43legacy/xmit.c drivers/net/wireless/hostap/hostap_ap.c drivers/net/wireless/hostap/hostap_ap.h drivers/net/wireless/hostap/hostap_config.h drivers/net/wireless/hostap/hostap_cs.c drivers/net/wireless/hostap/hostap_hw.c drivers/net/wireless/hostap/hostap_ioctl.c drivers/net/wireless/hostap/hostap_main.c drivers/net/wireless/hostap/hostap_wlan.h drivers/net/wireless/ipw2x00/ipw2100.c drivers/net/wireless/ipw2x00/ipw2100.h drivers/net/wireless/ipw2x00/ipw2200.c drivers/net/wireless/ipw2x00/ipw2200.h drivers/net/wireless/ipw2x00/libipw_module.c drivers/net/wireless/ipw2x00/libipw_rx.c drivers/net/wireless/iwlwifi/Kconfig drivers/net/wireless/iwlwifi/Makefile drivers/net/wireless/iwlwifi/iwl-1000.c drivers/net/wireless/iwlwifi/iwl-5000-hw.h drivers/net/wireless/iwlwifi/iwl-5000.c drivers/net/wireless/iwlwifi/iwl-6000-hw.h drivers/net/wireless/iwlwifi/iwl-6000.c drivers/net/wireless/iwlwifi/iwl-agn-calib.c drivers/net/wireless/iwlwifi/iwl-agn-hcmd.c drivers/net/wireless/iwlwifi/iwl-agn-hw.h drivers/net/wireless/iwlwifi/iwl-agn-ict.c drivers/net/wireless/iwlwifi/iwl-agn-lib.c drivers/net/wireless/iwlwifi/iwl-agn-rs.c drivers/net/wireless/iwlwifi/iwl-agn-rs.h drivers/net/wireless/iwlwifi/iwl-agn-tx.c drivers/net/wireless/iwlwifi/iwl-agn-ucode.c drivers/net/wireless/iwlwifi/iwl-agn.c drivers/net/wireless/iwlwifi/iwl-agn.h drivers/net/wireless/iwlwifi/iwl-commands.h drivers/net/wireless/iwlwifi/iwl-core.c drivers/net/wireless/iwlwifi/iwl-core.h drivers/net/wireless/iwlwifi/iwl-csr.h drivers/net/wireless/iwlwifi/iwl-debug.h drivers/net/wireless/iwlwifi/iwl-debugfs.c drivers/net/wireless/iwlwifi/iwl-dev.h drivers/net/wireless/iwlwifi/iwl-devtrace.c drivers/net/wireless/iwlwifi/iwl-devtrace.h drivers/net/wireless/iwlwifi/iwl-eeprom.c drivers/net/wireless/iwlwifi/iwl-eeprom.h drivers/net/wireless/iwlwifi/iwl-fh.h drivers/net/wireless/iwlwifi/iwl-hcmd.c drivers/net/wireless/iwlwifi/iwl-helpers.h drivers/net/wireless/iwlwifi/iwl-io.h drivers/net/wireless/iwlwifi/iwl-led.c drivers/net/wireless/iwlwifi/iwl-led.h drivers/net/wireless/iwlwifi/iwl-power.c drivers/net/wireless/iwlwifi/iwl-power.h drivers/net/wireless/iwlwifi/iwl-prph.h drivers/net/wireless/iwlwifi/iwl-rx.c drivers/net/wireless/iwlwifi/iwl-scan.c drivers/net/wireless/iwlwifi/iwl-sta.c drivers/net/wireless/iwlwifi/iwl-sta.h drivers/net/wireless/iwlwifi/iwl-tx.c drivers/net/wireless/iwmc3200wifi/cfg80211.c drivers/net/wireless/iwmc3200wifi/commands.c drivers/net/wireless/iwmc3200wifi/debugfs.c drivers/net/wireless/iwmc3200wifi/hal.c drivers/net/wireless/iwmc3200wifi/netdev.c drivers/net/wireless/iwmc3200wifi/rx.c drivers/net/wireless/iwmc3200wifi/sdio.c drivers/net/wireless/iwmc3200wifi/tx.c drivers/net/wireless/libertas/README drivers/net/wireless/libertas/cfg.c drivers/net/wireless/libertas/cmd.c drivers/net/wireless/libertas/cmdresp.c drivers/net/wireless/libertas/debugfs.c drivers/net/wireless/libertas/decl.h drivers/net/wireless/libertas/defs.h drivers/net/wireless/libertas/dev.h drivers/net/wireless/libertas/ethtool.c drivers/net/wireless/libertas/host.h drivers/net/wireless/libertas/if_cs.c drivers/net/wireless/libertas/if_sdio.c drivers/net/wireless/libertas/if_sdio.h drivers/net/wireless/libertas/if_spi.c drivers/net/wireless/libertas/if_spi.h drivers/net/wireless/libertas/if_usb.c drivers/net/wireless/libertas/if_usb.h drivers/net/wireless/libertas/main.c drivers/net/wireless/libertas/mesh.c drivers/net/wireless/libertas/mesh.h drivers/net/wireless/libertas/rx.c drivers/net/wireless/libertas/tx.c drivers/net/wireless/libertas/types.h drivers/net/wireless/libertas_tf/if_usb.c drivers/net/wireless/libertas_tf/main.c drivers/net/wireless/mac80211_hwsim.c drivers/net/wireless/mwl8k.c drivers/net/wireless/orinoco/cfg.c drivers/net/wireless/orinoco/hw.c drivers/net/wireless/orinoco/main.c drivers/net/wireless/orinoco/orinoco_cs.c drivers/net/wireless/orinoco/orinoco_usb.c drivers/net/wireless/orinoco/scan.c drivers/net/wireless/orinoco/scan.h drivers/net/wireless/orinoco/spectrum_cs.c drivers/net/wireless/orinoco/wext.c drivers/net/wireless/p54/Kconfig drivers/net/wireless/p54/eeprom.c drivers/net/wireless/p54/eeprom.h drivers/net/wireless/p54/fwio.c drivers/net/wireless/p54/lmac.h drivers/net/wireless/p54/main.c drivers/net/wireless/p54/p54.h drivers/net/wireless/p54/p54pci.c drivers/net/wireless/p54/p54spi.c drivers/net/wireless/p54/p54spi_eeprom.h drivers/net/wireless/p54/p54usb.c drivers/net/wireless/p54/txrx.c drivers/net/wireless/prism54/isl_ioctl.c drivers/net/wireless/prism54/islpci_dev.c drivers/net/wireless/prism54/islpci_eth.c drivers/net/wireless/prism54/islpci_hotplug.c drivers/net/wireless/ray_cs.c drivers/net/wireless/ray_cs.h drivers/net/wireless/rayctl.h drivers/net/wireless/rndis_wlan.c drivers/net/wireless/rt2x00/Kconfig drivers/net/wireless/rt2x00/Makefile drivers/net/wireless/rt2x00/rt2400pci.c drivers/net/wireless/rt2x00/rt2400pci.h drivers/net/wireless/rt2x00/rt2500pci.c drivers/net/wireless/rt2x00/rt2500pci.h drivers/net/wireless/rt2x00/rt2500usb.c drivers/net/wireless/rt2x00/rt2800.h drivers/net/wireless/rt2x00/rt2800lib.c drivers/net/wireless/rt2x00/rt2800lib.h drivers/net/wireless/rt2x00/rt2800pci.c drivers/net/wireless/rt2x00/rt2800pci.h drivers/net/wireless/rt2x00/rt2800usb.c drivers/net/wireless/rt2x00/rt2800usb.h drivers/net/wireless/rt2x00/rt2x00.h drivers/net/wireless/rt2x00/rt2x00config.c drivers/net/wireless/rt2x00/rt2x00crypto.c drivers/net/wireless/rt2x00/rt2x00debug.c drivers/net/wireless/rt2x00/rt2x00dev.c drivers/net/wireless/rt2x00/rt2x00dump.h drivers/net/wireless/rt2x00/rt2x00firmware.c drivers/net/wireless/rt2x00/rt2x00lib.h drivers/net/wireless/rt2x00/rt2x00link.c drivers/net/wireless/rt2x00/rt2x00mac.c drivers/net/wireless/rt2x00/rt2x00pci.c drivers/net/wireless/rt2x00/rt2x00pci.h drivers/net/wireless/rt2x00/rt2x00queue.c drivers/net/wireless/rt2x00/rt2x00queue.h drivers/net/wireless/rt2x00/rt2x00reg.h drivers/net/wireless/rt2x00/rt2x00soc.c drivers/net/wireless/rt2x00/rt2x00usb.c drivers/net/wireless/rt2x00/rt2x00usb.h drivers/net/wireless/rt2x00/rt61pci.c drivers/net/wireless/rt2x00/rt61pci.h drivers/net/wireless/rt2x00/rt73usb.c drivers/net/wireless/rt2x00/rt73usb.h drivers/net/wireless/rtl818x/Makefile drivers/net/wireless/rtl818x/rtl8180/grf5101.h drivers/net/wireless/rtl818x/rtl8180/max2820.h drivers/net/wireless/rtl818x/rtl8180/rtl8180.h drivers/net/wireless/rtl818x/rtl8180/rtl8225.h drivers/net/wireless/rtl818x/rtl8180/sa2400.h drivers/net/wireless/rtl818x/rtl8187/leds.h drivers/net/wireless/rtl818x/rtl8187/rfkill.h drivers/net/wireless/rtl818x/rtl8187/rtl8225.h drivers/net/wireless/wl1251/io.h drivers/net/wireless/wl12xx/Kconfig drivers/net/wireless/wl12xx/Makefile drivers/net/wireless/wl12xx/wl12xx_80211.h drivers/net/wireless/wl3501_cs.c drivers/net/wireless/zd1201.c drivers/net/wireless/zd1211rw/Makefile drivers/net/wireless/zd1211rw/zd_chip.c drivers/net/wireless/zd1211rw/zd_chip.h drivers/net/wireless/zd1211rw/zd_def.h drivers/net/wireless/zd1211rw/zd_mac.c drivers/net/wireless/zd1211rw/zd_mac.h drivers/net/wireless/zd1211rw/zd_rf.h drivers/net/wireless/zd1211rw/zd_rf_al2230.c drivers/net/wireless/zd1211rw/zd_rf_al7230b.c drivers/net/wireless/zd1211rw/zd_rf_rf2959.c drivers/net/wireless/zd1211rw/zd_rf_uw2453.c drivers/net/wireless/zd1211rw/zd_usb.c drivers/net/wireless/zd1211rw/zd_usb.h
344 lines
6.8 KiB
ArmAsm
344 lines
6.8 KiB
ArmAsm
/* ld script to make ARM Linux kernel
|
|
* taken from the i386 version by Russell King
|
|
* Written by Martin Mares <mj@atrey.karlin.mff.cuni.cz>
|
|
*/
|
|
|
|
#include <asm-generic/vmlinux.lds.h>
|
|
#include <asm/thread_info.h>
|
|
#include <asm/memory.h>
|
|
#include <asm/page.h>
|
|
|
|
#define PROC_INFO \
|
|
VMLINUX_SYMBOL(__proc_info_begin) = .; \
|
|
*(.proc.info.init) \
|
|
VMLINUX_SYMBOL(__proc_info_end) = .;
|
|
|
|
#ifdef CONFIG_HOTPLUG_CPU
|
|
#define ARM_CPU_DISCARD(x)
|
|
#define ARM_CPU_KEEP(x) x
|
|
#else
|
|
#define ARM_CPU_DISCARD(x) x
|
|
#define ARM_CPU_KEEP(x)
|
|
#endif
|
|
|
|
#if defined(CONFIG_SMP_ON_UP) && !defined(CONFIG_DEBUG_SPINLOCK)
|
|
#define ARM_EXIT_KEEP(x) x
|
|
#else
|
|
#define ARM_EXIT_KEEP(x)
|
|
#endif
|
|
|
|
OUTPUT_ARCH(arm)
|
|
ENTRY(stext)
|
|
|
|
#ifndef __ARMEB__
|
|
jiffies = jiffies_64;
|
|
#else
|
|
jiffies = jiffies_64 + 4;
|
|
#endif
|
|
|
|
SECTIONS
|
|
{
|
|
#ifdef CONFIG_XIP_KERNEL
|
|
. = XIP_VIRT_ADDR(CONFIG_XIP_PHYS_ADDR);
|
|
#else
|
|
. = PAGE_OFFSET + TEXT_OFFSET;
|
|
#endif
|
|
|
|
.init : { /* Init code and data */
|
|
_stext = .;
|
|
_sinittext = .;
|
|
HEAD_TEXT
|
|
INIT_TEXT
|
|
ARM_EXIT_KEEP(EXIT_TEXT)
|
|
_einittext = .;
|
|
ARM_CPU_DISCARD(PROC_INFO)
|
|
__arch_info_begin = .;
|
|
*(.arch.info.init)
|
|
__arch_info_end = .;
|
|
__tagtable_begin = .;
|
|
*(.taglist.init)
|
|
__tagtable_end = .;
|
|
#ifdef CONFIG_SMP_ON_UP
|
|
__smpalt_begin = .;
|
|
*(.alt.smp.init)
|
|
__smpalt_end = .;
|
|
#endif
|
|
|
|
__pv_table_begin = .;
|
|
*(.pv_table)
|
|
__pv_table_end = .;
|
|
|
|
INIT_SETUP(16)
|
|
|
|
INIT_CALLS
|
|
CON_INITCALL
|
|
SECURITY_INITCALL
|
|
INIT_RAM_FS
|
|
|
|
#ifndef CONFIG_XIP_KERNEL
|
|
__init_begin = _stext;
|
|
INIT_DATA
|
|
ARM_EXIT_KEEP(EXIT_DATA)
|
|
#endif
|
|
}
|
|
|
|
PERCPU_SECTION(32)
|
|
|
|
#ifndef CONFIG_XIP_KERNEL
|
|
. = ALIGN(PAGE_SIZE);
|
|
__init_end = .;
|
|
#endif
|
|
|
|
/*
|
|
* unwind exit sections must be discarded before the rest of the
|
|
* unwind sections get included.
|
|
*/
|
|
/DISCARD/ : {
|
|
*(.ARM.exidx.exit.text)
|
|
*(.ARM.extab.exit.text)
|
|
ARM_CPU_DISCARD(*(.ARM.exidx.cpuexit.text))
|
|
ARM_CPU_DISCARD(*(.ARM.extab.cpuexit.text))
|
|
#ifndef CONFIG_HOTPLUG
|
|
*(.ARM.exidx.devexit.text)
|
|
*(.ARM.extab.devexit.text)
|
|
#endif
|
|
#ifndef CONFIG_MMU
|
|
*(.fixup)
|
|
*(__ex_table)
|
|
#endif
|
|
}
|
|
|
|
.text : { /* Real text segment */
|
|
_text = .; /* Text and read-only data */
|
|
__exception_text_start = .;
|
|
*(.exception.text)
|
|
__exception_text_end = .;
|
|
IRQENTRY_TEXT
|
|
TEXT_TEXT
|
|
SCHED_TEXT
|
|
LOCK_TEXT
|
|
KPROBES_TEXT
|
|
#ifdef CONFIG_MMU
|
|
*(.fixup)
|
|
#endif
|
|
*(.gnu.warning)
|
|
*(.rodata)
|
|
*(.rodata.*)
|
|
*(.glue_7)
|
|
*(.glue_7t)
|
|
. = ALIGN(4);
|
|
*(.got) /* Global offset table */
|
|
ARM_CPU_KEEP(PROC_INFO)
|
|
}
|
|
|
|
RO_DATA(PAGE_SIZE)
|
|
|
|
#ifdef CONFIG_ARM_UNWIND
|
|
/*
|
|
* Stack unwinding tables
|
|
*/
|
|
. = ALIGN(8);
|
|
.ARM.unwind_idx : {
|
|
__start_unwind_idx = .;
|
|
*(.ARM.exidx*)
|
|
__stop_unwind_idx = .;
|
|
}
|
|
.ARM.unwind_tab : {
|
|
__start_unwind_tab = .;
|
|
*(.ARM.extab*)
|
|
__stop_unwind_tab = .;
|
|
}
|
|
#endif
|
|
|
|
_etext = .; /* End of text and rodata section */
|
|
|
|
#ifdef CONFIG_XIP_KERNEL
|
|
__data_loc = ALIGN(4); /* location in binary */
|
|
. = PAGE_OFFSET + TEXT_OFFSET;
|
|
#else
|
|
. = ALIGN(THREAD_SIZE);
|
|
__data_loc = .;
|
|
#endif
|
|
|
|
.data : AT(__data_loc) {
|
|
_data = .; /* address in memory */
|
|
_sdata = .;
|
|
|
|
/*
|
|
* first, the init task union, aligned
|
|
* to an 8192 byte boundary.
|
|
*/
|
|
INIT_TASK_DATA(THREAD_SIZE)
|
|
|
|
#ifdef CONFIG_XIP_KERNEL
|
|
. = ALIGN(PAGE_SIZE);
|
|
__init_begin = .;
|
|
INIT_DATA
|
|
ARM_EXIT_KEEP(EXIT_DATA)
|
|
. = ALIGN(PAGE_SIZE);
|
|
__init_end = .;
|
|
#endif
|
|
|
|
NOSAVE_DATA
|
|
CACHELINE_ALIGNED_DATA(32)
|
|
READ_MOSTLY_DATA(32)
|
|
|
|
/*
|
|
* The exception fixup table (might need resorting at runtime)
|
|
*/
|
|
. = ALIGN(32);
|
|
__start___ex_table = .;
|
|
#ifdef CONFIG_MMU
|
|
*(__ex_table)
|
|
#endif
|
|
__stop___ex_table = .;
|
|
|
|
/*
|
|
* and the usual data section
|
|
*/
|
|
DATA_DATA
|
|
CONSTRUCTORS
|
|
|
|
_edata = .;
|
|
}
|
|
_edata_loc = __data_loc + SIZEOF(.data);
|
|
|
|
#ifdef CONFIG_HAVE_TCM
|
|
/*
|
|
* We align everything to a page boundary so we can
|
|
* free it after init has commenced and TCM contents have
|
|
* been copied to its destination.
|
|
*/
|
|
.tcm_start : {
|
|
. = ALIGN(PAGE_SIZE);
|
|
__tcm_start = .;
|
|
__itcm_start = .;
|
|
}
|
|
|
|
/*
|
|
* Link these to the ITCM RAM
|
|
* Put VMA to the TCM address and LMA to the common RAM
|
|
* and we'll upload the contents from RAM to TCM and free
|
|
* the used RAM after that.
|
|
*/
|
|
.text_itcm ITCM_OFFSET : AT(__itcm_start)
|
|
{
|
|
__sitcm_text = .;
|
|
*(.tcm.text)
|
|
*(.tcm.rodata)
|
|
. = ALIGN(4);
|
|
__eitcm_text = .;
|
|
}
|
|
|
|
/*
|
|
* Reset the dot pointer, this is needed to create the
|
|
* relative __dtcm_start below (to be used as extern in code).
|
|
*/
|
|
. = ADDR(.tcm_start) + SIZEOF(.tcm_start) + SIZEOF(.text_itcm);
|
|
|
|
.dtcm_start : {
|
|
__dtcm_start = .;
|
|
}
|
|
|
|
/* TODO: add remainder of ITCM as well, that can be used for data! */
|
|
.data_dtcm DTCM_OFFSET : AT(__dtcm_start)
|
|
{
|
|
. = ALIGN(4);
|
|
__sdtcm_data = .;
|
|
*(.tcm.data)
|
|
. = ALIGN(4);
|
|
__edtcm_data = .;
|
|
}
|
|
|
|
/* Reset the dot pointer or the linker gets confused */
|
|
. = ADDR(.dtcm_start) + SIZEOF(.data_dtcm);
|
|
|
|
/* End marker for freeing TCM copy in linked object */
|
|
.tcm_end : AT(ADDR(.dtcm_start) + SIZEOF(.data_dtcm)){
|
|
. = ALIGN(PAGE_SIZE);
|
|
__tcm_end = .;
|
|
}
|
|
#endif
|
|
#ifdef CONFIG_ARCH_RK29
|
|
/*
|
|
* We align everything to a page boundary so we can
|
|
* free it after init has commenced and SRAM contents have
|
|
* been copied to its destination.
|
|
*/
|
|
.sram_start : {
|
|
. = ALIGN(PAGE_SIZE);
|
|
__sram_start = .;
|
|
__sram_code_start = .;
|
|
}
|
|
|
|
/*
|
|
* Link these to the ITCM RAM
|
|
* Put VMA to the TCM address and LMA to the common RAM
|
|
* and we'll upload the contents from RAM to TCM and free
|
|
* the used RAM after that.
|
|
*/
|
|
.text_sram_code SRAM_CODE_OFFSET : AT(__sram_code_start)
|
|
{
|
|
__ssram_code_text = .;
|
|
*(.sram.text)
|
|
*(.sram.rodata)
|
|
. = ALIGN(4);
|
|
__esram_code_text = .;
|
|
}
|
|
|
|
/*
|
|
* Reset the dot pointer, this is needed to create the
|
|
* relative __dtcm_start below (to be used as extern in code).
|
|
*/
|
|
. = ADDR(.sram_start) + SIZEOF(.sram_start) + SIZEOF(.text_sram_code);
|
|
|
|
.sram_data_start : {
|
|
__sram_data_start = .;
|
|
}
|
|
|
|
/* TODO: add remainder of ITCM as well, that can be used for data! */
|
|
.data_sram SRAM_DATA_OFFSET : AT(__sram_data_start)
|
|
{
|
|
. = ALIGN(4);
|
|
__ssram_data = .;
|
|
*(.sram.data)
|
|
. = ALIGN(4);
|
|
__esram_data = .;
|
|
}
|
|
|
|
/* Reset the dot pointer or the linker gets confused */
|
|
. = ADDR(.sram_data_start) + SIZEOF(.data_sram);
|
|
|
|
/* End marker for freeing TCM copy in linked object */
|
|
.sram_end : AT(ADDR(.sram_data_start) + SIZEOF(.data_sram)){
|
|
. = ALIGN(PAGE_SIZE);
|
|
__sram_end = .;
|
|
}
|
|
#endif
|
|
|
|
NOTES
|
|
|
|
BSS_SECTION(0, 0, 0)
|
|
_end = .;
|
|
|
|
STABS_DEBUG
|
|
.comment 0 : { *(.comment) }
|
|
|
|
/* Default discards */
|
|
DISCARDS
|
|
|
|
#ifndef CONFIG_SMP_ON_UP
|
|
/DISCARD/ : {
|
|
*(.alt.smp.init)
|
|
}
|
|
#endif
|
|
}
|
|
|
|
/*
|
|
* These must never be empty
|
|
* If you have to comment these two assert statements out, your
|
|
* binutils is too old (for other reasons as well)
|
|
*/
|
|
ASSERT((__proc_info_end - __proc_info_begin), "missing CPU support")
|
|
ASSERT((__arch_info_end - __arch_info_begin), "no machine record defined")
|