diff options
author | Stefan Agner <stefan.agner@toradex.com> | 2014-10-16 14:37:15 +0200 |
---|---|---|
committer | Stefan Agner <stefan.agner@toradex.com> | 2014-10-17 08:51:17 +0200 |
commit | b16eb3e299d15577c18531223ff91ae225d21b4b (patch) | |
tree | 44bf3381cd1dc3ab6eb028e2641e9816b3e30e53 /arch/arm | |
parent | 393fb8a1c434dca96eb01a641412c8214c357a27 (diff) |
arm: vf610: initial integration for Colibri VF50/VF61
This adds initial support for Colibri VF50/VF61 based on Freescale
Vybrid SoC. The board support package is based on Freescale Tower
board, with following differences:
- CPU clocked at 500MHz
- Use PLL2 as DDR3 clock (400MHz)
- New Machine ID
- Console on UART1 (Colibri UART_A)
- Ethernet on FEC1
- Enabled command line editing
- PLL5 based RMII clocking (e.g. no external crystal)
- UART_A and UART_C I/O muxing
- Boot from OCRAM gfxRAM
- Boot from NAND by default
Tested on Colibri VF50/VF61 booting using serial loader over UART.
Diffstat (limited to 'arch/arm')
-rw-r--r-- | arch/arm/Kconfig | 4 | ||||
-rw-r--r-- | arch/arm/include/asm/arch-vf610/imx-regs.h | 14 | ||||
-rw-r--r-- | arch/arm/include/asm/mach-types.h | 26 |
3 files changed, 44 insertions, 0 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 72558b85620..84cd420e2fa 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -456,6 +456,9 @@ config TARGET_U8500_HREF config TARGET_VF610TWR bool "Support vf610twr" +config TARGET_COLIBRI_VF + bool "Support Colibri VF50/VF61" + config ZYNQ bool "Xilinx Zynq Platform" @@ -689,6 +692,7 @@ source "board/ti/ti816x/Kconfig" source "board/ti/tnetv107xevm/Kconfig" source "board/timll/devkit3250/Kconfig" source "board/toradex/colibri_pxa270/Kconfig" +source "board/toradex/colibri_vf/Kconfig" source "board/tqc/tqma6/Kconfig" source "board/trizepsiv/Kconfig" source "board/ttcontrol/vision2/Kconfig" diff --git a/arch/arm/include/asm/arch-vf610/imx-regs.h b/arch/arm/include/asm/arch-vf610/imx-regs.h index 9d797dbe1ff..6c76aef1d75 100644 --- a/arch/arm/include/asm/arch-vf610/imx-regs.h +++ b/arch/arm/include/asm/arch-vf610/imx-regs.h @@ -100,6 +100,8 @@ #define MSCM_IRSPRC_CP0_EN 1 #define MSCM_IRSPRC_NUM 112 +#define MSCM_CP0CFG1 (MSCM_BASE_ADDR + 0x000000014) + /* DDRMC */ #define DDRMC_PHY_DQ_TIMING 0x00002613 #define DDRMC_PHY_DQS_TIMING 0x00002615 @@ -440,6 +442,18 @@ struct mscm_ir { u16 rsvd3[848]; }; +/* MSCM */ +struct mscm { + u32 cpxtype; + u32 cpxnum; + u32 cpxmaster; + u32 cpxcount; + u32 cpxcfg0; + u32 cpxcfg1; + u32 cpxcfg2; + u32 cpxcfg3; +}; + #endif /* __ASSEMBLER__*/ #endif /* __ASM_ARCH_IMX_REGS_H__ */ diff --git a/arch/arm/include/asm/mach-types.h b/arch/arm/include/asm/mach-types.h index d4a447b2b8a..4a1306e9f83 100644 --- a/arch/arm/include/asm/mach-types.h +++ b/arch/arm/include/asm/mach-types.h @@ -1108,6 +1108,8 @@ extern unsigned int __machine_arch_type; #define MACH_TYPE_KZM9G 4140 #define MACH_TYPE_COLIBRI_T30 4493 #define MACH_TYPE_APALIS_T30 4513 +#define MACH_TYPE_COLIBRI_VF50 4749 +#define MACH_TYPE_COLIBRI_VF61 4750 #ifdef CONFIG_ARCH_EBSA110 # ifdef machine_arch_type @@ -14261,6 +14263,30 @@ extern unsigned int __machine_arch_type; # define machine_is_apalis_t30() (0) #endif +#ifdef CONFIG_MACH_COLIBRI_VF50 +# ifdef machine_arch_type +# undef machine_arch_type +# define machine_arch_type __machine_arch_type +# else +# define machine_arch_type MACH_TYPE_COLIBRI_VF50 +# endif +# define machine_is_colibri_vf50() (machine_arch_type == MACH_TYPE_COLIBRI_VF50) +#else +# define machine_is_colibri_vf50() (0) +#endif + +#ifdef CONFIG_MACH_COLIBRI_VF61 +# ifdef machine_arch_type +# undef machine_arch_type +# define machine_arch_type __machine_arch_type +# else +# define machine_arch_type MACH_TYPE_COLIBRI_VF61 +# endif +# define machine_is_colibri_vf61() (machine_arch_type == MACH_TYPE_COLIBRI_VF61) +#else +# define machine_is_colibri_vf61() (0) +#endif + /* * These have not yet been registered */ |