This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

DM3730 - problem after Uncompressing kernel

Other Parts Discussed in Thread: DM3730

Hi everybody,
I'm struggling against a problem on my hw, quite similar to evm.

I can read/write the ram from 0x80000000 for at least 6MB using jtag and also using u-boot (mtest command).
The problem appears when I go bootm 80708000, I get 'invalid compressed format'

I have tried to follow the inflate, and it seems a problem during block inflate.
I guess it is something related to x-loader or u-boot (I don't have nand so I have modified them).
Any idea to understand better this situation?

Regards,
Raffaele

BAIA # bootm 80708000
## Booting kernel from Legacy Image at 80708000 ...
   Image Name:   Linux-2.6.32
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    2458948 Bytes =  2.3 MB
   Load Address: 80008000
   Entry Point:  80008000
   Verifying Checksum ... OK
   Loading Kernel Image ... load = 0x80008000, image_start = 0x80708040
OK
OK
   kernel loaded at 0x80008000, end = 0x80260544
## Transferring control to Linux (at address 80008000) ...

Starting kernel ...
Uncompressing Linux...
invalid compressed format (err=2)

 

  • I have discovered that:

    1. After powering up the system, using Lauterbach to load to ram x-loader and after u-boot, and loading also uImage to ram (and using 'bootm 83008000') I 
    have EVERYTIME the previous problem.
    I don't have any SD card inserted.

    2. Without powering off I re-run the same Lauterbach script (so, the same x-loader,u-boot and kernel in same places) completely and so the system comes-up
    EVERYTIME going on AFTER Uncompressing kernel obtaining a completely Linux system working in NFS.

    It seems a POR issue.

    Doing system.up command from Lauterbach I see nreswarm signal  with oscilloscope going down for few usec and after up.
    But, after a power-up, if I do many times nreswarm reset I have again Uncompressing kernel issue.

    In 1. situation if I comment, in arch/arm/boot/compressed/head.S the code that enable the cache the uncompressing kernel it goes on
    after Uncompressing kernel (obviously slowly). Afterwards it stops again because it tries again to enable mmu and cache again.
    I see it reading with JTAG __log_buf.
    It seem a mixed problem between POR and RAM burst access.

    Anybody can point me to the right direction in order to do some tests to understand better the problem?
    I have described enough the situation?
    I'm using dvsdk 4.01 psp x.loader,u-boot,kernel in my DM3730 custom board.

    Regards,
    Raffaele

     

     

     

     

     

     

     

  • I'm a Raffaele colleague. I've found a trick to boot, but it is only to study the problem.

    When system boots, if it came from POR the firs part of start.S is repeated again and the system doesn't hang.

    It is not clear why it is needed to "reboot" twice, and also if the point to "test POR and restart" is moved earlier the system hang.

    Has someone any idea to understand the problem?

    Best Regards

     

    GIT repository

    //arago-project.org/git/projects/x-load-omap3.git

     

    Patch attached

    From de50d15025ecf81ed2f83d4b977c1fb816b3284f Mon Sep 17 00:00:00 2001
    From: sources <sources@picione.eu.dir.grpleg.com>
    Date: Tue, 19 Apr 2011 08:27:50 +0200
    Subject: [PATCH] fixup of COLD boot

    This fix allow the linux kernel to enable correctly the cache during
    Uncompressing kernel and also after.

    Signed-off-by: Roberto Cerati <roberto.cerati@bticino.it>
    Signed-off-by: Rodolfo Giometti <giometti@linux.it>
    ---
     cpu/omap3/start.S |    9 +++++++++
     1 files changed, 9 insertions(+), 0 deletions(-)

    diff --git a/cpu/omap3/start.S b/cpu/omap3/start.S
    index 11122a3..2971ef6 100644
    --- a/cpu/omap3/start.S
    +++ b/cpu/omap3/start.S
    @@ -157,6 +157,15 @@ clbss_l:
         add    r0, r0, #4        /* increment clear index pointer    */
         bne    clbss_l                 /* keep clearing till at end        */
     
    +RM_RSTST_MPU: .word 0x48306958
    +    ldr     r0, RM_RSTST_MPU
    +    ldr    r2, [r0]
    +    mov    r1, #1
    +    str    r1, [r0]
    +    and    r2, r2, #1
    +    cmp    r2, #1
    +    beq    reset
    +
         ldr    pc, _start_armboot    /* jump to C code                   */
     
     _start_armboot:    .word start_armboot
    --
    1.6.3.3