diff mbox series

[U-Boot] sifive: riscv: update Hifive Unleashed configuration infrastructure

Message ID 1564404146-8903-2-git-send-email-sagar.kadam@sifive.com
State Changes Requested
Delegated to: Andes
Headers show
Series [U-Boot] sifive: riscv: update Hifive Unleashed configuration infrastructure | expand

Commit Message

Sagar Shrikant Kadam July 29, 2019, 12:42 p.m. UTC
This patch aligns the current implementation of HiFive Unleashed
board configuration framework with the one described in doc/README.kconfig.

Signed-off-by: Sagar Shrikant Kadam <sagar.kadam@sifive.com>
---
 arch/riscv/Kconfig                           |   6 +-
 arch/riscv/cpu/generic/Kconfig               |  12 ---
 arch/riscv/cpu/generic/Makefile              |   6 --
 arch/riscv/cpu/generic/cpu.c                 |  35 -------
 arch/riscv/cpu/generic/dram.c                |  37 -------
 arch/riscv/cpu/u54-mc/Kconfig                |  12 +++
 arch/riscv/cpu/u54-mc/Makefile               |   6 ++
 arch/riscv/cpu/u54-mc/cpu.c                  |  35 +++++++
 arch/riscv/cpu/u54-mc/dram.c                 |  37 +++++++
 arch/riscv/include/asm/arch-fu540-c000/clk.h |  14 +++
 arch/riscv/include/asm/arch-generic/clk.h    |  14 ---
 board/sifive/fu540/Kconfig                   |  49 ----------
 board/sifive/fu540/MAINTAINERS               |   9 --
 board/sifive/fu540/Makefile                  |   5 -
 board/sifive/fu540/fu540.c                   | 139 ---------------------------
 board/sifive/hifive_unleashed/Kconfig        |  52 ++++++++++
 board/sifive/hifive_unleashed/MAINTAINERS    |   9 ++
 board/sifive/hifive_unleashed/Makefile       |   5 +
 board/sifive/hifive_unleashed/fu540.c        | 139 +++++++++++++++++++++++++++
 configs/hifive_unleashed_defconfig           |  11 +++
 configs/sifive_fu540_defconfig               |  11 ---
 include/configs/hifive_unleashed.h           |  47 +++++++++
 include/configs/sifive-fu540.h               |  47 ---------
 23 files changed, 370 insertions(+), 367 deletions(-)
 delete mode 100644 arch/riscv/cpu/generic/Kconfig
 delete mode 100644 arch/riscv/cpu/generic/Makefile
 delete mode 100644 arch/riscv/cpu/generic/cpu.c
 delete mode 100644 arch/riscv/cpu/generic/dram.c
 create mode 100644 arch/riscv/cpu/u54-mc/Kconfig
 create mode 100644 arch/riscv/cpu/u54-mc/Makefile
 create mode 100644 arch/riscv/cpu/u54-mc/cpu.c
 create mode 100644 arch/riscv/cpu/u54-mc/dram.c
 create mode 100644 arch/riscv/include/asm/arch-fu540-c000/clk.h
 delete mode 100644 arch/riscv/include/asm/arch-generic/clk.h
 delete mode 100644 board/sifive/fu540/Kconfig
 delete mode 100644 board/sifive/fu540/MAINTAINERS
 delete mode 100644 board/sifive/fu540/Makefile
 delete mode 100644 board/sifive/fu540/fu540.c
 create mode 100644 board/sifive/hifive_unleashed/Kconfig
 create mode 100644 board/sifive/hifive_unleashed/MAINTAINERS
 create mode 100644 board/sifive/hifive_unleashed/Makefile
 create mode 100644 board/sifive/hifive_unleashed/fu540.c
 create mode 100644 configs/hifive_unleashed_defconfig
 delete mode 100644 configs/sifive_fu540_defconfig
 create mode 100644 include/configs/hifive_unleashed.h
 delete mode 100644 include/configs/sifive-fu540.h

Comments

Bin Meng July 29, 2019, 1:45 p.m. UTC | #1
Hi,

On Mon, Jul 29, 2019 at 8:42 PM Sagar Shrikant Kadam
<sagar.kadam@sifive.com> wrote:
>
> This patch aligns the current implementation of HiFive Unleashed
> board configuration framework with the one described in doc/README.kconfig.
>

Can you please explain why these changes are needed? It looks that the
changes are only to rename the "generic" cpu name to "u54-mc", and
rename the board name "fu540" to "hifive_unleashed"?

This breaks the QEMU virt boards.

> Signed-off-by: Sagar Shrikant Kadam <sagar.kadam@sifive.com>
> ---
>  arch/riscv/Kconfig                           |   6 +-
>  arch/riscv/cpu/generic/Kconfig               |  12 ---
>  arch/riscv/cpu/generic/Makefile              |   6 --
>  arch/riscv/cpu/generic/cpu.c                 |  35 -------
>  arch/riscv/cpu/generic/dram.c                |  37 -------
>  arch/riscv/cpu/u54-mc/Kconfig                |  12 +++
>  arch/riscv/cpu/u54-mc/Makefile               |   6 ++
>  arch/riscv/cpu/u54-mc/cpu.c                  |  35 +++++++
>  arch/riscv/cpu/u54-mc/dram.c                 |  37 +++++++
>  arch/riscv/include/asm/arch-fu540-c000/clk.h |  14 +++
>  arch/riscv/include/asm/arch-generic/clk.h    |  14 ---
>  board/sifive/fu540/Kconfig                   |  49 ----------
>  board/sifive/fu540/MAINTAINERS               |   9 --
>  board/sifive/fu540/Makefile                  |   5 -
>  board/sifive/fu540/fu540.c                   | 139 ---------------------------
>  board/sifive/hifive_unleashed/Kconfig        |  52 ++++++++++
>  board/sifive/hifive_unleashed/MAINTAINERS    |   9 ++
>  board/sifive/hifive_unleashed/Makefile       |   5 +
>  board/sifive/hifive_unleashed/fu540.c        | 139 +++++++++++++++++++++++++++
>  configs/hifive_unleashed_defconfig           |  11 +++
>  configs/sifive_fu540_defconfig               |  11 ---
>  include/configs/hifive_unleashed.h           |  47 +++++++++
>  include/configs/sifive-fu540.h               |  47 ---------
>  23 files changed, 370 insertions(+), 367 deletions(-)
>  delete mode 100644 arch/riscv/cpu/generic/Kconfig
>  delete mode 100644 arch/riscv/cpu/generic/Makefile
>  delete mode 100644 arch/riscv/cpu/generic/cpu.c
>  delete mode 100644 arch/riscv/cpu/generic/dram.c

It looks that you did not use "git mv" command.

>  create mode 100644 arch/riscv/cpu/u54-mc/Kconfig
>  create mode 100644 arch/riscv/cpu/u54-mc/Makefile
>  create mode 100644 arch/riscv/cpu/u54-mc/cpu.c
>  create mode 100644 arch/riscv/cpu/u54-mc/dram.c
>  create mode 100644 arch/riscv/include/asm/arch-fu540-c000/clk.h
>  delete mode 100644 arch/riscv/include/asm/arch-generic/clk.h
>  delete mode 100644 board/sifive/fu540/Kconfig
>  delete mode 100644 board/sifive/fu540/MAINTAINERS
>  delete mode 100644 board/sifive/fu540/Makefile
>  delete mode 100644 board/sifive/fu540/fu540.c
>  create mode 100644 board/sifive/hifive_unleashed/Kconfig
>  create mode 100644 board/sifive/hifive_unleashed/MAINTAINERS
>  create mode 100644 board/sifive/hifive_unleashed/Makefile
>  create mode 100644 board/sifive/hifive_unleashed/fu540.c
>  create mode 100644 configs/hifive_unleashed_defconfig
>  delete mode 100644 configs/sifive_fu540_defconfig
>  create mode 100644 include/configs/hifive_unleashed.h
>  delete mode 100644 include/configs/sifive-fu540.h
>

Regards,
Bin
Anup Patel July 30, 2019, 3:42 a.m. UTC | #2
On Mon, Jul 29, 2019 at 6:13 PM Sagar Shrikant Kadam
<sagar.kadam@sifive.com> wrote:
>
> This patch aligns the current implementation of HiFive Unleashed
> board configuration framework with the one described in doc/README.kconfig.
>
> Signed-off-by: Sagar Shrikant Kadam <sagar.kadam@sifive.com>
> ---
>  arch/riscv/Kconfig                           |   6 +-
>  arch/riscv/cpu/generic/Kconfig               |  12 ---
>  arch/riscv/cpu/generic/Makefile              |   6 --
>  arch/riscv/cpu/generic/cpu.c                 |  35 -------
>  arch/riscv/cpu/generic/dram.c                |  37 -------
>  arch/riscv/cpu/u54-mc/Kconfig                |  12 +++
>  arch/riscv/cpu/u54-mc/Makefile               |   6 ++
>  arch/riscv/cpu/u54-mc/cpu.c                  |  35 +++++++
>  arch/riscv/cpu/u54-mc/dram.c                 |  37 +++++++
>  arch/riscv/include/asm/arch-fu540-c000/clk.h |  14 +++
>  arch/riscv/include/asm/arch-generic/clk.h    |  14 ---
>  board/sifive/fu540/Kconfig                   |  49 ----------
>  board/sifive/fu540/MAINTAINERS               |   9 --
>  board/sifive/fu540/Makefile                  |   5 -
>  board/sifive/fu540/fu540.c                   | 139 ---------------------------
>  board/sifive/hifive_unleashed/Kconfig        |  52 ++++++++++
>  board/sifive/hifive_unleashed/MAINTAINERS    |   9 ++
>  board/sifive/hifive_unleashed/Makefile       |   5 +
>  board/sifive/hifive_unleashed/fu540.c        | 139 +++++++++++++++++++++++++++
>  configs/hifive_unleashed_defconfig           |  11 +++
>  configs/sifive_fu540_defconfig               |  11 ---
>  include/configs/hifive_unleashed.h           |  47 +++++++++
>  include/configs/sifive-fu540.h               |  47 ---------
>  23 files changed, 370 insertions(+), 367 deletions(-)
>  delete mode 100644 arch/riscv/cpu/generic/Kconfig
>  delete mode 100644 arch/riscv/cpu/generic/Makefile
>  delete mode 100644 arch/riscv/cpu/generic/cpu.c
>  delete mode 100644 arch/riscv/cpu/generic/dram.c
>  create mode 100644 arch/riscv/cpu/u54-mc/Kconfig
>  create mode 100644 arch/riscv/cpu/u54-mc/Makefile
>  create mode 100644 arch/riscv/cpu/u54-mc/cpu.c
>  create mode 100644 arch/riscv/cpu/u54-mc/dram.c
>  create mode 100644 arch/riscv/include/asm/arch-fu540-c000/clk.h
>  delete mode 100644 arch/riscv/include/asm/arch-generic/clk.h
>  delete mode 100644 board/sifive/fu540/Kconfig
>  delete mode 100644 board/sifive/fu540/MAINTAINERS
>  delete mode 100644 board/sifive/fu540/Makefile
>  delete mode 100644 board/sifive/fu540/fu540.c
>  create mode 100644 board/sifive/hifive_unleashed/Kconfig
>  create mode 100644 board/sifive/hifive_unleashed/MAINTAINERS
>  create mode 100644 board/sifive/hifive_unleashed/Makefile
>  create mode 100644 board/sifive/hifive_unleashed/fu540.c
>  create mode 100644 configs/hifive_unleashed_defconfig
>  delete mode 100644 configs/sifive_fu540_defconfig
>  create mode 100644 include/configs/hifive_unleashed.h
>  delete mode 100644 include/configs/sifive-fu540.h
>

