Blackfin: dnp5370: new board port
Info about the hardware can be found here: http://www.dilnetpc.com/dnp0086.htm Signed-off-by: Andreas Schallenberg <Andreas.Schallenberg@3alitydigital.de> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
This commit is contained in:
parent
7e3eb0eaec
commit
2fc32deab5
@ -1072,6 +1072,10 @@ Blackfin Team <u-boot-devel@blackfin.uclinux.org>
|
||||
BF548-EZKIT BF548
|
||||
BF561-EZKIT BF561
|
||||
|
||||
M.Hasewinkel (MHA) <info@ssv-embedded.de>
|
||||
|
||||
dnp5370 BF537
|
||||
|
||||
Brent Kandetzki <brentk@teleco.com>
|
||||
|
||||
IP04 BF532
|
||||
|
54
board/dnp5370/Makefile
Normal file
54
board/dnp5370/Makefile
Normal file
@ -0,0 +1,54 @@
|
||||
#
|
||||
# U-boot - Makefile
|
||||
#
|
||||
# Copyright (c) 2005-2007 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).o
|
||||
|
||||
COBJS-y := $(BOARD).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)
|
||||
$(call cmd_link_o_target, $(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
|
||||
|
||||
#########################################################################
|
104
board/dnp5370/dnp5370.c
Normal file
104
board/dnp5370/dnp5370.c
Normal file
@ -0,0 +1,104 @@
|
||||
/*
|
||||
* U-boot - main board file
|
||||
*
|
||||
* (C) Copyright 2010 3ality Digital Systems
|
||||
*
|
||||
* Copyright (c) 2005-2008 Analog Devices Inc.
|
||||
*
|
||||
* (C) Copyright 2000-2004
|
||||
* 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., 51 Franklin St, Fifth Floor, Boston,
|
||||
* MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#include <common.h>
|
||||
#include <config.h>
|
||||
#include <asm/blackfin.h>
|
||||
#include <asm/net.h>
|
||||
#include <net.h>
|
||||
#include <netdev.h>
|
||||
#include <asm/gpio.h>
|
||||
|
||||
static void disable_external_watchdog(void)
|
||||
{
|
||||
#ifdef CONFIG_DNP5370_EXT_WD_DISABLE
|
||||
/* disable external HW watchdog with PH13 = WD1 = 1 */
|
||||
gpio_request(GPIO_PH13, "ext_wd");
|
||||
gpio_direction_output(GPIO_PH13, 1);
|
||||
#endif
|
||||
}
|
||||
|
||||
int checkboard(void)
|
||||
{
|
||||
printf("Board: SSV DilNet DNP5370\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_BFIN_MAC
|
||||
static void board_init_enetaddr(uchar *mac_addr)
|
||||
{
|
||||
#ifdef CONFIG_SYS_NO_FLASH
|
||||
# define USE_MAC_IN_FLASH 0
|
||||
#else
|
||||
# define USE_MAC_IN_FLASH 1
|
||||
#endif
|
||||
bool valid_mac = false;
|
||||
|
||||
if (USE_MAC_IN_FLASH) {
|
||||
/* we cram the MAC in the last flash sector */
|
||||
uchar *board_mac_addr = (uchar *)0x202F0000;
|
||||
if (is_valid_ether_addr(board_mac_addr)) {
|
||||
memcpy(mac_addr, board_mac_addr, 6);
|
||||
valid_mac = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (!valid_mac) {
|
||||
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
|
||||
|
||||
/* miscellaneous platform dependent initialisations */
|
||||
int misc_init_r(void)
|
||||
{
|
||||
disable_external_watchdog();
|
||||
|
||||
#ifdef CONFIG_BFIN_MAC
|
||||
uchar enetaddr[6];
|
||||
if (!eth_getenv_enetaddr("ethaddr", enetaddr))
|
||||
board_init_enetaddr(enetaddr);
|
||||
#endif
|
||||
|
||||
#ifndef CONFIG_SYS_NO_FLASH
|
||||
/* we use the last sector for the MAC address / POST LDR */
|
||||
extern flash_info_t flash_info[];
|
||||
flash_protect(FLAG_PROTECT_SET, 0x202F0000, 0x202FFFFF, &flash_info[0]);
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
@ -198,6 +198,7 @@ cm-bf537e blackfin blackfin
|
||||
cm-bf537u blackfin blackfin
|
||||
cm-bf548 blackfin blackfin
|
||||
cm-bf561 blackfin blackfin
|
||||
dnp5370 blackfin blackfin
|
||||
ibf-dsp561 blackfin blackfin
|
||||
ip04 blackfin blackfin
|
||||
tcm-bf518 blackfin blackfin
|
||||
|
67
doc/README.dnp5370
Normal file
67
doc/README.dnp5370
Normal file
@ -0,0 +1,67 @@
|
||||
This document describes the board support for
|
||||
Dil/NetPC DNP/5370 (http://www.dilnetpc.com/dnp0086.htm) module.
|
||||
The distributor is SSV (http://www.ssv-embedded.de),
|
||||
|
||||
The module used to develop the support files contains:
|
||||
|
||||
* Processor: Blackfin BF537 Rev 0.3 (600 MHz core / 120MHz RAM)
|
||||
|
||||
* RAM: 32 MB SDRAM
|
||||
Hynix HY57V561620FTP-H 810EA
|
||||
Connected to Blackfin via "Expansion Bus"
|
||||
Address range 0x0000.0000 - 0x1fff.ffff
|
||||
|
||||
* NOR flash: 32 MBit (4 MByte)
|
||||
Exel Semiconductor ES29LVS320EB
|
||||
Connected to Blackfin via "Expansion Bus",
|
||||
Chip Selects 0, 1 and 2, each is connected
|
||||
to a 1 MB memory bank at Blackfin, therefore
|
||||
only 3 MB accessible.
|
||||
Address range 0x2000.0000 - 0x202f.ffff
|
||||
CFI compatible
|
||||
|
||||
Exel Semiconductor was bought by Rohm Semiconductor (www.rohm.com).
|
||||
|
||||
* NAND flash: 64 MBit (8 MByte)
|
||||
Atmel 45DB642D-CNU
|
||||
Connected to Blackfin via SPI
|
||||
CFI compatible
|
||||
|
||||
* Davicom DM9161EP Ethernet PHY
|
||||
|
||||
* A SD card reader, connected via SPI
|
||||
|
||||
* Hardware watchdog MAX823 or TPS3823
|
||||
|
||||
(other devices not listed here)
|
||||
|
||||
To run it, the module must be inserted in a 64 pin DIL socket
|
||||
on another board, e.g. DNP/EVA13 (together: SSV SK28).
|
||||
|
||||
The Blackfin is booted from NOR flash. The NOR flash data begins
|
||||
with the U-Boot code and is then followed by the Linux code.
|
||||
Finally, the MAC is stored in the last sector.
|
||||
You may need to adjust these settings to your needs.
|
||||
The memory map used to develop the board support is:
|
||||
|
||||
Memory map:
|
||||
0x00000000 .. 0x01ffffff SDRAM
|
||||
0x20000000 .. 0x202fffff NOR flash
|
||||
|
||||
RAM use:
|
||||
0x01f9bffc .. 0x01fbbffb U-Boot stack
|
||||
0x01f9c000 .. 0x01f9ffff U-Boot global data
|
||||
0x01fa0000 .. 0x01fbffff U-Boot malloc() RAM
|
||||
0x01fc0000 .. 0x01ffffff U-Boot execution RAM
|
||||
|
||||
NOR flash use:
|
||||
0x20000000 .. 0x0002ffff U-Boot
|
||||
0x20004000 .. 0x20005fff U-Boot environment
|
||||
0x20030000 .. 0x202effff Linux kernel image
|
||||
0x202f0000 .. 0x202fffff MAC address sector
|
||||
|
||||
NOR flash is 0x00300000 (3145728) bytes large (3 MB).
|
||||
Max space for compressed kernel in flash is 0x002c0000 (2883584) bytes (2.75 MB)
|
||||
Max space for u-boot in flash is 0x00030000 (196608) bytes (192 KB)
|
||||
|
||||
The module is hardwired to BYPASS boot mode.
|
128
include/configs/dnp5370.h
Normal file
128
include/configs/dnp5370.h
Normal file
@ -0,0 +1,128 @@
|
||||
/*
|
||||
* U-boot - Configuration file for SSV DNP5370 board
|
||||
*/
|
||||
|
||||
#ifndef __CONFIG_DNP5370_H__
|
||||
#define __CONFIG_DNP5370_H__
|
||||
|
||||
/* this must come first */
|
||||
#include <asm/config-pre.h>
|
||||
|
||||
/*
|
||||
* Processor Settings
|
||||
*/
|
||||
#define CONFIG_BFIN_CPU bf537-0.3
|
||||
#define CONFIG_BFIN_BOOT_MODE BFIN_BOOT_BYPASS
|
||||
|
||||
/*
|
||||
* Clock Settings
|
||||
* CCLK = (CLKIN * VCO_MULT) / CCLK_DIV
|
||||
* SCLK = (CLKIN * VCO_MULT) / SCLK_DIV
|
||||
*/
|
||||
#define CONFIG_CLKIN_HZ 25000000
|
||||
#define CONFIG_CLKIN_HALF 0
|
||||
#define CONFIG_PLL_BYPASS 0
|
||||
#define CONFIG_VCO_MULT 24
|
||||
#define CONFIG_CCLK_DIV 1
|
||||
#define CONFIG_SCLK_DIV 5
|
||||
|
||||
/*
|
||||
* Memory Settings
|
||||
*/
|
||||
#define CONFIG_MEM_ADD_WDTH 9
|
||||
#define CONFIG_MEM_SIZE 32
|
||||
|
||||
#define CONFIG_EBIU_SDRRC_VAL 0x03a0
|
||||
#define CONFIG_EBIU_SDBCTL_VAL 0x0013
|
||||
#define CONFIG_EBIU_SDGCTL_VAL 0x8091998d
|
||||
|
||||
#define CONFIG_EBIU_AMGCTL_VAL 0xF7
|
||||
#define CONFIG_EBIU_AMBCTL0_VAL 0x7BB07BB0
|
||||
#define CONFIG_EBIU_AMBCTL1_VAL 0xFFC27BB0
|
||||
|
||||
#define CONFIG_SYS_MONITOR_LEN (256 * 1024)
|
||||
#define CONFIG_SYS_MALLOC_LEN (128 * 1024)
|
||||
|
||||
/*
|
||||
* Network Settings
|
||||
*/
|
||||
#ifndef __ADSPBF534__
|
||||
#define CONFIG_ROOTPATH /romfs
|
||||
|
||||
#define CONFIG_NET_MULTI 1
|
||||
#define CONFIG_BFIN_MAC 1
|
||||
#define CONFIG_PHY_ADDR 0
|
||||
#define CONFIG_RMII 1
|
||||
|
||||
#define CONFIG_CMD_MII
|
||||
#define CONFIG_CMD_PING
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Flash Settings
|
||||
*
|
||||
* Only 3 MB of the 4 MB NOR flash are addressable.
|
||||
* But limiting the flash size does not seem to work.
|
||||
* It seems the CFI detection has precedence.
|
||||
*/
|
||||
#define CONFIG_FLASH_CFI_DRIVER
|
||||
#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 71 /* (M29W320EB) */
|
||||
|
||||
/* 512k reserved for u-boot */
|
||||
#define CONFIG_SYS_JFFS2_FIRST_SECTOR 15
|
||||
|
||||
/*
|
||||
* Env Storage Settings
|
||||
*/
|
||||
#define CONFIG_ENV_IS_IN_FLASH 1
|
||||
#define CONFIG_ENV_ADDR 0x20004000
|
||||
#define CONFIG_ENV_SIZE 0x00002000
|
||||
#define CONFIG_ENV_SECT_SIZE 0x00002000 /* Total Size of Environment Sector */
|
||||
#define CONFIG_ENV_OFFSET 0x00004000 /* (CONFIG_ENV_ADDR - CONFIG_FLASH_BASE) */
|
||||
|
||||
#define ENV_IS_EMBEDDED
|
||||
#define LDS_BOARD_TEXT \
|
||||
arch/blackfin/lib/libblackfin.o (.text*); \
|
||||
arch/blackfin/cpu/libblackfin.o (.text*); \
|
||||
. = DEFINED(env_offset) ? env_offset : .; \
|
||||
common/env_embedded.o (.text*);
|
||||
|
||||
/*
|
||||
* Misc Settings
|
||||
*/
|
||||
#define CONFIG_CMD_GPIO
|
||||
#define CONFIG_CMD_STRINGS
|
||||
#define CONFIG_MISC_INIT_R
|
||||
#define CONFIG_RTC_BFIN
|
||||
#define CONFIG_SYS_LONGHELP
|
||||
|
||||
/* This disables the hardware watchdog (not inside the bfin) */
|
||||
#define CONFIG_DNP5370_EXT_WD_DISABLE 1
|
||||
|
||||
#define CONFIG_UART_CONSOLE 0
|
||||
#define CONFIG_BAUDRATE 115200
|
||||
#define CONFIG_BOOTCOMMAND "bootm 0x20030000"
|
||||
#define CONFIG_BOOTARGS "console=ttyBF0,115200 root=/dev/mtdblock3 rootfstype=ext2"
|
||||
|
||||
/* Convenience commands to update Linux in NOR flash */
|
||||
#define CONFIG_EXTRA_ENV_SETTINGS \
|
||||
"fetchme=tftpboot 0x01000000 uImage;" \
|
||||
"iminfo\0" \
|
||||
"flashme=protect off 0x20030000 0x2003ffff;" \
|
||||
"erase 0x20030000 0x202effff;" \
|
||||
"cp.b 0x01000000 0x20030000 0x2c0000\0" \
|
||||
"runme=bootm 0x01000000\0"
|
||||
|
||||
/* this sets up the default list of enabled commands */
|
||||
#include <config_cmd_default.h>
|
||||
|
||||
#ifndef CONFIG_BFIN_MAC
|
||||
# undef CONFIG_CMD_NET
|
||||
# undef CONFIG_CMD_NFS
|
||||
#endif
|
||||
|
||||
#endif
|
Loading…
Reference in New Issue
Block a user