mitaux8030
Silent Key
At the heart of this little discussion is an attempt to downgrade a newer flash release that is compatible with RPM only, to an earlier version of flash that is ProGrammer friendly, without access to RPM in the first place. Here, I'm going to assume that the Feature Encryption string is already known, and that tracking data can either be redone by alignment or 'close enough' default settings are used in the interim.
According to MA-Com, the official process for downgrade is as follows:
"PROCEDURE FOR RECOVERING RADIO FROM R13 (OR GREATER) RADIO CODE BACK TO R11 (OR EARLIER)
In order to prepare to recover radios, it is necessary to change the bootloader that ProGrammer uses to the new bootloader that is installed with RPM. Once this is done, recovery can be done..."
This of course means that you need both RPM and ProGrammer to achieve this end result. I've been thinking about the situation, and find myself questioning the need to upgrade ProGrammer's bootloader, per the official process detailed above. My initial conclusions are that it should be possible with the standard Radio Maint 'Recovery' tool. No bootloader file from RPM needed. If anyone can prove me wrong by experience, or explain the fault in my logic, I'd love to hear about it.
So why do I think that the standard RadioMaint can do this? Lets start with the architecture of three radios: M-RK, LPE200 and Jaguar 700P.
Each of these radios can update their flash load via the UDC. The LPE200 and Jag even share the very same processor. And each of them have a very similar architecture as far as how a flash load gets from the UDC to the flash memory.
Generally, it goes something like this: UDC -> Processor -> common data & address bus -> flash memory E2PROM & RAM. There's also a seperate bus from the Processor to the much smaller personality/tracking data/feature data E2PROM as well.
So, anything - be it flash load, personality data, tracking info etc - needs to go through the processor. For loading the flash, this has been achieved by using a 'bootloader'. MA-Com describes a bootloader as:
"RAM Bootloader Software - downloaded by the PC programmer into the radio and executed. This software communicates with the PC using a full network protocol
(x3.28). Serial data is transferred through the radio UART [buried inside the microprocessor] for FLASH application loading, DSP code storage and personality storage. This software supports read/write of EEPROM data such as Tracking Data and Feature Encryption". MA-Com mention that a RAM bootloader is used for all three models for flash loading.
That tells me that the bootloader is being executed directly by the microprocessor (probably loads itself into RAM and then executed by the micro that way) *without* needing the assistance of the flash. Besides, the very name 'bootloader' to me implies that its job could potentially have to be done 'cold' with absolutely nothing in the flash. Which further implies that the bootloader can do its job no matter what the contents of the flash may be.
From that, I conclude that the bootloader, directly instructing the microprocessor to transfer a flash image to E2PROM, will do so no matter what is in the flash. So, even though a radio may have a very late flash version, the bootloader should overwrite it with whatever it has been instructed to. Well, that's my theory, anyway.
I've sort of proved my thoughts on a 'sacrafical' M-RK2; I was pretty brutal with it. I started with just erasing the flash, then restarting the recovery process. That restored the M-RK fine. I then managed to force a M-RK1, an Orion, an LPE and even a M7100 flash into the M-RK's flash memory, and each time a recovery did its job without any problem or complaint.
So an existing late version flash in a radio shouldn't prevent a bootloader - any bootloader, no matter what its 'version' - from loading whatever flash image you specify.
So why exactly does MA-Com specify that the bootloader for ProGrammer need to be updated to that of RPM's bootloader, before a flash version downgrade via ProGrammers Recovery is carried out?
According to MA-Com, the official process for downgrade is as follows:
"PROCEDURE FOR RECOVERING RADIO FROM R13 (OR GREATER) RADIO CODE BACK TO R11 (OR EARLIER)
In order to prepare to recover radios, it is necessary to change the bootloader that ProGrammer uses to the new bootloader that is installed with RPM. Once this is done, recovery can be done..."
This of course means that you need both RPM and ProGrammer to achieve this end result. I've been thinking about the situation, and find myself questioning the need to upgrade ProGrammer's bootloader, per the official process detailed above. My initial conclusions are that it should be possible with the standard Radio Maint 'Recovery' tool. No bootloader file from RPM needed. If anyone can prove me wrong by experience, or explain the fault in my logic, I'd love to hear about it.
So why do I think that the standard RadioMaint can do this? Lets start with the architecture of three radios: M-RK, LPE200 and Jaguar 700P.
Each of these radios can update their flash load via the UDC. The LPE200 and Jag even share the very same processor. And each of them have a very similar architecture as far as how a flash load gets from the UDC to the flash memory.
Generally, it goes something like this: UDC -> Processor -> common data & address bus -> flash memory E2PROM & RAM. There's also a seperate bus from the Processor to the much smaller personality/tracking data/feature data E2PROM as well.
So, anything - be it flash load, personality data, tracking info etc - needs to go through the processor. For loading the flash, this has been achieved by using a 'bootloader'. MA-Com describes a bootloader as:
"RAM Bootloader Software - downloaded by the PC programmer into the radio and executed. This software communicates with the PC using a full network protocol
(x3.28). Serial data is transferred through the radio UART [buried inside the microprocessor] for FLASH application loading, DSP code storage and personality storage. This software supports read/write of EEPROM data such as Tracking Data and Feature Encryption". MA-Com mention that a RAM bootloader is used for all three models for flash loading.
That tells me that the bootloader is being executed directly by the microprocessor (probably loads itself into RAM and then executed by the micro that way) *without* needing the assistance of the flash. Besides, the very name 'bootloader' to me implies that its job could potentially have to be done 'cold' with absolutely nothing in the flash. Which further implies that the bootloader can do its job no matter what the contents of the flash may be.
From that, I conclude that the bootloader, directly instructing the microprocessor to transfer a flash image to E2PROM, will do so no matter what is in the flash. So, even though a radio may have a very late flash version, the bootloader should overwrite it with whatever it has been instructed to. Well, that's my theory, anyway.
I've sort of proved my thoughts on a 'sacrafical' M-RK2; I was pretty brutal with it. I started with just erasing the flash, then restarting the recovery process. That restored the M-RK fine. I then managed to force a M-RK1, an Orion, an LPE and even a M7100 flash into the M-RK's flash memory, and each time a recovery did its job without any problem or complaint.
So an existing late version flash in a radio shouldn't prevent a bootloader - any bootloader, no matter what its 'version' - from loading whatever flash image you specify.
So why exactly does MA-Com specify that the bootloader for ProGrammer need to be updated to that of RPM's bootloader, before a flash version downgrade via ProGrammers Recovery is carried out?