]> git.ipfire.org Git - thirdparty/openwrt.git/commitdiff
realtek: rt-loader: fix chip revision printout 21498/head
authorMarkus Stockhausen <markus.stockhausen@gmx.de>
Sun, 11 Jan 2026 13:43:07 +0000 (14:43 +0100)
committerRobert Marko <robimarko@gmail.com>
Thu, 15 Jan 2026 14:27:49 +0000 (15:27 +0100)
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 <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/21498
Signed-off-by: Robert Marko <robimarko@gmail.com>
target/linux/realtek/image/rt-loader/src/board.c

index 837da74b6aef29d87e3f54f8312ec4f2c3b03e20..881c7cde244ebff4e054e58f71d5fd9292530857 100644 (file)
@@ -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,