I agree with Bin's concerns.

Please don't rename generic CPU support under arch/riscv

We should think long-term here. If every SOC vendor starts adding
their CPU support directory under arch/riscv then U-Boot RISC port
will be eventually difficult to manage and we will also have duplicate
code across various CPU support.

IMHO, we should avoid adding new CPU support under arch/riscv
as much as possible. We can call weak functions from generic CPU
support and board support code can implement it. We should only
add new CPU support under arch/riscv when we are not able to
re-use generic CPU support.

Other board support renaming is fine but there is lot of documentation
in U-Boot, OpenSBI and other places which needs to be also updated.

Regards,
Anup
Sagar Shrikant Kadam July 30, 2019, 5:10 p.m. UTC | #3
Hello Bin,

On Mon, Jul 29, 2019 at 7:15 PM Bin Meng <bmeng.cn@gmail.com> wrote:
>
> Hi,
>
> On Mon, Jul 29, 2019 at 8:42 PM Sagar Shrikant Kadam
> <sagar.kadam@sifive.com> wrote:
> >
> > This patch aligns the current implementation of HiFive Unleashed
> > board configuration framework with the one described in doc/README.kconfig.
> >
>
> Can you please explain why these changes are needed? It looks that the
> changes are only to rename the "generic" cpu name to "u54-mc", and
> rename the board name "fu540" to "hifive_unleashed"?
>

This patch is intended to update the naming convention which U-boot mentions in
doc/README.kconfig. As we know that FU540-C000 has a U54-MC CPU core, I thought
of naming it as u54-mc and board name from fu540 to hifive_unleashed
which is the
actual case.

> This breaks the QEMU virt boards.
>

Unfortunately yes. Hence I raised a request in the cover letter for suggestions
accordingly.

> > Signed-off-by: Sagar Shrikant Kadam <sagar.kadam@sifive.com>
> > ---
> >  arch/riscv/Kconfig                           |   6 +-
> >  arch/riscv/cpu/generic/Kconfig               |  12 ---
> >  arch/riscv/cpu/generic/Makefile              |   6 --
> >  arch/riscv/cpu/generic/cpu.c                 |  35 -------
> >  arch/riscv/cpu/generic/dram.c                |  37 -------
> >  arch/riscv/cpu/u54-mc/Kconfig                |  12 +++
> >  arch/riscv/cpu/u54-mc/Makefile               |   6 ++
> >  arch/riscv/cpu/u54-mc/cpu.c                  |  35 +++++++
> >  arch/riscv/cpu/u54-mc/dram.c                 |  37 +++++++
> >  arch/riscv/include/asm/arch-fu540-c000/clk.h |  14 +++
> >  arch/riscv/include/asm/arch-generic/clk.h    |  14 ---
> >  board/sifive/fu540/Kconfig                   |  49 ----------
> >  board/sifive/fu540/MAINTAINERS               |   9 --
> >  board/sifive/fu540/Makefile                  |   5 -
> >  board/sifive/fu540/fu540.c                   | 139 ---------------------------
> >  board/sifive/hifive_unleashed/Kconfig        |  52 ++++++++++
> >  board/sifive/hifive_unleashed/MAINTAINERS    |   9 ++
> >  board/sifive/hifive_unleashed/Makefile       |   5 +
> >  board/sifive/hifive_unleashed/fu540.c        | 139 +++++++++++++++++++++++++++
> >  configs/hifive_unleashed_defconfig           |  11 +++
> >  configs/sifive_fu540_defconfig               |  11 ---
> >  include/configs/hifive_unleashed.h           |  47 +++++++++
> >  include/configs/sifive-fu540.h               |  47 ---------
> >  23 files changed, 370 insertions(+), 367 deletions(-)
> >  delete mode 100644 arch/riscv/cpu/generic/Kconfig
> >  delete mode 100644 arch/riscv/cpu/generic/Makefile
> >  delete mode 100644 arch/riscv/cpu/generic/cpu.c
> >  delete mode 100644 arch/riscv/cpu/generic/dram.c
>
> It looks that you did not use "git mv" command.
>

I do remember using "git mv" here. Probably adding  '-M' (detect renames)
switch to git format-patch would have helped to include the renamed files
instead of delete and create information. Next time I will ensure to include it.
Thanks for pointing this.

BR,
Sagar Kadam

> >  create mode 100644 arch/riscv/cpu/u54-mc/Kconfig
> >  create mode 100644 arch/riscv/cpu/u54-mc/Makefile
> >  create mode 100644 arch/riscv/cpu/u54-mc/cpu.c
> >  create mode 100644 arch/riscv/cpu/u54-mc/dram.c
> >  create mode 100644 arch/riscv/include/asm/arch-fu540-c000/clk.h
> >  delete mode 100644 arch/riscv/include/asm/arch-generic/clk.h
> >  delete mode 100644 board/sifive/fu540/Kconfig
> >  delete mode 100644 board/sifive/fu540/MAINTAINERS
> >  delete mode 100644 board/sifive/fu540/Makefile
> >  delete mode 100644 board/sifive/fu540/fu540.c
> >  create mode 100644 board/sifive/hifive_unleashed/Kconfig
> >  create mode 100644 board/sifive/hifive_unleashed/MAINTAINERS
> >  create mode 100644 board/sifive/hifive_unleashed/Makefile
> >  create mode 100644 board/sifive/hifive_unleashed/fu540.c
> >  create mode 100644 configs/hifive_unleashed_defconfig
> >  delete mode 100644 configs/sifive_fu540_defconfig
> >  create mode 100644 include/configs/hifive_unleashed.h
> >  delete mode 100644 include/configs/sifive-fu540.h
> >
>
> Regards,
> Bin
Sagar Shrikant Kadam July 30, 2019, 5:31 p.m. UTC | #4
Hello Anup,

On Tue, Jul 30, 2019 at 9:12 AM Anup Patel <anup@brainfault.org> wrote:
>
> On Mon, Jul 29, 2019 at 6:13 PM Sagar Shrikant Kadam
> <sagar.kadam@sifive.com> wrote:
> >
> > This patch aligns the current implementation of HiFive Unleashed
> > board configuration framework with the one described in doc/README.kconfig.
> >
> > Signed-off-by: Sagar Shrikant Kadam <sagar.kadam@sifive.com>
> > ---
> >  arch/riscv/Kconfig                           |   6 +-
> >  arch/riscv/cpu/generic/Kconfig               |  12 ---
> >  arch/riscv/cpu/generic/Makefile              |   6 --
> >  arch/riscv/cpu/generic/cpu.c                 |  35 -------
> >  arch/riscv/cpu/generic/dram.c                |  37 -------
> >  arch/riscv/cpu/u54-mc/Kconfig                |  12 +++
> >  arch/riscv/cpu/u54-mc/Makefile               |   6 ++
> >  arch/riscv/cpu/u54-mc/cpu.c                  |  35 +++++++
> >  arch/riscv/cpu/u54-mc/dram.c                 |  37 +++++++
> >  arch/riscv/include/asm/arch-fu540-c000/clk.h |  14 +++
> >  arch/riscv/include/asm/arch-generic/clk.h    |  14 ---
> >  board/sifive/fu540/Kconfig                   |  49 ----------
> >  board/sifive/fu540/MAINTAINERS               |   9 --
> >  board/sifive/fu540/Makefile                  |   5 -
> >  board/sifive/fu540/fu540.c                   | 139 ---------------------------
> >  board/sifive/hifive_unleashed/Kconfig        |  52 ++++++++++
> >  board/sifive/hifive_unleashed/MAINTAINERS    |   9 ++
> >  board/sifive/hifive_unleashed/Makefile       |   5 +
> >  board/sifive/hifive_unleashed/fu540.c        | 139 +++++++++++++++++++++++++++
> >  configs/hifive_unleashed_defconfig           |  11 +++
> >  configs/sifive_fu540_defconfig               |  11 ---
> >  include/configs/hifive_unleashed.h           |  47 +++++++++
> >  include/configs/sifive-fu540.h               |  47 ---------
> >  23 files changed, 370 insertions(+), 367 deletions(-)
> >  delete mode 100644 arch/riscv/cpu/generic/Kconfig
> >  delete mode 100644 arch/riscv/cpu/generic/Makefile
> >  delete mode 100644 arch/riscv/cpu/generic/cpu.c
> >  delete mode 100644 arch/riscv/cpu/generic/dram.c
> >  create mode 100644 arch/riscv/cpu/u54-mc/Kconfig
> >  create mode 100644 arch/riscv/cpu/u54-mc/Makefile
> >  create mode 100644 arch/riscv/cpu/u54-mc/cpu.c
> >  create mode 100644 arch/riscv/cpu/u54-mc/dram.c
> >  create mode 100644 arch/riscv/include/asm/arch-fu540-c000/clk.h
> >  delete mode 100644 arch/riscv/include/asm/arch-generic/clk.h
> >  delete mode 100644 board/sifive/fu540/Kconfig
> >  delete mode 100644 board/sifive/fu540/MAINTAINERS
> >  delete mode 100644 board/sifive/fu540/Makefile
> >  delete mode 100644 board/sifive/fu540/fu540.c
> >  create mode 100644 board/sifive/hifive_unleashed/Kconfig
> >  create mode 100644 board/sifive/hifive_unleashed/MAINTAINERS
> >  create mode 100644 board/sifive/hifive_unleashed/Makefile
> >  create mode 100644 board/sifive/hifive_unleashed/fu540.c
> >  create mode 100644 configs/hifive_unleashed_defconfig
> >  delete mode 100644 configs/sifive_fu540_defconfig
> >  create mode 100644 include/configs/hifive_unleashed.h
> >  delete mode 100644 include/configs/sifive-fu540.h
> >
>
> I agree with Bin's concerns.
>
> Please don't rename generic CPU support under arch/riscv
>
> We should think long-term here. If every SOC vendor starts adding
> their CPU support directory under arch/riscv then U-Boot RISC port
> will be eventually difficult to manage and we will also have duplicate
> code across various CPU support.
>
> IMHO, we should avoid adding new CPU support under arch/riscv
> as much as possible. We can call weak functions from generic CPU
> support and board support code can implement it. We should only
> add new CPU support under arch/riscv when we are not able to
> re-use generic CPU support.
>

