Commit c57cca255ce403fdfe77e7b040b578a29514da0b

Authored by Steve Sakoman
Committed by Sandeep Paulraj
1 parent 3e76d62a66

ARMV7: Add support for TI OMAP4 Panda

OMAP4 Panda is a reference board based on OMAP4430, an ARMV7 Cortex A9 CPU

This patch adds basic support for booting the board. It includes i2c and mmc
support. It assumes U-boot is loaded to SDRAM with the help of another small
bootloader (x-load) running from SRAM. U-boot currently relies on x-load for
clock, mux, and SDRAM initialization

Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Sandeep Paulraj <s-paulraj@ti.com>

Showing 7 changed files with 365 additions and 0 deletions Side-by-side Diff

... ... @@ -751,6 +751,7 @@
751 751 Steve Sakoman <sakoman@gmail.com>
752 752  
753 753 omap3_overo ARM ARMV7 (OMAP3xx SoC)
  754 + omap4_panda ARM ARMV7 (OMAP4xx SoC)
754 755 omap4_sdp4430 ARM ARMV7 (OMAP4xx SoC)
755 756  
756 757 Jens Scharsig <esw@bus-elektronik.de>
... ... @@ -657,6 +657,7 @@
657 657 omap3_sdp3430 \
658 658 omap3_zoom1 \
659 659 omap3_zoom2 \
  660 + omap4_panda \
660 661 omap4_sdp4430 \
661 662 s5p_goni \
662 663 smdkc100 \
board/ti/panda/Makefile
  1 +#
  2 +# (C) Copyright 2000, 2001, 2002
  3 +# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
  4 +#
  5 +# See file CREDITS for list of people who contributed to this
  6 +# project.
  7 +#
  8 +# This program is free software; you can redistribute it and/or
  9 +# modify it under the terms of the GNU General Public License as
  10 +# published by the Free Software Foundation; either version 2 of
  11 +# the License, or (at your option) any later version.
  12 +#
  13 +# This program is distributed in the hope that it will be useful,
  14 +# but WITHOUT ANY WARRANTY; without even the implied warranty of
  15 +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  16 +# GNU General Public License for more details.
  17 +#
  18 +# You should have received a copy of the GNU General Public License
  19 +# along with this program; if not, write to the Free Software
  20 +# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
  21 +# MA 02111-1307 USA
  22 +#
  23 +
  24 +include $(TOPDIR)/config.mk
  25 +
  26 +LIB = $(obj)lib$(BOARD).a
  27 +
  28 +COBJS := panda.o
  29 +
  30 +SRCS := $(COBJS:.o=.c)
  31 +OBJS := $(addprefix $(obj),$(COBJS))
  32 +
  33 +$(LIB): $(obj).depend $(OBJS)
  34 + $(AR) $(ARFLAGS) $@ $(OBJS)
  35 +
  36 +clean:
  37 + rm -f $(OBJS)
  38 +
  39 +distclean: clean
  40 + rm -f $(LIB) core *.bak $(obj).depend
  41 +
  42 +#########################################################################
  43 +
  44 +# defines $(obj).depend target
  45 +include $(SRCTREE)/rules.mk
  46 +
  47 +sinclude $(obj).depend
  48 +
  49 +#########################################################################
board/ti/panda/config.mk
  1 +#
  2 +# (C) Copyright 2006-2009
  3 +# Texas Instruments Incorporated, <www.ti.com>
  4 +#
  5 +# OMAP 4430 SDP
  6 +# see http://www.ti.com/ for more information on Texas Instruments
  7 +#
  8 +# See file CREDITS for list of people who contributed to this
  9 +# project.
  10 +#
  11 +# This program is free software; you can redistribute it and/or
  12 +# modify it under the terms of the GNU General Public License as
  13 +# published by the Free Software Foundation; either version 2 of
  14 +# the License, or (at your option) any later version.
  15 +#
  16 +# This program is distributed in the hope that it will be useful,
  17 +# but WITHOUT ANY WARRANTY; without even the implied warranty of
  18 +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  19 +# GNU General Public License for more details.
  20 +#
  21 +# You should have received a copy of the GNU General Public License
  22 +# along with this program; if not, write to the Free Software
  23 +# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
  24 +# MA 02111-1307 USA
  25 +#
  26 +# SDRAM Address Space:
  27 +# 8000'0000 - 9fff'ffff (512 MB)
  28 +# Linux-Kernel is expected to be at 8000'8000, entry 8000'8000
  29 +# (mem base + reserved)
  30 +
  31 +# Let's place u-boot 1MB before the end of SDRAM.
  32 +TEXT_BASE = 0x9ff00000
