[PATCH 1/1] board: mt5824: Add initial support for Metanoia MT5824 EVB
Tom Rini
trini at konsulko.com
Tue Dec 30 16:31:15 CET 2025
On Tue, Dec 30, 2025 at 11:03:28AM +0800, Jun Chang wrote:
> - Add RISC-V target for MT5824
> - Add board defconfig and DTS for MT5824 EVB
> - Add SPL and U-Boot board support for MT5824 EVB
> - Add DDR init for MT5824 EVB
>
> Signed-off-by: Jun Chang <jun.chang at metanoia-comm.com>
> ---
> arch/riscv/Kconfig | 4 +
> arch/riscv/dts/mt5824-evb.dts | 232 +++++++++++++++++
What is the status on upstreaming this device tree?
[snip]
> diff --git a/board/metanoia/mt5824/lpddr4.h b/board/metanoia/mt5824/lpddr4.h
> new file mode 100644
> index 00000000000..5de70c536ca
> --- /dev/null
> +++ b/board/metanoia/mt5824/lpddr4.h
> @@ -0,0 +1,91 @@
> +/* SPDX-License-Identifier: GPL-2.0+ */
> +/*
> + * Copyright (C) 2025 Metanoia Communications Inc.,
> + * Jun Chang, Metanoia Communications Inc. <jun.chang at metanoia-comm.com>
> + */
> +
> +#ifndef __COBRA_DDR_H
> +#define __COBRA_DDR_H
> +
> +#include <asm/io.h>
> +
> +#define UMCTL2_REGS_BASE_ADDR 0x10060000
> +
> +#define reg8_write(addr, data) \
> + writeb((uint8_t)(data), (volatile void __iomem *)(addr))
> +#define reg16_write(addr, data) \
> + writew((uint16_t)(data), (volatile void __iomem *)(addr))
> +#define reg32_write(addr, data) \
> + writel((uint32_t)(data), (volatile void __iomem *)(addr))
We really don't already have an appropriate macro here to use?
[snip]
> +#endif /* __COBRA_DDR_H */
> \ No newline at end of file
Please fix that globally.
> diff --git a/board/metanoia/mt5824/lpddr4_helper.c b/board/metanoia/mt5824/lpddr4_helper.c
> new file mode 100644
> index 00000000000..3bc447038dc
> --- /dev/null
> +++ b/board/metanoia/mt5824/lpddr4_helper.c
[snip]
> +#if 0 /* Enable for debugging */
> + if (i < 10) {
> + printf(" [%02d] 0x%08x = 0x%08x\n", i, reg_addr, reg_value);
> + }
> +#endif
Just use debug() here? And remove other "if 0" or commented out code
globally.
[snip]
> diff --git a/board/metanoia/mt5824/mt5824.c b/board/metanoia/mt5824/mt5824.c
> new file mode 100644
> index 00000000000..f385de1d897
> --- /dev/null
> +++ b/board/metanoia/mt5824/mt5824.c
> @@ -0,0 +1,188 @@
> +/* SPDX-License-Identifier: GPL-2.0+ */
> +/*
> + * Copyright (C) 2025 Metanoia Communications Inc.,
> + * Jun Chang, Metanoia Communications Inc. <jun.chang at metanoia-comm.com>
> + */
> +
> +#include <log.h>
> +#include <asm/csr.h>
> +#include <asm/sbi.h>
> +#include <config.h>
> +#include <cpu_func.h>
> +#include <image.h>
> +#include <init.h>
> +#include <net.h>
> +#include <asm/global_data.h>
> +#include <linux/io.h>
> +#include <fdtdec.h>
> +#include <dm.h>
> +#include <hang.h>
> +#include <misc.h>
> +#include <hexdump.h>
> +#include <env_internal.h>
> +#include <linux/delay.h>
> +#include <asm/io.h>
Globally, please audit your include list.
[snip]
> diff --git a/configs/mt5824_evb_defconfig b/configs/mt5824_evb_defconfig
> new file mode 100644
> index 00000000000..74f6ceb2284
> --- /dev/null
> +++ b/configs/mt5824_evb_defconfig
> @@ -0,0 +1,61 @@
> +CONFIG_RISCV=y
> +CONFIG_RISCV_ANDES=y
> +CONFIG_ARCH_RV64I=y
> +CONFIG_RISCV_SMODE=y
> +
Please re-generate this with "make savedefconfig".
[snip]
> diff --git a/include/configs/mt5824.h b/include/configs/mt5824.h
> new file mode 100644
> index 00000000000..9809080b805
> --- /dev/null
> +++ b/include/configs/mt5824.h
[snip]
> +/* environments */
> +
> +/* SPI FLASH */
> +
> +/*
> + * For booting Linux, the board info and command line data
> + * have to be in the first 16 MB of memory, since this is
> + * the maximum mapped by the Linux kernel during initialization.
> + */
> +
> +/* Initial Memory map for Linux*/
> +#define CFG_SYS_BOOTMAPSZ (64 << 20)
> +/* Increase max gunzip size */
> +
> +/* Support autoboot from RAM (kernel image is loaded via debug port) */
> +#define BOOTENV_DEV_NAME_RAM(devtypeu, devtypel, instance) \
> + "ram "
> +
> +#define BOOTENV_DEV_RAM(devtypeu, devtypel, instance) \
> + "bootcmd_ram=" \
> + "bootm ${fit_addr}\0"
> +
> +#define BOOTENV_DEV_LEGACY_MMC(devtypeu, devtypel, instance) \
> + "bootcmd_" #devtypel #instance "=" \
> + "setenv mmcdev " #instance"; "\
> + "setenv bootpart " #instance":2 ; "\
> + "run mmcboot\0"
> +
> +#define BOOTENV_DEV_NAME_LEGACY_MMC(devtypeu, devtypel, instance) \
> + #devtypel #instance " "
> +
> +#define BOOTENV_DEV_NAME_TFTP(devtypeu, devtypel, instance) \
> + #devtypel " "
> +
> +#define BOOTENV_DEV_TFTP(devtypeu, devtypel, instance) \
> + "bootcmd_" #devtypel "=" \
> + "tftpboot ${fit_addr} $serverip:fitImage-dev-image-initramfs; " \
> + "bootm ${fit_addr}\0"
> +
> +/* Enable distro boot */
> +#define BOOT_TARGET_DEVICES(func) \
> + func(TFTP, tftp, na) \
> + func(RAM, ram, na)
> +
> +#include <config_distro_bootcmd.h>
> +
> +#define CFG_EXTRA_ENV_SETTINGS \
> + "bootcmd=bootm 90000000\0" \
> + "kernel_addr_r=82000000\0" \
> + "pxefile_addr_r=0x83f00000\0" \
> + "scriptaddr=0x83f00000\0" \
> + "fdt_addr_r=0x68010000\0" \
> + "ramdisk_addr_r=0x83000000\0" \
> + "fit_addr=0x83000000\0" \
> + "initrd_high=0x100000000\0" \
> + BOOTENV
Please switch to plain text environment and consider standard boot,
thanks.
--
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 228 bytes
Desc: not available
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20251230/f4588aab/attachment.sig>
More information about the U-Boot
mailing list