Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
linux
Commits
aa89b0ad
Commit
aa89b0ad
authored
Mar 01, 2014
by
Jason Cooper
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'mvebu/soc-3xx' into mvebu/soc
parents
b92f10be
665ca874
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
133 additions
and
15 deletions
+133
-15
Documentation/arm/Marvell/README
Documentation/arm/Marvell/README
+11
-1
Documentation/devicetree/bindings/arm/armada-375.txt
Documentation/devicetree/bindings/arm/armada-375.txt
+9
-0
Documentation/devicetree/bindings/arm/armada-38x.txt
Documentation/devicetree/bindings/arm/armada-38x.txt
+10
-0
Documentation/devicetree/bindings/arm/mvebu-system-controller.txt
...ation/devicetree/bindings/arm/mvebu-system-controller.txt
+2
-1
arch/arm/mach-mvebu/Kconfig
arch/arm/mach-mvebu/Kconfig
+33
-4
arch/arm/mach-mvebu/Makefile
arch/arm/mach-mvebu/Makefile
+3
-2
arch/arm/mach-mvebu/board-v7.c
arch/arm/mach-mvebu/board-v7.c
+53
-5
arch/arm/mach-mvebu/system-controller.c
arch/arm/mach-mvebu/system-controller.c
+12
-2
No files found.
Documentation/arm/Marvell/README
View file @
aa89b0ad
...
...
@@ -83,14 +83,24 @@ EBU Armada family
88F6710
88F6707
88F6W11
Product Brief: http://www.marvell.com/embedded-processors/armada-300/assets/Marvell_ARMADA_370_SoC.pdf
Armada 375 Flavors:
88F6720
Product Brief: http://www.marvell.com/embedded-processors/armada-300/assets/ARMADA_375_SoC-01_product_brief.pdf
Armada 380/385 Flavors:
88F6810
88F6820
88F6828
Armada XP Flavors:
MV78230
MV78260
MV78460
NOTE: not to be confused with the non-SMP 78xx0 SoCs
Product Brief: http://www.marvell.com/embedded-processors/armada-xp/assets/Marvell-ArmadaXP-SoC-product%20brief.pdf
Product Brief: http://www.marvell.com/embedded-processors/armada-xp/assets/Marvell-ArmadaXP-SoC-product%20brief.pdf
No public datasheet available.
Core: Sheeva ARMv7 compatible
...
...
Documentation/devicetree/bindings/arm/armada-375.txt
0 → 100644
View file @
aa89b0ad
Marvell Armada 375 Platforms Device Tree Bindings
-------------------------------------------------
Boards with a SoC of the Marvell Armada 375 family shall have the
following property:
Required root node property:
compatible: must contain "marvell,armada375"
Documentation/devicetree/bindings/arm/armada-38x.txt
0 → 100644
View file @
aa89b0ad
Marvell Armada 38x Platforms Device Tree Bindings
-------------------------------------------------
Boards with a SoC of the Marvell Armada 38x family shall have the
following property:
Required root node property:
- compatible: must contain either "marvell,armada380" or
"marvell,armada385" depending on the variant of the SoC being used.
Documentation/devicetree/bindings/arm/mvebu-system-controller.txt
View file @
aa89b0ad
MVEBU System Controller
-----------------------
MVEBU (Marvell SOCs: Armada 370/XP, Dove, mv78xx0, Kirkwood, Orion5x)
MVEBU (Marvell SOCs: Armada 370/
375/
XP, Dove, mv78xx0, Kirkwood, Orion5x)
Required properties:
- compatible: one of:
- "marvell,orion-system-controller"
- "marvell,armada-370-xp-system-controller"
- "marvell,armada-375-system-controller"
- reg: Should contain system controller registers location and length.
Example:
...
...
arch/arm/mach-mvebu/Kconfig
View file @
aa89b0ad
...
...
@@ -21,26 +21,55 @@ if ARCH_MVEBU
menu "Marvell EBU SoC variants"
config MACH_
ARMADA_370_XP
config MACH_
MVEBU_V7
bool
select ARMADA_370_XP_TIMER
select HAVE_SMP
select CACHE_L2X0
select CPU_PJ4B
config MACH_ARMADA_370
bool "Marvell Armada 370 boards"
select ARMADA_370_CLK
select MACH_ARMADA_370_XP
select CPU_PJ4B
select MACH_MVEBU_V7
select PINCTRL_ARMADA_370
help
Say 'Y' here if you want your kernel to support boards based
on the Marvell Armada 370 SoC with device tree.
config MACH_ARMADA_375
bool "Marvell Armada 375 boards" if ARCH_MULTI_V7
select ARM_ERRATA_720789
select ARM_ERRATA_753970
select ARM_GIC
select ARMADA_375_CLK
select CPU_V7
select MACH_MVEBU_V7
select NEON
select PINCTRL_ARMADA_375
help
Say 'Y' here if you want your kernel to support boards based
on the Marvell Armada 375 SoC with device tree.
config MACH_ARMADA_38X
bool "Marvell Armada 380/385 boards" if ARCH_MULTI_V7
select ARM_ERRATA_720789
select ARM_ERRATA_753970
select ARM_GIC
select ARMADA_38X_CLK
select CPU_V7
select MACH_MVEBU_V7
select NEON
select PINCTRL_ARMADA_38X
help
Say 'Y' here if you want your kernel to support boards based
on the Marvell Armada 380/385 SoC with device tree.
config MACH_ARMADA_XP
bool "Marvell Armada XP boards"
select ARMADA_XP_CLK
select MACH_ARMADA_370_XP
select CPU_PJ4B
select MACH_MVEBU_V7
select PINCTRL_ARMADA_XP
help
Say 'Y' here if you want your kernel to support boards based
...
...
arch/arm/mach-mvebu/Makefile
View file @
aa89b0ad
...
...
@@ -3,7 +3,8 @@ ccflags-$(CONFIG_ARCH_MULTIPLATFORM) := -I$(srctree)/$(src)/include \
AFLAGS_coherency_ll.o
:=
-Wa
,-march
=
armv7-a
obj-y
+=
coherency.o coherency_ll.o pmsu.o system-controller.o mvebu-soc-id.o
obj-$(CONFIG_MACH_ARMADA_370_XP)
+=
armada-370-xp.o
obj-y
+=
system-controller.o mvebu-soc-id.o
obj-$(CONFIG_MACH_MVEBU_V7)
+=
board-v7.o
obj-$(CONFIG_ARCH_MVEBU)
+=
coherency.o coherency_ll.o pmsu.o
obj-$(CONFIG_SMP)
+=
platsmp.o headsmp.o
obj-$(CONFIG_HOTPLUG_CPU)
+=
hotplug.o
arch/arm/mach-mvebu/
armada-370-xp
.c
→
arch/arm/mach-mvebu/
board-v7
.c
View file @
aa89b0ad
...
...
@@ -31,7 +31,28 @@
#include "coherency.h"
#include "mvebu-soc-id.h"
static
void
__init
armada_370_xp_timer_and_clk_init
(
void
)
/*
* Early versions of Armada 375 SoC have a bug where the BootROM
* leaves an external data abort pending. The kernel is hit by this
* data abort as soon as it enters userspace, because it unmasks the
* data aborts at this moment. We register a custom abort handler
* below to ignore the first data abort to work around this
* problem.
*/
static
int
armada_375_external_abort_wa
(
unsigned
long
addr
,
unsigned
int
fsr
,
struct
pt_regs
*
regs
)
{
static
int
ignore_first
;
if
(
!
ignore_first
&&
fsr
==
0x1406
)
{
ignore_first
=
1
;
return
0
;
}
return
1
;
}
static
void
__init
mvebu_timer_and_clk_init
(
void
)
{
of_clk_init
(
NULL
);
clocksource_of_init
();
...
...
@@ -40,6 +61,10 @@ static void __init armada_370_xp_timer_and_clk_init(void)
#ifdef CONFIG_CACHE_L2X0
l2x0_of_init
(
0
,
~
0UL
);
#endif
if
(
of_machine_is_compatible
(
"marvell,armada375"
))
hook_fault_code
(
16
+
6
,
armada_375_external_abort_wa
,
SIGBUS
,
0
,
"imprecise external abort"
);
}
static
void
__init
i2c_quirk
(
void
)
...
...
@@ -70,7 +95,7 @@ static void __init i2c_quirk(void)
return
;
}
static
void
__init
armada_370_xp
_dt_init
(
void
)
static
void
__init
mvebu
_dt_init
(
void
)
{
if
(
of_machine_is_compatible
(
"plathome,openblocks-ax3-4"
))
i2c_quirk
();
...
...
@@ -82,10 +107,33 @@ static const char * const armada_370_xp_dt_compat[] = {
NULL
,
};
DT_MACHINE_START
(
ARMADA_XP_DT
,
"Marvell Armada 370/XP (Device Tree)"
)
DT_MACHINE_START
(
ARMADA_
370_
XP_DT
,
"Marvell Armada 370/XP (Device Tree)"
)
.
smp
=
smp_ops
(
armada_xp_smp_ops
),
.
init_machine
=
armada_370_xp
_dt_init
,
.
init_time
=
armada_370_xp
_timer_and_clk_init
,
.
init_machine
=
mvebu
_dt_init
,
.
init_time
=
mvebu
_timer_and_clk_init
,
.
restart
=
mvebu_restart
,
.
dt_compat
=
armada_370_xp_dt_compat
,
MACHINE_END
static
const
char
*
const
armada_375_dt_compat
[]
=
{
"marvell,armada375"
,
NULL
,
};
DT_MACHINE_START
(
ARMADA_375_DT
,
"Marvell Armada 375 (Device Tree)"
)
.
init_time
=
mvebu_timer_and_clk_init
,
.
restart
=
mvebu_restart
,
.
dt_compat
=
armada_375_dt_compat
,
MACHINE_END
static
const
char
*
const
armada_38x_dt_compat
[]
=
{
"marvell,armada380"
,
"marvell,armada385"
,
NULL
,
};
DT_MACHINE_START
(
ARMADA_38X_DT
,
"Marvell Armada 380/385 (Device Tree)"
)
.
init_time
=
mvebu_timer_and_clk_init
,
.
restart
=
mvebu_restart
,
.
dt_compat
=
armada_38x_dt_compat
,
MACHINE_END
arch/arm/mach-mvebu/system-controller.c
View file @
aa89b0ad
/*
* System controller support for Armada 370 and XP platforms.
* System controller support for Armada 370
, 375
and XP platforms.
*
* Copyright (C) 2012 Marvell
*
...
...
@@ -11,7 +11,7 @@
* License version 2. This program is licensed "as is" without any
* warranty of any kind, whether express or implied.
*
* The Armada 370
and Armada XP SoCs both
have a range of
* The Armada 370
, 375 and Armada XP SoCs
have a range of
* miscellaneous registers, that do not belong to a particular device,
* but rather provide system-level features. This basic
* system-controller driver provides a device tree binding for those
...
...
@@ -47,6 +47,13 @@ static const struct mvebu_system_controller armada_370_xp_system_controller = {
.
system_soft_reset
=
0x1
,
};
static
const
struct
mvebu_system_controller
armada_375_system_controller
=
{
.
rstoutn_mask_offset
=
0x54
,
.
system_soft_reset_offset
=
0x58
,
.
rstoutn_mask_reset_out_en
=
0x1
,
.
system_soft_reset
=
0x1
,
};
static
const
struct
mvebu_system_controller
orion_system_controller
=
{
.
rstoutn_mask_offset
=
0x108
,
.
system_soft_reset_offset
=
0x10c
,
...
...
@@ -61,6 +68,9 @@ static const struct of_device_id of_system_controller_table[] = {
},
{
.
compatible
=
"marvell,armada-370-xp-system-controller"
,
.
data
=
(
void
*
)
&
armada_370_xp_system_controller
,
},
{
.
compatible
=
"marvell,armada-375-system-controller"
,
.
data
=
(
void
*
)
&
armada_375_system_controller
,
},
{
/* end of list */
},
};
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment