All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Yann Dirson" <yann.dirson@blade-group.com>
To: Trevor Woerner <twoerner@gmail.com>
Cc: Yocto discussion list <yocto@yoctoproject.org>,
	Yann Dirson <yann@blade-group.com>
Subject: Re: [meta-rockchip][PATCH v4 3/3] linux-yocto: add an initial NanoPi-M4 BSP
Date: Wed, 5 May 2021 00:13:42 +0200	[thread overview]
Message-ID: <CA+4=ima+e+vMB2+1f4tUaSmWLe9XM5TbVDJXkyju1AXv0g8veg@mail.gmail.com> (raw)
In-Reply-To: <20210504210349.GC1096@localhost>

Le mar. 4 mai 2021 à 23:03, Trevor Woerner <twoerner@gmail.com> a écrit :
>
> On Mon 2021-04-26 @ 04:58:10 PM, yann.dirson@blade-group.com wrote:
> > From: Yann Dirson <yann@blade-group.com>
> >
> > This patch provides "standard" and "tiny" BSP.
> >
> > There is still much work to be done in dispatching feature to individual
> > scc files - the more boards we can support the better it will get.
> > Not all SoC/board features are covered yet either (esp. Wifi/Bluetooth and
> > audio jack), and properly-woking HDMI still needs patches.
> >
> > Tiny is not fully testable by itself, it can be minimally booted with
> > serial console (though still missing CONFIG_MULTIUSER for serial getty,
> > and CONFIG_INOTIFY_USER for proper udev operation) using:
> >
> >  PREFERRED_PROVIDER_virtual/kernel = "linux-yocto-tiny"
> >  KERNEL_FEATURES_append = "\
> >   ktypes/base/base.scc \
> >   features/debug/printk.scc \
> >   cfg/fs/ext4.scc \
> >   cfg/8250.scc \
> >  "
> >
> > Such a tiny build is still using mainline defconfig with lots of hardware
> > features, and the kernel can be slimmed down even more by using:
> >
> >  KBUILD_DEFCONFIG = ""
> >
> > Kernel weight using default configurations:
> > - standard                11MB
> > - tiny                     5MB
> > - tiny with no defconfig   2.5MB
> >
> > Signed-off-by: Yann Dirson <yann@blade-group.com>
> > ---
> >  .../files/bsp/rockchip/nanopi-m4-standard.scc |  7 ++
> >  .../files/bsp/rockchip/nanopi-m4-tiny.scc     |  7 ++
> >  .../linux/files/bsp/rockchip/nanopi-m4.cfg    | 15 ++++
> >  .../linux/files/bsp/rockchip/nanopi-m4.scc    |  5 ++
> >  .../linux/files/bsp/rockchip/rk3399.cfg       | 71 +++++++++++++++++++
> >  .../linux/files/bsp/rockchip/rk3399.scc       |  5 ++
> >  .../linux/files/bsp/rockchip/rockchip.cfg     | 50 +++++++++++++
> >  .../linux/files/bsp/rockchip/rockchip.scc     |  6 ++
> >  recipes-kernel/linux/linux-yocto%.bbappend    |  6 ++
> >  9 files changed, 172 insertions(+)
> >  create mode 100644 recipes-kernel/linux/files/bsp/rockchip/nanopi-m4-standard.scc
> >  create mode 100644 recipes-kernel/linux/files/bsp/rockchip/nanopi-m4-tiny.scc
> >  create mode 100644 recipes-kernel/linux/files/bsp/rockchip/nanopi-m4.cfg
> >  create mode 100644 recipes-kernel/linux/files/bsp/rockchip/nanopi-m4.scc
> >  create mode 100644 recipes-kernel/linux/files/bsp/rockchip/rk3399.cfg
> >  create mode 100644 recipes-kernel/linux/files/bsp/rockchip/rk3399.scc
> >  create mode 100644 recipes-kernel/linux/files/bsp/rockchip/rockchip.cfg
> >  create mode 100644 recipes-kernel/linux/files/bsp/rockchip/rockchip.scc
> >
> > diff --git a/recipes-kernel/linux/files/bsp/rockchip/nanopi-m4-standard.scc b/recipes-kernel/linux/files/bsp/rockchip/nanopi-m4-standard.scc
> > new file mode 100644
> > index 0000000..5c74d6b
> > --- /dev/null
> > +++ b/recipes-kernel/linux/files/bsp/rockchip/nanopi-m4-standard.scc
> > @@ -0,0 +1,7 @@
> > +# SPDX-License-Identifier: MIT
> > +define KMACHINE nanopi-m4
> > +define KTYPE standard
> > +define KARCH arm
> > +
> > +include ktypes/standard/standard.scc
> > +include nanopi-m4.scc
> > diff --git a/recipes-kernel/linux/files/bsp/rockchip/nanopi-m4-tiny.scc b/recipes-kernel/linux/files/bsp/rockchip/nanopi-m4-tiny.scc
> > new file mode 100644
> > index 0000000..6e94d6a
> > --- /dev/null
> > +++ b/recipes-kernel/linux/files/bsp/rockchip/nanopi-m4-tiny.scc
> > @@ -0,0 +1,7 @@
> > +# SPDX-License-Identifier: MIT
> > +define KMACHINE nanopi-m4
> > +define KTYPE tiny
> > +define KARCH arm
> > +
> > +include ktypes/tiny/tiny.scc
> > +include nanopi-m4.scc
> > diff --git a/recipes-kernel/linux/files/bsp/rockchip/nanopi-m4.cfg b/recipes-kernel/linux/files/bsp/rockchip/nanopi-m4.cfg
> > new file mode 100644
> > index 0000000..7802ab3
> > --- /dev/null
> > +++ b/recipes-kernel/linux/files/bsp/rockchip/nanopi-m4.cfg
> > @@ -0,0 +1,15 @@
> > +CONFIG_MFD_RK808=y
> > +CONFIG_COMMON_CLK_RK808=y
> > +
> > +CONFIG_REGULATOR_RK808=y
> > +CONFIG_REGULATOR_FAN53555=y
> > +
> > +CONFIG_MMC_BLOCK=y
> > +CONFIG_PWRSEQ_SIMPLE=y
> > +
> > +# RTL8211E
> > +CONFIG_REALTEK_PHY=m
> > +
> > +# AP6356S
> > +CONFIG_BT_BCM=m
> > +CONFIG_BT_HCIUART_BCM=y
>
> It looks to me as though the BRCMFMAC kernel config option needs to be enabled
> to support the AP6256S? I don't see that being enabled, does it end up being
> pulled in by default or as a result of the above two settings?
>
> > diff --git a/recipes-kernel/linux/files/bsp/rockchip/nanopi-m4.scc b/recipes-kernel/linux/files/bsp/rockchip/nanopi-m4.scc
> > new file mode 100644
> > index 0000000..f4267aa
> > --- /dev/null
> > +++ b/recipes-kernel/linux/files/bsp/rockchip/nanopi-m4.scc
> > @@ -0,0 +1,5 @@
> > +# SPDX-License-Identifier: MIT
> > +
> > +kconf hardware nanopi-m4.cfg
> > +
> > +include rk3399.scc
> > diff --git a/recipes-kernel/linux/files/bsp/rockchip/rk3399.cfg b/recipes-kernel/linux/files/bsp/rockchip/rk3399.cfg
> > new file mode 100644
> > index 0000000..f5f2909
> > --- /dev/null
> > +++ b/recipes-kernel/linux/files/bsp/rockchip/rk3399.cfg
> > @@ -0,0 +1,71 @@
> > +# A72 errata, all past revisions
> > +CONFIG_ARM64_ERRATUM_1319367=y
> > +# A53 errata, all patched on boot when needed
> > +CONFIG_ARM64_ERRATUM_826319=y
> > +CONFIG_ARM64_ERRATUM_827319=y
> > +CONFIG_ARM64_ERRATUM_824069=y
> > +CONFIG_ARM64_ERRATUM_819472=y
> > +
> > +# cru
> > +CONFIG_CLK_RK3399=y
> > +
> > +CONFIG_PL330_DMA=y
> > +CONFIG_I2C_RK3X=y
> > +CONFIG_SERIAL_8250_DW=y
> > +
> > +# usb
> > +CONFIG_PHY_ROCKCHIP_INNO_USB2=y
> > +CONFIG_PHY_ROCKCHIP_TYPEC=y
> > +
> > +# ethernet
> > +CONFIG_NET_VENDOR_STMICRO=y
> > +CONFIG_STMMAC_ETH=m
> > +CONFIG_STMMAC_PLATFORM=m
> > +CONFIG_DWMAC_ROCKCHIP=m
> > +CONFIG_PHYLIB=m
> > +
> > +# display
> > +CONFIG_ROCKCHIP_DW_HDMI=y
> > +CONFIG_ROCKCHIP_DW_MIPI_DSI=y
> > +CONFIG_ROCKCHIP_ANALOGIX_DP=y
> > +CONFIG_ROCKCHIP_CDN_DP=y
> > +CONFIG_PHY_ROCKCHIP_DP=y
> > +CONFIG_DRM_DW_HDMI=m
> > +CONFIG_DRM_DW_HDMI_I2S_AUDIO=m
> > +CONFIG_DRM_DW_HDMI_CEC=m
> > +CONFIG_DRM_DW_MIPI_DSI=m
> > +CONFIG_DRM_PANFROST=m
> > +
> > +# HDMI audio
> > +CONFIG_DRM_DW_HDMI_AHB_AUDIO=m
> > +CONFIG_SND_SOC_RK3288_HDMI_ANALOG=m
>
> Oops, is enabling this RK3288 setting an oversight? Or is it needed for HDMI
> on the RK3399?
>
> > +
> > +CONFIG_VIDEO_DEV=m
> > +CONFIG_V4L_MEM2MEM_DRIVERS=y
> > +CONFIG_VIDEO_ROCKCHIP_RGA=m
> > +
> > +CONFIG_V4L2_H264=m
> > +CONFIG_MEDIA_CONTROLLER_REQUEST_API=y
> > +CONFIG_VIDEO_HANTRO=m
> > +CONFIG_VIDEO_HANTRO_ROCKCHIP=y
> > +CONFIG_VIDEO_ROCKCHIP_VDEC=m
> > +
> > +# usb
> > +CONFIG_USB_DWC2=y
> > +CONFIG_USB_DWC3=y
> > +CONFIG_USB_DWC3_DUAL_ROLE=y
> > +
> > +# sd/mmc
> > +CONFIG_MMC=y
> > +CONFIG_MMC_SDHCI=y
> > +CONFIG_MMC_SDHCI_PLTFM=y
> > +CONFIG_MMC_DW=y
> > +CONFIG_MMC_DW_ROCKCHIP=y
> > +CONFIG_MMC_SDHCI_OF_ARASAN=y
> > +
> > +# temperature sensors
> > +CONFIG_THERMAL=y
> > +CONFIG_THERMAL_OF=y
> > +CONFIG_ROCKCHIP_THERMAL=m
> > +CONFIG_IIO=y
> > +CONFIG_ROCKCHIP_SARADC=m
> > diff --git a/recipes-kernel/linux/files/bsp/rockchip/rk3399.scc b/recipes-kernel/linux/files/bsp/rockchip/rk3399.scc
> > new file mode 100644
> > index 0000000..9b1a88e
> > --- /dev/null
> > +++ b/recipes-kernel/linux/files/bsp/rockchip/rk3399.scc
> > @@ -0,0 +1,5 @@
> > +# SPDX-License-Identifier: MIT
> > +
> > +kconf hardware rk3399.cfg
> > +
> > +include rockchip.scc
> > diff --git a/recipes-kernel/linux/files/bsp/rockchip/rockchip.cfg b/recipes-kernel/linux/files/bsp/rockchip/rockchip.cfg
> > new file mode 100644
> > index 0000000..05a397d
> > --- /dev/null
> > +++ b/recipes-kernel/linux/files/bsp/rockchip/rockchip.cfg
> > @@ -0,0 +1,50 @@
> > +CONFIG_CPU_ISOLATION=y
> > +CONFIG_NUMA_BALANCING_DEFAULT_ENABLED=y
> > +CONFIG_HZ_250=y
> > +CONFIG_CPU_IDLE=y
> > +CONFIG_ARM_CPUIDLE=y
> > +
> > +CONFIG_ARCH_ROCKCHIP=y
> > +CONFIG_COMMON_CLK_ROCKCHIP=y
> > +CONFIG_REGULATOR=y
> > +CONFIG_REGULATOR_FIXED_VOLTAGE=y
> > +CONFIG_REGULATOR_PWM=y
> > +CONFIG_I2C=y
> > +CONFIG_FW_LOADER=y
> > +CONFIG_PHY_ROCKCHIP_EMMC=y
> > +CONFIG_PINCTRL=y
> > +CONFIG_PINCTRL_ROCKCHIP=y
> > +CONFIG_ROCKCHIP_IODOMAIN=y
> > +CONFIG_ROCKCHIP_PM_DOMAINS=y
> > +
> > +CONFIG_SPI=y
> > +CONFIG_SPI_ROCKCHIP=m
> > +
> > +CONFIG_PWM=y
> > +CONFIG_PWM_ROCKCHIP=y
> > +
> > +CONFIG_DRM_KMS_HELPER=m
> > +CONFIG_DRM_FBDEV_EMULATION=y
> > +CONFIG_ROCKCHIP_IOMMU=y
> > +CONFIG_DRM_ROCKCHIP=m
> > +CONFIG_DRM_BRIDGE=y
> > +
> > +CONFIG_SND=y
> > +CONFIG_SND_SOC=y
> > +CONFIG_SND_HDA_CODEC_HDMI=m
> > +CONFIG_SND_SOC_ROCKCHIP=m
> > +CONFIG_SND_SOC_ROCKCHIP_I2S=m
> > +CONFIG_SND_SOC_ROCKCHIP_SPDIF=m
> > +
> > +CONFIG_NVMEM=y
> > +CONFIG_ROCKCHIP_EFUSE=m
> > +
> > +CONFIG_CPU_FREQ=y
> > +CONFIG_CPU_FREQ_THERMAL=y
> > +CONFIG_HWMON=y
> > +CONFIG_THERMAL_HWMON=y
> > +
> > +CONFIG_CRYPTO_HW=y
> > +CONFIG_CRYPTO_DEV_ROCKCHIP=m
> > +
> > +CONFIG_MMC_BLOCK_MINORS=32
> > diff --git a/recipes-kernel/linux/files/bsp/rockchip/rockchip.scc b/recipes-kernel/linux/files/bsp/rockchip/rockchip.scc
> > new file mode 100644
> > index 0000000..800f105
> > --- /dev/null
> > +++ b/recipes-kernel/linux/files/bsp/rockchip/rockchip.scc
> > @@ -0,0 +1,6 @@
> > +# SPDX-License-Identifier: MIT
> > +
> > +kconf hardware rockchip.cfg
> > +
> > +include cfg/dmaengine.scc
> > +include features/mmc/mmc-block.cfg
> > diff --git a/recipes-kernel/linux/linux-yocto%.bbappend b/recipes-kernel/linux/linux-yocto%.bbappend
> > index 7702e3f..9658681 100644
> > --- a/recipes-kernel/linux/linux-yocto%.bbappend
> > +++ b/recipes-kernel/linux/linux-yocto%.bbappend
> > @@ -1,3 +1,9 @@
> > +FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
> > +
> > +SRC_URI_append = "\
> > + file://bsp;type=kmeta;subdir=kernel-meta \
> > +"
> > +
> >  COMPATIBLE_MACHINE_marsboard-rk3066 = "marsboard-rk3066"
> >  COMPATIBLE_MACHINE_rock2-square = "rock2-square"
> >  COMPATIBLE_MACHINE_radxarock = "radxarock"
> > --
> > 2.30.2
> >



