ARM: vexpress: add support for A5 core tile
cover ARM: vexpress: add support for A5 core tile
Add support for the A5 Core Tile on the Versatile Express motherboard.
Ryan Harkin (3):
ARM: vexpress: move files in preparation for adding a new platform
ARM: vexpress: create A9 specific board config
ARM: vexpress: create A5 specific board config
MAINTAINERS | 3 +-
board/armltd/vexpress/Makefile | 2 +-
.../vexpress/{ca9x4_ct_vxp.c => vexpress_common.c} | 29 ++-
boards.cfg | 3 +-
include/configs/ca9x4_ct_vxp.h | 206 -------------
include/configs/vexpress_ca5x2.h | 34 +++
include/configs/vexpress_ca9x4.h | 34 +++
include/configs/vexpress_common.h | 314 ++++++++++++++++++++
8 files changed, 410 insertions(+), 215 deletions(-)
rename board/armltd/vexpress/{ca9x4_ct_vxp.c => vexpress_common.c} (90%)
delete mode 100644 include/configs/ca9x4_ct_vxp.h
create mode 100644 include/configs/vexpress_ca5x2.h
create mode 100644 include/configs/vexpress_ca9x4.h
create mode 100644 include/configs/vexpress_common.hSignature · 1 line
1.7.4.1
PATCH 1/3 ARM: vexpress: move files in preparation for adding a new platform
The current ca9x4_ct_vxp platform contains support for a Versatile Express motherboard with a quad core A9 core tile.
This patch is the first stage of making separating the Versatile Express motherboard code and the A9 specific code, before adding support for the dual core A5 core tile.
---
MAINTAINERS | 2 +-
board/armltd/vexpress/Makefile | 2 +-
.../vexpress/{ca9x4_ct_vxp.c => vexpress_common.c} | 0
boards.cfg | 2 +-
.../configs/{ca9x4_ct_vxp.h => vexpress_common.h} | 0
5 files changed, 3 insertions(+), 3 deletions(-)MAINTAINERS +1 -1
@@ -858,7 +858,7 @@ Hugo Villeneuve <[email protected]> Matt Waddel <[email protected]> - ca9x4_ct_vxp ARM ARMV7 (Quad Core) + vexpress_common ARM ARMV7 (Quad Core) Prafulla Wadaskar <[email protected]>
board/armltd/vexpress/Makefile +1 -1
@@ -25,7 +25,7 @@ include $(TOPDIR)/config.mk LIB = $(obj)lib$(BOARD).o -COBJS := ca9x4_ct_vxp.o +COBJS := vexpress_common.o SRCS := $(COBJS:.o=.c) OBJS := $(addprefix $(obj),$(COBJS))
board/armltd/vexpress/vexpress_common.c renamed from board/armltd/vexpress/ca9x4_ct_vxp.c +0 -0
boards.cfg +1 -1
@@ -154,7 +154,7 @@ edminiv2 arm arm926ejs - LaCie dkb arm arm926ejs - Marvell pantheon integratorap_cm946es arm arm946es integrator armltd - integratorap integratorcp_cm946es arm arm946es integrator armltd - integratorcp -ca9x4_ct_vxp arm armv7 vexpress armltd +vexpress_common arm armv7 vexpress armltd highbank arm armv7 highbank - highbank efikamx arm armv7 efikamx - mx5 efikamx:IMX_CONFIG=board/efikamx/imximage.cfg mx51evk arm armv7 mx51evk freescale mx5 mx51evk:IMX_CONFIG=board/freescale/mx51evk/imximage.cfg
include/configs/vexpress_common.h renamed from include/configs/ca9x4_ct_vxp.h +0 -0
Signature · 1 line
1.7.4.1
PATCH 2/3 ARM: vexpress: create A9 specific board config
In reply to Ryan HarkinThis patch creates a new config for the A9 quad core tile that includes the generic config for the Versatile Express platform.
--- MAINTAINERS | 2 +- boards.cfg | 2 +- include/configs/vexpress_ca9x4.h | 34 ++++++++++++++++++++++++++++++++++ include/configs/vexpress_common.h | 1 - 4 files changed, 36 insertions(+), 3 deletions(-)
MAINTAINERS +1 -1
@@ -858,7 +858,7 @@ Hugo Villeneuve <[email protected]> Matt Waddel <[email protected]> - vexpress_common ARM ARMV7 (Quad Core) + vexpress_ca9x4 ARM ARMV7 (Quad Core) Prafulla Wadaskar <[email protected]>
boards.cfg +1 -1
@@ -154,7 +154,7 @@ edminiv2 arm arm926ejs - LaCie dkb arm arm926ejs - Marvell pantheon integratorap_cm946es arm arm946es integrator armltd - integratorap integratorcp_cm946es arm arm946es integrator armltd - integratorcp -vexpress_common arm armv7 vexpress armltd +vexpress_ca9x4 arm armv7 vexpress armltd highbank arm armv7 highbank - highbank efikamx arm armv7 efikamx - mx5 efikamx:IMX_CONFIG=board/efikamx/imximage.cfg mx51evk arm armv7 mx51evk freescale mx5 mx51evk:IMX_CONFIG=board/freescale/mx51evk/imximage.cfg
include/configs/vexpress_ca9x4.h new file +34 -0
@@ -0,0 +1,34 @@ +/* +* (C) Copyright 2011 Linaro +* Ryan Harkin, <[email protected]> +* +* Configuration for Versatile Express. Parts were derived from other ARM +* configurations. +* +* See file CREDITS for list of people who contributed to this +* project. +* +* 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. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program; if not, write to the Free Software +* Foundation, Inc., 59 Temple Place, Suite 330, Boston, +* MA 02111-1307 USA +*/ + +#ifndef __VEXPRESS_CA9X4_H +#define __VEXPRESS_CA9X4_H + +#define CONFIG_VEXPRESS_ORIGINAL_MEMORY_MAP +#include "vexpress_common.h" +#define CONFIG_BOOTP_VCI_STRING "U-boot.armv7.vexpress_ca9x4" + +#endif // VEXPRESS_CA9X4_H
include/configs/vexpress_common.h +0 -1
@@ -100,7 +100,6 @@#define CONFIG_BOOTP_HOSTNAME #define CONFIG_BOOTP_PXE #define CONFIG_BOOTP_PXE_CLIENTARCH 0x100 -#define CONFIG_BOOTP_VCI_STRING "U-boot.armv7.ca9x4_ct_vxp"/* Miscellaneous configurable options */ #undef CONFIG_SYS_CLKS_IN_HZ
Signature · 1 line
1.7.4.1
PATCH 3/3 ARM: vexpress: create A5 specific board config
In reply to Ryan HarkinThis patch creates a new config for the A5 dual core tile that includes the generic config for the Versatile Express platform.
The generic config has been modified to provide support for the Extended Memory Map, as used on the A5 core tile. A5 does not support the legacy memory map.
--- MAINTAINERS | 1 + board/armltd/vexpress/vexpress_common.c | 29 +++++-- boards.cfg | 1 + include/configs/vexpress_ca5x2.h | 34 +++++++ include/configs/vexpress_common.h | 147 +++++++++++++++++++++++++++---- 5 files changed, 187 insertions(+), 25 deletions(-)
MAINTAINERS +1 -0
@@ -859,6 +859,7 @@ Hugo Villeneuve <[email protected]> Matt Waddel <[email protected]> vexpress_ca9x4 ARM ARMV7 (Quad Core) + vexpress_ca5x2 ARM ARMV7 (Dual Core) Prafulla Wadaskar <[email protected]>
board/armltd/vexpress/vexpress_common.c +23 -6
@@ -43,8 +43,7 @@static ulong timestamp;static ulong lastdec; -static struct wdt *wdt_base = (struct wdt *)WDT_BASE ; -static struct systimer *systimer_base = (struct systimer *)SYSTIMER_BASE ; +static struct systimer *systimer_base = (struct systimer *)V2M_TIMER01 ;static struct sysctrl *sysctrl_base = (struct sysctrl *)SCTL_BASE ;static void flash__init (void );
@@ -154,13 +153,31 @@ static void vexpress_timer_init(void)reset_timer_masked (); } +int v2m_cfg_write (u32 devfn,u32 data) +{ +/* Configuration interface broken? */ +u32 val; + + devfn |=SYS_CFG_START |SYS_CFG_WRITE ; + + val =readl (V2M_SYS_CFGSTAT ); +writel (val & ~SYS_CFG_COMPLETE ,V2M_SYS_CFGSTAT ); + +writel (data,V2M_SYS_CFGDATA ); +writel (devfn,V2M_SYS_CFGCTRL ); + +do { + val =readl (V2M_SYS_CFGSTAT ); + }while (val ==0 ); + +return !!(val &SYS_CFG_ERR ); +} +/* Use the ARM Watchdog System to cause reset */ void reset_cpu (ulong addr) { -writeb (WDT_EN , &wdt_base->wdogcontrol); -writel (WDT_RESET_LOAD , &wdt_base->wdogload); -while (1 ) - ; +if (v2m_cfg_write (SYS_CFG_REBOOT |SYS_CFG_SITE_MB ,0 )) +printf ("Unable to reboot\n" ); }/*
boards.cfg +1 -0
@@ -154,6 +154,7 @@ edminiv2 arm arm926ejs - LaCie dkb arm arm926ejs - Marvell pantheon integratorap_cm946es arm arm946es integrator armltd - integratorap integratorcp_cm946es arm arm946es integrator armltd - integratorcp +vexpress_ca5x2 arm armv7 vexpress armltd vexpress_ca9x4 arm armv7 vexpress armltd highbank arm armv7 highbank - highbank efikamx arm armv7 efikamx - mx5 efikamx:IMX_CONFIG=board/efikamx/imximage.cfg
include/configs/vexpress_ca5x2.h new file +34 -0
@@ -0,0 +1,34 @@ +/* +* (C) Copyright 2011 Linaro +* Ryan Harkin, <[email protected]> +* +* Configuration for Versatile Express. Parts were derived from other ARM +* configurations. +* +* See file CREDITS for list of people who contributed to this +* project. +* +* 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. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program; if not, write to the Free Software +* Foundation, Inc., 59 Temple Place, Suite 330, Boston, +* MA 02111-1307 USA +*/ + +#ifndef __VEXPRESS_CA5X2_h +#define __VEXPRESS_CA5X2_h + +#define CONFIG_VEXPRESS_EXTENDED_MEMORY_MAP +#include "vexpress_common.h" +#define CONFIG_BOOTP_VCI_STRING "U-boot.armv7.vexpress_ca5x2" + +#endif // __VEXPRESS_CA5X2_h
include/configs/vexpress_common.h +128 -19
218 lines not on this page · raw message
Signature · 1 line
1.7.4.1
cover ARM: vexpress: add support for A5 core tile
In reply to Ryan HarkinLe 18/10/2011 14:41, Ryan Harkin a ?crit :
Quoted 16 lines
Add support for the A5 Core Tile on the Versatile Express motherboard.
Ryan Harkin (3):
ARM: vexpress: move files in preparation for adding a new platform
ARM: vexpress: create A9 specific board config
ARM: vexpress: create A5 specific board configMAINTAINERS | 3 +- board/armltd/vexpress/Makefile | 2 +- .../vexpress/{ca9x4_ct_vxp.c => vexpress_common.c} | 29 ++- boards.cfg | 3 +- include/configs/ca9x4_ct_vxp.h | 206 ------------- include/configs/vexpress_ca5x2.h | 34 +++ include/configs/vexpress_ca9x4.h | 34 +++ include/configs/vexpress_common.h | 314 ++++++++++++++++++++ 8 files changed, 410 insertions(+), 215 deletions(-)
Quoted 5 lines
rename
board/armltd/vexpress/{ca9x4_ct_vxp.c=>vexpress_common.c} (90%) delete mode 100644include/configs/ca9x4_ct_vxp.h
create mode 100644include/configs/vexpress_ca5x2.h
create mode 100644include/configs/vexpress_ca9x4.h
create mode 100644include/configs/vexpress_common.h
The series is not bisectable in that board ca9x4_ct_vxp disappears in patch 1/3 to reappear in patch 2/3. Please reorganize patch set so that common files are extracted without preventing ca9x4_ct_vxp from building.
Amicalement,
Signature · 1 line
Albert.
cover ARM: vexpress: add support for A5 core tile
Hi Albert,
Thanks for looking at my patches.
I'm not sure exactly what you mean, so I'll explain that I am doing here and see if that help resolve the issue you are seeing, if not, hopefully you'll have more info to help clarify.
The first patch is simply moving and renaming files in preparation for me adding A5 support in a later patch. So, the ca9x4_ct_vxp platform is renamed to vexpress_common. You can still build it, it's just named "funny". You would build it with "make ... vexpress_common_config". I did this because I wanted the first patch to only contain file moves and renames without changing any code, in the hope that it would be easier to review. Perhaps I failed in that goal!
The next patch then adds a new config file so that the board is named as the more friendly vexpress_ca9x4 and you can no longer build a vexpress_common board.
The final patch then adds a further config for A5 and makes some changes for the RS1 memory map.
I hope this clarifies what I've done. Please ask more questions or make suggestions to help improve my patch sequence.
Regards,
Ryan.
Quoted 33 lines · Albert ARIBAUD
Le 18/10/2011 14:41, Ryan Harkin a ?crit :
Quoted 16 lines
Add support for the A5 Core Tile on the Versatile Express motherboard.
Ryan Harkin (3):
? ARM: vexpress: move files in preparation for adding a new platform ? ARM: vexpress: create A9 specific board config
? ARM: vexpress: create A5 specific board config?MAINTAINERS ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?| ? ?3 +- ?board/armltd/vexpress/Makefile ? ? ? ? ? ? ? ? ? ? | ? ?2 +- ?.../vexpress/{ca9x4_ct_vxp.c => ?vexpress_common.c} | ? 29 ++-
?boards.cfg ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? | ? ?3 +- ?include/configs/ca9x4_ct_vxp.h ? ? ? ? ? ? ? ? ? ? | ?206 ------------- ?include/configs/vexpress_ca5x2.h ? ? ? ? ? ? ? ? ? | ? 34 +++ ?include/configs/vexpress_ca9x4.h ? ? ? ? ? ? ? ? ? | ? 34 +++ ?include/configs/vexpress_common.h ? ? ? ? ? ? ? ? ?| ?314Quoted 7 lines
++++++++++++++++++++
?8 files changed, 410 insertions(+), 215 deletions(-)
?renameboard/armltd/vexpress/{ca9x4_ct_vxp.c=> ?vexpress_common.c} (90%) ?delete mode 100644include/configs/ca9x4_ct_vxp.h
?create mode 100644include/configs/vexpress_ca5x2.h
?create mode 100644include/configs/vexpress_ca9x4.h
?create mode 100644include/configs/vexpress_common.hThe series is not bisectable in that board
ca9x4_ct_vxpdisappears in patch 1/3 to reappear in patch 2/3. Please reorganize patch set so that common files are extracted without preventingca9x4_ct_vxpfrom building.Amicalement,
--
Albert.