aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/c6x/Kconfig174
-rw-r--r--arch/c6x/Makefile60
-rw-r--r--arch/c6x/boot/Makefile30
-rw-r--r--arch/c6x/configs/dsk6455_defconfig44
-rw-r--r--arch/c6x/configs/evmc6457_defconfig41
-rw-r--r--arch/c6x/configs/evmc6472_defconfig42
-rw-r--r--arch/c6x/configs/evmc6474_defconfig42
-rw-r--r--arch/c6x/include/asm/Kbuild54
-rw-r--r--arch/c6x/kernel/Makefile12
-rw-r--r--arch/c6x/kernel/vmlinux.lds.S162
-rw-r--r--arch/c6x/lib/Makefile7
-rw-r--r--arch/c6x/mm/Makefile5
-rw-r--r--arch/c6x/platforms/Kconfig16
-rw-r--r--arch/c6x/platforms/Makefile12
14 files changed, 701 insertions, 0 deletions
diff --git a/arch/c6x/Kconfig b/arch/c6x/Kconfig
new file mode 100644
index 000000000000..26e67f0f0051
--- /dev/null
+++ b/arch/c6x/Kconfig
@@ -0,0 +1,174 @@
1#
2# For a description of the syntax of this configuration file,
3# see Documentation/kbuild/kconfig-language.txt.
4#
5
6config 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
18config MMU
19 def_bool n
20
21config ZONE_DMA
22 def_bool y
23
24config FPU
25 def_bool n
26
27config HIGHMEM
28 def_bool n
29
30config NUMA
31 def_bool n
32
33config RWSEM_GENERIC_SPINLOCK
34 def_bool y
35
36config RWSEM_XCHGADD_ALGORITHM
37 def_bool n
38
39config GENERIC_CALIBRATE_DELAY
40 def_bool y
41
42config GENERIC_HWEIGHT
43 def_bool y
44
45config GENERIC_CLOCKEVENTS
46 def_bool y
47
48config GENERIC_CLOCKEVENTS_BROADCAST
49 bool
50
51config GENERIC_BUG
52 def_bool y
53
54config COMMON_CLKDEV
55 def_bool y
56
57config 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
69source "init/Kconfig"
70
71# Use the generic interrupt handling code in kernel/irq/
72
73source "kernel/Kconfig.freezer"
74
75config CMDLINE_BOOL
76 bool "Default bootloader kernel arguments"
77
78config 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
88config 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
96config 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
105config 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
119menu "Processor type and features"
120
121source "arch/c6x/platforms/Kconfig"
122
123config TMS320C6X_CACHES_ON
124 bool "L2 cache support"
125 default y
126
127config 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
134source "mm/Kconfig"
135
136source "kernel/Kconfig.preempt"
137
138source "kernel/Kconfig.hz"
139source "kernel/time/Kconfig"
140
141endmenu
142
143menu "Executable file formats"
144
145source "fs/Kconfig.binfmt"
146
147endmenu
148
149source "net/Kconfig"
150
151source "drivers/Kconfig"
152
153source "fs/Kconfig"
154
155source "security/Kconfig"
156
157source "crypto/Kconfig"
158
159source "lib/Kconfig"
160
161menu "Kernel hacking"
162
163source "lib/Kconfig.debug"
164
165config 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
174endmenu
diff --git a/arch/c6x/Makefile b/arch/c6x/Makefile
new file mode 100644
index 000000000000..1d08dd070277
--- /dev/null
+++ b/arch/c6x/Makefile
@@ -0,0 +1,60 @@
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
9cflags-y += -mno-dsbt -msdata=none
10
11cflags-$(CONFIG_C6X_BIG_KERNEL) += -mlong-calls
12
13CFLAGS_MODULE += -mlong-calls -mno-dsbt -msdata=none
14
15CHECKFLAGS +=
16
17KBUILD_CFLAGS += $(cflags-y)
18KBUILD_AFLAGS += $(cflags-y)
19
20ifdef CONFIG_CPU_BIG_ENDIAN
21KBUILD_CFLAGS += -mbig-endian
22KBUILD_AFLAGS += -mbig-endian
23LINKFLAGS += -mbig-endian
24KBUILD_LDFLAGS += -mbig-endian
25LDFLAGS += -EB
26endif
27
28head-y := arch/c6x/kernel/head.o
29core-y += arch/c6x/kernel/ arch/c6x/mm/ arch/c6x/platforms/
30libs-y += arch/c6x/lib/
31
32# Default to vmlinux.bin, override when needed
33all: vmlinux.bin
34
35boot := arch/$(ARCH)/boot
36
37# Are we making a dtbImage.<boardname> target? If so, crack out the boardname
38DTB:=$(subst dtbImage.,,$(filter dtbImage.%, $(MAKECMDGOALS)))
39export DTB
40
41ifneq ($(DTB),)
42core-y += $(boot)/
43endif
44
45# With make 3.82 we cannot mix normal and wildcard targets
46
47vmlinux.bin: vmlinux
48 $(Q)$(MAKE) $(build)=$(boot) $(patsubst %,$(boot)/%,$@)
49
50dtbImage.%: vmlinux
51 $(Q)$(MAKE) $(build)=$(boot) $(patsubst %,$(boot)/%,$@)
52
53archclean:
54 $(Q)$(MAKE) $(clean)=$(boot)
55
56define 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'
60endef
diff --git a/arch/c6x/boot/Makefile b/arch/c6x/boot/Makefile
new file mode 100644
index 000000000000..ecca820e6041
--- /dev/null
+++ b/arch/c6x/boot/Makefile
@@ -0,0 +1,30 @@
1#
2# Makefile for bootable kernel images
3#
4
5OBJCOPYFLAGS_vmlinux.bin := -O binary
6$(obj)/vmlinux.bin: vmlinux FORCE
7 $(call if_changed,objcopy)
8
9DTC_FLAGS ?= -p 1024
10
11ifneq ($(DTB),)
12obj-y += linked_dtb.o
13endif
14
15$(obj)/%.dtb: $(src)/dts/%.dts FORCE
16 $(call cmd,dtc)
17
18quiet_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
30clean-files := $(obj)/*.dtb
diff --git a/arch/c6x/configs/dsk6455_defconfig b/arch/c6x/configs/dsk6455_defconfig
new file mode 100644
index 000000000000..4663487c67a1
--- /dev/null
+++ b/arch/c6x/configs/dsk6455_defconfig
@@ -0,0 +1,44 @@
1CONFIG_SOC_TMS320C6455=y
2CONFIG_EXPERIMENTAL=y
3# CONFIG_LOCALVERSION_AUTO is not set
4CONFIG_SYSVIPC=y
5CONFIG_SPARSE_IRQ=y
6CONFIG_LOG_BUF_SHIFT=14
7CONFIG_NAMESPACES=y
8# CONFIG_UTS_NS is not set
9# CONFIG_USER_NS is not set
10# CONFIG_PID_NS is not set
11CONFIG_BLK_DEV_INITRD=y
12CONFIG_CC_OPTIMIZE_FOR_SIZE=y
13CONFIG_EXPERT=y
14# CONFIG_FUTEX is not set
15# CONFIG_SLUB_DEBUG is not set
16CONFIG_MODULES=y
17CONFIG_MODULE_FORCE_LOAD=y
18CONFIG_MODULE_UNLOAD=y
19CONFIG_MODULE_FORCE_UNLOAD=y
20CONFIG_CMDLINE_BOOL=y
21CONFIG_CMDLINE=""
22CONFIG_NO_HZ=y
23CONFIG_HIGH_RES_TIMERS=y
24CONFIG_BLK_DEV_LOOP=y
25CONFIG_BLK_DEV_RAM=y
26CONFIG_BLK_DEV_RAM_COUNT=2
27CONFIG_BLK_DEV_RAM_SIZE=17000
28CONFIG_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
37CONFIG_CRC16=y
38# CONFIG_ENABLE_MUST_CHECK is not set
39# CONFIG_SCHED_DEBUG is not set
40# CONFIG_DEBUG_BUGVERBOSE is not set
41CONFIG_MTD=y
42CONFIG_MTD_CFI=y
43CONFIG_MTD_CFI_AMDSTD=y
44CONFIG_MTD_PHYSMAP_OF=y
diff --git a/arch/c6x/configs/evmc6457_defconfig b/arch/c6x/configs/evmc6457_defconfig
new file mode 100644
index 000000000000..bba40e195ec4
--- /dev/null
+++ b/arch/c6x/configs/evmc6457_defconfig
@@ -0,0 +1,41 @@
1CONFIG_SOC_TMS320C6457=y
2CONFIG_EXPERIMENTAL=y
3# CONFIG_LOCALVERSION_AUTO is not set
4CONFIG_SYSVIPC=y
5CONFIG_SPARSE_IRQ=y
6CONFIG_LOG_BUF_SHIFT=14
7CONFIG_NAMESPACES=y
8# CONFIG_UTS_NS is not set
9# CONFIG_USER_NS is not set
10# CONFIG_PID_NS is not set
11CONFIG_BLK_DEV_INITRD=y
12CONFIG_CC_OPTIMIZE_FOR_SIZE=y
13CONFIG_EXPERT=y
14# CONFIG_FUTEX is not set
15# CONFIG_SLUB_DEBUG is not set
16CONFIG_MODULES=y
17CONFIG_MODULE_FORCE_LOAD=y
18CONFIG_MODULE_UNLOAD=y
19CONFIG_MODULE_FORCE_UNLOAD=y
20CONFIG_CMDLINE_BOOL=y
21CONFIG_CMDLINE=""
22CONFIG_BOARD_EVM6457=y
23CONFIG_NO_HZ=y
24CONFIG_HIGH_RES_TIMERS=y
25CONFIG_BLK_DEV_LOOP=y
26CONFIG_BLK_DEV_RAM=y
27CONFIG_BLK_DEV_RAM_COUNT=2
28CONFIG_BLK_DEV_RAM_SIZE=17000
29CONFIG_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
38CONFIG_CRC16=y
39# CONFIG_ENABLE_MUST_CHECK is not set
40# CONFIG_SCHED_DEBUG is not set
41# CONFIG_DEBUG_BUGVERBOSE is not set
diff --git a/arch/c6x/configs/evmc6472_defconfig b/arch/c6x/configs/evmc6472_defconfig
new file mode 100644
index 000000000000..8c46155f6d31
--- /dev/null
+++ b/arch/c6x/configs/evmc6472_defconfig
@@ -0,0 +1,42 @@
1CONFIG_SOC_TMS320C6472=y
2CONFIG_EXPERIMENTAL=y
3# CONFIG_LOCALVERSION_AUTO is not set
4CONFIG_SYSVIPC=y
5CONFIG_SPARSE_IRQ=y
6CONFIG_LOG_BUF_SHIFT=14
7CONFIG_NAMESPACES=y
8# CONFIG_UTS_NS is not set
9# CONFIG_USER_NS is not set
10# CONFIG_PID_NS is not set
11CONFIG_BLK_DEV_INITRD=y
12CONFIG_CC_OPTIMIZE_FOR_SIZE=y
13CONFIG_EXPERT=y
14# CONFIG_FUTEX is not set
15# CONFIG_SLUB_DEBUG is not set
16CONFIG_MODULES=y
17CONFIG_MODULE_FORCE_LOAD=y
18CONFIG_MODULE_UNLOAD=y
19CONFIG_MODULE_FORCE_UNLOAD=y
20CONFIG_CMDLINE_BOOL=y
21CONFIG_CMDLINE=""
22# CONFIG_CMDLINE_FORCE is not set
23CONFIG_BOARD_EVM6472=y
24CONFIG_NO_HZ=y
25CONFIG_HIGH_RES_TIMERS=y
26CONFIG_BLK_DEV_LOOP=y
27CONFIG_BLK_DEV_RAM=y
28CONFIG_BLK_DEV_RAM_COUNT=2
29CONFIG_BLK_DEV_RAM_SIZE=17000
30CONFIG_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
39CONFIG_CRC16=y
40# CONFIG_ENABLE_MUST_CHECK is not set
41# CONFIG_SCHED_DEBUG is not set
42# CONFIG_DEBUG_BUGVERBOSE is not set
diff --git a/arch/c6x/configs/evmc6474_defconfig b/arch/c6x/configs/evmc6474_defconfig
new file mode 100644
index 000000000000..15533f632313
--- /dev/null
+++ b/arch/c6x/configs/evmc6474_defconfig
@@ -0,0 +1,42 @@
1CONFIG_SOC_TMS320C6474=y
2CONFIG_EXPERIMENTAL=y
3# CONFIG_LOCALVERSION_AUTO is not set
4CONFIG_SYSVIPC=y
5CONFIG_SPARSE_IRQ=y
6CONFIG_LOG_BUF_SHIFT=14
7CONFIG_NAMESPACES=y
8# CONFIG_UTS_NS is not set
9# CONFIG_USER_NS is not set
10# CONFIG_PID_NS is not set
11CONFIG_BLK_DEV_INITRD=y
12CONFIG_CC_OPTIMIZE_FOR_SIZE=y
13CONFIG_EXPERT=y
14# CONFIG_FUTEX is not set
15# CONFIG_SLUB_DEBUG is not set
16CONFIG_MODULES=y
17CONFIG_MODULE_FORCE_LOAD=y
18CONFIG_MODULE_UNLOAD=y
19CONFIG_MODULE_FORCE_UNLOAD=y
20CONFIG_CMDLINE_BOOL=y
21CONFIG_CMDLINE=""
22# CONFIG_CMDLINE_FORCE is not set
23CONFIG_BOARD_EVM6474=y
24CONFIG_NO_HZ=y
25CONFIG_HIGH_RES_TIMERS=y
26CONFIG_BLK_DEV_LOOP=y
27CONFIG_BLK_DEV_RAM=y
28CONFIG_BLK_DEV_RAM_COUNT=2
29CONFIG_BLK_DEV_RAM_SIZE=17000
30CONFIG_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
39CONFIG_CRC16=y
40# CONFIG_ENABLE_MUST_CHECK is not set
41# CONFIG_SCHED_DEBUG is not set
42# CONFIG_DEBUG_BUGVERBOSE is not set
diff --git a/arch/c6x/include/asm/Kbuild b/arch/c6x/include/asm/Kbuild
new file mode 100644
index 000000000000..13dcf78adf91
--- /dev/null
+++ b/arch/c6x/include/asm/Kbuild
@@ -0,0 +1,54 @@
1include include/asm-generic/Kbuild.asm
2
3generic-y += atomic.h
4generic-y += auxvec.h
5generic-y += bitsperlong.h
6generic-y += bug.h
7generic-y += bugs.h
8generic-y += cputime.h
9generic-y += current.h
10generic-y += device.h
11generic-y += div64.h
12generic-y += dma.h
13generic-y += emergency-restart.h
14generic-y += errno.h
15generic-y += fb.h
16generic-y += fcntl.h
17generic-y += futex.h
18generic-y += hw_irq.h
19generic-y += io.h
20generic-y += ioctl.h
21generic-y += ioctls.h
22generic-y += ipcbuf.h
23generic-y += irq_regs.h
24generic-y += kdebug.h
25generic-y += kmap_types.h
26generic-y += local.h
27generic-y += mman.h
28generic-y += mmu_context.h
29generic-y += msgbuf.h
30generic-y += param.h
31generic-y += pci.h
32generic-y += percpu.h
33generic-y += pgalloc.h
34generic-y += poll.h
35generic-y += posix_types.h
36generic-y += resource.h
37generic-y += scatterlist.h
38generic-y += segment.h
39generic-y += sembuf.h
40generic-y += shmbuf.h
41generic-y += shmparam.h
42generic-y += siginfo.h
43generic-y += socket.h
44generic-y += sockios.h
45generic-y += stat.h
46generic-y += statfs.h
47generic-y += termbits.h
48generic-y += termios.h
49generic-y += tlbflush.h
50generic-y += topology.h
51generic-y += types.h
52generic-y += ucontext.h
53generic-y += user.h
54generic-y += vga.h
diff --git a/arch/c6x/kernel/Makefile b/arch/c6x/kernel/Makefile
new file mode 100644
index 000000000000..580a515a9443
--- /dev/null
+++ b/arch/c6x/kernel/Makefile
@@ -0,0 +1,12 @@
1#
2# Makefile for arch/c6x/kernel/
3#
4
5extra-y := head.o vmlinux.lds
6
7obj-y := process.o traps.o irq.o signal.o ptrace.o
8obj-y += setup.o sys_c6x.o time.o devicetree.o
9obj-y += switch_to.o entry.o vectors.o c6x_ksyms.o
10obj-y += soc.o dma.o
11
12obj-$(CONFIG_MODULES) += module.o
diff --git a/arch/c6x/kernel/vmlinux.lds.S b/arch/c6x/kernel/vmlinux.lds.S
new file mode 100644
index 000000000000..1d81c4c129ec
--- /dev/null
+++ b/arch/c6x/kernel/vmlinux.lds.S
@@ -0,0 +1,162 @@
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
11ENTRY(_c_int00)
12
13#if defined(CONFIG_CPU_BIG_ENDIAN)
14jiffies = jiffies_64 + 4;
15#else
16jiffies = 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
25SECTIONS
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}
diff --git a/arch/c6x/lib/Makefile b/arch/c6x/lib/Makefile
new file mode 100644
index 000000000000..ffd3c659091a
--- /dev/null
+++ b/arch/c6x/lib/Makefile
@@ -0,0 +1,7 @@
1#
2# Makefile for arch/c6x/lib/
3#
4
5lib-y := divu.o divi.o pop_rts.o push_rts.o remi.o remu.o strasgi.o llshru.o
6lib-y += llshr.o llshl.o negll.o mpyll.o divremi.o divremu.o
7lib-y += checksum.o csum_64plus.o memcpy_64plus.o strasgi_64plus.o
diff --git a/arch/c6x/mm/Makefile b/arch/c6x/mm/Makefile
new file mode 100644
index 000000000000..136a97576c61
--- /dev/null
+++ b/arch/c6x/mm/Makefile
@@ -0,0 +1,5 @@
1#
2# Makefile for the linux c6x-specific parts of the memory manager.
3#
4
5obj-y := init.o dma-coherent.o
diff --git a/arch/c6x/platforms/Kconfig b/arch/c6x/platforms/Kconfig
new file mode 100644
index 000000000000..401ee678fd01
--- /dev/null
+++ b/arch/c6x/platforms/Kconfig
@@ -0,0 +1,16 @@
1
2config SOC_TMS320C6455
3 bool "TMS320C6455"
4 default n
5
6config SOC_TMS320C6457
7 bool "TMS320C6457"
8 default n
9
10config SOC_TMS320C6472
11 bool "TMS320C6472"
12 default n
13
14config SOC_TMS320C6474
15 bool "TMS320C6474"
16 default n
diff --git a/arch/c6x/platforms/Makefile b/arch/c6x/platforms/Makefile
new file mode 100644
index 000000000000..9a95b9bca8d0
--- /dev/null
+++ b/arch/c6x/platforms/Makefile
@@ -0,0 +1,12 @@
1#
2# Makefile for arch/c6x/platforms
3#
4# Copyright 2010, 2011 Texas Instruments Incorporated
5#
6
7obj-y = platform.o cache.o megamod-pic.o pll.o plldata.o timer64.o
8obj-y += dscr.o
9
10# SoC objects
11obj-$(CONFIG_SOC_TMS320C6455) += emif.o
12obj-$(CONFIG_SOC_TMS320C6457) += emif.o