new board (eb_cpux9k2)
PATCH v3 9/9 new board (eb_cpux9k2)
* support for EB+CPUx9K2 board by BuS Elektronik GmbH & Co. KG
* select via make eb_cpux9k2_config
* this also demonstrates, how to use boards with AT91RM9200 cpu in at91 arch tree
--- MAINTAINERS | 14 +- MAKEALL | 1 + Makefile | 3 + board/BuS/eb_cpux9k2/Makefile | 51 +++++ board/BuS/eb_cpux9k2/config.mk | 1 + board/BuS/eb_cpux9k2/cpux9k2.c | 420 +++++++++++++++++++++++++++++++++++++++ include/configs/eb_cpux9k2.h | 427 ++++++++++++++++++++++++++++++++++++++++ 7 files changed, 912 insertions(+), 5 deletions(-) create mode 100644 board/BuS/eb_cpux9k2/Makefile create mode 100644 board/BuS/eb_cpux9k2/config.mk create mode 100644 board/BuS/eb_cpux9k2/cpux9k2.c create mode 100644 include/configs/eb_cpux9k2.h
MAINTAINERS +9 -5
@@ -70,7 +70,7 @@ Joe D'Abbraccio <[email protected]> MPC837xERDB MPC837x -K?ri Dav??sson <[email protected]> +K???ri Dav??????sson <[email protected]> FLAGADM MPC823
@@ -579,7 +579,7 @@ Sedji Gaouaou<[email protected]> at91sam9g10ek ARM926EJS (AT91SAM9G10 SoC) at91sam9m10g45ek ARM926EJS (AT91SAM9G45 SoC) -Marius Gr?ger <[email protected]> +Marius Gr???ger <[email protected]> impa7 ARM720T (EP7211) ep7312 ARM720T (EP7312)
@@ -645,7 +645,7 @@ Nishanth Menon <[email protected]> omap3_sdp3430 ARM CORTEX-A8 (OMAP3xx SoC) omap3_zoom1 ARM CORTEX-A8 (OMAP3xx SoC) -David M?ller <[email protected]> +David M???ller <[email protected]> smdk2410 ARM920T VCMA9 ARM920T
@@ -703,6 +703,10 @@ Steve Sakoman <[email protected]> omap3_overo ARM CORTEX-A8 (OMAP3xx SoC) +Jens Scharsig <[email protected]> + + eb_cpux9k2 ARM920T (AT91RM9200 SoC) + Robert Schwebel <[email protected]> csb226 xscale
@@ -749,7 +753,7 @@ Richard Woodruff <[email protected]> omap2420h4 ARM1136EJS -Alex Z?pke <[email protected]> +Alex Z???pke <[email protected]> lart SA1100 dnp1110 SA1110
@@ -774,7 +778,7 @@ Unknown / orphaned boards: # Board CPU # ######################################################################### -Daniel Engstr?m <[email protected]> +Daniel Engstr???m <[email protected]> sc520_cdp x86
MAKEALL +1 -0
@@ -650,6 +650,7 @@ LIST_at91=" \ CPU9260 \ CPU9G20 \ csb637 \ + eb_cpux9k2 \ kb9202 \ meesc \ mp2usb \
Makefile +3 -0
@@ -2693,6 +2693,9 @@ CPUAT91_config : unconfig csb637_config : unconfig @$(MKCONFIG) $(@:_config=) arm arm920t csb637 NULL at91rm9200 +eb_cpux9k2_config : unconfig + @$(MKCONFIG) $(@:_config=) arm arm920t eb_cpux9k2 BuS at91 + kb9202_config : unconfig @$(MKCONFIG) $(@:_config=) arm arm920t kb9202 NULL at91rm9200
board/BuS/eb_cpux9k2/Makefile new file +51 -0
51 lines not on this page · raw message
board/BuS/eb_cpux9k2/config.mk new file +1 -0
@@ -0,0 +1 @@ +TEXT_BASE = 0x23f00000
board/BuS/eb_cpux9k2/cpux9k2.c new file +420 -0
420 lines not on this page · raw message
include/configs/eb_cpux9k2.h new file +427 -0
427 lines not on this page · raw message
PATCH v3 9/9 new board (eb_cpux9k2)
Quoted 25 lines · Jens Scharsig
* support for EB+CPUx9K2 board by BuS Elektronik GmbH & Co. KG
* select via makeeb_cpux9k2_config
* this also demonstrates, how to use boards with AT91RM9200 cpu in at91 arch treeSigned-off-by Jens Scharsig <[email protected]>--- MAINTAINERS | 14 +- MAKEALL | 1 + Makefile | 3 + board/BuS/eb_cpux9k2/Makefile | 51 +++++ board/BuS/eb_cpux9k2/config.mk | 1 + board/BuS/eb_cpux9k2/cpux9k2.c | 420 +++++++++++++++++++++++++++++++++++++++ include/configs/eb_cpux9k2.h | 427 ++++++++++++++++++++++++++++++++++++++++ 7 files changed, 912 insertions(+), 5 deletions(-) create mode 100644 board/BuS/eb_cpux9k2/Makefile create mode 100644 board/BuS/eb_cpux9k2/config.mk create mode 100644 board/BuS/eb_cpux9k2/cpux9k2.c create mode 100644 include/configs/eb_cpux9k2.hMAINTAINERS +0
-0
MAINTAINERS Joe D'Abbraccio <[email protected]> · line 73
Quoted 5 lines
MAINTAINERS +1
-1@@ -70,7 +70,7 @@ Joe D'Abbraccio <[email protected]> MPC837xERDB MPC837x -K?ri Dav??sson <[email protected]> +K???ri Dav??????sson <[email protected]>
Take care that you do not mangle the accent marks. Apply gobally.
Quoted 22 lines
MAINTAINERS +2
-2FLAGADM MPC823@@ -579,7 +579,7 @@ Sedji Gaouaou<[email protected]> at91sam9g10ek ARM926EJS (AT91SAM9G10 SoC) at91sam9m10g45ek ARM926EJS (AT91SAM9G45 SoC) -Marius Gr?ger <[email protected]> +Marius Gr???ger <[email protected]> impa7 ARM720T (EP7211) ep7312 ARM720T (EP7312)@@ -645,7 +645,7 @@ Nishanth Menon <[email protected]> omap3_sdp3430 ARM CORTEX-A8 (OMAP3xx SoC) omap3_zoom1 ARM CORTEX-A8 (OMAP3xx SoC) -David M?ller <[email protected]> +David M???ller <[email protected]> smdk2410 ARM920T VCMA9 ARM920T
MAINTAINERS Steve Sakoman <[email protected]> · line 709
Quoted 7 lines
MAINTAINERS +4
-0@@ -703,6 +703,10 @@ Steve Sakoman <[email protected]> omap3_overo ARM CORTEX-A8 (OMAP3xx SoC) +Jens Scharsig <[email protected]> + + eb_cpux9k2 ARM920T (AT91RM9200 SoC) +
The email does not match what was given in the
copyrights. Which is the real address ?
Quoted 72 lines
MAINTAINERS +2
-2Robert Schwebel <[email protected]> csb226 xscale@@ -749,7 +753,7 @@ Richard Woodruff <[email protected]> omap2420h4 ARM1136EJS -Alex Z?pke <[email protected]> +Alex Z???pke <[email protected]> lart SA1100 dnp1110 SA1110@@ -774,7 +778,7 @@ Unknown / orphaned boards: # Board CPU # ######################################################################### -Daniel Engstr?m <[email protected]> +Daniel Engstr???m <[email protected]> sc520_cdp x86MAKEALL +1
-0@@ -650,6 +650,7 @@ LIST_at91=" \ CPU9260 \ CPU9G20 \ csb637 \ + eb_cpux9k2 \ kb9202 \ meesc \ mp2usb \Makefile +3
-0@@ -2693,6 +2693,9 @@ CPUAT91_config : unconfig csb637_config : unconfig @$(MKCONFIG) $(@:_config=) arm arm920t csb637 NULL at91rm9200 +eb_cpux9k2_config : unconfig + @$(MKCONFIG) $(@:_config=) arm arm920t eb_cpux9k2 BuS at91 + kb9202_config : unconfig @$(MKCONFIG) $(@:_config=) arm arm920t kb9202 NULL at91rm9200board/BuS/eb_cpux9k2/Makefile new file +19
-0@@ -0,0 +1,51 @@ +# +# (C) Copyright 2003-2006 +# Wolfgang Denk, DENX Software Engineering, wd at denx.de. +# +# 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
board/BuS/eb_cpux9k2/Makefile line 29
Quoted 10 lines
board/BuS/eb_cpux9k2/Makefile new file +10
-0+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, +# MA 02111-1307 USA +# + +include $(TOPDIR)/config.mk + +LIB = $(obj)lib$(BOARD).a + +COBJS := cpux9k2.o +#led.o
Remove if uneeded.
Quoted 104 lines
board/BuS/eb_cpux9k2/Makefile new file +22
-0+ +SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c) +OBJS := $(addprefix $(obj),$(COBJS)) +SOBJS := $(addprefix $(obj),$(SOBJS)) + +$(LIB): $(obj).depend $(OBJS) $(SOBJS) + $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS) + +clean: + rm -f $(SOBJS) $(OBJS) + +distclean: clean + rm -f $(LIB) core *.bak .depend + +######################################################################### + +# defines $(obj).depend target +include $(SRCTREE)/rules.mk + +sinclude $(obj).depend + +#########################################################################board/BuS/eb_cpux9k2/config.mk new file +1
-0@@ -0,0 +1 @@ +TEXT_BASE = 0x23f00000board/BuS/eb_cpux9k2/cpux9k2.c new file +69
-0@@ -0,0 +1,420 @@ +/* +* (C) Copyright 2008-2009 +* BuS Elektronik GmbH & Co. KG <www.bus-elektronik.de> +* Jens Scharsig <[email protected]> +* +* 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 +*/ + +#include <common.h> +#include <exports.h> +#include <net.h> +#include <netdev.h> +#include <nand.h> + +#include <asm/io.h> +#include <asm/arch/hardware.h> +#include <asm/arch/at91_pio.h> +#include <asm/arch/at91_pmc.h> +#include <asm/arch/at91_mc.h> + +#ifdef CONFIG_STATUS_LED +#include <status_led.h> +#endif + +#ifdef CONFIG_VIDEO +#include <bus_vcxk.h> + +extern unsigned long display_width; +extern unsigned long display_height; +#endif + +#ifdef CONFIG_CMD_NAND +void cpux9k2_nand_hw_init (void ); +#endif + +DECLARE_GLOBAL_DATA_PTR ; + +/* +* Miscelaneous platform dependent initialisations +*/ + +int board_init (void ) +{ +at91_pio_t *pio = (at91_pio_t *)AT91_PIO_BASE ; +/* Enable Ctrlc */ +console_init_f (); + +/* Correct IRDA resistor problem / Set PA23_TXD in Output */ +writel (AT91_PMX_AA_TXD2 , &pio->pioa.oer); + + gd->bd->bi_arch_number =MACH_TYPE_EB_CPUX9K2 ; +/* adress of boot parameters */ + gd->bd->bi_boot_params =PHYS_SDRAM +0x100 ;
board/BuS/eb_cpux9k2/cpux9k2.c line 79
Quoted 10 lines
board/BuS/eb_cpux9k2/cpux9k2.c new file +10
-0+ +#ifdef CONFIG_STATUS_LED +status_led_set (STATUS_LED_BOOT ,STATUS_LED_ON ); +#endif +#ifdef CONFIG_CMD_NAND +cpux9k2_nand_hw_init (); +#endif +return 0 ; +} +
Normally this is conditionally compiled in byCONFIG_INIT_R
board/BuS/eb_cpux9k2/cpux9k2.c line 86
Quoted 7 lines
board/BuS/eb_cpux9k2/cpux9k2.c new file +7
-0+int misc_init_r (void ) +{ +uchar mac[8 ]; +uchar tm; +uchar midx; +uchar macn6, macn7; +
May want to make search on ethernet conditional
on ethernet support
Quoted 78 lines
board/BuS/eb_cpux9k2/cpux9k2.c new file +78
-0+if (getenv ("ethaddr" ) ==NULL ) { +if (i2c_read (CONFIG_SYS_I2C_EEPROM_ADDR ,0x00 , +CONFIG_SYS_I2C_EEPROM_ADDR_LEN , + (uchar *) &mac,sizeof (mac)) !=0 ) { +puts ("Error reading MAC from EEPROM\n" ); + }else { + tm =0 ; + macn6 =0 ; + macn7 =0xFF ; +for (midx =0 ; midx <6 ; midx++) { +if ((mac[midx] !=0 ) && (mac[midx] !=0xFF )) + tm++; + macn6 += mac[midx]; + macn7 ^= mac[midx]; + } +if ((macn6 != mac[6 ]) || (macn7 != mac[7 ])) + tm =0 ; +if (tm) +eth_setenv_enetaddr ("ethaddr" , mac); +else +puts ("Error: invalid MAC at EEPROM\n" ); + } + } + gd->jt[XF_do_reset] = (void *) do_reset; + +#ifdef CONFIG_STATUS_LED +status_led_set (STATUS_LED_BOOT ,STATUS_LED_BLINKING ); +#endif +return 0 ; +} + +#ifdef CONFIG_RESET_PHY_R +void reset_phy (void ) +{ +udelay (10000 ); +eth_init (gd->bd); +} +#endif + +/* +* DRAM initialisations +*/ + +int dram_init (void ) +{ + gd->bd->bi_dram[0 ].start =PHYS_SDRAM ; + gd->bd->bi_dram[0 ].size = +get_ram_size ((volatile long *)PHYS_SDRAM ,PHYS_SDRAM_SIZE ); +return 0 ; +} + +/* +* Ethernet initialisations +*/ + +#ifdef CONFIG_DRIVER_AT91EMAC +int board_eth_init (bd_t *bis) +{ +int rc =0 ; + rc =at91emac_register (bis, (u32 )AT91_EMAC_BASE ); +return rc; +} +#endif + +/* +* Disk On Chip (NAND) Millenium initialization. +* The NAND lives in the CS2* space +*/ +#if defined(CONFIG_CMD_NAND ) + +#define MASK_ALE (1 << 22)/* our ALE is AD22 */ +#define MASK_CLE (1 << 21)/* our CLE is AD21 */ + +void cpux9k2_nand_hw_init (void ) +{ +unsigned long csr; +at91_pio_t *pio = (at91_pio_t *)AT91_PIO_BASE ; +at91_pmc_t *pmc = (at91_pmc_t *)AT91_PMC_BASE ;
board/BuS/eb_cpux9k2/cpux9k2.c line 174
Quoted 10 lines
board/BuS/eb_cpux9k2/cpux9k2.c new file +10
-0+at91_mc_t *mc = (at91_mc_t *)AT91_MC_BASE ; + +/* Setup Smart Media, fitst enable the address range of CS3 */ +writel (readl (&mc->ebi.csa) |AT91_EBI_CSA_CS3A , &mc->ebi.csa); + +/* RWH = 1 | RWS = 0 | TDF = 1 | NWS = 3 */ + csr =AT91_SMC_CSR_RWHOLD (1 ) |AT91_SMC_CSR_TDF (1 ) | +AT91_SMC_CSR_NWS (3 ) | +AT91_SMC_CSR_ACSS_STANDARD |AT91_SMC_CSR_DBW_8 | +AT91_SMC_CSR_WSEN ;
ws
extra space
'= \tAT91 .. '
Similar small ws problems in this patch
Fix globally
Quoted 154 lines
board/BuS/eb_cpux9k2/cpux9k2.c new file +154
-0+writel (csr, &mc->smc.csr[3 ]); + +writel (AT91_PMX_CA_SMOE |AT91_PMX_CA_SMWE , &pio->pioc.asr); +writel (AT91_PMX_CA_BFCK |AT91_PMX_CA_SMOE |AT91_PMX_CA_SMWE , + &pio->pioc.pdr); + +/* Configure PC2 as input (signal Nand READY ) */ +writel (AT91_PMX_CA_BFAVD , &pio->pioc.per); +writel (AT91_PMX_CA_BFAVD , &pio->pioc.odr);/* disable output */ +writel (AT91_PMX_CA_BFCK , &pio->pioc.codr); + +/* PIOC clock enabling */ +writel (1 <<AT91_ID_PIOC , &pmc->pcer); +} + +static void board_nand_hwcontrol (struct mtd_info *mtd, +int cmd,unsigned int ctrl) +{ +at91_pio_t *pio = (at91_pio_t *)AT91_PIO_BASE ; +struct nand_chip *this = mtd->priv; +ulong IO_ADDR_W = (ulong ) this->IO_ADDR_W; + +if (ctrl &NAND_CTRL_CHANGE ) { +IO_ADDR_W &= ~(MASK_ALE |MASK_CLE ); + +if (ctrl &NAND_CLE ) +IO_ADDR_W |=MASK_CLE ; +if (ctrl &NAND_ALE ) +IO_ADDR_W |=MASK_ALE ; + +if ((ctrl &NAND_NCE )) +writel (AT91_PIN_TO_MASK (0 ), &pio->pioc.codr); +else +writel (AT91_PIN_TO_MASK (0 ), &pio->pioc.sodr); + + this->IO_ADDR_W = (void *)IO_ADDR_W ; + } +if (cmd !=NAND_CMD_NONE ) +writeb (cmd, this->IO_ADDR_W); +} + +static int board_nand_dev_ready (struct mtd_info *mtd) +{ +at91_pio_t *pio = (at91_pio_t *)AT91_PIO_BASE ; +return ((readl (&pio->pioc.pdsr) &AT91_PIN_TO_MASK (2 )) !=0 ); +} + +int board_nand_init (struct nand_chip *nand) +{ +cpux9k2_nand_hw_init (); + nand->ecc.mode =NAND_ECC_SOFT ; + nand->cmd_ctrl = board_nand_hwcontrol; + nand->dev_ready = board_nand_dev_ready; + nand->chip_delay =20 ; +return 0 ; +} + +#endif + +#if defined(CONFIG_VIDEO ) +/* +* drv_video_init +* FUNCTION: initialize VCxK device +*/ + +int drv_video_init (void ) +{ +#ifdef CONFIG_SPLASH_SCREEN +unsigned long splash; +#endif +char *s; +unsigned long csr; +at91_pmc_t *pmc = (at91_pmc_t *)AT91_PMC_BASE ; +at91_mc_t *mc = (at91_mc_t *)AT91_MC_BASE ; + +printf ("Init Video as " ); + s =getenv ("displaywidth" ); +if (s !=NULL ) + display_width =simple_strtoul (s,NULL ,10 ); +else + display_width =256 ; + s =getenv ("displayheight" ); +if (s !=NULL ) + display_height =simple_strtoul (s,NULL ,10 ); +else + display_height =256 ; +printf ("%ld x %ld pixel matrix\n" , display_width, display_height); + +/* RWH = 7 | RWS =7 | TDF = 15 | NWS = 0x7F */ + csr =AT91_SMC_CSR_RWHOLD (7 ) |AT91_SMC_CSR_RWSETUP (7 ) | +AT91_SMC_CSR_TDF (15 ) |AT91_SMC_CSR_NWS (127 ) | +AT91_SMC_CSR_ACSS_STANDARD |AT91_SMC_CSR_DBW_16 | +AT91_SMC_CSR_BAT_16 |AT91_SMC_CSR_WSEN ; +writel (csr, &mc->smc.csr[2 ]); +writel (1 <<AT91_ID_PIOB , &pmc->pcer); + +vcxk_init (display_width, display_height); +#ifdef CONFIG_SPLASH_SCREEN + s =getenv ("splashimage" ); +if (s !=NULL ) { + splash =simple_strtoul (s,NULL ,16 ); +printf ("use splashimage: %lx\n" , splash); +video_display_bitmap (splash,0 ,0 ); + } +#endif +return 0 ; +} +#endif + +#ifdef CONFIG_SOFT_I2C + +void i2c_init_board (void ) +{ +u32 pin; +at91_pmc_t *pmc = (at91_pmc_t *)AT91_PMC_BASE ; +at91_pio_t *pio = (at91_pio_t *)AT91_PIO_BASE ; + +writel (1 <<AT91_ID_PIOA , &pmc->pcer); + pin =AT91_PMX_AA_TWD |AT91_PMX_AA_TWCK ; +writel (pin, &pio->pioa.idr); +writel (pin, &pio->pioa.pudr); +writel (pin, &pio->pioa.per); +writel (pin, &pio->pioa.oer); +writel (pin, &pio->pioa.sodr); +} + +/* +void board_i2c_active(void) +{ +at91_pio_t *pio = (at91_pio_t *) AT91_PIO_BASE; +writel(AT91_PMX_AA_TWD, &pio->pioa.mddr); +} + +void board_i2c_tristate(void) +{ +at91_pio_t *pio = (at91_pio_t *) AT91_PIO_BASE; +writel(AT91_PMX_AA_TWD, &pio->pioa.mder); +} + +int board_i2c_read(void) +{ +at91_pio_t *pio = (at91_pio_t *) AT91_PIO_BASE; +return ((readl(&pio->pioa.pdsr) & AT91_PMX_AA_TWD) != 0); +} + +void board_i2c_sda(int bit) +{ +at91_pio_t *pio = (at91_pio_t *) AT91_PIO_BASE; +if (bit) +writel(AT91_PMX_AA_TWD, &pio->pioa.sodr); +else +writel(AT91_PMX_AA_TWD, &pio->pioa.codr); +} +
board/BuS/eb_cpux9k2/cpux9k2.c line 338
Quoted 10 lines
board/BuS/eb_cpux9k2/cpux9k2.c new file +10
-0+ +void board_i2c_scl(int bit) +{ +at91_pio_t *pio = (at91_pio_t *) AT91_PIO_BASE; +if (bit) +writel(AT91_PMX_AA_TWCK, &pio->pioa.sodr); +else +writel(AT91_PMX_AA_TWCK, &pio->pioa.codr); +} +*/
These functions are commented out.
If they are unneed, remove them.
Quoted 111 lines
board/BuS/eb_cpux9k2/cpux9k2.c new file +82
-0+#endif + +/*--------------------------------------------------------------------------*/ + +#ifdef CONFIG_STATUS_LED + +void __led_toggle (led_id_t mask) +{ +at91_pio_t *pio = (at91_pio_t *)AT91_PIO_BASE ; + +if (readl (&pio->piod.odsr) & mask) +writel (mask, &pio->piod.codr); +else +writel (mask, &pio->piod.codr); +} + +void __led_init (led_id_t mask,int state) +{ +at91_pmc_t *pmc = (at91_pmc_t *)AT91_PMC_BASE ; +at91_pio_t *pio = (at91_pio_t *)AT91_PIO_BASE ; + +writel (1 <<AT91_ID_PIOD , &pmc->pcer);/* Enable PIOB clock */ +/* Disable peripherals on LEDs */ +writel (STATUS_LED_BIT |STATUS_LED_BIT1 , &pio->piod.per); +/* Enable pins as outputs */ +writel (STATUS_LED_BIT |STATUS_LED_BIT1 , &pio->piod.oer); +/* Turn all LEDs OFF */ +writel (STATUS_LED_BIT |STATUS_LED_BIT1 , &pio->piod.sodr); + +__led_set (mask, state); +} + +void __led_set (led_id_t mask,int state) +{ +at91_pio_t *pio = (at91_pio_t *)AT91_PIO_BASE ; +if (state ==STATUS_LED_ON ) +writel (mask, &pio->piod.codr); +else +writel (mask, &pio->piod.sodr); +} + +#endif + +/*---------------------------------------------------------------------------*/ + +int do_brightness (cmd_tbl_t *cmdtp,int flag,int argc,char *argv[]) +{ +int rcode =0 ; +ulong side; +ulong bright; + +switch (argc) { +case 3 : + side =simple_strtoul (argv[1 ],NULL ,10 ); + bright =simple_strtoul (argv[2 ],NULL ,10 ); +if ((side >=0 ) && (side <=3 ) && + (bright >=0 ) && (bright <=1000 )) { +vcxk_setbrightness (side, bright); + rcode =0 ; + }else { +printf ("parameters out of range\n" ); +printf ("Usage:\n%s\n" , cmdtp->usage); + rcode =1 ; + } +break ; +default : +printf ("Usage:\n%s\n" , cmdtp->usage); + rcode =1 ; +break ; + } +return rcode; +} + +/*---------------------------------------------------------------------------*/ + +U_BOOT_CMD ( + bright,3 ,0 , do_brightness, +"bright - sets the display brightness\n" , +" <side> <0..1000>\n side: 0/3=both; 1=first; 2=second\n" +); + +/* EOF cpu9k2.c */ include/configs/eb_cpux9k2.h new file +23
-0@@ -0,0 +1,427 @@ +/* +* (C) Copyright 2008-2009 +* BuS Elektronik GmbH & Co. KG <www.bus-elektronik.de> +* Jens Scharsig <[email protected]> +* +* Configuation settings for the EB+CPUx9K2 board. +* +* 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,
include/configs/eb_cpux9k2.h line 33
Quoted 10 lines
include/configs/eb_cpux9k2.h new file +10
-0+* MA 02111-1307 USA +*/ + +#ifndef _CONFIG_EB_CPUx9K2_H_ +#define _CONFIG_EB_CPUx9K2_H_ + +/*--------------------------------------------------------------------------*/ + +#define CONFIG_IDENT_STRING " on EB+CPUx9K2" +#define CONFIG_VERSION_VARIABLE 1
Move non-cpu, non-soc, non-board configs lower in the filie
Quoted 199 lines
include/configs/eb_cpux9k2.h new file +199
-0+#define CONFIG_ARM920T 1/* This is an ARM920T Core */ +#define CONFIG_AT91RM9200 1/* It's an Atmel AT91RM9200 SoC */ +#define CONFIG_EB_CPUX9K2 1/* on an EP+CPUX9K2 Board */ +#define USE_920T_MMU 1 + +#include <asm/arch/hardware.h> /* needed for port definitions */ + +#define CONFIG_MISC_INIT_R + +/*--------------------------------------------------------------------------*/ + +#define CONFIG_SYS_LOAD_ADDR 0x21000000/* default load address */ + +#define CONFIG_SYS_BOOT_SIZE 0x00/* 0 KBytes */ +#define CONFIG_SYS_U_BOOT_BASE PHYS_FLASH_1 +#define CONFIG_SYS_U_BOOT_SIZE 0x60000/* 384 KBytes */ + + +#define CONFIG_BOOT_RETRY_TIME 30 +#define CONFIG_CMDLINE_EDITING + +#define CONFIG_SYS_PROMPT "U-Boot> "/* Monitor Command Prompt */ +#define CONFIG_SYS_CBSIZE 512/* Console I/O Buffer Size */ +#define CONFIG_SYS_MAXARGS 32/* max number of command args */ +#define CONFIG_SYS_PBSIZE \ + (CONFIG_SYS_CBSIZE+sizeof(CONFIG_SYS_PROMPT)+16)/* Print Buffer Size */ + +#define CONFIG_STACKSIZE (32*1024)/* regular stack */ + +/* +* ARM asynchronous clock +*/ + +#define AT91C_MAIN_CLOCK 179404800/* from 12.288 MHz * 73 / 5 */ +#define AT91C_MASTER_CLOCK (AT91C_MAIN_CLOCK / 3) +#define CONFIG_SYS_HZ 1000 +#define CONFIG_SYS_HZ_CLOCK (AT91C_MASTER_CLOCK / 2) + +#define AT91_SLOW_CLOCK 32768/* slow clock */ + +#define CONFIG_CMDLINE_TAG 1 +#define CONFIG_SETUP_MEMORY_TAGS 1 +#define CONFIG_INITRD_TAG 1 + +#define CONFIG_SYS_USE_MAIN_OSCILLATOR 1 +/* flash */ +#define CONFIG_SYS_EBI_CFGR_VAL 0x00000000 +#define CONFIG_SYS_SMC_CSR0_VAL 0x00003284/* 16bit, 2 TDF, 4 WS */ + +/* clocks */ +#define CONFIG_SYS_PLLAR_VAL 0x20483E05/* 179.4048 MHz for PCK */ +#define CONFIG_SYS_PLLBR_VAL 0x104C3E0A/* 47.3088 MHz (for USB) */ +#define CONFIG_SYS_MCKR_VAL 0x00000202/* PCK/3 = MCK Clock */ + +/* +* Size of malloc() pool +*/ + +#define CONFIG_SYS_MALLOC_LEN (CONFIG_ENV_SIZE + 520*1024) +#define CONFIG_SYS_GBL_DATA_SIZE 128 + +/* +* sdram +*/ + +#define CONFIG_NR_DRAM_BANKS 1 +#define PHYS_SDRAM 0x20000000 +#define PHYS_SDRAM_SIZE 0x04000000/* 64 megs */ + +#define CONFIG_SYS_MEMTEST_START PHYS_SDRAM +#define CONFIG_SYS_MEMTEST_END (CONFIG_SYS_MEMTEST_START + \ + PHYS_SDRAM_SIZE - 0x00400000 - \ + CONFIG_SYS_MALLOC_LEN) + +#define CONFIG_SYS_PIOC_ASR_VAL 0xFFFF0000/* PIOC as D16/D31 */ +#define CONFIG_SYS_PIOC_BSR_VAL 0x00000000 +#define CONFIG_SYS_PIOC_PDR_VAL 0xFFFF0000 +#define CONFIG_SYS_EBI_CSA_VAL 0x00000002/* CS1=SDRAM */ +#define CONFIG_SYS_SDRC_CR_VAL 0x2188c159/* set up the SDRAM */ +#define CONFIG_SYS_SDRAM 0x20000000/* address of the SDRAM */ +#define CONFIG_SYS_SDRAM1 0x20000080/* address of the SDRAM */ +#define CONFIG_SYS_SDRAM_VAL 0x00000000/* value written to SDRAM */ +#define CONFIG_SYS_SDRC_MR_VAL 0x00000002/* Precharge All */ +#define CONFIG_SYS_SDRC_MR_VAL1 0x00000004/* refresh */ +#define CONFIG_SYS_SDRC_MR_VAL2 0x00000003/* Load Mode Register */ +#define CONFIG_SYS_SDRC_MR_VAL3 0x00000000/* Normal Mode */ +#define CONFIG_SYS_SDRC_TR_VAL 0x000002E0/* Write refresh rate */ + +/* +* Command line configuration +*/ + +#include <config_cmd_default.h> + +#define CONFIG_CMD_BMP +#define CONFIG_CMD_DATE +#define CONFIG_CMD_DHCP +#define CONFIG_CMD_I2C +#define CONFIG_CMD_JFFS2 +#define CONFIG_CMD_MII +#define CONFIG_CMD_NAND +#define CONFIG_CMD_PING +#define CONFIG_I2C_CMD_NO_FLAT +#define CONFIG_I2C_CMD_TREE + +#define CONFIG_SYS_LONGHELP + +/* +* Filesystems +*/ + +#define CONFIG_JFFS2_NAND 1 + +#ifndef CONFIG_JFFS2_CMDLINE +#define CONFIG_JFFS2_DEV "nand0" +#define CONFIG_JFFS2_PART_OFFSET 0 +#define CONFIG_JFFS2_PART_SIZE 0xFFFFFFFF +#else +#define MTDIDS_DEFAULT "nor0=0,nand0=1" +#define MTDPARTS_DEFAULT "mtdparts=" \ + "0:" \ + "384k(U-Boot)," \ + "128k(Env)," \ + "128k(Splash)," \ + "4M(Kernel)," \ + "-(FS)" \ + ";" \ + "1:" \ + "-(jffs2)" +#endif /* CONFIG_JFFS2_CMDLINE */ + +/* +* Hardware drivers +*/ + +/* +* UART/CONSOLE +*/ + +#define CONFIG_SYS_BAUDRATE_TABLE { 115200, 19200, 38400, 57600, 9600 } + +#define CONFIG_BAUDRATE 115200 +#define CONFIG_AT91RM9200_USART +#define CONFIG_DBGU /* define DBGU as console */ + +/* +* network +*/ + +#define CONFIG_NET_RETRY_COUNT 10 +#define CONFIG_RESET_PHY_R 1 + +#define CONFIG_NET_MULTI 1 + +#ifdef CONFIG_NET_MULTI +#define CONFIG_DRIVER_AT91EMAC 1 +#define CONFIG_DRIVER_AT91EMAC_QUIET 1 +#define CONFIG_SYS_RX_ETH_BUFFER 8 +#define CONFIG_MII 1 +#else +#define CONFIG_DRIVER_ETHER 1 +#endif + +/* +* BOOTP options +*/ +#define CONFIG_BOOTP_BOOTFILESIZE +#define CONFIG_BOOTP_BOOTPATH +#define CONFIG_BOOTP_GATEWAY +#define CONFIG_BOOTP_HOSTNAME + +/* +* I2C-Bus +*/ + +#define CONFIG_SYS_I2C_SPEED 50000 +#define CONFIG_SYS_I2C_SLAVE 0/* not used */ + +#ifndef CONFIG_HARD_I2C +#define CONFIG_SOFT_I2C + +/* Software I2C driver configuration */ + +#define AT91_PIN_SDA (1<<25)/* AT91C_PIO_PA25 */ +#define AT91_PIN_SCL (1<<26)/* AT91C_PIO_PA26 */ + +#define CONFIG_SYS_I2C_INIT_BOARD + +#define I2C_INIT i2c_init_board(); +#define I2C_ACTIVE writel(AT91_PMX_AA_TWD, &pio->pioa.mddr); +#define I2C_TRISTATE writel(AT91_PMX_AA_TWD, &pio->pioa.mder); +#define I2C_READ ((readl(&pio->pioa.pdsr) & AT91_PMX_AA_TWD) != 0) +#define I2C_SDA (bit) \ + if (bit) \ + writel(AT91_PMX_AA_TWD, &pio->pioa.sodr); \ + else \ + writel(AT91_PMX_AA_TWD, &pio->pioa.codr); +#define I2C_SCL (bit) \ + if (bit) \
include/configs/eb_cpux9k2.h line 242
Quoted 10 lines
include/configs/eb_cpux9k2.h new file +10
-0+writel (AT91_PMX_AA_TWCK , &pio->pioa.sodr); \ + else \ + writel(AT91_PMX_AA_TWCK, &pio->pioa.codr); + +/*#define I2C_ACTIVE board_i2c_active(); +#define I2C_TRISTATE board_i2c_tristate(); +#define I2C_READ board_i2c_read(); +#define I2C_SDA(bit) board_i2c_sda(bit); +#define I2C_SCL(bit) board_i2c_scl(bit); +*/
these are commended out
remove them if unneed
move them if needed
The config file is not the place to put function declarations
Tom
PATCH v3 9/9 new board (eb_cpux9k2)
Quoted 9 lines · Tom
MAINTAINERS Steve Sakoman <[email protected]> · line 709
Quoted 5 lines
MAINTAINERS +4
-0+Jens Scharsig <[email protected]> + + eb_cpux9k2 ARM920T (AT91RM9200 SoC) +The email does not match what was given in the
copyrights. Which is the real address ?
The cpux9k2 board file i make in my profession. The other changes i make in my "spare time". The addresses are correct
PATCH v4 9/9 new board (eb_cpux9k2)
In reply to Jens Scharsig * new board (eb_cpux9k2)
* support for EB+CPUx9K2 board by BuS Elektronik GmbH & Co. KG
* select via make eb_cpux9k2_config
* this also demonstrates, how to use boards with AT91RM9200 cpu in at91 arch tree
--- MAINTAINERS | 4 + MAKEALL | 1 + Makefile | 3 + board/BuS/eb_cpux9k2/Makefile | 50 +++++ board/BuS/eb_cpux9k2/config.mk | 1 + board/BuS/eb_cpux9k2/cpux9k2.c | 387 +++++++++++++++++++++++++++++++++++++ include/configs/eb_cpux9k2.h | 415 ++++++++++++++++++++++++++++++++++++++++ 7 files changed, 861 insertions(+), 0 deletions(-) create mode 100644 board/BuS/eb_cpux9k2/Makefile create mode 100644 board/BuS/eb_cpux9k2/config.mk create mode 100644 board/BuS/eb_cpux9k2/cpux9k2.c create mode 100644 include/configs/eb_cpux9k2.h
MAINTAINERS +4 -0
@@ -703,6 +703,10 @@ Steve Sakoman <[email protected]> omap3_overo ARM CORTEX-A8 (OMAP3xx SoC) +Jens Scharsig <[email protected]> + + eb_cpux9k2 ARM920T (AT91RM9200 SoC) + Robert Schwebel <[email protected]> csb226 xscale
MAKEALL +1 -0
@@ -650,6 +650,7 @@ LIST_at91=" \ CPU9260 \ CPU9G20 \ csb637 \ + eb_cpux9k2 \ kb9202 \ meesc \ mp2usb \
Makefile +3 -0
@@ -2693,6 +2693,9 @@ CPUAT91_config : unconfig csb637_config : unconfig @$(MKCONFIG) $(@:_config=) arm arm920t csb637 NULL at91rm9200 +eb_cpux9k2_config : unconfig + @$(MKCONFIG) $(@:_config=) arm arm920t eb_cpux9k2 BuS at91 + kb9202_config : unconfig @$(MKCONFIG) $(@:_config=) arm arm920t kb9202 NULL at91rm9200
board/BuS/eb_cpux9k2/Makefile new file +50 -0
50 lines not on this page · raw message
board/BuS/eb_cpux9k2/config.mk new file +1 -0
@@ -0,0 +1 @@ +TEXT_BASE = 0x23f00000
board/BuS/eb_cpux9k2/cpux9k2.c new file +387 -0
387 lines not on this page · raw message
include/configs/eb_cpux9k2.h new file +415 -0
415 lines not on this page · raw message