Hi
We have developed our own hardwarw board.without SD nor LAN
we use win CE B 6.0 BSP from freescale
On the EVK everything works just fine (from SD).
to work with our board, we change from SD to nand and from EVK DDR chip to ours and seethe following :
1. Loading the eboot to RAM using SB_Loader does not end with something running (neither on the EVK!) so we work with eboot_ivt. does it suppose to be like this?
2. the eboot_ivt works from RAM only. we can see the boot menu and the freescale image on the screen.we can also burn NK image to NAND, launch previous NK image from NAND or download a new one from PB. Eboot parameters are also saved in NAND, so NAND is working.
burnning the eboot to nand and changing to NAND boot does not produce any output in the debug port so we assume it does not boot from NAND. or does not load from NAND. any idea?
3. So we send the eboot into RAM with SB_loader, download the new image (no matter if imgnand =1 or imgnand =0 ) we can see thatthe program runs until OEMinit is finished and than stay in a loop.
+OEMCacheRangeFlush(0x00000000, 0, 0x00000024)
-OEMCacheRangeFlush
and finaly it hangs..
we chaged from imgnand=1 to imgnand=0 and back. did not change anything.
we downloaded nk_ivt directly to RAM.
We disable KITL and the debugger.
all had the same result
Somtimes we manage to get as far as it is here:
OALPAtoVA(va = 0xb0018000)
+BSPIntrInit
-BSPIntrInit
-OALIntrInit(rc = 1)
+OALTimerInit(1, 12000, 123)
+OALIntrRequestSysIntr(1, 0xffffc76c, 0x00000004)
-OALIntrRequestSysIntr(sysIntr = 16)
+OALPAtoVA(0x80068000, 0)
-OALPAtoVA(va = 0xb0068000)
+OEMInterruptEnable(16, 0x0, 0)
+OALIntrEnableIrqs(4, 0x81166820)
+BSPIntrEnableIrq
-BSPIntrEnableIrq(irq = 48)
+BSPIntrEnableIrq
-BSPIntrEnableIrq(irq = -1)
+BSPIntrEnableIrq
-BSPIntrEnableIrq(irq = -1)
+BSPIntrEnableIrq
-BSPIntrEnableIrq(irq = -1)
-OALIntrEnableIrqs(rc = 1)
-OEMInterruptEnable(rc = 1)
+InitRTC(...)
+OALRTC_WriteRawPersistentField
-OALRTC_WriteRawPersistentField(rc = 1)
+OALRTC_WriteRawPersistentField
-OALRTC_WriteRawPersistentField(rc = 1)
+OALRTC_WriteRawPersistentField
-OALRTC_WriteRawPersistentField(rc = 1)
+OALRTC_WriteRawPersistentField
-OALRTC_WriteRawPersistentField(rc = 1)
-InitRTC(...)
-OALTimerInit(rc = 1)
+InitWatchDogTimer
-InitWatchDogTimer
-OEMInit
+OEMCacheRangeFlush(0x00000000, 0, 0x0000007f)
-OEMCacheRangeFlush
+OEMCacheRangeFlush(0x00000000, 0, 0x00000001)
-OEMCacheRangeFlush
+OEMCacheRangeFlush(0x00000000, 0, 0x00000001)
-OEMCacheRangeFlush
..............................
OEMCacheRangeFlush(0x00000000, 0, 0x00000006)
-OEMCacheRangeFlush
+OEMGetRealTime
OEMGetRealTime(2006/1/1 12:1:5.0)
+OEMCacheRangeFlush(0x87fc7000, 8, 0x00000004)
-OEMCacheRangeFlush
+OEMIoControl(0x101008c, 0x0, 0, 0xd00afac8, 4, 0xd00afacc)
-OALIoCtlHalGetRegSecureKeys(rc = 1)
-OEMIoControl(rc = 1)
+OEMCacheRangeFlush(0x00000000, 0, 0x00000024)
-OEMCacheRangeFlush
+OEMCacheRangeFlush(0x00000000, 0, 0x00000024)
-OEMCacheRangeFlush
+OEMCacheRangeFlush(0x87fc6000, 4096, 0x00000004
Any ideas? What can be the problem?
Solved! Go to Solution.
Since you don't have SD and LAN on your board, you'd better use a JTAG tool to get more information. And also you'd better try the default Freescale BSP on Freescale reference board to compare with the correct debug message. Otherwise it will be very difficlut for you to debug on your board.
Since you don't have SD and LAN on your board, you'd better use a JTAG tool to get more information. And also you'd better try the default Freescale BSP on Freescale reference board to compare with the correct debug message. Otherwise it will be very difficlut for you to debug on your board.
From question 1, yes, if your board can only be running with eboot_ivt, then it is OK, as your MX28 chip is HAB type, need to use IVT mode bootloader.