Yes, your points are valid. I am Ok with it.
My intent here was that as the support for riscv in U-boot is in its
early stages
and doing it now would be better as minimum changes will be required and
going ahead as other CPU vendors introduce their CPU under arch/riscv/
we could isolate a generic CPU code as it grows.

>
> Other board support renaming is fine but there is lot of documentation
If board support renaming is fine. Shall I submit another patch
excluding the CPU
changes?

Thanks & BR,
Sagar Kadam
>
>
> in U-Boot, OpenSBI and other places which needs to be also updated.
>
> Regards,
> Anup
Anup Patel July 31, 2019, 8:20 a.m. UTC | #5
On Tue, Jul 30, 2019 at 11:01 PM Sagar Kadam <sagar.kadam@sifive.com> wrote:
>
> Hello Anup,
>
> On Tue, Jul 30, 2019 at 9:12 AM Anup Patel <anup@brainfault.org> wrote:
> >
> > On Mon, Jul 29, 2019 at 6:13 PM Sagar Shrikant Kadam
> > <sagar.kadam@sifive.com> wrote:
> > >
> > > This patch aligns the current implementation of HiFive Unleashed
> > > board configuration framework with the one described in doc/README.kconfig.
> > >
> > > Signed-off-by: Sagar Shrikant Kadam <sagar.kadam@sifive.com>
> > > ---
> > >  arch/riscv/Kconfig                           |   6 +-
> > >  arch/riscv/cpu/generic/Kconfig               |  12 ---
> > >  arch/riscv/cpu/generic/Makefile              |   6 --
> > >  arch/riscv/cpu/generic/cpu.c                 |  35 -------
> > >  arch/riscv/cpu/generic/dram.c                |  37 -------
> > >  arch/riscv/cpu/u54-mc/Kconfig                |  12 +++
> > >  arch/riscv/cpu/u54-mc/Makefile               |   6 ++
> > >  arch/riscv/cpu/u54-mc/cpu.c                  |  35 +++++++
> > >  arch/riscv/cpu/u54-mc/dram.c                 |  37 +++++++
> > >  arch/riscv/include/asm/arch-fu540-c000/clk.h |  14 +++
> > >  arch/riscv/include/asm/arch-generic/clk.h    |  14 ---
> > >  board/sifive/fu540/Kconfig                   |  49 ----------
> > >  board/sifive/fu540/MAINTAINERS               |   9 --
> > >  board/sifive/fu540/Makefile                  |   5 -
> > >  board/sifive/fu540/fu540.c                   | 139 ---------------------------
> > >  board/sifive/hifive_unleashed/Kconfig        |  52 ++++++++++
> > >  board/sifive/hifive_unleashed/MAINTAINERS    |   9 ++
> > >  board/sifive/hifive_unleashed/Makefile       |   5 +
> > >  board/sifive/hifive_unleashed/fu540.c        | 139 +++++++++++++++++++++++++++
> > >  configs/hifive_unleashed_defconfig           |  11 +++
> > >  configs/sifive_fu540_defconfig               |  11 ---
> > >  include/configs/hifive_unleashed.h           |  47 +++++++++
> > >  include/configs/sifive-fu540.h               |  47 ---------
> > >  23 files changed, 370 insertions(+), 367 deletions(-)
> > >  delete mode 100644 arch/riscv/cpu/generic/Kconfig
> > >  delete mode 100644 arch/riscv/cpu/generic/Makefile
> > >  delete mode 100644 arch/riscv/cpu/generic/cpu.c
> > >  delete mode 100644 arch/riscv/cpu/generic/dram.c
> > >  create mode 100644 arch/riscv/cpu/u54-mc/Kconfig
> > >  create mode 100644 arch/riscv/cpu/u54-mc/Makefile
> > >  create mode 100644 arch/riscv/cpu/u54-mc/cpu.c
> > >  create mode 100644 arch/riscv/cpu/u54-mc/dram.c
> > >  create mode 100644 arch/riscv/include/asm/arch-fu540-c000/clk.h
> > >  delete mode 100644 arch/riscv/include/asm/arch-generic/clk.h
> > >  delete mode 100644 board/sifive/fu540/Kconfig
> > >  delete mode 100644 board/sifive/fu540/MAINTAINERS
> > >  delete mode 100644 board/sifive/fu540/Makefile
> > >  delete mode 100644 board/sifive/fu540/fu540.c
> > >  create mode 100644 board/sifive/hifive_unleashed/Kconfig
> > >  create mode 100644 board/sifive/hifive_unleashed/MAINTAINERS
> > >  create mode 100644 board/sifive/hifive_unleashed/Makefile
> > >  create mode 100644 board/sifive/hifive_unleashed/fu540.c
> > >  create mode 100644 configs/hifive_unleashed_defconfig
> > >  delete mode 100644 configs/sifive_fu540_defconfig
> > >  create mode 100644 include/configs/hifive_unleashed.h
> > >  delete mode 100644 include/configs/sifive-fu540.h
> > >
> >
> > I agree with Bin's concerns.
> >
> > Please don't rename generic CPU support under arch/riscv
> >
> > We should think long-term here. If every SOC vendor starts adding
> > their CPU support directory under arch/riscv then U-Boot RISC port
> > will be eventually difficult to manage and we will also have duplicate
> > code across various CPU support.
> >
> > IMHO, we should avoid adding new CPU support under arch/riscv
> > as much as possible. We can call weak functions from generic CPU
> > support and board support code can implement it. We should only
> > add new CPU support under arch/riscv when we are not able to
> > re-use generic CPU support.
> >
>
> Yes, your points are valid. I am Ok with it.
> My intent here was that as the support for riscv in U-boot is in its
> early stages
> and doing it now would be better as minimum changes will be required and
> going ahead as other CPU vendors introduce their CPU under arch/riscv/
> we could isolate a generic CPU code as it grows.

Thanks.

Let's try to make arch/riscv/cpu/generic extensible from start itself so
that it is relatively easy to fit newer RISC-V SOCs and boards.

>
> >
> > Other board support renaming is fine but there is lot of documentation
> If board support renaming is fine. Shall I submit another patch
> excluding the CPU
> changes?

Yes, please send another revision.

Also have consider updating U-Boot and OpenSBI documentation as
separate patches.

Regards,
Anup
Andreas Schwab July 31, 2019, 8:32 a.m. UTC | #6
On Jul 30 2019, Sagar Kadam <sagar.kadam@sifive.com> wrote:

> I do remember using "git mv" here.

git mv is identical to git rm + git add.  A git repository has no
concept of file renames.

Andreas.
Sagar Shrikant Kadam Aug. 1, 2019, 2:56 p.m. UTC | #7
Hi Anup,

