Issue of MPC5748G BAF

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Issue of MPC5748G BAF

1,275 Views
webbersun
Contributor III

How does to implement the firmware upgrade feature by serial boot mode? Could Freescale release FW upgrade  application sample code on MPC5748G?

Labels (1)
0 Kudos
1 Reply

477 Views
lukaszadrapa
NXP TechSupport
NXP TechSupport

Hi,

The latest version of RAppID bootloader already supports MPC5748G:

https://www.nxp.com/webapp/Download?colCode=RAPPID_BOOTLOADER_UTILITY

Please notice that RAppID supports only RBF algorithm in case of MPC57xx devices. That means it is necessary to program the RBF to flash memory using third party tool (JTAG programmer) and after that it is possible to use RAppID graphical interface. This is different against MPC56xx devices that support RBA algorithm, so it is possible to program blank device using BAM and SCI or CAN interface (JTAG programmer is not necessary).

You can also develop own bootloader using serial boot. BAF module on MPC5748G searches for valid boot header in flash after reset. If there’s no boot header, serial boot starts. We are able to load code to RAM memory (not to flash) using this serial boot procedure. If we want to load the code to flash memory, it is necessary to develop secondary bootloader. That means secondary bootloader will be loaded to RAM memory using BAF and then the secondary bootloader will be executed. The secondary bootloader then will be responsible to load data from somewhere and program them to flash.

As mentioned above, the serial boot starts only if there’s no valid boot header in flash. Once user application is loaded to flash, serial boot is not executed anymore. It would be necessary to erase the boot header.

MPC56xx devices used pins like FAB and ABS to invoke the serial boot. This is not implemented on MPC5748G. But there’s similar option: it is possible to use SER_BOOT_CBACK as described in chapter “57.4.6.5 SER_BOOT_CBACK – BAF serial boot DCF client”. The expectation is that the customer will use this callback to check the state of a pin (or any other indication) to determine if normal flash boot or Serial boot is required. This function written by customer should return value 0x00 (to boot from flash) or 0x01 (to use serial boot). This is similar to FAB pin but it is not so straightforward.

And the last option is to use flash resident bootloader. For example, Vector provides ready solution:

https://vector.com/vi_flashbootloader_en.html?markierung=bootloader

I have also shared draft of my application note here on community:

https://community.freescale.com/servlet/JiveServlet/download/427962-279359/bootloader.zip

It describes how to create flash resident bootloader. It was written for MPC56xx devices and SW example is written for MPC5634M. But the principle is still the same.

Regards,

Lukas

0 Kudos