[PATCH] drm/etnaviv: add the Allwinner T527 VIP9000 hardware database entry
From: Phong LE
Date: Sat Oct 10 2026 - 04:32:10 EST
Add an identity entry for the VIP9000 NPU found in the Allwinner T527,
as used on the Orange Pi 4A. Match model 0x9000, revision 0x9003,
product 0x05090009, customer 0x10000016 and ECO 0x06000000.
Provide the core counts, limits and feature masks for this variant
instead of relying on the register-based fallback. It has six NN cores
and one shader core.
Include SECURITY_AHB in minor_features10. The corresponding
vip9000nano-si+ entry in the Orange Pi BSP feature database advertises
both SECURITY and SECURITY_AHB. This lets the existing capability check
select ETNA_SEC_KERNEL without a model-specific security override.
Validated on an Orange Pi 4A with a 6.18.38-based kernel and patched
Mesa/Teflon. Full quantized MobileNet inference completes with identical
NN intermediate and final outputs to the vendor BSP. Two additional
runs without per-operation instrumentation complete without a hang.
The Mesa fixes are separate from this hardware database addition.
Signed-off-by: Phong LE <ple@xxxxxxxxxxxx>
---
This entry combines the locally tested T527 HWDB addition and the
SECURITY_AHB correction.
Prepared against torvalds/linux 6812ce4e4379ffc99c52401ec28f0d7ffbc36206 (etnaviv_hwdb.c).
Hardware testing used the local 6.18.38-based tree, not this upstream
revision.
Vendor reference: Orange Pi T527 BSP,
bsp/drivers/npu/aw_nna_galcore/hal/inc/gc_feature_database.h,
entry vip9000nano-si+, customer 0x10000016. The SECURITY and SECURITY_AHB
fields are both set to 1.
Test details: 5,043,689 NN output elements and all 1,001 final output
values match the captured BSP reference. This tests one model/input;
it does not validate every reported capability or the graphics paths.
drivers/gpu/drm/etnaviv/etnaviv_hwdb.c | 32 ++++++++++++++++++++++++++
1 file changed, 32 insertions(+)
diff --git a/drivers/gpu/drm/etnaviv/etnaviv_hwdb.c b/drivers/gpu/drm/etnaviv/etnaviv_hwdb.c
index 32d710baf17f..4df463ef6e60 100644
--- a/drivers/gpu/drm/etnaviv/etnaviv_hwdb.c
+++ b/drivers/gpu/drm/etnaviv/etnaviv_hwdb.c
@@ -292,6 +292,38 @@ static const struct etnaviv_chip_identity etnaviv_chip_identities[] = {
.minor_features10 = 0x108048c0,
.minor_features11 = 0x00000010,
},
+ {
+ .model = 0x9000,
+ .revision = 0x9003,
+ .product_id = 0x5090009,
+ .customer_id = 0x10000016,
+ .eco_id = 0x6000000,
+ .stream_count = 8,
+ .register_max = 64,
+ .thread_count = 256,
+ .shader_core_count = 1,
+ .nn_core_count = 6,
+ .vertex_cache_size = 16,
+ .vertex_output_buffer_size = 1024,
+ .pixel_pipes = 1,
+ .instruction_count = 512,
+ .num_constants = 320,
+ .buffer_size = 0,
+ .varyings_count = 16,
+ .features = 0xe0287cac,
+ .minor_features0 = 0xc1799eff,
+ .minor_features1 = 0xfefbfadb,
+ .minor_features2 = 0xeb9d6fbf,
+ .minor_features3 = 0xedfffced,
+ .minor_features4 = 0xd30dafc7,
+ .minor_features5 = 0x7b5ac333,
+ .minor_features6 = 0xf239c400,
+ .minor_features7 = 0xffffe9bf,
+ .minor_features8 = 0x2003dfce,
+ .minor_features9 = 0x01081841,
+ .minor_features10 = 0x01004048,
+ .minor_features11 = 0x00010000,
+ },
};
bool etnaviv_fill_identity_from_hwdb(struct etnaviv_gpu *gpu)
base-commit: af32da41b0327b9c6a37856ba82b6760d6c8d10e
--
2.43.0