Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

C6X: build infrastructure

Original port to early 2.6 kernel using TI COFF toolchain.
Brought up to date by Mark Salter <msalter@redhat.com>

Signed-off-by: Aurelien Jacquiot <a-jacquiot@ti.com>
Signed-off-by: Mark Salter <msalter@redhat.com>
Acked-by: Arnd Bergmann <arnd@arndb.de>

authored by

Aurelien Jacquiot and committed by
Mark Salter
c278400c e66d3c49

+701
+174
arch/c6x/Kconfig
··· 1 + # 2 + # For a description of the syntax of this configuration file, 3 + # see Documentation/kbuild/kconfig-language.txt. 4 + # 5 + 6 + config TMS320C6X 7 + def_bool y 8 + select CLKDEV_LOOKUP 9 + select GENERIC_IRQ_SHOW 10 + select HAVE_ARCH_TRACEHOOK 11 + select HAVE_DMA_API_DEBUG 12 + select HAVE_GENERIC_HARDIRQS 13 + select HAVE_MEMBLOCK 14 + select HAVE_SPARSE_IRQ 15 + select OF 16 + select OF_EARLY_FLATTREE 17 + 18 + config MMU 19 + def_bool n 20 + 21 + config ZONE_DMA 22 + def_bool y 23 + 24 + config FPU 25 + def_bool n 26 + 27 + config HIGHMEM 28 + def_bool n 29 + 30 + config NUMA 31 + def_bool n 32 + 33 + config RWSEM_GENERIC_SPINLOCK 34 + def_bool y 35 + 36 + config RWSEM_XCHGADD_ALGORITHM 37 + def_bool n 38 + 39 + config GENERIC_CALIBRATE_DELAY 40 + def_bool y 41 + 42 + config GENERIC_HWEIGHT 43 + def_bool y 44 + 45 + config GENERIC_CLOCKEVENTS 46 + def_bool y 47 + 48 + config GENERIC_CLOCKEVENTS_BROADCAST 49 + bool 50 + 51 + config GENERIC_BUG 52 + def_bool y 53 + 54 + config COMMON_CLKDEV 55 + def_bool y 56 + 57 + config C6X_BIG_KERNEL 58 + bool "Build a big kernel" 59 + help 60 + The C6X function call instruction has a limited range of +/- 2MiB. 61 + This is sufficient for most kernels, but some kernel configurations 62 + with lots of compiled-in functionality may require a larger range 63 + for function calls. Use this option to have the compiler generate 64 + function calls with 32-bit range. This will make the kernel both 65 + larger and slower. 66 + 67 + If unsure, say N. 68 + 69 + source "init/Kconfig" 70 + 71 + # Use the generic interrupt handling code in kernel/irq/ 72 + 73 + source "kernel/Kconfig.freezer" 74 + 75 + config CMDLINE_BOOL 76 + bool "Default bootloader kernel arguments" 77 + 78 + config CMDLINE 79 + string "Kernel command line" 80 + depends on CMDLINE_BOOL 81 + default "console=ttyS0,57600" 82 + help 83 + On some architectures there is currently no way for the boot loader 84 + to pass arguments to the kernel. For these architectures, you should 85 + supply some command-line options at build time by entering them 86 + here. 87 + 88 + config CMDLINE_FORCE 89 + bool "Force default kernel command string" 90 + depends on CMDLINE_BOOL 91 + default n 92 + help 93 + Set this to have arguments from the default kernel command string 94 + override those passed by the boot loader. 95 + 96 + config CPU_BIG_ENDIAN 97 + bool "Build big-endian kernel" 98 + default n 99 + help 100 + Say Y if you plan on running a kernel in big-endian mode. 101 + Note that your board must be properly built and your board 102 + port must properly enable any big-endian related features 103 + of your chipset/board/processor. 104 + 105 + config FORCE_MAX_ZONEORDER 106 + int "Maximum zone order" 107 + default "13" 108 + help 109 + The kernel memory allocator divides physically contiguous memory 110 + blocks into "zones", where each zone is a power of two number of 111 + pages. This option selects the largest power of two that the kernel 112 + keeps in the memory allocator. If you need to allocate very large 113 + blocks of physically contiguous memory, then you may need to 114 + increase this value. 115 + 116 + This config option is actually maximum order plus one. For example, 117 + a value of 11 means that the largest free memory block is 2^10 pages. 118 + 119 + menu "Processor type and features" 120 + 121 + source "arch/c6x/platforms/Kconfig" 122 + 123 + config TMS320C6X_CACHES_ON 124 + bool "L2 cache support" 125 + default y 126 + 127 + config KERNEL_RAM_BASE_ADDRESS 128 + hex "Virtual address of memory base" 129 + default 0xe0000000 if SOC_TMS320C6455 130 + default 0xe0000000 if SOC_TMS320C6457 131 + default 0xe0000000 if SOC_TMS320C6472 132 + default 0x80000000 133 + 134 + source "mm/Kconfig" 135 + 136 + source "kernel/Kconfig.preempt" 137 + 138 + source "kernel/Kconfig.hz" 139 + source "kernel/time/Kconfig" 140 + 141 + endmenu 142 + 143 + menu "Executable file formats" 144 + 145 + source "fs/Kconfig.binfmt" 146 + 147 + endmenu 148 + 149 + source "net/Kconfig" 150 + 151 + source "drivers/Kconfig" 152 + 153 + source "fs/Kconfig" 154 + 155 + source "security/Kconfig" 156 + 157 + source "crypto/Kconfig" 158 + 159 + source "lib/Kconfig" 160 + 161 + menu "Kernel hacking" 162 + 163 + source "lib/Kconfig.debug" 164 + 165 + config ACCESS_CHECK 166 + bool "Check the user pointer address" 167 + default y 168 + help 169 + Usually the pointer transfer from user space is checked to see if its 170 + address is in the kernel space. 171 + 172 + Say N here to disable that check to improve the performance. 173 + 174 + endmenu
+60
arch/c6x/Makefile
··· 1 + # 2 + # linux/arch/c6x/Makefile 3 + # 4 + # This file is subject to the terms and conditions of the GNU General Public 5 + # License. See the file "COPYING" in the main directory of this archive 6 + # for more details. 7 + # 8 + 9 + cflags-y += -mno-dsbt -msdata=none 10 + 11 + cflags-$(CONFIG_C6X_BIG_KERNEL) += -mlong-calls 12 + 13 + CFLAGS_MODULE += -mlong-calls -mno-dsbt -msdata=none 14 + 15 + CHECKFLAGS += 16 + 17 + KBUILD_CFLAGS += $(cflags-y) 18 + KBUILD_AFLAGS += $(cflags-y) 19 + 20 + ifdef CONFIG_CPU_BIG_ENDIAN 21 + KBUILD_CFLAGS += -mbig-endian 22 + KBUILD_AFLAGS += -mbig-endian 23 + LINKFLAGS += -mbig-endian 24 + KBUILD_LDFLAGS += -mbig-endian 25 + LDFLAGS += -EB 26 + endif 27 + 28 + head-y := arch/c6x/kernel/head.o 29 + core-y += arch/c6x/kernel/ arch/c6x/mm/ arch/c6x/platforms/ 30 + libs-y += arch/c6x/lib/ 31 + 32 + # Default to vmlinux.bin, override when needed 33 + all: vmlinux.bin 34 + 35 + boot := arch/$(ARCH)/boot 36 + 37 + # Are we making a dtbImage.<boardname> target? If so, crack out the boardname 38 + DTB:=$(subst dtbImage.,,$(filter dtbImage.%, $(MAKECMDGOALS))) 39 + export DTB 40 + 41 + ifneq ($(DTB),) 42 + core-y += $(boot)/ 43 + endif 44 + 45 + # With make 3.82 we cannot mix normal and wildcard targets 46 + 47 + vmlinux.bin: vmlinux 48 + $(Q)$(MAKE) $(build)=$(boot) $(patsubst %,$(boot)/%,$@) 49 + 50 + dtbImage.%: vmlinux 51 + $(Q)$(MAKE) $(build)=$(boot) $(patsubst %,$(boot)/%,$@) 52 + 53 + archclean: 54 + $(Q)$(MAKE) $(clean)=$(boot) 55 + 56 + define archhelp 57 + @echo ' vmlinux.bin - Binary kernel image (arch/$(ARCH)/boot/vmlinux.bin)' 58 + @echo ' dtbImage.<dt> - ELF image with $(arch)/boot/dts/<dt>.dts linked in' 59 + @echo ' - stripped elf with fdt blob' 60 + endef
+30
arch/c6x/boot/Makefile
··· 1 + # 2 + # Makefile for bootable kernel images 3 + # 4 + 5 + OBJCOPYFLAGS_vmlinux.bin := -O binary 6 + $(obj)/vmlinux.bin: vmlinux FORCE 7 + $(call if_changed,objcopy) 8 + 9 + DTC_FLAGS ?= -p 1024 10 + 11 + ifneq ($(DTB),) 12 + obj-y += linked_dtb.o 13 + endif 14 + 15 + $(obj)/%.dtb: $(src)/dts/%.dts FORCE 16 + $(call cmd,dtc) 17 + 18 + quiet_cmd_cp = CP $< $@$2 19 + cmd_cp = cat $< >$@$2 || (rm -f $@ && echo false) 20 + 21 + # Generate builtin.dtb from $(DTB).dtb 22 + $(obj)/builtin.dtb: $(obj)/$(DTB).dtb 23 + $(call if_changed,cp) 24 + 25 + $(obj)/linked_dtb.o: $(obj)/builtin.dtb 26 + 27 + $(obj)/dtbImage.%: vmlinux 28 + $(call if_changed,objcopy) 29 + 30 + clean-files := $(obj)/*.dtb
+44
arch/c6x/configs/dsk6455_defconfig
··· 1 + CONFIG_SOC_TMS320C6455=y 2 + CONFIG_EXPERIMENTAL=y 3 + # CONFIG_LOCALVERSION_AUTO is not set 4 + CONFIG_SYSVIPC=y 5 + CONFIG_SPARSE_IRQ=y 6 + CONFIG_LOG_BUF_SHIFT=14 7 + CONFIG_NAMESPACES=y 8 + # CONFIG_UTS_NS is not set 9 + # CONFIG_USER_NS is not set 10 + # CONFIG_PID_NS is not set 11 + CONFIG_BLK_DEV_INITRD=y 12 + CONFIG_CC_OPTIMIZE_FOR_SIZE=y 13 + CONFIG_EXPERT=y 14 + # CONFIG_FUTEX is not set 15 + # CONFIG_SLUB_DEBUG is not set 16 + CONFIG_MODULES=y 17 + CONFIG_MODULE_FORCE_LOAD=y 18 + CONFIG_MODULE_UNLOAD=y 19 + CONFIG_MODULE_FORCE_UNLOAD=y 20 + CONFIG_CMDLINE_BOOL=y 21 + CONFIG_CMDLINE="" 22 + CONFIG_NO_HZ=y 23 + CONFIG_HIGH_RES_TIMERS=y 24 + CONFIG_BLK_DEV_LOOP=y 25 + CONFIG_BLK_DEV_RAM=y 26 + CONFIG_BLK_DEV_RAM_COUNT=2 27 + CONFIG_BLK_DEV_RAM_SIZE=17000 28 + CONFIG_MISC_DEVICES=y 29 + # CONFIG_INPUT is not set 30 + # CONFIG_SERIO is not set 31 + # CONFIG_VT is not set 32 + # CONFIG_HW_RANDOM is not set 33 + # CONFIG_HWMON is not set 34 + # CONFIG_USB_SUPPORT is not set 35 + # CONFIG_IOMMU_SUPPORT is not set 36 + # CONFIG_MISC_FILESYSTEMS is not set 37 + CONFIG_CRC16=y 38 + # CONFIG_ENABLE_MUST_CHECK is not set 39 + # CONFIG_SCHED_DEBUG is not set 40 + # CONFIG_DEBUG_BUGVERBOSE is not set 41 + CONFIG_MTD=y 42 + CONFIG_MTD_CFI=y 43 + CONFIG_MTD_CFI_AMDSTD=y 44 + CONFIG_MTD_PHYSMAP_OF=y
+41
arch/c6x/configs/evmc6457_defconfig
··· 1 + CONFIG_SOC_TMS320C6457=y 2 + CONFIG_EXPERIMENTAL=y 3 + # CONFIG_LOCALVERSION_AUTO is not set 4 + CONFIG_SYSVIPC=y 5 + CONFIG_SPARSE_IRQ=y 6 + CONFIG_LOG_BUF_SHIFT=14 7 + CONFIG_NAMESPACES=y 8 + # CONFIG_UTS_NS is not set 9 + # CONFIG_USER_NS is not set 10 + # CONFIG_PID_NS is not set 11 + CONFIG_BLK_DEV_INITRD=y 12 + CONFIG_CC_OPTIMIZE_FOR_SIZE=y 13 + CONFIG_EXPERT=y 14 + # CONFIG_FUTEX is not set 15 + # CONFIG_SLUB_DEBUG is not set 16 + CONFIG_MODULES=y 17 + CONFIG_MODULE_FORCE_LOAD=y 18 + CONFIG_MODULE_UNLOAD=y 19 + CONFIG_MODULE_FORCE_UNLOAD=y 20 + CONFIG_CMDLINE_BOOL=y 21 + CONFIG_CMDLINE="" 22 + CONFIG_BOARD_EVM6457=y 23 + CONFIG_NO_HZ=y 24 + CONFIG_HIGH_RES_TIMERS=y 25 + CONFIG_BLK_DEV_LOOP=y 26 + CONFIG_BLK_DEV_RAM=y 27 + CONFIG_BLK_DEV_RAM_COUNT=2 28 + CONFIG_BLK_DEV_RAM_SIZE=17000 29 + CONFIG_MISC_DEVICES=y 30 + # CONFIG_INPUT is not set 31 + # CONFIG_SERIO is not set 32 + # CONFIG_VT is not set 33 + # CONFIG_HW_RANDOM is not set 34 + # CONFIG_HWMON is not set 35 + # CONFIG_USB_SUPPORT is not set 36 + # CONFIG_IOMMU_SUPPORT is not set 37 + # CONFIG_MISC_FILESYSTEMS is not set 38 + CONFIG_CRC16=y 39 + # CONFIG_ENABLE_MUST_CHECK is not set 40 + # CONFIG_SCHED_DEBUG is not set 41 + # CONFIG_DEBUG_BUGVERBOSE is not set
+42
arch/c6x/configs/evmc6472_defconfig
··· 1 + CONFIG_SOC_TMS320C6472=y 2 + CONFIG_EXPERIMENTAL=y 3 + # CONFIG_LOCALVERSION_AUTO is not set 4 + CONFIG_SYSVIPC=y 5 + CONFIG_SPARSE_IRQ=y 6 + CONFIG_LOG_BUF_SHIFT=14 7 + CONFIG_NAMESPACES=y 8 + # CONFIG_UTS_NS is not set 9 + # CONFIG_USER_NS is not set 10 + # CONFIG_PID_NS is not set 11 + CONFIG_BLK_DEV_INITRD=y 12 + CONFIG_CC_OPTIMIZE_FOR_SIZE=y 13 + CONFIG_EXPERT=y 14 + # CONFIG_FUTEX is not set 15 + # CONFIG_SLUB_DEBUG is not set 16 + CONFIG_MODULES=y 17 + CONFIG_MODULE_FORCE_LOAD=y 18 + CONFIG_MODULE_UNLOAD=y 19 + CONFIG_MODULE_FORCE_UNLOAD=y 20 + CONFIG_CMDLINE_BOOL=y 21 + CONFIG_CMDLINE="" 22 + # CONFIG_CMDLINE_FORCE is not set 23 + CONFIG_BOARD_EVM6472=y 24 + CONFIG_NO_HZ=y 25 + CONFIG_HIGH_RES_TIMERS=y 26 + CONFIG_BLK_DEV_LOOP=y 27 + CONFIG_BLK_DEV_RAM=y 28 + CONFIG_BLK_DEV_RAM_COUNT=2 29 + CONFIG_BLK_DEV_RAM_SIZE=17000 30 + CONFIG_MISC_DEVICES=y 31 + # CONFIG_INPUT is not set 32 + # CONFIG_SERIO is not set 33 + # CONFIG_VT is not set 34 + # CONFIG_HW_RANDOM is not set 35 + # CONFIG_HWMON is not set 36 + # CONFIG_USB_SUPPORT is not set 37 + # CONFIG_IOMMU_SUPPORT is not set 38 + # CONFIG_MISC_FILESYSTEMS is not set 39 + CONFIG_CRC16=y 40 + # CONFIG_ENABLE_MUST_CHECK is not set 41 + # CONFIG_SCHED_DEBUG is not set 42 + # CONFIG_DEBUG_BUGVERBOSE is not set
+42
arch/c6x/configs/evmc6474_defconfig
··· 1 + CONFIG_SOC_TMS320C6474=y 2 + CONFIG_EXPERIMENTAL=y 3 + # CONFIG_LOCALVERSION_AUTO is not set 4 + CONFIG_SYSVIPC=y 5 + CONFIG_SPARSE_IRQ=y 6 + CONFIG_LOG_BUF_SHIFT=14 7 + CONFIG_NAMESPACES=y 8 + # CONFIG_UTS_NS is not set 9 + # CONFIG_USER_NS is not set 10 + # CONFIG_PID_NS is not set 11 + CONFIG_BLK_DEV_INITRD=y 12 + CONFIG_CC_OPTIMIZE_FOR_SIZE=y 13 + CONFIG_EXPERT=y 14 + # CONFIG_FUTEX is not set 15 + # CONFIG_SLUB_DEBUG is not set 16 + CONFIG_MODULES=y 17 + CONFIG_MODULE_FORCE_LOAD=y 18 + CONFIG_MODULE_UNLOAD=y 19 + CONFIG_MODULE_FORCE_UNLOAD=y 20 + CONFIG_CMDLINE_BOOL=y 21 + CONFIG_CMDLINE="" 22 + # CONFIG_CMDLINE_FORCE is not set 23 + CONFIG_BOARD_EVM6474=y 24 + CONFIG_NO_HZ=y 25 + CONFIG_HIGH_RES_TIMERS=y 26 + CONFIG_BLK_DEV_LOOP=y 27 + CONFIG_BLK_DEV_RAM=y 28 + CONFIG_BLK_DEV_RAM_COUNT=2 29 + CONFIG_BLK_DEV_RAM_SIZE=17000 30 + CONFIG_MISC_DEVICES=y 31 + # CONFIG_INPUT is not set 32 + # CONFIG_SERIO is not set 33 + # CONFIG_VT is not set 34 + # CONFIG_HW_RANDOM is not set 35 + # CONFIG_HWMON is not set 36 + # CONFIG_USB_SUPPORT is not set 37 + # CONFIG_IOMMU_SUPPORT is not set 38 + # CONFIG_MISC_FILESYSTEMS is not set 39 + CONFIG_CRC16=y 40 + # CONFIG_ENABLE_MUST_CHECK is not set 41 + # CONFIG_SCHED_DEBUG is not set 42 + # CONFIG_DEBUG_BUGVERBOSE is not set
+54
arch/c6x/include/asm/Kbuild
··· 1 + include include/asm-generic/Kbuild.asm 2 + 3 + generic-y += atomic.h 4 + generic-y += auxvec.h 5 + generic-y += bitsperlong.h 6 + generic-y += bug.h 7 + generic-y += bugs.h 8 + generic-y += cputime.h 9 + generic-y += current.h 10 + generic-y += device.h 11 + generic-y += div64.h 12 + generic-y += dma.h 13 + generic-y += emergency-restart.h 14 + generic-y += errno.h 15 + generic-y += fb.h 16 + generic-y += fcntl.h 17 + generic-y += futex.h 18 + generic-y += hw_irq.h 19 + generic-y += io.h 20 + generic-y += ioctl.h 21 + generic-y += ioctls.h 22 + generic-y += ipcbuf.h 23 + generic-y += irq_regs.h 24 + generic-y += kdebug.h 25 + generic-y += kmap_types.h 26 + generic-y += local.h 27 + generic-y += mman.h 28 + generic-y += mmu_context.h 29 + generic-y += msgbuf.h 30 + generic-y += param.h 31 + generic-y += pci.h 32 + generic-y += percpu.h 33 + generic-y += pgalloc.h 34 + generic-y += poll.h 35 + generic-y += posix_types.h 36 + generic-y += resource.h 37 + generic-y += scatterlist.h 38 + generic-y += segment.h 39 + generic-y += sembuf.h 40 + generic-y += shmbuf.h 41 + generic-y += shmparam.h 42 + generic-y += siginfo.h 43 + generic-y += socket.h 44 + generic-y += sockios.h 45 + generic-y += stat.h 46 + generic-y += statfs.h 47 + generic-y += termbits.h 48 + generic-y += termios.h 49 + generic-y += tlbflush.h 50 + generic-y += topology.h 51 + generic-y += types.h 52 + generic-y += ucontext.h 53 + generic-y += user.h 54 + generic-y += vga.h
+12
arch/c6x/kernel/Makefile
··· 1 + # 2 + # Makefile for arch/c6x/kernel/ 3 + # 4 + 5 + extra-y := head.o vmlinux.lds 6 + 7 + obj-y := process.o traps.o irq.o signal.o ptrace.o 8 + obj-y += setup.o sys_c6x.o time.o devicetree.o 9 + obj-y += switch_to.o entry.o vectors.o c6x_ksyms.o 10 + obj-y += soc.o dma.o 11 + 12 + obj-$(CONFIG_MODULES) += module.o
+162
arch/c6x/kernel/vmlinux.lds.S
··· 1 + /* 2 + * ld script for the c6x kernel 3 + * 4 + * Copyright (C) 2010, 2011 Texas Instruments Incorporated 5 + * Mark Salter <msalter@redhat.com> 6 + */ 7 + #include <asm-generic/vmlinux.lds.h> 8 + #include <asm/thread_info.h> 9 + #include <asm/page.h> 10 + 11 + ENTRY(_c_int00) 12 + 13 + #if defined(CONFIG_CPU_BIG_ENDIAN) 14 + jiffies = jiffies_64 + 4; 15 + #else 16 + jiffies = jiffies_64; 17 + #endif 18 + 19 + #define READONLY_SEGMENT_START \ 20 + . = PAGE_OFFSET; 21 + #define READWRITE_SEGMENT_START \ 22 + . = ALIGN(128); \ 23 + _data_lma = .; 24 + 25 + SECTIONS 26 + { 27 + /* 28 + * Start kernel read only segment 29 + */ 30 + READONLY_SEGMENT_START 31 + 32 + .vectors : 33 + { 34 + _vectors_start = .; 35 + *(.vectors) 36 + . = ALIGN(0x400); 37 + _vectors_end = .; 38 + } 39 + 40 + . = ALIGN(0x1000); 41 + .cmdline : 42 + { 43 + *(.cmdline) 44 + } 45 + 46 + /* 47 + * This section contains data which may be shared with other 48 + * cores. It needs to be a fixed offset from PAGE_OFFSET 49 + * regardless of kernel configuration. 50 + */ 51 + .virtio_ipc_dev : 52 + { 53 + *(.virtio_ipc_dev) 54 + } 55 + 56 + . = ALIGN(PAGE_SIZE); 57 + .init : 58 + { 59 + _stext = .; 60 + _sinittext = .; 61 + HEAD_TEXT 62 + INIT_TEXT 63 + _einittext = .; 64 + } 65 + 66 + __init_begin = _stext; 67 + INIT_DATA_SECTION(16) 68 + 69 + PERCPU_SECTION(128) 70 + 71 + . = ALIGN(PAGE_SIZE); 72 + __init_end = .; 73 + 74 + .text : 75 + { 76 + _text = .; 77 + TEXT_TEXT 78 + SCHED_TEXT 79 + LOCK_TEXT 80 + IRQENTRY_TEXT 81 + KPROBES_TEXT 82 + *(.fixup) 83 + *(.gnu.warning) 84 + } 85 + 86 + EXCEPTION_TABLE(16) 87 + NOTES 88 + 89 + RO_DATA_SECTION(PAGE_SIZE) 90 + .const : 91 + { 92 + *(.const .const.* .gnu.linkonce.r.*) 93 + *(.switch) 94 + } 95 + 96 + . = ALIGN (8) ; 97 + __fdt_blob : AT(ADDR(__fdt_blob) - LOAD_OFFSET) 98 + { 99 + _fdt_start = . ; /* place for fdt blob */ 100 + *(__fdt_blob) ; /* Any link-placed DTB */ 101 + BYTE(0); /* section always has contents */ 102 + . = _fdt_start + 0x4000; /* Pad up to 16kbyte */ 103 + _fdt_end = . ; 104 + } 105 + 106 + _etext = .; 107 + 108 + /* 109 + * Start kernel read-write segment. 110 + */ 111 + READWRITE_SEGMENT_START 112 + _sdata = .; 113 + 114 + .fardata : AT(ADDR(.fardata) - LOAD_OFFSET) 115 + { 116 + INIT_TASK_DATA(THREAD_SIZE) 117 + NOSAVE_DATA 118 + PAGE_ALIGNED_DATA(PAGE_SIZE) 119 + CACHELINE_ALIGNED_DATA(128) 120 + READ_MOSTLY_DATA(128) 121 + DATA_DATA 122 + CONSTRUCTORS 123 + *(.data1) 124 + *(.fardata .fardata.*) 125 + *(.data.debug_bpt) 126 + } 127 + 128 + .neardata ALIGN(8) : AT(ADDR(.neardata) - LOAD_OFFSET) 129 + { 130 + *(.neardata2 .neardata2.* .gnu.linkonce.s2.*) 131 + *(.neardata .neardata.* .gnu.linkonce.s.*) 132 + . = ALIGN(8); 133 + } 134 + 135 + _edata = .; 136 + 137 + __bss_start = .; 138 + SBSS(8) 139 + BSS(8) 140 + .far : 141 + { 142 + . = ALIGN(8); 143 + *(.dynfar) 144 + *(.far .far.* .gnu.linkonce.b.*) 145 + . = ALIGN(8); 146 + } 147 + __bss_stop = .; 148 + 149 + _end = .; 150 + 151 + DWARF_DEBUG 152 + 153 + /DISCARD/ : 154 + { 155 + EXIT_TEXT 156 + EXIT_DATA 157 + EXIT_CALL 158 + *(.discard) 159 + *(.discard.*) 160 + *(.interp) 161 + } 162 + }
+7
arch/c6x/lib/Makefile
··· 1 + # 2 + # Makefile for arch/c6x/lib/ 3 + # 4 + 5 + lib-y := divu.o divi.o pop_rts.o push_rts.o remi.o remu.o strasgi.o llshru.o 6 + lib-y += llshr.o llshl.o negll.o mpyll.o divremi.o divremu.o 7 + lib-y += checksum.o csum_64plus.o memcpy_64plus.o strasgi_64plus.o
+5
arch/c6x/mm/Makefile
··· 1 + # 2 + # Makefile for the linux c6x-specific parts of the memory manager. 3 + # 4 + 5 + obj-y := init.o dma-coherent.o
+16
arch/c6x/platforms/Kconfig
··· 1 + 2 + config SOC_TMS320C6455 3 + bool "TMS320C6455" 4 + default n 5 + 6 + config SOC_TMS320C6457 7 + bool "TMS320C6457" 8 + default n 9 + 10 + config SOC_TMS320C6472 11 + bool "TMS320C6472" 12 + default n 13 + 14 + config SOC_TMS320C6474 15 + bool "TMS320C6474" 16 + default n
+12
arch/c6x/platforms/Makefile
··· 1 + # 2 + # Makefile for arch/c6x/platforms 3 + # 4 + # Copyright 2010, 2011 Texas Instruments Incorporated 5 + # 6 + 7 + obj-y = platform.o cache.o megamod-pic.o pll.o plldata.o timer64.o 8 + obj-y += dscr.o 9 + 10 + # SoC objects 11 + obj-$(CONFIG_SOC_TMS320C6455) += emif.o 12 + obj-$(CONFIG_SOC_TMS320C6457) += emif.o