On 2023-09-17 09:19, Frank Wunderlich wrote: > Hi, > > thank you for your suggestions > >> Gesendet: Sonntag, 17. September 2023 um 00:51 Uhr >> Von: "Jonas Karlman" <jo...@kwiboo.se> >> An: "Frank Wunderlich" <li...@fw-web.de> >> Cc: "Frank Wunderlich" <fran...@public-files.de>, "Simon Glass" >> <s...@chromium.org>, "Philipp Tomsich" <philipp.toms...@vrull.eu>, "Kever >> Yang" <kever.y...@rock-chips.com>, "Marek Vasut" <ma...@denx.de>, >> u-boot@lists.denx.de >> Betreff: Re: [PATCH v3] board: rockchip: Add Bananapi R2Pro Board >> >> Hi Frank, >> >> On 2023-08-20 18:00, Frank Wunderlich wrote: >>> From: Frank Wunderlich <fran...@public-files.de> >>> >>> Add Bananapi R2 Pro board. >>> >>> Till now evb dts could be used, but iodomain is different >>> (evb has 1v8 on vccio2 and vccio4 which are 3v3 on r2pro) >>> and with iodomain driver this can cause hardware fault. >>> >>> Devicetree in mainline-Linux: >>> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts >>> >>> Signed-off-by: Frank Wunderlich <fran...@public-files.de> >>> --- >>> v3: >>> - disable gmac0 as switch-driver is not yet ready to attach to the mac >>> v2: >>> - drop switch-node for now as u-boot driver works differently to linux >>> --- >>> arch/arm/dts/Makefile | 3 +- >>> arch/arm/dts/rk3568-bpi-r2pro-u-boot.dtsi | 23 + >>> arch/arm/dts/rk3568-bpi-r2pro.dts | 549 ++++++++++++++++++++++ >>> configs/bpi-r2pro-rk3568_defconfig | 101 ++++ >>> 4 files changed, 675 insertions(+), 1 deletion(-) >>> create mode 100644 arch/arm/dts/rk3568-bpi-r2pro-u-boot.dtsi >>> create mode 100644 arch/arm/dts/rk3568-bpi-r2pro.dts >>> create mode 100644 configs/bpi-r2pro-rk3568_defconfig >>> >>> diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile >>> index bd518064f35f..767bf9db39fb 100644 >>> --- a/arch/arm/dts/Makefile >>> +++ b/arch/arm/dts/Makefile >>> @@ -182,7 +182,8 @@ dtb-$(CONFIG_ROCKCHIP_RK3568) += \ >>> rk3568-nanopi-r5s.dtb \ >>> rk3568-odroid-m1.dtb \ >>> rk3568-radxa-e25.dtb \ >>> - rk3568-rock-3a.dtb >>> + rk3568-rock-3a.dtb \ >>> + rk3568-bpi-r2pro.dtb >>> >>> dtb-$(CONFIG_ROCKCHIP_RK3588) += \ >>> rk3588-edgeble-neu6a-io.dtb \ >>> diff --git a/arch/arm/dts/rk3568-bpi-r2pro-u-boot.dtsi >>> b/arch/arm/dts/rk3568-bpi-r2pro-u-boot.dtsi >>> new file mode 100644 >>> index 000000000000..382a52a28b10 >>> --- /dev/null >>> +++ b/arch/arm/dts/rk3568-bpi-r2pro-u-boot.dtsi >>> @@ -0,0 +1,23 @@ >>> +// SPDX-License-Identifier: GPL-2.0+ >>> +/* >>> + * (C) Copyright 2021 Rockchip Electronics Co., Ltd >>> + */ >>> + >>> +#include "rk356x-u-boot.dtsi" >>> + >>> +/ { >>> + chosen { >>> + stdout-path = &uart2; >>> + u-boot,spl-boot-order = "same-as-spl", &sdmmc0, &sdhci; >> >> This is the default order in rk356x-u-boot.dtsi and can be dropped. >> >>> + }; >>> +}; >>> + >>> +&sdmmc0 { >>> + status = "okay"; >> >> sdmmc0 is already enabled in rk3568-bpi-r2pro.dts >> >>> +}; >>> + >>> +&uart2 { >>> + clock-frequency = <24000000>; >>> + bootph-pre-ram; >>> + status = "okay"; >>> +}; > > then i have only the uart here...right? do you remember i missed the > -uboot.dtsi in first try and board does not find mmc in spl. > > do i really not need the first 2 nodes here?
The chosen node with stdout-path prop and uart2 node should probably be the only nodes left. If you are having issues with mmc in SPL, I would first look at pinctrl, ensure pinctrl is enabled in SPL and that pinctrl-0 prop is defined for your sdmmc0 and sdhci node. OF_SPL_REMOVE_PROPS should also not list pinctrl nodes, look at defconfig for other rk356x boards, e.g. rock-3a-rk3568_defconfig should be a good candidate and one I test frequently. And if that does not help and there is a regulator that is not enable by default you may need to enable gpio and regulator pinconf nodes and related Kconfig options for SPL. See rk3566-quartz64-a-u-boot.dtsi where I had to enable gpio0, vcc3v3_sd and vcc_sd_h node and related Kconfig options to have working sd-card. > >>> diff --git a/arch/arm/dts/rk3568-bpi-r2pro.dts >>> b/arch/arm/dts/rk3568-bpi-r2pro.dts >>> new file mode 100644 >>> index 000000000000..e4fcbb8a1174 >>> --- /dev/null >>> +++ b/arch/arm/dts/rk3568-bpi-r2pro.dts >> >> Should be a 1:1 copy from kernel. > > i try to do so, but this will result in many nodes not used in uboot like the > switch i remove in the dtsi and graphics. > thx for pointing to the pcie driver then i can let these nodes in. This file should be a full 1:1 copy, if you need to modify any node for U-Boot you should do such override in -u-boot.dtsi file. You can use /delete-property/ or /delete-node/ if you really need to remove something that cause issues for U-Boot, else leave the nodes even if they are not useful for U-Boot itself. Having full DT should make it possible to EFI boot generic aarch64 distro images, e.g. fedora etc. > >> [...] >> >>> diff --git a/configs/bpi-r2pro-rk3568_defconfig >>> b/configs/bpi-r2pro-rk3568_defconfig >>> new file mode 100644 >>> index 000000000000..e8936261eab3 >>> --- /dev/null >>> +++ b/configs/bpi-r2pro-rk3568_defconfig >>> @@ -0,0 +1,101 @@ >>> +CONFIG_ARM=y >>> +CONFIG_SKIP_LOWLEVEL_INIT=y >>> +CONFIG_COUNTER_FREQUENCY=24000000 >>> +CONFIG_ARCH_ROCKCHIP=y >>> +CONFIG_TEXT_BASE=0x00a00000 >>> +CONFIG_SPL_LIBCOMMON_SUPPORT=y >>> +CONFIG_SPL_LIBGENERIC_SUPPORT=y >>> +CONFIG_NR_DRAM_BANKS=2 >>> +CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y >>> +CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0xc00000 >>> +CONFIG_DEFAULT_DEVICE_TREE="rk3568-bpi-r2pro" >>> +CONFIG_ROCKCHIP_RK3568=y >>> +CONFIG_SPL_ROCKCHIP_COMMON_BOARD=y >>> +CONFIG_SPL_SERIAL=y >>> +CONFIG_SPL_STACK_R_ADDR=0x600000 >>> +CONFIG_SPL_STACK=0x400000 >>> +CONFIG_DEBUG_UART_BASE=0xFE660000 >>> +CONFIG_DEBUG_UART_CLOCK=24000000 >>> +CONFIG_SYS_LOAD_ADDR=0xc00800 >>> +CONFIG_DEBUG_UART=y >>> +CONFIG_FIT=y >>> +CONFIG_FIT_VERBOSE=y >>> +CONFIG_SPL_FIT_SIGNATURE=y >>> +CONFIG_SPL_LOAD_FIT=y >>> +CONFIG_LEGACY_IMAGE_FORMAT=y >>> +#CONFIG_OF_SYSTEM_SETUP=y >>> +CONFIG_DEFAULT_FDT_FILE="rockchip/rk3568-bpi-r2pro" >>> +# CONFIG_DISPLAY_CPUINFO is not set >>> +CONFIG_DISPLAY_BOARDINFO_LATE=y >>> +CONFIG_SPL_MAX_SIZE=0x40000 >>> +CONFIG_SPL_PAD_TO=0x7f8000 >>> +CONFIG_SPL_HAS_BSS_LINKER_SECTION=y >>> +CONFIG_SPL_BSS_START_ADDR=0x4000000 >>> +CONFIG_SPL_BSS_MAX_SIZE=0x4000 >>> +# CONFIG_SPL_RAW_IMAGE_SUPPORT is not set >>> +# CONFIG_SPL_SHARES_INIT_SP_ADDR is not set >>> +CONFIG_SPL_STACK_R=y >>> +CONFIG_SPL_ATF=y >>> +CONFIG_CMD_GPIO=y >>> +CONFIG_CMD_GPT=y >>> +CONFIG_CMD_I2C=y >>> +CONFIG_CMD_MMC=y >>> +CONFIG_CMD_PMIC=y >>> +CONFIG_CMD_REGULATOR=y >>> +# CONFIG_SPL_DOS_PARTITION is not set >>> +CONFIG_SPL_OF_CONTROL=y >>> +CONFIG_OF_LIVE=y >>> +CONFIG_NET=n >>> +CONFIG_OF_SPL_REMOVE_PROPS="pinctrl-0 pinctrl-names clock-names >>> interrupt-parent assigned-clocks assigned-clock-rates >>> assigned-clock-parents" >>> +CONFIG_SPL_REGMAP=y >>> +CONFIG_SPL_SYSCON=y >>> +CONFIG_SPL_CLK=y >>> +CONFIG_ROCKCHIP_GPIO=y >>> +CONFIG_ROCKCHIP_GPIO_V2=y >> >> This Kconfig option does not exits. >> >>> +CONFIG_SYS_I2C_ROCKCHIP=y >>> +CONFIG_MISC=y >>> +CONFIG_SUPPORT_EMMC_RPMB=y >>> +CONFIG_MMC_DW=y >>> +CONFIG_MMC_DW_ROCKCHIP=y >>> +CONFIG_MMC_SDHCI=y >>> +CONFIG_MMC_SDHCI_SDMA=y >>> +CONFIG_MMC_SDHCI_ROCKCHIP=y >>> +CONFIG_ETH_DESIGNWARE=y >>> +CONFIG_GMAC_ROCKCHIP=y >> >> Please drop CONFIG_ETH_DESIGNWARE and CONFIG_GMAC_ROCKCHIP. >> >> The following series that add GMAC support for RK3568 and RK3588 will >> use DWC_ETH_QOS and DWC_ETH_QOS_ROCKCHIP Kconfig options. >> >> rockchip: Add GMAC support for RK3568 and RK3588 >> https://patchwork.ozlabs.org/project/uboot/cover/20230807000817.1701012-1-jo...@kwiboo.se/ >> >>> +CONFIG_DM_PMIC=y >>> +CONFIG_PMIC_RK8XX=y >>> +CONFIG_REGULATOR_RK8XX=y >>> +CONFIG_REGULATOR_PWM=y >>> +CONFIG_PWM_ROCKCHIP=y >>> +CONFIG_SPL_RAM=y >>> +CONFIG_BAUDRATE=1500000 >>> +CONFIG_DEBUG_UART_SHIFT=2 >>> +CONFIG_SYS_NS16550_MEM32=y >>> +CONFIG_SYSRESET=y >>> +CONFIG_SYSRESET_PSCI=y >>> +CONFIG_ERRNO_STR=y >>> +CONFIG_SYS_PROMPT="BPI-R2PRO> " >>> +CONFIG_CMD_SYSBOOT=y >>> +CONFIG_CMD_BOOTDEV=y >>> +CONFIG_BOOTSTD_FULL=y >>> +CONFIG_CMD_EFICONFIG=n >>> +CONFIG_EFI_LOADER=n >>> +CONFIG_USB=y >>> +CONFIG_USB_XHCI_HCD=y >>> +CONFIG_USB_XHCI_DWC3=y >> >> This should not be enabled for rk3568, USB_DWC3_GENERIC provide usb >> support. >> >>> +CONFIG_USB_DWC3_GENERIC=y >>> +CONFIG_USB_EHCI_HCD=y >>> +CONFIG_USB_EHCI_GENERIC=y >>> +CONFIG_USB_OHCI_HCD=y >>> +CONFIG_USB_OHCI_GENERIC=y >>> +CONFIG_USB_UHCI_HCD=y >>> +CONFIG_USB_DWC2=y >> >> There should not be any need to enable this driver on rk3568. >> >>> +CONFIG_USB_DWC3=y >>> +CONFIG_PHY_ROCKCHIP_NANENG_COMBOPHY=y >>> +CONFIG_PHY_ROCKCHIP_INNO_USB2=y >>> +CONFIG_CMD_USB=y >>> +CONFIG_AHCI=y >>> +CONFIG_DWC_AHCI=y >>> +CONFIG_SCSI=y >>> +CONFIG_DM_SCSI=y >>> +CONFIG_CMD_SCSI=y >> >> Please run moveconfig.py to clean up and re-order the defconfig. > > can you give me an example how i can pass my defconfig with the script? > > ./tools/moveconfig.py configs/bpi-r2pro-rk3568_defconfig > ./tools/moveconfig.py -d configs/bpi-r2pro-rk3568_defconfig > > do not work here...have not found a way in the --help page...i guess i > misunderstand the script Probably much easier to use make savedefconfig instead of the moveconfig.py script. Regards, Jonas > > regards Frank > >> Regards, >> Jonas