From adc9b09a23f3cfef56130abc4c4c1a9085a0ec13 Mon Sep 17 00:00:00 2001 From: Alexey Brodkin Date: Thu, 18 Oct 2018 09:54:58 +0300 Subject: emdk->emsdp: Rename board Real marketing name of the board was recently updated so to accommodate that change renaming the board and all related to it. Signed-off-by: Alexey Brodkin --- board/synopsys/emdk/Kconfig | 12 ----- board/synopsys/emdk/MAINTAINERS | 5 -- board/synopsys/emdk/Makefile | 7 --- board/synopsys/emdk/README | 82 --------------------------------- board/synopsys/emdk/emdk.c | 99 ---------------------------------------- board/synopsys/emsdp/Kconfig | 12 +++++ board/synopsys/emsdp/MAINTAINERS | 6 +++ board/synopsys/emsdp/Makefile | 7 +++ board/synopsys/emsdp/README | 83 +++++++++++++++++++++++++++++++++ board/synopsys/emsdp/emsdp.c | 99 ++++++++++++++++++++++++++++++++++++++++ 10 files changed, 207 insertions(+), 205 deletions(-) delete mode 100644 board/synopsys/emdk/Kconfig delete mode 100644 board/synopsys/emdk/MAINTAINERS delete mode 100644 board/synopsys/emdk/Makefile delete mode 100644 board/synopsys/emdk/README delete mode 100644 board/synopsys/emdk/emdk.c create mode 100644 board/synopsys/emsdp/Kconfig create mode 100644 board/synopsys/emsdp/MAINTAINERS create mode 100644 board/synopsys/emsdp/Makefile create mode 100644 board/synopsys/emsdp/README create mode 100644 board/synopsys/emsdp/emsdp.c (limited to 'board') diff --git a/board/synopsys/emdk/Kconfig b/board/synopsys/emdk/Kconfig deleted file mode 100644 index a9b834dbfd..0000000000 --- a/board/synopsys/emdk/Kconfig +++ /dev/null @@ -1,12 +0,0 @@ -if TARGET_EMDK - -config SYS_BOARD - default "emdk" - -config SYS_VENDOR - default "synopsys" - -config SYS_CONFIG_NAME - default "emdk" - -endif diff --git a/board/synopsys/emdk/MAINTAINERS b/board/synopsys/emdk/MAINTAINERS deleted file mode 100644 index 605e338445..0000000000 --- a/board/synopsys/emdk/MAINTAINERS +++ /dev/null @@ -1,5 +0,0 @@ -EM DEVELOPMENT KIT BOARD -M: Alexey Brodkin -S: Maintained -F: board/synopsys/emdk/ -F: configs/emdk_defconfig diff --git a/board/synopsys/emdk/Makefile b/board/synopsys/emdk/Makefile deleted file mode 100644 index 4926c4e307..0000000000 --- a/board/synopsys/emdk/Makefile +++ /dev/null @@ -1,7 +0,0 @@ -# -# Copyright (C) 2018 Synopsys, Inc. All rights reserved. -# -# SPDX-License-Identifier: GPL-2.0+ -# - -obj-y += emdk.o diff --git a/board/synopsys/emdk/README b/board/synopsys/emdk/README deleted file mode 100644 index 706b547a9e..0000000000 --- a/board/synopsys/emdk/README +++ /dev/null @@ -1,82 +0,0 @@ -================================================================================ -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---------------------- diff --git a/board/synopsys/emdk/emdk.c b/board/synopsys/emdk/emdk.c deleted file mode 100644 index 79cafefb8b..0000000000 --- a/board/synopsys/emdk/emdk.c +++ /dev/null @@ -1,99 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0+ -/* - * Copyright (C) 2018 Synopsys, Inc. All rights reserved. - */ - -#include -#include -#include - -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" -); diff --git a/board/synopsys/emsdp/Kconfig b/board/synopsys/emsdp/Kconfig new file mode 100644 index 0000000000..8228bb5c74 --- /dev/null +++ b/board/synopsys/emsdp/Kconfig @@ -0,0 +1,12 @@ +if TARGET_EMSDP + +config SYS_BOARD + default "emsdp" + +config SYS_VENDOR + default "synopsys" + +config SYS_CONFIG_NAME + default "emsdp" + +endif diff --git a/board/synopsys/emsdp/MAINTAINERS b/board/synopsys/emsdp/MAINTAINERS new file mode 100644 index 0000000000..6404013957 --- /dev/null +++ b/board/synopsys/emsdp/MAINTAINERS @@ -0,0 +1,6 @@ +EM DEVELOPMENT KIT BOARD +M: Alexey Brodkin +S: Maintained +F: arch/arc/dts/emsdp.dts +F: board/synopsys/emsdp/ +F: configs/emsdp_defconfig diff --git a/board/synopsys/emsdp/Makefile b/board/synopsys/emsdp/Makefile new file mode 100644 index 0000000000..733a48c46a --- /dev/null +++ b/board/synopsys/emsdp/Makefile @@ -0,0 +1,7 @@ +# +# Copyright (C) 2018 Synopsys, Inc. All rights reserved. +# +# SPDX-License-Identifier: GPL-2.0+ +# + +obj-y += emsdp.o diff --git a/board/synopsys/emsdp/README b/board/synopsys/emsdp/README new file mode 100644 index 0000000000..034062e397 --- /dev/null +++ b/board/synopsys/emsdp/README @@ -0,0 +1,83 @@ +================================================================================ +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---------------------- diff --git a/board/synopsys/emsdp/emsdp.c b/board/synopsys/emsdp/emsdp.c new file mode 100644 index 0000000000..b5ec7f17ec --- /dev/null +++ b/board/synopsys/emsdp/emsdp.c @@ -0,0 +1,99 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * Copyright (C) 2018 Synopsys, Inc. All rights reserved. + */ + +#include +#include +#include + +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" +); -- cgit