On Wed, Jul 31, 2019 at 1:50 PM Anup Patel <anup@brainfault.org> wrote:
>
> On Tue, Jul 30, 2019 at 11:01 PM Sagar Kadam <sagar.kadam@sifive.com> wrote:
> >
> > Hello Anup,
> >
> > On Tue, Jul 30, 2019 at 9:12 AM Anup Patel <anup@brainfault.org> wrote:
> > >
> > > On Mon, Jul 29, 2019 at 6:13 PM Sagar Shrikant Kadam
> > > <sagar.kadam@sifive.com> wrote:
> > > >
> > > > This patch aligns the current implementation of HiFive Unleashed
> > > > board configuration framework with the one described in doc/README.kconfig.
> > > >
> > > > Signed-off-by: Sagar Shrikant Kadam <sagar.kadam@sifive.com>
> > > > ---
> > > >  arch/riscv/Kconfig                           |   6 +-
> > > >  arch/riscv/cpu/generic/Kconfig               |  12 ---
> > > >  arch/riscv/cpu/generic/Makefile              |   6 --
> > > >  arch/riscv/cpu/generic/cpu.c                 |  35 -------
> > > >  arch/riscv/cpu/generic/dram.c                |  37 -------
> > > >  arch/riscv/cpu/u54-mc/Kconfig                |  12 +++
> > > >  arch/riscv/cpu/u54-mc/Makefile               |   6 ++
> > > >  arch/riscv/cpu/u54-mc/cpu.c                  |  35 +++++++
> > > >  arch/riscv/cpu/u54-mc/dram.c                 |  37 +++++++
> > > >  arch/riscv/include/asm/arch-fu540-c000/clk.h |  14 +++
> > > >  arch/riscv/include/asm/arch-generic/clk.h    |  14 ---
> > > >  board/sifive/fu540/Kconfig                   |  49 ----------
> > > >  board/sifive/fu540/MAINTAINERS               |   9 --
> > > >  board/sifive/fu540/Makefile                  |   5 -
> > > >  board/sifive/fu540/fu540.c                   | 139 ---------------------------
> > > >  board/sifive/hifive_unleashed/Kconfig        |  52 ++++++++++
> > > >  board/sifive/hifive_unleashed/MAINTAINERS    |   9 ++
> > > >  board/sifive/hifive_unleashed/Makefile       |   5 +
> > > >  board/sifive/hifive_unleashed/fu540.c        | 139 +++++++++++++++++++++++++++
> > > >  configs/hifive_unleashed_defconfig           |  11 +++
> > > >  configs/sifive_fu540_defconfig               |  11 ---
> > > >  include/configs/hifive_unleashed.h           |  47 +++++++++
> > > >  include/configs/sifive-fu540.h               |  47 ---------
> > > >  23 files changed, 370 insertions(+), 367 deletions(-)
> > > >  delete mode 100644 arch/riscv/cpu/generic/Kconfig
> > > >  delete mode 100644 arch/riscv/cpu/generic/Makefile
> > > >  delete mode 100644 arch/riscv/cpu/generic/cpu.c
> > > >  delete mode 100644 arch/riscv/cpu/generic/dram.c
> > > >  create mode 100644 arch/riscv/cpu/u54-mc/Kconfig
> > > >  create mode 100644 arch/riscv/cpu/u54-mc/Makefile
> > > >  create mode 100644 arch/riscv/cpu/u54-mc/cpu.c
> > > >  create mode 100644 arch/riscv/cpu/u54-mc/dram.c
> > > >  create mode 100644 arch/riscv/include/asm/arch-fu540-c000/clk.h
> > > >  delete mode 100644 arch/riscv/include/asm/arch-generic/clk.h
> > > >  delete mode 100644 board/sifive/fu540/Kconfig
> > > >  delete mode 100644 board/sifive/fu540/MAINTAINERS
> > > >  delete mode 100644 board/sifive/fu540/Makefile
> > > >  delete mode 100644 board/sifive/fu540/fu540.c
> > > >  create mode 100644 board/sifive/hifive_unleashed/Kconfig
> > > >  create mode 100644 board/sifive/hifive_unleashed/MAINTAINERS
> > > >  create mode 100644 board/sifive/hifive_unleashed/Makefile
> > > >  create mode 100644 board/sifive/hifive_unleashed/fu540.c
> > > >  create mode 100644 configs/hifive_unleashed_defconfig
> > > >  delete mode 100644 configs/sifive_fu540_defconfig
> > > >  create mode 100644 include/configs/hifive_unleashed.h
> > > >  delete mode 100644 include/configs/sifive-fu540.h
> > > >
> > >
> > > I agree with Bin's concerns.
> > >
> > > Please don't rename generic CPU support under arch/riscv
> > >
> > > We should think long-term here. If every SOC vendor starts adding
> > > their CPU support directory under arch/riscv then U-Boot RISC port
> > > will be eventually difficult to manage and we will also have duplicate
> > > code across various CPU support.
> > >
> > > IMHO, we should avoid adding new CPU support under arch/riscv
> > > as much as possible. We can call weak functions from generic CPU
> > > support and board support code can implement it. We should only
> > > add new CPU support under arch/riscv when we are not able to
> > > re-use generic CPU support.
> > >
> >
> > Yes, your points are valid. I am Ok with it.
> > My intent here was that as the support for riscv in U-boot is in its
> > early stages
> > and doing it now would be better as minimum changes will be required and
> > going ahead as other CPU vendors introduce their CPU under arch/riscv/
> > we could isolate a generic CPU code as it grows.
>
> Thanks.
>
> Let's try to make arch/riscv/cpu/generic extensible from start itself so
> that it is relatively easy to fit newer RISC-V SOCs and boards.
>
Thanks. So can I assume that we agree on adding new CPU support under
arch/riscv. Will provide a new patch for the same.
> >
> > >
> > > Other board support renaming is fine but there is lot of documentation
> > If board support renaming is fine. Shall I submit another patch
> > excluding the CPU
> > changes?
>
> Yes, please send another revision.
>
Yes, I will do send another revision.

> Also have consider updating U-Boot and OpenSBI documentation as
> separate patches.
>
Yes, I will also update the docs accordingly.

Thanks & BR,
Sagar Kadam
> Regards,
> Anup
Sagar Shrikant Kadam Aug. 1, 2019, 3 p.m. UTC | #8
Hi Andreas,

On Wed, Jul 31, 2019 at 2:02 PM Andreas Schwab <schwab@suse.de> wrote:
>
> On Jul 30 2019, Sagar Kadam <sagar.kadam@sifive.com> wrote:
>
> > I do remember using "git mv" here.
>
> git mv is identical to git rm + git add.  A git repository has no
> concept of file renames.
>
> Andreas.
>
Thanks, for clarifying.

Regards,
Sagar Kadam
> --
> Andreas Schwab, SUSE Labs, schwab@suse.de
> GPG Key fingerprint = 0196 BAD8 1CE9 1970 F4BE  1748 E4D4 88E3 0EEA B9D7
> "And now for something completely different."
Anup Patel Aug. 1, 2019, 3:56 p.m. UTC | #9
On Thu, Aug 1, 2019 at 8:26 PM Sagar Kadam <sagar.kadam@sifive.com> wrote:
>
> Hi Anup,
>
> On Wed, Jul 31, 2019 at 1:50 PM Anup Patel <anup@brainfault.org> wrote:
> >
> > On Tue, Jul 30, 2019 at 11:01 PM Sagar Kadam <sagar.kadam@sifive.com> wrote:
> > >
> > > Hello Anup,
> > >
> > > On Tue, Jul 30, 2019 at 9:12 AM Anup Patel <anup@brainfault.org> wrote:
> > > >
> > > > On Mon, Jul 29, 2019 at 6:13 PM Sagar Shrikant Kadam
> > > > <sagar.kadam@sifive.com> wrote:
> > > > >
> > > > > This patch aligns the current implementation of HiFive Unleashed
> > > > > board configuration framework with the one described in doc/README.kconfig.
> > > > >
> > > > > Signed-off-by: Sagar Shrikant Kadam <sagar.kadam@sifive.com>
> > > > > ---
> > > > >  arch/riscv/Kconfig                           |   6 +-
> > > > >  arch/riscv/cpu/generic/Kconfig               |  12 ---
> > > > >  arch/riscv/cpu/generic/Makefile              |   6 --
> > > > >  arch/riscv/cpu/generic/cpu.c                 |  35 -------
> > > > >  arch/riscv/cpu/generic/dram.c                |  37 -------
> > > > >  arch/riscv/cpu/u54-mc/Kconfig                |  12 +++
> > > > >  arch/riscv/cpu/u54-mc/Makefile               |   6 ++
> > > > >  arch/riscv/cpu/u54-mc/cpu.c                  |  35 +++++++
> > > > >  arch/riscv/cpu/u54-mc/dram.c                 |  37 +++++++
> > > > >  arch/riscv/include/asm/arch-fu540-c000/clk.h |  14 +++
> > > > >  arch/riscv/include/asm/arch-generic/clk.h    |  14 ---
> > > > >  board/sifive/fu540/Kconfig                   |  49 ----------
> > > > >  board/sifive/fu540/MAINTAINERS               |   9 --
> > > > >  board/sifive/fu540/Makefile                  |   5 -
> > > > >  board/sifive/fu540/fu540.c                   | 139 ---------------------------
> > > > >  board/sifive/hifive_unleashed/Kconfig        |  52 ++++++++++
> > > > >  board/sifive/hifive_unleashed/MAINTAINERS    |   9 ++
> > > > >  board/sifive/hifive_unleashed/Makefile       |   5 +
> > > > >  board/sifive/hifive_unleashed/fu540.c        | 139 +++++++++++++++++++++++++++
> > > > >  configs/hifive_unleashed_defconfig           |  11 +++
> > > > >  configs/sifive_fu540_defconfig               |  11 ---
> > > > >  include/configs/hifive_unleashed.h           |  47 +++++++++
> > > > >  include/configs/sifive-fu540.h               |  47 ---------
> > > > >  23 files changed, 370 insertions(+), 367 deletions(-)
> > > > >  delete mode 100644 arch/riscv/cpu/generic/Kconfig
> > > > >  delete mode 100644 arch/riscv/cpu/generic/Makefile
> > > > >  delete mode 100644 arch/riscv/cpu/generic/cpu.c
> > > > >  delete mode 100644 arch/riscv/cpu/generic/dram.c
> > > > >  create mode 100644 arch/riscv/cpu/u54-mc/Kconfig
> > > > >  create mode 100644 arch/riscv/cpu/u54-mc/Makefile
> > > > >  create mode 100644 arch/riscv/cpu/u54-mc/cpu.c
> > > > >  create mode 100644 arch/riscv/cpu/u54-mc/dram.c
> > > > >  create mode 100644 arch/riscv/include/asm/arch-fu540-c000/clk.h
> > > > >  delete mode 100644 arch/riscv/include/asm/arch-generic/clk.h
> > > > >  delete mode 100644 board/sifive/fu540/Kconfig
> > > > >  delete mode 100644 board/sifive/fu540/MAINTAINERS
> > > > >  delete mode 100644 board/sifive/fu540/Makefile
> > > > >  delete mode 100644 board/sifive/fu540/fu540.c
> > > > >  create mode 100644 board/sifive/hifive_unleashed/Kconfig
> > > > >  create mode 100644 board/sifive/hifive_unleashed/MAINTAINERS
> > > > >  create mode 100644 board/sifive/hifive_unleashed/Makefile
> > > > >  create mode 100644 board/sifive/hifive_unleashed/fu540.c
> > > > >  create mode 100644 configs/hifive_unleashed_defconfig
> > > > >  delete mode 100644 configs/sifive_fu540_defconfig
> > > > >  create mode 100644 include/configs/hifive_unleashed.h
> > > > >  delete mode 100644 include/configs/sifive-fu540.h
> > > > >
> > > >
> > > > I agree with Bin's concerns.
> > > >
> > > > Please don't rename generic CPU support under arch/riscv
> > > >
> > > > We should think long-term here. If every SOC vendor starts adding
> > > > their CPU support directory under arch/riscv then U-Boot RISC port
> > > > will be eventually difficult to manage and we will also have duplicate
> > > > code across various CPU support.
> > > >
> > > > IMHO, we should avoid adding new CPU support under arch/riscv
> > > > as much as possible. We can call weak functions from generic CPU
> > > > support and board support code can implement it. We should only
> > > > add new CPU support under arch/riscv when we are not able to
> > > > re-use generic CPU support.
> > > >
> > >
> > > Yes, your points are valid. I am Ok with it.
> > > My intent here was that as the support for riscv in U-boot is in its
> > > early stages
> > > and doing it now would be better as minimum changes will be required and
> > > going ahead as other CPU vendors introduce their CPU under arch/riscv/
> > > we could isolate a generic CPU code as it grows.
> >
> > Thanks.
> >
> > Let's try to make arch/riscv/cpu/generic extensible from start itself so
> > that it is relatively easy to fit newer RISC-V SOCs and boards.
> >
> Thanks. So can I assume that we agree on adding new CPU support under
> arch/riscv. Will provide a new patch for the same.

