create and use common code for Matrix Vision boards
PATCH v2 1/1 create and use common code for Matrix Vision boards
This patch adds and uses common code for all Matrix Vision boards.
---
board/matrix_vision/common/Makefile | 54 ++++++++++++++ board/matrix_vision/common/mv_common.c | 125 ++++++++++++++++++++++++++++++++ board/matrix_vision/common/mv_common.h | 25 +++++++ board/matrix_vision/mvbc_p/mvbc_p.c | 75 +------------------- board/matrix_vision/mvblm7/mvblm7.c | 38 +++------- board/matrix_vision/mvblm7/pci.c | 32 +------- include/configs/MVBC_P.h | 14 +++- include/configs/MVBLM7.h | 48 ++++++------- 8 files changed, 253 insertions(+), 158 deletions(-)
(quoted diff) +0 -0
b/board/matrix_vision/common/Makefile
new file mode 100644
index 0000000..b496258
board/matrix_vision/common/Makefile new file +54 -0
54 lines not on this page · raw message
(quoted diff) +0 -0
b/board/matrix_vision/common/mv_common.c
new file mode 100644
index 0000000..284de16
board/matrix_vision/common/mv_common.c new file +125 -0
125 lines not on this page · raw message
(quoted diff) +0 -0
b/board/matrix_vision/common/mv_common.h
new file mode 100644
index 0000000..046c038
board/matrix_vision/common/mv_common.h new file +25 -0
@@ -0,0 +1,25 @@ +/* +* Copyright 2008 Matrix Vision GmbH +* +* 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 +*/ + + +extern int mv_load_fpga (void ); +extern void mv_reset_environment (void );
(quoted diff) +0 -0
b/board/matrix_vision/mvbc_p/mvbc_p.c
index a300342..5109d60 100644
board/matrix_vision/mvbc_p/mvbc_p.c +2 -73
101 lines not on this page · raw message
(quoted diff) +0 -0
b/board/matrix_vision/mvblm7/mvblm7.c
index 6984af9..2cecd1f 100644
board/matrix_vision/mvblm7/mvblm7.c +10 -28
@@ -64,7 +64,7 @@ int fixed_sdram(void) im->ddr.sdram_cfg2 =CONFIG_SYS_DDR_SDRAM_CFG2 ; im->ddr.sdram_mode =CONFIG_SYS_DDR_MODE ; im->ddr.sdram_interval =CONFIG_SYS_DDR_INTERVAL ; - im->ddr.sdram_clk_cntl =CONFIG_SYS_DDR_CLK_CNTL ; + im->ddr.sdram_clk_cntl =CONFIG_SYS_DDR_SDRAM_CLK_CNTL ;udelay (300 );
@@ -88,40 +88,22 @@ phys_size_t initdram(int board_type)return msize *1024 *1024 ; } -int checkboard (void ) +int misc_init_r (void ) { -puts ("Board: Matrix Vision mvBlueLYNX-M7\n" ); - -return 0 ; -} +char *s =getenv ("reset_env" ); -u8 *dhcp_vendorex_prep (u8 *e) -{ -char *ptr; - -/* DHCP vendor-class-identifier = 60 */ - ptr =getenv ("dhcp_vendor-class-identifier" ); -if (ptr) { - *e++ =60 ; - *e++ =strlen (ptr); -while (*ptr) - *e++ = *ptr++; - } -/* DHCP_CLIENT_IDENTIFIER = 61 */ - ptr =getenv ("dhcp_client_id" ); -if (ptr) { - *e++ =61 ; - *e++ =strlen (ptr); -while (*ptr) - *e++ = *ptr++; +if (s) { +mv_reset_environment (); } -return e; +return 0 ; } -u8 *dhcp_vendorex_proc (u8 *popt) +int checkboard (void ) { -return NULL ; +puts ("Board: Matrix Vision mvBlueLYNX-M7\n" ); + +return 0 ; }#ifdef CONFIG_HARD_SPI
(quoted diff) +0 -0
b/board/matrix_vision/mvblm7/pci.c
index 9f31719..3ed0b80 100644
board/matrix_vision/mvblm7/pci.c +4 -28
@@ -35,21 +35,6 @@DECLARE_GLOBAL_DATA_PTR ; -int mvblm7_load_fpga (void ) -{ -size_t data_size =0 ; -void *fpga_data =NULL ; -char *datastr =getenv ("fpgadata" ); -char *sizestr =getenv ("fpgadatasize" ); - -if (datastr) - fpga_data = (void *)simple_strtoul (datastr,NULL ,16 ); -if (sizestr) - data_size = (size_t )simple_strtoul (sizestr,NULL ,16 ); - -return fpga_load (0 , fpga_data, data_size); -} -static struct pci_region pci_regions[] = { { bus_start:CONFIG_SYS_PCI1_MEM_BASE ,
@@ -84,32 +69,23 @@ void pci_init_board(void)volatile law83xx_t *pci_law;struct pci_region *reg[] = { pci_regions }; - load_fpga =1 ; immr = (immap_t *)CONFIG_SYS_IMMR ; clk = (clk83xx_t *) &immr->clk; pci_ctrl = immr->pci_ctrl; pci_law = immr->sysconf.pcilaw; gpio = (volatile gpio83xx_t *)&immr->gpio[0 ]; - s =getenv ("skip_fpga" ); -if (s) { -printf ("found 'skip_fpga' -> FPGA _not_ loaded !\n" ); - load_fpga =0 ; - } - gpio->dat =MV_GPIO_DAT ; gpio->odr =MV_GPIO_ODE ; -if (load_fpga) - gpio->dir =MV_GPIO_OUT ; -else - gpio->dir =MV_GPIO_OUT & ~(FPGA_DIN |FPGA_CCLK ); + gpio->dir =MV_GPIO_OUT ;printf ("SICRH / SICRL : 0x%08x / 0x%08x\n" , immr->sysconf.sicrh, immr->sysconf.sicrl);mvblm7_init_fpga (); -if (load_fpga) -mvblm7_load_fpga (); +mv_load_fpga (); + + gpio->dir =MV_GPIO_OUT & ~(FPGA_DIN |FPGA_CCLK );/* Enable PCI_CLK_OUTPUTs 0 and 1 with 1:1 clocking */ clk->occr =0xc0000000 ;
include/configs/MVBC_P.h +12 -2
@@ -68,9 +68,9 @@#define MV_VCI mvBlueCOUGAR-P#define MV_FPGA_DATA 0xff860000#define MV_FPGA_SIZE 0x0003c886 -#define MV_KERNEL_ADDR 0xffc00000 +#define MV_KERNEL_ADDR 0xffd00000#define MV_INITRD_ADDR 0xff900000 -#define MV_INITRD_LENGTH 0x00300000 +#define MV_INITRD_LENGTH 0x00400000#define MV_SCRATCH_ADDR 0x00000000#define MV_SCRATCH_LENGTH MV_INITRD_LENGTH#define MV_SOURCE_ADDR 0xff840000
@@ -105,6 +105,7 @@#define CONFIG_CMD_SDRAM #define CONFIG_CMD_PCI #define CONFIG_CMD_FPGA +#define CONFIG_CMD_I2C #undef CONFIG_WATCHDOG
@@ -182,6 +183,7 @@"propdev_debug=0\0" \"gevss_debug=0\0" \"watchdog=1\0" \ +"sensor_cnt=1\0" \"" #undef XMK_STR
@@ -249,6 +251,14 @@#define CONFIG_SYS_BOOTMAPSZ (8 << 20)/* +* I2C configuration +*/ +#define CONFIG_HARD_I2C 1 +#define CONFIG_SYS_I2C_MODULE 1 +#define CONFIG_SYS_I2C_SPEED 86000 +#define CONFIG_SYS_I2C_SLAVE 0x7F + +/* * Ethernet configuration */ #define CONFIG_NET_MULTI
include/configs/MVBLM7.h +21 -27
92 lines not on this page · raw message
MATRIX VISION GmbH, Talstrasse 16, DE-71570 Oppenweiler
Registergericht: Amtsgericht Stuttgart, HRB 271090
Geschiaeftsf?hrer: Gerhard Thullner, Werner Armingeon, Uwe Furtner, Hans-Joachim Reich