Re: [U-Boot] [PATCH v4] riscv: Add Microchip MPFS Icicle board support

2019-06-03 Thread Rick Chen
> From: Auer, Lukas [mailto:lukas.a...@aisec.fraunhofer.de]
> Sent: Saturday, June 01, 2019 12:13 AM
> To: padmarao.beg...@microchip.com; u-boot@lists.denx.de
> Cc: Rick Jian-Zhi Chen(陳建志); cyril.j...@microchip.com;
> bmeng...@gmail.com; anup.pa...@wdc.com; lewis.ha...@microchip.com
> Subject: Re: [PATCH v4] riscv: Add Microchip MPFS Icicle board support
>
> On Tue, 2019-05-28 at 15:47 +0530, Padmarao Begari wrote:
> > This patch adds Microchip MPFS Icicle board support.
> > For now, NS16550 serial driver is only enabled.
> > The Microchip MPFS Icicle defconfig by default builds U-Boot for
> > M-Mode with SMP support.
> >
> > Signed-off-by: Padmarao Begari 
> > Reviewed-by: Bin Meng 
> > ---
> > Changes in V4
> > - Remove CONFIG_DISTRO_DEFAULTS from microchip_mpfs_icicle_defconfig
> >
> > Changes in v3
> > - Fix some typos
> > - Remove CONFIG_DM, CONFIG_DM_SERIAL, CONFIG_BAUDRATE,
> >   CONFIG_SYS_NS16550, CONFIG_SYS_TEXT_BASE and
> CONFIG_NR_DRAM_BANKS
> >   from microchip_mpfs_icicle_defconfig
> > - Add config SYS_TEXT_BASE in board kconfig
> > - Imply SYS_NS16550 in BOARD_SPECIFIC_OPTIONS
> > - select BOARD_EARLY_INIT_F in BOARD_SPECIFIC_OPTIONS
> >
> > Changes in v2
> > - Fix some typos
> > - Rename target board to TARGET_MICROCHIP_ICICLE
> > - select CONFIG_BOARD_EARLY_INIT_F in BOARD_SPECIFIC_OPTIONS
> > - Remove #ifdef CONFIG_BOARD_EARLY_INIT_F
> > ---
> >  arch/riscv/Kconfig|  4 ++
> >  board/microchip/mpfs_icicle/Kconfig   | 26 +
> >  board/microchip/mpfs_icicle/MAINTAINERS   |  7 
> >  board/microchip/mpfs_icicle/Makefile  |  7 
> >  board/microchip/mpfs_icicle/mpfs_icicle.c | 30 +++
> >  configs/microchip_mpfs_icicle_defconfig   |  8 
> >  include/configs/microchip_mpfs_icicle.h   | 63
> +++
> >  7 files changed, 145 insertions(+)
> >  create mode 100644 board/microchip/mpfs_icicle/Kconfig
> >  create mode 100644 board/microchip/mpfs_icicle/MAINTAINERS
> >  create mode 100644 board/microchip/mpfs_icicle/Makefile
> >  create mode 100644 board/microchip/mpfs_icicle/mpfs_icicle.c
> >  create mode 100644 configs/microchip_mpfs_icicle_defconfig
> >  create mode 100644 include/configs/microchip_mpfs_icicle.h
> >
>
> Reviewed-by: Lukas Auer 

Applied to u-boot-riscv/master, thanks!
___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot


Re: [U-Boot] [PATCH v4] riscv: Add Microchip MPFS Icicle board support

