Re: Migrating Windows CE.NET 4.2 to CE 5.0 on OMAP1510 platform
- From: Migrating CE.NET 4.2 to CE 5.0 <MigratingCENET42toCE50@xxxxxxxxxxxxxxxxxxxxxxxxx>
- Date: Tue, 31 May 2005 07:29:37 -0700
Hi Paul,
Here is the debug output,
Sent BOOTME to 255.255.255.255
ARP request received, response sent...
Locked Down Link 1
Src IP 172.29.4.100 Port 0800 Dest IP 172.29.6.26 Port 0C50
EthDown: Received TFTPD_OPEN for boot.bin.
EthDown: BIN image start 0x40000, length 0x1A11900.
EthDown: Downloading to Flash...
FlashFifo: Found INTEL flash.
FlashFifo: FIFOBase = 0xA4040000, FIFOTop 0xA5FC2000.
EthDown: Record start 0x40000, length 0x4, checksum 0x1EB.
EthDown: End of record, wrote 0x4 bytes, checksum = 0x1EB.
EthDown: Record start 0x40040, length 0x8, checksum 0x360.
EthDown: End of record, wrote 0x8 bytes, checksum = 0x360.
EthDown: Record start 0x40048, length 0x4, checksum 0x1CC.
EthDown: End of record, wrote 0x4 bytes, checksum = 0x1CC.
EthDown: Record start 0x41000, length 0xAA78C, checksum 0x40DE363.
FlashWrite: Record start 0x40000, length 0x4, checksum 0x1EB.
FlashWrite: Writing record...
FlashWrite: End of record, wrote 0x4 bytes, checksum = 0x1EB.
FlashWrite: Record start 0x40040, length 0x8, checksum 0x360.
FlashWrite: Writing record...
....
....
.....
FlashWrite: End of record, wrote 0x1980 bytes, checksum = 0x9157C.
FlashWrite: Record start 0x0, length 0x80041000, checksum 0x0.
FlashWrite: End of image.
EBOOT: Flash programming complete. Total transfer average 49163 bytes/sec.
EBOOT: Jumping to image at 0x41000...
EBOOT: Leaving main().
OEMInitDebugSerial: KITL initialization failed.
OEMInitDebugSerial: KITL initialization failed.
Windows CE Kernel for ARM (Thumb Enabled) Built on May 30 2005 at 19:12:45
ProcessorType=0925 Revision=2
sp_abt=ffff5000 sp_irq=ffff2800 sp_undef=ffffc800 OEMAddressTable = 80041038
RelocInit: Relocated SDRAM functions start=0x8005e6f8, end=0x8005e93c.
RelocInit: Size of relocated SDRAM functions=0x244.
RelocInit: Base of SDRAM relocate area=0x8404bc40.
RelocInit: Relocating 580 bytes of SDRAM functions.
g_pIdentifyFlash=0x8404bc44.
g_pInitIntelFlash=0x8404bd0c.
g_pInitIntelFlash=0x8404bde0.
RelocInit: Relocated SDRAM functions start=0x8005e940, end=0x8005e9f8.
RelocInit: Size of relocated SDRAM functions=0xb8.
RelocInit: Base of SDRAM relocate area=0xa802f000.
RelocInit: Relocating 184 bytes of ISRAM functions.
g_pSetEMIFFastRegs=0xa802f004.
Using SDF3 SDRAM timing configuration.
Flash clock frequency = 12000000 Hz.
Init: Found INTEL_STRATA_128 on CS0.
SetClock: Configuring for Full Synchronous mode...
OEMClockFreq = 12000000 Hz.
OEMClockFreqDSP = 12000000 Hz.
OEMClockFreqTC = 12000000 Hz.
OEMClockFreqDSPMMU = 12000000 Hz.
OEMClockFreqLCD = 3000000 Hz.
OEMClockFreqPerf = 3000000 Hz.
Using SDF0 SDRAM timing configuration.
Flash clock frequency = 84000000 Hz.
Init: Found INTEL_STRATA_128 on CS0.
SetClock: Configuring for Synchronous Scalable mode...
OEMClockFreq = 168000000 Hz.
OEMClockFreqDSP = 168000000 Hz.
OEMClockFreqTC = 84000000 Hz.
OEMClockFreqDSPMMU = 84000000 Hz.
OEMClockFreqLCD = 42000000 Hz.
OEMClockFreqPerf = 42000000 Hz.
Using SDF0 SDRAM timing configuration.
Flash clock frequency = 84000000 Hz.
Init: Found INTEL_STRATA_128 on CS0.
SetClock: Configuring for Synchronous Scalable mode...
OEMClockFreq = 168000000 Hz.
OEMClockFreqDSP = 168000000 Hz.
OEMClockFreqTC = 84000000 Hz.
OEMClockFreqDSPMMU = 84000000 Hz.
OEMClockFreqLCD = 42000000 Hz.
OEMClockFreqPerf = 42000000 Hz.
Splash+
LCDSetupInit+
LCDSetupRegs: LCD registers initial values.
LCD Control = 0xfe000cec.
LCD Timing0 = 0x27030cef.
LCD Timing1 = 0x802093f.
LCD Timing2 = 0xfc000002.
MCU_CKCTL = 0x250a.
LCDSetupRegs: Setting LCD registers for 240x320, 16BPP @ 60+/-3Hz.
LCDSetupRegs: LCD controller maximum frequency = 168000000.
LCDSetupRegs: Total PCLKs per HSYNC = 288.
LCDSetupRegs: Total HSYNCs per VSYNC = 333.
LCDSetupRegs: PCLKs per VSYNC = 95904.
LCDSetupRegs: PCLK (MIN, MID, MAX) 5466528, 5754240, 6041952 (Hz).
LCDSetupRegs: Frame buffer in ISRAM.
LCDSetupRegs: At LCDDIV = 8, LCDClockFreq = 21000000Hz,
PCD = 4, Total Divisor = 32.
PixFreq = 5250000Hz, FrameRate = 55Hz.
LCDSetupRegs: At LCDDIV = 4, LCDClockFreq = 42000000Hz,
PCD = 7, Total Divisor = 28.
PixFreq = 6000000Hz, FrameRate = 63Hz.
LCDSetupRegs: Using LCDDIV = 4, PCD = 7.
LCDSetupRegs: LCD registers final values.
LCD Control = 0xfe000cec.
LCD Timing0 = 0x27030cef.
LCD Timing1 = 0x802093f.
LCD Timing2 = 0xfc000007.
MCU_CKCTL = 0x250a.
LCDSetupDMA: DMA registers initial values.
DMA LCD Control = 0x0.
DMA LCD TopF1 = 0x11fc2000.
DMA LCD BotF1 = 0x11fe781e.
LCDSetupDMA: Frame buffer in ISRAM.
LCDSetupDMA: Palette entry 0 (0x88000000) = 0x4000.
LCDSetupDMA: DMA registers final values.
DMA LCD Control = 0x40.
DMA LCD TopF1 = 0x20000000.
DMA LCD BotF1 = 0x2002581e.
OEMInit is done!!! by Vadivel
OEMInit: is done! by Vadivel.
Booting Windows CE version 5.00 for (ARM)
&pTOC = 80049a74, pTOC = 81a4ff2c, pTOC->ulRamFree = 84087000, MemForPT =
00000000
Old or invalid version stamp in kernel structures - starting clean!
Configuring: Primary pages: 7542, Secondary pages: 0, Filesystem pages = 3771
Booting kernel with clean memory configuration:
Memory Sections:
[0] : start: 84088000, extension: 00002000, length: 01d76000
Sp=ffffc7cc
ARMInit done.
Windows CE KernelInit
Heap Init done
Init memory Pool done
Proc Init done
Updated eptr->e32_vsize to = 000ac000
Scheduler: Do Virtual alloc is done
Scheduler: MDCreateThread starts...
Thanks,
Vadivel
"Paul G. Tobey [eMVP]" wrote:
> *Don't cut pieces out of the debug output*! We need to see it to figure out
> what might be happening...
>
> Paul T.
>
> "Migrating CE.NET 4.2 to CE 5.0"
> <MigratingCENET42toCE50@xxxxxxxxxxxxxxxxxxxxxxxxx> wrote in message
> news:F9A5E1B9-C558-4C9D-8A73-DC9BDBE6E910@xxxxxxxxxxxxxxxx
> > Thanks Mr.Paul G. Tobey,
> >
> > I checked it and its works fine. please see the debug list bellow,
> >
> > Ethernet Boot-Loader for the
> > Texas Instruments OMAP EVM.
> >
> > Build date: Nov 14 2002 at 12:23:53
> > Copyright (c) 2000 - 2002, Texas Instruments, Inc.
> > Portions copyright (c) 1995-2000 Microsoft Corporation.
> >
> > EBOOT: Moving exception handlers from 0x84014DFC to 0x8802D000.
> > EBOOT: Calling OEMInit.
> > EBOOT: Initializing LAN9000 hardware.
> > +SMCInit
> >
> > SMC card not detected, I/O base 0xA2000300, BSR: 0x0000FF9E
> > EBOOT: Could not find LAN9000 hardware.
> > EBOOT: Jumping directly to 0x40000
> > EBOOT: Jumping to image at 0x40000...
> > EBOOT: Leaving main().
> > Windows CE Kernel for ARM (Thumb Enabled) Built on May 18 2004 at 18:20:50
> >
> > ProcessorType=0925 Revision=2
> >
> > sp_abt=ffff5000 sp_irq=ffff2800 sp_undef=ffffc800 OEMAddressTable =
> > 80041038
> >
> > RelocInit: Relocating 580 bytes of SDRAM functions.
> >
> > RelocInit: Relocating 184 bytes of ISRAM functions.
> >
> > g_pSetEMIFFastRegs=0xa802f004.
> >
> > OEMInit is done!!! by Vadivel
> >
> > Sp=ffffc7cc
> >
> > Intc: OEMInterruptHandler(): ~~...INTC_IRQ_TIMER1...~~ =
> >
> > Timer: !fIntrTime @ SYSINTR_RESCHED
> >
> > Timer: SysTimerInterruptHandler done..
> >
> > Intc: OEMInterruptHandler(): ~~...INTC_IRQ_TIMER1...~~ =
> >
> > Timer: !fIntrTime @ SYSINTR_RESCHED
> >
> > Timer: SysTimerInterruptHandler done..
> >
> > Intc: OEMInterruptHandler(): ~~...INTC_IRQ_TIMER1...~~ =
> >
> > Timer: !fIntrTime @ SYSINTR_RESCHED
> >
> > Timer: SysTimerInterruptHandler done..
> > ...
> > ...
> > ...
> >
> > pl any one can suggest me, how to go about it.
> >
> > Thanks,
> >
> > Vadivel
> >
> >
> >
> >
> > "Paul G. Tobey [eMVP]" wrote:
> >
> >> It's your hardware; you're the only one who would know that. You might
> >> make
> >> sure that SYSINTR_RESCHED, I think it is, is being returned when the
> >> timer
> >> interrupt ticks (the 1ms interrupt used for scheduling). If it seems to
> >> be
> >> fine, you need to build a debug image and just capture the serial debug
> >> output and post it. Someone may be able to spot something from that.
> >>
> >> Paul T.
> >>
> >> "Migrating CE.NET 4.2 to CE 5.0"
> >> <MigratingCENET42toCE50@xxxxxxxxxxxxxxxxxxxxxxxxx> wrote in message
> >> news:D5C2C89C-5870-4D74-A13A-67EBFEDA2D7A@xxxxxxxxxxxxxxxx
> >> > Thank you for your support.
> >> >
> >> > How do I check whether the timer/scheduling tick interrupt enabled or
> >> > working? I put the debug/retail message in <driver
> >> > name>:\WINCE500\PLATFORM\OMAP\Src\Kernel\HAL\
> >> >
> >> > INTC.C //Interrupt module file
> >> >
> >> > extern "C" int OEMInterruptHandler(unsigned int ra)
> >> > {
> >> > ...
> >> > ...
> >> > ...
> >> > // Look up interrupt handler or return code.
> >> > switch( nCurrIRQBVal )
> >> > {
> >> > // System tick.
> >> > case INTC_IRQ_TIMER1:
> >> > RETAILMSG( 1, ( TEXT( "Intc: OEMInterruptHandler():
> >> > ~~...INTC_IRQ_TIMER1...~~ = \r\n" )) );
> >> > nReturnCode = SysTimerInterruptHandler();
> >> > break;
> >> > ..
> >> > ..
> >> > ..
> >> > }
> >> > }
> >> >
> >> > Timer.c file
> >> >
> >> > int SysTimerInterruptHandler( void )
> >> > {
> >> > ...
> >> > ...
> >> >
> >> > // Check if we're doing interrupt timing.
> >> > if ( fIntrTime )
> >> > {
> >> > //has to comment, msg by vadivel
> >> > RETAILMSG( 1, ( TEXT( "Timer: fIntrTime \r\n" ) ) );
> >> > //end
> >> >
> >> > // We're doing interrupt timing. Every other tick is a RESCHED.
> >> > dwIntrTimeCountdown--;
> >> > if (dwIntrTimeCountdown == 0)
> >> > {
> >> > dwIntrTimeCountdown = dwIntrTimeCountdownRef;
> >> > dwIntrTimeNumInts = 0;
> >> >
> >> > // Adjust this since timer interrupt has not been cleared.
> >> > dwIntrTimeIsr2 = PerfCountSinceTick() -
> >> > READ_INTREG_ULONG( ( TIMER1_BASE + TIMER_LOAD_OFFS ) );
> >> >
> >> > //has to comment, msg by vadivel
> >> > RETAILMSG( 1, ( TEXT( "Timer: (dwIntrTimeCountdown == 0)
> >> > \r\n" ) )
> >> > );
> >> > //end
> >> > nRetVal = SYSINTR_TIMING;
> >> > }
> >> > else
> >> > {
> >> > //has to comment, msg by vadivel
> >> > RETAILMSG( 1, ( TEXT( "Timer: !(dwIntrTimeCountdown != 0)\r\n" ) ) );
> >> > //end
> >> >
> >> > if ((int) (CurMSec - dwReschedTime) >= 0)
> >> > {
> >> > nRetVal = SYSINTR_RESCHED;
> >> > }
> >> > }
> >> > }
> >> > else
> >> > {
> >> > ///has to comment, msg by vadivel
> >> > RETAILMSG( 1, ( TEXT( "Timer: !fIntrTime \r\n" ) ) );
> >> > //end
> >> > if ((int) (CurMSec - dwReschedTime) >= 0)
> >> > {
> >> > nRetVal = SYSINTR_RESCHED;
> >> > }
> >> > }
> >> >
> >> > it is executing and I am getting the debug/retail message.
> >> >
> >> > OEMInit is done!!! by Vadivel0 bytes, checksum = 0x4
> >> >
> >> > Booting Windows CE version
> >> >
> >> > Intc: OEMInterruptHandler(): ~~...INTC_IRQ_TIMER1...~~ =
> >> > RETAILMSG( 1, ( TEXT( "Timer: !fIntrTime \r\n" ) ) );
> >> >
> >> > Intc: OEMInterruptHandler(): ~~...INTC_IRQ_TIMER1...~~ =
> >> > RETAILMSG( 1, ( TEXT( "Timer: !fIntrTime \r\n" ) ) );
> >> >
> >> > Intc: OEMInterruptHandler(): ~~...INTC_IRQ_TIMER1...~~ =
> >> > RETAILMSG( 1, ( TEXT( "Timer: !fIntrTime \r\n" ) ) );
> >> >
> >> > Intc: OEMInterruptHandler(): ~~...INTC_IRQ_TIMER1...~~ =
> >> > RETAILMSG( 1, ( TEXT( "Timer: !fIntrTime \r\n" ) ) );
> >> >
> >> > Intc: OEMInterruptHandler(): ~~...INTC_IRQ_TIMER1...~~ =
> >> > RETAILMSG( 1, ( TEXT( "Timer: !fIntrTime \r\n" ) ) );
> >> >
> >> > Intc: OEMInterruptHandler(): ~~...INTC_IRQ_TIMER1...~~ =
> >> > RETAILMSG( 1, ( TEXT( "Timer: !fIntrTime \r\n" ) ) );
> >> >
> >> > Intc: OEMInterruptHandler(): ~~...INTC_IRQ_TIMER1...~~ =
> >> > RETAILMSG( 1, ( TEXT( "Timer: !fIntrTime \r\n" ) ) );
> >> >
> >> > Intc: OEMInterruptHandler(): ~~...INTC_IRQ_TIMER1...~~ =
> >> > RETAILMSG( 1, ( TEXT( "Timer: !fIntrTime \r\n" ) ) );
> >> >
> >> > ...
> >> > ...
> >> > ...
> >> >
> >> > Vadivel
> >> >
> >> >
> >> > "Paul G. Tobey [eMVP]" wrote:
> >> >
> >> >> Sounds like you don't have your timer/scheduling tick interrupt
> >> >> enabled
> >> >> or
> >> >> working.
> >> >>
> >> >> Paul T.
> >> >>
> >> >> "Migrating CE.NET 4.2 to CE 5.0"
> >> >> <MigratingCENET42toCE50@xxxxxxxxxxxxxxxxxxxxxxxxx> wrote in message
> >> >> news:62069DE7-3CC7-4CCA-90AD-D4B1CBD2EB8D@xxxxxxxxxxxxxxxx
> >> >> > Hi Paul G.Tobey,
> >> >> >
> >> >> > Thank you for your quick response.
> >> >> >
> >> >> > Yes, we followed microsoft guidance after that we are able to build
> >> >> > a
> >> >> > bin
> >> >> > file. After downloading the image into target, it is not comes up.
> >> >> > Then
> >> >> > we
> >> >> > build the <drive name>:\Wince500\private directory with
> >> >> > debug/retail
> >> >> > message. We found that private\winceos\kernelos\nk\kernel\kwin32.c
> >> >> > file
> >> >> > kernelInit function will do the following operation,
> >> >> >
> >> >> > void KernelInit(void)
> >> >> > {
> >> >> > ...
> >> >> > ...
> >> >> > ...
> >> >> > HeapInit();
> >> >> > lpWriteDebugStringFunc(TEXT("HeapInit done...\r\n"));
> >> >> > InitMemoryPool();
> >> >> > lpWriteDebugStringFunc(TEXT("InitMemPool..Done...\r\n"));
> >> >> > ProcInit();
> >> >> > lpWriteDebugStringFunc(TEXT("SchdInit....Starts...\r\n"));
> >> >> > SchedInit();
> >> >> > lpWriteDebugStringFunc(TEXT("Sched init done\r\n"));
> >> >> > }
> >> >> >
> >> >> > we are getting all the debug message except "Sched init done", so
> >> >> > again
> >> >> > we
> >> >> > put the debug message in schedinit() function,
> >> >> > private\winceos\kernelos\nk\kernel\schedule.c
> >> >> >
> >> >> > void SchedInit(void)
> >> >> > {
> >> >> > ...
> >> >> > ...
> >> >> > ...
> >> >> >
> >> >> > if (OpenExecutable (L"nk.exe", &pCurProc->oe, 0, 0)) {
> >> >> >
> >> >> > DWORD dwReturnValue =
> >> >> > LoadE32(&pCurProc->oe,&pCurProc->e32,0,0,0);
> >> >> >
> >> >> > if( (dwReturnValue == ERROR_BAD_EXE_FORMAT) || (dwReturnValue
> >> >> > ==
> >> >> > ERROR_OLD_WIN_VERSION) )
> >> >> > {
> >> >> > RETAILMSG(1,(TEXT("Scheduler: BAD exe format\r\n")));
> >> >> > }
> >> >> > else if(!dwReturnValue)
> >> >> > RETAILMSG(1,(TEXT("Scheduler: openexecutable 'nk.exe'
> >> >> > sucess\r\n"))); //Vadivel -removable
> >> >> >
> >> >> > pCurProc->BasePtr = (LPVOID)pCurProc->e32.e32_vbase;
> >> >> > UpdateKmodVSize (&pCurProc->oe, &pCurProc->e32);
> >> >> >
> >> >> > }
> >> >> >
> >> >> > pStack =
> >> >> > VirtualAlloc((LPVOID)pCurProc->dwVMBase,pCurProc->e32.e32_stackmax,MEM_RESERVE|MEM_AUTO_COMMIT,PAGE_NOACCESS);
> >> >> > // need to call DoVirtualAlloc directly to bypass stack check
> >> >> >
> >> >> > DoVirtualAlloc(pStack+pCurProc->e32.e32_stackmax-PAGE_SIZE,PAGE_SIZE,MEM_COMMIT,PAGE_READWRITE,
> >> >> > MEM_NOSTKCHK, 0);
> >> >> >
> >> >> > RETAILMSG(1,(L"Scheduler: dovirtualAlloc is done\r\n"));
> >> >> > //Vadivel
> >> >> > -removable
> >> >> >
> >> >> > RETAILMSG(1,(L"Sched: pStak:%8.8lx, pCurProc->e32.e32_stackmax
> >> >> > :%8.8lx
.
- Follow-Ups:
- Re: Migrating Windows CE.NET 4.2 to CE 5.0 on OMAP1510 platform
- From: Steve Maillet \(eMVP\)
- Re: Migrating Windows CE.NET 4.2 to CE 5.0 on OMAP1510 platform
- References:
- Migrating Windows CE.NET 4.2 to CE 5.0 on OMAP1510 platform
- From: Migrating CE.NET 4.2 to CE 5.0
- Re: Migrating Windows CE.NET 4.2 to CE 5.0 on OMAP1510 platform
- From: Paul G. Tobey [eMVP]
- Re: Migrating Windows CE.NET 4.2 to CE 5.0 on OMAP1510 platform
- From: Migrating CE.NET 4.2 to CE 5.0
- Re: Migrating Windows CE.NET 4.2 to CE 5.0 on OMAP1510 platform
- From: Paul G. Tobey [eMVP]
- Re: Migrating Windows CE.NET 4.2 to CE 5.0 on OMAP1510 platform
- From: Migrating CE.NET 4.2 to CE 5.0
- Re: Migrating Windows CE.NET 4.2 to CE 5.0 on OMAP1510 platform
- From: Paul G. Tobey [eMVP]
- Re: Migrating Windows CE.NET 4.2 to CE 5.0 on OMAP1510 platform
- From: Migrating CE.NET 4.2 to CE 5.0
- Re: Migrating Windows CE.NET 4.2 to CE 5.0 on OMAP1510 platform
- From: Paul G. Tobey [eMVP]
- Migrating Windows CE.NET 4.2 to CE 5.0 on OMAP1510 platform
- Prev by Date: Problem booting 2 USB devices
- Next by Date: USB Host Driver
- Previous by thread: Re: Migrating Windows CE.NET 4.2 to CE 5.0 on OMAP1510 platform
- Next by thread: Re: Migrating Windows CE.NET 4.2 to CE 5.0 on OMAP1510 platform
- Index(es):