I think you misunderstood my previous comment.

We should use the generic CPU support from start itself and promote use of
generic CPU support as much as possible.

Adding specific CPU support under arch/riscv will require strong justification
about why generic CPU support is not suitable for particular SOC.

Regards,
Anup

> > >
> > > >
> > > > Other board support renaming is fine but there is lot of documentation
> > > If board support renaming is fine. Shall I submit another patch
> > > excluding the CPU
> > > changes?
> >
> > Yes, please send another revision.
> >
> Yes, I will do send another revision.
>
> > Also have consider updating U-Boot and OpenSBI documentation as
> > separate patches.
> >
> Yes, I will also update the docs accordingly.
>
> Thanks & BR,
> Sagar Kadam
> > Regards,
> > Anup
Sagar Shrikant Kadam Aug. 1, 2019, 5:01 p.m. UTC | #10
Hi Anup,

On Thu, Aug 1, 2019 at 9:26 PM Anup Patel <anup@brainfault.org> wrote:
>
> On Thu, Aug 1, 2019 at 8:26 PM Sagar Kadam <sagar.kadam@sifive.com> wrote:
> >
> > Hi Anup,
> >
> > On Wed, Jul 31, 2019 at 1:50 PM Anup Patel <anup@brainfault.org> wrote:
> > >
> > > On Tue, Jul 30, 2019 at 11:01 PM Sagar Kadam <sagar.kadam@sifive.com> wrote:
> > > >
> > > > Hello Anup,
> > > >
> > > > On Tue, Jul 30, 2019 at 9:12 AM Anup Patel <anup@brainfault.org> wrote:
> > > > >
> > > > > On Mon, Jul 29, 2019 at 6:13 PM Sagar Shrikant Kadam
> > > > > <sagar.kadam@sifive.com> wrote:
> > > > > >
> > > > > > This patch aligns the current implementation of HiFive Unleashed
> > > > > > board configuration framework with the one described in doc/README.kconfig.
> > > > > >
> > > > > > Signed-off-by: Sagar Shrikant Kadam <sagar.kadam@sifive.com>
> > > > > > ---
> > > > > >  arch/riscv/Kconfig                           |   6 +-
> > > > > >  arch/riscv/cpu/generic/Kconfig               |  12 ---
> > > > > >  arch/riscv/cpu/generic/Makefile              |   6 --
> > > > > >  arch/riscv/cpu/generic/cpu.c                 |  35 -------
> > > > > >  arch/riscv/cpu/generic/dram.c                |  37 -------
> > > > > >  arch/riscv/cpu/u54-mc/Kconfig                |  12 +++
> > > > > >  arch/riscv/cpu/u54-mc/Makefile               |   6 ++
> > > > > >  arch/riscv/cpu/u54-mc/cpu.c                  |  35 +++++++
> > > > > >  arch/riscv/cpu/u54-mc/dram.c                 |  37 +++++++
> > > > > >  arch/riscv/include/asm/arch-fu540-c000/clk.h |  14 +++
> > > > > >  arch/riscv/include/asm/arch-generic/clk.h    |  14 ---
> > > > > >  board/sifive/fu540/Kconfig                   |  49 ----------
> > > > > >  board/sifive/fu540/MAINTAINERS               |   9 --
> > > > > >  board/sifive/fu540/Makefile                  |   5 -
> > > > > >  board/sifive/fu540/fu540.c                   | 139 ---------------------------
> > > > > >  board/sifive/hifive_unleashed/Kconfig        |  52 ++++++++++
> > > > > >  board/sifive/hifive_unleashed/MAINTAINERS    |   9 ++
> > > > > >  board/sifive/hifive_unleashed/Makefile       |   5 +
> > > > > >  board/sifive/hifive_unleashed/fu540.c        | 139 +++++++++++++++++++++++++++
> > > > > >  configs/hifive_unleashed_defconfig           |  11 +++
> > > > > >  configs/sifive_fu540_defconfig               |  11 ---
> > > > > >  include/configs/hifive_unleashed.h           |  47 +++++++++
> > > > > >  include/configs/sifive-fu540.h               |  47 ---------
> > > > > >  23 files changed, 370 insertions(+), 367 deletions(-)
> > > > > >  delete mode 100644 arch/riscv/cpu/generic/Kconfig
> > > > > >  delete mode 100644 arch/riscv/cpu/generic/Makefile
> > > > > >  delete mode 100644 arch/riscv/cpu/generic/cpu.c
> > > > > >  delete mode 100644 arch/riscv/cpu/generic/dram.c
> > > > > >  create mode 100644 arch/riscv/cpu/u54-mc/Kconfig
> > > > > >  create mode 100644 arch/riscv/cpu/u54-mc/Makefile
> > > > > >  create mode 100644 arch/riscv/cpu/u54-mc/cpu.c
> > > > > >  create mode 100644 arch/riscv/cpu/u54-mc/dram.c
> > > > > >  create mode 100644 arch/riscv/include/asm/arch-fu540-c000/clk.h
> > > > > >  delete mode 100644 arch/riscv/include/asm/arch-generic/clk.h
> > > > > >  delete mode 100644 board/sifive/fu540/Kconfig
> > > > > >  delete mode 100644 board/sifive/fu540/MAINTAINERS
> > > > > >  delete mode 100644 board/sifive/fu540/Makefile
> > > > > >  delete mode 100644 board/sifive/fu540/fu540.c
> > > > > >  create mode 100644 board/sifive/hifive_unleashed/Kconfig
> > > > > >  create mode 100644 board/sifive/hifive_unleashed/MAINTAINERS
> > > > > >  create mode 100644 board/sifive/hifive_unleashed/Makefile
> > > > > >  create mode 100644 board/sifive/hifive_unleashed/fu540.c
> > > > > >  create mode 100644 configs/hifive_unleashed_defconfig
> > > > > >  delete mode 100644 configs/sifive_fu540_defconfig
> > > > > >  create mode 100644 include/configs/hifive_unleashed.h
> > > > > >  delete mode 100644 include/configs/sifive-fu540.h
> > > > > >
> > > > >
> > > > > I agree with Bin's concerns.
> > > > >
> > > > > Please don't rename generic CPU support under arch/riscv
> > > > >
> > > > > We should think long-term here. If every SOC vendor starts adding
> > > > > their CPU support directory under arch/riscv then U-Boot RISC port
> > > > > will be eventually difficult to manage and we will also have duplicate
> > > > > code across various CPU support.
> > > > >
> > > > > IMHO, we should avoid adding new CPU support under arch/riscv
> > > > > as much as possible. We can call weak functions from generic CPU
> > > > > support and board support code can implement it. We should only
> > > > > add new CPU support under arch/riscv when we are not able to
> > > > > re-use generic CPU support.
> > > > >
> > > >
> > > > Yes, your points are valid. I am Ok with it.
> > > > My intent here was that as the support for riscv in U-boot is in its
> > > > early stages
> > > > and doing it now would be better as minimum changes will be required and
> > > > going ahead as other CPU vendors introduce their CPU under arch/riscv/
> > > > we could isolate a generic CPU code as it grows.
> > >
> > > Thanks.
> > >
> > > Let's try to make arch/riscv/cpu/generic extensible from start itself so
> > > that it is relatively easy to fit newer RISC-V SOCs and boards.
> > >
> > Thanks. So can I assume that we agree on adding new CPU support under
> > arch/riscv. Will provide a new patch for the same.
>
> I think you misunderstood my previous comment.
>
> We should use the generic CPU support from start itself and promote use of
> generic CPU support as much as possible.
>

Ohh, Ok, thanks for clarifying my assumption.

> Adding specific CPU support under arch/riscv will require strong justification
> about why generic CPU support is not suitable for particular SOC.
>
> Regards,
> Anup
>
Regards,
Sagar
> > > >
> > > > >
> > > > > Other board support renaming is fine but there is lot of documentation
> > > > If board support renaming is fine. Shall I submit another patch
> > > > excluding the CPU
> > > > changes?
> > >
> > > Yes, please send another revision.
> > >
> > Yes, I will do send another revision.
> >
> > > Also have consider updating U-Boot and OpenSBI documentation as
> > > separate patches.
> > >
> > Yes, I will also update the docs accordingly.
> >
> > Thanks & BR,
> > Sagar Kadam
> > > Regards,
> > > Anup
diff mbox series

Patch

diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig
index 8cfc7d0..82891fd 100644
--- a/arch/riscv/Kconfig
+++ b/arch/riscv/Kconfig
@@ -17,7 +17,7 @@  config TARGET_MICROCHIP_ICICLE
 config TARGET_QEMU_VIRT
 	bool "Support QEMU Virt Board"
 
-config TARGET_SIFIVE_FU540
+config TARGET_SIFIVE_HIFIVE_UNLEASHED
 	bool "Support SiFive FU540 Board"
 
 endchoice
@@ -52,11 +52,11 @@  config SPL_SYS_DCACHE_OFF
 source "board/AndesTech/ax25-ae350/Kconfig"
 source "board/emulation/qemu-riscv/Kconfig"
 source "board/microchip/mpfs_icicle/Kconfig"
-source "board/sifive/fu540/Kconfig"
+source "board/sifive/hifive_unleashed/Kconfig"
 
 # platform-specific options below
 source "arch/riscv/cpu/ax25/Kconfig"
-source "arch/riscv/cpu/generic/Kconfig"
+source "arch/riscv/cpu/u54-mc/Kconfig"
 
 # architecture-specific options below
 
