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

Stefano Babic
2011-09-09T08:26:49Z

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@gmail.com>
> Cc: Stefano Babic <sbabic@denx.de>
> Cc: Wolfgang Denk <wd@denx.de>
> Cc: Detlev Zundel <dzu@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@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@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
=====================================================================