
Jean-Christophe PLAGNIOL-VILLARD wrote:
On 12:21 Tue 23 Jun , Daniel Gorsulowski wrote:
This patch adds support for esd gmbh MEESC board. The MEESC is based on an Atmel AT91SAM9263 SoC.
Signed-off-by: Daniel Gorsulowski Daniel.Gorsulowski@esd.eu
Jean-Christophe: This patch requires an up-to-date mach-types.h, please sync it.
diff --git a/board/esd/meesc/meesc.c b/board/esd/meesc/meesc.c new file mode 100644 index 0000000..557a51c --- /dev/null +++ b/board/esd/meesc/meesc.c @@ -0,0 +1,211 @@ +/*
- (C) Copyright 2007-2008
- Stelian Pop stelian.pop@leadtechdesign.com
- Lead Tech Design <www.leadtechdesign.com>
- (C) Copyright 2009
- Daniel Gorsulowski daniel.gorsulowski@esd.eu
- esd electronic system design gmbh <www.esd.eu>
- 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 <asm/arch/at91sam9263.h> +#include <asm/arch/at91sam9263_matrix.h>
please use <asm/arch/at91sam9_matrix.h>
ok
+#include <asm/arch/at91sam9_smc.h> +#include <asm/arch/at91_common.h> +#include <asm/arch/at91_pmc.h> +#include <asm/arch/at91_rstc.h> +#include <asm/arch/clk.h> +#include <asm/arch/gpio.h> +#include <asm/arch/hardware.h> +#include <asm/arch/io.h> +#include <netdev.h>
+DECLARE_GLOBAL_DATA_PTR;
+/*
- Miscelaneous platform dependent initialisations
- */
it will be better to only read it only and store it in a static
I only use it once, but if you really mean, I'll change it.
+int get_hw_rev(void) +{
- int rev = at91_get_gpio_value(AT91_PIN_PB19);
please add an empty line
ok
- rev |= at91_get_gpio_value(AT91_PIN_PB20) << 1;
- rev |= at91_get_gpio_value(AT91_PIN_PB21) << 2;
- rev |= at91_get_gpio_value(AT91_PIN_PB22) << 3;
- if (rev == 15)
rev = 0;
- return rev;
+}
<snip> > + > +int checkboard(void) > +{ > + char str[32]; > + char buf[32]; > + > + puts("Board: esd CAN-EtherCAT Gateway"); > + if (getenv_r("serial#", str, sizeof(str)) > 0) { > + puts(", serial# "); > + puts(str); > + } > + printf("\nHardware-revision: 1.%d\n", get_hw_rev()); > + printf("Crystal frequency:\t%8s MHz\n", > + strmhz(buf, get_main_clk_rate())); > + printf("CPU clock:\t\t%8s MHz\n", > + strmhz(buf, get_cpu_clk_rate())); > +#ifdef CONFIG_SHOW_VERBOSE_CLOCKINFO > + printf("Master clock:\t\t%8s MHz\n", > + strmhz(buf, get_mck_clk_rate())); > + printf("PLL A clock:\t\t%8s MHz\n", > + strmhz(buf, get_plla_clk_rate())); > + printf("PLL B Reg.:\t\t0x%08X\n", > + at91_sys_read(AT91_CKGR_PLLBR)); > + printf("PLL B clock:\t\t%8s MHz\n", > + strmhz(buf, get_pllb_clk_rate())); > +#endif > + printf("Mach-type: %lu\n", gd->bd->bi_arch_number); > + return 0; > +} please use cpu_info when it's possible to avoid copy & paste
Coud you explain a few more? I can't find a function called 'cpu_info'.
+int board_init(void) +{
- /* Enable Ctrlc */
- console_init_f();
no need
Ok, I'll remove it
- /* Peripheral Clock Enable Register */
- at91_sys_write(AT91_PMC_PCER, 1 << AT91SAM9263_ID_PIOA |
1 << AT91SAM9263_ID_PIOB |
1 << AT91SAM9263_ID_PIOCDE |
1 << AT91SAM9263_ID_CAN);
- /* arch number of MEESC-Board */
- gd->bd->bi_arch_number = MACH_TYPE_MEESC;
- /* adress of boot parameters */
- gd->bd->bi_boot_params = PHYS_SDRAM + 0x100;
- at91_serial_hw_init();
+#ifdef CONFIG_CMD_NAND
- meesc_nand_hw_init();
+#endif
- meesc_ethercat_hw_init();
+#ifdef CONFIG_HAS_DATAFLASH
- at91_spi0_hw_init(1 << 0);
+#endif +#ifdef CONFIG_MACB
- meesc_macb_hw_init();
+#endif
- at91_set_A_periph(AT91_PIN_PA13, 0); /* CAN_TX */
- at91_set_A_periph(AT91_PIN_PA14, 1); /* CAN_RX */
please add a at91_can_hw_init function
Ok, I'll do this by a separate patch
- return 0;
+}
<snio> > + > +#ifndef __CONFIG_H > +#define __CONFIG_H > + > +/* Common stuff */ > +#define AT91_CPU_NAME "AT91SAM9263" please remove
ok
+#define CONFIG_SYS_HZ 1000 /* decrementer freq */ +#define CONFIG_MEESC 1 /* Board is esd MEESC */ +#define CONFIG_ARM926EJS 1 /* This is an ARM926EJS Core */ +#define CONFIG_AT91SAM9263 1 /* It's an AT91SAM9263 SoC */ +#define CONFIG_ENV_OVERWRITE 1 /* necessary on prototypes */ +#define CONFIG_DISPLAY_BOARDINFO 1 +#define CONFIG_PREBOOT /* enable preboot variable */
why which value?
This is a custom value, which is set, during putting the board into operation. So it is unalterable to define CONFIG_PREBOOT
+#define CONFIG_CMDLINE_TAG 1 /* enable passing of ATAGs */ +#define CONFIG_SETUP_MEMORY_TAGS 1 +#define CONFIG_INITRD_TAG 1 +#undef CONFIG_USE_IRQ /* don't need IRQ/FIQ stuff */
Best Regards, J. _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Best regards, Daniel Gorsulowski