mbox series

[U-Boot,v8,00/15] SiFive FU540 Support

Message ID 20190220054531.5345-1-anup.patel@wdc.com
Headers show
Series SiFive FU540 Support | expand

Message

Anup Patel Feb. 20, 2019, 5:45 a.m. UTC
This patchset adds SiFive Freedom Unleashed (FU540) support
to RISC-V U-Boot.

The patches are based upon latest U-Boot source tree
(git://git.denx.de/u-boot.git) at v2019.04-rc2 commit id
f14de0014c56093feecf42ca38b8ae5b3878f176

All drivers namely: SiFive PRCI, SiFive Serial, and Cadance
MACB Ethernet work fine on actual SiFive Unleashed board and
QEMU sifive_u machine.

Changes since v7:
 - Rebased patches to latest U-Boot source tree
 - Rename "ret" to "rate" in clk_fixed_factor_get_rate()
   of PATCH9

Changes since v6:
 - Rebased patches to latest U-Boot source tree
 - Droped PATCH1 and PATCH2. Instead added a PATCH to
   select CREATE_ARCH_SYMLINK for RISC-V
 - Few typo fixes in SiFive FU540 readme

Changes since v5:
 - Added PATCH16 to fix INITRD passing to Linux using bootm
   for U-Boot RISC-V

Changes since v4:
 - Removed #ifndef from macb_enable_clk() in PATCH7
 - Updated test/dm/clk.c in PATCH10 to test fixed factor clock
   using sandbox

Changes since v3:
 - Added patch to un-ignore arch/riscv/include/asm/arch
 - Added patch to fix mrproper make target to only remove
   arch/*/include/asm/arch paths which are symlinks
 - Added patch to have place-holder asm/arch/clk.h for RISC-V
 - Removed "#ifndef CONFIG_RISCV" from macb clk API patch

Changes since v2:
 - Fixed typo in PATCH3 comments
 - Removed "#if" from clk_fixed_factor_ofdata_to_platdata() in PATCH7
 - Added PATCH12 for SiFive FU540 README guide

Changes since v1:
 - Re-ordered SoB in patches with multiple SoB
 - Simplified board_get_usable_ram_top() added by PATCH3

Anup Patel (10):
  riscv: Enable create symlink using kconfig
  riscv: Rename cpu/qemu to cpu/generic
  riscv: Add asm/dma-mapping.h for DMA mappings
  riscv: Add place-holder asm/arch/clk.h for driver compilation
  riscv: generic: Ensure that U-Boot runs within 4GB for 64bit systems
  net: macb: Fix clk API usage for RISC-V systems
  clk: Add SiFive FU540 PRCI clock driver
  clk: Add fixed-factor clock driver
  riscv: Add SiFive FU540 board support
  riscv: Enable CONFIG_SYS_BOOT_RAMDISK_HIGH for using initrd

Atish Patra (5):
  net: macb: Fix GEM hardware detection
  drivers: serial_sifive: Fix baud rate calculation
  drivers: serial_sifive: Skip baudrate config if no input clock
  cpu: Bind timer driver for boot hart
  doc: Add a readme guide for SiFive FU540

 arch/Kconfig                                  |   1 +
 arch/riscv/Kconfig                            |   6 +-
 arch/riscv/cpu/{qemu => generic}/Kconfig      |   2 +-
 arch/riscv/cpu/{qemu => generic}/Makefile     |   0
 arch/riscv/cpu/{qemu => generic}/cpu.c        |   0
 arch/riscv/cpu/generic/dram.c                 |  37 ++
 arch/riscv/cpu/qemu/dram.c                    |  17 -
 arch/riscv/include/asm/arch-generic/clk.h     |  14 +
 arch/riscv/include/asm/config.h               |   1 +
 arch/riscv/include/asm/dma-mapping.h          |  38 ++
 arch/sandbox/dts/test.dts                     |   8 +
 board/emulation/qemu-riscv/Kconfig            |   4 +-
 .../qemu-riscv => sifive/fu540}/Kconfig       |  36 +-
 board/sifive/fu540/MAINTAINERS                |   9 +
 board/sifive/fu540/Makefile                   |   5 +
 board/sifive/fu540/fu540.c                    |  17 +
 configs/sifive_fu540_defconfig                |  11 +
 doc/README.sifive-fu540                       | 303 +++++++++
 drivers/clk/Kconfig                           |   1 +
 drivers/clk/Makefile                          |   5 +-
 drivers/clk/clk_fixed_factor.c                |  72 +++
 drivers/clk/sifive/Kconfig                    |  19 +
 drivers/clk/sifive/Makefile                   |   5 +
 .../clk/sifive/analogbits-wrpll-cln28hpc.h    | 101 +++
 drivers/clk/sifive/fu540-prci.c               | 604 ++++++++++++++++++
 drivers/clk/sifive/wrpll-cln28hpc.c           | 390 +++++++++++
 drivers/cpu/riscv_cpu.c                       |   7 +-
 drivers/net/macb.c                            |  11 +-
 drivers/serial/serial_sifive.c                |  60 +-
 include/configs/sifive-fu540.h                |  43 ++
 include/dt-bindings/clk/sifive-fu540-prci.h   |  29 +
 test/dm/clk.c                                 |   5 +-
 32 files changed, 1795 insertions(+), 66 deletions(-)
 rename arch/riscv/cpu/{qemu => generic}/Kconfig (91%)
 rename arch/riscv/cpu/{qemu => generic}/Makefile (100%)
 rename arch/riscv/cpu/{qemu => generic}/cpu.c (100%)
 create mode 100644 arch/riscv/cpu/generic/dram.c
 delete mode 100644 arch/riscv/cpu/qemu/dram.c
 create mode 100644 arch/riscv/include/asm/arch-generic/clk.h
 create mode 100644 arch/riscv/include/asm/dma-mapping.h
 copy board/{emulation/qemu-riscv => sifive/fu540}/Kconfig (57%)
 create mode 100644 board/sifive/fu540/MAINTAINERS
 create mode 100644 board/sifive/fu540/Makefile
 create mode 100644 board/sifive/fu540/fu540.c
 create mode 100644 configs/sifive_fu540_defconfig
 create mode 100644 doc/README.sifive-fu540
 create mode 100644 drivers/clk/clk_fixed_factor.c
 create mode 100644 drivers/clk/sifive/Kconfig
 create mode 100644 drivers/clk/sifive/Makefile
 create mode 100644 drivers/clk/sifive/analogbits-wrpll-cln28hpc.h
 create mode 100644 drivers/clk/sifive/fu540-prci.c
 create mode 100644 drivers/clk/sifive/wrpll-cln28hpc.c
 create mode 100644 include/configs/sifive-fu540.h
 create mode 100644 include/dt-bindings/clk/sifive-fu540-prci.h

Comments

Tom Rini Feb. 21, 2019, 11:41 p.m. UTC | #1
On Wed, Feb 20, 2019 at 05:45:59AM +0000, Anup Patel wrote:

> This patchset adds SiFive Freedom Unleashed (FU540) support
> to RISC-V U-Boot.
> 
> The patches are based upon latest U-Boot source tree
> (git://git.denx.de/u-boot.git) at v2019.04-rc2 commit id
> f14de0014c56093feecf42ca38b8ae5b3878f176
> 
> All drivers namely: SiFive PRCI, SiFive Serial, and Cadance
> MACB Ethernet work fine on actual SiFive Unleashed board and
> QEMU sifive_u machine.

Is the sifive_u QEMU machine in upstream QEMU?  If so, lets add it to
the travis file and run tests.  Thanks!
Palmer Dabbelt Feb. 22, 2019, 12:03 a.m. UTC | #2
On Thu, 21 Feb 2019 15:41:02 PST (-0800), trini@konsulko.com wrote:
> On Wed, Feb 20, 2019 at 05:45:59AM +0000, Anup Patel wrote:
>
>> This patchset adds SiFive Freedom Unleashed (FU540) support
>> to RISC-V U-Boot.
>> 
>> The patches are based upon latest U-Boot source tree
>> (git://git.denx.de/u-boot.git) at v2019.04-rc2 commit id
>> f14de0014c56093feecf42ca38b8ae5b3878f176
>> 
>> All drivers namely: SiFive PRCI, SiFive Serial, and Cadance
>> MACB Ethernet work fine on actual SiFive Unleashed board and
>> QEMU sifive_u machine.
>
> Is the sifive_u QEMU machine in upstream QEMU?  If so, lets add it to
> the travis file and run tests.  Thanks!

It's been upstream for a while, though we might deprecate it in the future 
because the name is a bit ambiguous.  There's nothing better right now, so it's 
probably a good bet to test against.
Tom Rini Feb. 22, 2019, 12:12 a.m. UTC | #3
On Thu, Feb 21, 2019 at 04:03:41PM -0800, Palmer Dabbelt wrote:
> On Thu, 21 Feb 2019 15:41:02 PST (-0800), trini@konsulko.com wrote:
> >On Wed, Feb 20, 2019 at 05:45:59AM +0000, Anup Patel wrote:
> >
> >>This patchset adds SiFive Freedom Unleashed (FU540) support
> >>to RISC-V U-Boot.
> >>
> >>The patches are based upon latest U-Boot source tree
> >>(git://git.denx.de/u-boot.git) at v2019.04-rc2 commit id
> >>f14de0014c56093feecf42ca38b8ae5b3878f176
> >>
> >>All drivers namely: SiFive PRCI, SiFive Serial, and Cadance
> >>MACB Ethernet work fine on actual SiFive Unleashed board and
> >>QEMU sifive_u machine.
> >
> >Is the sifive_u QEMU machine in upstream QEMU?  If so, lets add it to
> >the travis file and run tests.  Thanks!
> 
> It's been upstream for a while, though we might deprecate it in the future
> because the name is a bit ambiguous.  There's nothing better right now, so
> it's probably a good bet to test against.

Great!  Then we should model something based on
    - name: "test/py qemu-x86"
      env:
        - TEST_PY_BD="qemu-x86"
          TEST_PY_TEST_SPEC="not sleep"
          QEMU_TARGET="i386-softmmu"
          BUILDMAN="^qemu-x86$"
          TOOLCHAIN="i386"
          BUILD_ROM="yes"

And an appropriate PR to https://github.com/swarren/uboot-test-hooks so
that we can run the testsuite every time.
Bin Meng Feb. 22, 2019, 2:09 a.m. UTC | #4
On Fri, Feb 22, 2019 at 8:12 AM Tom Rini <trini@konsulko.com> wrote:
>
> On Thu, Feb 21, 2019 at 04:03:41PM -0800, Palmer Dabbelt wrote:
> > On Thu, 21 Feb 2019 15:41:02 PST (-0800), trini@konsulko.com wrote:
> > >On Wed, Feb 20, 2019 at 05:45:59AM +0000, Anup Patel wrote:
> > >
> > >>This patchset adds SiFive Freedom Unleashed (FU540) support
> > >>to RISC-V U-Boot.
> > >>
> > >>The patches are based upon latest U-Boot source tree
> > >>(git://git.denx.de/u-boot.git) at v2019.04-rc2 commit id
> > >>f14de0014c56093feecf42ca38b8ae5b3878f176
> > >>
> > >>All drivers namely: SiFive PRCI, SiFive Serial, and Cadance
> > >>MACB Ethernet work fine on actual SiFive Unleashed board and
> > >>QEMU sifive_u machine.
> > >
> > >Is the sifive_u QEMU machine in upstream QEMU?  If so, lets add it to
> > >the travis file and run tests.  Thanks!
> >
> > It's been upstream for a while, though we might deprecate it in the future
> > because the name is a bit ambiguous.  There's nothing better right now, so
> > it's probably a good bet to test against.
>
> Great!  Then we should model something based on
>     - name: "test/py qemu-x86"
>       env:
>         - TEST_PY_BD="qemu-x86"
>           TEST_PY_TEST_SPEC="not sleep"
>           QEMU_TARGET="i386-softmmu"
>           BUILDMAN="^qemu-x86$"
>           TOOLCHAIN="i386"
>           BUILD_ROM="yes"
>
> And an appropriate PR to https://github.com/swarren/uboot-test-hooks so
> that we can run the testsuite every time.
>

Yes, this has been on my todo list for a while when qemu-riscv was
initially supported.

Regards,
Bin