diff --git a/arch/riscv/cpu/generic/Kconfig b/arch/riscv/cpu/generic/Kconfig
deleted file mode 100644
index 1d6ab50..0000000
--- a/arch/riscv/cpu/generic/Kconfig
+++ /dev/null
@@ -1,12 +0,0 @@ 
-# SPDX-License-Identifier: GPL-2.0+
-#
-# Copyright (C) 2018, Bin Meng <bmeng.cn@gmail.com>
-
-config GENERIC_RISCV
-	bool
-	select ARCH_EARLY_INIT_R
-	imply CPU
-	imply CPU_RISCV
-	imply RISCV_TIMER
-	imply SIFIVE_CLINT if RISCV_MMODE
-	imply CMD_CPU
diff --git a/arch/riscv/cpu/generic/Makefile b/arch/riscv/cpu/generic/Makefile
deleted file mode 100644
index 258e462..0000000
--- a/arch/riscv/cpu/generic/Makefile
+++ /dev/null
@@ -1,6 +0,0 @@ 
-# SPDX-License-Identifier: GPL-2.0+
-#
-# Copyright (C) 2018, Bin Meng <bmeng.cn@gmail.com>
-
-obj-y += dram.o
-obj-y += cpu.o
diff --git a/arch/riscv/cpu/generic/cpu.c b/arch/riscv/cpu/generic/cpu.c
deleted file mode 100644
index ad2950c..0000000
--- a/arch/riscv/cpu/generic/cpu.c
+++ /dev/null
@@ -1,35 +0,0 @@ 
-// SPDX-License-Identifier: GPL-2.0+
-/*
- * Copyright (C) 2018, Bin Meng <bmeng.cn@gmail.com>
- */
-
-#include <common.h>
-#include <dm.h>
-
-/*
- * cleanup_before_linux() is called just before we call linux
- * it prepares the processor for linux
- *
- * we disable interrupt and caches.
- */
-int cleanup_before_linux(void)
-{
-	disable_interrupts();
-
-	cache_flush();
-
-	return 0;
-}
-
-/* To enumerate devices on the /soc/ node, create a "simple-bus" driver */
-static const struct udevice_id riscv_virtio_soc_ids[] = {
-	{ .compatible = "riscv-virtio-soc" },
-	{ }
-};
-
-U_BOOT_DRIVER(riscv_virtio_soc) = {
-	.name = "riscv_virtio_soc",
-	.id = UCLASS_SIMPLE_BUS,
-	.of_match = riscv_virtio_soc_ids,
-	.flags = DM_FLAG_PRE_RELOC,
-};
diff --git a/arch/riscv/cpu/generic/dram.c b/arch/riscv/cpu/generic/dram.c
deleted file mode 100644
index b7b1207..0000000
--- a/arch/riscv/cpu/generic/dram.c
+++ /dev/null
@@ -1,37 +0,0 @@ 
-// SPDX-License-Identifier: GPL-2.0+
-/*
- * Copyright (C) 2018, Bin Meng <bmeng.cn@gmail.com>
- */
-
-#include <common.h>
-#include <fdtdec.h>
-#include <linux/sizes.h>
-
-DECLARE_GLOBAL_DATA_PTR;
-
-int dram_init(void)
-{
-	return fdtdec_setup_mem_size_base();
-}
-
-int dram_init_banksize(void)
-{
-	return fdtdec_setup_memory_banksize();
-}
-
-ulong board_get_usable_ram_top(ulong total_size)
-{
-#ifdef CONFIG_64BIT
-	/*
-	 * Ensure that we run from first 4GB so that all
-	 * addresses used by U-Boot are 32bit addresses.
-	 *
-	 * This in-turn ensures that 32bit DMA capable
-	 * devices work fine because DMA mapping APIs will
-	 * provide 32bit DMA addresses only.
-	 */
-	if (gd->ram_top > SZ_4G)
-		return SZ_4G;
-#endif
-	return gd->ram_top;
-}
diff --git a/arch/riscv/cpu/u54-mc/Kconfig b/arch/riscv/cpu/u54-mc/Kconfig
new file mode 100644
index 0000000..60189a7
--- /dev/null
+++ b/arch/riscv/cpu/u54-mc/Kconfig
@@ -0,0 +1,12 @@ 
+# SPDX-License-Identifier: GPL-2.0+
+#
+# Copyright (C) 2018, Bin Meng <bmeng.cn@gmail.com>
+
+config U54_MC_RISCV
+	bool
+	select ARCH_EARLY_INIT_R
+	imply CPU
+	imply CPU_RISCV
+	imply RISCV_TIMER
+	imply SIFIVE_CLINT if RISCV_MMODE
+	imply CMD_CPU
diff --git a/arch/riscv/cpu/u54-mc/Makefile b/arch/riscv/cpu/u54-mc/Makefile
new file mode 100644
index 0000000..258e462
--- /dev/null
+++ b/arch/riscv/cpu/u54-mc/Makefile
@@ -0,0 +1,6 @@ 
+# SPDX-License-Identifier: GPL-2.0+
+#
+# Copyright (C) 2018, Bin Meng <bmeng.cn@gmail.com>
+
+obj-y += dram.o
+obj-y += cpu.o
diff --git a/arch/riscv/cpu/u54-mc/cpu.c b/arch/riscv/cpu/u54-mc/cpu.c
new file mode 100644
index 0000000..ad2950c
--- /dev/null
+++ b/arch/riscv/cpu/u54-mc/cpu.c
@@ -0,0 +1,35 @@ 
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2018, Bin Meng <bmeng.cn@gmail.com>
+ */
+
+#include <common.h>
+#include <dm.h>
+
+/*
+ * cleanup_before_linux() is called just before we call linux
+ * it prepares the processor for linux
+ *
+ * we disable interrupt and caches.
+ */
+int cleanup_before_linux(void)
+{
+	disable_interrupts();
+
+	cache_flush();
+
+	return 0;
+}
+
+/* To enumerate devices on the /soc/ node, create a "simple-bus" driver */
+static const struct udevice_id riscv_virtio_soc_ids[] = {
+	{ .compatible = "riscv-virtio-soc" },
+	{ }
+};
+
+U_BOOT_DRIVER(riscv_virtio_soc) = {
+	.name = "riscv_virtio_soc",
+	.id = UCLASS_SIMPLE_BUS,
+	.of_match = riscv_virtio_soc_ids,
+	.flags = DM_FLAG_PRE_RELOC,
+};
diff --git a/arch/riscv/cpu/u54-mc/dram.c b/arch/riscv/cpu/u54-mc/dram.c
new file mode 100644
index 0000000..b7b1207
--- /dev/null
+++ b/arch/riscv/cpu/u54-mc/dram.c
@@ -0,0 +1,37 @@ 
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2018, Bin Meng <bmeng.cn@gmail.com>
+ */
+
+#include <common.h>
+#include <fdtdec.h>
+#include <linux/sizes.h>
+
+DECLARE_GLOBAL_DATA_PTR;
+
+int dram_init(void)
+{
+	return fdtdec_setup_mem_size_base();
+}
+
+int dram_init_banksize(void)
+{
+	return fdtdec_setup_memory_banksize();
+}
+
+ulong board_get_usable_ram_top(ulong total_size)
+{
+#ifdef CONFIG_64BIT
+	/*
+	 * Ensure that we run from first 4GB so that all
+	 * addresses used by U-Boot are 32bit addresses.
+	 *
+	 * This in-turn ensures that 32bit DMA capable
+	 * devices work fine because DMA mapping APIs will
+	 * provide 32bit DMA addresses only.
+	 */
+	if (gd->ram_top > SZ_4G)
+		return SZ_4G;
+#endif
+	return gd->ram_top;
+}
diff --git a/arch/riscv/include/asm/arch-fu540-c000/clk.h b/arch/riscv/include/asm/arch-fu540-c000/clk.h
new file mode 100644
index 0000000..1631f5f
--- /dev/null
+++ b/arch/riscv/include/asm/arch-fu540-c000/clk.h
@@ -0,0 +1,14 @@ 
+/* SPDX-License-Identifier: GPL-2.0+ */
+/*
+ * Copyright (c) 2019 Western Digital Corporation or its affiliates.
+ *
+ * Authors:
+ *   Anup Patel <anup.patel@wdc.com>
+ */
+
+#ifndef __ASM_RISCV_ARCH_CLK_H
+#define __ASM_RISCV_ARCH_CLK_H
+
+/* Note: This is a placeholder header for driver compilation. */
+
+#endif
diff --git a/arch/riscv/include/asm/arch-generic/clk.h b/arch/riscv/include/asm/arch-generic/clk.h
deleted file mode 100644
index 1631f5f..0000000
--- a/arch/riscv/include/asm/arch-generic/clk.h
+++ /dev/null
@@ -1,14 +0,0 @@ 
-/* SPDX-License-Identifier: GPL-2.0+ */
-/*
- * Copyright (c) 2019 Western Digital Corporation or its affiliates.
- *
- * Authors:
- *   Anup Patel <anup.patel@wdc.com>
- */
-
-#ifndef __ASM_RISCV_ARCH_CLK_H
-#define __ASM_RISCV_ARCH_CLK_H
-
-/* Note: This is a placeholder header for driver compilation. */
-
-#endif
diff --git a/board/sifive/fu540/Kconfig b/board/sifive/fu540/Kconfig
deleted file mode 100644
index 5d65080..0000000
--- a/board/sifive/fu540/Kconfig
+++ /dev/null
@@ -1,49 +0,0 @@ 
-if TARGET_SIFIVE_FU540
-
-config SYS_BOARD
-	default "fu540"
-
-config SYS_VENDOR
-	default "sifive"
-
-config SYS_CPU
-	default "generic"
-
-config SYS_CONFIG_NAME
-	default "sifive-fu540"
-
-config SYS_TEXT_BASE
-	default 0x80000000 if !RISCV_SMODE
-	default 0x80200000 if RISCV_SMODE
-
-config BOARD_SPECIFIC_OPTIONS # dummy
-	def_bool y
-	select GENERIC_RISCV
-	imply CMD_DHCP
-	imply CMD_EXT2
-	imply CMD_EXT4
-	imply CMD_FAT
-	imply CMD_FS_GENERIC
-	imply CMD_NET
-	imply CMD_PING
-	imply CLK_SIFIVE
-	imply CLK_SIFIVE_FU540_PRCI
-	imply DOS_PARTITION
-	imply EFI_PARTITION
-	imply IP_DYN
-	imply ISO_PARTITION
-	imply MACB
-	imply MII
-	imply NET_RANDOM_ETHADDR
-	imply PHY_LIB
-	imply PHY_MSCC
-	imply SIFIVE_SERIAL
-	imply SPI
-	imply SPI_SIFIVE
-	imply MMC
-	imply MMC_SPI
-	imply MMC_BROKEN_CD
-	imply CMD_MMC
-	imply SMP
-
-endif
diff --git a/board/sifive/fu540/MAINTAINERS b/board/sifive/fu540/MAINTAINERS
deleted file mode 100644
index 702d803..0000000
--- a/board/sifive/fu540/MAINTAINERS
+++ /dev/null
@@ -1,9 +0,0 @@ 
-SiFive FU540 BOARD
-M:	Paul Walmsley <paul.walmsley@sifive.com>
-M:	Palmer Dabbelt <palmer@sifive.com>
-M:	Anup Patel <anup.patel@wdc.com>
-M:	Atish Patra <atish.patra@wdc.com>
-S:	Maintained
-F:	board/sifive/fu540/
-F:	include/configs/sifive-fu540.h
-F:	configs/sifive_fu540_defconfig
diff --git a/board/sifive/fu540/Makefile b/board/sifive/fu540/Makefile
deleted file mode 100644
index 6e1862c..0000000
--- a/board/sifive/fu540/Makefile
+++ /dev/null
@@ -1,5 +0,0 @@ 
-# SPDX-License-Identifier: GPL-2.0+
-#
-# Copyright (c) 2019 Western Digital Corporation or its affiliates.
-
-obj-y	+= fu540.o
diff --git a/board/sifive/fu540/fu540.c b/board/sifive/fu540/fu540.c
deleted file mode 100644
index 11daf1a..0000000
--- a/board/sifive/fu540/fu540.c
+++ /dev/null
@@ -1,139 +0,0 @@ 
-// SPDX-License-Identifier: GPL-2.0+
-/*
- * Copyright (c) 2019 Western Digital Corporation or its affiliates.
- *
- * Authors:
- *   Anup Patel <anup.patel@wdc.com>
- */
-
-#include <common.h>
-#include <dm.h>
-#include <linux/delay.h>
-#include <linux/io.h>
-
-#ifdef CONFIG_MISC_INIT_R
-
-#define FU540_OTP_BASE_ADDR			0x10070000
-
-struct fu540_otp_regs {
-	u32 pa;     /* Address input */
-	u32 paio;   /* Program address input */
-	u32 pas;    /* Program redundancy cell selection input */
-	u32 pce;    /* OTP Macro enable input */
-	u32 pclk;   /* Clock input */
-	u32 pdin;   /* Write data input */
-	u32 pdout;  /* Read data output */
-	u32 pdstb;  /* Deep standby mode enable input (active low) */
-	u32 pprog;  /* Program mode enable input */
-	u32 ptc;    /* Test column enable input */
-	u32 ptm;    /* Test mode enable input */
-	u32 ptm_rep;/* Repair function test mode enable input */
-	u32 ptr;    /* Test row enable input */
-	u32 ptrim;  /* Repair function enable input */
-	u32 pwe;    /* Write enable input (defines program cycle) */
-} __packed;
-
-#define BYTES_PER_FUSE				4
-#define NUM_FUSES				0x1000
-
-static int fu540_otp_read(int offset, void *buf, int size)
-{
-	struct fu540_otp_regs *regs = (void __iomem *)FU540_OTP_BASE_ADDR;
-	unsigned int i;
-	int fuseidx = offset / BYTES_PER_FUSE;
-	int fusecount = size / BYTES_PER_FUSE;
-	u32 fusebuf[fusecount];
-
-	/* check bounds */
-	if (offset < 0 || size < 0)
-		return -EINVAL;
-	if (fuseidx >= NUM_FUSES)
-		return -EINVAL;
-	if ((fuseidx + fusecount) > NUM_FUSES)
-		return -EINVAL;
-
-	/* init OTP */
-	writel(0x01, &regs->pdstb); /* wake up from stand-by */
-	writel(0x01, &regs->ptrim); /* enable repair function */
-	writel(0x01, &regs->pce);   /* enable input */
-
-	/* read all requested fuses */
-	for (i = 0; i < fusecount; i++, fuseidx++) {
-		writel(fuseidx, &regs->pa);
-
-		/* cycle clock to read */
-		writel(0x01, &regs->pclk);
-		mdelay(1);
-		writel(0x00, &regs->pclk);
-		mdelay(1);
-
-		/* read the value */
-		fusebuf[i] = readl(&regs->pdout);
-	}
-
-	/* shut down */
-	writel(0, &regs->pce);
-	writel(0, &regs->ptrim);
-	writel(0, &regs->pdstb);
-
-	/* copy out */
-	memcpy(buf, fusebuf, size);
-
-	return 0;
-}
-
-static u32 fu540_read_serialnum(void)
-{
-	int ret;
-	u32 serial[2] = {0};
-
-	for (int i = 0xfe * 4; i > 0; i -= 8) {
-		ret = fu540_otp_read(i, serial, sizeof(serial));
-		if (ret) {
-			printf("%s: error reading from OTP\n", __func__);
-			break;
-		}
-		if (serial[0] == ~serial[1])
-			return serial[0];
-	}
-
-	return 0;
-}
-
-static void fu540_setup_macaddr(u32 serialnum)
-{
-	/* Default MAC address */
-	unsigned char mac[6] = { 0x70, 0xb3, 0xd5, 0x92, 0xf0, 0x00 };
-
-	/*
-	 * We derive our board MAC address by ORing last three bytes
-	 * of board serial number to above default MAC address.
-	 *
-	 * This logic of deriving board MAC address is taken from
-	 * SiFive FSBL and is kept unchanged.
-	 */
-	mac[5] |= (serialnum >>  0) & 0xff;
-	mac[4] |= (serialnum >>  8) & 0xff;
-	mac[3] |= (serialnum >> 16) & 0xff;
-
-	/* Update environment variable */
-	eth_env_set_enetaddr("ethaddr", mac);
-}
-
-int misc_init_r(void)
-{
-	/* Set ethaddr environment variable if not set */
-	if (!env_get("ethaddr"))
-		fu540_setup_macaddr(fu540_read_serialnum());
-
-	return 0;
-}
-
-#endif
-
-int board_init(void)
-{
-	/* For now nothing to do here. */
-
-	return 0;
-}
diff --git a/board/sifive/hifive_unleashed/Kconfig b/board/sifive/hifive_unleashed/Kconfig
new file mode 100644
index 0000000..484b262
--- /dev/null
+++ b/board/sifive/hifive_unleashed/Kconfig
@@ -0,0 +1,52 @@ 
+if TARGET_SIFIVE_HIFIVE_UNLEASHED
+
+config SYS_BOARD
+	default "hifive_unleashed"
+
+config SYS_VENDOR
+	default "sifive"
+
+config SYS_SOC
+	default "fu540-c000"
+
+config SYS_CPU
+	default "u54-mc"
+
+config SYS_CONFIG_NAME
+	default "hifive_unleashed"
+
+config SYS_TEXT_BASE
+	default 0x80000000 if !RISCV_SMODE
+	default 0x80200000 if RISCV_SMODE
+
+config BOARD_SPECIFIC_OPTIONS # dummy
+	def_bool y
+	select U54_MC_RISCV
+	imply CMD_DHCP
+	imply CMD_EXT2
+	imply CMD_EXT4
+	imply CMD_FAT
+	imply CMD_FS_GENERIC
+	imply CMD_NET
+	imply CMD_PING
+	imply CLK_SIFIVE
+	imply CLK_SIFIVE_FU540_PRCI
+	imply DOS_PARTITION
+	imply EFI_PARTITION
+	imply IP_DYN
+	imply ISO_PARTITION
+	imply MACB
+	imply MII
+	imply NET_RANDOM_ETHADDR
+	imply PHY_LIB
+	imply PHY_MSCC
+	imply SIFIVE_SERIAL
+	imply SPI
+	imply SPI_SIFIVE
+	imply MMC
+	imply MMC_SPI
+	imply MMC_BROKEN_CD
+	imply CMD_MMC
+	imply SMP
+
+endif
diff --git a/board/sifive/hifive_unleashed/MAINTAINERS b/board/sifive/hifive_unleashed/MAINTAINERS
new file mode 100644
index 0000000..94539dd
--- /dev/null
+++ b/board/sifive/hifive_unleashed/MAINTAINERS
@@ -0,0 +1,9 @@ 
+SiFive HIFIVE UNLEASHED BOARD
+M:	Paul Walmsley <paul.walmsley@sifive.com>
+M:	Palmer Dabbelt <palmer@sifive.com>
+M:	Anup Patel <anup.patel@wdc.com>
+M:	Atish Patra <atish.patra@wdc.com>
+S:	Maintained
+F:	board/sifive/hifive_unleashed/
+F:	include/configs/hifive_unleashed.h
+F:	configs/hifive_unleashed_defconfig
diff --git a/board/sifive/hifive_unleashed/Makefile b/board/sifive/hifive_unleashed/Makefile
new file mode 100644
index 0000000..6e1862c
--- /dev/null
+++ b/board/sifive/hifive_unleashed/Makefile
@@ -0,0 +1,5 @@ 
+# SPDX-License-Identifier: GPL-2.0+
+#
+# Copyright (c) 2019 Western Digital Corporation or its affiliates.
+
+obj-y	+= fu540.o
diff --git a/board/sifive/hifive_unleashed/fu540.c b/board/sifive/hifive_unleashed/fu540.c
new file mode 100644
index 0000000..11daf1a
--- /dev/null
+++ b/board/sifive/hifive_unleashed/fu540.c
@@ -0,0 +1,139 @@ 
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (c) 2019 Western Digital Corporation or its affiliates.
+ *
+ * Authors:
+ *   Anup Patel <anup.patel@wdc.com>
+ */
+
+#include <common.h>
+#include <dm.h>
+#include <linux/delay.h>
+#include <linux/io.h>
+
+#ifdef CONFIG_MISC_INIT_R
+
+#define FU540_OTP_BASE_ADDR			0x10070000
+
+struct fu540_otp_regs {
+	u32 pa;     /* Address input */
+	u32 paio;   /* Program address input */
+	u32 pas;    /* Program redundancy cell selection input */
+	u32 pce;    /* OTP Macro enable input */
+	u32 pclk;   /* Clock input */
+	u32 pdin;   /* Write data input */
+	u32 pdout;  /* Read data output */
+	u32 pdstb;  /* Deep standby mode enable input (active low) */
+	u32 pprog;  /* Program mode enable input */
+	u32 ptc;    /* Test column enable input */
+	u32 ptm;    /* Test mode enable input */
+	u32 ptm_rep;/* Repair function test mode enable input */
+	u32 ptr;    /* Test row enable input */
+	u32 ptrim;  /* Repair function enable input */
+	u32 pwe;    /* Write enable input (defines program cycle) */
+} __packed;
+
+#define BYTES_PER_FUSE				4
+#define NUM_FUSES				0x1000
+
+static int fu540_otp_read(int offset, void *buf, int size)
+{
+	struct fu540_otp_regs *regs = (void __iomem *)FU540_OTP_BASE_ADDR;
+	unsigned int i;
+	int fuseidx = offset / BYTES_PER_FUSE;
+	int fusecount = size / BYTES_PER_FUSE;
+	u32 fusebuf[fusecount];
+
+	/* check bounds */
+	if (offset < 0 || size < 0)
+		return -EINVAL;
+	if (fuseidx >= NUM_FUSES)
+		return -EINVAL;
+	if ((fuseidx + fusecount) > NUM_FUSES)
+		return -EINVAL;
+
+	/* init OTP */
+	writel(0x01, &regs->pdstb); /* wake up from stand-by */
+	writel(0x01, &regs->ptrim); /* enable repair function */
+	writel(0x01, &regs->pce);   /* enable input */
+
+	/* read all requested fuses */
+	for (i = 0; i < fusecount; i++, fuseidx++) {
+		writel(fuseidx, &regs->pa);
+
+		/* cycle clock to read */
+		writel(0x01, &regs->pclk);
+		mdelay(1);
+		writel(0x00, &regs->pclk);
+		mdelay(1);
+
+		/* read the value */
+		fusebuf[i] = readl(&regs->pdout);
+	}
+
+	/* shut down */
+	writel(0, &regs->pce);
+	writel(0, &regs->ptrim);
+	writel(0, &regs->pdstb);
+
+	/* copy out */
+	memcpy(buf, fusebuf, size);
+
+	return 0;
+}
+
+static u32 fu540_read_serialnum(void)
+{
+	int ret;
+	u32 serial[2] = {0};
+
+	for (int i = 0xfe * 4; i > 0; i -= 8) {
+		ret = fu540_otp_read(i, serial, sizeof(serial));
+		if (ret) {
+			printf("%s: error reading from OTP\n", __func__);
+			break;
+		}
+		if (serial[0] == ~serial[1])
+			return serial[0];
+	}
+
+	return 0;
+}
+
+static void fu540_setup_macaddr(u32 serialnum)
+{
+	/* Default MAC address */
+	unsigned char mac[6] = { 0x70, 0xb3, 0xd5, 0x92, 0xf0, 0x00 };
+
+	/*
+	 * We derive our board MAC address by ORing last three bytes
+	 * of board serial number to above default MAC address.
+	 *
+	 * This logic of deriving board MAC address is taken from
+	 * SiFive FSBL and is kept unchanged.
+	 */
+	mac[5] |= (serialnum >>  0) & 0xff;
+	mac[4] |= (serialnum >>  8) & 0xff;
+	mac[3] |= (serialnum >> 16) & 0xff;
+
+	/* Update environment variable */
+	eth_env_set_enetaddr("ethaddr", mac);
+}
+
+int misc_init_r(void)
+{
+	/* Set ethaddr environment variable if not set */
+	if (!env_get("ethaddr"))
+		fu540_setup_macaddr(fu540_read_serialnum());
+
+	return 0;
+}
+
+#endif
+
+int board_init(void)
+{
+	/* For now nothing to do here. */
+
+	return 0;
+}
diff --git a/configs/hifive_unleashed_defconfig b/configs/hifive_unleashed_defconfig
new file mode 100644
index 0000000..5a3b421
--- /dev/null
+++ b/configs/hifive_unleashed_defconfig
@@ -0,0 +1,11 @@ 
+CONFIG_RISCV=y
+CONFIG_NR_DRAM_BANKS=1
+CONFIG_TARGET_SIFIVE_HIFIVE_UNLEASHED=y
+CONFIG_ARCH_RV64I=y
+CONFIG_RISCV_SMODE=y
+CONFIG_DISTRO_DEFAULTS=y
+CONFIG_FIT=y
+CONFIG_DISPLAY_CPUINFO=y
+CONFIG_DISPLAY_BOARDINFO=y
+CONFIG_MISC_INIT_R=y
+CONFIG_OF_PRIOR_STAGE=y
diff --git a/configs/sifive_fu540_defconfig b/configs/sifive_fu540_defconfig
deleted file mode 100644
index f192037..0000000
--- a/configs/sifive_fu540_defconfig
+++ /dev/null
@@ -1,11 +0,0 @@ 
-CONFIG_RISCV=y
-CONFIG_NR_DRAM_BANKS=1
-CONFIG_TARGET_SIFIVE_FU540=y
-CONFIG_ARCH_RV64I=y
-CONFIG_RISCV_SMODE=y
-CONFIG_DISTRO_DEFAULTS=y
-CONFIG_FIT=y
-CONFIG_DISPLAY_CPUINFO=y
-CONFIG_DISPLAY_BOARDINFO=y
-CONFIG_MISC_INIT_R=y
-CONFIG_OF_PRIOR_STAGE=y
diff --git a/include/configs/hifive_unleashed.h b/include/configs/hifive_unleashed.h
new file mode 100644
index 0000000..858b7a7
--- /dev/null
+++ b/include/configs/hifive_unleashed.h
@@ -0,0 +1,47 @@ 
+/* SPDX-License-Identifier: GPL-2.0+ */
+/*
+ * Copyright (c) 2019 Western Digital Corporation or its affiliates.
+ *
+ * Authors:
+ *   Anup Patel <anup.patel@wdc.com>
+ */
+
+#ifndef __CONFIG_H
+#define __CONFIG_H
+
+#include <linux/sizes.h>
+
+#define CONFIG_SYS_SDRAM_BASE		0x80000000
+#define CONFIG_SYS_INIT_SP_ADDR		(CONFIG_SYS_SDRAM_BASE + SZ_2M)
+
+#define CONFIG_SYS_LOAD_ADDR		(CONFIG_SYS_SDRAM_BASE + SZ_2M)
+
+#define CONFIG_SYS_MALLOC_LEN		SZ_8M
+
+#define CONFIG_SYS_BOOTM_LEN		SZ_64M
+
+#define CONFIG_STANDALONE_LOAD_ADDR	0x80200000
+
+/* Environment options */
+#define CONFIG_ENV_SIZE			SZ_128K
+
+#define BOOT_TARGET_DEVICES(func) \
+	func(DHCP, dhcp, na)
+
+#include <config_distro_bootcmd.h>
+
+#define CONFIG_EXTRA_ENV_SETTINGS \
+	"fdt_high=0xffffffffffffffff\0" \
+	"initrd_high=0xffffffffffffffff\0" \
+	"kernel_addr_r=0x84000000\0" \
+	"fdt_addr_r=0x88000000\0" \
+	"scriptaddr=0x88100000\0" \
+	"pxefile_addr_r=0x88200000\0" \
+	"ramdisk_addr_r=0x88300000\0" \
+	BOOTENV
+
+#define CONFIG_PREBOOT \
+	"setenv fdt_addr ${fdtcontroladdr};" \
+	"fdt addr ${fdtcontroladdr};"
+
+#endif /* __CONFIG_H */
diff --git a/include/configs/sifive-fu540.h b/include/configs/sifive-fu540.h
deleted file mode 100644
index 858b7a7..0000000
--- a/include/configs/sifive-fu540.h
+++ /dev/null
@@ -1,47 +0,0 @@ 
-/* SPDX-License-Identifier: GPL-2.0+ */
-/*
- * Copyright (c) 2019 Western Digital Corporation or its affiliates.
- *
- * Authors:
- *   Anup Patel <anup.patel@wdc.com>
- */
-
-#ifndef __CONFIG_H
-#define __CONFIG_H
-
-#include <linux/sizes.h>
-
-#define CONFIG_SYS_SDRAM_BASE		0x80000000
-#define CONFIG_SYS_INIT_SP_ADDR		(CONFIG_SYS_SDRAM_BASE + SZ_2M)
-
-#define CONFIG_SYS_LOAD_ADDR		(CONFIG_SYS_SDRAM_BASE + SZ_2M)
-
-#define CONFIG_SYS_MALLOC_LEN		SZ_8M
-
-#define CONFIG_SYS_BOOTM_LEN		SZ_64M
-
-#define CONFIG_STANDALONE_LOAD_ADDR	0x80200000
-
-/* Environment options */
-#define CONFIG_ENV_SIZE			SZ_128K
-
-#define BOOT_TARGET_DEVICES(func) \
-	func(DHCP, dhcp, na)
-
-#include <config_distro_bootcmd.h>
-
-#define CONFIG_EXTRA_ENV_SETTINGS \
-	"fdt_high=0xffffffffffffffff\0" \
-	"initrd_high=0xffffffffffffffff\0" \
-	"kernel_addr_r=0x84000000\0" \
-	"fdt_addr_r=0x88000000\0" \
-	"scriptaddr=0x88100000\0" \
-	"pxefile_addr_r=0x88200000\0" \
-	"ramdisk_addr_r=0x88300000\0" \
-	BOOTENV
-
-#define CONFIG_PREBOOT \
-	"setenv fdt_addr ${fdtcontroladdr};" \
-	"fdt addr ${fdtcontroladdr};"
-
-#endif /* __CONFIG_H */