2023-06-29 07:59:41

by Lucas Tanure

[permalink] [raw]
Subject: [PATCH v7 0/4] Add Amlogic A311D2 and Khadas Vim4 Board Support

The Khadas VIM4 uses the Amlogic A311D2 SoC, based on the Amlogic T7 family.
This chip is not the same as A311D used in Vim3 board.

Work based on Khadas 5.4 branch:
https://github.com/khadas/linux/tree/khadas-vims-5.4.y

The current status is Vim4 board booting to emergency shell via uart.

Board Features:
- 8GB LPDDR4X 2016MHz
- 32GB eMMC 5.1 storage
- 32MB SPI flash
- 10/100/1000 Base-T Ethernet
- AP6275S Wireless (802.11 a/b/g/n/ac/ax, BT5.1)
- HDMI 2.1 video
- HDMI Input
- 1x USB 2.0 + 1x USB 3.0 ports
- 1x USB-C (power) with USB 2.0 OTG
- 3x LED's (1x red, 1x blue, 1x white)
- 3x buttons (power, function, reset)
- M2 socket with PCIe, USB, ADC & I2C
- 40pin GPIO Header
- 1x micro SD card slot

Changes Since v6:
- Move Uart clock to amlogic-t7-a311d2-khadas-vim4 dts
- Fix GIC_CPU_MASK_SIMPLE
- Lowercase uart label

Changes Since v5:
- Remove meson as T7 its not a meson chip
- Change Uart Document descript to S4 compatibles

Changes Since v4:
- Use S4 instead of G12a for uart fallback
- Add OF_EARLYCON_DECLARE for T7 uart

Changes Since v3:
- Fix issues with "amlogic,meson-t7-uart" documentation

Changes Since v2:
- Add "amlogic,meson-t7-uart" documentation

Changes Since v1:
- Drop the T7 clock driver as it is not needed for serial boot. It will
later use the S4 clock
driver as S4 and T7 seems to be similar chips.
- Use "arm,gic-400" for interrupt controller to fix dtb_check
- Remove CPU node properties not needed for serial boot
- Move UART node to apb4 node
- Drop T7 UART compatible line and use S4 uart
- Use psci V1 instead of 0.2, it works, but I can't verify is correct
as the datasheet I have
doesn't contain that information.
- Remove compatible from meson-t7.dtsi, move it to vim4 board dts
- Add memory node with 8GB. Not sure about this one, works without,
but doesn't detect 8GB
- Use defines for GIC_CPU_MASK_SIMPLE, IRQ_TYPE_LEVEL_LOW,
IRQ_TYPE_LEVEL_HIGH instead of hardcoded values

Lucas Tanure (4):
dt-bindings: arm: amlogic: add Amlogic A311D2 bindings
dt-bindings: serial: amlogic,meson-uart: Add compatible string for T7
tty: serial: meson: Add a earlycon for the T7 SoC
arm64: dts: amlogic-t7-a311d2-khadas-vim4: add initial device-tree

.../devicetree/bindings/arm/amlogic.yaml | 7 +
.../bindings/serial/amlogic,meson-uart.yaml | 4 +
arch/arm64/boot/dts/amlogic/Makefile | 1 +
.../amlogic/amlogic-t7-a311d2-khadas-vim4.dts | 54 ++++++
arch/arm64/boot/dts/amlogic/amlogic-t7.dtsi | 155 ++++++++++++++++++
drivers/tty/serial/meson_uart.c | 2 +
6 files changed, 223 insertions(+)
create mode 100644 arch/arm64/boot/dts/amlogic/amlogic-t7-a311d2-khadas-vim4.dts
create mode 100644 arch/arm64/boot/dts/amlogic/amlogic-t7.dtsi

--
2.41.0



2023-06-29 07:59:55

by Lucas Tanure

[permalink] [raw]
Subject: [PATCH v7 2/4] dt-bindings: serial: amlogic,meson-uart: Add compatible string for T7

Amlogic T7 SoCs uses the same UART controller as S4 SoCs and G12A.
There is no need for an extra compatible line in the driver, but
add T7 compatible line for documentation.

Signed-off-by: Lucas Tanure <[email protected]>
Acked-by: Krzysztof Kozlowski <[email protected]>
---
.../devicetree/bindings/serial/amlogic,meson-uart.yaml | 4 ++++
1 file changed, 4 insertions(+)

diff --git a/Documentation/devicetree/bindings/serial/amlogic,meson-uart.yaml b/Documentation/devicetree/bindings/serial/amlogic,meson-uart.yaml
index 01ec45b3b406..591d1f8de191 100644
--- a/Documentation/devicetree/bindings/serial/amlogic,meson-uart.yaml
+++ b/Documentation/devicetree/bindings/serial/amlogic,meson-uart.yaml
@@ -50,6 +50,10 @@ properties:
items:
- const: amlogic,meson-g12a-uart
- const: amlogic,meson-gx-uart
+ - description: UART controller on S4 compatible SoCs
+ items:
+ - const: amlogic,t7-uart
+ - const: amlogic,meson-s4-uart

reg:
maxItems: 1
--
2.41.0


2023-07-03 10:03:04

by Neil Armstrong

[permalink] [raw]
Subject: Re: (subset) [PATCH v7 0/4] Add Amlogic A311D2 and Khadas Vim4 Board Support

Hi,

On Thu, 29 Jun 2023 08:34:15 +0100, Lucas Tanure wrote:
> The Khadas VIM4 uses the Amlogic A311D2 SoC, based on the Amlogic T7 family.
> This chip is not the same as A311D used in Vim3 board.
>
> Work based on Khadas 5.4 branch:
> https://github.com/khadas/linux/tree/khadas-vims-5.4.y
>
> The current status is Vim4 board booting to emergency shell via uart.
>
> [...]

