I have a few clarifying questions:
1. What do you mean by "here i use python script for loading BL into board"? Are you saying there is a python script on your host/development machine to push the new bootloader to your target?
2. Are you using the "serial boot" mode of the iMX6 to receive the new bootloader over USB (like the MFG tool uses)? I will assume this is what you are doing and using your "python script" instead of the MFG tool to push the code down.
3. What exactly is the "error" you are getting? For instance, is it failing to download into RAM (CRC mismatch) or is it failing to burn the code to the storage device rom DDR (device not responding, CRC failure to the target, etc)?
4. What is your target storage device for the bootloader?
Now, for possible problems.
You mentioned your DDR configuration has changed.
- Have you updated the IVT/DCD to reflect these changes? (See IMX6DQRM chapter 8 for the DCD and chapter 44 for the DDR controller)
- Have you run the DDR Stress test/calibration utility on your new board? This will measure timing and help with the scarier DDR configuration register settings. I always start with the initial settings from the SABRE board that is the closest match to my board and then run the calibration and stress tests.
- Have you modified where your bootloader will be stored?
-- Has it, for instance, changed from SPI NOR flash to an SD card?
-- Even more subtle, has it changed from SD1 to SD3?
-- If SD Card, is the card detect signal connected to the pin where the ROM expects it to be? (See chapter 8)