eMMC flash programmer fails when DDR disabled on LS1088A - Custom Board

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

eMMC flash programmer fails when DDR disabled on LS1088A - Custom Board

845 Views
BenQT
Contributor I

Hi everyone, 

I'm trying to program eMMC with cwflash.py but I'm facing an initialization failure even though the command (like fl_dump) completes.

1. What I'm doing: 
I want to dump the first sector (512 bytes), so I run:

BenQT_1-1763384100909.png

The strange part:
- The capacity of my eMMC is 7.3GB but info just 3.6
- The dump say DONE but immediately fails with "init error"

2. Change I made

Because my DDR fails to initialize (DDR: timeout while waiting for D_INIT), I followed the official documentation to
- Commented out DDR init call
- Set sw_address = 0x18000000 (OCRAM) in Config_Flash_Device()
- Reloaded board and flash programmer.

Do I need to disable more than init_ddr() or somethings? Pls let me know

Thank you in advance!

Best regards,

 

0 Kudos
Reply
3 Replies

721 Views
June_Lu
NXP TechSupport
NXP TechSupport

Given the complexity and size of the eSDHC programming algorithm, earlier attempts to implement it did not succeed.

For the DDR issue, have you passed the DDR validation?

Thanks

0 Kudos
Reply

801 Views
June_Lu
NXP TechSupport
NXP TechSupport

Please kindly follow the INSTALL\Freescale\CW4NET_v2020.06\CW_ARMv8\ARMv8\Help\PDF\ARMv8_Targeting_Manual.pdf, 8.6 Board Recovery to flash the first image.

But if you open the "Target Initialization File", you could find:

    # Add eMMC device

    fl.add_device({"alias": "mmc", "name": "MMCP1xxx_LSCH3_v3", "address": 0x00000000, "ws_address": 0x80000000, "ws_size": 0x1FFFF, "geometry": "8x1", "controller": "eSDHC"})

 

"ws_address": 0x80000000 is the DDR address, if the DDR fails to initialize (DDR: timeout while waiting for D_INIT), you could not use the flash programmer.

Thanks

767 Views
BenQT
Contributor I

Hello June,
Thank you for your response. Currently, our custom board is using a 16-bit DDR4 interface, and this is causing the INIT_DDRC() process to fail and prevents it from completing.
Therefore, based on the description in the LS1088A-RDB README and section 7.5 of the ARMv8 Targeting Manual, I attempted to switch to using eSDHC instead of DMA to avoid relying on DDR.

I would like to confirm the following:

1. Is switching to eSDHC a feasible approach?

2. If we use DDR with a 3200 MT/s and a 16-bit width, what modifications do I need to make to the initialization file?

0 Kudos
Reply
%3CLINGO-SUB%20id%3D%22lingo-sub-2206083%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3EeMMC%20flash%20programmer%20fails%20when%20DDR%20disabled%20on%20LS1088A%20-%20Custom%20Board%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2206083%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHi%20everyone%2C%26nbsp%3B%3C%2FP%3E%3CP%3EI'm%20trying%20to%20program%20eMMC%20with%20cwflash.py%20but%20I'm%20facing%20an%26nbsp%3Binitialization%20failure%26nbsp%3Beven%20though%20the%20command%20(like%20fl_dump)%20completes.%3C%2FP%3E%3CP%3E1.%20What%20I'm%20doing%3A%26nbsp%3B%3CBR%20%2F%3EI%20want%20to%20dump%20the%26nbsp%3Bfirst%20sector%20(512%20bytes)%2C%20so%20I%20run%3A%3C%2FP%3E%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22BenQT_1-1763384100909.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22BenQT_1-1763384100909.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22BenQT_1-1763384100909.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F365910iDD40637018F57A8F%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22BenQT_1-1763384100909.png%22%20alt%3D%22BenQT_1-1763384100909.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FP%3E%3CP%3EThe%20strange%20part%3A%3CBR%20%2F%3E-%20The%20capacity%20of%20my%20eMMC%20is%207.3GB%20but%20info%20just%203.6%3CBR%20%2F%3E-%20The%20dump%20say%20DONE%20but%26nbsp%3Bimmediately%20fails%20with%20%22init%20error%22%3C%2FP%3E%3CP%3E2.%20Change%20I%20made%3C%2FP%3E%3CP%3EBecause%20my%20DDR%20fails%20to%20initialize%20(DDR%3A%20timeout%20while%20waiting%20for%20D_INIT)%2C%20I%20followed%20the%20official%20documentation%20to%3CBR%20%2F%3E-%20Commented%20out%20DDR%20init%20call%3CBR%20%2F%3E-%20Set%20sw_address%20%3D%200x18000000%20(OCRAM)%20in%20Config_Flash_Device()%3CBR%20%2F%3E-%20Reloaded%20board%20and%20flash%20programmer.%3C%2FP%3E%3CP%3EDo%20I%20need%20to%20disable%20more%20than%20init_ddr()%20or%20somethings%3F%20Pls%20let%20me%20know%3C%2FP%3E%3CP%3EThank%20you%20in%20advance!%3C%2FP%3E%3CP%3E%3CSPAN%3EBest%20regards%2C%3C%2FSPAN%3E%3C%2FP%3E%3CBR%20%2F%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2247159%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20eMMC%20flash%20programmer%20fails%20when%20DDR%20disabled%20on%20LS1088A%20-%20Custom%20Board%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2247159%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%20style%3D%22margin%3A%200in%3B%20font-family%3A%20Calibri%3B%20font-size%3A%2011.0pt%3B%22%3EGiven%20the%20complexity%20and%20size%20of%20the%20eSDHC%20programming%20algorithm%2C%20earlier%20attempts%20to%20implement%20it%20did%20not%20succeed.%3C%2FP%3E%0A%3CP%20style%3D%22margin%3A%200in%3B%20font-family%3A%20Calibri%3B%20font-size%3A%2011.0pt%3B%22%20lang%3D%22en-US%22%3EFor%20the%20DDR%20issue%2C%20have%20you%20passed%20the%20DDR%20validation%3F%3C%2FP%3E%0A%3CP%20style%3D%22margin%3A%200in%3B%20font-family%3A%20Calibri%3B%20font-size%3A%2011.0pt%3B%22%20lang%3D%22en-US%22%3EThanks%3C%2FP%3E%3C%2FLINGO-BODY%3E