Commit 0d04f34a357d004364b58159b64aad354e65137e
Committed by
Albert ARIBAUD
1 parent
efad6cf881
Exists in
master
and in
54 other branches
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>
Showing 5 changed files with 177 additions and 0 deletions Side-by-side Diff
MAINTAINERS
... | ... | @@ -952,6 +952,10 @@ |
952 | 952 | trimslice Tegra2 (ARM7 & A9 Dual Core) |
953 | 953 | whistler Tegra2 (ARM7 & A9 Dual Core) |
954 | 954 | |
955 | +Stephen Warren <swarren@wwwdotorg.org> | |
956 | + | |
957 | + rpi_b BCM2835 (ARM1176) | |
958 | + | |
955 | 959 | Thomas Weber <weber@corscience.de> |
956 | 960 | |
957 | 961 | devkit8000 ARM ARMV7 (OMAP3530 SoC) |
board/raspberrypi/rpi_b/Makefile
1 | +# | |
2 | +# See file CREDITS for list of people who contributed to this | |
3 | +# project. | |
4 | +# | |
5 | +# This program is free software; you can redistribute it and/or | |
6 | +# modify it under the terms of the GNU General Public License | |
7 | +# version 2 as published by the Free Software Foundation. | |
8 | +# | |
9 | +# This program is distributed in the hope that it will be useful, but | |
10 | +# WITHOUT ANY WARRANTY; without even the implied warranty of | |
11 | +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
12 | +# GNU General Public License for more details. | |
13 | +# | |
14 | + | |
15 | +include $(TOPDIR)/config.mk | |
16 | + | |
17 | +LIB = $(obj)lib$(BOARD).o | |
18 | + | |
19 | +COBJS := $(BOARD).o | |
20 | + | |
21 | +SRCS := $(COBJS:.o=.c) | |
22 | +OBJS := $(addprefix $(obj),$(COBJS)) | |
23 | + | |
24 | +$(LIB): $(obj).depend $(OBJS) | |
25 | + $(call cmd_link_o_target, $(OBJS)) | |
26 | + | |
27 | +######################################################################### | |
28 | + | |
29 | +# defines $(obj).depend target | |
30 | +include $(SRCTREE)/rules.mk | |
31 | + | |
32 | +sinclude $(obj).depend | |
33 | + | |
34 | +######################################################################### |
board/raspberrypi/rpi_b/rpi_b.c
1 | +/* | |
2 | + * (C) Copyright 2012 Stephen Warren | |
3 | + * | |
4 | + * See file CREDITS for list of people who contributed to this | |
5 | + * project. | |
6 | + * | |
7 | + * This program is free software; you can redistribute it and/or | |
8 | + * modify it under the terms of the GNU General Public License | |
9 | + * version 2 as published by the Free Software Foundation. | |
10 | + * | |
11 | + * This program is distributed in the hope that it will be useful, but | |
12 | + * WITHOUT ANY WARRANTY; without even the implied warranty of | |
13 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
14 | + * GNU General Public License for more details. | |
15 | + */ | |
16 | + | |
17 | +#include <common.h> | |
18 | +#include <asm/global_data.h> | |
19 | + | |
20 | +DECLARE_GLOBAL_DATA_PTR; | |
21 | + | |
22 | +int dram_init(void) | |
23 | +{ | |
24 | + gd->ram_size = CONFIG_SYS_SDRAM_SIZE; | |
25 | + | |
26 | + return 0; | |
27 | +} | |
28 | + | |
29 | +int board_init(void) | |
30 | +{ | |
31 | + gd->bd->bi_boot_params = 0x100; | |
32 | + | |
33 | + return 0; | |
34 | +} |
boards.cfg
... | ... | @@ -53,6 +53,7 @@ |
53 | 53 | apollon arm arm1136 apollon - omap24xx |
54 | 54 | omap2420h4 arm arm1136 - ti omap24xx |
55 | 55 | tnetv107x_evm arm arm1176 tnetv107xevm ti tnetv107x |
56 | +rpi_b arm arm1176 rpi_b raspberrypi bcm2835 | |
56 | 57 | integratorap_cm720t arm arm720t integrator armltd - integratorap:CM720T |
57 | 58 | integratorap_cm920t arm arm920t integrator armltd - integratorap:CM920T |
58 | 59 | integratorcp_cm920t arm arm920t integrator armltd - integratorcp:CM920T |
include/configs/rpi_b.h
1 | +/* | |
2 | + * (C) Copyright 2012 Stephen Warren | |
3 | + * | |
4 | + * See file CREDITS for list of people who contributed to this | |
5 | + * project. | |
6 | + * | |
7 | + * This program is free software; you can redistribute it and/or | |
8 | + * modify it under the terms of the GNU General Public License | |
9 | + * version 2 as published by the Free Software Foundation. | |
10 | + * | |
11 | + * This program is distributed in the hope that it will be useful, but | |
12 | + * WITHOUT ANY WARRANTY; without even the implied warranty of | |
13 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
14 | + * GNU General Public License for more details. | |
15 | + */ | |
16 | + | |
17 | +#ifndef __CONFIG_H | |
18 | +#define __CONFIG_H | |
19 | + | |
20 | +#include <asm/sizes.h> | |
21 | + | |
22 | +/* Architecture, CPU, etc.*/ | |
23 | +#define CONFIG_ARM1176 | |
24 | +#define CONFIG_BCM2835 | |
25 | +#define CONFIG_ARCH_CPU_INIT | |
26 | +/* | |
27 | + * 2835 is a SKU in a series for which the 2708 is the first or primary SoC, | |
28 | + * so 2708 has historically been used rather than a dedicated 2835 ID. | |
29 | + */ | |
30 | +#define CONFIG_MACH_TYPE MACH_TYPE_BCM2708 | |
31 | + | |
32 | +/* Timer */ | |
33 | +#define CONFIG_SYS_HZ 1000000 | |
34 | + | |
35 | +/* Memory layout */ | |
36 | +#define CONFIG_NR_DRAM_BANKS 1 | |
37 | +#define CONFIG_SYS_SDRAM_BASE 0x00000000 | |
38 | +#define CONFIG_SYS_TEXT_BASE 0x00008000 | |
39 | +#define CONFIG_SYS_UBOOT_BASE CONFIG_SYS_TEXT_BASE | |
40 | +/* | |
41 | + * The board really has 256M. However, the VC (VideoCore co-processor) shares | |
42 | + * the RAM, and uses a configurable portion at the top. We tell U-Boot that a | |
43 | + * smaller amount of RAM is present in order to avoid stomping on the area | |
44 | + * the VC uses. | |
45 | + */ | |
46 | +#define CONFIG_SYS_SDRAM_SIZE SZ_128M | |
47 | +#define CONFIG_SYS_INIT_SP_ADDR (CONFIG_SYS_SDRAM_BASE + \ | |
48 | + CONFIG_SYS_SDRAM_SIZE - \ | |
49 | + GENERATED_GBL_DATA_SIZE) | |
50 | +#define CONFIG_SYS_MALLOC_LEN SZ_4M | |
51 | +#define CONFIG_SYS_MEMTEST_START 0x00100000 | |
52 | +#define CONFIG_SYS_MEMTEST_END 0x00200000 | |
53 | + | |
54 | +/* Flash */ | |
55 | +#define CONFIG_SYS_NO_FLASH | |
56 | + | |
57 | +/* Devices */ | |
58 | +/* GPIO */ | |
59 | +#define CONFIG_BCM2835_GPIO | |
60 | + | |
61 | +/* Console UART */ | |
62 | +#define CONFIG_PL011_SERIAL | |
63 | +#define CONFIG_PL011_CLOCK 3000000 | |
64 | +#define CONFIG_PL01x_PORTS { (void *)0x20201000 } | |
65 | +#define CONFIG_CONS_INDEX 0 | |
66 | +#define CONFIG_BAUDRATE 115200 | |
67 | + | |
68 | +/* Console configuration */ | |
69 | +#define CONFIG_SYS_CBSIZE 1024 | |
70 | +#define CONFIG_SYS_PBSIZE (CONFIG_SYS_CBSIZE + \ | |
71 | + sizeof(CONFIG_SYS_PROMPT) + 16) | |
72 | + | |
73 | +/* Environment */ | |
74 | +#define CONFIG_ENV_SIZE SZ_16K | |
75 | +#define CONFIG_ENV_IS_NOWHERE | |
76 | +#define CONFIG_SYS_LOAD_ADDR 0x1000000 | |
77 | + | |
78 | +/* Shell */ | |
79 | +#define CONFIG_SYS_HUSH_PARSER | |
80 | +#define CONFIG_SYS_MAXARGS 8 | |
81 | +#define CONFIG_SYS_PROMPT "U-Boot> " | |
82 | +#define CONFIG_SYS_LONGHELP | |
83 | +#define CONFIG_CMDLINE_EDITING | |
84 | +#define CONFIG_COMMAND_HISTORY | |
85 | +#define CONFIG_AUTO_COMPLETE | |
86 | + | |
87 | +/* Commands */ | |
88 | +#include <config_cmd_default.h> | |
89 | +#define CONFIG_CMD_BOOTZ | |
90 | +#define CONFIG_CMD_GPIO | |
91 | +/* Some things don't make sense on this HW or yet */ | |
92 | +#undef CONFIG_CMD_FPGA | |
93 | +#undef CONFIG_CMD_NET | |
94 | +#undef CONFIG_CMD_NFS | |
95 | +#undef CONFIG_CMD_SAVEENV | |
96 | + | |
97 | +/* Device tree support for bootm/bootz */ | |
98 | +#define CONFIG_OF_LIBFDT | |
99 | +/* ATAGs support for bootm/bootz */ | |
100 | +#define CONFIG_SETUP_MEMORY_TAGS | |
101 | +#define CONFIG_CMDLINE_TAG | |
102 | +#define CONFIG_INITRD_TAG | |
103 | + | |
104 | +#endif |