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.

Who can talk me how to set OampL138 jump adrress in windows ce 6,0??

Other Parts Discussed in Thread: OMAPL138

Hello everyone!
I'm currently in progress of startuping wince nk on a custom board created by my company. but starting now, wo meet encountered problem -- after runing eboot ,but it do't jump to the kenerlstart!
about this problem , my setting follow as these;

image_cfg.h:
#define DEVICE_RAMA_PA OMAPL13X_EMIFB_BASE_PA
#define DEVICE_RAMA_SIZE 0x08000000

//------------------------------------------------------------------------------
// // Define: IMAGE_SHARE_ARGS_xxx
// // Following constants define location and maximal size of arguments shared
// between loader and kernel. For actual structure see args.h file.
//
#define IMAGE_SHARE_ARGS_PA 0xC3FFF800 // Match 'ARGS' in eboot.bib
#define IMAGE_SHARE_ARGS_SIZE 0x00000800 // Match 'ARGS' in eboot.bib

#define IMAGE_SHARE_KITL_EMAC_BUF_PA 0xC3F3F800 // Match 'EMACBUF' in eboot.bib
#define IMAGE_SHARE_KITL_EMAC_BUF_SIZE 0x00006000 // Match 'EMACBUF' in eboot.bib

#define IMAGE_SHARE_NDIS_EMAC_BUF_PA 0xC3F3F800 // Match 'EMACBUF' in config.bib
#define IMAGE_SHARE_NDIS_EMAC_BUF_SIZE 0x000C0000 // Match 'EMACBUF' in config.bib


//------------------------------------------------------------------------------
//
// Define: IMAGE_WINCE_xxx
//
// Following constants define Windows CE OS image layout.
//
#define IMAGE_WINCE_CODE_PA 0xC0000000 // Match 'NK' in config.bib
#define IMAGE_WINCE_CODE_SIZE 0x02000000 // Match 'NK' in config.bib

#define IMAGE_WINCE_DATA_PA 0xC2000000 // Match 'RAM' in config.bib
#define IMAGE_WINCE_DATA_SIZE 0x0193F800 // Match 'RAM' in config.bib

#define IMAGE_WINCE_DISPLAY_PA 0xC393F800 // Match 'DISPLAY' in config.bib
#define IMAGE_WINCE_DISPLAY_SIZE 0x00600000 // Match 'DISPLAY' in config.bib

#define IMAGE_WINCE_EXTENSIONRAM_PA 0xC4000000 // Match 'EXTENSIONRAM' in config.bib
#define IMAGE_WINCE_EXTENSIONRAM_SIZE 0x04000000 // Match 'EXTENSIONRAM' in config.bib


//------------------------------------------------------------------------------
//
// Define: IMAGE_EBOOT_xxx
//
// Following constants define EBOOT image layout.
//
#define IMAGE_EBOOT_CODE_PA 0xC7F60000 // Match 'EBOOT' in eboot.bib
#define IMAGE_EBOOT_CODE_SIZE 0x00040000 // Match 'EBOOT' in eboot.bib

#define IMAGE_EBOOT_DATA_PA 0xC7FA0000 // Match 'RAM' in eboot.bib
#define IMAGE_EBOOT_DATA_SIZE 0x00040000 // Match 'RAM' in eboot.bib

#define IMAGE_EBOOT_STACK_PA 0xC7FE0000 // Match 'STACK' in eboot.bib
#define IMAGE_EBOOT_STACK_SIZE 0x00020000 // Match 'STACK' in eboot.bib

addrtab_cfg.inc

g_oalAddressTable
DCD 0x80000000, 0xC0000000, 128 ; DDR2 (128MB)
DCD 0x90000000, 0x01800000, 8 ; SoC Peripherals
DCD 0x90800000, 0xB0000000, 1 ; DDR registers
DCD 0x91100000, 0xFFFEE000, 1 ; AINTC registers
DCD 0x91200000, 0x60000000, 32 ; EMIFA CS2 (NOR flash)
DCD 0x93200000, 0x80000000, 1 ; 128K shared RAM (on-chip)
DCD 0x00000000, 0x00000000, 0 ; End of Table.
config.bib
MEMORY

NK 80000000 02000000 RAMIMAGE
RAM 82000000 0173F800 RAM
DISPLAY 8373F800 00600000 RESERVED
EMACBUF 83D3F800 000C0000 RESERVED
ARGS 83DFF800 00000800 RESERVED
IF BSP_64MB_DDR
#if defined BSP_DSPLINK
DSPLINK 83E00000 00200000 RESERVED
EXTENSIONRAM 84000000 00000000 RESERVED
#else
EXTENSIONRAM 83E00000 00200000 RESERVED
#endif
ELSE
#if defined BSP_DSPLINK
DSPLINK 83E00000 00200000 RESERVED
EXTENSIONRAM 84000000 04000000 RESERVED
#else
EXTENSIONRAM 83E00000 04200000 RESERVED
#endif
ENDIF


