[PATCH v2 4/6] board: rockchip: Add Sonoff iHost board

Kever Yang kever.yang at rock-chips.com
Thu Feb 1 04:18:51 CET 2024


On 2024/1/24 11:26, Tim Lunn wrote:
> Sonoff iHost is gateway device designed to provide a Smart Home Hub,
> it is based on Rockchip RV1126. There is also a version with 2GB RAM
> based off the RV1109 dual core SoC however this works with the same
> config as the RV1126 for uboot purposes.
>
> Features:
> - Rockchip RV1126
> - 4GB DDR4
> - 8GB eMMC
> - microSD slot
> - RMII Ethernet PHY
> - 1x USB 2.0 Host
> - 1x USB 2.0 OTG
> - Realtek RTL8723DS WiFi/BT
> - EFR32MG21 Silabs Zigbee radio
> - Speaker/Microphone
>
> Signed-off-by: Tim Lunn <tim at feathertop.org>
Reviewed-by: Kever Yang <kever.yang at rock-chips.com>

Thanks,
- Kever
>
> ---
>
> Changes in v2:
> - Remove board config not required with standard boot
>
>   arch/arm/dts/rv1126-sonoff-ihost-u-boot.dtsi | 13 +++++
>   arch/arm/mach-rockchip/rv1126/Kconfig        |  8 +++
>   board/itead/sonoff-ihost/Kconfig             | 16 ++++++
>   board/itead/sonoff-ihost/MAINTAINERS         |  6 ++
>   configs/sonoff-ihost-rv1126_defconfig        | 60 ++++++++++++++++++++
>   doc/board/rockchip/rockchip.rst              |  1 +
>   include/configs/sonoff-ihost.h               | 10 ++++
>   7 files changed, 114 insertions(+)
>   create mode 100644 arch/arm/dts/rv1126-sonoff-ihost-u-boot.dtsi
>   create mode 100644 board/itead/sonoff-ihost/Kconfig
>   create mode 100644 board/itead/sonoff-ihost/MAINTAINERS
>   create mode 100644 configs/sonoff-ihost-rv1126_defconfig
>   create mode 100644 include/configs/sonoff-ihost.h
>
> diff --git a/arch/arm/dts/rv1126-sonoff-ihost-u-boot.dtsi b/arch/arm/dts/rv1126-sonoff-ihost-u-boot.dtsi
> new file mode 100644
> index 0000000000..a625660d58
> --- /dev/null
> +++ b/arch/arm/dts/rv1126-sonoff-ihost-u-boot.dtsi
> @@ -0,0 +1,13 @@
> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> +
> +#include "rv1126-u-boot.dtsi"
> +
> +/ {
> +	chosen {
> +		u-boot,spl-boot-order = "same-as-spl", &sdmmc, &emmc;
> +	};
> +};
> +
> +&sdio {
> +	status = "disabled";
> +};
> diff --git a/arch/arm/mach-rockchip/rv1126/Kconfig b/arch/arm/mach-rockchip/rv1126/Kconfig
> index a6e2b5903c..55b1112120 100644
> --- a/arch/arm/mach-rockchip/rv1126/Kconfig
> +++ b/arch/arm/mach-rockchip/rv1126/Kconfig
> @@ -14,6 +14,13 @@ config TARGET_RV1126_NEU2
>   	  IO board and Neu2 needs to mount on top of this IO board in order to
>   	  create complete Edgeble Neural Compute Module 2(Neu2) IO platform.
>   
> +config TARGET_RV1126_SONOFF_IHOST
> +	bool "Sonoff iHost smart home hub"
> +	help
> +	  Sonoff iHost is a smart home gateway based on Rockchip RV1126 SoC.
> +	  It features Wifi, Bluetooth and Zigbee radios that are used by many
> +	  smart home devices.
> +
>   config SOC_SPECIFIC_OPTIONS # dummy
>   	def_bool y
>   	select HAS_CUSTOM_SYS_INIT_SP_ADDR
> @@ -58,5 +65,6 @@ config TEXT_BASE
>   	default 0x600000
>   
>   source board/edgeble/neural-compute-module-2/Kconfig
> +source board/itead/sonoff-ihost/Kconfig
>   
>   endif
> diff --git a/board/itead/sonoff-ihost/Kconfig b/board/itead/sonoff-ihost/Kconfig
> new file mode 100644
> index 0000000000..30d9a6b3e6
> --- /dev/null
> +++ b/board/itead/sonoff-ihost/Kconfig
> @@ -0,0 +1,16 @@
> +if TARGET_RV1126_SONOFF_IHOST
> +
> +config SYS_BOARD
> +	default "sonoff-ihost"
> +
> +config SYS_VENDOR
> +	default "itead"
> +
> +config SYS_CONFIG_NAME
> +	default "sonoff-ihost"
> +
> +config BOARD_SPECIFIC_OPTIONS # dummy
> +	def_bool y
> +	select RAM_ROCKCHIP_DDR4
> +
> +endif
> diff --git a/board/itead/sonoff-ihost/MAINTAINERS b/board/itead/sonoff-ihost/MAINTAINERS
> new file mode 100644
> index 0000000000..eff9274bea
> --- /dev/null
> +++ b/board/itead/sonoff-ihost/MAINTAINERS
> @@ -0,0 +1,6 @@
> +RV1126-SONOFF-IHOST
> +M:	Tim Lunn <tim at feathertop.org>
> +S:	Maintained
> +F:	board/itead/sonoff-ihost
> +F:	include/configs/sonoff-ihost.h
> +F:	configs/sonoff-ihost-rv1126_defconfig
> diff --git a/configs/sonoff-ihost-rv1126_defconfig b/configs/sonoff-ihost-rv1126_defconfig
> new file mode 100644
> index 0000000000..fe99bd92f9
> --- /dev/null
> +++ b/configs/sonoff-ihost-rv1126_defconfig
> @@ -0,0 +1,60 @@
> +CONFIG_ARM=y
> +CONFIG_SPL_SKIP_LOWLEVEL_INIT_ONLY=y
> +CONFIG_TPL_SKIP_LOWLEVEL_INIT_ONLY=y
> +CONFIG_COUNTER_FREQUENCY=24000000
> +CONFIG_SYS_ARCH_TIMER=y
> +CONFIG_ARCH_ROCKCHIP=y
> +CONFIG_NR_DRAM_BANKS=1
> +CONFIG_DEFAULT_DEVICE_TREE="rv1126-sonoff-ihost"
> +CONFIG_SYS_MONITOR_LEN=614400
> +CONFIG_ROCKCHIP_RV1126=y
> +CONFIG_TARGET_RV1126_SONOFF_IHOST=y
> +CONFIG_DEBUG_UART_BASE=0xff570000
> +CONFIG_DEBUG_UART_CLOCK=24000000
> +CONFIG_SYS_LOAD_ADDR=0xe00800
> +CONFIG_DEBUG_UART=y
> +CONFIG_FIT_VERBOSE=y
> +CONFIG_NR_DRAM_BANKS=2
> +CONFIG_SPL_FIT=y
> +CONFIG_SPL_LOAD_FIT=y
> +# CONFIG_USE_SPL_FIT_GENERATOR is not set
> +CONFIG_SYS_BOOTM_LEN=0x4000000
> +CONFIG_DEFAULT_FDT_FILE="rv1126-sonoff-ihost.dtb"
> +# CONFIG_DISPLAY_CPUINFO is not set
> +CONFIG_DISPLAY_BOARDINFO_LATE=y
> +CONFIG_SPL_PAD_TO=0x7f8000
> +CONFIG_SPL_NO_BSS_LIMIT=y
> +# CONFIG_SPL_RAW_IMAGE_SUPPORT is not set
> +# CONFIG_SPL_SHARES_INIT_SP_ADDR is not set
> +# CONFIG_CMD_BOOTD is not set
> +# CONFIG_CMD_ELF is not set
> +# CONFIG_CMD_IMI is not set
> +# CONFIG_CMD_XIMG is not set
> +CONFIG_CMD_GPT=y
> +# CONFIG_CMD_LOADB is not set
> +# CONFIG_CMD_LOADS is not set
> +CONFIG_CMD_MMC=y
> +# CONFIG_CMD_ITEST is not set
> +# CONFIG_CMD_SETEXPR is not set
> +# CONFIG_SPL_DOS_PARTITION is not set
> +# CONFIG_ISO_PARTITION is not set
> +CONFIG_EFI_PARTITION_ENTRIES_NUMBERS=64
> +CONFIG_OF_SPL_REMOVE_PROPS="clock-names interrupt-parent assigned-clocks assigned-clock-rates assigned-clock-parents"
> +CONFIG_ENV_IS_IN_MMC=y
> +CONFIG_SYS_RELOC_GD_ENV_ADDR=y
> +CONFIG_ROCKCHIP_GPIO=y
> +CONFIG_SYS_I2C_ROCKCHIP=y
> +CONFIG_MISC=y
> +CONFIG_MMC_DW=y
> +CONFIG_MMC_DW_ROCKCHIP=y
> +CONFIG_REGULATOR_PWM=y
> +CONFIG_PWM_ROCKCHIP=y
> +# CONFIG_RAM_ROCKCHIP_DEBUG is not set
> +CONFIG_BAUDRATE=1500000
> +CONFIG_DEBUG_UART_SHIFT=2
> +CONFIG_SYSRESET=y
> +# CONFIG_TPL_SYSRESET is not set
> +CONFIG_DM_THERMAL=y
> +CONFIG_SPL_TINY_MEMSET=y
> +CONFIG_LZO=y
> +CONFIG_ERRNO_STR=y
> diff --git a/doc/board/rockchip/rockchip.rst b/doc/board/rockchip/rockchip.rst
> index 9fe69fc942..e23ca4231c 100644
> --- a/doc/board/rockchip/rockchip.rst
> +++ b/doc/board/rockchip/rockchip.rst
> @@ -129,6 +129,7 @@ List of mainline supported Rockchip boards:
>   
>   * rv1126
>        - Edgeble Neural Compute Module 2 SoM - Neu2/Neu2k (neu2-io-r1126)
> +     - Itead Sonoff iHost (sonoff-ihost-rv1126)
>   
>   Building
>   --------
> diff --git a/include/configs/sonoff-ihost.h b/include/configs/sonoff-ihost.h
> new file mode 100644
> index 0000000000..affc24ddcd
> --- /dev/null
> +++ b/include/configs/sonoff-ihost.h
> @@ -0,0 +1,10 @@
> +/* SPDX-License-Identifier: GPL-2.0+ */
> +
> +#ifndef __SONOFF_IHOST_H
> +#define __SONOFF_IHOST_H
> +
> +#define ROCKCHIP_DEVICE_SETTINGS
> +
> +#include <configs/rv1126_common.h>
> +
> +#endif /*  __SONOFF_IHOST_H */


More information about the U-Boot mailing list