25 Jan, 2020

4 commits

  • The Libre Computer ALL-H5-CC board is an upgraded version of the
    ALL-H3-CC. Changes include:

    - Gigabit Ethernet via external RTL8211E Ethernet PHY
    - 16 MiB SPI NOR flash memory
    - PoE tap header
    - Line out jack removed

    Only H5 variant test samples were made available, and the vendor is not
    certain whether other SoC variants would be made or not. Furthermore the
    board is a minor upgrade compared to the ALL-H3-CC. Thus the device tree
    simply includes the one for the ALL-H3-CC, and adds the changes on top.

    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
    [jagan: drop CONFIG_SYS_SPI_U_BOOT_OFFS]
    Signed-off-by: Jagan Teki
    Reviewed-by: Jagan Teki

    Chen-Yu Tsai
     
  • 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
    [jagan: drop CONFIG_SYS_SPI_U_BOOT_OFFS]
    Signed-off-by: Jagan Teki
    Reviewed-by: Jagan Teki

    Chen-Yu Tsai
     
  • At present panic() is in the vsprintf.h header file. That does not seem
    like an obvious choice for hang(), even though it relates to panic(). So
    let's put hang() in its own header.

    Signed-off-by: Simon Glass
    [trini: Migrate a few more files]
    Signed-off-by: Tom Rini

    Simon Glass
     
  • These functions relate to memory init so move them into the init
    header.

    Signed-off-by: Simon Glass

    Simon Glass
     

18 Dec, 2019

1 commit

  • Orangepi Zero Plus 2 is an open-source single-board computer, available
    in two Allwinner SOC variants, H3 and H5. We add support for H3 variant
    here, as the H5 is already supported.

    H3 Orangepi Zero Plus 2 has:
    - Quad-core Cortex-A7
    - 512MB DDR3
    - microSD slot and 8GB eMMC
    - Debug TTL UART
    - HDMI
    - Wifi + BT
    - OTG + power supply

    Sync dts from linux v5.2 commit:
    "ARM: dts: sunxi: h3/h5: Remove stale pinctrl-names entry"
    (sha1: 75f9a058838be9880afd75c4cb14e1bf4fe34a0b)
    Commit:
    "ARM: dts: sun8i: h3: Refactor the pinctrl node names"
    (sha1: a4dc791974e568a15f7f37131729b1a6912f4811)
    has been avoided as it breaks U-Boot build.

    Signed-off-by: Diego Rondini
    Reviewed-by: Jagan Teki

    Diego Rondini
     

04 Dec, 2019

1 commit


03 Dec, 2019

1 commit


25 Oct, 2019

