The CM-BF537U is similar to the CM-BF537E module, but enough to need its own board port. Signed-off-by: Harald Krapfenbauer <Harald.Krapfenbauer@bluetechnix.at> Signed-off-by: Mike Frysinger <vapier@gentoo.org>master
parent
c4db335c2e
commit
4640c2b869
@ -0,0 +1,54 @@ |
||||
#
|
||||
# U-boot - Makefile
|
||||
#
|
||||
# Copyright (c) 2005-2008 Analog Device Inc.
|
||||
#
|
||||
# (C) Copyright 2000-2006
|
||||
# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
|
||||
#
|
||||
# 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 $(TOPDIR)/config.mk |
||||
|
||||
LIB = $(obj)lib$(BOARD).a
|
||||
|
||||
COBJS-y := $(BOARD).o flash.o gpio_cfi_flash.o
|
||||
|
||||
SRCS := $(SOBJS-y:.o=.S) $(COBJS-y:.o=.c)
|
||||
OBJS := $(addprefix $(obj),$(COBJS-y))
|
||||
SOBJS := $(addprefix $(obj),$(SOBJS-y))
|
||||
|
||||
$(LIB): $(obj).depend $(OBJS) $(SOBJS) |
||||
$(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
|
||||
|
||||
clean: |
||||
rm -f $(SOBJS) $(OBJS)
|
||||
|
||||
distclean: clean |
||||
rm -f $(LIB) core *.bak $(obj).depend
|
||||
|
||||
#########################################################################
|
||||
|
||||
# defines $(obj).depend target
|
||||
include $(SRCTREE)/rules.mk |
||||
|
||||
sinclude $(obj).depend |
||||
|
||||
#########################################################################
|
@ -0,0 +1,66 @@ |
||||
/*
|
||||
* U-boot - main board file |
||||
* |
||||
* Copyright (c) 2005-2009 Analog Devices Inc. |
||||
* |
||||
* Licensed under the GPL-2 or later. |
||||
*/ |
||||
|
||||
#include <common.h> |
||||
#include <config.h> |
||||
#include <command.h> |
||||
#include <net.h> |
||||
#include <netdev.h> |
||||
#include <asm/blackfin.h> |
||||
#include <asm/net.h> |
||||
#include "gpio_cfi_flash.h" |
||||
|
||||
DECLARE_GLOBAL_DATA_PTR; |
||||
|
||||
int checkboard(void) |
||||
{ |
||||
printf("Board: Bluetechnix CM-BF537U board\n"); |
||||
printf(" Support: http://www.bluetechnix.at/\n"); |
||||
return 0; |
||||
} |
||||
|
||||
phys_size_t initdram(int board_type) |
||||
{ |
||||
gd->bd->bi_memstart = CONFIG_SYS_SDRAM_BASE; |
||||
gd->bd->bi_memsize = CONFIG_SYS_MAX_RAM_SIZE; |
||||
return gd->bd->bi_memsize; |
||||
} |
||||
|
||||
#ifdef CONFIG_BFIN_MAC |
||||
static void board_init_enetaddr(uchar *mac_addr) |
||||
{ |
||||
puts("Warning: Generating 'random' MAC address\n"); |
||||
bfin_gen_rand_mac(mac_addr); |
||||
eth_setenv_enetaddr("ethaddr", mac_addr); |
||||
} |
||||
|
||||
int board_eth_init(bd_t *bis) |
||||
{ |
||||
return bfin_EMAC_initialize(bis); |
||||
} |
||||
#endif |
||||
|
||||
#ifdef CONFIG_SMC911X |
||||
int board_eth_init(bd_t *bis) |
||||
{ |
||||
return smc911x_initialize(0, CONFIG_SMC911X_BASE); |
||||
} |
||||
#endif |
||||
|
||||
int misc_init_r(void) |
||||
{ |
||||
#ifdef CONFIG_BFIN_MAC |
||||
uchar enetaddr[6]; |
||||
if (!eth_getenv_enetaddr("ethaddr", enetaddr)) |
||||
board_init_enetaddr(enetaddr); |
||||
#endif |
||||
|
||||
gpio_cfi_flash_init(); |
||||
|
||||
return 0; |
||||
} |
@ -0,0 +1,34 @@ |
||||
#
|
||||
# Copyright (c) 2005-2008 Analog Device Inc.
|
||||
#
|
||||
# (C) Copyright 2001
|
||||
# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
|
||||
#
|
||||
# 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
|
||||
#
|
||||
|
||||
# This is not actually used for Blackfin boards so do not change it
|
||||
#TEXT_BASE = do-not-use-me
|
||||
|
||||
CFLAGS_lib_generic += -O2
|
||||
CFLAGS_lzma += -O2
|
||||
|
||||
# Set some default LDR flags based on boot mode.
|
||||
LDR_FLAGS-BFIN_BOOT_PARA := --bits 16 --dma 8
|
||||
LDR_FLAGS += $(LDR_FLAGS-$(CONFIG_BFIN_BOOT_MODE))
|
@ -0,0 +1,34 @@ |
||||
/*
|
||||
* flash.c - helper commands for working with GPIO-assisted flash |
||||
* |
||||
* Copyright (c) 2005-2009 Analog Devices Inc. |
||||
* |
||||
* Licensed under the GPL-2 or later. |
||||
*/ |
||||
|
||||
#include <common.h> |
||||
#include <command.h> |
||||
#include <asm/blackfin.h> |
||||
#include "gpio_cfi_flash.h" |
||||
|
||||
int do_ph(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) |
||||
{ |
||||
ulong faddr = CONFIG_SYS_FLASH_BASE; |
||||
ushort data; |
||||
ulong dflg; |
||||
|
||||
if (argc > 1) { |
||||
dflg = simple_strtoul(argv[1], NULL, 16); |
||||
faddr |= (dflg << 21); |
||||
gpio_cfi_flash_swizzle((void *)faddr); |
||||
} else { |
||||
data = bfin_read_PORTHIO(); |
||||
printf("Port H data %04x (PH0:%i)\n", data, !!(data & PH0)); |
||||
} |
||||
|
||||
return 0; |
||||
} |
||||
|
||||
U_BOOT_CMD(ph, 3, 0, do_ph, |
||||
"set/clear PH0 GPIO flash bank switch\n", |
||||
"<ph0> - set PH0 GPIO pin state\n"); |
@ -0,0 +1,60 @@ |
||||
/*
|
||||
* gpio_cfi_flash.c - GPIO-assisted Flash Chip Support |
||||
* |
||||
* Copyright (c) 2009 Analog Devices Inc. |
||||
* |
||||
* Licensed under the GPL-2 or later. |
||||
*/ |
||||
|
||||
#include <common.h> |
||||
#include <asm/blackfin.h> |
||||
#include <asm/io.h> |
||||
#include "gpio_cfi_flash.h" |
||||
|
||||
#define GPIO_PIN_1 PH0 |
||||
#define GPIO_MASK_1 (1 << 21) |
||||
#define GPIO_MASK (GPIO_MASK_1) |
||||
|
||||
void *gpio_cfi_flash_swizzle(void *vaddr) |
||||
{ |
||||
unsigned long addr = (unsigned long)vaddr; |
||||
|
||||
if (addr & GPIO_MASK_1) |
||||
bfin_write_PORTHIO_SET(GPIO_PIN_1); |
||||
else |
||||
bfin_write_PORTHIO_CLEAR(GPIO_PIN_1); |
||||
|
||||
#ifdef GPIO_MASK_2 |
||||
if (addr & GPIO_MASK_2) |
||||
bfin_write_PORTGIO_SET(GPIO_PIN_2); |
||||
else |
||||
bfin_write_PORTGIO_CLEAR(GPIO_PIN_2); |
||||
#endif |
||||
|
||||
SSYNC(); |
||||
|
||||
return (void *)(addr & ~GPIO_MASK); |
||||
} |
||||
|
||||
#define __raw_writeq(value, addr) *(volatile u64 *)addr = value |
||||
#define __raw_readq(addr) *(volatile u64 *)addr |
||||
|
||||
#define MAKE_FLASH(size, sfx) \ |
||||
void flash_write##size(u##size value, void *addr) \
|
||||
{ \
|
||||
__raw_write##sfx(value, gpio_cfi_flash_swizzle(addr)); \
|
||||
} \
|
||||
u##size flash_read##size(void *addr) \
|
||||
{ \
|
||||
return __raw_read##sfx(gpio_cfi_flash_swizzle(addr)); \
|
||||
} |
||||
MAKE_FLASH(8, b) /* flash_write8() flash_read8() */ |
||||
MAKE_FLASH(16, w) /* flash_write16() flash_read16() */ |
||||
MAKE_FLASH(32, l) /* flash_write32() flash_read32() */ |
||||
MAKE_FLASH(64, q) /* flash_write64() flash_read64() */ |
||||
|
||||
void gpio_cfi_flash_init(void) |
||||
{ |
||||
bfin_write_PORTHIO_DIR(bfin_read_PORTHIO_DIR() | GPIO_PIN_1); |
||||
gpio_cfi_flash_swizzle((void *)CONFIG_SYS_FLASH_BASE); |
||||
} |
@ -0,0 +1,10 @@ |
||||
/*
|
||||
* gpio_cfi_flash.c - GPIO-assisted Flash Chip Support |
||||
* |
||||
* Copyright (c) 2009 Analog Devices Inc. |
||||
* |
||||
* Licensed under the GPL-2 or later. |
||||
*/ |
||||
|
||||
void *gpio_cfi_flash_swizzle(void *vaddr); |
||||
void gpio_cfi_flash_init(void); |
@ -0,0 +1,150 @@ |
||||
/*
|
||||
* U-boot - Configuration file for CM-BF537U board |
||||
*/ |
||||
|
||||
#ifndef __CONFIG_CM_BF537U_H__ |
||||
#define __CONFIG_CM_BF537U_H__ |
||||
|
||||
#include <asm/config-pre.h> |
||||
|
||||
|
||||
/*
|
||||
* Processor Settings |
||||
*/ |
||||
#define CONFIG_BFIN_CPU bf537-0.2 |
||||
#define CONFIG_BFIN_BOOT_MODE BFIN_BOOT_BYPASS |
||||
|
||||
|
||||
/*
|
||||
* Clock Settings |
||||
* CCLK = (CLKIN * VCO_MULT) / CCLK_DIV |
||||
* SCLK = (CLKIN * VCO_MULT) / SCLK_DIV |
||||
*/ |
||||
/* CONFIG_CLKIN_HZ is any value in Hz */ |
||||
#define CONFIG_CLKIN_HZ 30000000 |
||||
/* CLKIN_HALF controls the DF bit in PLL_CTL 0 = CLKIN */ |
||||
/* 1 = CLKIN / 2 */ |
||||
#define CONFIG_CLKIN_HALF 0 |
||||
/* PLL_BYPASS controls the BYPASS bit in PLL_CTL 0 = do not bypass */ |
||||
/* 1 = bypass PLL */ |
||||
#define CONFIG_PLL_BYPASS 0 |
||||
/* VCO_MULT controls the MSEL (multiplier) bits in PLL_CTL */ |
||||
/* Values can range from 0-63 (where 0 means 64) */ |
||||
#define CONFIG_VCO_MULT 18 |
||||
/* CCLK_DIV controls the core clock divider */ |
||||
/* Values can be 1, 2, 4, or 8 ONLY */ |
||||
#define CONFIG_CCLK_DIV 1 |
||||
/* SCLK_DIV controls the system clock divider */ |
||||
/* Values can range from 1-15 */ |
||||
#define CONFIG_SCLK_DIV 5 |
||||
/* Core voltage */ |
||||
#define CONFIG_VR_CTL_VAL (VLEV_110 | GAIN_20 | FREQ_1000) |
||||
|
||||
|
||||
/*
|
||||
* Memory Settings |
||||
*/ |
||||
#define CONFIG_MEM_ADD_WDTH 9 |
||||
#define CONFIG_MEM_SIZE 32 |
||||
|
||||
#define CONFIG_EBIU_SDRRC_VAL 0x3f8 |
||||
#define CONFIG_EBIU_SDGCTL_VAL 0x9111cd |
||||
|
||||
#define CONFIG_EBIU_AMGCTL_VAL (AMBEN_ALL) |
||||
#define CONFIG_EBIU_AMBCTL0_VAL (B1WAT_7 | B1RAT_11 | B1HT_2 | B1ST_3 | B0WAT_7 | B0RAT_11 | B0HT_2 | B0ST_3) |
||||
#define CONFIG_EBIU_AMBCTL1_VAL (B3WAT_7 | B3RAT_11 | B3HT_2 | B3ST_3 | B2WAT_7 | B2RAT_11 | B2HT_2 | B2ST_3) |
||||
|
||||
#define CONFIG_SYS_MONITOR_LEN (256 * 1024) |
||||
#define CONFIG_SYS_MALLOC_LEN (128 * 1024) |
||||
|
||||
|
||||
/*
|
||||
* Network Settings |
||||
*/ |
||||
#ifndef __ADSPBF534__ |
||||
#define ADI_CMDS_NETWORK 1 |
||||
#define CONFIG_NET_MULTI |
||||
/* The next 3 lines are for use with SMSC on EXT-BF5xx-USB-ETH2 */ |
||||
#define CONFIG_SMC911X 1 |
||||
#define CONFIG_SMC911X_BASE 0x24000000 |
||||
#define CONFIG_SMC911X_16_BIT |
||||
#endif |
||||
#define CONFIG_HOSTNAME cm-bf537u |
||||
/* Uncomment next line to use fixed MAC address */ |
||||
/* #define CONFIG_ETHADDR 02:80:ad:20:31:e8 */ |
||||
|
||||
|
||||
/*
|
||||
* Flash Settings |
||||
*/ |
||||
#define CONFIG_FLASH_CFI_DRIVER |
||||
#define CONFIG_CFI_FLASH_USE_WEAK_ACCESSORS |
||||
#define CONFIG_SYS_FLASH_BASE 0x20000000 |
||||
#define CONFIG_SYS_FLASH_CFI |
||||
#define CONFIG_SYS_FLASH_PROTECTION |
||||
#define CONFIG_SYS_MAX_FLASH_BANKS 1 |
||||
#define CONFIG_SYS_MAX_FLASH_SECT 35 |
||||
|
||||
|
||||
/*
|
||||
* Env Storage Settings |
||||
*/ |
||||
#define CONFIG_ENV_IS_IN_FLASH 1 |
||||
#define CONFIG_ENV_OFFSET 0x4000 |
||||
#define CONFIG_ENV_SIZE 0x2000 |
||||
#define CONFIG_ENV_SECT_SIZE 0x20000 |
||||
#if (CONFIG_BFIN_BOOT_MODE == BFIN_BOOT_BYPASS) |
||||
#define ENV_IS_EMBEDDED |
||||
#else |
||||
#define ENV_IS_EMBEDDED_CUSTOM |
||||
#endif |
||||
#ifdef ENV_IS_EMBEDDED |
||||
/* WARNING - the following is hand-optimized to fit within
|
||||
* the sector before the environment sector. If it throws |
||||
* an error during compilation remove an object here to get |
||||
* it linked after the configuration sector. |
||||
*/ |
||||
# define LDS_BOARD_TEXT \ |
||||
cpu/blackfin/traps.o (.text .text.*); \
|
||||
cpu/blackfin/interrupt.o (.text .text.*); \
|
||||
cpu/blackfin/serial.o (.text .text.*); \
|
||||
common/dlmalloc.o (.text .text.*); \
|
||||
lib_generic/crc32.o (.text .text.*); \
|
||||
. = DEFINED(env_offset) ? env_offset : .; \
|
||||
common/env_embedded.o (.text .text.*); |
||||
#endif |
||||
|
||||
|
||||
/*
|
||||
* I2C Settings |
||||
*/ |
||||
#define CONFIG_BFIN_TWI_I2C 1 |
||||
#define CONFIG_HARD_I2C 1 |
||||
#define CONFIG_SYS_I2C_SPEED 50000 |
||||
#define CONFIG_SYS_I2C_SLAVE 0 |
||||
|
||||
|
||||
/*
|
||||
* Misc Settings |
||||
*/ |
||||
#define CONFIG_BAUDRATE 115200 |
||||
#define CONFIG_MISC_INIT_R |
||||
#define CONFIG_RTC_BFIN |
||||
#define CONFIG_UART_CONSOLE 0 |
||||
|
||||
|
||||
/*
|
||||
* Pull in common ADI header for remaining command/environment setup |
||||
*/ |
||||
#include <configs/bfin_adi_common.h> |
||||
|
||||
#undef CONFIG_BOOTCOMMAND |
||||
#define CONFIG_BOOTCOMMAND "run flashboot" |
||||
|
||||
#undef CONFIG_EXTRA_ENV_SETTINGS |
||||
#define CONFIG_EXTRA_ENV_SETTINGS \ |
||||
NAND_ENV_SETTINGS \
|
||||
NETWORK_ENV_SETTINGS \
|
||||
"flashboot=flread 20040000 1000000 280000; bootm 0x1000000\0" |
||||
|
||||
#endif |
Loading…
Reference in new issue