Message ID | 20200503023550.326791-1-seanga2@gmail.com |
---|---|
Headers | show |
Series | riscv: Add Sipeed Maix support | expand |
...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 >