From: Markus Stockhausen Date: Sun, 11 Jan 2026 13:43:07 +0000 (+0100) Subject: realtek: rt-loader: fix chip revision printout X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=168f5609aff27b1db87b7fa79717a3271f02f83a;p=thirdparty%2Fopenwrt.git realtek: rt-loader: fix chip revision printout There is currently a mismatch in the detection of the chip type. rt-loader and the kernel give different revisions. E.g. rt-loader: Running on RTL9313 (chip id 6567A) with 256MB kernel: Realtek RTL9313 rev B (6567) SoC with 256 MB Realtek internal version numbering is - for RTL838x: 1=A, 2=B, ... - for others: 0=A, 1=B, ... rt-loader does not differentiate that. Adapt the calculation to give a consistent picture. Signed-off-by: Markus Stockhausen Link: https://github.com/openwrt/openwrt/pull/21498 Signed-off-by: Robert Marko --- diff --git a/target/linux/realtek/image/rt-loader/src/board.c b/target/linux/realtek/image/rt-loader/src/board.c index 837da74b6ae..881c7cde244 100644 --- a/target/linux/realtek/image/rt-loader/src/board.c +++ b/target/linux/realtek/image/rt-loader/src/board.c @@ -91,10 +91,12 @@ found: val = ioread32(reg + 4); chip_id = val & 0xffff; - if (model_id < 0x9300) - chip_version = val >> 16 & 0x1f; + if (model_id < 0x8390) + chip_version = (val >> 16) & 0x1f; + else if (model_id < 0x9300) + chip_version = ((val >> 16) & 0x1f) + 1; else - chip_version = val >> 28 & 0x0f; + chip_version = ((val >> 28) & 0x0f) + 1; snprintf(buffer, len, "RTL%04X%c (chip id %04x%c)", model_id, model_version ? model_version + 64 : 0,