You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
Merge tag 'for-linux-3.3-merge-window' of git://linux-c6x.org/git/projects/linux-c6x-upstreaming
* tag 'for-linux-3.3-merge-window' of git://linux-c6x.org/git/projects/linux-c6x-upstreaming: (29 commits) C6X: replace tick_nohz_stop/restart_sched_tick calls C6X: add register_cpu call C6X: deal with memblock API changes C6X: fix timer64 initialization C6X: fix layout of EMIFA registers C6X: MAINTAINERS C6X: DSCR - Device State Configuration Registers C6X: EMIF - External Memory Interface C6X: general SoC support C6X: library code C6X: headers C6X: ptrace support C6X: loadable module support C6X: cache control C6X: clocks C6X: build infrastructure C6X: syscalls C6X: interrupt handling C6X: time management C6X: signal management ...
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
C6X PLL Clock Controllers
|
||||
-------------------------
|
||||
|
||||
This is a first-cut support for the SoC clock controllers. This is still
|
||||
under development and will probably change as the common device tree
|
||||
clock support is added to the kernel.
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible: "ti,c64x+pll"
|
||||
May also have SoC-specific value to support SoC-specific initialization
|
||||
in the driver. One of:
|
||||
"ti,c6455-pll"
|
||||
"ti,c6457-pll"
|
||||
"ti,c6472-pll"
|
||||
"ti,c6474-pll"
|
||||
|
||||
- reg: base address and size of register area
|
||||
- clock-frequency: input clock frequency in hz
|
||||
|
||||
|
||||
Optional properties:
|
||||
|
||||
- ti,c64x+pll-bypass-delay: CPU cycles to delay when entering bypass mode
|
||||
|
||||
- ti,c64x+pll-reset-delay: CPU cycles to delay after PLL reset
|
||||
|
||||
- ti,c64x+pll-lock-delay: CPU cycles to delay after PLL frequency change
|
||||
|
||||
Example:
|
||||
|
||||
clock-controller@29a0000 {
|
||||
compatible = "ti,c6472-pll", "ti,c64x+pll";
|
||||
reg = <0x029a0000 0x200>;
|
||||
clock-frequency = <25000000>;
|
||||
|
||||
ti,c64x+pll-bypass-delay = <200>;
|
||||
ti,c64x+pll-reset-delay = <12000>;
|
||||
ti,c64x+pll-lock-delay = <80000>;
|
||||
};
|
||||
@@ -0,0 +1,127 @@
|
||||
Device State Configuration Registers
|
||||
------------------------------------
|
||||
|
||||
TI C6X SoCs contain a region of miscellaneous registers which provide various
|
||||
function for SoC control or status. Details vary considerably among from SoC
|
||||
to SoC with no two being alike.
|
||||
|
||||
In general, the Device State Configuraion Registers (DSCR) will provide one or
|
||||
more configuration registers often protected by a lock register where one or
|
||||
more key values must be written to a lock register in order to unlock the
|
||||
configuration register for writes. These configuration register may be used to
|
||||
enable (and disable in some cases) SoC pin drivers, select peripheral clock
|
||||
sources (internal or pin), etc. In some cases, a configuration register is
|
||||
write once or the individual bits are write once. In addition to device config,
|
||||
the DSCR block may provide registers which which are used to reset peripherals,
|
||||
provide device ID information, provide ethernet MAC addresses, as well as other
|
||||
miscellaneous functions.
|
||||
|
||||
For device state control (enable/disable), each device control is assigned an
|
||||
id which is used by individual device drivers to control the state as needed.
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible: must be "ti,c64x+dscr"
|
||||
- reg: register area base and size
|
||||
|
||||
Optional properties:
|
||||
|
||||
NOTE: These are optional in that not all SoCs will have all properties. For
|
||||
SoCs which do support a given property, leaving the property out of the
|
||||
device tree will result in reduced functionality or possibly driver
|
||||
failure.
|
||||
|
||||
- ti,dscr-devstat
|
||||
offset of the devstat register
|
||||
|
||||
- ti,dscr-silicon-rev
|
||||
offset, start bit, and bitsize of silicon revision field
|
||||
|
||||
- ti,dscr-rmii-resets
|
||||
offset and bitmask of RMII reset field. May have multiple tuples if more
|
||||
than one ethernet port is available.
|
||||
|
||||
- ti,dscr-locked-regs
|
||||
possibly multiple tuples describing registers which are write protected by
|
||||
a lock register. Each tuple consists of the register offset, lock register
|
||||
offsset, and the key value used to unlock the register.
|
||||
|
||||
- ti,dscr-kick-regs
|
||||
offset and key values of two "kick" registers used to write protect other
|
||||
registers in DSCR. On SoCs using kick registers, the first key must be
|
||||
written to the first kick register and the second key must be written to
|
||||
the second register before other registers in the area are write-enabled.
|
||||
|
||||
- ti,dscr-mac-fuse-regs
|
||||
MAC addresses are contained in two registers. Each element of a MAC address
|
||||
is contained in a single byte. This property has two tuples. Each tuple has
|
||||
a register offset and four cells representing bytes in the register from
|
||||
most significant to least. The value of these four cells is the MAC byte
|
||||
index (1-6) of the byte within the register. A value of 0 means the byte
|
||||
is unused in the MAC address.
|
||||
|
||||
- ti,dscr-devstate-ctl-regs
|
||||
This property describes the bitfields used to control the state of devices.
|
||||
Each tuple describes a range of identical bitfields used to control one or
|
||||
more devices (one bitfield per device). The layout of each tuple is:
|
||||
|
||||
start_id num_ids reg enable disable start_bit nbits
|
||||
|
||||
Where:
|
||||
start_id is device id for the first device control in the range
|
||||
num_ids is the number of device controls in the range
|
||||
reg is the offset of the register holding the control bits
|
||||
enable is the value to enable a device
|
||||
disable is the value to disable a device (0xffffffff if cannot disable)
|
||||
start_bit is the bit number of the first bit in the range
|
||||
nbits is the number of bits per device control
|
||||
|
||||
- ti,dscr-devstate-stat-regs
|
||||
This property describes the bitfields used to provide device state status
|
||||
for device states controlled by the DSCR. Each tuple describes a range of
|
||||
identical bitfields used to provide status for one or more devices (one
|
||||
bitfield per device). The layout of each tuple is:
|
||||
|
||||
start_id num_ids reg enable disable start_bit nbits
|
||||
|
||||
Where:
|
||||
start_id is device id for the first device status in the range
|
||||
num_ids is the number of devices covered by the range
|
||||
reg is the offset of the register holding the status bits
|
||||
enable is the value indicating device is enabled
|
||||
disable is the value indicating device is disabled
|
||||
start_bit is the bit number of the first bit in the range
|
||||
nbits is the number of bits per device status
|
||||
|
||||
- ti,dscr-privperm
|
||||
Offset and default value for register used to set access privilege for
|
||||
some SoC devices.
|
||||
|
||||
|
||||
Example:
|
||||
|
||||
device-state-config-regs@2a80000 {
|
||||
compatible = "ti,c64x+dscr";
|
||||
reg = <0x02a80000 0x41000>;
|
||||
|
||||
ti,dscr-devstat = <0>;
|
||||
ti,dscr-silicon-rev = <8 28 0xf>;
|
||||
ti,dscr-rmii-resets = <0x40020 0x00040000>;
|
||||
|
||||
ti,dscr-locked-regs = <0x40008 0x40004 0x0f0a0b00>;
|
||||
ti,dscr-devstate-ctl-regs =
|
||||
<0 12 0x40008 1 0 0 2
|
||||
12 1 0x40008 3 0 30 2
|
||||
13 2 0x4002c 1 0xffffffff 0 1>;
|
||||
ti,dscr-devstate-stat-regs =
|
||||
<0 10 0x40014 1 0 0 3
|
||||
10 2 0x40018 1 0 0 3>;
|
||||
|
||||
ti,dscr-mac-fuse-regs = <0x700 1 2 3 4
|
||||
0x704 5 6 0 0>;
|
||||
|
||||
ti,dscr-privperm = <0x41c 0xaaaaaaaa>;
|
||||
|
||||
ti,dscr-kick-regs = <0x38 0x83E70B13
|
||||
0x3c 0x95A4F1E0>;
|
||||
};
|
||||
@@ -0,0 +1,62 @@
|
||||
External Memory Interface
|
||||
-------------------------
|
||||
|
||||
The emifa node describes a simple external bus controller found on some C6X
|
||||
SoCs. This interface provides external busses with a number of chip selects.
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible: must be "ti,c64x+emifa", "simple-bus"
|
||||
- reg: register area base and size
|
||||
- #address-cells: must be 2 (chip-select + offset)
|
||||
- #size-cells: must be 1
|
||||
- ranges: mapping from EMIFA space to parent space
|
||||
|
||||
|
||||
Optional properties:
|
||||
|
||||
- ti,dscr-dev-enable: Device ID if EMIF is enabled/disabled from DSCR
|
||||
|
||||
- ti,emifa-burst-priority:
|
||||
Number of memory transfers after which the EMIF will elevate the priority
|
||||
of the oldest command in the command FIFO. Setting this field to 255
|
||||
disables this feature, thereby allowing old commands to stay in the FIFO
|
||||
indefinitely.
|
||||
|
||||
- ti,emifa-ce-config:
|
||||
Configuration values for each of the supported chip selects.
|
||||
|
||||
Example:
|
||||
|
||||
emifa@70000000 {
|
||||
compatible = "ti,c64x+emifa", "simple-bus";
|
||||
#address-cells = <2>;
|
||||
#size-cells = <1>;
|
||||
reg = <0x70000000 0x100>;
|
||||
ranges = <0x2 0x0 0xa0000000 0x00000008
|
||||
0x3 0x0 0xb0000000 0x00400000
|
||||
0x4 0x0 0xc0000000 0x10000000
|
||||
0x5 0x0 0xD0000000 0x10000000>;
|
||||
|
||||
ti,dscr-dev-enable = <13>;
|
||||
ti,emifa-burst-priority = <255>;
|
||||
ti,emifa-ce-config = <0x00240120
|
||||
0x00240120
|
||||
0x00240122
|
||||
0x00240122>;
|
||||
|
||||
flash@3,0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
compatible = "cfi-flash";
|
||||
reg = <0x3 0x0 0x400000>;
|
||||
bank-width = <1>;
|
||||
device-width = <1>;
|
||||
partition@0 {
|
||||
reg = <0x0 0x400000>;
|
||||
label = "NOR";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
This shows a flash chip attached to chip select 3.
|
||||
@@ -0,0 +1,104 @@
|
||||
C6X Interrupt Chips
|
||||
-------------------
|
||||
|
||||
* C64X+ Core Interrupt Controller
|
||||
|
||||
The core interrupt controller provides 16 prioritized interrupts to the
|
||||
C64X+ core. Priority 0 and 1 are used for reset and NMI respectively.
|
||||
Priority 2 and 3 are reserved. Priority 4-15 are used for interrupt
|
||||
sources coming from outside the core.
|
||||
|
||||
Required properties:
|
||||
--------------------
|
||||
- compatible: Should be "ti,c64x+core-pic";
|
||||
- #interrupt-cells: <1>
|
||||
|
||||
Interrupt Specifier Definition
|
||||
------------------------------
|
||||
Single cell specifying the core interrupt priority level (4-15) where
|
||||
4 is highest priority and 15 is lowest priority.
|
||||
|
||||
Example
|
||||
-------
|
||||
core_pic: interrupt-controller@0 {
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <1>;
|
||||
compatible = "ti,c64x+core-pic";
|
||||
};
|
||||
|
||||
|
||||
|
||||
* C64x+ Megamodule Interrupt Controller
|
||||
|
||||
The megamodule PIC consists of four interrupt mupliplexers each of which
|
||||
combine up to 32 interrupt inputs into a single interrupt output which
|
||||
may be cascaded into the core interrupt controller. The megamodule PIC
|
||||
has a total of 12 outputs cascading into the core interrupt controller.
|
||||
One for each core interrupt priority level. In addition to the combined
|
||||
interrupt sources, individual megamodule interrupts may be cascaded to
|
||||
the core interrupt controller. When an individual interrupt is cascaded,
|
||||
it is no longer handled through a megamodule interrupt combiner and is
|
||||
considered to have the core interrupt controller as the parent.
|
||||
|
||||
Required properties:
|
||||
--------------------
|
||||
- compatible: "ti,c64x+megamod-pic"
|
||||
- interrupt-controller
|
||||
- #interrupt-cells: <1>
|
||||
- reg: base address and size of register area
|
||||
- interrupt-parent: must be core interrupt controller
|
||||
- interrupts: This should have four cells; one for each interrupt combiner.
|
||||
The cells contain the core priority interrupt to which the
|
||||
corresponding combiner output is wired.
|
||||
|
||||
Optional properties:
|
||||
--------------------
|
||||
- ti,c64x+megamod-pic-mux: Array of 12 cells correspnding to the 12 core
|
||||
priority interrupts. The first cell corresponds to
|
||||
core priority 4 and the last cell corresponds to
|
||||
core priority 15. The value of each cell is the
|
||||
megamodule interrupt source which is MUXed to
|
||||
the core interrupt corresponding to the cell
|
||||
position. Allowed values are 4 - 127. Mapping for
|
||||
interrupts 0 - 3 (combined interrupt sources) are
|
||||
ignored.
|
||||
|
||||
Interrupt Specifier Definition
|
||||
------------------------------
|
||||
Single cell specifying the megamodule interrupt source (4-127). Note that
|
||||
interrupts mapped directly to the core with "ti,c64x+megamod-pic-mux" will
|
||||
use the core interrupt controller as their parent and the specifier will
|
||||
be the core priority level, not the megamodule interrupt number.
|
||||
|
||||
Examples
|
||||
--------
|
||||
megamod_pic: interrupt-controller@1800000 {
|
||||
compatible = "ti,c64x+megamod-pic";
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <1>;
|
||||
reg = <0x1800000 0x1000>;
|
||||
interrupt-parent = <&core_pic>;
|
||||
interrupts = < 12 13 14 15 >;
|
||||
};
|
||||
|
||||
This is a minimal example where all individual interrupts go through a
|
||||
combiner. Combiner-0 is mapped to core interrupt 12, combiner-1 is mapped
|
||||
to interrupt 13, etc.
|
||||
|
||||
|
||||
megamod_pic: interrupt-controller@1800000 {
|
||||
compatible = "ti,c64x+megamod-pic";
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <1>;
|
||||
reg = <0x1800000 0x1000>;
|
||||
interrupt-parent = <&core_pic>;
|
||||
interrupts = < 12 13 14 15 >;
|
||||
ti,c64x+megamod-pic-mux = < 0 0 0 0
|
||||
32 0 0 0
|
||||
0 0 0 0 >;
|
||||
};
|
||||
|
||||
This the same as the first example except that megamodule interrupt 32 is
|
||||
mapped directly to core priority interrupt 8. The node using this interrupt
|
||||
must set the core controller as its interrupt parent and use 8 in the
|
||||
interrupt specifier value.
|
||||
@@ -0,0 +1,28 @@
|
||||
C6X System-on-Chip
|
||||
------------------
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible: "simple-bus"
|
||||
- #address-cells: must be 1
|
||||
- #size-cells: must be 1
|
||||
- ranges
|
||||
|
||||
Optional properties:
|
||||
|
||||
- model: specific SoC model
|
||||
|
||||
- nodes for IP blocks within SoC
|
||||
|
||||
|
||||
Example:
|
||||
|
||||
soc {
|
||||
compatible = "simple-bus";
|
||||
model = "tms320c6455";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
ranges;
|
||||
|
||||
...
|
||||
};
|
||||
@@ -0,0 +1,26 @@
|
||||
Timer64
|
||||
-------
|
||||
|
||||
The timer64 node describes C6X event timers.
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible: must be "ti,c64x+timer64"
|
||||
- reg: base address and size of register region
|
||||
- interrupt-parent: interrupt controller
|
||||
- interrupts: interrupt id
|
||||
|
||||
Optional properties:
|
||||
|
||||
- ti,dscr-dev-enable: Device ID used to enable timer IP through DSCR interface.
|
||||
|
||||
- ti,core-mask: on multi-core SoCs, bitmask of cores allowed to use this timer.
|
||||
|
||||
Example:
|
||||
timer0: timer@25e0000 {
|
||||
compatible = "ti,c64x+timer64";
|
||||
ti,core-mask = < 0x01 >;
|
||||
reg = <0x25e0000 0x40>;
|
||||
interrupt-parent = <&megamod_pic>;
|
||||
interrupts = < 16 >;
|
||||
};
|
||||
@@ -1645,6 +1645,14 @@ T: git git://git.alsa-project.org/alsa-kernel.git
|
||||
S: Maintained
|
||||
F: sound/pci/oxygen/
|
||||
|
||||
C6X ARCHITECTURE
|
||||
M: Mark Salter <msalter@redhat.com>
|
||||
M: Aurelien Jacquiot <a-jacquiot@ti.com>
|
||||
L: linux-c6x-dev@linux-c6x.org
|
||||
W: http://www.linux-c6x.org/wiki/index.php/Main_Page
|
||||
S: Maintained
|
||||
F: arch/c6x/
|
||||
|
||||
CACHEFILES: FS-CACHE BACKEND FOR CACHING ON MOUNTED FILESYSTEMS
|
||||
M: David Howells <dhowells@redhat.com>
|
||||
L: linux-cachefs@redhat.com
|
||||
|
||||
@@ -0,0 +1,174 @@
|
||||
#
|
||||
# For a description of the syntax of this configuration file,
|
||||
# see Documentation/kbuild/kconfig-language.txt.
|
||||
#
|
||||
|
||||
config TMS320C6X
|
||||
def_bool y
|
||||
select CLKDEV_LOOKUP
|
||||
select GENERIC_IRQ_SHOW
|
||||
select HAVE_ARCH_TRACEHOOK
|
||||
select HAVE_DMA_API_DEBUG
|
||||
select HAVE_GENERIC_HARDIRQS
|
||||
select HAVE_MEMBLOCK
|
||||
select HAVE_SPARSE_IRQ
|
||||
select OF
|
||||
select OF_EARLY_FLATTREE
|
||||
|
||||
config MMU
|
||||
def_bool n
|
||||
|
||||
config ZONE_DMA
|
||||
def_bool y
|
||||
|
||||
config FPU
|
||||
def_bool n
|
||||
|
||||
config HIGHMEM
|
||||
def_bool n
|
||||
|
||||
config NUMA
|
||||
def_bool n
|
||||
|
||||
config RWSEM_GENERIC_SPINLOCK
|
||||
def_bool y
|
||||
|
||||
config RWSEM_XCHGADD_ALGORITHM
|
||||
def_bool n
|
||||
|
||||
config GENERIC_CALIBRATE_DELAY
|
||||
def_bool y
|
||||
|
||||
config GENERIC_HWEIGHT
|
||||
def_bool y
|
||||
|
||||
config GENERIC_CLOCKEVENTS
|
||||
def_bool y
|
||||
|
||||
config GENERIC_CLOCKEVENTS_BROADCAST
|
||||
bool
|
||||
|
||||
config GENERIC_BUG
|
||||
def_bool y
|
||||
|
||||
config COMMON_CLKDEV
|
||||
def_bool y
|
||||
|
||||
config C6X_BIG_KERNEL
|
||||
bool "Build a big kernel"
|
||||
help
|
||||
The C6X function call instruction has a limited range of +/- 2MiB.
|
||||
This is sufficient for most kernels, but some kernel configurations
|
||||
with lots of compiled-in functionality may require a larger range
|
||||
for function calls. Use this option to have the compiler generate
|
||||
function calls with 32-bit range. This will make the kernel both
|
||||
larger and slower.
|
||||
|
||||
If unsure, say N.
|
||||
|
||||
source "init/Kconfig"
|
||||
|
||||
# Use the generic interrupt handling code in kernel/irq/
|
||||
|
||||
source "kernel/Kconfig.freezer"
|
||||
|
||||
config CMDLINE_BOOL
|
||||
bool "Default bootloader kernel arguments"
|
||||
|
||||
config CMDLINE
|
||||
string "Kernel command line"
|
||||
depends on CMDLINE_BOOL
|
||||
default "console=ttyS0,57600"
|
||||
help
|
||||
On some architectures there is currently no way for the boot loader
|
||||
to pass arguments to the kernel. For these architectures, you should
|
||||
supply some command-line options at build time by entering them
|
||||
here.
|
||||
|
||||
config CMDLINE_FORCE
|
||||
bool "Force default kernel command string"
|
||||
depends on CMDLINE_BOOL
|
||||
default n
|
||||
help
|
||||
Set this to have arguments from the default kernel command string
|
||||
override those passed by the boot loader.
|
||||
|
||||
config CPU_BIG_ENDIAN
|
||||
bool "Build big-endian kernel"
|
||||
default n
|
||||
help
|
||||
Say Y if you plan on running a kernel in big-endian mode.
|
||||
Note that your board must be properly built and your board
|
||||
port must properly enable any big-endian related features
|
||||
of your chipset/board/processor.
|
||||
|
||||
config FORCE_MAX_ZONEORDER
|
||||
int "Maximum zone order"
|
||||
default "13"
|
||||
help
|
||||
The kernel memory allocator divides physically contiguous memory
|
||||
blocks into "zones", where each zone is a power of two number of
|
||||
pages. This option selects the largest power of two that the kernel
|
||||
keeps in the memory allocator. If you need to allocate very large
|
||||
blocks of physically contiguous memory, then you may need to
|
||||
increase this value.
|
||||
|
||||
This config option is actually maximum order plus one. For example,
|
||||
a value of 11 means that the largest free memory block is 2^10 pages.
|
||||
|
||||
menu "Processor type and features"
|
||||
|
||||
source "arch/c6x/platforms/Kconfig"
|
||||
|
||||
config TMS320C6X_CACHES_ON
|
||||
bool "L2 cache support"
|
||||
default y
|
||||
|
||||
config KERNEL_RAM_BASE_ADDRESS
|
||||
hex "Virtual address of memory base"
|
||||
default 0xe0000000 if SOC_TMS320C6455
|
||||
default 0xe0000000 if SOC_TMS320C6457
|
||||
default 0xe0000000 if SOC_TMS320C6472
|
||||
default 0x80000000
|
||||
|
||||
source "mm/Kconfig"
|
||||
|
||||
source "kernel/Kconfig.preempt"
|
||||
|
||||
source "kernel/Kconfig.hz"
|
||||
source "kernel/time/Kconfig"
|
||||
|
||||
endmenu
|
||||
|
||||
menu "Executable file formats"
|
||||
|
||||
source "fs/Kconfig.binfmt"
|
||||
|
||||
endmenu
|
||||
|
||||
source "net/Kconfig"
|
||||
|
||||
source "drivers/Kconfig"
|
||||
|
||||
source "fs/Kconfig"
|
||||
|
||||
source "security/Kconfig"
|
||||
|
||||
source "crypto/Kconfig"
|
||||
|
||||
source "lib/Kconfig"
|
||||
|
||||
menu "Kernel hacking"
|
||||
|
||||
source "lib/Kconfig.debug"
|
||||
|
||||
config ACCESS_CHECK
|
||||
bool "Check the user pointer address"
|
||||
default y
|
||||
help
|
||||
Usually the pointer transfer from user space is checked to see if its
|
||||
address is in the kernel space.
|
||||
|
||||
Say N here to disable that check to improve the performance.
|
||||
|
||||
endmenu
|
||||
@@ -0,0 +1,60 @@
|
||||
#
|
||||
# linux/arch/c6x/Makefile
|
||||
#
|
||||
# This file is subject to the terms and conditions of the GNU General Public
|
||||
# License. See the file "COPYING" in the main directory of this archive
|
||||
# for more details.
|
||||
#
|
||||
|
||||
cflags-y += -mno-dsbt -msdata=none
|
||||
|
||||
cflags-$(CONFIG_C6X_BIG_KERNEL) += -mlong-calls
|
||||
|
||||
CFLAGS_MODULE += -mlong-calls -mno-dsbt -msdata=none
|
||||
|
||||
CHECKFLAGS +=
|
||||
|
||||
KBUILD_CFLAGS += $(cflags-y)
|
||||
KBUILD_AFLAGS += $(cflags-y)
|
||||
|
||||
ifdef CONFIG_CPU_BIG_ENDIAN
|
||||
KBUILD_CFLAGS += -mbig-endian
|
||||
KBUILD_AFLAGS += -mbig-endian
|
||||
LINKFLAGS += -mbig-endian
|
||||
KBUILD_LDFLAGS += -mbig-endian
|
||||
LDFLAGS += -EB
|
||||
endif
|
||||
|
||||
head-y := arch/c6x/kernel/head.o
|
||||
core-y += arch/c6x/kernel/ arch/c6x/mm/ arch/c6x/platforms/
|
||||
libs-y += arch/c6x/lib/
|
||||
|
||||
# Default to vmlinux.bin, override when needed
|
||||
all: vmlinux.bin
|
||||
|
||||
boot := arch/$(ARCH)/boot
|
||||
|
||||
# Are we making a dtbImage.<boardname> target? If so, crack out the boardname
|
||||
DTB:=$(subst dtbImage.,,$(filter dtbImage.%, $(MAKECMDGOALS)))
|
||||
export DTB
|
||||
|
||||
ifneq ($(DTB),)
|
||||
core-y += $(boot)/
|
||||
endif
|
||||
|
||||
# With make 3.82 we cannot mix normal and wildcard targets
|
||||
|
||||
vmlinux.bin: vmlinux
|
||||
$(Q)$(MAKE) $(build)=$(boot) $(patsubst %,$(boot)/%,$@)
|
||||
|
||||
dtbImage.%: vmlinux
|
||||
$(Q)$(MAKE) $(build)=$(boot) $(patsubst %,$(boot)/%,$@)
|
||||
|
||||
archclean:
|
||||
$(Q)$(MAKE) $(clean)=$(boot)
|
||||
|
||||
define archhelp
|
||||
@echo ' vmlinux.bin - Binary kernel image (arch/$(ARCH)/boot/vmlinux.bin)'
|
||||
@echo ' dtbImage.<dt> - ELF image with $(arch)/boot/dts/<dt>.dts linked in'
|
||||
@echo ' - stripped elf with fdt blob'
|
||||
endef
|
||||
@@ -0,0 +1,30 @@
|
||||
#
|
||||
# Makefile for bootable kernel images
|
||||
#
|
||||
|
||||
OBJCOPYFLAGS_vmlinux.bin := -O binary
|
||||
$(obj)/vmlinux.bin: vmlinux FORCE
|
||||
$(call if_changed,objcopy)
|
||||
|
||||
DTC_FLAGS ?= -p 1024
|
||||
|
||||
ifneq ($(DTB),)
|
||||
obj-y += linked_dtb.o
|
||||
endif
|
||||
|
||||
$(obj)/%.dtb: $(src)/dts/%.dts FORCE
|
||||
$(call cmd,dtc)
|
||||
|
||||
quiet_cmd_cp = CP $< $@$2
|
||||
cmd_cp = cat $< >$@$2 || (rm -f $@ && echo false)
|
||||
|
||||
# Generate builtin.dtb from $(DTB).dtb
|
||||
$(obj)/builtin.dtb: $(obj)/$(DTB).dtb
|
||||
$(call if_changed,cp)
|
||||
|
||||
$(obj)/linked_dtb.o: $(obj)/builtin.dtb
|
||||
|
||||
$(obj)/dtbImage.%: vmlinux
|
||||
$(call if_changed,objcopy)
|
||||
|
||||
clean-files := $(obj)/*.dtb
|
||||
@@ -0,0 +1,62 @@
|
||||
/*
|
||||
* arch/c6x/boot/dts/dsk6455.dts
|
||||
*
|
||||
* DSK6455 Evaluation Platform For TMS320C6455
|
||||
* Copyright (C) 2011 Texas Instruments Incorporated
|
||||
*
|
||||
* Author: Mark Salter <msalter@redhat.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version 2
|
||||
* of the License, or (at your option) any later version.
|
||||
*
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
|
||||
/include/ "tms320c6455.dtsi"
|
||||
|
||||
/ {
|
||||
model = "Spectrum Digital DSK6455";
|
||||
compatible = "spectrum-digital,dsk6455";
|
||||
|
||||
chosen {
|
||||
bootargs = "root=/dev/nfs ip=dhcp rw";
|
||||
};
|
||||
|
||||
memory {
|
||||
device_type = "memory";
|
||||
reg = <0xE0000000 0x08000000>;
|
||||
};
|
||||
|
||||
soc {
|
||||
megamod_pic: interrupt-controller@1800000 {
|
||||
interrupts = < 12 13 14 15 >;
|
||||
};
|
||||
|
||||
emifa@70000000 {
|
||||
flash@3,0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
compatible = "cfi-flash";
|
||||
reg = <0x3 0x0 0x400000>;
|
||||
bank-width = <1>;
|
||||
device-width = <1>;
|
||||
partition@0 {
|
||||
reg = <0x0 0x400000>;
|
||||
label = "NOR";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
timer1: timer@2980000 {
|
||||
interrupt-parent = <&megamod_pic>;
|
||||
interrupts = < 69 >;
|
||||
};
|
||||
|
||||
clock-controller@029a0000 {
|
||||
clock-frequency = <50000000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
@@ -0,0 +1,48 @@
|
||||
/*
|
||||
* arch/c6x/boot/dts/evmc6457.dts
|
||||
*
|
||||
* EVMC6457 Evaluation Platform For TMS320C6457
|
||||
*
|
||||
* Copyright (C) 2011 Texas Instruments Incorporated
|
||||
*
|
||||
* Author: Mark Salter <msalter@redhat.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version 2
|
||||
* of the License, or (at your option) any later version.
|
||||
*
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
|
||||
/include/ "tms320c6457.dtsi"
|
||||
|
||||
/ {
|
||||
model = "eInfochips EVMC6457";
|
||||
compatible = "einfochips,evmc6457";
|
||||
|
||||
chosen {
|
||||
bootargs = "console=hvc root=/dev/nfs ip=dhcp rw";
|
||||
};
|
||||
|
||||
memory {
|
||||
device_type = "memory";
|
||||
reg = <0xE0000000 0x10000000>;
|
||||
};
|
||||
|
||||
soc {
|
||||
megamod_pic: interrupt-controller@1800000 {
|
||||
interrupts = < 12 13 14 15 >;
|
||||
};
|
||||
|
||||
timer0: timer@2940000 {
|
||||
interrupt-parent = <&megamod_pic>;
|
||||
interrupts = < 67 >;
|
||||
};
|
||||
|
||||
clock-controller@29a0000 {
|
||||
clock-frequency = <60000000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
@@ -0,0 +1,73 @@
|
||||
/*
|
||||
* arch/c6x/boot/dts/evmc6472.dts
|
||||
*
|
||||
* EVMC6472 Evaluation Platform For TMS320C6472
|
||||
*
|
||||
* Copyright (C) 2011 Texas Instruments Incorporated
|
||||
*
|
||||
* Author: Mark Salter <msalter@redhat.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version 2
|
||||
* of the License, or (at your option) any later version.
|
||||
*
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
|
||||
/include/ "tms320c6472.dtsi"
|
||||
|
||||
/ {
|
||||
model = "eInfochips EVMC6472";
|
||||
compatible = "einfochips,evmc6472";
|
||||
|
||||
chosen {
|
||||
bootargs = "console=hvc root=/dev/nfs ip=dhcp rw";
|
||||
};
|
||||
|
||||
memory {
|
||||
device_type = "memory";
|
||||
reg = <0xE0000000 0x10000000>;
|
||||
};
|
||||
|
||||
soc {
|
||||
megamod_pic: interrupt-controller@1800000 {
|
||||
interrupts = < 12 13 14 15 >;
|
||||
};
|
||||
|
||||
timer0: timer@25e0000 {
|
||||
interrupt-parent = <&megamod_pic>;
|
||||
interrupts = < 16 >;
|
||||
};
|
||||
|
||||
timer1: timer@25f0000 {
|
||||
interrupt-parent = <&megamod_pic>;
|
||||
interrupts = < 16 >;
|
||||
};
|
||||
|
||||
timer2: timer@2600000 {
|
||||
interrupt-parent = <&megamod_pic>;
|
||||
interrupts = < 16 >;
|
||||
};
|
||||
|
||||
timer3: timer@2610000 {
|
||||
interrupt-parent = <&megamod_pic>;
|
||||
interrupts = < 16 >;
|
||||
};
|
||||
|
||||
timer4: timer@2620000 {
|
||||
interrupt-parent = <&megamod_pic>;
|
||||
interrupts = < 16 >;
|
||||
};
|
||||
|
||||
timer5: timer@2630000 {
|
||||
interrupt-parent = <&megamod_pic>;
|
||||
interrupts = < 16 >;
|
||||
};
|
||||
|
||||
clock-controller@29a0000 {
|
||||
clock-frequency = <25000000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
@@ -0,0 +1,58 @@
|
||||
/*
|
||||
* arch/c6x/boot/dts/evmc6474.dts
|
||||
*
|
||||
* EVMC6474 Evaluation Platform For TMS320C6474
|
||||
*
|
||||
* Copyright (C) 2011 Texas Instruments Incorporated
|
||||
*
|
||||
* Author: Mark Salter <msalter@redhat.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version 2
|
||||
* of the License, or (at your option) any later version.
|
||||
*
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
|
||||
/include/ "tms320c6474.dtsi"
|
||||
|
||||
/ {
|
||||
model = "Spectrum Digital EVMC6474";
|
||||
compatible = "spectrum-digital,evmc6474";
|
||||
|
||||
chosen {
|
||||
bootargs = "console=hvc root=/dev/nfs ip=dhcp rw";
|
||||
};
|
||||
|
||||
memory {
|
||||
device_type = "memory";
|
||||
reg = <0x80000000 0x08000000>;
|
||||
};
|
||||
|
||||
soc {
|
||||
megamod_pic: interrupt-controller@1800000 {
|
||||
interrupts = < 12 13 14 15 >;
|
||||
};
|
||||
|
||||
timer3: timer@2940000 {
|
||||
interrupt-parent = <&megamod_pic>;
|
||||
interrupts = < 39 >;
|
||||
};
|
||||
|
||||
timer4: timer@2950000 {
|
||||
interrupt-parent = <&megamod_pic>;
|
||||
interrupts = < 41 >;
|
||||
};
|
||||
|
||||
timer5: timer@2960000 {
|
||||
interrupt-parent = <&megamod_pic>;
|
||||
interrupts = < 43 >;
|
||||
};
|
||||
|
||||
clock-controller@29a0000 {
|
||||
clock-frequency = <50000000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
@@ -0,0 +1,96 @@
|
||||
|
||||
/ {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
cpus {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
cpu@0 {
|
||||
device_type = "cpu";
|
||||
model = "ti,c64x+";
|
||||
reg = <0>;
|
||||
};
|
||||
};
|
||||
|
||||
soc {
|
||||
compatible = "simple-bus";
|
||||
model = "tms320c6455";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
ranges;
|
||||
|
||||
core_pic: interrupt-controller {
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <1>;
|
||||
compatible = "ti,c64x+core-pic";
|
||||
};
|
||||
|
||||
/*
|
||||
* Megamodule interrupt controller
|
||||
*/
|
||||
megamod_pic: interrupt-controller@1800000 {
|
||||
compatible = "ti,c64x+megamod-pic";
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <1>;
|
||||
reg = <0x1800000 0x1000>;
|
||||
interrupt-parent = <&core_pic>;
|
||||
};
|
||||
|
||||
cache-controller@1840000 {
|
||||
compatible = "ti,c64x+cache";
|
||||
reg = <0x01840000 0x8400>;
|
||||
};
|
||||
|
||||
emifa@70000000 {
|
||||
compatible = "ti,c64x+emifa", "simple-bus";
|
||||
#address-cells = <2>;
|
||||
#size-cells = <1>;
|
||||
reg = <0x70000000 0x100>;
|
||||
ranges = <0x2 0x0 0xa0000000 0x00000008
|
||||
0x3 0x0 0xb0000000 0x00400000
|
||||
0x4 0x0 0xc0000000 0x10000000
|
||||
0x5 0x0 0xD0000000 0x10000000>;
|
||||
|
||||
ti,dscr-dev-enable = <13>;
|
||||
ti,emifa-burst-priority = <255>;
|
||||
ti,emifa-ce-config = <0x00240120
|
||||
0x00240120
|
||||
0x00240122
|
||||
0x00240122>;
|
||||
};
|
||||
|
||||
timer1: timer@2980000 {
|
||||
compatible = "ti,c64x+timer64";
|
||||
reg = <0x2980000 0x40>;
|
||||
ti,dscr-dev-enable = <4>;
|
||||
};
|
||||
|
||||
clock-controller@029a0000 {
|
||||
compatible = "ti,c6455-pll", "ti,c64x+pll";
|
||||
reg = <0x029a0000 0x200>;
|
||||
ti,c64x+pll-bypass-delay = <1440>;
|
||||
ti,c64x+pll-reset-delay = <15360>;
|
||||
ti,c64x+pll-lock-delay = <24000>;
|
||||
};
|
||||
|
||||
device-state-config-regs@2a80000 {
|
||||
compatible = "ti,c64x+dscr";
|
||||
reg = <0x02a80000 0x41000>;
|
||||
|
||||
ti,dscr-devstat = <0>;
|
||||
ti,dscr-silicon-rev = <8 28 0xf>;
|
||||
ti,dscr-rmii-resets = <0 0x40020 0x00040000>;
|
||||
|
||||
ti,dscr-locked-regs = <0x40008 0x40004 0x0f0a0b00>;
|
||||
ti,dscr-devstate-ctl-regs =
|
||||
<0 12 0x40008 1 0 0 2
|
||||
12 1 0x40008 3 0 30 2
|
||||
13 2 0x4002c 1 0xffffffff 0 1>;
|
||||
ti,dscr-devstate-stat-regs =
|
||||
<0 10 0x40014 1 0 0 3
|
||||
10 2 0x40018 1 0 0 3>;
|
||||
};
|
||||
};
|
||||
};
|
||||
@@ -0,0 +1,68 @@
|
||||
|
||||
/ {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
cpus {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
cpu@0 {
|
||||
device_type = "cpu";
|
||||
model = "ti,c64x+";
|
||||
reg = <0>;
|
||||
};
|
||||
};
|
||||
|
||||
soc {
|
||||
compatible = "simple-bus";
|
||||
model = "tms320c6457";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
ranges;
|
||||
|
||||
core_pic: interrupt-controller {
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <1>;
|
||||
compatible = "ti,c64x+core-pic";
|
||||
};
|
||||
|
||||
megamod_pic: interrupt-controller@1800000 {
|
||||
compatible = "ti,c64x+megamod-pic";
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <1>;
|
||||
interrupt-parent = <&core_pic>;
|
||||
reg = <0x1800000 0x1000>;
|
||||
};
|
||||
|
||||
cache-controller@1840000 {
|
||||
compatible = "ti,c64x+cache";
|
||||
reg = <0x01840000 0x8400>;
|
||||
};
|
||||
|
||||
device-state-controller@2880800 {
|
||||
compatible = "ti,c64x+dscr";
|
||||
reg = <0x02880800 0x400>;
|
||||
|
||||
ti,dscr-devstat = <0x20>;
|
||||
ti,dscr-silicon-rev = <0x18 28 0xf>;
|
||||
ti,dscr-mac-fuse-regs = <0x114 3 4 5 6
|
||||
0x118 0 0 1 2>;
|
||||
ti,dscr-kick-regs = <0x38 0x83E70B13
|
||||
0x3c 0x95A4F1E0>;
|
||||
};
|
||||
|
||||
timer0: timer@2940000 {
|
||||
compatible = "ti,c64x+timer64";
|
||||
reg = <0x2940000 0x40>;
|
||||
};
|
||||
|
||||
clock-controller@29a0000 {
|
||||
compatible = "ti,c6457-pll", "ti,c64x+pll";
|
||||
reg = <0x029a0000 0x200>;
|
||||
ti,c64x+pll-bypass-delay = <300>;
|
||||
ti,c64x+pll-reset-delay = <24000>;
|
||||
ti,c64x+pll-lock-delay = <50000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
@@ -0,0 +1,134 @@
|
||||
|
||||
/ {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
cpus {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
cpu@0 {
|
||||
device_type = "cpu";
|
||||
reg = <0>;
|
||||
model = "ti,c64x+";
|
||||
};
|
||||
cpu@1 {
|
||||
device_type = "cpu";
|
||||
reg = <1>;
|
||||
model = "ti,c64x+";
|
||||
};
|
||||
cpu@2 {
|
||||
device_type = "cpu";
|
||||
reg = <2>;
|
||||
model = "ti,c64x+";
|
||||
};
|
||||
cpu@3 {
|
||||
device_type = "cpu";
|
||||
reg = <3>;
|
||||
model = "ti,c64x+";
|
||||
};
|
||||
cpu@4 {
|
||||
device_type = "cpu";
|
||||
reg = <4>;
|
||||
model = "ti,c64x+";
|
||||
};
|
||||
cpu@5 {
|
||||
device_type = "cpu";
|
||||
reg = <5>;
|
||||
model = "ti,c64x+";
|
||||
};
|
||||
};
|
||||
|
||||
soc {
|
||||
compatible = "simple-bus";
|
||||
model = "tms320c6472";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
ranges;
|
||||
|
||||
core_pic: interrupt-controller {
|
||||
compatible = "ti,c64x+core-pic";
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <1>;
|
||||
};
|
||||
|
||||
megamod_pic: interrupt-controller@1800000 {
|
||||
compatible = "ti,c64x+megamod-pic";
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <1>;
|
||||
reg = <0x1800000 0x1000>;
|
||||
interrupt-parent = <&core_pic>;
|
||||
};
|
||||
|
||||
cache-controller@1840000 {
|
||||
compatible = "ti,c64x+cache";
|
||||
reg = <0x01840000 0x8400>;
|
||||
};
|
||||
|
||||
timer0: timer@25e0000 {
|
||||
compatible = "ti,c64x+timer64";
|
||||
ti,core-mask = < 0x01 >;
|
||||
reg = <0x25e0000 0x40>;
|
||||
};
|
||||
|
||||
timer1: timer@25f0000 {
|
||||
compatible = "ti,c64x+timer64";
|
||||
ti,core-mask = < 0x02 >;
|
||||
reg = <0x25f0000 0x40>;
|
||||
};
|
||||
|
||||
timer2: timer@2600000 {
|
||||
compatible = "ti,c64x+timer64";
|
||||
ti,core-mask = < 0x04 >;
|
||||
reg = <0x2600000 0x40>;
|
||||
};
|
||||
|
||||
timer3: timer@2610000 {
|
||||
compatible = "ti,c64x+timer64";
|
||||
ti,core-mask = < 0x08 >;
|
||||
reg = <0x2610000 0x40>;
|
||||
};
|
||||
|
||||
timer4: timer@2620000 {
|
||||
compatible = "ti,c64x+timer64";
|
||||
ti,core-mask = < 0x10 >;
|
||||
reg = <0x2620000 0x40>;
|
||||
};
|
||||
|
||||
timer5: timer@2630000 {
|
||||
compatible = "ti,c64x+timer64";
|
||||
ti,core-mask = < 0x20 >;
|
||||
reg = <0x2630000 0x40>;
|
||||
};
|
||||
|
||||
clock-controller@29a0000 {
|
||||
compatible = "ti,c6472-pll", "ti,c64x+pll";
|
||||
reg = <0x029a0000 0x200>;
|
||||
ti,c64x+pll-bypass-delay = <200>;
|
||||
ti,c64x+pll-reset-delay = <12000>;
|
||||
ti,c64x+pll-lock-delay = <80000>;
|
||||
};
|
||||
|
||||
device-state-controller@2a80000 {
|
||||
compatible = "ti,c64x+dscr";
|
||||
reg = <0x02a80000 0x1000>;
|
||||
|
||||
ti,dscr-devstat = <0>;
|
||||
ti,dscr-silicon-rev = <0x70c 16 0xff>;
|
||||
|
||||
ti,dscr-mac-fuse-regs = <0x700 1 2 3 4
|
||||
0x704 5 6 0 0>;
|
||||
|
||||
ti,dscr-rmii-resets = <0x208 1
|
||||
0x20c 1>;
|
||||
|
||||
ti,dscr-locked-regs = <0x200 0x204 0x0a1e183a
|
||||
0x40c 0x420 0xbea7
|
||||
0x41c 0x420 0xbea7>;
|
||||
|
||||
ti,dscr-privperm = <0x41c 0xaaaaaaaa>;
|
||||
|
||||
ti,dscr-devstate-ctl-regs = <0 13 0x200 1 0 0 1>;
|
||||
};
|
||||
};
|
||||
};
|
||||
@@ -0,0 +1,89 @@
|
||||
|
||||
/ {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
cpus {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
cpu@0 {
|
||||
device_type = "cpu";
|
||||
reg = <0>;
|
||||
model = "ti,c64x+";
|
||||
};
|
||||
cpu@1 {
|
||||
device_type = "cpu";
|
||||
reg = <1>;
|
||||
model = "ti,c64x+";
|
||||
};
|
||||
cpu@2 {
|
||||
device_type = "cpu";
|
||||
reg = <2>;
|
||||
model = "ti,c64x+";
|
||||
};
|
||||
};
|
||||
|
||||
soc {
|
||||
compatible = "simple-bus";
|
||||
model = "tms320c6474";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
ranges;
|
||||
|
||||
core_pic: interrupt-controller {
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <1>;
|
||||
compatible = "ti,c64x+core-pic";
|
||||
};
|
||||
|
||||
megamod_pic: interrupt-controller@1800000 {
|
||||
compatible = "ti,c64x+megamod-pic";
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <1>;
|
||||
reg = <0x1800000 0x1000>;
|
||||
interrupt-parent = <&core_pic>;
|
||||
};
|
||||
|
||||
cache-controller@1840000 {
|
||||
compatible = "ti,c64x+cache";
|
||||
reg = <0x01840000 0x8400>;
|
||||
};
|
||||
|
||||
timer3: timer@2940000 {
|
||||
compatible = "ti,c64x+timer64";
|
||||
ti,core-mask = < 0x04 >;
|
||||
reg = <0x2940000 0x40>;
|
||||
};
|
||||
|
||||
timer4: timer@2950000 {
|
||||
compatible = "ti,c64x+timer64";
|
||||
ti,core-mask = < 0x02 >;
|
||||
reg = <0x2950000 0x40>;
|
||||
};
|
||||
|
||||
timer5: timer@2960000 {
|
||||
compatible = "ti,c64x+timer64";
|
||||
ti,core-mask = < 0x01 >;
|
||||
reg = <0x2960000 0x40>;
|
||||
};
|
||||
|
||||
device-state-controller@2880800 {
|
||||
compatible = "ti,c64x+dscr";
|
||||
reg = <0x02880800 0x400>;
|
||||
|
||||
ti,dscr-devstat = <0x004>;
|
||||
ti,dscr-silicon-rev = <0x014 28 0xf>;
|
||||
ti,dscr-mac-fuse-regs = <0x34 3 4 5 6
|
||||
0x38 0 0 1 2>;
|
||||
};
|
||||
|
||||
clock-controller@29a0000 {
|
||||
compatible = "ti,c6474-pll", "ti,c64x+pll";
|
||||
reg = <0x029a0000 0x200>;
|
||||
ti,c64x+pll-bypass-delay = <120>;
|
||||
ti,c64x+pll-reset-delay = <30000>;
|
||||
ti,c64x+pll-lock-delay = <60000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
@@ -0,0 +1,2 @@
|
||||
.section __fdt_blob,"a"
|
||||
.incbin "arch/c6x/boot/builtin.dtb"
|
||||
@@ -0,0 +1,44 @@
|
||||
CONFIG_SOC_TMS320C6455=y
|
||||
CONFIG_EXPERIMENTAL=y
|
||||
# CONFIG_LOCALVERSION_AUTO is not set
|
||||
CONFIG_SYSVIPC=y
|
||||
CONFIG_SPARSE_IRQ=y
|
||||
CONFIG_LOG_BUF_SHIFT=14
|
||||
CONFIG_NAMESPACES=y
|
||||
# CONFIG_UTS_NS is not set
|
||||
# CONFIG_USER_NS is not set
|
||||
# CONFIG_PID_NS is not set
|
||||
CONFIG_BLK_DEV_INITRD=y
|
||||
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
|
||||
CONFIG_EXPERT=y
|
||||
# CONFIG_FUTEX is not set
|
||||
# CONFIG_SLUB_DEBUG is not set
|
||||
CONFIG_MODULES=y
|
||||
CONFIG_MODULE_FORCE_LOAD=y
|
||||
CONFIG_MODULE_UNLOAD=y
|
||||
CONFIG_MODULE_FORCE_UNLOAD=y
|
||||
CONFIG_CMDLINE_BOOL=y
|
||||
CONFIG_CMDLINE=""
|
||||
CONFIG_NO_HZ=y
|
||||
CONFIG_HIGH_RES_TIMERS=y
|
||||
CONFIG_BLK_DEV_LOOP=y
|
||||
CONFIG_BLK_DEV_RAM=y
|
||||
CONFIG_BLK_DEV_RAM_COUNT=2
|
||||
CONFIG_BLK_DEV_RAM_SIZE=17000
|
||||
CONFIG_MISC_DEVICES=y
|
||||
# CONFIG_INPUT is not set
|
||||
# CONFIG_SERIO is not set
|
||||
# CONFIG_VT is not set
|
||||
# CONFIG_HW_RANDOM is not set
|
||||
# CONFIG_HWMON is not set
|
||||
# CONFIG_USB_SUPPORT is not set
|
||||
# CONFIG_IOMMU_SUPPORT is not set
|
||||
# CONFIG_MISC_FILESYSTEMS is not set
|
||||
CONFIG_CRC16=y
|
||||
# CONFIG_ENABLE_MUST_CHECK is not set
|
||||
# CONFIG_SCHED_DEBUG is not set
|
||||
# CONFIG_DEBUG_BUGVERBOSE is not set
|
||||
CONFIG_MTD=y
|
||||
CONFIG_MTD_CFI=y
|
||||
CONFIG_MTD_CFI_AMDSTD=y
|
||||
CONFIG_MTD_PHYSMAP_OF=y
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user