[U-Boot] [PATCH] rockchip: firefly-rk3288: Enable TPL support

This patch enable TPL support for firefly-rk3288 board, which works ths same way with other RK3288 board like Tinker, evb.
Signed-off-by: Kever Yang kever.yang@rock-chips.com ---
arch/arm/mach-rockchip/rk3288/Kconfig | 1 + configs/firefly-rk3288_defconfig | 5 ++--- 2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/arch/arm/mach-rockchip/rk3288/Kconfig b/arch/arm/mach-rockchip/rk3288/Kconfig index 4ebc0792d5..afb62fca78 100644 --- a/arch/arm/mach-rockchip/rk3288/Kconfig +++ b/arch/arm/mach-rockchip/rk3288/Kconfig @@ -67,6 +67,7 @@ config TARGET_FIREFLY_RK3288 bool "Firefly-RK3288" select BOARD_LATE_INIT select SPL_BOARD_INIT if SPL + select TPL help Firefly is a RK3288-based development board with 2 USB ports, HDMI, VGA, micro-SD card, audio, WiFi and Gigabit Ethernet, It diff --git a/configs/firefly-rk3288_defconfig b/configs/firefly-rk3288_defconfig index 29935d869c..64a83a17f2 100644 --- a/configs/firefly-rk3288_defconfig +++ b/configs/firefly-rk3288_defconfig @@ -1,15 +1,14 @@ CONFIG_ARM=y CONFIG_ARCH_ROCKCHIP=y -CONFIG_SYS_TEXT_BASE=0x00000000 +CONFIG_SYS_TEXT_BASE=0x01000000 CONFIG_ROCKCHIP_RK3288=y -CONFIG_SPL_ROCKCHIP_BACK_TO_BROM=y CONFIG_TARGET_FIREFLY_RK3288=y CONFIG_NR_DRAM_BANKS=1 +CONFIG_SPL_SIZE_LIMIT=262144 CONFIG_SPL_STACK_R_ADDR=0x80000 CONFIG_DEBUG_UART_BASE=0xff690000 CONFIG_DEBUG_UART_CLOCK=24000000 CONFIG_DEBUG_UART=y -CONFIG_SPL_TEXT_BASE=0xff704000 # CONFIG_ANDROID_BOOT_IMAGE is not set CONFIG_USE_PREBOOT=y CONFIG_SILENT_CONSOLE=y