;
; This fix-up variable determines the amount of memory the BSP
; reserves for Watson dump capture. The current default behavior is
; to default to zero unless the image has SYSGEN_WATSON_DMPGEN
; defined. The default size is 300KiB.
;
; If WATSONBUFFERSIZE is defined, use its value. Otherwise use 300KiB.
;
; @CESYSGEN IF CE_MODULES_OSAXST0
#if $(WATSONBUFFERSIZE)!=$()
nk.exe:dwOEMDrWatsonSize 00000000 $(WATSONBUFFERSIZE) FIXUPVAR
#else
nk.exe:dwOEMDrWatsonSize 00000000 0x4B000 FIXUPVAR
#endif
; @CESYSGEN ENDIF



;-------------------------------------------------------------------------------

CONFIG

; @CESYSGEN IF !NK_NKNOCOMP
COMPRESSION=ON
; @CESYSGEN ENDIF !NK_NKNOCOMP
; @CESYSGEN IF NK_NKNOCOMP
COMPRESSION=OFF
; @CESYSGEN ENDIF NK_NKNOCOMP

KERNELFIXUPS=ON

AUTOSIZE=ON
IF IMGFLASHNB
ROMSTART=80000000
ROMWIDTH=32
ROMSIZE=2000000
ENDIF
IF IMGPROFILER
PROFILE=ON
ELSE
PROFILE=OFF
ENDIF

;IF IMGFLASH
; ROMOFFSET=8C000000
;ENDIF

IF IMGTRUSTROMONLY
ROMFLAGS=10
ELSE
ROMFLAGS=00
ENDIF

FSRAMPERCENT=0x30303030

ebootnandflash.bib

MEMORY
; Name Start Size Type
; ------- -------- -------- ----
IF BSP_64MB_DDR
EBOOTNANDFLASH C3F60000 00040000 RAMIMAGE
RAM C3FA0000 00040000 RAM
STACK C3FE0000 00020000 RESERVED
ELSE
EBOOTNANDFLASH C7F60000 00040000 RAMIMAGE
RAM C7FA0000 00040000 RAM
STACK C7FE0000 00020000 RESERVED
ENDIF
ARGS C3DFF800 00000800 RESERVED
EMACBUF C3D3F800 000C0000 RESERVED ; EMAC buffer space

CONFIG
COMPRESSION = OFF
PROFILE = OFF
KERNELFIXUPS = ON

SRE = ON
ROMFLAGS = 0

ROMOFFSET = 0
IF BSP_64MB_DDR
ROMSTART = C3F60000
ELSE
ROMSTART = C7F60000
ENDIF
ROMWIDTH = 32
ROMSIZE = 00040000

MODULES
; Name Path Memory Type
; ----------- ------------------------------------------------------------------ -----------
nk.exe $(_TARGETPLATROOT)\target\$(_TGTCPU)\$(WINCEDEBUG)\ebootnandflash.exe EBOOTNANDFLASH

regards

