diff options
| author | Stephen Warren <swarren@wwwdotorg.org> | 2012-08-05 16:07:22 +0000 | 
|---|---|---|
| committer | Albert ARIBAUD <albert.u.boot@aribaud.net> | 2012-09-01 14:58:21 +0200 | 
| commit | 0d04f34a357d004364b58159b64aad354e65137e (patch) | |
| tree | 8b1d913d391a4b4693b33b261280765ed47a39a7 | |
| parent | efad6cf8818620b0d85405df2b810760b62acbb8 (diff) | |
| download | olio-uboot-2014.01-0d04f34a357d004364b58159b64aad354e65137e.tar.xz olio-uboot-2014.01-0d04f34a357d004364b58159b64aad354e65137e.zip | |
ARM: add Raspberry Pi model B board, using BCM2835 SoC
The Raspberry Pi model B uses the BCM2835 SoC, has 256MB of RAM,
contains an SMSC 9512 USB LAN/Hub chip, and various IO connectors.
For more details, see http://www.raspberrypi.org/.
Various portions (cache enable, MACH_TYPE setup, RAM size limit, stack
relocation to top of RAM) extracted from work by:
Oleksandr Tymoshenko <gonzo@bluezbox.com>.
GPIO driver enablement by Vikram Narayanan <vikram186@gmail.com>.
Signed-off-by: Stephen Warren <swarren@wwwdotorg.org>
Acked-by: Tom Rini <trini@ti.com>
| -rw-r--r-- | MAINTAINERS | 4 | ||||
| -rw-r--r-- | board/raspberrypi/rpi_b/Makefile | 34 | ||||
| -rw-r--r-- | board/raspberrypi/rpi_b/rpi_b.c | 34 | ||||
| -rw-r--r-- | boards.cfg | 1 | ||||
| -rw-r--r-- | include/configs/rpi_b.h | 104 | 
5 files changed, 177 insertions, 0 deletions
| diff --git a/MAINTAINERS b/MAINTAINERS index 5db80e1f8..403b8d11d 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -952,6 +952,10 @@ Stephen Warren <swarren@nvidia.com>  	trimslice	Tegra2 (ARM7 & A9 Dual Core)  	whistler	Tegra2 (ARM7 & A9 Dual Core) +Stephen Warren <swarren@wwwdotorg.org> + +	rpi_b		BCM2835 (ARM1176) +  Thomas Weber <weber@corscience.de>  	devkit8000	ARM ARMV7 (OMAP3530 SoC) diff --git a/board/raspberrypi/rpi_b/Makefile b/board/raspberrypi/rpi_b/Makefile new file mode 100644 index 000000000..9d0c377c1 --- /dev/null +++ b/board/raspberrypi/rpi_b/Makefile @@ -0,0 +1,34 @@ +# +# 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 +# version 2 as published by the Free Software Foundation. +# +# 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. +# + +include $(TOPDIR)/config.mk + +LIB	= $(obj)lib$(BOARD).o + +COBJS	:= $(BOARD).o + +SRCS	:= $(COBJS:.o=.c) +OBJS	:= $(addprefix $(obj),$(COBJS)) + +$(LIB):	$(obj).depend $(OBJS) +	$(call cmd_link_o_target, $(OBJS)) + +######################################################################### + +# defines $(obj).depend target +include $(SRCTREE)/rules.mk + +sinclude $(obj).depend + +######################################################################### diff --git a/board/raspberrypi/rpi_b/rpi_b.c b/board/raspberrypi/rpi_b/rpi_b.c new file mode 100644 index 000000000..688b0aade --- /dev/null +++ b/board/raspberrypi/rpi_b/rpi_b.c @@ -0,0 +1,34 @@ +/* + * (C) Copyright 2012 Stephen Warren + * + * 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 + * version 2 as published by the Free Software Foundation. + * + * 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. + */ + +#include <common.h> +#include <asm/global_data.h> + +DECLARE_GLOBAL_DATA_PTR; + +int dram_init(void) +{ +	gd->ram_size = CONFIG_SYS_SDRAM_SIZE; + +	return 0; +} + +int board_init(void) +{ +	gd->bd->bi_boot_params = 0x100; + +	return 0; +} diff --git a/boards.cfg b/boards.cfg index a16c4878b..2c0c5964a 100644 --- a/boards.cfg +++ b/boards.cfg @@ -53,6 +53,7 @@ mx35pdk                      arm         arm1136     -                   freesca  apollon			     arm	 arm1136     apollon		 -	        omap24xx  omap2420h4                   arm         arm1136     -                   ti             omap24xx  tnetv107x_evm                arm         arm1176     tnetv107xevm        ti             tnetv107x +rpi_b                        arm         arm1176     rpi_b               raspberrypi    bcm2835  integratorap_cm720t          arm         arm720t     integrator          armltd         -           integratorap:CM720T  integratorap_cm920t          arm         arm920t     integrator          armltd         -           integratorap:CM920T  integratorcp_cm920t          arm         arm920t     integrator          armltd         -           integratorcp:CM920T diff --git a/include/configs/rpi_b.h b/include/configs/rpi_b.h new file mode 100644 index 000000000..cf62e45e8 --- /dev/null +++ b/include/configs/rpi_b.h @@ -0,0 +1,104 @@ +/* + * (C) Copyright 2012 Stephen Warren + * + * 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 + * version 2 as published by the Free Software Foundation. + * + * 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. + */ + +#ifndef __CONFIG_H +#define __CONFIG_H + +#include <asm/sizes.h> + +/* Architecture, CPU, etc.*/ +#define CONFIG_ARM1176 +#define CONFIG_BCM2835 +#define CONFIG_ARCH_CPU_INIT +/* + * 2835 is a SKU in a series for which the 2708 is the first or primary SoC, + * so 2708 has historically been used rather than a dedicated 2835 ID. + */ +#define CONFIG_MACH_TYPE		MACH_TYPE_BCM2708 + +/* Timer */ +#define CONFIG_SYS_HZ			1000000 + +/* Memory layout */ +#define CONFIG_NR_DRAM_BANKS		1 +#define CONFIG_SYS_SDRAM_BASE		0x00000000 +#define CONFIG_SYS_TEXT_BASE		0x00008000 +#define CONFIG_SYS_UBOOT_BASE		CONFIG_SYS_TEXT_BASE +/* + * The board really has 256M. However, the VC (VideoCore co-processor) shares + * the RAM, and uses a configurable portion at the top. We tell U-Boot that a + * smaller amount of RAM is present in order to avoid stomping on the area + * the VC uses. + */ +#define CONFIG_SYS_SDRAM_SIZE		SZ_128M +#define CONFIG_SYS_INIT_SP_ADDR		(CONFIG_SYS_SDRAM_BASE + \ +					 CONFIG_SYS_SDRAM_SIZE - \ +					 GENERATED_GBL_DATA_SIZE) +#define CONFIG_SYS_MALLOC_LEN		SZ_4M +#define CONFIG_SYS_MEMTEST_START	0x00100000 +#define CONFIG_SYS_MEMTEST_END		0x00200000 + +/* Flash */ +#define CONFIG_SYS_NO_FLASH + +/* Devices */ +/* GPIO */ +#define CONFIG_BCM2835_GPIO + +/* Console UART */ +#define CONFIG_PL011_SERIAL +#define CONFIG_PL011_CLOCK		3000000 +#define CONFIG_PL01x_PORTS		{ (void *)0x20201000 } +#define CONFIG_CONS_INDEX		0 +#define CONFIG_BAUDRATE			115200 + +/* Console configuration */ +#define CONFIG_SYS_CBSIZE		1024 +#define CONFIG_SYS_PBSIZE		(CONFIG_SYS_CBSIZE +		\ +					 sizeof(CONFIG_SYS_PROMPT) + 16) + +/* Environment */ +#define CONFIG_ENV_SIZE			SZ_16K +#define CONFIG_ENV_IS_NOWHERE +#define CONFIG_SYS_LOAD_ADDR		0x1000000 + +/* Shell */ +#define CONFIG_SYS_HUSH_PARSER +#define CONFIG_SYS_MAXARGS		8 +#define CONFIG_SYS_PROMPT		"U-Boot> " +#define CONFIG_SYS_LONGHELP +#define CONFIG_CMDLINE_EDITING +#define CONFIG_COMMAND_HISTORY +#define CONFIG_AUTO_COMPLETE + +/* Commands */ +#include <config_cmd_default.h> +#define CONFIG_CMD_BOOTZ +#define CONFIG_CMD_GPIO +/* Some things don't make sense on this HW or yet */ +#undef CONFIG_CMD_FPGA +#undef CONFIG_CMD_NET +#undef CONFIG_CMD_NFS +#undef CONFIG_CMD_SAVEENV + +/* Device tree support for bootm/bootz */ +#define CONFIG_OF_LIBFDT +/* ATAGs support for bootm/bootz */ +#define CONFIG_SETUP_MEMORY_TAGS +#define CONFIG_CMDLINE_TAG +#define CONFIG_INITRD_TAG + +#endif |