summaryrefslogtreecommitdiffstats
path: root/qemu/roms/u-boot/board/dnp5370
diff options
context:
space:
mode:
Diffstat (limited to 'qemu/roms/u-boot/board/dnp5370')
-rw-r--r--qemu/roms/u-boot/board/dnp5370/Makefile12
-rw-r--r--qemu/roms/u-boot/board/dnp5370/README67
-rw-r--r--qemu/roms/u-boot/board/dnp5370/dnp5370.c87
3 files changed, 166 insertions, 0 deletions
diff --git a/qemu/roms/u-boot/board/dnp5370/Makefile b/qemu/roms/u-boot/board/dnp5370/Makefile
new file mode 100644
index 000000000..865522fd6
--- /dev/null
+++ b/qemu/roms/u-boot/board/dnp5370/Makefile
@@ -0,0 +1,12 @@
+#
+# U-boot - Makefile
+#
+# Copyright (c) 2005-2007 Analog Device Inc.
+#
+# (C) Copyright 2000-2006
+# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
+#
+# SPDX-License-Identifier: GPL-2.0+
+#
+
+obj-y := dnp5370.o
diff --git a/qemu/roms/u-boot/board/dnp5370/README b/qemu/roms/u-boot/board/dnp5370/README
new file mode 100644
index 000000000..0172698e9
--- /dev/null
+++ b/qemu/roms/u-boot/board/dnp5370/README
@@ -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.
diff --git a/qemu/roms/u-boot/board/dnp5370/dnp5370.c b/qemu/roms/u-boot/board/dnp5370/dnp5370.c
new file mode 100644
index 000000000..df721c994
--- /dev/null
+++ b/qemu/roms/u-boot/board/dnp5370/dnp5370.c
@@ -0,0 +1,87 @@
+/*
+ * 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.
+ *
+ * SPDX-License-Identifier: GPL-2.0+
+ */
+
+#include <common.h>
+#include <config.h>
+#include <asm/blackfin.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");
+ eth_random_addr(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;
+}