Hi:
I am using WinCE 4.2 BSP.
Problem Statement:
When I add some code in my Ethernet Driver SMSCGetFrame(), I am able to
start download the nk.bin. The code is just to print the frame received.
Here, too I am always getting checksum error for the 2 record. Then, due to
this Dumping of Ethernet frame my download rate is 3-4 KB/sec. I donâ??t know
that is checksum error related with this speed? What could be the reason for
this?
One more observation: When I put the RAM definition in boot.bib as
â??RAM A0068000 00008000 RAMâ?? instead of â??RAM 80068000
00008000 RAMâ?? I am able to download the OS and reaching launch OS at the
physical address 0xA00B9000. Why is this?
Herewith I am sending myboot.bib, config.bib and local variable address
printed at OEMInitPlatform(),NK.bin and boot.binTOC.
Please suggest.
1. My boot.bib
MEMORY
; Name Start Size Type
; ------- -------- -------- ----
EBOOT 80078000 00040000 RAMIMAGE ; 256 KB for code
RAM 80068000 00008000 RAM
STACK 80000000 00068000 RESERVED
SECTBUFF 80077C00 00000400 RESERVED
DRV_GLB 83CC3000 00001000 RESERVED
BLOCK_BUF 83E30000 00080000 RESERVED
; Total reserved area, which equals offset of the NK region in RAM
g_dwRamImageStart 00000000 800B8000 FIXUPVAR
CONFIG
COMPRESSION=ON
PROFILE=OFF
KERNELFIXUPS=ON
SRE=ON
ROMSTART=80078000
ROMWIDTH=32
ROMSIZE=00040000
MODULES
; Name Path Memory
Type
; -------------- ----------------------------------------------
-----------
nk.exe
$(_TARGETPLATROOT)\target\$(_TGTCPU)\$(WINCEDEBUG)\eboot.exe EBOOT
2. My config.bib
; Name|Virtual/Cached |Size| Region Type
MEMORY
IF IMGFLASH !
IF SABINAL
NK 800B8000 01000000 RAMIMAGE ; SDRAM 16MB: [800B 8000 -> 810B
7FFF]
RAM 810B8000 00C00000 RAM ; SDRAM 12MB: [810B 8000 -> 81CB 7FFF]
EDBG 81F8D000 00020000 RESERVED ; x20000 for EBOOT - 3
Client memory pools of 24K (128K)
ENDIF
IF SABINAL !
NK 800B8000 02000000 RAMIMAGE ; SDRAM 32MB: [800B 8000 -> 820B
7FFF]
RAM 820B8000 01C00000 RAM ; SDRAM 28MB: [820B 8000 -> 83CB 7FFF]
EDBG 83F8D000 00020000 RESERVED ; x20000 for EBOOT - 3 Client
memory pools of 24K (128K)
ENDIF
ENDIF
IF IMGFLASH
IF SABINAL
IF BUILD_ROM_BIN
NK 98380000 00F80000 RAMIMAGE ; FLASH 16MB - 0x80000: Locate above EBOT
image and configuration block
ENDIF
IF BUILD_ROM_NB0
NK 98300000 00F80000 RAMIMAGE ; FLASH 16MB - Replace EBOOT Image
ENDIF
RAM 810B8000 00C00000 RAM ; SDRAM 12MB: [810B 8000 -> 81CB 7FFF]
ENDIF
IF SABINAL !
IF BUILD_ROM_BIN
NK 98380000 01F80000 RAMIMAGE ; FLASH 32MB - 0x80000: Locate above EBOT
image and configuration block
ENDIF
IF BUILD_ROM_NB0
NK 98300000 01E00000 RAMIMAGE ; FLASH 32MB - Replace EBOOT Image
ENDIF
RAM 820B8000 01C00000 RAM ; SDRAM 28MB: [820B 8000 -> 83CB 7FFF]
ENDIF
ENDIF
;
*****************************************************************************
; Common RAM areas - Must match MemDefs.h and xsc1.inc:
; Currently Reserving [81C8 D000 - 81F8 CFFF] == 3 MB
; This area is reserved regardless of the build type (i.e. FLASH, !FLASH,
EBOOT, !EBOOT)
;
IF SABINAL
AUD_DMA 81CB8000 0000A000 RESERVED
SLEEP_SAV 81CC2000 00001000 RESERVED
DRV_GLB 81CC3000 00001000 RESERVED
CACHE_FLG 81CC4000 0003C000 RESERVED ; for use by cache routines:
81CC_4000->81CC_4003 used for flagging. 81CC_4004->81CC_4803 rsvd for miniD
DISPLAY 81D00000 00130000 RESERVED ; 1MB aligned
UNUSED_BUF 81E30000 0015D000 RESERVED
ENDIF
IF SABINAL !
AUD_DMA 83CB8000 0000A000 RESERVED
SLEEP_SAV 83CC2000 00001000 RESERVED
DRV_GLB 83CC3000 00001000 RESERVED
CACHE_FLG 83CC4000 0003C000 RESERVED ; for use by cache routines:
83CC_4000->83CC_4003 used for flagging. 83CC_4004->83CC_4803 rsvd for miniD
DISPLAY 83D00000 00130000 RESERVED ; 1MB aligned
BLOCK_BUF 83E30000 00080000 RESERVED
UNUSED_BUF 83EB0000 000DD000 RESERVED
ENDIF
whql_sig 00000001 00002000 EXTENSION ; WHQL signature extension (6KB).
;
; Reserve ZBANK virtual block.
; *Note: Sabinal/Cotulla can use the same
; VA thanks to the line-allocate instruction
; used to flush the DCache. (No physical memory
; is required to back this virtual range)
;
ZBANK 86000000 00100000 RESERVED
CONFIG
;
; ROMFLAGS is a bitmask of options for the kernel
; 0x0001 Demand paging is disabled
; 0x0002 Disable full-kernel mode
; 0x0010 Trust module only
;
;@CESYSGEN IF !NK_NKNOCOMP
COMPRESSION=ON
;@CESYSGEN ENDIF !NK_NKNOCOMP
;@CESYSGEN IF NK_NKNOCOMP
COMPRESSION=OFF
;@CESYSGEN ENDIF NK_NKNOCOMP
IF IMGPROFILER
PROFILE=ON
ENDIF
IF IMGPROFILER !
PROFILE=OFF
ENDIF
KERNELFIXUPS=ON
ROMFLAGS=0
IF IMGTRUSTROMONLY
IF IMGNOTALLKMODE
ROMFLAGS=12
ENDIF
IF IMGNOTALLKMODE !
ROMFLAGS=10
ENDIF
ENDIF
IF IMGTRUSTROMONLY !
IF IMGNOTALLKMODE
ROMFLAGS=2
ENDIF
IF IMGNOTALLKMODE !
ROMFLAGS=0
ENDIF
ENDIF
IF IMGFLASH !
AUTOSIZE=ON
ENDIF
IF IMGFLASH !
ROMSTART=800B8000
ROMWIDTH=32
ENDIF
IF LOCALE=0411 ;JAPAN
;
; Images from Japan are somewhat RAM limited. Reserve enough for Working ram
;
; byte 0 = # 4K chunks/Mbyte of RAM for file system first 1Mbyte 0-255
; byte 1 = # 4K chunks/Mbyte of RAM for file system 1-2Mbytes
; byte 2 = # 4K chunks/Mbyte of RAM for file system 3-5Mbytes
; byte 3 = # 4K chunks/Mbyte of RAM for file system > 5Mbytes
; Example:
; FSRAMPERCENT=0x10203040
; Would specify 64-4K chunks/Mbyte for 0-1Mbyte, 48-4K chunks/Mbyte for
1-2Mbytes
; 32-4K chunks/Mbyte for 3-5Mbytes and 16-4K chunks/Mbyte for >5Mbytes
FSRAMPERCENT=0x60606060
ENDIF
IF IMGFLASH
ROMSTART=98300000
ROMWIDTH=32
ENDIF
;
; Save some room for Diagnostics Manager (DM) flashed in high memory
;
IF SABINAL
ROMSIZE=01000000
ENDIF
IF SABINAL !
ROMSIZE=01E00000
ENDIF
3. My nk.bin TOC
ViewBin...
C:\WINCE420\PUBLIC\20_Nov_04_tiny\RelDir\INTEL_DBPXA250_DEV_PLATFORMARMV4IRelease\nk.bin
Image Start = 0x800B8000, length = 0x000BC08C
Start address = 0x800B9000
Checking record #7 for potential TOC (ROMOFFSET = 0x00000000)
Found pTOC = 0x80132b74
ROMOFFSET = 0x00000000
ROMHDR ----------------------------------------
DLL First : 0x01FF01FF
DLL Last : 0x02000000
Physical First : 0x800B8000
Physical Last : 0x8017408C
RAM Start : 0x80180000
RAM Free : 0x801AB000
RAM End : 0x83CB8000
Kernel flags : 0x00000002
Prof Symbol Offset : 0x00000000
Num Copy Entries : 1
Copy Entries Offset : 0x80132CFC
Num Modules : 7
Num Files : 3
Kernel Debugger : No
CPU : 0x01c2 (Thumb)
Extensions : 0x800BB474
ROMHDR Extensions -----------------------------
PID[0] = 0x00000000
PID[1] = 0x00000000
PID[2] = 0x00000000
PID[3] = 0x00000000
PID[4] = 0x00000000
PID[5] = 0x00000000
PID[6] = 0x00000000
PID[7] = 0x00000000
PID[8] = 0x00000000
PID[9] = 0x00000000
Next: 80171000
-- Location: 80171000
Name: whql_sig
Type: 00000001
pData: 8017102c
Length: 00000000
Reserved: 00002000
Next: 00000000
COPY Sections ---------------------------------
Src: 0x800FB6B8 Dest: 0x80186000 CLen: 0x6F2 DLen: 0x24C5C
MODULES ---------------------------------------
11/21/2004 19:15:40 293376 nk.exe
11/21/2004 19:16:22 223744 coredll.dll
11/21/2004 19:16:22 126976 filesys.exe
11/21/2004 19:13:06 15360 relfsd.dll
11/21/2004 19:13:04 56832 shell.exe
11/21/2004 19:13:04 6144 toolhelp.dll
11/21/2004 19:13:06 60928 fsdmgr.dll
FILES ----------------------------------------
11/21/2004 19:13:10 C_R_ 344 884
ceconfig.h (ROM 0x80132A04)
11/21/2004 19:16:22 CHRS 3042 17872
initobj.dat (ROM 0x80162074)
11/21/2004 19:16:22 CHRS 4192 16750
default.fdf (ROM 0x8017302C)
Done.
4. My eboot.bin TOC
ViewBin...
C:\WINCE420\PUBLIC\20_Nov_04_tiny\RelDir\INTEL_DBPXA250_DEV_PLATFORMARMV4IRelease\eboot.bin
Image Start = 0x80078000, length = 0x0001B7F8
Start address = 0x80079000
Checking record #3 for potential TOC (ROMOFFSET = 0x00000000)
Found pTOC = 0x80092ddc
ROMOFFSET = 0x00000000
ROMHDR ----------------------------------------
DLL First : 0x02000000
DLL Last : 0x02000000
Physical First : 0x80078000
Physical Last : 0x800937F8
RAM Start : 0x80068000
RAM Free : 0x8006C000
RAM End : 0x80070000
Kernel flags : 0x00000000
Prof Symbol Offset : 0x00000000
Num Copy Entries : 1
Copy Entries Offset : 0x80092E50
Num Modules : 1
Num Files : 0
Kernel Debugger : No
CPU : 0x01c2 (Thumb)
Extensions : 0x00000000
COPY Sections ---------------------------------
Src: 0x80092C38 Dest: 0x80068000 CLen: 0xE8 DLen: 0x30A4
MODULES ---------------------------------------
11/21/2004 19:15:40 112128 nk.exe
FILES ----------------------------------------
Done.
5. My local variable address printed at OEMPlatformInit ()
Microsoft Windows CE Ethernet Bootloader Common Library Version 1.0 Built
Nov 21 2004 20:08:41
Microsoft Windows CE Ethernet Bootloader 3.3 for the PXA255 Platform (Built
Nov 22 2004)
Address of dwStartTime is: 0x80067F5C
Address of dwCurrTime is: 0x80067F58
Address of dwPrevTime is: 0x80067F54
Press [ENTER] to download now or [SPACE] to cancel.