[U-Boot] [PATCH 02/31] iMX28: Add basic support for DENX M28EVK board

Stefano Babic sbabic at denx.de
Fri Sep 9 10:26:49 CEST 2011


On 09/08/2011 10:42 PM, Marek Vasut wrote:
> This contains support for booting the board and output via DUART.
> 
> Signed-off-by: Marek Vasut <marek.vasut at gmail.com>
> Cc: Stefano Babic <sbabic at denx.de>
> Cc: Wolfgang Denk <wd at denx.de>
> Cc: Detlev Zundel <dzu at denx.de>
> ---
> diff --git a/board/denx/m28evk/m28evk.c b/board/denx/m28evk/m28evk.c
> new file mode 100644
> index 0000000..5f4f787
> --- /dev/null
> +++ b/board/denx/m28evk/m28evk.c
> @@ -0,0 +1,69 @@
> +/*
> + * DENX M28 module
> + *
> + * Copyright (C) 2011 Marek Vasut <marek.vasut at gmail.com>
> + * on behalf of DENX Software Engineering 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
> + */
> +
> +#include <common.h>
> +#include <asm/io.h>
> +#include <asm/arch/regs-common.h>
> +#include <asm/arch/regs-base.h>
> +#include <asm/arch/regs-clkctrl.h>
> +#include <asm/arch/clock.h>
> +#include <asm/arch/mx28.h>
> +
> +DECLARE_GLOBAL_DATA_PTR;
> +
> +/*
> + * Functions
> + */
> +int board_early_init_f(void)
> +{
> +	/* IO0 clock at 480MHz */
> +	mx28_set_ioclk(0, 480000);

See comment in previous patch: first argument is only GATE0 or GATE1,
add enum.

> +int board_init(void)
> +{
> +	/* Will change it for MX28 EVK later */
> +	gd->bd->bi_arch_number = CONFIG_M28_MACHID;

We have recently a new standard here, and the MACH ID is set into the
config file.

> diff --git a/include/configs/m28evk.h b/include/configs/m28evk.h
> new file mode 100644
> index 0000000..4f41e26
> --- /dev/null
> +++ b/include/configs/m28evk.h
> @@ -0,0 +1,108 @@
> +/*
> + * Copyright (C) 2011 Marek Vasut <marek.vasut at gmail.com>
> + * on behalf of DENX Software Engineering GmbH
> + *
> + * 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 __M28_H__
> +#define __M28_H__
> +
> +#include <asm/arch/regs-base.h>
> +
> +/*
> + * SoC configurations
> + */
> +#define	CONFIG_MX28				/* i.MX28 SoC */
> +#define	CONFIG_MX28_TO1_2
> +#define	CONFIG_SYS_HZ		1000		/* Ticks per second */
> +
> +#define	CONFIG_M28_MACHID	MACH_TYPE_M28EVK
> +
> +#define	CONFIG_SYS_NO_FLASH
> +#define	CONFIG_SYS_ICACHE_OFF
> +#define	CONFIG_SYS_DCACHE_OFF
> +#define	CONFIG_BOARD_EARLY_INIT_F
> +
> +/*
> + * U-Boot Commands
> + */
> +#include <config_cmd_default.h>
> +#define	CONFIG_DISPLAY_CPUINFO
> +#define	CONFIG_CMD_CACHE
> +#undef	CONFIG_CMD_DHCP
> +#undef	CONFIG_CMD_NET
> +#undef	CONFIG_CMD_NFS
> +#undef	CONFIG_CMD_PING
> +#define	CONFIG_CMD_SETEXPR
> +
> +/*
> + * Memory configurations
> + */
> +#define	CONFIG_NR_DRAM_BANKS		1		/* 2 banks of DRAM */
> +#define	PHYS_SDRAM_1			0x40000000	/* Base address */
> +#define	PHYS_SDRAM_1_SIZE		0x10000000	/* 256 MB */
> +#define	CONFIG_STACKSIZE		0x00010000	/* 128 KB stack */
> +#define	CONFIG_SYS_MALLOC_LEN		0x00400000	/* 4 MB for malloc */
> +#define	CONFIG_SYS_GBL_DATA_SIZE	128		/* Initial data */
> +#define	CONFIG_SYS_MEMTEST_START	0x40000000	/* Memtest start adr */
> +#define	CONFIG_SYS_MEMTEST_END		0x40400000	/* 4 MB RAM test */
> +#define	CONFIG_SYS_SDRAM_BASE		PHYS_SDRAM_1
> +#define	CONFIG_SYS_INIT_SP_ADDR		0x18000
> +#define	CONFIG_SYS_TEXT_BASE		0x40000000
> +
> +/*
> + * U-Boot general configurations
> + */
> +#define	CONFIG_SYS_LONGHELP
> +#define	CONFIG_SYS_PROMPT	"=> "
> +#define	CONFIG_SYS_CBSIZE	1024		/* Console I/O buffer size */
> +#define	CONFIG_SYS_PBSIZE	\
> +	(CONFIG_SYS_CBSIZE + sizeof(CONFIG_SYS_PROMPT) + 16)
> +						/* Print buffer size */
> +#define	CONFIG_SYS_MAXARGS	32		/* Max number of command args */
> +#define	CONFIG_SYS_BARGSIZE	CONFIG_SYS_CBSIZE
> +						/* Boot argument buffer size */
> +#define	CONFIG_VERSION_VARIABLE			/* U-BOOT version */
> +#define	CONFIG_AUTO_COMPLETE			/* Command auto complete */
> +#define	CONFIG_CMDLINE_EDITING			/* Command history etc */
> +#define	CONFIG_SYS_HUSH_PARSER
> +#define	CONFIG_SYS_PROMPT_HUSH_PS2	"> "
> +
> +/*
> + * Serial Driver
> + */
> +#define	CONFIG_PL011_SERIAL
> +#define	CONFIG_PL011_CLOCK		24000000
> +#define	CONFIG_PL01x_PORTS		{ (void *)MXS_UARTDBG_BASE }
> +#define	CONFIG_CONS_INDEX		0
> +#define	CONFIG_BAUDRATE			115200	/* Default baud rate */
> +#define	CONFIG_SYS_BAUDRATE_TABLE	{ 9600, 19200, 38400, 57600, 115200 }
> +
> +/*
> + * Boot Linux
> + */
> +#define	CONFIG_CMDLINE_TAG
> +#define	CONFIG_SETUP_MEMORY_TAGS
> +#define	CONFIG_BOOTDELAY	3
> +#define	CONFIG_BOOTFILE		"uImage"
> +#define	CONFIG_BOOTARGS		"console=ttyAM0,115200n8 "
> +#define	CONFIG_BOOTCOMMAND	"run bootcmd_net"
> +#define	CONFIG_LOADADDR		0x42000000
> +#define	CONFIG_SYS_LOAD_ADDR	CONFIG_LOADADDR
> +
> +#define	CONFIG_ENV_IS_NOWHERE	1
> +
> +#endif /* __M28_H__ */

Best regards,
Stefano Babic

-- 
=====================================================================
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-0 Fax: +49-8142-66989-80  Email: office at denx.de
=====================================================================


More information about the U-Boot mailing list