board/ti/panda/panda.c
  1 +/*
  2 + * (C) Copyright 2010
  3 + * Texas Instruments Incorporated, <www.ti.com>
  4 + * Steve Sakoman <steve@sakoman.com>
  5 + *
  6 + * See file CREDITS for list of people who contributed to this
  7 + * project.
  8 + *
  9 + * This program is free software; you can redistribute it and/or
  10 + * modify it under the terms of the GNU General Public License as
  11 + * published by the Free Software Foundation; either version 2 of
  12 + * the License, or (at your option) any later version.
  13 + *
  14 + * This program is distributed in the hope that it will be useful,
  15 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
  16 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  17 + * GNU General Public License for more details.
  18 + *
  19 + * You should have received a copy of the GNU General Public License
  20 + * along with this program; if not, write to the Free Software
  21 + * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
  22 + * MA 02111-1307 USA
  23 + */
  24 +#include <common.h>
  25 +#include <asm/arch/sys_proto.h>
  26 +
  27 +DECLARE_GLOBAL_DATA_PTR;
  28 +
  29 +const struct omap_sysinfo sysinfo = {
  30 + "Board: OMAP4 Panda\n"
  31 +};
  32 +
  33 +/**
  34 + * @brief board_init
  35 + *
  36 + * @return 0
  37 + */
  38 +int board_init(void)
  39 +{
  40 + gd->bd->bi_arch_number = MACH_TYPE_OMAP4_PANDA;
  41 + gd->bd->bi_boot_params = (0x80000000 + 0x100); /* boot param addr */
  42 +
  43 + return 0;
  44 +}
  45 +
  46 +int board_eth_init(bd_t *bis)
  47 +{
  48 + return 0;
  49 +}
  50 +
  51 +/**
  52 + * @brief misc_init_r - Configure Panda board specific configurations
  53 + * such as power configurations, ethernet initialization as phase2 of
  54 + * boot sequence
  55 + *
  56 + * @return 0
  57 + */
  58 +int misc_init_r(void)
  59 +{
  60 + return 0;
  61 +}
... ... @@ -262,6 +262,7 @@
262 262 omap3_beagle arm armv7 beagle ti omap3
263 263 omap3_evm arm armv7 evm ti omap3
264 264 omap3_sdp3430 arm armv7 sdp3430 ti omap3
  265 +omap4_panda arm armv7 panda ti omap4