thanks in advance!

  • Zhenhui,

    Could you tell us a little more about what you intend to do and why did you made the changes?  All we can tell is you made some changes of the above files.  Without knowing why you made the (potentially incomplete) changes , it's difficult to guess.  

    As a preliminary spot check, you made changes in image_cfg.h that has comment:

    #define IMAGE_WINCE_DATA_SIZE 0x0193F800 // Match 'RAM' in config.bib

    But your config.bib shows 

    RAM 82000000 0173F800 RAM

    You also need to be careful about other addresses which come after the one you change or the size of the corresponding block you modified.

    Regards

    WM

  • hello wm!

       But , this configs are from Ti OamlpL138 Evm borad!

       As you advices!  I change 0173F800 to 0193F800 in config.bib, however it  don't work!

    The config.bib follow as these;

    MEMORY
        NK                      80000000    02000000    RAMIMAGE
        RAM                     82000000    0193F800    RAM
    ;    TEST                    8393F000    00000800    RAM
        DISPLAY                 8393F800    00600000    RESERVED
        EMACBUF                 83F3F800    000C0000    RESERVED
        ARGS                    83FFF800    00000800    RESERVED

    Regards

    Zhenhui Luo

  • Hi Zhenhui Luo,

    As WM memntioned, you have changed several parameters. Where ever parameter you have changed you have to change that parameter in all the configuration files.

    For example you have changed IMAGE_SHARE_ARGS_PA address, but you haven't changed that in the ebootnandflash.bib. Similarly you have changed EMACBUF address, but that you haven't changed in the EBOOTNANDFLASH.bib

    My suggestion why can't you use the default values first. Then you can change one after the other.

    Thank You & Regards,

    GSR

  • Hello GSR!

          Now, I reset its configs to the default configs of evm board bsp. Build and download it eboot.nb0 and nk.bin to my board, Unlucky the wince core don' run successfully! 

          But I notice that It can jum into oal layer  and print 'ADE' by debug serial until 'bl  KernelStart' asm sentence.

    Are you meet this issue??  help me!!

    Thanks you & Regarts,

    ZhenHui Luo

  • ZhenHui,

    In the Catalog for your OSDesign, make sure the SOC Type selected matches your EVM.  Also un-select UART0, UART1 and UART2 if any of them is selected.  Every time after you modify the Catalog, do a clean build: PB > Build > CleanSolution; then PB > Build > RebuildSolution.  See if this helps.

    Can you post the bootup log?  This might help others to help you better.

    Regards,

    WM

  • Hello VM!

    The bootup logs as these;

    Completed file(s):
    -------------------------------------------------------------------------------
    +OEMIsFlashAddr(0x80000000)
    -OEMIsFlashAddr(rc = 0)
    [0]: Address=0x80000000  Length=0x19FF544  Name="" Target=RAM
    +OEMMapMemAddr(0x80000000, 0x80000040)
    -OEMMapMemAddr(pAddress = 0xc0000040)
    +OEMMapMemAddr(0x80000000, 0x80000044)
    -OEMMapMemAddr(pAddress = 0xc0000044)
    +OEMMapMemAddr(0x80000000, 0x819fd5bc)
    -OEMMapMemAddr(pAddress = 0xc19fd5bc)
    ROMHDR at Address 80000044h
    +OEMLaunch)
    Image Start .......: 0x80000000
    Image Size ........: 0x019ff544
    Image Launch Addr .: 0x80001000
    Image ROMHDR ......: 0xc19fd5bc
    Boot Device/Type ..: 2 / 1
    OEMLaunch(g_bValidBspArgs)
    +OEMMapMemAddr(0x80000000, 0x80001000)
    -OEMMapMemAddr(pAddress = 0xc0001000)
    INFO: Launch Windows Embedded CE by jumping to 0xc0001000...
    Input look addr : 0x0
    Input lanuch addr : 0xc0001000
    INFO: Launch Windows Embedded CE by jumping to 0xc0001000...ABC

    The oal print out 'ABC',but can't jump to kernelstart funtion.

    Thanks you & Regards!

    ZhenHui Luo

  •  Hi ZhenHui Luo,

    What is the size of SDRAM that are you using on your target board?

    If you are using 64MB then make sure you set BSP_64MB_DDR value to 1.

    Looks the control is given to the Kernel, But it's not returning to OEMInit....I never debugged at that level...If I find any solutions I will post it here

    Thank You & Regards,

    GSR

  • Hi GSR,

    The SDRAM size of my board is 128MB, I don't set BSP_64MB_DDR value to 1.

    Now I don't know which step the kernel is running. OEMInit ??  But there are not output information printed by debug serial!

    Thanks you & Regards,

    ZhenHui Luo

  • Hi ZhenHui Luo,

    INFO: Launch Windows Embedded CE by jumping to 0xc0001000...ABC

    In one of the replies you are printing ABC string after dots. Where you have enabled this code?

    Have you added code to print that string in the following source file c:\WINCE600\PLATFORM\OMAPL138_AM18X\SRC\OAL\OALLIB\oalstartup.s?

    If so, I guess it would go to KernelStart api, the source code for this function is at the following path C:\WINCE600\private\winceos\COREOS\nk\kernel\arm\mdarm.c

    what am I saying is kernelstart might be called but, it never returns to OEMInit function.

    Note: Do not modify any code in private folder or public folder.

    Also make sure that you are using the default settings. Have you changed addrtab_cfg.inc?

    Additionally please read the following article on WinCE http://blogs.msdn.com/b/ce_base/archive/2007/11/26/how-does-windows-embedded-ce-6.0-start_3f00_.aspx

    Thank You & Regards,

    GSR

  • Hi GSR!,

    Yes, I changed these code , Frmerly it print ADE string.

    INFO: Launch Windows Embedded CE by jumping to 0xc0001000 , This string print from OEMLaunch.

    Now,Actually I find that it don't run into OEMInit , Because these are not information printed by debug serial from OEMInit.

    Thanks you & Regards ,

    ZhenHui Luo

  • ZhenHui,

    As GSR also suggested the kernel might try to start but somehow there is something wrong with the kernel.  

    From the bootup log, the start addresses etc. seem to be the same as those in the release.  It might worth a try to download the pre-built kernel from the release and see if it shows anything.  I am not sure how different is your EVM from the LogicPD EVM though.  

    In addition to the article that GSR suggests, you can also take a look of this msdn article "Nk.exe Boot Process"

    Regards,

    WM