Hello and Happy new year !
I am part of a project which aims to create open source firmware to improve the features of the Radtel RT890 Radio and its clones (Ruyage UV58Plus / Iradio UV 5118 plus). We use a custom version of the iradio_uv_5118plus.py driver which works, we modified the frequency limits, the modulations, added the scanlists... In an attempt to remain compatible with the manufacturer's firmware we stored most of new settings outside of the original settings memory area, I tried integrating that area into the chirp image and it didn't go well...
The new memory area (0x3D5000) is located after the original settings area (0x3C1000). My intention was to increase the value of END_ADDR and _memsize to download memory from the start of the original area to the end of the new area, then add an entry in _ranges to write the new settings. During my tests, I obtain an image which is the desired size but its content cycle the original area (basically if I double the size, I have twice the original information concatenated). There are no errors in debug log and the addresses printed by do_download and _read_block seem good.
I tried just changing the READ_OFFSET starting address (0x7960 instead of 0x7820) leaving the size as is and I still get the original data.
I don't have the impression that it is our firmware that exclusively returns this address range because we have a tool that dumps the entire SPI memory (4MB) and uses the same UART commands. This behavior is the same on a radio with the stock firmware, to reproduce you just need to change the value of READ_OFFSET, by putting 0x7960 for example and you will still obtain the data of the original area.
Do you think I forgot to do something?
Many Thanks !