Skip to content

Commit 832f9db

Browse files
authored
Board: Add Mekotronics R58S2 (#9610)
Board config for Mekotronics R58S2 with u-boot 2026.04. WiFi BT ETH USB GPU confirmed working
1 parent 8324bee commit 832f9db

File tree

5 files changed

+529
-0
lines changed

5 files changed

+529
-0
lines changed
Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
# Rockchip RK3588S SoC octa core 4-16GB SoC 1GbE eMMC USB3 NVMe WiFi/BT
2+
declare -g BOARD_NAME="Mekotronics R58S2"
3+
declare -g BOARD_VENDOR="mekotronics"
4+
declare -g BOARDFAMILY="rockchip-rk3588"
5+
declare -g BOARD_MAINTAINER="HeyMeco"
6+
declare -g KERNEL_TARGET="vendor"
7+
declare -g FULL_DESKTOP="yes"
8+
declare -g BOOT_LOGO="desktop"
9+
declare -g BOOT_FDT_FILE="rockchip/rk3588s-blueberry-rp01a-v10.dtb"
10+
declare -g DISPLAY_MANAGER="wayland"
11+
declare -g ASOUND_STATE="asound.state.rk3588hd"
12+
declare -g BOOT_SOC="rk3588"
13+
declare -g IMAGE_PARTITION_TABLE="gpt"
14+
declare -g BOOT_SCENARIO="tpl-blob-atf-mainline"
15+
16+
# Audio naming - applies to all branches
17+
function post_family_tweaks__mekotronics_r58s2_naming_audios() {
18+
display_alert "$BOARD" "Renaming r58s2 audios" "info"
19+
20+
mkdir -p "${SDCARD}/etc/udev/rules.d/"
21+
echo 'SUBSYSTEM=="sound", ENV{ID_PATH}=="platform-hdmi0-sound", ENV{SOUND_DESCRIPTION}="HDMI0 Audio"' > "${SDCARD}/etc/udev/rules.d/90-naming-audios.rules"
22+
echo 'SUBSYSTEM=="sound", ENV{ID_PATH}=="platform-es8316-sound", ENV{SOUND_DESCRIPTION}="ES8316 Audio"' >> "${SDCARD}/etc/udev/rules.d/90-naming-audios.rules"
23+
24+
return 0
25+
}
26+
27+
28+
# WiFi via bcmdhd driver
29+
enable_extension "bcmdhd"
30+
BCMDHD_TYPE="sdio"
31+
32+
# Bluetooth via hciattach
33+
declare -g BLUETOOTH_HCIATTACH_PARAMS="-s 115200 /dev/ttyS9 bcm43xx 115200 noflow nosleep"
34+
enable_extension "bluetooth-hciattach"
35+
36+
# DKMS bcmdhd-sdio replaces the in-kernel bcmdhd (PCIe) via depmod ordering;
37+
# set firmware paths for the AP6256 wifi chip on this board.
38+
function post_family_tweaks_bsp__mekotronics_r58s2_bcmdhd_sdio_firmware() {
39+
display_alert "$BOARD" "Configuring bcmdhd SDIO firmware paths for AP6256" "info"
40+
mkdir -p "${destination}/etc/modprobe.d/"
41+
cat > "${destination}/etc/modprobe.d/bcmdhd-r58s2.conf" <<- 'EOF'
42+
options bcmdhd firmware_path=/lib/firmware/fw_bcm43455c0_ag.bin
43+
options bcmdhd nvram_path=/lib/firmware/nvram_ap6256.txt
44+
EOF
45+
}
46+
47+
48+
# Mainline u-boot for all branches
49+
function post_family_config__meko_r58s2_use_mainline_uboot() {
50+
display_alert "$BOARD" "mainline u-boot overrides for $BOARD / $BRANCH" "info"
51+
52+
declare -g BOOTCONFIG="mekotronics-r58s2-rk3588s_defconfig"
53+
declare -g BOOTDELAY=1
54+
declare -g BOOTSOURCE="https://github.com/u-boot/u-boot.git"
55+
declare -g BOOTBRANCH="tag:v2026.04-rc2"
56+
declare -g BOOTPATCHDIR="v2026.04"
57+
declare -g BOOTDIR="u-boot-${BOARD}"
58+
59+
declare -g UBOOT_TARGET_MAP="BL31=bl31.elf ROCKCHIP_TPL=${RKBIN_DIR}/${DDR_BLOB};;u-boot-rockchip.bin"
60+
unset uboot_custom_postprocess write_uboot_platform write_uboot_platform_mtd
61+
62+
function write_uboot_platform() {
63+
dd "if=$1/u-boot-rockchip.bin" "of=$2" bs=32k seek=1 conv=notrunc status=none
64+
}
65+
66+
}
67+
68+
function pre_config_uboot_target__meko_r58s2_patch_rockchip_common_boot_order() {
69+
declare -a rockchip_uboot_targets=("nvme" "mmc0" "usb" "pxe" "dhcp")
70+
display_alert "u-boot for ${BOARD}/${BRANCH}" "u-boot: adjust boot order to '${rockchip_uboot_targets[*]}'" "info"
71+
sed -i -e "s/#define BOOT_TARGETS.*/#define BOOT_TARGETS \"${rockchip_uboot_targets[*]}\"/" include/configs/rockchip-common.h
72+
regular_git diff -u include/configs/rockchip-common.h || true
73+
}
Lines changed: 230 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,230 @@
1+
CONFIG_ARM=y
2+
CONFIG_ARCH_ROCKCHIP=y
3+
CONFIG_SPL_GPIO_SUPPORT=y
4+
CONFIG_SPL_LIBCOMMON_SUPPORT=y
5+
CONFIG_SPL_LIBGENERIC_SUPPORT=y
6+
CONFIG_SYS_MALLOC_F_LEN=0x80000
7+
CONFIG_SPL_FIT_GENERATOR="arch/arm/mach-rockchip/make_fit_atf.sh"
8+
CONFIG_ROCKCHIP_RK3588=y
9+
CONFIG_ROCKCHIP_FIT_IMAGE=y
10+
CONFIG_ROCKCHIP_HWID_DTB=y
11+
CONFIG_ROCKCHIP_VENDOR_PARTITION=y
12+
CONFIG_USING_KERNEL_DTB_V2=y
13+
CONFIG_ROCKCHIP_FIT_IMAGE_PACK=y
14+
CONFIG_ROCKCHIP_NEW_IDB=y
15+
CONFIG_PSTORE=y
16+
CONFIG_SPL_SERIAL_SUPPORT=y
17+
CONFIG_SPL_DRIVERS_MISC_SUPPORT=y
18+
CONFIG_TARGET_EVB_RK3588=y
19+
CONFIG_SPL_LIBDISK_SUPPORT=y
20+
CONFIG_SPL_SPI_FLASH_SUPPORT=y
21+
CONFIG_SPL_SPI_SUPPORT=y
22+
CONFIG_DEFAULT_DEVICE_TREE="rk3588s-blueberry-rp01a"
23+
CONFIG_DEBUG_UART=y
24+
CONFIG_LOCALVERSION="-armbian"
25+
# CONFIG_LOCALVERSION_AUTO is not set
26+
CONFIG_FIT=y
27+
CONFIG_FIT_IMAGE_POST_PROCESS=y
28+
CONFIG_FIT_HW_CRYPTO=y
29+
CONFIG_SPL_LOAD_FIT=y
30+
CONFIG_SPL_FIT_IMAGE_POST_PROCESS=y
31+
CONFIG_SPL_FIT_HW_CRYPTO=y
32+
# CONFIG_SPL_SYS_DCACHE_OFF is not set
33+
CONFIG_BOOTDELAY=1
34+
CONFIG_SYS_CONSOLE_INFO_QUIET=y
35+
# CONFIG_DISPLAY_CPUINFO is not set
36+
CONFIG_ANDROID_BOOTLOADER=y
37+
CONFIG_ANDROID_AVB=y
38+
CONFIG_ANDROID_BOOT_IMAGE_HASH=y
39+
CONFIG_SPL_BOARD_INIT=y
40+
# CONFIG_SPL_RAW_IMAGE_SUPPORT is not set
41+
# CONFIG_SPL_LEGACY_IMAGE_SUPPORT is not set
42+
CONFIG_SPL_SEPARATE_BSS=y
43+
CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION=y
44+
CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION=0x1
45+
CONFIG_SPL_MTD_SUPPORT=y
46+
CONFIG_SPL_ATF=y
47+
CONFIG_SPL_AB=y
48+
CONFIG_FASTBOOT_BUF_ADDR=0xc00800
49+
CONFIG_FASTBOOT_BUF_SIZE=0x07000000
50+
CONFIG_FASTBOOT_FLASH=y
51+
CONFIG_FASTBOOT_FLASH_MMC_DEV=0
52+
CONFIG_CMD_BOOTZ=y
53+
CONFIG_CMD_DTIMG=y
54+
# CONFIG_CMD_ELF is not set
55+
# CONFIG_CMD_IMI is not set
56+
# CONFIG_CMD_IMLS is not set
57+
# CONFIG_CMD_XIMG is not set
58+
# CONFIG_CMD_LZMADEC is not set
59+
# CONFIG_CMD_UNZIP is not set
60+
# CONFIG_CMD_FLASH is not set
61+
# CONFIG_CMD_FPGA is not set
62+
CONFIG_CMD_GPT=y
63+
# CONFIG_CMD_LOADB is not set
64+
# CONFIG_CMD_LOADS is not set
65+
CONFIG_CMD_BOOT_ANDROID=y
66+
CONFIG_CMD_MMC=y
67+
CONFIG_CMD_SF=y
68+
CONFIG_CMD_SPI=y
69+
CONFIG_CMD_USB=y
70+
CONFIG_CMD_USB_MASS_STORAGE=y
71+
# CONFIG_CMD_ITEST is not set
72+
# CONFIG_CMD_SETEXPR is not set
73+
CONFIG_CMD_TFTPPUT=y
74+
CONFIG_CMD_TFTP_BOOTM=y
75+
CONFIG_CMD_TFTP_FLASH=y
76+
# CONFIG_CMD_MISC is not set
77+
CONFIG_CMD_MTD_BLK=y
78+
# CONFIG_SPL_DOS_PARTITION is not set
79+
# CONFIG_ISO_PARTITION is not set
80+
CONFIG_EFI_PARTITION_ENTRIES_NUMBERS=64
81+
CONFIG_SPL_OF_CONTROL=y
82+
CONFIG_SPL_DTB_MINIMUM=y
83+
CONFIG_OF_LIVE=y
84+
CONFIG_OF_SPL_REMOVE_PROPS="clock-names interrupt-parent assigned-clocks assigned-clock-rates assigned-clock-parents"
85+
CONFIG_OF_U_BOOT_REMOVE_PROPS="pinctrl-0 pinctrl-names clock-names interrupt-parent assigned-clocks assigned-clock-rates assigned-clock-parents"
86+
# CONFIG_NET_TFTP_VARS is not set
87+
CONFIG_REGMAP=y
88+
CONFIG_SPL_REGMAP=y
89+
CONFIG_SYSCON=y
90+
CONFIG_SPL_SYSCON=y
91+
# CONFIG_SARADC_ROCKCHIP is not set
92+
CONFIG_SARADC_ROCKCHIP_V2=y
93+
CONFIG_CLK=y
94+
CONFIG_SPL_CLK=y
95+
CONFIG_CLK_SCMI=y
96+
CONFIG_SPL_CLK_SCMI=y
97+
CONFIG_DM_CRYPTO=y
98+
CONFIG_SPL_DM_CRYPTO=y
99+
CONFIG_ROCKCHIP_CRYPTO_V2=y
100+
CONFIG_SPL_ROCKCHIP_CRYPTO_V2=y
101+
CONFIG_DM_RNG=y
102+
CONFIG_RNG_ROCKCHIP=y
103+
CONFIG_SCMI_FIRMWARE=y
104+
CONFIG_SPL_SCMI_FIRMWARE=y
105+
CONFIG_GPIO_HOG=y
106+
CONFIG_ROCKCHIP_GPIO=y
107+
CONFIG_ROCKCHIP_GPIO_V2=y
108+
CONFIG_SYS_I2C_ROCKCHIP=y
109+
CONFIG_I2C_MUX=y
110+
CONFIG_DM_KEY=y
111+
CONFIG_RK8XX_PWRKEY=y
112+
CONFIG_ADC_KEY=y
113+
CONFIG_MISC=y
114+
CONFIG_SPL_MISC=y
115+
CONFIG_MISC_DECOMPRESS=y
116+
CONFIG_SPL_MISC_DECOMPRESS=y
117+
CONFIG_ROCKCHIP_OTP=y
118+
CONFIG_ROCKCHIP_HW_DECOMPRESS=y
119+
CONFIG_SPL_ROCKCHIP_HW_DECOMPRESS=y
120+
CONFIG_SPL_ROCKCHIP_SECURE_OTP=y
121+
CONFIG_MMC_DW=y
122+
CONFIG_MMC_DW_ROCKCHIP=y
123+
CONFIG_MMC_SDHCI=y
124+
CONFIG_MMC_SDHCI_SDMA=y
125+
CONFIG_MMC_SDHCI_ROCKCHIP=y
126+
CONFIG_MTD=y
127+
CONFIG_MTD_BLK=y
128+
CONFIG_MTD_DEVICE=y
129+
CONFIG_NAND=y
130+
CONFIG_MTD_SPI_NAND=y
131+
CONFIG_SPI_FLASH=y
132+
CONFIG_SF_DEFAULT_SPEED=80000000
133+
CONFIG_SPI_FLASH_EON=y
134+
CONFIG_SPI_FLASH_GIGADEVICE=y
135+
CONFIG_SPI_FLASH_MACRONIX=y
136+
CONFIG_SPI_FLASH_SST=y
137+
CONFIG_SPI_FLASH_WINBOND=y
138+
CONFIG_SPI_FLASH_XMC=y
139+
CONFIG_SPI_FLASH_XTX=y
140+
CONFIG_SPI_FLASH_MTD=y
141+
CONFIG_DM_ETH=y
142+
CONFIG_DM_ETH_PHY=y
143+
CONFIG_DWC_ETH_QOS=y
144+
CONFIG_GMAC_ROCKCHIP=y
145+
CONFIG_PHY_ROCKCHIP_INNO_USB2=y
146+
CONFIG_PHY_ROCKCHIP_SAMSUNG_HDPTX=y
147+
CONFIG_PHY_ROCKCHIP_USBDP=y
148+
CONFIG_PINCTRL=y
149+
CONFIG_SPL_PINCTRL=y
150+
CONFIG_DM_FUEL_GAUGE=y
151+
CONFIG_POWER_FG_CW201X=y
152+
CONFIG_POWER_FG_CW221X=y
153+
CONFIG_DM_PMIC=y
154+
CONFIG_PMIC_SPI_RK8XX=y
155+
CONFIG_DM_POWER_DELIVERY=y
156+
CONFIG_TYPEC_TCPM=y
157+
CONFIG_TYPEC_TCPCI=y
158+
CONFIG_TYPEC_HUSB311=y
159+
CONFIG_TYPEC_FUSB302=y
160+
CONFIG_REGULATOR_PWM=y
161+
CONFIG_DM_REGULATOR_FIXED=y
162+
CONFIG_DM_REGULATOR_GPIO=y
163+
CONFIG_REGULATOR_RK860X=y
164+
CONFIG_CHARGER_BQ25700=y
165+
CONFIG_CHARGER_BQ25890=y
166+
CONFIG_CHARGER_SC8551=y
167+
CONFIG_CHARGER_SGM41542=y
168+
CONFIG_DM_CHARGE_DISPLAY=y
169+
CONFIG_CHARGE_ANIMATION=y
170+
CONFIG_PWM_ROCKCHIP=y
171+
CONFIG_RAM=y
172+
CONFIG_SPL_RAM=y
173+
CONFIG_TPL_RAM=y
174+
CONFIG_DM_RAMDISK=y
175+
CONFIG_RAMDISK_RO=y
176+
CONFIG_DM_RESET=y
177+
CONFIG_SPL_DM_RESET=y
178+
CONFIG_SPL_RESET_ROCKCHIP=y
179+
CONFIG_BAUDRATE=1500000
180+
CONFIG_DEBUG_UART_BASE=0xFEB50000
181+
CONFIG_DEBUG_UART_CLOCK=24000000
182+
CONFIG_DEBUG_UART_SHIFT=2
183+
CONFIG_ROCKCHIP_SPI=y
184+
CONFIG_ROCKCHIP_SFC=y
185+
CONFIG_SYSRESET=y
186+
CONFIG_USB=y
187+
CONFIG_USB_XHCI_HCD=y
188+
CONFIG_USB_XHCI_DWC3=y
189+
CONFIG_USB_EHCI_HCD=y
190+
CONFIG_USB_EHCI_GENERIC=y
191+
CONFIG_USB_OHCI_HCD=y
192+
CONFIG_USB_OHCI_GENERIC=y
193+
CONFIG_USB_DWC3=y
194+
CONFIG_USB_DWC3_GADGET=y
195+
CONFIG_USB_DWC3_GENERIC=y
196+
CONFIG_USB_STORAGE=y
197+
CONFIG_USB_GADGET=y
198+
CONFIG_USB_GADGET_MANUFACTURER="Rockchip"
199+
CONFIG_USB_GADGET_VENDOR_NUM=0x2207
200+
CONFIG_USB_GADGET_PRODUCT_NUM=0x350a
201+
CONFIG_USB_GADGET_DOWNLOAD=y
202+
CONFIG_DM_VIDEO=y
203+
CONFIG_DISPLAY=y
204+
CONFIG_DRM_ROCKCHIP=y
205+
CONFIG_DRM_MAXIM_MAX96745=y
206+
CONFIG_DRM_MAXIM_MAX96755F=y
207+
CONFIG_DRM_ROHM_BU18XL82=y
208+
CONFIG_DRM_ROCKCHIP_DW_HDMI_QP=y
209+
CONFIG_DRM_ROCKCHIP_DW_MIPI_DSI2=y
210+
CONFIG_DRM_ROCKCHIP_DW_DP=y
211+
CONFIG_DRM_ROCKCHIP_ANALOGIX_DP=y
212+
CONFIG_DRM_ROCKCHIP_SAMSUNG_MIPI_DCPHY=y
213+
CONFIG_PHY_ROCKCHIP_SAMSUNG_HDPTX_HDMI=y
214+
CONFIG_USE_TINY_PRINTF=y
215+
CONFIG_LIB_RAND=y
216+
CONFIG_SPL_TINY_MEMSET=y
217+
CONFIG_RSA=y
218+
CONFIG_SPL_RSA=y
219+
CONFIG_RSA_N_SIZE=0x200
220+
CONFIG_RSA_E_SIZE=0x10
221+
CONFIG_RSA_C_SIZE=0x20
222+
CONFIG_XBC=y
223+
CONFIG_LZ4=y
224+
CONFIG_LZMA=y
225+
# CONFIG_EFI_LOADER is not set
226+
CONFIG_AVB_LIBAVB=y
227+
CONFIG_AVB_LIBAVB_AB=y
228+
CONFIG_AVB_LIBAVB_ATX=y
229+
CONFIG_AVB_LIBAVB_USER=y
230+
CONFIG_RK_AVB_LIBAVB_USER=y
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2+
/*
3+
* Copyright (c) 2021 Rockchip Electronics Co., Ltd.
4+
*
5+
*/
6+
7+
/dts-v1/;
8+
#include "rk3588.dtsi"
9+
#include "rk3588-u-boot.dtsi"
10+
#include <dt-bindings/input/input.h>
11+
12+
13+
/ {
14+
model = "Rockchip RK3588S2 Blueberry V10 Board 20251213";
15+
compatible = "rockchip,rk3588s-Blueberry-v10", "rockchip,rk3588";
16+
17+
leds: leds {
18+
compatible = "gpio-leds";
19+
green_led: green-led {
20+
gpios = <&gpio1 RK_PA2 GPIO_ACTIVE_HIGH>;
21+
linux,default-trigger = "heartbeat";
22+
default-state = "on";
23+
status = "okay";
24+
};
25+
};
26+
};
27+
28+
29+
&sdhci {
30+
bus-width = <8>;
31+
no-sdio;
32+
no-sd;
33+
non-removable;
34+
max-frequency = <200000000>;
35+
mmc-hs400-1_8v;
36+
mmc-hs400-enhanced-strobe;
37+
status = "okay";
38+
};

0 commit comments

Comments
 (0)