All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ryder Lee <ryder.lee@mediatek.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v2] board: mediatek: Add pumpkin board support
Date: Fri, 14 Jun 2019 20:47:36 +0800	[thread overview]
Message-ID: <1560516456.7461.2.camel@mtkswgap22> (raw)
In-Reply-To: <CAOwMV_zF0Qs4DNm0FiXnxsLMTYCh6_z5-NC-DgpF_brtu555qw@mail.gmail.com>

On Fri, 2019-06-14 at 14:16 +0200, Fabien Parent wrote:
> +u-boot at lists.denx.de
> 
> On Fri, Jun 14, 2019 at 2:14 PM Fabien Parent <fparent@baylibre.com> wrote:
> >
> > The pumpkin board is made by Gossamer Engineering and is using
> > a MediaTek SoC. The board currently comes in two available version:
> > MT8516 SoC and MT8167 SoC.
> > The board provides the following IOs: eMMC, NAND, SD card, USB type-A,
> > Ethernet, Wi-Fi, Bluetooth, Audio (jack out, 2 PDM port, 1 analog in),
> > serial over USB, and an expansion header.
> >
> > Additionally there is a HDMI port, DSI port, and camera port only
> > on the MT8167 version of the board.
> >
> > The board can be powered by battery and/or via a USB Type-C port and
> > is using a PMIC MT6392.
> >
> > The eMMC and NAND are sharing pins and cannot be used together.
> >
> > This commit is adding the basic boot support for the Pumpkin MT8516
> > board on the eMMC.
> >
> > Signed-off-by: Fabien Parent <fparent@baylibre.com>
> > ---
> >
> > V2:
> >         * Set MTK_BROM_HEADER_INFO to 'emmc' since we only support eMMC right now.
> >
> > ---
> >  arch/arm/dts/Makefile              |   3 +-
> >  arch/arm/dts/mt8516-pumpkin.dts    | 110 +++++++++++++++++++++++++++++
> >  arch/arm/mach-mediatek/Kconfig     |   1 +
> >  board/mediatek/pumpkin/Kconfig     |  13 ++++
> >  board/mediatek/pumpkin/MAINTAINERS |   6 ++
> >  board/mediatek/pumpkin/Makefile    |   3 +
> >  board/mediatek/pumpkin/pumpkin.c   |  14 ++++
> >  configs/pumpkin_defconfig          |  64 +++++++++++++++++
> >  include/configs/pumpkin.h          |  58 +++++++++++++++
> >  9 files changed, 271 insertions(+), 1 deletion(-)
> >  create mode 100644 arch/arm/dts/mt8516-pumpkin.dts
> >  create mode 100644 board/mediatek/pumpkin/Kconfig
> >  create mode 100644 board/mediatek/pumpkin/MAINTAINERS
> >  create mode 100644 board/mediatek/pumpkin/Makefile
> >  create mode 100644 board/mediatek/pumpkin/pumpkin.c
> >  create mode 100644 configs/pumpkin_defconfig
> >  create mode 100644 include/configs/pumpkin.h
> >
> > diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile
> > index 528fb909d5..1f66172530 100644
> > --- a/arch/arm/dts/Makefile
> > +++ b/arch/arm/dts/Makefile
> > @@ -766,7 +766,8 @@ dtb-$(CONFIG_SOC_K3_AM6) += k3-am654-base-board.dtb k3-am654-r5-base-board.dtb
> >
> >  dtb-$(CONFIG_ARCH_MEDIATEK) += \
> >         mt7623n-bananapi-bpi-r2.dtb \
> > -       mt7629-rfb.dtb
> > +       mt7629-rfb.dtb \
> > +       mt8516-pumpkin.dtb
> >
> >  dtb-$(CONFIG_TARGET_GE_BX50V3) += imx6q-bx50v3.dtb
> >  dtb-$(CONFIG_TARGET_MX53PPD) += imx53-ppd.dtb
> > diff --git a/arch/arm/dts/mt8516-pumpkin.dts b/arch/arm/dts/mt8516-pumpkin.dts
> > new file mode 100644
> > index 0000000000..cd43c1f5e3
> > --- /dev/null
> > +++ b/arch/arm/dts/mt8516-pumpkin.dts
> > @@ -0,0 +1,110 @@
> > +// SPDX-License-Identifier: GPL-2.0 OR MIT
> > +/*
> > + * Copyright (C) 2019 BayLibre SAS.
> > + * Author: Fabien Parent <fparent@baylibre.com>
> > + */
> > +
> > +/dts-v1/;
> > +
> > +#include <config.h>
> > +#include "mt8516.dtsi"
> > +
> > +/ {
> > +       model = "Pumpkin MT8516";
> > +
> > +       chosen {
> > +               stdout-path = &uart0;
> > +       };
> > +
> > +       memory at 40000000 {
> > +               device_type = "memory";
> > +               reg = <0x40000000 0x20000000>;
> > +       };
> > +
> > +       reserved-memory {
> > +               #address-cells = <2>;
> > +               #size-cells = <2>;
> > +
> > +               /* 128 KiB reserved for ARM Trusted Firmware (BL31) */
> > +               bl31_secmon_reserved: secmon at 43000000 {
> > +                       no-map;
> > +                       reg = <0 0x43000000 0 0x20000>;
> > +               };
> > +       };
> > +
> > +       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 = <4>;
> > +       max-frequency = <200000000>;
> > +       cap-mmc-highspeed;
> > +       mmc-hs200-1_8v;
> > +       cap-mmc-hw-reset;
> > +       vmmc-supply = <&reg_3p3v>;
> > +       vqmmc-supply = <&reg_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";
> > +};
> > +
> > +&watchdog {
> > +       status = "okay";
> > +};
> > diff --git a/arch/arm/mach-mediatek/Kconfig b/arch/arm/mach-mediatek/Kconfig
> > index b5e91d4a7d..a7d594f48a 100644
> > --- a/arch/arm/mach-mediatek/Kconfig
> > +++ b/arch/arm/mach-mediatek/Kconfig
> > @@ -45,5 +45,6 @@ endchoice
> >
> >  source "board/mediatek/mt7623/Kconfig"
> >  source "board/mediatek/mt7629/Kconfig"
> > +source "board/mediatek/pumpkin/Kconfig"
> >
> >  endif
> > diff --git a/board/mediatek/pumpkin/Kconfig b/board/mediatek/pumpkin/Kconfig
> > new file mode 100644
> > index 0000000000..fb81fa8906
> > --- /dev/null
> > +++ b/board/mediatek/pumpkin/Kconfig
> > @@ -0,0 +1,13 @@
> > +if TARGET_MT8516
> > +
> > +config SYS_BOARD
> > +       default "pumpkin"
> > +
> > +config SYS_CONFIG_NAME
> > +       default "pumpkin"
> > +
> > +config MTK_BROM_HEADER_INFO
> > +       string
> > +       default "media=nor"
> > +
> > +endif
> > diff --git a/board/mediatek/pumpkin/MAINTAINERS b/board/mediatek/pumpkin/MAINTAINERS
> > new file mode 100644
> > index 0000000000..16beadc027
> > --- /dev/null
> > +++ b/board/mediatek/pumpkin/MAINTAINERS
> > @@ -0,0 +1,6 @@
> > +Pumpkin
> > +M:     Fabien Parent <fparent@baylibre.com>
> > +S:     Maintained
> > +F:     board/mediatek/pumpkin
> > +F:     include/configs/pumpkin.h
> > +F:     configs/pumpkin_defconfig
> > diff --git a/board/mediatek/pumpkin/Makefile b/board/mediatek/pumpkin/Makefile
> > new file mode 100644
> > index 0000000000..75fce4a393
> > --- /dev/null
> > +++ b/board/mediatek/pumpkin/Makefile
> > @@ -0,0 +1,3 @@
> > +# SPDX-License-Identifier:     GPL-2.0
> > +
> > +obj-y += pumpkin.o
> > diff --git a/board/mediatek/pumpkin/pumpkin.c b/board/mediatek/pumpkin/pumpkin.c
> > new file mode 100644
> > index 0000000000..c20e91c9e6
> > --- /dev/null
> > +++ b/board/mediatek/pumpkin/pumpkin.c
> > @@ -0,0 +1,14 @@
> > +// SPDX-License-Identifier: GPL-2.0
> > +/*
> > + * Copyright (C) 2019 BayLibre SAS
> > + */
> > +
> > +#include <common.h>
> > +#include <dm.h>
> > +
> > +DECLARE_GLOBAL_DATA_PTR;

