[PATCH v5 11/11] riscv: Add FPIOA and GPIO support for Kendryte K210

Rick Chen rickchen36 at gmail.com
Wed Aug 19 05:48:57 CEST 2020


Hi Tom

> This patch adds the necessary configs and docs for FPIOA and GPIO support
> on the K210.
>
> The board does not boot unless CONSOLE_LOGLEVEL is set to a non-default
> value . It also boots when the tree is dirty (and CONSOLE_LOGLEVEL is not
> changed). It also boots when changes are made to the device tree and then
> committed. I don't know why this happens. These breakages only occur after
> bf2fb81ad3.
>
> Signed-off-by: Sean Anderson <seanga2 at gmail.com>
> ---
>
> Changes in v5:
> - Increase CONSOLE_LOGLEVEL to 5 as a hack to get the board booting again
> - Patch 05/12 "gpio: sifive: Use generic reg read function" has been superseded
>   by commit 2548493ab4.

Would you like to pick up this series, [PATCH v5 00/11] riscv: Add
FPIOA and GPIO support for Kendryte K210 ?
Or maybe it is better to figure out what is wrong here and find the
root cause why it need to Increase CONSOLE_LOGLEVEL to 5 as a hack ?

Thanks,
Rick

>
> Changes in v3:
> - Document pins 6 and 7 as not set
>
> Changes in v2:
> - Remove SPI flash related Kconfig settings
>
>  board/sipeed/maix/Kconfig          |  9 +++++
>  configs/sipeed_maix_bitm_defconfig |  2 +
>  doc/board/sipeed/maix.rst          | 64 +++++++++++++++++++++++++++++-
>  3 files changed, 73 insertions(+), 2 deletions(-)
>
> diff --git a/board/sipeed/maix/Kconfig b/board/sipeed/maix/Kconfig
> index 0cdcd32adc..4c42dd2087 100644
> --- a/board/sipeed/maix/Kconfig
> +++ b/board/sipeed/maix/Kconfig
> @@ -44,4 +44,13 @@ config BOARD_SPECIFIC_OPTIONS
>         imply RESET_SYSCON
>         imply SYSRESET
>         imply SYSRESET_SYSCON
> +       imply PINCTRL
> +       imply PINCONF
> +       imply PINCTRL_K210
> +       imply DM_GPIO
> +       imply DWAPB_GPIO
> +       imply SIFIVE_GPIO
> +       imply CMD_GPIO
> +       imply LED
> +       imply LED_GPIO
>  endif
> diff --git a/configs/sipeed_maix_bitm_defconfig b/configs/sipeed_maix_bitm_defconfig
> index 459bf0d530..0b038ff0a1 100644
> --- a/configs/sipeed_maix_bitm_defconfig
> +++ b/configs/sipeed_maix_bitm_defconfig
> @@ -2,6 +2,8 @@ CONFIG_RISCV=y
>  CONFIG_TARGET_SIPEED_MAIX=y
>  CONFIG_ARCH_RV64I=y
>  CONFIG_STACK_SIZE=0x100000
> +# FIXME: Dirty hack to get boot working!
> +CONFIG_LOGLEVEL=5
>  # CONFIG_NET is not set
>  # CONFIG_INPUT is not set
>  # CONFIG_DM_ETH is not set
> diff --git a/doc/board/sipeed/maix.rst b/doc/board/sipeed/maix.rst
> index b1894f3a6f..3811eac61f 100644
> --- a/doc/board/sipeed/maix.rst
> +++ b/doc/board/sipeed/maix.rst
> @@ -156,7 +156,7 @@ To run legacy images, use the ``bootm`` command:
>      Load Address: 80000000
>      Entry Point:  80000000
>
> -    $ picocom -b 115200 /dev/ttyUSB0i
> +    $ picocom -b 115200 /dev/ttyUSB0
>      => loady
>      ## Ready for binary (ymodem) download to 0x80000000 at 115200 bps...
>      C
> @@ -187,6 +187,66 @@ To run legacy images, use the ``bootm`` command:
>      argv[0] = "<NULL>"
>      Hit any key to exit ...
>
> +Pin Assignment
> +--------------
> +
> +The K210 contains a Fully Programmable I/O Array (FPIOA), which can remap any of
> +its 256 input functions to any any of 48 output pins. The following table has
> +the default pin assignments for the BitM.
> +
> +===== ========== =======
> +Pin   Function   Comment
> +===== ========== =======
> +IO_0  JTAG_TCLK
> +IO_1  JTAG_TDI
> +IO_2  JTAG_TMS
> +IO_3  JTAG_TDO
> +IO_4  UARTHS_RX
> +IO_5  UARTHS_TX
> +IO_6             Not set
> +IO_7             Not set
> +IO_8  GPIO_0
> +IO_9  GPIO_1
> +IO_10 GPIO_2
> +IO_11 GPIO_3
> +IO_12 GPIO_4     Green LED
> +IO_13 GPIO_5     Red LED
> +IO_14 GPIO_6     Blue LED
> +IO_15 GPIO_7
> +IO_16 GPIOHS_0   ISP
> +IO_17 GPIOHS_1
> +IO_18 I2S0_SCLK  MIC CLK
> +IO_19 I2S0_WS    MIC WS
> +IO_20 I2S0_IN_D0 MIC SD
> +IO_21 GPIOHS_5
> +IO_22 GPIOHS_6
> +IO_23 GPIOHS_7
> +IO_24 GPIOHS_8
> +IO_25 GPIOHS_9
> +IO_26 SPI1_D1    MMC MISO
> +IO_27 SPI1_SCLK  MMC CLK
> +IO_28 SPI1_D0    MMC MOSI
> +IO_29 GPIOHS_13  MMC CS
> +IO_30 GPIOHS_14
> +IO_31 GPIOHS_15
> +IO_32 GPIOHS_16
> +IO_33 GPIOHS_17
> +IO_34 GPIOHS_18
> +IO_35 GPIOHS_19
> +IO_36 GPIOHS_20  Panel CS
> +IO_37 GPIOHS_21  Panel RST
> +IO_38 GPIOHS_22  Panel DC
> +IO_39 SPI0_SCK   Panel WR
> +IO_40 SCCP_SDA
> +IO_41 SCCP_SCLK
> +IO_42 DVP_RST
> +IO_43 DVP_VSYNC
> +IO_44 DVP_PWDN
> +IO_45 DVP_HSYNC
> +IO_46 DVP_XCLK
> +IO_47 DVP_PCLK
> +===== ========== =======
> +
>  Over- and Under-clocking
>  ------------------------
>
> @@ -361,5 +421,5 @@ Address    Size      Description
>  0x8801C000 0x1000    riscv priv spec 1.9 config
>  0x8801D000 0x2000    flattened device tree (contains only addresses and
>                       interrupts)
> -0x8801f000 0x1000    credits
> +0x8801F000 0x1000    credits
>  ========== ========= ===========
> --
> 2.28.0
>


More information about the U-Boot mailing list