[PATCH 2/3] sunxi: Add Libre Computer ALL-H3-IT H5 board

Chen-Yu Tsai wens at kernel.org
Fri Jan 24 09:32:13 CET 2020


On Fri, Jan 24, 2020 at 2:24 PM Jagan Teki <jagan at amarulasolutions.com> wrote:
>
> On Tue, Jan 21, 2020 at 1:11 PM Chen-Yu Tsai <wens at kernel.org> wrote:
> >
> > On Tue, Jan 21, 2020 at 3:29 PM Jagan Teki <jagan at amarulasolutions.com> wrote:
> > >
> > > On Sun, Jan 12, 2020 at 9:06 PM Chen-Yu Tsai <wens at kernel.org> wrote:
> > > >
> > > > From: Chen-Yu Tsai <wens at csie.org>
> > > >
> > > > The Libre Computer ALL-H3-IT board is a small single board computer that
> > > > is roughly the same size as the Raspberry Pi Zero, or around 20% smaller
> > > > than a credit card.
> > > >
> > > > The board features:
> > > >
> > > >   - H2, H3, or H5 SoC from Allwinner
> > > >   - 2 DDR3 DRAM chips
> > > >   - Realtek RTL8821CU based WiFi module
> > > >   - 128 Mbit SPI-NOR flash
> > > >   - micro-SD card slot
> > > >   - micro HDMI video output
> > > >   - FPC connector for camera sensor module
> > > >   - generic Raspberri-Pi style 40 pin GPIO header
> > > >   - additional pin headers for extra USB host ports, ananlog audio and
> > > >     IR receiver
> > > >
> > > > Only H5 variant test samples were made available, but the vendor does
> > > > have plans to include at least an H3 variant. Thus the device tree is
> > > > split much like the ALL-H3-CC, with a common dtsi file for the board
> > > > design, and separate dts files including the common board file and the
> > > > SoC dtsi file. The other variants will be added as they are made
> > > > available.
> > > >
> > > > The device tree was synced over from the Linux kernel, along with other
> > > > H3/H5 changes, in a previous patch. Thus only the defconfig and an entry
> > > > to the MAINTAINERS file is added.
> > > >
> > > > Signed-off-by: Chen-Yu Tsai <wens at csie.org>
> > > > ---
> > > >  board/sunxi/MAINTAINERS                  |  5 +++++
> > > >  configs/libretech_all_h3_it_h5_defconfig | 22 ++++++++++++++++++++++
> > > >  2 files changed, 27 insertions(+)
> > > >  create mode 100644 configs/libretech_all_h3_it_h5_defconfig
> > > >
> > > > diff --git a/board/sunxi/MAINTAINERS b/board/sunxi/MAINTAINERS
> > > > index 4a89bb0e7b7e..ed620ade766c 100644
> > > > --- a/board/sunxi/MAINTAINERS
> > > > +++ b/board/sunxi/MAINTAINERS
> > > > @@ -318,6 +318,11 @@ F: configs/libretech_all_h3_cc_h2_plus_defconfig
> > > >  F:     configs/libretech_all_h3_cc_h3_defconfig
> > > >  F:     configs/libretech_all_h3_cc_h5_defconfig
> > > >
> > > > +LIBRETECH ALL-H3-IT BOARDS
> > > > +M:     Chen-Yu Tsai <wens at csie.org>
> > > > +S:     Maintained
> > > > +F:     configs/libretech_all_h3_it_h5_defconfig
> > > > +
> > > >  NANOPI-M1 BOARD
> > > >  M:     Mylène Josserand <mylene.josserand at free-electrons.com>
> > > >  S:     Maintained
> > > > diff --git a/configs/libretech_all_h3_it_h5_defconfig b/configs/libretech_all_h3_it_h5_defconfig
> > > > new file mode 100644
> > > > index 000000000000..df13f4a0d307
> > > > --- /dev/null
> > > > +++ b/configs/libretech_all_h3_it_h5_defconfig
> > > > @@ -0,0 +1,22 @@
> > > > +CONFIG_ARM=y
> > > > +CONFIG_ARCH_SUNXI=y
> > > > +CONFIG_NR_DRAM_BANKS=1
> > > > +CONFIG_SPL=y
> > > > +CONFIG_MACH_SUN50I_H5=y
> > > > +CONFIG_DRAM_CLK=672
> > > > +CONFIG_MMC_SUNXI_SLOT_EXTRA=2
> > > > +CONFIG_SPL_SPI_SUNXI=y
> > > > +# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
> > > > +CONFIG_USE_PREBOOT=y
> > > > +CONFIG_SYS_SPI_U_BOOT_OFFS=0x8000
> > > > +# CONFIG_SPL_DOS_PARTITION is not set
> > > > +# CONFIG_SPL_EFI_PARTITION is not set
> > > > +CONFIG_DEFAULT_DEVICE_TREE="sun50i-h5-libretech-all-h3-it"
> > > > +CONFIG_SYS_RELOC_GD_ENV_ADDR=y
> > > > +CONFIG_DM_SPI_FLASH=y
> > > > +CONFIG_SPI_FLASH_XMC=y
> > > > +CONFIG_SPI=y
> > > > +CONFIG_DM_SPI=y
> > >
> > > We just enable SPI_FLASH_XMC and rest we can add it via arch Kconfig?
> > > like A64 does.
> >
> > Are you referring to the rest of the SPI stuff?
>
> Yes.
>
> >
> > Only the more recent boards have SPI flash on board, so if we enable
> > it by default, we might end up with a whole bunch of boards disabling
> > it because they don't actually have SPI flash, and maybe don't want
> > the overhead.
>
> How about select the generic configs like DM_SPI, SPI based on the on
> board flash type. like add CONFIG_SPI_FLASH_XMC on defconfig and that
> would enable the required options. and boards that won't enable
> SPI_FLASH_XMC or any flash type can simply untouch SPI configs items.
> May be have SPI_FLASH_XMC

That's still including all the SPI stuff for boards that don't need
it though. And the # of boards that don't need SPI far outnumber the
ones that do. 18 dts files have references to SPI, and only 7 of them
have some peripheral sub-node defined. We have roughly 160 boards in
total.

I think it makes more sense to not enable SPI by default.

On the other hand, we could probably have a few options default to y
if SPI is enabled, such as DM_SPI, DM_SPI_FLASH, and SPL_SPI_SUNXI.

But could we get these two patches merged first, and do the cleanup
as a follow-up series during -rc?

Thanks
ChenYu

> > The rest of the generic stuff could be moved to Kconfig. DRAM_CLK
> > is probably not doable as the values vary a lot. NR_DRAM_BANKS yes.
> > SYS_SPI_U_BOOT_OFFS was already done I believe. Not sure about
> > some of the rest of the SPL settings.
>
> Except SYS_SPI_U_BOOT_OFFS, rest are okay. Use [1] it has a change
> that moved SYS_SPI_U_BOOT_OFFS to Kconfig.
>
> [1] https://gitlab.denx.de/u-boot/custodians/u-boot-spi/commits/master


More information about the U-Boot mailing list