Thanks, Applied to https://git.kernel.org/pub/scm/linux/kernel/git/amlogic/linux.git (v6.6/arm64-dt)

[1/4] dt-bindings: arm: amlogic: add Amlogic A311D2 bindings
https://git.kernel.org/amlogic/c/19f1263230b6c665d950d63290de6648ed81e0a9
[4/4] arm64: dts: amlogic-t7-a311d2-khadas-vim4: add initial device-tree
https://git.kernel.org/amlogic/c/419b6066cf1ff2a5f29edf565d5ece55fceb4230

These changes has been applied on the intermediate git tree [1].

The v6.6/arm64-dt branch will then be sent via a formal Pull Request to the Linux SoC maintainers
for inclusion in their intermediate git branches in order to be sent to Linus during
the next merge window, or sooner if it's a set of fixes.

In the cases of fixes, those will be merged in the current release candidate
kernel and as soon they appear on the Linux master branch they will be
backported to the previous Stable and Long-Stable kernels [2].

The intermediate git branches are merged daily in the linux-next tree [3],
people are encouraged testing these pre-release kernels and report issues on the
relevant mailing-lists.

If problems are discovered on those changes, please submit a signed-off-by revert
patch followed by a corrective changeset.

[1] https://git.kernel.org/pub/scm/linux/kernel/git/amlogic/linux.git
[2] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
[3] https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git

--
Neil


2023-07-03 10:30:49

by Neil Armstrong

[permalink] [raw]
Subject: Re: [PATCH v7 0/4] Add Amlogic A311D2 and Khadas Vim4 Board Support

Hi Lucas,

On 29/06/2023 09:34, Lucas Tanure wrote:
> The Khadas VIM4 uses the Amlogic A311D2 SoC, based on the Amlogic T7 family.
> This chip is not the same as A311D used in Vim3 board.
>
> Work based on Khadas 5.4 branch:
> https://github.com/khadas/linux/tree/khadas-vims-5.4.y
>
> The current status is Vim4 board booting to emergency shell via uart.
>
> Board Features:
> - 8GB LPDDR4X 2016MHz
> - 32GB eMMC 5.1 storage
> - 32MB SPI flash
> - 10/100/1000 Base-T Ethernet
> - AP6275S Wireless (802.11 a/b/g/n/ac/ax, BT5.1)
> - HDMI 2.1 video
> - HDMI Input
> - 1x USB 2.0 + 1x USB 3.0 ports
> - 1x USB-C (power) with USB 2.0 OTG
> - 3x LED's (1x red, 1x blue, 1x white)
> - 3x buttons (power, function, reset)
> - M2 socket with PCIe, USB, ADC & I2C
> - 40pin GPIO Header
> - 1x micro SD card slot

I've applied patches 1 & 4, now you can send the serie with only uart changes,
it will simplify Greg's life.

Thanks,
Neil

>
> Changes Since v6:
> - Move Uart clock to amlogic-t7-a311d2-khadas-vim4 dts
> - Fix GIC_CPU_MASK_SIMPLE
> - Lowercase uart label
>
> Changes Since v5:
> - Remove meson as T7 its not a meson chip
> - Change Uart Document descript to S4 compatibles
>
> Changes Since v4:
> - Use S4 instead of G12a for uart fallback
> - Add OF_EARLYCON_DECLARE for T7 uart
>
> Changes Since v3:
> - Fix issues with "amlogic,meson-t7-uart" documentation
>
> Changes Since v2:
> - Add "amlogic,meson-t7-uart" documentation
>
> Changes Since v1:
> - Drop the T7 clock driver as it is not needed for serial boot. It will
> later use the S4 clock
> driver as S4 and T7 seems to be similar chips.
> - Use "arm,gic-400" for interrupt controller to fix dtb_check
> - Remove CPU node properties not needed for serial boot
> - Move UART node to apb4 node
> - Drop T7 UART compatible line and use S4 uart
> - Use psci V1 instead of 0.2, it works, but I can't verify is correct
> as the datasheet I have
> doesn't contain that information.
> - Remove compatible from meson-t7.dtsi, move it to vim4 board dts
> - Add memory node with 8GB. Not sure about this one, works without,
> but doesn't detect 8GB
> - Use defines for GIC_CPU_MASK_SIMPLE, IRQ_TYPE_LEVEL_LOW,
> IRQ_TYPE_LEVEL_HIGH instead of hardcoded values
>
> Lucas Tanure (4):
> dt-bindings: arm: amlogic: add Amlogic A311D2 bindings
> dt-bindings: serial: amlogic,meson-uart: Add compatible string for T7
> tty: serial: meson: Add a earlycon for the T7 SoC
> arm64: dts: amlogic-t7-a311d2-khadas-vim4: add initial device-tree
>
> .../devicetree/bindings/arm/amlogic.yaml | 7 +
> .../bindings/serial/amlogic,meson-uart.yaml | 4 +
> arch/arm64/boot/dts/amlogic/Makefile | 1 +
> .../amlogic/amlogic-t7-a311d2-khadas-vim4.dts | 54 ++++++
> arch/arm64/boot/dts/amlogic/amlogic-t7.dtsi | 155 ++++++++++++++++++
> drivers/tty/serial/meson_uart.c | 2 +
> 6 files changed, 223 insertions(+)
> create mode 100644 arch/arm64/boot/dts/amlogic/amlogic-t7-a311d2-khadas-vim4.dts
> create mode 100644 arch/arm64/boot/dts/amlogic/amlogic-t7.dtsi
>
> --
> 2.41.0
>