Two different bootloaders v7

Started by Lorenzo, January 11, 2011, 05:31:18 AM

Previous topic - Next topic


I found out today that some NXP P89V51RD2 chips runs a bootloader v7 which differs from that available on FlashMagic site (see also this sticky post).  Can someone confirm?

I used to upgrade the bootloader of P89V51RD2 MCUs from v6 to v7 from within my firmware because the v7 includes an important feature to me which lets me change the way programming mode can be activated.  The upgrade is carried out automatically after checking the bootloader version returned by the provided bootloader function.  The NXP chips mentioned above returns "7" as factory bootloader and the upgrade does not take place.

I believe the only way I have to get around this is to perform a CRC check on bank #1.  Any better suggestion?

Jan Waclawek

After having exchanged a couple of PMs, Lorenzo sent me the "new" bootloader read out from the new chips.

And, indeed, it is the v7 bootloader deliberately crippled so that it won't accept the 0C command during ISP nor the 04 command through IAP, i.e. the enhancements of v7 vs. v5 as described in the document accompanying the v7 bootloader (setting different bootloader entry methods) are disabled.

Other than that, the code is the same, and responding with version 7. Yes, it IS the same and DOES contain all the code of v7 including the code for setting the various entry methods, except that that code cannot be executed as the check for highest intelhex command is set back to 0B; this is why I used the expression "deliberately crippled".

Draw your own conclusions; I personally am disgusted.

Jan Waclawek


Quote from: Jan Waclawek on March 14, 2011, 04:16:32 PM
Draw your own conclusions; I personally am disgusted.

I'm with you.  P89V51 is already a mess: it was claimed to be 100% compatible with its predecessor when the programming pin could no longer be used.  This issue is just another turn of the screw.  It seems to me that they are like a bull in a china shop: every time they change something, instead of improving, they play merry hell with the specifications.  How much would have cost to increase the version number to v8?  Now we have two different bootloaders with the same reported version number.  Great!

How do you suggest to distinguish between the two versions?  Maybe we could read a specific byte from the bootloader area?  Or we may call command 0C or 04 and check the content of some register (e.g., register A).


I know this is a very old post!

The NXP v7 bootloader is supposed to have a new provision for modifying ISP entry methods at bootup, based on Port-Pin values.  I could not get this new ISP command, for PortCheck (0CH)  to work with my version of NXP v7 bootloaders.
I tried with P89V51RD2 & SSTE516RD chips,  after parallel-programming them with v7 bootloader.
The programming is successfull & verified. It also responds to FlashMagic to all (most) commands.

But when I tried with FlashMagic (as well as HyperTerminal), with following new (0CH) ISP command: 
:0200000C01846D   ; PortCheck P0.4 low (0v) to enter BootLoader
:00000001FF       ; EOF record

It is not having desired effect. And Block-1 code is corrupted, by this.
No auto-baud problem, since FMagic is communicating & reading Device-Sig, before attempting above.  But after because of Block-1 corruption, FM stops working.  Can some body say, what I am doing wrong?

To clarify further on the v7-bootloader I have used. I am detailing below.
But can some one send me the MD5 Checksum hash of the correct v7-bootloader-binary, which works?

I downloaded the "" from "" site.
I gives v7 bootloader-update file "P89V51RD2_V07_UPD_ISP.hex".
The corresponding bin file has MD5= 15320aa33728e976c95e2fcfb5630a75

I have 3 following versions [a, b, c] of NXP-v7 bootloaders:-..

a) Created from "P89V51RD2_V07_UPD_ISP.bin", stripping out first 8KB [0 - 1FFFH]
   & zeroing initial 3 bytes.
   bin-file  MD5= 85981dbba9849e0c9fe8770e4c525e95
   (Method courtesy: "Jan Waclawek": )

b) Same as (a), but additionally, the range [0800H - 01EFF] is filled by an earlier ver-6 of bootloader, for SoftICE.
   This bin MD5= 86a75f11cdc6eb8a84628ea8b85524cb.    Incidentally this file was exactly same as, when I updated a v6-chip, by parallel-programmer-flashing "P89V51RD2_V07_UPD_ISP.hex" into its block-0, & then allowing it to run after reset. It self-flashed new (v7) bootloader into Block-1, and erased Block-0.
I tried this, since the FlashMagic [ISP-> Update BootLoader Command] did not work, on my v6-chip.

c) This 3rd one  I got from a site:   
MD5 = 46bfd75d677b173cdd6ea552a8a689d5

Can somebody verify these checksums? or better share links to a correct version, which works ( I mean the new ISP commands 0CH)?

Note: I use latest FlashMagic Tool (v10.x) & are experimenting with SSTE516RD chips, after inserting NXP-bootloader into them using parallel programmer.