-- 
Yann Dirson <yann@blade-group.com>
Blade / Shadow -- http://shadow.tech

  reply	other threads:[~2021-05-04 22:13 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-04-26 14:58 [meta-rockchip][PATCH v4 0/3] kmeta BSP for nanopi-m4 Yann Dirson
2021-04-26 14:58 ` [meta-rockchip][PATCH v4 1/3] NanoPi-M4: let all variants use the same KMACHINE type Yann Dirson
2021-05-04 21:00   ` Trevor Woerner
2021-04-26 14:58 ` [meta-rockchip][PATCH v4 2/3] NanoPi-M4: declare "usbhost" and "serial" in MACHINE_FEATURES Yann Dirson
2021-05-04 21:01   ` Trevor Woerner
2021-04-26 14:58 ` [meta-rockchip][PATCH v4 3/3] linux-yocto: add an initial NanoPi-M4 BSP Yann Dirson
2021-05-04 21:03   ` Trevor Woerner
2021-05-04 22:13     ` Yann Dirson [this message]
2021-05-04 22:18     ` Yann Dirson

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='CA+4=ima+e+vMB2+1f4tUaSmWLe9XM5TbVDJXkyju1AXv0g8veg@mail.gmail.com' \
    --to=yann.dirson@blade-group.com \
    --cc=twoerner@gmail.com \
    --cc=yann@blade-group.com \
    --cc=yocto@yoctoproject.org \
    /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.