265 266 omap4_sdp4430 arm armv7 sdp4430 ti omap4
266 267 am3517_evm arm armv7 am3517evm logicpd omap3
267 268 devkit8000 arm armv7 devkit8000 timll omap3
include/configs/omap4_panda.h
  1 +/*
  2 + * (C) Copyright 2010
  3 + * Texas Instruments Incorporated.
  4 + * Steve Sakoman <steve@sakoman.com>
  5 + *
  6 + * Configuration settings for the TI OMAP4 Panda board.
  7 + *
  8 + * See file CREDITS for list of people who contributed to this
  9 + * project.
  10 + *
  11 + * This program is free software; you can redistribute it and/or
  12 + * modify it under the terms of the GNU General Public License as
  13 + * published by the Free Software Foundation; either version 2 of
  14 + * the License, or (at your option) any later version.
  15 + *
  16 + * This program is distributed in the hope that it will be useful,
  17 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
  18 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  19 + * GNU General Public License for more details.
  20 + *
  21 + * You should have received a copy of the GNU General Public License
  22 + * along with this program; if not, write to the Free Software
  23 + * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
  24 + * MA 02111-1307 USA
  25 + */
  26 +
  27 +#ifndef __CONFIG_H
  28 +#define __CONFIG_H
  29 +
  30 +/*
  31 + * High Level Configuration Options
  32 + */
  33 +#define CONFIG_ARMV7 1 /* This is an ARM V7 CPU core */
  34 +#define CONFIG_OMAP 1 /* in a TI OMAP core */
  35 +#define CONFIG_OMAP44XX 1 /* which is a 44XX */
  36 +#define CONFIG_OMAP4430 1 /* which is in a 4430 */
  37 +#define CONFIG_PANDA 1 /* working with Panda */
  38 +
  39 +/* Get CPU defs */
  40 +#include <asm/arch/cpu.h>
  41 +#include <asm/arch/omap4.h>
  42 +
  43 +/* Display CPU and Board Info */
  44 +#define CONFIG_DISPLAY_CPUINFO 1
  45 +#define CONFIG_DISPLAY_BOARDINFO 1
  46 +
  47 +/* Keep L2 Cache Disabled */
  48 +#define CONFIG_L2_OFF 1
  49 +
  50 +/* Clock Defines */
  51 +#define V_OSCK 38400000 /* Clock output from T2 */
  52 +#define V_SCLK V_OSCK
  53 +
  54 +#undef CONFIG_USE_IRQ /* no support for IRQs */
  55 +#define CONFIG_MISC_INIT_R
  56 +
  57 +#define CONFIG_CMDLINE_TAG 1 /* enable passing of ATAGs */
  58 +#define CONFIG_SETUP_MEMORY_TAGS 1
  59 +#define CONFIG_INITRD_TAG 1
  60 +#define CONFIG_REVISION_TAG 1
  61 +
  62 +/*
  63 + * Size of malloc() pool
  64 + * Total Size Environment - 256k
  65 + * Malloc - add 256k
  66 + */
  67 +#define CONFIG_ENV_SIZE (256 << 10)
  68 +#define CONFIG_SYS_MALLOC_LEN (CONFIG_ENV_SIZE + (256 << 10))
  69 +#define CONFIG_SYS_GBL_DATA_SIZE 128 /* bytes reserved for */
  70 + /* initial data */
  71 +/* Vector Base */
  72 +#define CONFIG_SYS_CA9_VECTOR_BASE SRAM_ROM_VECT_BASE
  73 +
  74 +/*
  75 + * Hardware drivers
  76 + */
  77 +
  78 +/*
  79 + * serial port - NS16550 compatible
  80 + */
  81 +#define V_NS16550_CLK 48000000
  82 +
  83 +#define CONFIG_SYS_NS16550
  84 +#define CONFIG_SYS_NS16550_SERIAL
  85 +#define CONFIG_SYS_NS16550_REG_SIZE (-4)
  86 +#define CONFIG_SYS_NS16550_CLK V_NS16550_CLK
  87 +#define CONFIG_CONS_INDEX 3
  88 +#define CONFIG_SYS_NS16550_COM3 UART3_BASE
  89 +
  90 +#define CONFIG_ENV_IS_NOWHERE
  91 +#define CONFIG_ENV_OVERWRITE
  92 +#define CONFIG_BAUDRATE 115200
  93 +#define CONFIG_SYS_BAUDRATE_TABLE {4800, 9600, 19200, 38400, 57600,\
  94 + 115200}
  95 +
  96 +/* I2C */
  97 +#define CONFIG_HARD_I2C 1
  98 +#define CONFIG_SYS_I2C_SPEED 100000
  99 +#define CONFIG_SYS_I2C_SLAVE 1
  100 +#define CONFIG_SYS_I2C_BUS 0
  101 +#define CONFIG_SYS_I2C_BUS_SELECT 1
  102 +#define CONFIG_DRIVER_OMAP34XX_I2C 1
  103 +#define CONFIG_I2C_MULTI_BUS 1
  104 +
  105 +/* MMC */
  106 +#define CONFIG_MMC 1
  107 +#define CONFIG_OMAP3_MMC 1
  108 +#define CONFIG_SYS_MMC_SET_DEV 1
  109 +#define CONFIG_DOS_PARTITION 1
  110 +
  111 +/* Flash */
  112 +#define CONFIG_SYS_NO_FLASH 1
  113 +
  114 +/* commands to include */
  115 +#include <config_cmd_default.h>
  116 +
  117 +/* Enabled commands */
  118 +#define CONFIG_CMD_EXT2 /* EXT2 Support */
  119 +#define CONFIG_CMD_FAT /* FAT support */
  120 +#define CONFIG_CMD_I2C /* I2C serial bus support */
  121 +#define CONFIG_CMD_MMC /* MMC support */
  122 +
  123 +/* Disabled commands */
  124 +#undef CONFIG_CMD_NET
  125 +#undef CONFIG_CMD_FPGA /* FPGA configuration Support */
  126 +#undef CONFIG_CMD_IMLS /* List all found images */
  127 +
  128 +/*
  129 + * Enabling relocation of u-boot by default
  130 + * Relocation can be skipped if u-boot is copied to the TEXT_BASE
  131 + */
  132 +#undef CONFIG_SKIP_RELOCATE_UBOOT
  133 +
  134 +/*
  135 + * Environment setup
  136 + */
  137 +
  138 +/* allow overwriting serial config and ethaddr */
  139 +#define CONFIG_ENV_OVERWRITE
  140 +
  141 +#define CONFIG_EXTRA_ENV_SETTINGS \
  142 + "loadaddr=0x82000000\0" \
  143 + "console=ttyS2,115200n8\0" \
  144 + "mmcdev=1\0" \
  145 + "mmcroot=/dev/mmcblk0p2 rw\0" \
  146 + "mmcrootfstype=ext3 rootwait\0" \
  147 + "mmcargs=setenv bootargs console=${console} " \
  148 + "root=${mmcroot} " \
  149 + "rootfstype=${mmcrootfstype}\0" \
  150 + "loadbootscript=fatload mmc ${mmcdev} ${loadaddr} boot.scr\0" \
  151 + "bootscript=echo Running bootscript from mmc${mmcdev} ...; " \
  152 + "source ${loadaddr}\0" \
  153 + "loaduimage=fatload mmc ${mmcdev} ${loadaddr} uImage\0" \
  154 + "mmcboot=echo Booting from mmc${mmcdev} ...; " \
  155 + "run mmcargs; " \
  156 + "bootm ${loadaddr}\0" \
  157 +
  158 +#define CONFIG_BOOTCOMMAND \
  159 + "if mmc init ${mmcdev}; then " \
  160 + "if run loadbootscript; then " \
  161 + "run bootscript; " \
  162 + "else " \
  163 + "if run loaduimage; then " \
  164 + "run mmcboot; " \
  165 + "else run nandboot; " \
  166 + "fi; " \
  167 + "fi; " \
  168 + "fi"
  169 +
  170 +#define CONFIG_AUTO_COMPLETE 1
  171 +
  172 +/*
  173 + * Miscellaneous configurable options
  174 + */
  175 +
  176 +#define CONFIG_SYS_LONGHELP /* undef to save memory */
  177 +#define CONFIG_SYS_HUSH_PARSER /* use "hush" command parser */
  178 +#define CONFIG_SYS_PROMPT_HUSH_PS2 "> "
  179 +#define CONFIG_SYS_PROMPT "Panda # "
  180 +#define CONFIG_SYS_CBSIZE 256
  181 +/* Print Buffer Size */
  182 +#define CONFIG_SYS_PBSIZE (CONFIG_SYS_CBSIZE + \
  183 + sizeof(CONFIG_SYS_PROMPT) + 16)
  184 +#define CONFIG_SYS_MAXARGS 16
  185 +/* Boot Argument Buffer Size */
  186 +#define CONFIG_SYS_BARGSIZE (CONFIG_SYS_CBSIZE)
  187 +
  188 +/*
  189 + * memtest setup
  190 + */
  191 +#define CONFIG_SYS_MEMTEST_START 0x80000000
  192 +#define CONFIG_SYS_MEMTEST_END (CONFIG_SYS_MEMTEST_START + (32 << 20))
  193 +
  194 +/* Default load address */
  195 +#define CONFIG_SYS_LOAD_ADDR 0x80000000
  196 +
  197 +/* Use General purpose timer 1 */
  198 +#define CONFIG_SYS_TIMERBASE GPT1_BASE
  199 +#define CONFIG_SYS_PTV 2 /* Divisor: 2^(PTV+1) => 8 */
  200 +#define CONFIG_SYS_HZ 1000
  201 +
  202 +/*
  203 + * Stack sizes
  204 + *
  205 + * The stack sizes are set up in start.S using the settings below
  206 + */
  207 +#define CONFIG_STACKSIZE (128 << 10) /* Regular stack */
  208 +#ifdef CONFIG_USE_IRQ
  209 +#define CONFIG_STACKSIZE_IRQ (4 << 10) /* IRQ stack */
  210 +#define CONFIG_STACKSIZE_FIQ (4 << 10) /* FIQ stack */
  211 +#endif
  212 +
  213 +/*
  214 + * SDRAM Memory Map
  215 + * Even though we use two CS all the memory
  216 + * is mapped to one contiguous block
  217 + */
  218 +#define CONFIG_NR_DRAM_BANKS 1
  219 +
  220 +#endif /* __CONFIG_H */