From where does the DCD is taken when loading uboot via serial downloader?

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

From where does the DCD is taken when loading uboot via serial downloader?

4,086 Views
carlobarbaro
Contributor III

Hello,

I know that the iMX6 rom loader when booting from a device (SD, MMC, NAND, etc...) loads an image vector table containing a DCD table used to configure other on chip pheripherals (typically the DDR memory controller).

My question is: from where does the image vector table + DCD is taken when the USB serial boot is selected by bootpins?

For example, the MFG Tool loads in DDR SDRAM the u-boot + kernel image + ramdisk using the USB serial interface, so the DDR controller should be intialized in some way.

I'm asking this because I need to change the DDR controller initialization due to differences between the rams used in our custom board and ram used in SabreSD reference board.

Thank you in advance, any explanation will be appreciated.

Carlo

Labels (1)
Tags (4)
6 Replies

1,816 Views
Yuri
NXP Employee
NXP Employee

In addition :

For internal serial ROM bootloader, the (corresponding) flash header should be

sent before an application, and the flash header contains DCD pointer.


Have a great day,
Yuri

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos

1,816 Views
carlobarbaro
Contributor III

Hi Yuri,

sorry, I don't understand: you tell me that when serial ROM bootloader is used, the flash header (containing DCD) is sent before an application.

Who send it, MFGTool2.exe?

And from where does this flash header is taken?

Thank you and great day to you.

Carlo

0 Kudos

1,816 Views
Yuri
NXP Employee
NXP Employee

The MFG can send the (embedded in file) flashheader automatically.

1,816 Views
wallyyeh
Contributor V

recently I'm facing this, if you are using SDK_4.1.0, this answer might be useful for you:

uboot DDR initialization is on uboot/board/freescale/mx6q_sabresd/flash_header.S

and you need fill the i.MX6Q DDR3 script aid, then modified your flash_header.S to fit your custom DDR.

here is the URL about  i.MX6Q DDR3 script aid:

   i.Mx6DQSDL DDR3 Script Aid

And don't for get fill the calibration value obtained from i.MX6 DDR Stress Test Tool : i.MX6 DDR Stress Test Tool V1.0.2

0 Kudos

1,816 Views
carlobarbaro
Contributor III

Hi,

I already found it at the path you indicate, and I have modified it for my u-boot stored in eMMC.

But to write my u-boot in eMMC I have to use the MFGTools and they use their u-boot + kernel + ramdisk.

All this stuff is loaded in DDRAM by romloader via USB serial.

My question is: how does the DDRAM get initialized?

Should I modify also the u-boot used by MFGTools?

0 Kudos

1,816 Views
wallyyeh
Contributor V

Hi, Carlo:

    one thing need confirm first, did you attach serial comport and see what it outputs?

    DCD table seems build into u-boot, so using MFGtools will send a magic words to cpu, then sending u-boot and kernel to whatever cpu can load(since RAM not initailized)

   then rom code start to execute u-boot, then initiallze RAM.(or init DDR first then execute u-boot?)

   this post also ask the same question:

imx6: memory controller initialization in uboot?

    there is a linux cmdline version tool like MFGtool.exe:

i.MX USB Loader

    this tool will using serial download mode send only u-boot. and once it done, you cat stay in u-boot prompt and load your kernel by nfs or tftp.

   but if serial comport didn't output anything when you passing u-boot by imx usb loader, this might because wrong modification of flash_header.S

0 Kudos