mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-24 21:54:01 +00:00
ARM: MediaTek: add basic support for MT8518 boards
This adds a general board file based on MT8518 SoCs from MediaTek. Apart from the generic parts (cpu) we add some low level init codes and initialize the early clocks. This commit is adding the basic boot support for the MT8518 eMMC board. Signed-off-by: mingming lee <mingming.lee@mediatek.com> [trini: Migrate env location to defconfig, set ENV_IS_IN_MMC] Signeed-off-by: Tom Rini <trini@konsulko.com>
This commit is contained in:
parent
485627dd5f
commit
abf2c68566
9 changed files with 257 additions and 1 deletions
|
@ -835,7 +835,8 @@ dtb-$(CONFIG_SOC_K3_J721E) += k3-j721e-common-proc-board.dtb \
|
|||
dtb-$(CONFIG_ARCH_MEDIATEK) += \
|
||||
mt7623n-bananapi-bpi-r2.dtb \
|
||||
mt7629-rfb.dtb \
|
||||
mt8516-pumpkin.dtb
|
||||
mt8516-pumpkin.dtb \
|
||||
mt8518-ap1-emmc.dtb
|
||||
|
||||
dtb-$(CONFIG_TARGET_GE_BX50V3) += imx6q-bx50v3.dtb
|
||||
dtb-$(CONFIG_TARGET_MX53PPD) += imx53-ppd.dtb
|
||||
|
|
104
arch/arm/dts/mt8518-ap1-emmc.dts
Normal file
104
arch/arm/dts/mt8518-ap1-emmc.dts
Normal file
|
@ -0,0 +1,104 @@
|
|||
// SPDX-License-Identifier: (GPL-2.0 OR MIT)
|
||||
/*
|
||||
* Copyright (C) 2019 MediaTek Inc.
|
||||
* Author: Mingming Lee <mingming.lee@mediatek.com>
|
||||
*
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
|
||||
#include <config.h>
|
||||
#include "mt8518.dtsi"
|
||||
|
||||
/ {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
model = "MT8518 AP1 EMMC";
|
||||
|
||||
chosen {
|
||||
stdout-path = &uart0;
|
||||
tick-timer = &timer0;
|
||||
};
|
||||
|
||||
memory@40000000 {
|
||||
device_type = "memory";
|
||||
reg = <0x40000000 0x10000000>;
|
||||
};
|
||||
|
||||
reg_1p8v: regulator-1p8v {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "fixed-1.8V";
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-boot-on;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
reg_3p3v: regulator-3p3v {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "fixed-3.3V";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-boot-on;
|
||||
regulator-always-on;
|
||||
};
|
||||
};
|
||||
|
||||
&mmc0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&mmc0_pins_default>;
|
||||
bus-width = <8>;
|
||||
max-frequency = <200000000>;
|
||||
cap-mmc-highspeed;
|
||||
mmc-hs200-1_8v;
|
||||
cap-mmc-hw-reset;
|
||||
vmmc-supply = <®_3p3v>;
|
||||
vqmmc-supply = <®_1p8v>;
|
||||
non-removable;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&pinctrl {
|
||||
mmc0_pins_default: mmc0default {
|
||||
mux {
|
||||
function = "msdc";
|
||||
groups = "msdc0";
|
||||
};
|
||||
|
||||
conf-cmd-data {
|
||||
pins = "MSDC0_CMD", "MSDC0_DAT0", "MSDC0_DAT1",
|
||||
"MSDC0_DAT2", "MSDC0_DAT3", "MSDC0_DAT4",
|
||||
"MSDC0_DAT5", "MSDC0_DAT6", "MSDC0_DAT7";
|
||||
input-enable;
|
||||
bias-pull-up;
|
||||
};
|
||||
|
||||
conf-clk {
|
||||
pins = "MSDC0_CLK";
|
||||
bias-pull-down;
|
||||
};
|
||||
|
||||
conf-rst {
|
||||
pins = "MSDC0_RSTB";
|
||||
bias-pull-up;
|
||||
};
|
||||
};
|
||||
|
||||
uart0_pins: uart0 {
|
||||
mux {
|
||||
function = "uart";
|
||||
groups = "uart0_0_rxd_txd";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&uart0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&uart0_pins>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&watchdog0 {
|
||||
status = "okay";
|
||||
};
|
|
@ -51,6 +51,7 @@ endchoice
|
|||
|
||||
source "board/mediatek/mt7623/Kconfig"
|
||||
source "board/mediatek/mt7629/Kconfig"
|
||||
source "board/mediatek/mt8518/Kconfig"
|
||||
source "board/mediatek/pumpkin/Kconfig"
|
||||
|
||||
endif
|
||||
|
|
14
board/mediatek/mt8518/Kconfig
Normal file
14
board/mediatek/mt8518/Kconfig
Normal file
|
@ -0,0 +1,14 @@
|
|||
if TARGET_MT8518
|
||||
|
||||
config SYS_BOARD
|
||||
default "mt8518"
|
||||
|
||||
config SYS_CONFIG_NAME
|
||||
default "mt8518"
|
||||
|
||||
|
||||
config MTK_BROM_HEADER_INFO
|
||||
string
|
||||
default "media=nor"
|
||||
|
||||
endif
|
6
board/mediatek/mt8518/MAINTAINERS
Normal file
6
board/mediatek/mt8518/MAINTAINERS
Normal file
|
@ -0,0 +1,6 @@
|
|||
MT8518
|
||||
M: Mingming lee <mingming.lee@mediatek.com>
|
||||
S: Maintained
|
||||
F: board/mediatek/mt8518
|
||||
F: include/configs/mt8518.h
|
||||
F: configs/mt8518_ap1_emmc_defconfig
|
3
board/mediatek/mt8518/Makefile
Normal file
3
board/mediatek/mt8518/Makefile
Normal file
|
@ -0,0 +1,3 @@
|
|||
# SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
obj-y += mt8518_ap1.o
|
18
board/mediatek/mt8518/mt8518_ap1.c
Normal file
18
board/mediatek/mt8518/mt8518_ap1.c
Normal file
|
@ -0,0 +1,18 @@
|
|||
// SPDX-License-Identifier: GPL-2.0
|
||||
/*
|
||||
* Copyright (C) 2019 MediaTek Inc.
|
||||
*/
|
||||
|
||||
#include <common.h>
|
||||
#include <dm.h>
|
||||
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
|
||||
int board_init(void)
|
||||
{
|
||||
/* address of boot parameters */
|
||||
gd->bd->bi_boot_params = CONFIG_SYS_SDRAM_BASE + 0x100;
|
||||
|
||||
debug("gd->fdt_blob is %p\n", gd->fdt_blob);
|
||||
return 0;
|
||||
}
|
44
configs/mt8518_ap1_emmc_defconfig
Normal file
44
configs/mt8518_ap1_emmc_defconfig
Normal file
|
@ -0,0 +1,44 @@
|
|||
CONFIG_ARM=y
|
||||
CONFIG_POSITION_INDEPENDENT=y
|
||||
CONFIG_ARCH_MEDIATEK=y
|
||||
CONFIG_SYS_TEXT_BASE=0x40008000
|
||||
CONFIG_SYS_MALLOC_F_LEN=0x4000
|
||||
CONFIG_TARGET_MT8518=y
|
||||
CONFIG_SYS_PROMPT="MT8518> "
|
||||
CONFIG_ENV_SIZE=0x1000
|
||||
CONFIG_ENV_OFFSET=0x4E60000
|
||||
CONFIG_NR_DRAM_BANKS=1
|
||||
CONFIG_FIT=y
|
||||
CONFIG_FIT_SIGNATURE=y
|
||||
CONFIG_OF_LIBFDT=y
|
||||
# CONFIG_FDT_DEBUG is not set
|
||||
CONFIG_LZMA=y
|
||||
CONFIG_LZ4=y
|
||||
CONFIG_LZO=y
|
||||
CONFIG_GZIP=y
|
||||
CONFIG_BZIP2=y
|
||||
CONFIG_CMD_BOOTMENU=y
|
||||
CONFIG_MENU_SHOW=y
|
||||
CONFIG_DEFAULT_FDT_FILE="mt8518-ap1-emmc.dtb"
|
||||
CONFIG_DEFAULT_DEVICE_TREE="mt8518-ap1-emmc"
|
||||
CONFIG_ENV_IS_IN_MMC=y
|
||||
CONFIG_PINCTRL=y
|
||||
CONFIG_PINCTRL_MT8518=y
|
||||
CONFIG_RAM=y
|
||||
CONFIG_BAUDRATE=921600
|
||||
CONFIG_REGMAP=y
|
||||
CONFIG_SYSCON=y
|
||||
CONFIG_DM=y
|
||||
# CONFIG_DM_DEBUG is not set
|
||||
CONFIG_DM_SERIAL=y
|
||||
CONFIG_MTK_SERIAL=y
|
||||
CONFIG_WDT=y
|
||||
CONFIG_WDT_MTK=y
|
||||
CONFIG_CLK=y
|
||||
CONFIG_TIMER=y
|
||||
CONFIG_MTK_TIMER=y
|
||||
CONFIG_CMD_MMC=y
|
||||
CONFIG_DM_MMC=y
|
||||
CONFIG_MMC_MTK=y
|
||||
CONFIG_MMC_HS200_SUPPORT=y
|
||||
# CONFIG_ENV_IS_IN_MMC is not set
|
65
include/configs/mt8518.h
Normal file
65
include/configs/mt8518.h
Normal file
|
@ -0,0 +1,65 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
/*
|
||||
* Configuration for MediaTek MT8518 SoC
|
||||
*
|
||||
* Copyright (C) 2019 MediaTek Inc.
|
||||
* Author: Mingming Lee <mingming.lee@mediatek.com>
|
||||
*/
|
||||
|
||||
#ifndef __MT8518_H
|
||||
#define __MT8518_H
|
||||
|
||||
#include <linux/sizes.h>
|
||||
|
||||
/* Machine ID */
|
||||
#define CONFIG_SYS_NONCACHED_MEMORY SZ_1M
|
||||
|
||||
#define CONFIG_CPU_ARMV8
|
||||
|
||||
#define COUNTER_FREQUENCY 13000000
|
||||
|
||||
/* DRAM definition */
|
||||
#define CONFIG_SYS_SDRAM_BASE 0x40000000
|
||||
#define CONFIG_SYS_SDRAM_SIZE 0x20000000
|
||||
|
||||
#define CONFIG_SYS_LOAD_ADDR 0x41000000
|
||||
#define CONFIG_LOADADDR CONFIG_SYS_LOAD_ADDR
|
||||
|
||||
#define CONFIG_SYS_MALLOC_LEN SZ_32M
|
||||
#define CONFIG_SYS_BOOTM_LEN SZ_64M
|
||||
|
||||
/* Uboot definition */
|
||||
#define CONFIG_SYS_UBOOT_START CONFIG_SYS_TEXT_BASE
|
||||
#define CONFIG_SYS_INIT_SP_ADDR (CONFIG_SYS_TEXT_BASE + \
|
||||
SZ_2M - \
|
||||
GENERATED_GBL_DATA_SIZE)
|
||||
|
||||
/* ENV Setting */
|
||||
#if defined(CONFIG_MMC_MTK)
|
||||
#define CONFIG_SYS_MMC_ENV_DEV 0
|
||||
#define CONFIG_ENV_OVERWRITE
|
||||
|
||||
/* MMC offset in block unit,and block size is 0x200 */
|
||||
#define ENV_BOOT_READ_IMAGE \
|
||||
"boot_rd_img=mmc dev 0" \
|
||||
";mmc read ${loadaddr} 0x27400 0x4000" \
|
||||
";iminfo ${loadaddr}\0"
|
||||
#endif
|
||||
|
||||
/* Console configuration */
|
||||
#define ENV_DEVICE_SETTINGS \
|
||||
"stdin=serial\0" \
|
||||
"stdout=serial\0" \
|
||||
"stderr=serial\0"
|
||||
|
||||
#define ENV_BOOT_CMD \
|
||||
"mtk_boot=run boot_rd_img;bootm;\0"
|
||||
|
||||
#define CONFIG_EXTRA_ENV_SETTINGS \
|
||||
"fdt_high=0x6c000000\0" \
|
||||
ENV_DEVICE_SETTINGS \
|
||||
ENV_BOOT_READ_IMAGE \
|
||||
ENV_BOOT_CMD \
|
||||
"bootcmd=run mtk_boot;\0" \
|
||||
|
||||
#endif
|
Loading…
Reference in a new issue