I don't see anywhere to use gd so suggest to drop it.

> > +int board_init(void)
> > +{
> > +       return 0;
> > +}
> > diff --git a/configs/pumpkin_defconfig b/configs/pumpkin_defconfig
> > new file mode 100644
> > index 0000000000..06e2b8f5b9
> > --- /dev/null
> > +++ b/configs/pumpkin_defconfig
> > @@ -0,0 +1,64 @@
> > +CONFIG_ARM=y
> > +CONFIG_POSITION_INDEPENDENT=y
> > +CONFIG_ARCH_MEDIATEK=y
> > +CONFIG_SYS_TEXT_BASE=0x4C000000
> > +CONFIG_SYS_MALLOC_F_LEN=0x4000
> > +CONFIG_TARGET_MT8516=y
> > +CONFIG_NR_DRAM_BANKS=1
> > +CONFIG_DEBUG_UART_BASE=0x11005000
> > +CONFIG_DEBUG_UART_CLOCK=26000000
> > +# CONFIG_PSCI_RESET is not set
> > +CONFIG_DEBUG_UART=y
> > +CONFIG_FIT=y
> > +# CONFIG_FIT_ENABLE_SHA256_SUPPORT is not set
> > +# CONFIG_ARCH_FIXUP_FDT_MEMORY is not set
> > +CONFIG_DEFAULT_FDT_FILE="mt8516-pumpkin"
> > +# CONFIG_DISPLAY_BOARDINFO is not set
> > +CONFIG_HUSH_PARSER=y
> > +# CONFIG_CMD_BDI is not set
> > +# CONFIG_CMD_CONSOLE is not set
> > +# CONFIG_CMD_BOOTD is not set
> > +# CONFIG_CMD_BOOTI is not set
> > +# CONFIG_CMD_ELF is not set
> > +# CONFIG_CMD_GO is not set
> > +# CONFIG_CMD_IMI is not set
> > +# CONFIG_CMD_XIMG is not set
> > +# CONFIG_CMD_EXPORTENV is not set
> > +# CONFIG_CMD_IMPORTENV is not set
> > +# CONFIG_CMD_EDITENV is not set
> > +# CONFIG_CMD_ENV_EXISTS is not set
> > +# CONFIG_CMD_CRC32 is not set
> > +# CONFIG_CMD_MEMORY is not set
> > +# CONFIG_CMD_FLASH is not set
> > +CONFIG_CMD_GPT=y
> > +# CONFIG_RANDOM_UUID is not set
> > +# CONFIG_CMD_LOADB is not set
> > +# CONFIG_CMD_LOADS is not set
> > +CONFIG_CMD_MMC=y
> > +CONFIG_CMD_PART=y
> > +# CONFIG_CMD_ITEST is not set
> > +# CONFIG_CMD_SOURCE is not set
> > +# CONFIG_CMD_SETEXPR is not set
> > +# CONFIG_CMD_BLOCK_CACHE is not set
> > +# CONFIG_CMD_MISC is not set
> > +CONFIG_DEFAULT_DEVICE_TREE="mt8516-pumpkin"
> > +CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
> > +# CONFIG_NET is not set
> > +CONFIG_SPL_DM_SEQ_ALIAS=y
> > +CONFIG_CLK=y
> > +CONFIG_DM_GPIO=y
> > +# CONFIG_INPUT is not set
> > +CONFIG_DM_MMC=y
> > +# CONFIG_MMC_QUIRKS is not set
> > +CONFIG_MMC_MTK=y
> > +CONFIG_PINCTRL=y
> > +CONFIG_PINCTRL_MT8516=y
> > +CONFIG_RAM=y
> > +CONFIG_BAUDRATE=921600
> > +CONFIG_DM_SERIAL=y
> > +CONFIG_DEBUG_UART_MTK=y
> > +CONFIG_DEBUG_UART_ANNOUNCE=y
> > +CONFIG_MTK_SERIAL=y
> > +CONFIG_WDT=y
> > +CONFIG_WDT_MTK=y
> > +# CONFIG_EFI_LOADER is not set
> > diff --git a/include/configs/pumpkin.h b/include/configs/pumpkin.h
> > new file mode 100644
> > index 0000000000..b81e587983
> > --- /dev/null
> > +++ b/include/configs/pumpkin.h
> > @@ -0,0 +1,58 @@
> > +/* SPDX-License-Identifier: GPL-2.0+ */
> > +/*
> > + * Configuration for Pumpkin board
> > + *
> > + * Copyright (C) 2019 BayLibre, SAS
> > + * Author: Fabien Parent <fparent@baylibre.com
> > + */
> > +
> > +#ifndef __PUMPKIN_H
> > +#define __PUMPKIN_H
> > +
> > +#include <linux/sizes.h>
> > +
> > +#define CONFIG_ENV_SIZE                        SZ_4K
> > +#define CONFIG_SYS_LOAD_ADDR           CONFIG_SYS_TEXT_BASE
> > +#define CONFIG_SYS_MALLOC_LEN          SZ_4M
> > +
> > +#define CONFIG_CPU_ARMV8
> > +#define COUNTER_FREQUENCY              13000000
> > +
> > +#define CONFIG_SYS_NS16550_SERIAL
> > +#define CONFIG_SYS_NS16550_REG_SIZE    -4
> > +#define CONFIG_SYS_NS16550_MEM32
> > +#define CONFIG_SYS_NS16550_COM1                0x11005000
> > +#define CONFIG_SYS_NS16550_CLK         26000000
> > +
> > +#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)
> > +
> > +#define CONFIG_SYS_BOOTM_LEN           SZ_64M
> > +
> > +/* Environment settings */
> > +#include <config_distro_bootcmd.h>
> > +
> > +#define MMCBOOT \
> > +       "mmcdev=0\0" \
> > +       "kernel_partition=2\0" \
> > +       "rootfs_partition=3\0" \
> > +       "mmc_discover_partition=" \
> > +               "part start mmc ${mmcdev} ${kernel_partition} kernel_part_addr;" \
> > +               "part size mmc ${mmcdev} ${kernel_partition} kernel_part_size;\0" \
> > +       "mmcboot=" \
> > +               "mmc dev ${mmcdev};" \
> > +               "run mmc_discover_partition;" \
> > +               "mmc read ${kerneladdr} ${kernel_part_addr} ${kernel_part_size};" \
> > +               "setenv bootargs ${bootargs} root=/dev/mmcblk${mmcdev}p${rootfs_partition} rootwait; " \
> > +               "bootm ${kerneladdr}; \0"
> > +
> > +#define CONFIG_EXTRA_ENV_SETTINGS \
> > +       "kerneladdr=0x4A000000\0" \
> > +       "bootargs= " \
> > +               "console=tty0 console=ttyS0,921600n1 " \
> > +               "earlycon=uart8250,mmio32,0x11005000\0 " \
> > +       MMCBOOT \
> > +       "bootcmd=run mmcboot;\0"
> > +
> > +#endif
> > --
> > 2.20.1
> >

      reply	other threads:[~2019-06-14 12:47 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20190614121442.21230-1-fparent@baylibre.com>
2019-06-14 12:16 ` [U-Boot] [PATCH v2] board: mediatek: Add pumpkin board support Fabien Parent
2019-06-14 12:47   ` Ryder Lee [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1560516456.7461.2.camel@mtkswgap22 \
    --to=ryder.lee@mediatek.com \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.