1 commit

  • A64 OLinuXino board from Olimex has three variants with onboard eMMC:
    A64-OLinuXino-1Ge16GW, A64-OLinuXino-1Ge4GW and A64-OLinuXino-2Ge8G-IND. In
    addition, there are two variants without eMMC. One without eMMC and one with SPI
    flash. This suggests the need for separate device tree for the three eMMC
    variants.

    The Linux kernel upstream has chosen to create and use a separate device tree
    for the eMMC variants instead of adding eMMC support existing device tree. These
    changes to Linux kernel are queued for Linux 5.4.

    commit ("arm64: dts:
    allwinner: a64: Add A64 OlinuXino board (with eMMC)")

    This patch has been tested on A64-OLinuXino-1Ge16GW and is based on Linux
    device-tree and a64-olinuxino_defconfig.

    Signed-off-by: Sunil Mohan Adapa
    [jagan: updated linux-next commit details]
    Signed-off-by: Jagan Teki
    Reviewed-by: Jagan Teki

    Sunil Mohan Adapa
     

07 Oct, 2019

1 commit


12 Aug, 2019

2 commits

  • This file contains lots of internal details about the environment. Most
    code can include env.h instead, calling the functions there as needed.

    Rename this file and add a comment at the top to indicate its internal
    nature.

    Signed-off-by: Simon Glass
    Acked-by: Joe Hershberger
    Reviewed-by: Simon Goldschmidt
    [trini: Fixup apalis-tk1.c]
    Signed-off-by: Tom Rini

    Simon Glass
     
  • Move env_set_hex() over to the new header file along with env_set_addr()
    which uses it.

    Signed-off-by: Simon Glass
    Acked-by: Joe Hershberger

    Simon Glass
     

15 Jul, 2019

1 commit

  • The Beelink X2 is an STB based on the Allwinner H3 SoC with a uSD slot,
    2 USB ports( 1 * USB-2 Host, 1 USB OTG), a 10/100M ethernet port using the
    SoC's integrated PHY, Wifi via an sdio wifi chip, HDMI, an IR receiver, a
    dual colour LED and an optical S/PDIF connector.

    Linux commit details about the sun8i-h3-beelink-x2.dts sync:
    "ARM: dts: sun8i: h3: Add ethernet0 alias to Beelink X2"
    (sha1: cc4bddade114b696ab27c1a77cfc7040151306da)

    Signed-off-by: Marcus Cooper
    Reviewed-by: Jagan Teki

    Marcus Cooper
     

09 May, 2019

1 commit

  • Olimex A64-Teres-I board is a mainboard (the only one so far)
    for Olimex Teres-I DIY laptop kit.

    Key features:
    - Allwinner A64 Cortex-A53
    - Mali-400MP2 GPU
    - AXP803 PMIC
    - 2GB DDR3 RAM
    - MicroSD Slot
    - 16GB eMMC Flash
    - eDP LCD display
    - HDMI
    - USB Host
    - Battery management
    - 5V DC power supply
    - Certified Open Source Hardware (OSHW)

    Works:
    - i2C
    - MMC/SD
    - PWM backlight

    Known broken:
    - Internal keyboard (seems to be because the keyboard firmware loads a
    bootloader first, and then disconnects bootloader and connect real
    keyboard). External ones connected to the USB port work fine.

    This patch enables support for the A64-Teres-I board to u-boot,
    including enabling screen backlight (lacking from Linux device-tree).

    Linux commit details about the sun50i-a64-teres-i.dts sync:
    "arm64: dts: allwinner: a64: Rename uart0_pins_a label to uart0_pb_pins"
    (sha1: d91ebb95b96c8840932dc3a10c9f243712555467)

    Cosmetic warnings regarding whitespace and placement of SPDX notice for
    dts file was ignored.

    config and .dtsi file are adapted from pinebook files.

    Tested-by: Jonas Smedegaard
    Signed-off-by: Jonas Smedegaard
    Signed-off-by: Icenowy Zheng
    Reviewed-by: Jagan Teki
    [jagan: move board entry in MAINTAINERS file at proper position]
    Signed-off-by: Jagan Teki

    Jonas Smedegaard
     

19 Apr, 2019

1 commit

  • Beelink GS1 is an Allwinner H6 based TV box,
    which support:
    - Allwinner H6 Quad-core 64-bit ARM Cortex-A53
    - GPU Mali-T720
    - 2GB LPDDR3 RAM
    - 16GB eMMC
    - AXP805 PMIC
    - 1Gbps GMAC via RTL8211E
    - USB 2.0 and 3.0 Host
    - HDMI port
    - S/PDIF port
    - 5V/2A DC power supply
    - Wi-Fi/BT via Fn-Link 6222B-SRB (RTL8222BS)

    Linux commit details about the sun50i-h6-beelink-gs1.dts sync:
    "arm64: dts: allwinner: h6: Introduce Beelink GS1 board"
    (sha1: 089bee8dd119ba084dee6b17a2e1a53df4f30193)

    Signed-off-by: Clément Péron
    Reviewed-by: Jagan Teki

    Clément Péron
     

17 Apr, 2019

2 commits

  • It seems like the Allwinner SATA driver is already quite capable of
    using the driver model, so we can force this on all boards and can
    remove support for a non-DM_SCSI build.
    This removes the warning about boards with SATA ports not being
    DM_SCSI compliant.

    It also takes the opportunity to move the driver out of the board/sunxi
    directory to join its siblings in drivers/ata, and to make it a proper
    Kconfig citizen.

    The board defconfigs stay untouched.

    Signed-off-by: Andre Przywara
    Reviewed-by: Simon Glass
    Reviewed-by: Jagan Teki
    [jagan: select DM_SCSI separately]
    Signed-off-by: Jagan Teki

    Andre Przywara
     
  • Add sata compatible for R40.

    Cc: Pablo Sebastián Greco
    Signed-off-by: Jagan Teki

    Jagan Teki
     

16 Apr, 2019

1 commit


14 Apr, 2019

1 commit


12 Apr, 2019

1 commit


10 Apr, 2019

1 commit

  • Oceanic 5205 5inMFD is a 5 inch Multi function display baseboard
    designed to mount SoPine SOM.

    Key features:
    - Allwinner A64 Cortex-A53
    - Mali-400MP2 GPU
    - AXP803 PMIC
    - 2GB DDR3 RAM
    - SD Slot
    - SPI-NOR flash
    - EMAC, RTL8211E
    - MCP2515 CAN
    - 4-lane, MIPI-DSI panel
    - Goodix 911 CTP
    - USB Host
    - 12V DC power supply

    Linux commit details about the sun50i-a64-oceanic-5205-5inmfd.dts sync:
    "arm64: allwinner: a64: Add Oceanic 5205 5inMFD initial support"
    (sha1: 00f7980a3bd53d12abc34f68146a8eed0e894248)

    Signed-off-by: Jagan Teki

    Jagan Teki
     

18 Feb, 2019

2 commits

  • As the H5 is pin compatible with the H3, vendors tend to upgrade their
    existing H3 products with an H5 SoC swap. This is the case with the
    Bananapi M2+ H5.

    Add the following to support it:

    - device tree file: synced from Linux v5.0-rc1,
    - defconfig: copy of bananapi_m2_plus_h3_defconfig with only SoC
    family and default device tree file name changed
    - MAINTAINERS entry

    Signed-off-by: Chen-Yu Tsai
    Reviewed-by: Jagan Teki

    Chen-Yu Tsai
     
  • The brand Sinovoip is used for Sinovoip's original VOIP products, while
    the Bananapi brand is for the single board computers they produce. This
    has been verified by Bananapi. Rename the board from "Sinovoip BPI M2
    Plus" to "Bananapi M2 Plus". For the defconfig file, all lowercase is
    used.

    To support the H5 variant of this board, the "H3" suffix is added to
    the defconfig name.

    Also add myself as one of the board maintainers.

    As the device tree files were already correctly named, they do not
    require any changes.

    Signed-off-by: Chen-Yu Tsai
    [jagan: removed unneeded message from commit body]
    Signed-off-by: Jagan Teki
    Reviewed-by: Jagan Teki

    Chen-Yu Tsai
     

30 Jan, 2019

1 commit

  • Enabling DM_MMC skips the call to mmc_pinmux_setup() in board.c, as this
    is supposed to be handled by the MMC driver, using DT information.

    However we don't have a pinctrl driver yet, but would still like to keep
    the working pinmux setup for our MMC devices. So bring this particular
    call back to the DM_MMC code flow.

    When booting from either SD card or eMMC, the SPL does the setup for us,
    but when booting from SPI or USB we must not skip this part.

    Fixes, boot via FEL or SPI flash, where the SPL won't setup the pinmux

    Signed-off-by: Andre Przywara
    Acked-by: Jagan Teki
    [jagan: add Fix details on commit message]
    Signed-off-by: Jagan Teki

    Andre Przywara
     

19 Jan, 2019

2 commits

  • Emlid Neutis N5 is a SoM based on Allwinner H5, has a WiFi & BT
    module, DDR3 RAM and eMMC.

    - add neutis-devboard target to dtb makefile
    - add dtsi file for Neutis N5 needs
    - add config file for Neutis N5 Dev board

    Signed-off-by: Aleksandr Aleksandrov
    Acked-by: Maxime Ripard
    Reviewed-by: Jagan Teki
    [jagan: update proper commit head]
    Signed-off-by: Jagan Teki

    Aleksandr Aleksandrov
     
  • To use TWI0/1/2 the user can select CONFIG_I2C#_ENABLE.
    However even the controller is enabled, the mux for the pins
    are not set.

    This patch follows the existing mux method. Since the pads are
    different, separate check is added for each i2c.

    Tested with A64-SOM204 board.

    Signed-off-by: Stefan Mavrodiev
    Acked-by: Maxime Ripard
    Reviewed-by: Jagan Teki

    Stefan Mavrodiev
     

30 Dec, 2018

1 commit

  • Commit a8011eb84dfa("sunxi: board: Print error after power initialization
    fails") moved the DRAM init after the increase of the CPU clock
    frequency. This lead to various DRAM initialisation failures on some
    boards (hangs or wrong size reported, on a NanoPi Duo2 and OrangePi
    Zero, for instance). Lowering the CPU frequency significantly (for instance
    to 408 MHz) seems to work around the problem, so this points to some timing
    issues in the DRAM code.

    Debugging this sounds like a larger job, so let's just revert this patch
    to bring back those boards.
    Beside this probably unintended change the patch just moved the error
    message around, so reverting this is not a real loss.

    This reverts commit a8011eb84dfac5187cebf00ed8bc981bdb5c1fa1.

    Tested-By: Priit Laes
    Signed-off-by: Karl Palsson
    Signed-off-by: Andre Przywara
    Reviewed-by: Jagan Teki

    From: Karl Palsson
     

10 Dec, 2018

1 commit


09 Dec, 2018

1 commit

  • This merges the CRC16-CCITT headers into u-boot/crc.h to prepare for
    rolling CRC16 into the hash infrastructure. Given that CRC8, CRC32
    and CRC32-C already have their prototypes in a single header file, it
    seems a good idea to also include CRC16-CCITT in the same.

    Signed-off-by: Philipp Tomsich

    Philipp Tomsich
     

08 Dec, 2018

2 commits

  • Now that the Allwinner port in the official mainline ARM Trusted
    Firmware repository has reached feature parity with the "legacy" ATF
    port, let's use the opportunity to update the Allwinner 64-bit build
    instructions. This changes:
    - Update ATF build instructions to use the mainline repo.
    - Add quick command lines for TL;DR people.
    - Mention Allwinner H6 build target.
    - Mention pre-built FEL binaries.

    Signed-off-by: Andre Przywara
    Acked-by: Maxime Ripard
    Reviewed-by: Jagan Teki

    Andre Przywara
     
  • Currently during init, we enable all power, then enable the dram and
    after that check whether there was an error during power-up.

    This makes little sense, we should enable power and then check if power
    was brought up properly before we continue to initialize other things.

    This patch moves the DRAM init after the power failure check.

    Signed-off-by: Olliver Schinagl
    Signed-off-by: Priit Laes
    Acked-by: Maxime Ripard

    Olliver Schinagl
     

07 Dec, 2018

1 commit


17 Nov, 2018

1 commit


14 Nov, 2018

2 commits

  • OrangePi Lite2 is Allwinner H6 based open-source SBC,
    which support:
    - Allwinner H6 Quad-core 64-bit ARM Cortex-A53
    - GPU Mali-T720
    - 1GB LPDDR3 RAM
    - AXP805 PMIC
    - AP6356S Wifi/BT
    - USB 2.0, USB 3.0 Host, OTG
    - HDMI port
    - 5V/2A DC power supply

    Signed-off-by: Jagan Teki
    Acked-by: Maxime Ripard

    Jagan Teki
     
  • Allwinner A64 has a I2C controller, which is in the R_ MMIO zone and has
    two groups of pinmuxes on PL bank, so it's called R_I2C.

    Add support for this I2C controller and the pinmux which doesn't conflict
    with RSB.

    Signed-off-by: Vasily Khoruzhick
    Acked-by: Maxime Ripard
    Tested-by: Maxime Ripard
    Cc: Vagrant Cascadian
    Acked-by: Jagan Teki

    Vasily Khoruzhick
     

31 Oct, 2018

1 commit

  • Banana Pi M2 Zero is a board by Sinovoip with Allwinner H2+ SoC, 16-bit
    512MiB DDR3 memory, a MicroSD slot, two MicroUSB ports (one OTG and one
    powering-only) and a miniHDMI port.

    Signed-off-by: Icenowy Zheng
    Signed-off-by: Jun Nie
    Acked-by: Maxime Ripard
    [jagan: Fixed board MAINTAINERS file]
    Signed-off-by: Jagan Teki

    Jun Nie
     

29 Oct, 2018

4 commits

  • At the moment we rely on the infamous get_ram_size() function to learn
    the actual DRAM size in U-Boot proper. This function has two issues:
    1) It only works if the DRAM size is a power of two. We start to see
    boards which have 3GB of (usable) DRAM, so this does not fit anymore.
    2) As U-Boot has no notion of reserved memory so far, it will happily
    ride through the DRAM, possibly stepping on secure-only memory. This
    could be a region of DRAM reserved for OP-TEE or some other secure
    payload, for instance. It will most likely crash in that case.

    As the SPL DRAM init routine has very accurate knowledge of the actual
    DRAM size, lets propagate this wisdom to U-Boot proper.
    We re-purpose a currently reserved word in our SPL header for that.
    The SPL itself stores the detected DRAM size there, and bumps the SPL
    header version number in that case. U-Boot proper checks for a valid
    SPL header and a high enough version number, then uses the DRAM size
    from there. If the SPL header field is not sufficient, we fall back to
    the old DRAM scanning routine.

    Part of the DRAM might be present and probed by SPL, but not accessible
    by the CPU. They're restricted in the main U-Boot binary, when accessing
    the DRAM size from SPL header.

    Signed-off-by: Andre Przywara
    Signed-off-by: Icenowy Zheng
    Acked-by: Maxime Ripard
    Reviewed-by: Jagan Teki

    Andre Przywara
     
  • So far we have two users which want to look at the SPL header. We will
    get more in the future.
    Refactor the existing SPL header checks into a common function, to
    simplify reusing the code.
    Now that this is easy, add proper version checks to the DT name parsing.

    Signed-off-by: Andre Przywara
    Signed-off-by: Icenowy Zheng
    Acked-by: Maxime Ripard
    Acked-by: Jagan Teki

    Andre Przywara
     
  • On Allwinner SoCs we use some free bytes at the beginning of the SPL image
    to store various information. We have a version byte to allow updates,
    but changing this always requires all tools to be updated as well.

    Introduce the concept of semantic versioning [1] to the SPL header:
    The major part of the version number only changes on incompatible
    updates, a minor number bump indicates backward compatibility.
    This patch just documents the major/minor split, adds some comments
    to the header file and uses the versioning information for the existing
    users.

    [1] https://semver.org

    Signed-off-by: Andre Przywara
    Signed-off-by: Icenowy Zheng
    Acked-by: Maxime Ripard
    Acked-by: Jagan Teki

    Andre Przywara
     
  • The Pine A64 Plus/non-Plus model detection code is now built on all
    64-bit ARM SoCs, even if the code cannot be triggered when H5/H6 is in
    use.

    Disable them when the board is Pine A64 by adding a Kconfig option that
    is only selected on Pine A64.

    On GCC 7.3.1 this makes the size of the function reduces 184 bytes, and
    saves a 104 byte strstr() function, then makes SPL on H6 succeed to
    build.

    Signed-off-by: Icenowy Zheng
    Reviewed-by: Andre Przywara
    Acked-by: Maxime Ripard
    Reviewed-by: Jagan Teki

    Icenowy Zheng
     

25 Oct, 2018

1 commit