2019-05-31 Thread Auer, Lukas
On Tue, 2019-05-28 at 15:47 +0530, Padmarao Begari wrote:
> This patch adds Microchip MPFS Icicle board support.
> For now, NS16550 serial driver is only enabled.
> The Microchip MPFS Icicle defconfig by default builds
> U-Boot for M-Mode with SMP support.
> 
> Signed-off-by: Padmarao Begari 
> Reviewed-by: Bin Meng 
> ---
> Changes in V4
> - Remove CONFIG_DISTRO_DEFAULTS from microchip_mpfs_icicle_defconfig
> 
> Changes in v3
> - Fix some typos
> - Remove CONFIG_DM, CONFIG_DM_SERIAL, CONFIG_BAUDRATE,
>   CONFIG_SYS_NS16550, CONFIG_SYS_TEXT_BASE and CONFIG_NR_DRAM_BANKS
>   from microchip_mpfs_icicle_defconfig
> - Add config SYS_TEXT_BASE in board kconfig
> - Imply SYS_NS16550 in BOARD_SPECIFIC_OPTIONS
> - select BOARD_EARLY_INIT_F in BOARD_SPECIFIC_OPTIONS
> 
> Changes in v2
> - Fix some typos
> - Rename target board to TARGET_MICROCHIP_ICICLE
> - select CONFIG_BOARD_EARLY_INIT_F in BOARD_SPECIFIC_OPTIONS
> - Remove #ifdef CONFIG_BOARD_EARLY_INIT_F
> ---
>  arch/riscv/Kconfig|  4 ++
>  board/microchip/mpfs_icicle/Kconfig   | 26 +
>  board/microchip/mpfs_icicle/MAINTAINERS   |  7 
>  board/microchip/mpfs_icicle/Makefile  |  7 
>  board/microchip/mpfs_icicle/mpfs_icicle.c | 30 +++
>  configs/microchip_mpfs_icicle_defconfig   |  8 
>  include/configs/microchip_mpfs_icicle.h   | 63 
> +++
>  7 files changed, 145 insertions(+)
>  create mode 100644 board/microchip/mpfs_icicle/Kconfig
>  create mode 100644 board/microchip/mpfs_icicle/MAINTAINERS
>  create mode 100644 board/microchip/mpfs_icicle/Makefile
>  create mode 100644 board/microchip/mpfs_icicle/mpfs_icicle.c
>  create mode 100644 configs/microchip_mpfs_icicle_defconfig
>  create mode 100644 include/configs/microchip_mpfs_icicle.h
> 

Reviewed-by: Lukas Auer 
___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot


[U-Boot] [PATCH v4] riscv: Add Microchip MPFS Icicle board support

2019-05-28 Thread Padmarao Begari
This patch adds Microchip MPFS Icicle board support.
For now, NS16550 serial driver is only enabled.
The Microchip MPFS Icicle defconfig by default builds
U-Boot for M-Mode with SMP support.

Signed-off-by: Padmarao Begari 
Reviewed-by: Bin Meng 
---
Changes in V4
- Remove CONFIG_DISTRO_DEFAULTS from microchip_mpfs_icicle_defconfig

Changes in v3
- Fix some typos
- Remove CONFIG_DM, CONFIG_DM_SERIAL, CONFIG_BAUDRATE,
  CONFIG_SYS_NS16550, CONFIG_SYS_TEXT_BASE and CONFIG_NR_DRAM_BANKS
  from microchip_mpfs_icicle_defconfig
- Add config SYS_TEXT_BASE in board kconfig
- Imply SYS_NS16550 in BOARD_SPECIFIC_OPTIONS
- select BOARD_EARLY_INIT_F in BOARD_SPECIFIC_OPTIONS

Changes in v2
- Fix some typos
- Rename target board to TARGET_MICROCHIP_ICICLE
- select CONFIG_BOARD_EARLY_INIT_F in BOARD_SPECIFIC_OPTIONS
- Remove #ifdef CONFIG_BOARD_EARLY_INIT_F
---
 arch/riscv/Kconfig|  4 ++
 board/microchip/mpfs_icicle/Kconfig   | 26 +
 board/microchip/mpfs_icicle/MAINTAINERS   |  7 
 board/microchip/mpfs_icicle/Makefile  |  7 
 board/microchip/mpfs_icicle/mpfs_icicle.c | 30 +++
 configs/microchip_mpfs_icicle_defconfig   |  8 
 include/configs/microchip_mpfs_icicle.h   | 63 +++
 7 files changed, 145 insertions(+)
 create mode 100644 board/microchip/mpfs_icicle/Kconfig
 create mode 100644 board/microchip/mpfs_icicle/MAINTAINERS
 create mode 100644 board/microchip/mpfs_icicle/Makefile
 create mode 100644 board/microchip/mpfs_icicle/mpfs_icicle.c
 create mode 100644 configs/microchip_mpfs_icicle_defconfig
 create mode 100644 include/configs/microchip_mpfs_icicle.h

diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig
index 0d04d91..8cfc7d0 100644
--- a/arch/riscv/Kconfig
+++ b/arch/riscv/Kconfig
@@ -11,6 +11,9 @@ choice
 config TARGET_AX25_AE350
bool "Support ax25-ae350"
 
