diff options
-rw-r--r-- | arch/c6x/Kconfig | 174 | ||||
-rw-r--r-- | arch/c6x/Makefile | 60 | ||||
-rw-r--r-- | arch/c6x/boot/Makefile | 30 | ||||
-rw-r--r-- | arch/c6x/configs/dsk6455_defconfig | 44 | ||||
-rw-r--r-- | arch/c6x/configs/evmc6457_defconfig | 41 | ||||
-rw-r--r-- | arch/c6x/configs/evmc6472_defconfig | 42 | ||||
-rw-r--r-- | arch/c6x/configs/evmc6474_defconfig | 42 | ||||
-rw-r--r-- | arch/c6x/include/asm/Kbuild | 54 | ||||
-rw-r--r-- | arch/c6x/kernel/Makefile | 12 | ||||
-rw-r--r-- | arch/c6x/kernel/vmlinux.lds.S | 162 | ||||
-rw-r--r-- | arch/c6x/lib/Makefile | 7 | ||||
-rw-r--r-- | arch/c6x/mm/Makefile | 5 | ||||
-rw-r--r-- | arch/c6x/platforms/Kconfig | 16 | ||||
-rw-r--r-- | arch/c6x/platforms/Makefile | 12 |
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 | |||
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 | ||
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 | |||
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 | ||
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 | |||
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 | ||
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 @@ | |||
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 | ||
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 @@ | |||
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 | ||
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 @@ | |||
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 | ||
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 @@ | |||
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 | ||
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 @@ | |||
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 | ||
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 | |||
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 | ||
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 | |||
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 | } | ||
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 | |||
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 | ||
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 | |||
5 | obj-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 | |||
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 | ||
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 | |||
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 | ||