[PATCH v9 00/21] riscv: Add Sipeed Maix support

Sean Anderson seanga2 at gmail.com
Sun May 3 04:46:08 CEST 2020


...and I forgot to bump the version.

Sorry, will resend with the proper v10 revision.

On 5/2/20 10:35 PM, Sean Anderson wrote:
> This patch series adds support for Sipeed Maix boards and the Kendryte
> K210 CPU. Currently, only the Maix Bit V2.0 is supported, however other
> models are similar.
> 
> The travis build [1] is incomplete as of this writing, but I've manually
> ran the jobs which failed last time [2], and they passed. As an aside, the
> travis output is seriously lacking. *Any* warning will cause the build to
> fail, and *no* output (such as *what warning caused the failure*) is
> present in the output.
> 
> [1] https://travis-ci.org/github/Forty-Bot/u-boot/builds/682474410
> [2] https://travis-ci.org/github/Forty-Bot/u-boot/builds/678437924
> 
> Known Bugs/Limitations:
> - Accessing the AI ram hangs, limiting available ram to 6M
> - Trying to boot an image with bootm fails with
>   ERROR: Failed to allocate 0x7d60 bytes below 0x80000000.
> 
> To flash u-boot to a maix bit, run
> kflash -tp /dev/<your tty here> -B bit_mic u-boot-dtb.bin
> 
> Boot output should look like the following:
> 
> U-Boot 2020.04-rc2-00087-g2221cc09c1-dirty (Feb 28 2020 - 13:53:09 -0500)
> 
> DRAM:  8 MiB
> In:    serial at 38000000
> Out:   serial at 38000000
> Err:   serial at 38000000
> =>
> 
> Changes for v10:
> - Fix warnings when casting fdt_addr_t
> - Fix warnings about const functions
> 
> Changes for v9:
> - Fix error in Andes PLIC
> - Update MAINTAINERS
> - Mark dts blocks in documentation as "none" highlighting
> 
> Changes for v8:
> - Removed dependency on the patch "clk: Add functions to register CCF clock
>   structs". Hopefully this will make reviewing easier.
> 
> Changes for v7:
> - Split documentation from other board support
> - Split IPI clear from other IPI cleanup
> - Rebased onto a clean upstream. Hopefully this fixes any patching
>   problems.
> 
> Changes for v6:
> - Remove spi, pinmux, gpio, led, and wdt support --- to be added in separate
>   patches
> - Rebase onto master
> - Clear IPIs before enabling them
> - Reorganize code so checkpatch errors less
> 
> Changes for v5:
> - Rebase onto master
> - Add pinconf support
> - Add gpio support
> - Store environment in spi flash
> - Group patches by prefix
> - Add additional documentation
> - Add SMP support
> - Add WDT support
> 
> Changes for v4:
> - Linted several patches
> - Updated the copyright year for several files
> - Added tests for syscon-reset, simple-pm-bus, and the pll calc_rate function
> - Added/updated documentation
> - Fixed SPI for the nor flash
> - Fixed PLLs not enabling/setting rate properly
> - RISCV_PRIV_1_9_1 now (un)defines all diferring CSRs, and also disables VM
> - More devicetree changes
> 
> Changes for v3:
> - Remove patch to set RV64I as default
> - Remove patch for a separate sysctl driver
> - Split off cpu frequency patch into its own series
> - Reorder support/devicetree patches to come last
> - Add patch for reset driver
> - Add simple-pm-bus for busses with their own clocks
> - Add additional documentation
> - Reword mcounteren patch to refer to the RISC-V priv spec 1.9.1
> - Many devicetree changes
> - Switch to "make savedefconfig" to generate the config
> 
> Changes for v2:
> - Many bugfixes for the device tree
> - Modify the config to build without errors
> - Add support for keeping internal PLL frequencies in-range
> - Fix several rebase-induced artifacts
> 
> Sean Anderson (21):
>   clk: Always use the supplied struct clk
>   clk: Check that ops of composite clock components exist before calling
>   clk: Unconditionally recursively en-/dis-able clocks
>   clk: Fix clk_get_by_* handling of index
>   clk: Add K210 pll support
>   clk: Add a bypass clock for K210
>   clk: Add K210 clock support
>   dm: Add support for simple-pm-bus
>   dm: Fix error handling for dev_read_addr_ptr
>   reset: Add generic reset driver
>   lib: Always set errno in hcreate_r
>   riscv: Add headers for asm/global_data.h
>   riscv: Clear pending interrupts before enabling IPIs
>   riscv: Clean up IPI initialization code
>   riscv: Add option to support RISC-V privileged spec 1.9
>   riscv: Allow use of reset drivers
>   riscv: Try to get cpu frequency from a "clocks" node if it exists
>   riscv: Enable cpu clock if it is present
>   riscv: Add device tree for K210 and Sipeed Maix BitM
>   doc: riscv: Add documentation for Sipeed Maix Bit
>   riscv: Add Sipeed Maix support
> 
>  MAINTAINERS                                   |   7 +
>  arch/riscv/Kconfig                            |  14 +
>  arch/riscv/cpu/cpu.c                          |  15 +
>  arch/riscv/cpu/start.S                        |   2 +
>  arch/riscv/dts/Makefile                       |   1 +
>  arch/riscv/dts/k210-maix-bit.dts              |  47 ++
>  arch/riscv/dts/k210.dtsi                      | 594 ++++++++++++++++
>  arch/riscv/include/asm/csr.h                  |  40 ++
>  arch/riscv/include/asm/global_data.h          |   2 +
>  arch/riscv/include/asm/smp.h                  |  43 ++
>  arch/riscv/lib/andes_plic.c                   |  34 +-
>  arch/riscv/lib/reset.c                        |   2 +
>  arch/riscv/lib/sbi_ipi.c                      |   5 +
>  arch/riscv/lib/sifive_clint.c                 |  33 +-
>  arch/riscv/lib/smp.c                          |  56 +-
>  arch/sandbox/dts/test.dts                     |  21 +
>  arch/sandbox/include/asm/clk.h                |   1 +
>  board/sipeed/maix/Kconfig                     |  47 ++
>  board/sipeed/maix/MAINTAINERS                 |  11 +
>  board/sipeed/maix/Makefile                    |   5 +
>  board/sipeed/maix/maix.c                      |  41 ++
>  configs/sandbox_defconfig                     |   3 +
>  configs/sipeed_maix_bitm_defconfig            |   8 +
>  doc/board/index.rst                           |   1 +
>  doc/board/sipeed/index.rst                    |   9 +
>  doc/board/sipeed/maix.rst                     | 298 ++++++++
>  .../bus/simple-pm-bus.txt                     |  44 ++
>  .../mfd/kendryte,k210-sysctl.txt              |  33 +
>  .../reset/syscon-reset.txt                    |  36 +
>  doc/imx/clk/ccf.txt                           |  63 +-
>  drivers/clk/Kconfig                           |   1 +
>  drivers/clk/Makefile                          |   1 +
>  drivers/clk/clk-composite.c                   |  64 +-
>  drivers/clk/clk-divider.c                     |   6 +-
>  drivers/clk/clk-fixed-factor.c                |   3 +-
>  drivers/clk/clk-gate.c                        |   6 +-
>  drivers/clk/clk-mux.c                         |  12 +-
>  drivers/clk/clk-uclass.c                      |  68 +-
>  drivers/clk/imx/clk-gate2.c                   |   4 +-
>  drivers/clk/imx/clk-imx8mp.c                  |   2 +-
>  drivers/clk/kendryte/Kconfig                  |  12 +
>  drivers/clk/kendryte/Makefile                 |   1 +
>  drivers/clk/kendryte/bypass.c                 | 270 +++++++
>  drivers/clk/kendryte/clk.c                    | 663 ++++++++++++++++++
>  drivers/clk/kendryte/pll.c                    | 601 ++++++++++++++++
>  drivers/core/Kconfig                          |   7 +
>  drivers/core/Makefile                         |   1 +
>  drivers/core/read.c                           |   2 +-
>  drivers/core/simple-pm-bus.c                  |  56 ++
>  drivers/cpu/riscv_cpu.c                       |  39 +-
>  drivers/pinctrl/broadcom/pinctrl-bcm283x.c    |   2 +-
>  drivers/pinctrl/mediatek/pinctrl-mtk-common.c |   2 +-
>  drivers/reset/Kconfig                         |   5 +
>  drivers/reset/Makefile                        |   1 +
>  drivers/reset/reset-syscon.c                  |  80 +++
>  include/configs/sipeed-maix.h                 |  24 +
>  include/dm/read.h                             |   4 +-
>  include/dt-bindings/clock/k210-sysctl.h       |  59 ++
>  include/dt-bindings/mfd/k210-sysctl.h         |  38 +
>  include/dt-bindings/reset/k210-sysctl.h       |  38 +
>  include/kendryte/bypass.h                     |  31 +
>  include/kendryte/clk.h                        |  35 +
>  include/kendryte/pll.h                        |  57 ++
>  include/test/export.h                         |  16 +
>  lib/hashtable.c                               |   8 +-
>  test/dm/Makefile                              |   3 +
>  test/dm/k210_pll.c                            |  96 +++
>  test/dm/simple-pm-bus.c                       |  45 ++
>  test/dm/syscon-reset.c                        |  58 ++
>  69 files changed, 3732 insertions(+), 205 deletions(-)
>  create mode 100644 arch/riscv/dts/k210-maix-bit.dts
>  create mode 100644 arch/riscv/dts/k210.dtsi
>  create mode 100644 board/sipeed/maix/Kconfig
>  create mode 100644 board/sipeed/maix/MAINTAINERS
>  create mode 100644 board/sipeed/maix/Makefile
>  create mode 100644 board/sipeed/maix/maix.c
>  create mode 100644 configs/sipeed_maix_bitm_defconfig
>  create mode 100644 doc/board/sipeed/index.rst
>  create mode 100644 doc/board/sipeed/maix.rst
>  create mode 100644 doc/device-tree-bindings/bus/simple-pm-bus.txt
>  create mode 100644 doc/device-tree-bindings/mfd/kendryte,k210-sysctl.txt
>  create mode 100644 doc/device-tree-bindings/reset/syscon-reset.txt
>  create mode 100644 drivers/clk/kendryte/Kconfig
>  create mode 100644 drivers/clk/kendryte/Makefile
>  create mode 100644 drivers/clk/kendryte/bypass.c
>  create mode 100644 drivers/clk/kendryte/clk.c
>  create mode 100644 drivers/clk/kendryte/pll.c
>  create mode 100644 drivers/core/simple-pm-bus.c
>  create mode 100644 drivers/reset/reset-syscon.c
>  create mode 100644 include/configs/sipeed-maix.h
>  create mode 100644 include/dt-bindings/clock/k210-sysctl.h
>  create mode 100644 include/dt-bindings/mfd/k210-sysctl.h
>  create mode 100644 include/dt-bindings/reset/k210-sysctl.h
>  create mode 100644 include/kendryte/bypass.h
>  create mode 100644 include/kendryte/clk.h
>  create mode 100644 include/kendryte/pll.h
>  create mode 100644 include/test/export.h
>  create mode 100644 test/dm/k210_pll.c
>  create mode 100644 test/dm/simple-pm-bus.c
>  create mode 100644 test/dm/syscon-reset.c
> 



More information about the U-Boot mailing list