* [PATCH 1/4] arm: Add Google Tensor SoC architecture support
2026-10-16 4:02 [PATCH 0/4] arm: google: Add initial support for Google Tensor G5 Kuan-Wei Chiu
@ 2026-10-16 4:02 ` Kuan-Wei Chiu
2026-10-16 4:02 ` [PATCH 2/4] board: google: Add Google Tensor G5 board support Kuan-Wei Chiu
` (2 subsequent siblings)
3 siblings, 0 replies; 7+ messages in thread
From: Kuan-Wei Chiu @ 2026-10-16 4:02 UTC (permalink / raw)
To: trini, ilias.apalodimas
Cc: marscheng, eleanor15x, jserv, u-boot, Kuan-Wei Chiu
The first four Google Tensor SoCs were offshoots of Samsung Exynos
SoCs. Starting with the Google Tensor G5 SoC in Pixel 10 phones,
Google Tensor SoCs are of Google's own design. Add ARCH_GOOGLE and
the mach-google directory to support this SoC family.
Signed-off-by: Kuan-Wei Chiu <visitorckw@gmail.com>
---
MAINTAINERS | 6 ++++++
arch/arm/Kconfig | 21 +++++++++++++++++++++
arch/arm/mach-google/Kconfig | 7 +++++++
3 files changed, 34 insertions(+)
create mode 100644 arch/arm/mach-google/Kconfig
diff --git a/MAINTAINERS b/MAINTAINERS
index 28d090d3c36..36b4c7f0246 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -356,6 +356,12 @@ F: arch/arm/cpu/arm1136/mx*/
F: arch/arm/cpu/arm926ejs/mx*/
F: arch/arm/include/asm/arch-mx*/
+ARM GOOGLE TENSOR SOC SUPPORT
+M: Kuan-Wei Chiu <visitorckw@gmail.com>
+S: Maintained
+F: arch/arm/mach-google/
+K: [gG]oogle.?[tT]ensor
+
ARM HISILICON
M: Peter Griffin <peter.griffin@linaro.org>
M: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 3e9f3b51031..e49438fde41 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -2252,6 +2252,25 @@ config ARCH_GXP
select OF_CONTROL
imply CMD_DM
+config ARCH_GOOGLE
+ bool "Google-Designed SoC family"
+ select ARM64
+ select DM
+ select DM_SERIAL
+ select OF_CONTROL
+ select OF_UPSTREAM
+ select POSITION_INDEPENDENT
+ select SYSRESET
+ select SYSRESET_PSCI
+ select SYS_NS16550
+ select SYS_NS16550_MEM32
+ imply CMD_DM
+ help
+ This enables support for Google Tensor SoCs starting at the
+ Google Tensor G5 (Laguna) found in Pixel 10 and later phones.
+ Tensor G1 to G4 are offshoots of the Exynos family and are
+ enabled via ARCH_EXYNOS.
+
endchoice
config SUPPORT_PASSING_ATAGS
@@ -2356,6 +2375,8 @@ source "arch/arm/mach-davinci/Kconfig"
source "arch/arm/mach-exynos/Kconfig"
+source "arch/arm/mach-google/Kconfig"
+
source "arch/arm/mach-hpe/gxp/Kconfig"
source "arch/arm/mach-highbank/Kconfig"
diff --git a/arch/arm/mach-google/Kconfig b/arch/arm/mach-google/Kconfig
new file mode 100644
index 00000000000..a9e605ebb82
--- /dev/null
+++ b/arch/arm/mach-google/Kconfig
@@ -0,0 +1,7 @@
+
+if ARCH_GOOGLE
+
+config SYS_VENDOR
+ default "google"
+
+endif
--
2.56.0.212.g129ede20d9-goog
^ permalink raw reply related [flat|nested] 7+ messages in thread* [PATCH 2/4] board: google: Add Google Tensor G5 board support
2026-10-16 4:02 [PATCH 0/4] arm: google: Add initial support for Google Tensor G5 Kuan-Wei Chiu
2026-10-16 4:02 ` [PATCH 1/4] arm: Add Google Tensor SoC architecture support Kuan-Wei Chiu
@ 2026-10-16 4:02 ` Kuan-Wei Chiu
2026-10-16 19:21 ` Tom Rini
2026-10-16 4:02 ` [PATCH 3/4] arm: dts: lga: Enable console UART in U-Boot Kuan-Wei Chiu
2026-10-16 4:02 ` [PATCH 4/4] configs: google: Add lga default configuration Kuan-Wei Chiu
3 siblings, 1 reply; 7+ messages in thread
From: Kuan-Wei Chiu @ 2026-10-16 4:02 UTC (permalink / raw)
To: trini, ilias.apalodimas
Cc: marscheng, eleanor15x, jserv, u-boot, Kuan-Wei Chiu
Add initial board support for Google Tensor G5 SoC boards. U-Boot
runs as BL33 loaded at 0xbe000000. Configure the MMU map, DRAM
bounds, and disable the APC watchdog left running by earlier
bootloader stages.
Signed-off-by: Kuan-Wei Chiu <visitorckw@gmail.com>
---
MAINTAINERS | 2 ++
arch/arm/mach-google/Kconfig | 11 ++++++
board/google/lga/Kconfig | 14 ++++++++
board/google/lga/MAINTAINERS | 5 +++
board/google/lga/Makefile | 3 ++
board/google/lga/lga.c | 65 ++++++++++++++++++++++++++++++++++++
include/configs/lga.h | 9 +++++
7 files changed, 109 insertions(+)
create mode 100644 board/google/lga/Kconfig
create mode 100644 board/google/lga/MAINTAINERS
create mode 100644 board/google/lga/Makefile
create mode 100644 board/google/lga/lga.c
create mode 100644 include/configs/lga.h
diff --git a/MAINTAINERS b/MAINTAINERS
index 36b4c7f0246..2d8ffe7887a 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -360,6 +360,8 @@ ARM GOOGLE TENSOR SOC SUPPORT
M: Kuan-Wei Chiu <visitorckw@gmail.com>
S: Maintained
F: arch/arm/mach-google/
+F: board/google/lga/
+F: include/configs/lga.h
K: [gG]oogle.?[tT]ensor
ARM HISILICON
diff --git a/arch/arm/mach-google/Kconfig b/arch/arm/mach-google/Kconfig
index a9e605ebb82..f6a5c9c43f2 100644
--- a/arch/arm/mach-google/Kconfig
+++ b/arch/arm/mach-google/Kconfig
@@ -1,7 +1,18 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
if ARCH_GOOGLE
config SYS_VENDOR
default "google"
+config TARGET_GOOGLE_LGA
+ bool "Google Tensor G5 (LGA)"
+ default y
+ help
+ Support for Google Tensor G5 (Laguna) SoC and boards based on it,
+ including Frankel (Pixel 10), Blazer (Pixel 10 Pro), and Mustang
+ (Pixel 10 Pro XL).
+
+source "board/google/lga/Kconfig"
+
endif
diff --git a/board/google/lga/Kconfig b/board/google/lga/Kconfig
new file mode 100644
index 00000000000..22bb233f140
--- /dev/null
+++ b/board/google/lga/Kconfig
@@ -0,0 +1,14 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+if TARGET_GOOGLE_LGA
+
+config SYS_BOARD
+ default "lga"
+
+config SYS_SOC
+ default "lga"
+
+config SYS_CONFIG_NAME
+ default "lga"
+
+endif
diff --git a/board/google/lga/MAINTAINERS b/board/google/lga/MAINTAINERS
new file mode 100644
index 00000000000..1dd03afab42
--- /dev/null
+++ b/board/google/lga/MAINTAINERS
@@ -0,0 +1,5 @@
+GOOGLE TENSOR G5 (LGA) BOARD
+M: Kuan-Wei Chiu <visitorckw@gmail.com>
+S: Maintained
+F: board/google/lga/
+F: include/configs/lga.h
diff --git a/board/google/lga/Makefile b/board/google/lga/Makefile
new file mode 100644
index 00000000000..4343e05c78f
--- /dev/null
+++ b/board/google/lga/Makefile
@@ -0,0 +1,3 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+obj-y += lga.o
diff --git a/board/google/lga/lga.c b/board/google/lga/lga.c
new file mode 100644
index 00000000000..e495d34ce0b
--- /dev/null
+++ b/board/google/lga/lga.c
@@ -0,0 +1,65 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * Copyright 2026 Google LLC
+ */
+
+#include <init.h>
+#include <asm/armv8/mmu.h>
+#include <asm/global_data.h>
+#include <asm/io.h>
+#include <linux/bitops.h>
+
+DECLARE_GLOBAL_DATA_PTR;
+
+#define LGA_WDT1_BASE 0x200c5000
+#define LGA_WDT_CONTROL 0x08
+#define LGA_WDT_CONTROL_ENABLE BIT(0)
+#define LGA_WDT_KEY 0x10
+#define LGA_WDT_KEY_UNLOCK 0x00c0ffee
+
+#define LGA_SDRAM_BASE 0x80000000UL
+#define LGA_SDRAM_SIZE 0x80000000UL
+#define LGA_BL33_RAM_TOP 0xc0000000UL
+
+static struct mm_region lga_mem_map[] = {
+ {
+ .virt = 0x00000000UL,
+ .phys = 0x00000000UL,
+ .size = 0x80000000UL,
+ .attrs = PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) |
+ PTE_BLOCK_NON_SHARE |
+ PTE_BLOCK_PXN | PTE_BLOCK_UXN,
+ }, {
+ .virt = LGA_SDRAM_BASE,
+ .phys = LGA_SDRAM_BASE,
+ .size = LGA_SDRAM_SIZE,
+ .attrs = PTE_BLOCK_MEMTYPE(MT_NORMAL) |
+ PTE_BLOCK_INNER_SHARE,
+ }, {
+ 0,
+ }
+};
+
+struct mm_region *mem_map = lga_mem_map;
+
+int dram_init(void)
+{
+ gd->ram_base = LGA_SDRAM_BASE;
+ gd->ram_size = LGA_SDRAM_SIZE;
+
+ return 0;
+}
+
+phys_addr_t board_get_usable_ram_top(phys_size_t total_size)
+{
+ return LGA_BL33_RAM_TOP;
+}
+
+int board_init(void)
+{
+ writel(LGA_WDT_KEY_UNLOCK, LGA_WDT1_BASE + LGA_WDT_KEY);
+ clrbits_le32(LGA_WDT1_BASE + LGA_WDT_CONTROL, LGA_WDT_CONTROL_ENABLE);
+ writel(0, LGA_WDT1_BASE + LGA_WDT_KEY);
+
+ return 0;
+}
diff --git a/include/configs/lga.h b/include/configs/lga.h
new file mode 100644
index 00000000000..c770c5837f4
--- /dev/null
+++ b/include/configs/lga.h
@@ -0,0 +1,9 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+/*
+ * Copyright 2026 Google LLC
+ */
+
+#ifndef __CONFIG_LGA_H
+#define __CONFIG_LGA_H
+
+#endif /* __CONFIG_LGA_H */
--
2.56.0.212.g129ede20d9-goog
^ permalink raw reply related [flat|nested] 7+ messages in thread* Re: [PATCH 2/4] board: google: Add Google Tensor G5 board support
2026-10-16 4:02 ` [PATCH 2/4] board: google: Add Google Tensor G5 board support Kuan-Wei Chiu
@ 2026-10-16 19:21 ` Tom Rini
2026-10-17 6:56 ` Kuan-Wei Chiu
0 siblings, 1 reply; 7+ messages in thread
From: Tom Rini @ 2026-10-16 19:21 UTC (permalink / raw)
To: Kuan-Wei Chiu; +Cc: ilias.apalodimas, marscheng, eleanor15x, jserv, u-boot
[-- Attachment #1: Type: text/plain, Size: 884 bytes --]
On Fri, Oct 16, 2026 at 04:02:14AM +0000, Kuan-Wei Chiu wrote:
> Add initial board support for Google Tensor G5 SoC boards. U-Boot
> runs as BL33 loaded at 0xbe000000. Configure the MMU map, DRAM
> bounds, and disable the APC watchdog left running by earlier
> bootloader stages.
>
> Signed-off-by: Kuan-Wei Chiu <visitorckw@gmail.com>
[snip]
> diff --git a/include/configs/lga.h b/include/configs/lga.h
> new file mode 100644
> index 00000000000..c770c5837f4
> --- /dev/null
> +++ b/include/configs/lga.h
> @@ -0,0 +1,9 @@
> +/* SPDX-License-Identifier: GPL-2.0-or-later */
> +/*
> + * Copyright 2026 Google LLC
> + */
> +
> +#ifndef __CONFIG_LGA_H
> +#define __CONFIG_LGA_H
> +
> +#endif /* __CONFIG_LGA_H */
Does this get populated later? I *thought* we had done the required
changes so that a board can avoid having an empty config.h file.
--
Tom
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 2/4] board: google: Add Google Tensor G5 board support
2026-10-16 19:21 ` Tom Rini
@ 2026-10-17 6:56 ` Kuan-Wei Chiu
0 siblings, 0 replies; 7+ messages in thread
From: Kuan-Wei Chiu @ 2026-10-17 6:56 UTC (permalink / raw)
To: Tom Rini; +Cc: ilias.apalodimas, marscheng, eleanor15x, jserv, u-boot
On Fri, Oct 16, 2026 at 01:21:28PM -0600, Tom Rini wrote:
> On Fri, Oct 16, 2026 at 04:02:14AM +0000, Kuan-Wei Chiu wrote:
> > Add initial board support for Google Tensor G5 SoC boards. U-Boot
> > runs as BL33 loaded at 0xbe000000. Configure the MMU map, DRAM
> > bounds, and disable the APC watchdog left running by earlier
> > bootloader stages.
> >
> > Signed-off-by: Kuan-Wei Chiu <visitorckw@gmail.com>
> [snip]
> > diff --git a/include/configs/lga.h b/include/configs/lga.h
> > new file mode 100644
> > index 00000000000..c770c5837f4
> > --- /dev/null
> > +++ b/include/configs/lga.h
> > @@ -0,0 +1,9 @@
> > +/* SPDX-License-Identifier: GPL-2.0-or-later */
> > +/*
> > + * Copyright 2026 Google LLC
> > + */
> > +
> > +#ifndef __CONFIG_LGA_H
> > +#define __CONFIG_LGA_H
> > +
> > +#endif /* __CONFIG_LGA_H */
>
> Does this get populated later? I *thought* we had done the required
> changes so that a board can avoid having an empty config.h file.
Ah, yes.
I'll drop SYS_CONFIG_NAME and remove lga.h in v2.
Thanks.
Regards,
Kuan-Wei
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH 3/4] arm: dts: lga: Enable console UART in U-Boot
2026-10-16 4:02 [PATCH 0/4] arm: google: Add initial support for Google Tensor G5 Kuan-Wei Chiu
2026-10-16 4:02 ` [PATCH 1/4] arm: Add Google Tensor SoC architecture support Kuan-Wei Chiu
2026-10-16 4:02 ` [PATCH 2/4] board: google: Add Google Tensor G5 board support Kuan-Wei Chiu
@ 2026-10-16 4:02 ` Kuan-Wei Chiu
2026-10-16 4:02 ` [PATCH 4/4] configs: google: Add lga default configuration Kuan-Wei Chiu
3 siblings, 0 replies; 7+ messages in thread
From: Kuan-Wei Chiu @ 2026-10-16 4:02 UTC (permalink / raw)
To: trini, ilias.apalodimas
Cc: marscheng, eleanor15x, jserv, u-boot, Kuan-Wei Chiu
The upstream lga.dtsi leaves lsion_cli16_uart disabled by default.
Add lga-u-boot.dtsi to enable the serial console for U-Boot.
Signed-off-by: Kuan-Wei Chiu <visitorckw@gmail.com>
---
MAINTAINERS | 1 +
arch/arm/dts/lga-u-boot.dtsi | 9 +++++++++
2 files changed, 10 insertions(+)
create mode 100644 arch/arm/dts/lga-u-boot.dtsi
diff --git a/MAINTAINERS b/MAINTAINERS
index 2d8ffe7887a..7546eeb3f9e 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -359,6 +359,7 @@ F: arch/arm/include/asm/arch-mx*/
ARM GOOGLE TENSOR SOC SUPPORT
M: Kuan-Wei Chiu <visitorckw@gmail.com>
S: Maintained
+F: arch/arm/dts/lga-u-boot.dtsi
F: arch/arm/mach-google/
F: board/google/lga/
F: include/configs/lga.h
diff --git a/arch/arm/dts/lga-u-boot.dtsi b/arch/arm/dts/lga-u-boot.dtsi
new file mode 100644
index 00000000000..d9f36fc2c54
--- /dev/null
+++ b/arch/arm/dts/lga-u-boot.dtsi
@@ -0,0 +1,9 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR BSD-3-Clause
+/*
+ * Copyright 2026 Google LLC
+ */
+
+&lsion_cli16_uart {
+ bootph-all;
+ status = "okay";
+};
--
2.56.0.212.g129ede20d9-goog
^ permalink raw reply related [flat|nested] 7+ messages in thread* [PATCH 4/4] configs: google: Add lga default configuration
2026-10-16 4:02 [PATCH 0/4] arm: google: Add initial support for Google Tensor G5 Kuan-Wei Chiu
` (2 preceding siblings ...)
2026-10-16 4:02 ` [PATCH 3/4] arm: dts: lga: Enable console UART in U-Boot Kuan-Wei Chiu
@ 2026-10-16 4:02 ` Kuan-Wei Chiu
3 siblings, 0 replies; 7+ messages in thread
From: Kuan-Wei Chiu @ 2026-10-16 4:02 UTC (permalink / raw)
To: trini, ilias.apalodimas
Cc: marscheng, eleanor15x, jserv, u-boot, Kuan-Wei Chiu
Add google_lga_defconfig for Google Tensor G5 boards, using
google/lga-frankel as the default device tree.
Signed-off-by: Kuan-Wei Chiu <visitorckw@gmail.com>
---
MAINTAINERS | 1 +
board/google/lga/MAINTAINERS | 1 +
configs/google_lga_defconfig | 10 ++++++++++
3 files changed, 12 insertions(+)
create mode 100644 configs/google_lga_defconfig
diff --git a/MAINTAINERS b/MAINTAINERS
index 7546eeb3f9e..cccc40c89c6 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -362,6 +362,7 @@ S: Maintained
F: arch/arm/dts/lga-u-boot.dtsi
F: arch/arm/mach-google/
F: board/google/lga/
+F: configs/google_lga_defconfig
F: include/configs/lga.h
K: [gG]oogle.?[tT]ensor
diff --git a/board/google/lga/MAINTAINERS b/board/google/lga/MAINTAINERS
index 1dd03afab42..801b1fe6109 100644
--- a/board/google/lga/MAINTAINERS
+++ b/board/google/lga/MAINTAINERS
@@ -3,3 +3,4 @@ M: Kuan-Wei Chiu <visitorckw@gmail.com>
S: Maintained
F: board/google/lga/
F: include/configs/lga.h
+F: configs/google_lga_defconfig
diff --git a/configs/google_lga_defconfig b/configs/google_lga_defconfig
new file mode 100644
index 00000000000..f30c89fa279
--- /dev/null
+++ b/configs/google_lga_defconfig
@@ -0,0 +1,10 @@
+CONFIG_ARM=y
+CONFIG_ARCH_GOOGLE=y
+CONFIG_TEXT_BASE=0xbe000000
+CONFIG_NR_DRAM_BANKS=1
+CONFIG_DEFAULT_DEVICE_TREE="google/lga-frankel"
+CONFIG_SYS_LOAD_ADDR=0xbe000000
+# CONFIG_EFI_LOADER is not set
+CONFIG_BOOTDELAY=-1
+# CONFIG_DISPLAY_CPUINFO is not set
+CONFIG_NO_NET=y
--
2.56.0.212.g129ede20d9-goog
^ permalink raw reply related [flat|nested] 7+ messages in thread