Question about OpenWrt U-Boot layout (Cudy TR3000 128MB vs 256 MB)

Hi there,

I am using a Cudy TR3000 router and I want to use OpenWRT on it. There are two versions out there - a 128 MB and a 256 MB version. I have the 256 MB version.

The Wiki page contains instructions for expanding the available flash memory because by default there is only 45MB space available:

I am wondering if the procedure is the same for both 128 MB and 256 MB versions. Basically it comes down to the question if the BL2 (ubootmod-preloader) and FIP (ubootmod-bl31-uboot) is the same for both devices.

Any feedback would be appreciated here as I don't want to brick the device.

AFAIK there's no ubootmod for the 256MB version.

I did some further digging and found this:

There is a comment from a Cudy engineer on the ubootmod changeset for the 128 MB device. It contains a patch to support the 256 MB device (this patch adds support for the new flash chip).

To me it looks like it should be this patch (I would use latest 25.12-rc on the device):

So what I am wondering: Isn't this enough for Das U-Boot to support both flash chips/devices? Or do we need different uboot builds for both devices? The rest of the board is identical, yet they still use two different DTS files.

Regarding DTS/DTSI files, this is what I found out so far:

  • mt7981b-cudy-tr3000-v1.dtsi → Contains the common stuff
  • mt7981b-cudy-tr3000-v1.dts → inherits from mt7981b-cudy-tr3000-v1.dtsi and defines &spi_nand and &ubi
  • mt7981b-cudy-tr3000-v1-ubootmod.dts → Inherits from mt7981b-cudy-tr3000-v1.dtsi and just defines &ubi. No &spi_nand section (this is good, isn't it?)
  • mt7981b-cudy-tr3000-256mb-v1.dts → inherits from mt7981b-cudy-tr3000-v1.dtsi and defines &spi_nand nd &ubi

Now the only relevant difference in the ubootmod DTS (compared to the others) seems to be the &ubi reg section:

  • mt7981b-cudy-tr3000-v1.dts: reg = <0x5c0000 0x4000000>;
  • mt7981b-cudy-tr3000-256mb-v1.dts: reg = <0x5c0000 0xe600000>;
  • mt7981b-cudy-tr3000-v1-ubootmod.dts: reg = <0x5c0000 0x7a40000>;

To me it looks like that reg setting just defines partition boundaries. If that's true, my assumption would be that the 256MB device could work with ubootmod, but only up to the 128MB flash chip boundary.

Or am I wrong here? What's interesting is that the reg definition in the DTS for the 256MB version already goes up to 0xe600000 (which should equal ~230MB). Does that mean that ubootmod is not required for this version? I think I just need to get my hands on OpenWRT 25.12 now and see how it looks like with the stock/vendor bootloader.

If the ubootmod really does not work on the 256MB version we should put a big fat warning on the wiki. I think I could do that but it would be nice to get some feedback from a developer in advance because I don't want to spread false information :slight_smile:

There are no v256MB ubootmod files, as there are for the 128.

How much free space do you get on your TR3000?
Since i couldn't get one, i'm awaiting the arrival of a used 128MB version i bought these days.

Yes, I got that. So if there is no specific build for the 256 MB version I would assume that ubootmod does not depend on the flash size and can be used for both devices. At least that's what the instructions on the device wiki suggest.

And when looking at the target device/cudy_tr3000-v1-ubootmod it seems the only difference is the DTS with the reg definition and the question is if this even matters. I just thought it would be wise to get feedback from somebody with better inside knowledge before testing this.

How much free space do you get on your TR3000?

I think I'll just flash 25.12-rc these days (without ubootmod). Then I can report back.

Assuming things is a great way to soft brick your device (but I didn't read all of your text about the DTS, TL;DR), you might be 100% correct.

And that's precisely the reason why I came here to ask, because I definitely don't want to brick my device. I did read the wiki instructions thoroughly and I have also checked the source / build config and could not find a definite answer. So I was hoping for some actual technical explanation or feedback from others with a 256MB device regarding this question.

Now here comes the interesting part: I just had time to flash OpenWRT and it turned out that I have the 128 MB version. Although my serial number is starting with 2544!

The OEM bootlog clearly shows that it has the (old) F50L1G41LB chip.

My unit must be like one of the last devices that is still using the old chip. OpenWRT wiki says everything 2543 and higher is 256MB, Cudy says the flash chip has been changed in serials starting with 2544. I'll at least fix the information in the OpenWRT wiki.

Serial has nothing to do with flash size, it relates to the flash chip.

Flashing a 128MB image onto a 256MB flash might very well result in you seeing only 128MB.

Cudy says TR3000, SN code start with 2543 or later, don't change the wiki.

Where do they say that? In the download section of the TR3000 they are talking about 2544 (see 2.4.22 release at the bottom).

I happen to have a F50L1G41LB chip in my device (old chip), yet my serial code starts with 2544. Something is strange with this information.

Yeah, this makes sense. On another forum (Russian) there was a user stating he got the 256 MB version together with the F50L1G41LC. So I was hoping that F50L1G41LC effectively meant 256 MB NAND, but I guess I am wrong here. When thinking about this, that guy probably just got a Chinese version (AFAIK the 256 MB version used to be sold mainly in China).

As others already wrote, the serial number has got nothing to do with the amount of flash memory.
When there's no "256MB" on the label, you got the 128MB variant.

So, that's 128MB.

I can't find this statement in the wiki.

You are right. I did misinterpret that.

It just comes down to the fact that they still include the (old) F50L1G41LB in higher serial number ranges than expected. Since it's supported in latest builds I guess the impact of this is negligible.

It would have been nice to know how much free space one could use on the 256MB variant. I couldn't get one of these, so i did the u-boot-mod and got ~95MB free storage. That has to be enough, unless i'd change the flash to 256 MB. But that's too much hassle...

I cannot find that information regarding serial number range 2543 there. All I see is a generic blog post in German without any device-specific information.

Did you even click the link to the Cudy firmware changelog that I provided earlier? This is what it says:

Again, I do understand that the impact is probably negligible for current OpenWRT builds. It would still be nice if the information in the wiki would be accurate.

If you say so ...

Forum is hosted in DE, that's why it gets defaulted, try copying the link, instead of clicking it.

Thanks. I honestly cannot see this message, so thanks for providing the screenshot.

So in the end I guess we can at least agree that the information from Cudy is... inconsistent.

And still, my 2544 device uses the old F50L1G41LB... :man_shrugging: I guess there simply are SN ranges where some production lines are still using the old chips. Not that it matters that much if it's unrelated to NAND size.