config TARGET_AXS103
bool "Support Synopsys Designware SDP board AXS103"
-config TARGET_EMDK
- bool "Synopsys EM Development kit"
+config TARGET_EMSDP
+ bool "Synopsys EM Software Development Platform"
select CPU_ARCEM6
config TARGET_HSDK
source "board/abilis/tb100/Kconfig"
source "board/synopsys/Kconfig"
source "board/synopsys/axs10x/Kconfig"
-source "board/synopsys/emdk/Kconfig"
+source "board/synopsys/emsdp/Kconfig"
source "board/synopsys/hsdk/Kconfig"
source "board/synopsys/iot_devkit/Kconfig"
dtb-$(CONFIG_TARGET_AXS103) += axs103.dtb
dtb-$(CONFIG_TARGET_NSIM) += nsim.dtb
dtb-$(CONFIG_TARGET_TB100) += abilis_tb100.dtb
-dtb-$(CONFIG_TARGET_EMDK) += emdk.dtb
+dtb-$(CONFIG_TARGET_EMSDP) += emsdp.dtb
dtb-$(CONFIG_TARGET_HSDK) += hsdk.dtb
dtb-$(CONFIG_TARGET_IOT_DEVKIT) += iot_devkit.dtb
+++ /dev/null
-// SPDX-License-Identifier: GPL-2.0+
-/*
- * Copyright (C) 2018 Synopsys, Inc. All rights reserved.
- */
-/dts-v1/;
-
-#include "skeleton.dtsi"
-
-/ {
- model = "snps,emdk";
-
- #address-cells = <1>;
- #size-cells = <1>;
-
- aliases {
- console = &uart0;
- };
-
- cpu_card {
- core_clk: core_clk {
- #clock-cells = <0>;
- compatible = "fixed-clock";
- clock-frequency = <40000000>;
- u-boot,dm-pre-reloc;
- };
- };
-
- uart0: serial0@f0004000 {
- compatible = "snps,dw-apb-uart";
- clock-frequency = <100000000>;
- reg = <0xf0004000 0x1000>;
- reg-shift = <2>;
- reg-io-width = <4>;
- };
-};
--- /dev/null
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2018 Synopsys, Inc. All rights reserved.
+ */
+/dts-v1/;
+
+#include "skeleton.dtsi"
+
+/ {
+ model = "snps,emsdp";
+
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ aliases {
+ console = &uart0;
+ };
+
+ cpu_card {
+ core_clk: core_clk {
+ #clock-cells = <0>;
+ compatible = "fixed-clock";
+ clock-frequency = <40000000>;
+ u-boot,dm-pre-reloc;
+ };
+ };
+
+ uart0: serial0@f0004000 {
+ compatible = "snps,dw-apb-uart";
+ clock-frequency = <100000000>;
+ reg = <0xf0004000 0x1000>;
+ reg-shift = <2>;
+ reg-io-width = <4>;
+ };
+};
+++ /dev/null
-if TARGET_EMDK
-
-config SYS_BOARD
- default "emdk"
-
-config SYS_VENDOR
- default "synopsys"
-
-config SYS_CONFIG_NAME
- default "emdk"
-
-endif
+++ /dev/null
-EM DEVELOPMENT KIT BOARD
-M: Alexey Brodkin <abrodkin@synopsys.com>
-S: Maintained
-F: board/synopsys/emdk/
-F: configs/emdk_defconfig
+++ /dev/null
-#
-# Copyright (C) 2018 Synopsys, Inc. All rights reserved.
-#
-# SPDX-License-Identifier: GPL-2.0+
-#
-
-obj-y += emdk.o
+++ /dev/null
-================================================================================
-Useful notes on bulding and using of U-Boot on ARC EM Development Kit (AKA EMDK)
-================================================================================
-
- BOARD OVERVIEW
-
- The DesignWare ARC EM Development Kit is FPGA-bases platform for rapid
- software development on the ARC EM family of processors.
-
- Since this board is based on FPGA it's possible to load and use different
- versions of ARC EM CPUs. U-Boot is built to be run on the simplest
- possible configuration which means the same one binary will work on more
- advanced configurations as well.
-
- The board has the following features useful for U-Boot:
- * On-board 2-channel FTDI TTL-to-USB converter
- - The first channel is used for serial debug port (which makes it possible
- to use a serial connection on pretty much any host machine be it
- Windows, Linux or Mac).
- On Linux machine typucally FTDI serial port would be /dev/ttyUSB0.
- There's no HW flow-control and baud-rate is 115200.
-
- - The second channel is used for built-in Digilent USB JTAG probe.
- That means no extra hardware is required to access ARC core from a
- debugger on development host. Both proprietary MetaWare debugger and
- open source OpenOCD + GDB client are supported.
-
- - Also with help of this FTDI chip it is possible to reset entire
- board with help of a special `rff-ftdi-reset` utility, see:
- https://github.com/foss-for-synopsys-dwc-arc-processors/rff-ftdi-reset
-
- * Micro SD-card slot
- - U-Boot expects to see the very first partition on the card formatted as
- FAT file-system and uses it for keeping its environment in `uboot.env`
- file. Note uboot.env is not just a text file but it is auto-generated
- file created by U-Boot on invocation of `saveenv` command.
- It contains a checksum which makes this saved environment invalid in
- case of maual modification.
-
- - There might be more useful files on that first FAT partition like
- user applications, data files etc.
-
- * 256 KiB of "ROM"
- - This so-called "ROM" is a part of FPGA image and even though it
- might be unlocked for writes its initial content will be restored
- on the next power-on.
-
-
- BUILDING U-BOOT
-
- 1. Configure U-Boot:
- ------------------------->8----------------------
- make emdk_defconfig
- ------------------------->8----------------------
-
- 2. To build Elf file (for example to be used with host debugger via JTAG
- connection to the target board):
- ------------------------->8----------------------
- make mdbtrick
- ------------------------->8----------------------
-
- This will produce `u-boot` Elf file.
-
- 3. To build binary image to be put in "ROM":
- ------------------------->8----------------------
- make u-boot.bin
- ------------------------->8----------------------
-
-
- EXECUTING U-BOOT
-
- 1. The EMDK board is supposed to auto-start U-Boot image stored in ROM on
- power-on. For that make sure VCCIO DIP-switches are all in "off" state.
-
- 2. Though it is possible to load U-Boot as a simple Elf file via JTAG right
- in "ROM" and start it from the debugger. One important note here we first
- need to enable writes into "ROM" by writing 1 to 0xf0001000.
-
- 2.1. In case of proprietary MetaWare debugger run:
- ------------------------->8----------------------
- mdb -dll=opxdarc.so -OK -preloadexec="eval *(int*)0xf0001000=0" u-boot
- ------------------------->8----------------------
+++ /dev/null
-// SPDX-License-Identifier: GPL-2.0+
-/*
- * Copyright (C) 2018 Synopsys, Inc. All rights reserved.
- */
-
-#include <common.h>
-#include <dwmmc.h>
-#include <malloc.h>
-
-DECLARE_GLOBAL_DATA_PTR;
-
-#define ARC_PERIPHERAL_BASE 0xF0000000
-#define SDIO_BASE (ARC_PERIPHERAL_BASE + 0x10000)
-
-int board_mmc_init(bd_t *bis)
-{
- struct dwmci_host *host = NULL;
-
- host = malloc(sizeof(struct dwmci_host));
- if (!host) {
- printf("dwmci_host malloc fail!\n");
- return 1;
- }
-
- memset(host, 0, sizeof(struct dwmci_host));
- host->name = "Synopsys Mobile storage";
- host->ioaddr = (void *)SDIO_BASE;
- host->buswidth = 4;
- host->dev_index = 0;
- host->bus_hz = 50000000;
-
- add_dwmci(host, host->bus_hz / 2, 400000);
-
- return 0;
-}
-
-int board_mmc_getcd(struct mmc *mmc)
-{
- struct dwmci_host *host = mmc->priv;
-
- return !(dwmci_readl(host, DWMCI_CDETECT) & 1);
-}
-
-#define CREG_BASE 0xF0001000
-#define CREG_BOOT_OFFSET 0
-#define CREG_BOOT_WP_OFFSET 8
-
-#define CGU_BASE 0xF0000000
-#define CGU_IP_SW_RESET 0x0FF0
-
-void reset_cpu(ulong addr)
-{
- writel(1, (u32 *)(CGU_BASE + CGU_IP_SW_RESET));
- while (1)
- ; /* loop forever till reset */
-}
-
-static int do_emdk_rom(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[])
-{
- u32 creg_boot = readl((u32 *)(CREG_BASE + CREG_BOOT_OFFSET));
-
- if (!strcmp(argv[1], "unlock"))
- creg_boot &= ~BIT(CREG_BOOT_WP_OFFSET);
- else if (!strcmp(argv[1], "lock"))
- creg_boot |= BIT(CREG_BOOT_WP_OFFSET);
- else
- return CMD_RET_USAGE;
-
- writel(creg_boot, (u32 *)(CREG_BASE + CREG_BOOT_OFFSET));
-
- return CMD_RET_SUCCESS;
-}
-
-cmd_tbl_t cmd_emdk[] = {
- U_BOOT_CMD_MKENT(rom, 2, 0, do_emdk_rom, "", ""),
-};
-
-static int do_emdk(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[])
-{
- cmd_tbl_t *c;
-
- c = find_cmd_tbl(argv[1], cmd_emdk, ARRAY_SIZE(cmd_emdk));
-
- /* Strip off leading 'emdk' command */
- argc--;
- argv++;
-
- if (c == NULL || argc > c->maxargs)
- return CMD_RET_USAGE;
-
- return c->cmd(cmdtp, flag, argc, argv);
-}
-
-U_BOOT_CMD(
- emdk, CONFIG_SYS_MAXARGS, 0, do_emdk,
- "Synopsys EMDK specific commands",
- "rom unlock - Unlock non-volatile memory for writing\n"
- "emdk rom lock - Lock non-volatile memory to prevent writing\n"
-);
--- /dev/null
+if TARGET_EMSDP
+
+config SYS_BOARD
+ default "emsdp"
+
+config SYS_VENDOR
+ default "synopsys"
+
+config SYS_CONFIG_NAME
+ default "emsdp"
+
+endif
--- /dev/null
+EM DEVELOPMENT KIT BOARD
+M: Alexey Brodkin <abrodkin@synopsys.com>
+S: Maintained
+F: arch/arc/dts/emsdp.dts
+F: board/synopsys/emsdp/
+F: configs/emsdp_defconfig
--- /dev/null
+#
+# Copyright (C) 2018 Synopsys, Inc. All rights reserved.
+#
+# SPDX-License-Identifier: GPL-2.0+
+#
+
+obj-y += emsdp.o
--- /dev/null
+================================================================================
+Useful notes on bulding and using of U-Boot on
+ARC EM Software Development Platform (AKA EMSDP)
+================================================================================
+
+ BOARD OVERVIEW
+
+ The DesignWare ARC EM Software Development Platform is FPGA-bases platform
+ for rapid software development on the ARC EM family of processors.
+
+ Since this board is based on FPGA it's possible to load and use different
+ versions of ARC EM CPUs. U-Boot is built to be run on the simplest
+ possible configuration which means the same one binary will work on more
+ advanced configurations as well.
+
+ The board has the following features useful for U-Boot:
+ * On-board 2-channel FTDI TTL-to-USB converter
+ - The first channel is used for serial debug port (which makes it possible
+ to use a serial connection on pretty much any host machine be it
+ Windows, Linux or Mac).
+ On Linux machine typucally FTDI serial port would be /dev/ttyUSB0.
+ There's no HW flow-control and baud-rate is 115200.
+
+ - The second channel is used for built-in Digilent USB JTAG probe.
+ That means no extra hardware is required to access ARC core from a
+ debugger on development host. Both proprietary MetaWare debugger and
+ open source OpenOCD + GDB client are supported.
+
+ - Also with help of this FTDI chip it is possible to reset entire
+ board with help of a special `rff-ftdi-reset` utility, see:
+ https://github.com/foss-for-synopsys-dwc-arc-processors/rff-ftdi-reset
+
+ * Micro SD-card slot
+ - U-Boot expects to see the very first partition on the card formatted as
+ FAT file-system and uses it for keeping its environment in `uboot.env`
+ file. Note uboot.env is not just a text file but it is auto-generated
+ file created by U-Boot on invocation of `saveenv` command.
+ It contains a checksum which makes this saved environment invalid in
+ case of maual modification.
+
+ - There might be more useful files on that first FAT partition like
+ user applications, data files etc.
+
+ * 256 KiB of "ROM"
+ - This so-called "ROM" is a part of FPGA image and even though it
+ might be unlocked for writes its initial content will be restored
+ on the next power-on.
+
+
+ BUILDING U-BOOT
+
+ 1. Configure U-Boot:
+ ------------------------->8----------------------
+ make emsdp_defconfig
+ ------------------------->8----------------------
+
+ 2. To build Elf file (for example to be used with host debugger via JTAG
+ connection to the target board):
+ ------------------------->8----------------------
+ make mdbtrick
+ ------------------------->8----------------------
+
+ This will produce `u-boot` Elf file.
+
+ 3. To build binary image to be put in "ROM":
+ ------------------------->8----------------------
+ make u-boot.bin
+ ------------------------->8----------------------
+
+
+ EXECUTING U-BOOT
+
+ 1. The EMSDP board is supposed to auto-start U-Boot image stored in ROM on
+ power-on. For that make sure VCCIO DIP-switches are all in "off" state.
+
+ 2. Though it is possible to load U-Boot as a simple Elf file via JTAG right
+ in "ROM" and start it from the debugger. One important note here we first
+ need to enable writes into "ROM" by writing 1 to 0xf0001000.
+
+ 2.1. In case of proprietary MetaWare debugger run:
+ ------------------------->8----------------------
+ mdb -dll=opxdarc.so -OK -preloadexec="eval *(int*)0xf0001000=0" u-boot
+ ------------------------->8----------------------
--- /dev/null
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2018 Synopsys, Inc. All rights reserved.
+ */
+
+#include <common.h>
+#include <dwmmc.h>
+#include <malloc.h>
+
+DECLARE_GLOBAL_DATA_PTR;
+
+#define ARC_PERIPHERAL_BASE 0xF0000000
+#define SDIO_BASE (ARC_PERIPHERAL_BASE + 0x10000)
+
+int board_mmc_init(bd_t *bis)
+{
+ struct dwmci_host *host = NULL;
+
+ host = malloc(sizeof(struct dwmci_host));
+ if (!host) {
+ printf("dwmci_host malloc fail!\n");
+ return 1;
+ }
+
+ memset(host, 0, sizeof(struct dwmci_host));
+ host->name = "Synopsys Mobile storage";
+ host->ioaddr = (void *)SDIO_BASE;
+ host->buswidth = 4;
+ host->dev_index = 0;
+ host->bus_hz = 50000000;
+
+ add_dwmci(host, host->bus_hz / 2, 400000);
+
+ return 0;
+}
+
+int board_mmc_getcd(struct mmc *mmc)
+{
+ struct dwmci_host *host = mmc->priv;
+
+ return !(dwmci_readl(host, DWMCI_CDETECT) & 1);
+}
+
+#define CREG_BASE 0xF0001000
+#define CREG_BOOT_OFFSET 0
+#define CREG_BOOT_WP_OFFSET 8
+
+#define CGU_BASE 0xF0000000
+#define CGU_IP_SW_RESET 0x0FF0
+
+void reset_cpu(ulong addr)
+{
+ writel(1, (u32 *)(CGU_BASE + CGU_IP_SW_RESET));
+ while (1)
+ ; /* loop forever till reset */
+}
+
+static int do_emsdp_rom(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[])
+{
+ u32 creg_boot = readl((u32 *)(CREG_BASE + CREG_BOOT_OFFSET));
+
+ if (!strcmp(argv[1], "unlock"))
+ creg_boot &= ~BIT(CREG_BOOT_WP_OFFSET);
+ else if (!strcmp(argv[1], "lock"))
+ creg_boot |= BIT(CREG_BOOT_WP_OFFSET);
+ else
+ return CMD_RET_USAGE;
+
+ writel(creg_boot, (u32 *)(CREG_BASE + CREG_BOOT_OFFSET));
+
+ return CMD_RET_SUCCESS;
+}
+
+cmd_tbl_t cmd_emsdp[] = {
+ U_BOOT_CMD_MKENT(rom, 2, 0, do_emsdp_rom, "", ""),
+};
+
+static int do_emsdp(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[])
+{
+ cmd_tbl_t *c;
+
+ c = find_cmd_tbl(argv[1], cmd_emsdp, ARRAY_SIZE(cmd_emsdp));
+
+ /* Strip off leading 'emsdp' command */
+ argc--;
+ argv++;
+
+ if (c == NULL || argc > c->maxargs)
+ return CMD_RET_USAGE;
+
+ return c->cmd(cmdtp, flag, argc, argv);
+}
+
+U_BOOT_CMD(
+ emsdp, CONFIG_SYS_MAXARGS, 0, do_emsdp,
+ "Synopsys EMSDP specific commands",
+ "rom unlock - Unlock non-volatile memory for writing\n"
+ "emsdp rom lock - Lock non-volatile memory to prevent writing\n"
+);
+++ /dev/null
-CONFIG_ARC=y
-CONFIG_ISA_ARCV2=y
-CONFIG_CPU_ARCEM6=y
-CONFIG_TARGET_EMDK=y
-CONFIG_SYS_TEXT_BASE=0x00000000
-CONFIG_SYS_CLK_FREQ=40000000
-# CONFIG_ARCH_FIXUP_FDT_MEMORY is not set
-CONFIG_VERSION_VARIABLE=y
-CONFIG_HUSH_PARSER=y
-CONFIG_SYS_PROMPT="emdk# "
-# CONFIG_CMD_BOOTD is not set
-# CONFIG_CMD_XIMG is not set
-CONFIG_CMD_MMC=y
-CONFIG_CMD_CACHE=y
-CONFIG_CMD_FAT=y
-CONFIG_OF_CONTROL=y
-CONFIG_OF_EMBED=y
-CONFIG_DEFAULT_DEVICE_TREE="emdk"
-CONFIG_ENV_IS_IN_FAT=y
-CONFIG_ENV_FAT_INTERFACE="mmc"
-CONFIG_ENV_FAT_DEVICE_AND_PART="0:1"
-# CONFIG_NET is not set
-CONFIG_DM=y
-CONFIG_MMC=y
-CONFIG_MMC_DW=y
-CONFIG_DM_SERIAL=y
-CONFIG_SYS_NS16550=y
-CONFIG_FS_FAT_MAX_CLUSTSIZE=4096
-CONFIG_USE_PRIVATE_LIBGCC=y
-CONFIG_PANIC_HANG=y
--- /dev/null
+CONFIG_ARC=y
+CONFIG_ISA_ARCV2=y
+CONFIG_CPU_ARCEM6=y
+CONFIG_TARGET_EMSDP=y
+CONFIG_SYS_TEXT_BASE=0x00000000
+CONFIG_SYS_CLK_FREQ=40000000
+# CONFIG_ARCH_FIXUP_FDT_MEMORY is not set
+CONFIG_VERSION_VARIABLE=y
+CONFIG_HUSH_PARSER=y
+CONFIG_SYS_PROMPT="emsdp# "
+# CONFIG_CMD_BOOTD is not set
+# CONFIG_CMD_XIMG is not set
+CONFIG_CMD_MMC=y
+CONFIG_CMD_CACHE=y
+CONFIG_CMD_FAT=y
+CONFIG_OF_CONTROL=y
+CONFIG_OF_EMBED=y
+CONFIG_DEFAULT_DEVICE_TREE="emsdp"
+CONFIG_ENV_IS_IN_FAT=y
+CONFIG_ENV_FAT_INTERFACE="mmc"
+CONFIG_ENV_FAT_DEVICE_AND_PART="0:1"
+# CONFIG_NET is not set
+CONFIG_DM=y
+CONFIG_MMC=y
+CONFIG_MMC_DW=y
+CONFIG_DM_SERIAL=y
+CONFIG_SYS_NS16550=y
+CONFIG_FS_FAT_MAX_CLUSTSIZE=4096
+CONFIG_USE_PRIVATE_LIBGCC=y
+CONFIG_PANIC_HANG=y
+++ /dev/null
-/* SPDX-License-Identifier: GPL-2.0+ */
-/*
- * Copyright (C) 2018 Synopsys, Inc. All rights reserved.
- */
-
-#ifndef _CONFIG_EMDK_H_
-#define _CONFIG_EMDK_H_
-
-#include <linux/sizes.h>
-
-#define CONFIG_SYS_MONITOR_BASE CONFIG_SYS_TEXT_BASE
-
-#define CONFIG_SYS_SDRAM_BASE 0x10000000
-#define CONFIG_SYS_SDRAM_SIZE SZ_8M
-
-#define CONFIG_SYS_INIT_SP_ADDR (CONFIG_SYS_SDRAM_BASE + SZ_1M)
-
-#define CONFIG_SYS_MALLOC_LEN SZ_64K
-#define CONFIG_SYS_LOAD_ADDR CONFIG_SYS_SDRAM_BASE
-
-/* Required by DW MMC driver */
-#define CONFIG_BOUNCE_BUFFER
-
-/*
- * Environment
- */
-#define CONFIG_ENV_SIZE SZ_4K
-#define CONFIG_BOOTFILE "app.bin"
-#define CONFIG_LOADADDR CONFIG_SYS_LOAD_ADDR
-
-#define CONFIG_EXTRA_ENV_SETTINGS \
- "upgrade_image=u-boot.bin\0" \
- "upgrade=emdk rom unlock && " \
- "fatload mmc 0 ${loadaddr} ${upgrade_image} && " \
- "cp.b ${loadaddr} 0 ${filesize} && " \
- "dcache flush && " \
- "emdk rom lock\0"
-
-#endif /* _CONFIG_EMDK_H_ */
-
--- /dev/null
+/* SPDX-License-Identifier: GPL-2.0+ */
+/*
+ * Copyright (C) 2018 Synopsys, Inc. All rights reserved.
+ */
+
+#ifndef _CONFIG_EMSDP_H_
+#define _CONFIG_EMSDP_H_
+
+#include <linux/sizes.h>
+
+#define CONFIG_SYS_MONITOR_BASE CONFIG_SYS_TEXT_BASE
+
+#define CONFIG_SYS_SDRAM_BASE 0x10000000
+#define CONFIG_SYS_SDRAM_SIZE SZ_8M
+
+#define CONFIG_SYS_INIT_SP_ADDR (CONFIG_SYS_SDRAM_BASE + SZ_1M)
+
+#define CONFIG_SYS_MALLOC_LEN SZ_64K
+#define CONFIG_SYS_LOAD_ADDR CONFIG_SYS_SDRAM_BASE
+
+/* Required by DW MMC driver */
+#define CONFIG_BOUNCE_BUFFER
+
+/*
+ * Environment
+ */
+#define CONFIG_ENV_SIZE SZ_4K
+#define CONFIG_BOOTFILE "app.bin"
+#define CONFIG_LOADADDR CONFIG_SYS_LOAD_ADDR
+
+#define CONFIG_EXTRA_ENV_SETTINGS \
+ "upgrade_image=u-boot.bin\0" \
+ "upgrade=emsdp rom unlock && " \
+ "fatload mmc 0 ${loadaddr} ${upgrade_image} && " \
+ "cp.b ${loadaddr} 0 ${filesize} && " \
+ "dcache flush && " \
+ "emsdp rom lock\0"
+
+#endif /* _CONFIG_EMSDP_H_ */
+