+config TARGET_MICROCHIP_ICICLE
+   bool "Support Microchip PolarFire-SoC Icicle Board"
+
 config TARGET_QEMU_VIRT
bool "Support QEMU Virt Board"
 
@@ -48,6 +51,7 @@ config SPL_SYS_DCACHE_OFF
 # board-specific options below
 source "board/AndesTech/ax25-ae350/Kconfig"
 source "board/emulation/qemu-riscv/Kconfig"
+source "board/microchip/mpfs_icicle/Kconfig"
 source "board/sifive/fu540/Kconfig"
 
 # platform-specific options below
diff --git a/board/microchip/mpfs_icicle/Kconfig 
b/board/microchip/mpfs_icicle/Kconfig
new file mode 100644
index 000..bf8e1a1
--- /dev/null
+++ b/board/microchip/mpfs_icicle/Kconfig
@@ -0,0 +1,26 @@
+if TARGET_MICROCHIP_ICICLE
+
+config SYS_BOARD
+   default "mpfs_icicle"
+
+config SYS_VENDOR
+   default "microchip"
+
+config SYS_CPU
+   default "generic"
+
+config SYS_CONFIG_NAME
+   default "microchip_mpfs_icicle"
+
+config SYS_TEXT_BASE
+   default 0x8000 if !RISCV_SMODE
+   default 0x8020 if RISCV_SMODE
+
+config BOARD_SPECIFIC_OPTIONS # dummy
+   def_bool y
+   select GENERIC_RISCV
+   select BOARD_EARLY_INIT_F
+   imply SMP
+   imply SYS_NS16550
+
+endif
diff --git a/board/microchip/mpfs_icicle/MAINTAINERS 
b/board/microchip/mpfs_icicle/MAINTAINERS
new file mode 100644
index 000..22f3b97
--- /dev/null
+++ b/board/microchip/mpfs_icicle/MAINTAINERS
@@ -0,0 +1,7 @@
+Microchip MPFS icicle
+M: Padmarao Begari 
+M: Cyril Jean 
+S: Maintained
+F: board/microchip/mpfs_icicle/
+F: include/configs/microchip_mpfs_icicle.h
+F: configs/microchip_mpfs_icicle_defconfig
diff --git a/board/microchip/mpfs_icicle/Makefile 
b/board/microchip/mpfs_icicle/Makefile
new file mode 100644
index 000..72b0410
--- /dev/null
+++ b/board/microchip/mpfs_icicle/Makefile
@@ -0,0 +1,7 @@
+# SPDX-License-Identifier: GPL-2.0+
+#
+# Copyright (C) 2019 Microchip Technology Inc.
+# Padmarao Begari 
+#
+
+obj-y  += mpfs_icicle.o
diff --git a/board/microchip/mpfs_icicle/mpfs_icicle.c 
b/board/microchip/mpfs_icicle/mpfs_icicle.c
new file mode 100644
index 000..0ef2431
--- /dev/null
+++ b/board/microchip/mpfs_icicle/mpfs_icicle.c
@@ -0,0 +1,30 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2019 Microchip Technology Inc.
+ * Padmarao Begari 
+ */
+
+#include 
+#include 
+#include 
+
+#define MPFS_SYSREG_SOFT_RESET ((unsigned int *)0x20002088)
+
+int board_init(void)
+{
+   /* For now nothing to do here. */
+
+   return 0;
+}
+
+int board_early_init_f(void)
+{
+   unsigned int val;
+
+   /* Reset uart peripheral */
+   val = readl(MPFS_SYSREG_SOFT_RESET);
+   val = (val & ~(1u << 5u));
+   writel(val, MPFS_SYSREG_SOFT_RESET);
+
+   return 0;
+}
diff --git a/configs/microchip_mpfs_icicle_defconfig 
b/configs/microchip_mpfs_icicle_defconfig
new file mode 100644
index 000..a375546
--- /dev/null
+++ b/configs/microchip_mpfs_icicle_defconfig
@@ -0,0 +1,8 @@
+CONFIG_RISCV=y
+CONFIG_ARCH_RV64I=y
+CONFIG_NR_CPUS=5
+CONFIG_TARGET_MICROCHIP_ICICLE=y
+CONFIG_BOOTDELAY=3
+CONFIG_SYS_PROMPT="RISC-V # "
+CONFIG_FIT=y
+CONFIG_OF