Hi all, I have difficulties with TPL in the firefly-rk3288 board.
1. Without defining DEBUG in `drivers/mmc/dw_mmc.c`, boot with TF card:
U-Boot TPL 2019.10-00017-g5b02ac7fa5dd-dirty (Oct 17 2019 - 16:36:39) Trying to boot from BOOTROM Returning to boot ROM...
U-Boot SPL 2019.10-00017-g5b02ac7fa5dd-dirty (Oct 17 2019 - 16:36:39 +0800) Trying to boot from MMC1 spl: mmc boot mode: raw hdr read sector 4000, count=1 TO read 3af sectors to ffffc0
It hangs without further messages.
2. With defining DEBUG in `drivers/mmc/dw_mmc.c`, boot with TF card, emmc being erased:
U-Boot TPL 2019.10-00017-g5b02ac7fa5dd-dirty (Oct 17 2019 - 16:42:43) Trying to boot from BOOTROM Returning to boot ROM...
U-Boot SPL 2019.10-00017-g5b02ac7fa5dd-dirty (Oct 17 2019 - 16:42:43 +0800) Trying to boot from MMC1 Buswidth = 0, clock: 0 Buswidth = 1, clock: 0 Buswidth = 1, clock: 400000 Sending CMD0 Sending CMD8 Sending CMD55 Sending CMD41 Sending CMD55 Sending CMD41 Sending CMD55 Sending CMD41 Sending CMD55 Sending CMD41 Sending CMD2 Sending CMD3 Sending CMD9 Sending CMD7 Sending CMD55 Sending CMD51 Sending CMD6 Sending CMD55 Sending CMD6 Buswidth = 4, clock: 400000 Sending CMD6 Buswidth = 4, clock: 50000000 spl: mmc boot mode: raw Sending CMD16 Sending CMD17 hdr read sector 4000, count=1 TO read 3b1 sectors to ffffc0 Sending CMD16 Sending CMD18 Sending CMD12 read 3b1 sectors to ffffc0
U-Boot 2019.10-00017-g5b02ac7fa5dd-dirty (Oct 17 2019 - 16:42:43 +0800)
Model: Firefly-RK3288 DRAM: 4 GiB MMC: dwmmc@ff0c0000: 1, dwmmc@ff0f0000: 0 Loading Environment from MMC... Buswidth = 0, clock: 0 Buswidth = 1, clock: 0 Buswidth = 1, clock: 400000 Sending CMD0 Sending CMD8 dwmci_send_cmd: Response Timeout. Sending CMD55 dwmci_send_cmd: Response Timeout. Sending CMD0 Sending CMD1 Sending CMD1 Sending CMD0 Sending CMD1 Sending CMD1 Sending CMD2 Sending CMD3 Sending CMD9 Sending CMD7 Sending CMD8 Buswidth = 1, clock: 25000000 Sending CMD6 Sending CMD13 Buswidth = 8, clock: 25000000 Sending CMD6 Sending CMD13 Sending CMD8 Buswidth = 8, clock: 52000000 Sending CMD8 Sending CMD16 Sending CMD17 Sending CMD16 Sending CMD18 Sending CMD12 Sending CMD16 Sending CMD18 Sending CMD12 *** Warning - bad CRC, using default environment
In: serial Out: serial Err: serial Model: Firefly-RK3288 rockchip_dnl_key_pressed: adc_channel_single_shot fail! Net: Warning: ethernet@ff290000 (eth0) using random MAC address - f2:26:96:9a:41:83 eth0: ethernet@ff290000 Hit any key to stop autoboot: 0 =>
Everything works. It is weird.
Have tried with the eMMC booting, with the same result.
My modification besides Kever's patch is:
diff --git a/arch/arm/mach-rockchip/rk3288/rk3288.c b/arch/arm/mach-rockchip/rk3288/rk3288.c index 057ce920809e..987b4e0d58c2 100644 --- a/arch/arm/mach-rockchip/rk3288/rk3288.c +++ b/arch/arm/mach-rockchip/rk3288/rk3288.c @@ -22,8 +22,8 @@ DECLARE_GLOBAL_DATA_PTR; #define GRF_BASE 0xff770000
const char * const boot_devices[BROM_LAST_BOOTSOURCE + 1] = { - [BROM_BOOTSOURCE_EMMC] = "dwmmc@ff0f0000", - [BROM_BOOTSOURCE_SD] = "dwmmc@ff0c0000", + [BROM_BOOTSOURCE_EMMC] = "/dwmmc@ff0f0000", + [BROM_BOOTSOURCE_SD] = "/dwmmc@ff0c0000", };
#ifdef CONFIG_SPL_BUILD diff --git a/common/spl/spl_mmc.c b/common/spl/spl_mmc.c index b3619889f794..e7432c96752a 100644 --- a/common/spl/spl_mmc.c +++ b/common/spl/spl_mmc.c @@ -5,6 +5,7 @@ * * Aneesh V aneesh@ti.com */ +#define DEBUG #include <common.h> #include <dm.h> #include <spl.h> @@ -31,6 +32,8 @@ static int mmc_load_legacy(struct spl_image_info *spl_image, struct mmc *mmc, mmc->read_bl_len;
/* Read the header too to avoid extra memcpy */ + debug("TO read %x sectors to %lx\n", image_size_sectors, + spl_image->load_addr); count = blk_dread(mmc_get_blk_desc(mmc), sector, image_size_sectors, (void *)(ulong)spl_image->load_addr); debug("read %x sectors to %lx\n", image_size_sectors, diff --git a/configs/firefly-rk3288_defconfig b/configs/firefly-rk3288_defconfig index 4a43cb5470f1..061005453be4 100644 --- a/configs/firefly-rk3288_defconfig +++ b/configs/firefly-rk3288_defconfig @@ -15,6 +15,7 @@ CONFIG_SILENT_CONSOLE=y CONFIG_DEFAULT_FDT_FILE="rk3288-firefly.dtb" # CONFIG_DISPLAY_CPUINFO is not set CONFIG_DISPLAY_BOARDINFO_LATE=y +# CONFIG_SPL_RAW_IMAGE_SUPPORT is not set CONFIG_SPL_STACK_R=y CONFIG_SPL_STACK_R_MALLOC_SIMPLE_LEN=0x2000 CONFIG_CMD_GPIO=y diff --git a/drivers/mmc/dw_mmc.c b/drivers/mmc/dw_mmc.c index ebe7bcdd9005..2cd4092f0601 100644 --- a/drivers/mmc/dw_mmc.c +++ b/drivers/mmc/dw_mmc.c @@ -5,6 +5,7 @@ * Rajeshawari Shinde rajeshwari.s@samsung.com */
+#define DEBUG #include <bouncebuf.h> #include <common.h> #include <errno.h>
I'm also adding Peng Fan, maintainer of MMC, to seek some advice.
Thanks for all your time.
Kever Yang kever.yang@rock-chips.com writes:
This patch enable TPL support for firefly-rk3288 board, which works ths same way with other RK3288 board like Tinker, evb.
Signed-off-by: Kever Yang kever.yang@rock-chips.com
arch/arm/mach-rockchip/rk3288/Kconfig | 1 + configs/firefly-rk3288_defconfig | 5 ++--- 2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/arch/arm/mach-rockchip/rk3288/Kconfig b/arch/arm/mach-rockchip/rk3288/Kconfig index 4ebc0792d5..afb62fca78 100644 --- a/arch/arm/mach-rockchip/rk3288/Kconfig +++ b/arch/arm/mach-rockchip/rk3288/Kconfig @@ -67,6 +67,7 @@ config TARGET_FIREFLY_RK3288 bool "Firefly-RK3288" select BOARD_LATE_INIT select SPL_BOARD_INIT if SPL
- select TPL help Firefly is a RK3288-based development board with 2 USB ports, HDMI, VGA, micro-SD card, audio, WiFi and Gigabit Ethernet, It
diff --git a/configs/firefly-rk3288_defconfig b/configs/firefly-rk3288_defconfig index 29935d869c..64a83a17f2 100644 --- a/configs/firefly-rk3288_defconfig +++ b/configs/firefly-rk3288_defconfig @@ -1,15 +1,14 @@ CONFIG_ARM=y CONFIG_ARCH_ROCKCHIP=y -CONFIG_SYS_TEXT_BASE=0x00000000 +CONFIG_SYS_TEXT_BASE=0x01000000 CONFIG_ROCKCHIP_RK3288=y -CONFIG_SPL_ROCKCHIP_BACK_TO_BROM=y CONFIG_TARGET_FIREFLY_RK3288=y CONFIG_NR_DRAM_BANKS=1 +CONFIG_SPL_SIZE_LIMIT=262144 CONFIG_SPL_STACK_R_ADDR=0x80000 CONFIG_DEBUG_UART_BASE=0xff690000 CONFIG_DEBUG_UART_CLOCK=24000000 CONFIG_DEBUG_UART=y -CONFIG_SPL_TEXT_BASE=0xff704000 # CONFIG_ANDROID_BOOT_IMAGE is not set CONFIG_USE_PREBOOT=y CONFIG_SILENT_CONSOLE=y
participants (2)
-
Kever Yang
-
Levin Du