hi,everyone
I am upgrading my sdram configuration for 128M,
Frist of all,I show my platform,
CPU : Xscale pxa255
OS : Windows CE .Net 4.2
Flash : 32MB
SDRAM : 128MB (32MBX4)
since I have heard that it only spend 2 hours on this issue,
why it cost me more than one week to solve the problem...
Okay,let's see the process.
I modified some files related,
config.bib,memdefs.h,memmap.inc,xsc1.h,xsc1.inc,xsc1bd.h,xsc1bd.inc,
fwxsc1.s,platform.reg.(if i missed some file,pls tell me)
At first,i always modified all of files related,
then the kernel hung...I can not find where is the problem,
so,I modified some files step by step,
I just changed OEMAddressTable in memmap.inc,
DCD 0x80000000, 0xA0000000, 64
to
DCD 0x80000000, 0xA0000000, 128
and I also modified xsc1bd.inc,
MDCNFG_VAL EQU 0x19C119C1; SDRAM Config Reg (CL=2)
to
MDCNFG_VAL EQU 0x19C319C3; SDRAM Config Reg (CL=2)
then,sdram register MDCNFG enable the bank1 which is also 64MB.
After two changes above,I download the kernel,it still works.
Then,I just modified config.bib
MEMORY
IF IMGFLASH !
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
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
whql_sig 00000001 00002000 EXTENSION ; WHQL signature extension
(6KB).
ZBANK 86000000 00100000 RESERVED
to
IF IMGFLASH !
NK 800B8000 02000000 RAMIMAGE ; SDRAM 32MB
RAM 820B8000 05C00000 RAM ; SDRAM 28MB+64MB
EDBG 87F8D000 00020000 RESERVED ; x20000 for EBOOT - 3 Client
memory pools of 24K (128K)
ENDIF
AUD_DMA 87CB8000 0000A000 RESERVED
SLEEP_SAV 87CC2000 00001000 RESERVED
DRV_GLB 87CC3000 00001000 RESERVED
CACHE_FLG 87CC4000 0003C000 RESERVED ; for use by cache routines:
83CC_4000->83CC_4003 used for flagging. 83CC_4004->83CC_4803 rsvd for
miniD
DISPLAY 87D00000 00130000 RESERVED ; 1MB aligned
BLOCK_BUF 87E30000 00080000 RESERVED
UNUSED_BUF 87EB0000 000DD000 RESERVED
whql_sig 00000001 00002000 EXTENSION ; WHQL signature extension
(6KB).
ZBANK 8A000000 00100000 RESERVED
and also changed the other related addresses
in memdefs.h,xsc1.h,xsc1.inc,xsc1bd.h,xsc1bd.inc.
for instance:
i modified
#define MEM_BASE_PHYSICAL 0xA3CB8000
#define MEM_BASE_C_VIRTUAL 0x83CB8000
#define EDBG_PHYSICAL_MEMORY_START 0x83F8D000 // Ethernet
Debugger
Pool Address
to
#define MEM_BASE_PHYSICAL 0xA7CB8000
#define MEM_BASE_C_VIRTUAL 0x87CB8000
#define EDBG_PHYSICAL_MEMORY_START 0x87F8D000 // Ethernet
Debugger
Pool Address
It seems that all the PHYSICAL address should not be modified,
I try it before,but also do not work out..
so at last,I made the above change.
And during these days,I also tried to debug images,
but it just hung as the release image..
anyway,my system hung here:
****** Downloading operating system image for SDRAM target ******
TFTP: Desktop losing ACK, block number = 54250, Ack again
rom_offset=0x0.
Found pTOC signature.
ROMHDR at Address 800B8044h
RomHdr.ulRAMStart=81C50000h RomHdr.physfirst=800B8000h.
Done.
Writing 0x80076BD8 to flash address 0xBC340000 (length=0xA40).
Sector=0x200 (Length=0x6) Block=0x1 (Length=0x1).
Handling non-block aligned data...
FlashErase: Unlocking flash block(s) [0x1, 0x1] (please wait): Done.
Erasing flash block(s) [0x1, 0x1] (please wait): .Done.
Writing to flash (please wait): Done.
Got EDBG_CMD_JUMPIMG
Got EDBG_CMD_CONFIG, flags:0x00000000
Download successful! Jumping to image at physical 0xA00B9000...
Begin
******************************************************
******************************************************
******************************************************
******************************************************
******************************************************
OEMInitDebugSerial using UART2
Windows CE Kernel for ARM Built on Mar 13 2003 at 22:54:19
ProcessorType=02d0 Revision=6
sp_abt=ffff5000 sp_irq=ffff2800 sp_undef=ffffc800 OEMAddressTable =
800b9ef8
Sp=ffffc7cc
///////////////////////////////////////
and the debug kernel output here:
normal 64M:
Download successful! Jumping to image at physical 0xA00B9000...
Begin
******************************************************
******************************************************
******************************************************
******************************************************
******************************************************
OEMInitDebugSerial using UART2
Windows CE Kernel for ARM Built on Mar 13 2003 at 22:43:27
ProcessorType=02d0 Revision=6
sp_abt=ffff5000 sp_irq=ffff2800 sp_undef=ffffc800 OEMAddressTable =
800b9ef4
+OEMKitlInit
(D) Before OEMEthInit
(D)(OEMEthInit)
Checking CS8900A Devices..
CS8900A Ethernet Controller Already Initilaized: OK
VBridgeInit()...TX = [16384] bytes -- Rx = [16384] bytes
Tx buffer [0xA2D302E0] to [0xA2D342E0].
[0xA2D2C2C0] to [0xA2D302C0].
ridge:: NK add MAC: [0-B-29-FF-55-66]
p Driver_Globals (ether stuff only) at : 0xA3CC3000
pDriverGlobals->eth.EbootMagicNum= 0x45424F54
pDriverGlobals->eth.etherEnabled= 0x0
pDriverGlobals->eth.etherFlags= 0x0
pDriverGlobals->eth.TargetAddr.dwIP= 0x508412AC
pDriverGlobals->eth.TargetAddr.wMAC= 0xA3CC3910
pDriverGlobals->eth.TargetAddr.wPort= 0xD403
pDriverGlobals->eth.DownloadHostAddr.dwIP= 0x5B8412AC
pDriverGlobals->eth.DownloadHostAddr.wMAC= 0xA3CC3920
pDriverGlobals->eth.DownloadHostAddr.wPort= 0x1E04
pDriverGlobals->eth.DbgHostAddr.dwIP= 0x0
pDriverGlobals->eth.DbgHostAddr.wMAC= 0xA3CC392C
pDriverGlobals->eth.DbgHostAddr.wPort= 0x0
pDriverGlobals->eth.KdbgHostAddr.dwIP= 0x0
pDriverGlobals->eth.KdbgHostAddr.wMAC= 0xA3CC3938
pDriverGlobals->eth.KdbgHostAddr.wPort= 0x0
pDriverGlobals->eth.PpshHostAddr.dwIP= 0x0
pDriverGlobals->eth.PpshHostAddr.wMAC= 0xA3CC3944
pDriverGlobals->eth.PpshHostAddr.wPort= 0x0
pDriverGlobals->eth.SubnetMask= 0xC0FFFFFF
pDriverGlobals->eth.DHCPLeaseTime= 0x0
pDriverGlobals->eth.EdbgFlags= 0x1
OEMether IP Addr: 172.18.132.80
OEMether IP netmask: 255.255.255.192
(D)(OEMEthInit) SysIntrVal = EDBG_SYSINTR_NOINTR
(D) After OEMEthInit
Device XSBase25521862, IP 172.18.132.80, Port 981
(D) Before KitlEtherInit
Calling EdbgInitDHCP
(D) After KitlEtherInit
-OEMKitlInit
Host connected
Host IP: 172.18.132.91, port 1050
KeyIndex 0 = -1
KeyIndex 1 = -1
KeyIndex 2 = -1
KeyIndex 3 = -1
KeyIndex 4 = -1
KeyIndex 5 = -1
KeyIndex 6 = -1
KeyIndex 7 = -1
+KITLRegisterDfltClient, service:0
+KITLRegisterDfltClient, service:1
KITLGlobalState == 0x61
KITL Initialized
Waiting for service 'DBGMSG' to connect..., fUseSysCalls = 0
ProcessAdminMsg: Receive Config message for service DBGMSG
ProcessAdminMsg: Receive Config message for service PPSH
ProcessAdminMsg: Receive Config message for service DBGMSG
ProcessAdminMsg: Receive Config message for service PPSH
ProcessAdminMsg: Receive Config message for service DBGMSG
ARMInit done.
+KITLRegisterDfltClient, service:2
ProcessAdminMsg: Receive Config message for service KDBG
ProcessAdminMsg: Receive Config message for service KDBG
KITL: Leaving polling mode...
KITL Checking client registrations
+RegisterClientPart2: Id 0x00000000
KITL Timer thread started, (hTh: 0x03CB4FDE, pTh: 0x83C80000)
-RegisterClientPart2
+RegisterClientPart2: Id 0x00000001
-RegisterClientPart2
VBridge:: VB_INITIALIZED returns [1]
VBridgeInit()...TX = [16384] bytes -- Rx = [16384] bytes
buffer [0xA2D302E0] to [0xA2D342E0].
buffer [0xA2D2C2C0] to [0xA2D302C0].
0x83a645a8: TAPI:OldAddTapiDevice - This BSP is loading TSPs by old
method!!! Change registry settings to use new way!!!
OEMEthCurrentPacketFilter set to [0xB]
VBridge:: Current VMini packet filter = [0xB]
CS8900: Set receive packet filter [Filter=0xB, RxCTL=0xF05].
OEMEthMulticastList():: No of Entries [1]
[0] : 1 - 0 - 5E - 0 - 0 - 1
OEMEthMulticastList returning [1]
CS8900: Multicast[1 of 1] = 1-0-5E-0-0-1
CS8900: Logical Address Filter = 40.0.0.0.
////////////////////////////////////////
128M hung:
Download successful! Jumping to image at physical 0xA00B9000...
Begin
******************************************************
******************************************************
******************************************************
******************************************************
******************************************************
OEMInitDebugSerial using UART2
Windows CE Kernel for ARM Built on Mar 13 2003 at 22:43:27
ProcessorType=02d0 Revision=6
sp_abt=ffff5000 sp_irq=ffff2800 sp_undef=ffffc800 OEMAddressTable =
800b9ef8
+OEMKitlInit
(D) Before OEMEthInit
(D)(OEMEthInit)
Checking CS8900A Devices..
CS8900A Ethernet Controller Already Initilaized: OK
VBridgeInit()...TX = [16384] bytes -- Rx = [16384] bytes
buffer [0xA2D302E0] to [0xA2D342E0].
buffer [0xA2D2C2C0] to [0xA2D302C0].
NK add MAC: [0-B-29-FF-55-66]
Dump Driver_Globals (ether stuff only) at : 0xA7CC3000
pDriverGlobals->eth.EbootMagicNum= 0x45424F54
pDriverGlobals->eth.etherEnabled= 0x0
pDriverGlobals->eth.etherFlags= 0x0
pDriverGlobals->eth.TargetAddr.dwIP= 0x508412AC
pDriverGlobals->eth.TargetAddr.wMAC= 0xA7CC3910
pDriverGlobals->eth.TargetAddr.wPort= 0xD403
pDriverGlobals->eth.DownloadHostAddr.dwIP= 0x5B8412AC
pDriverGlobals->eth.DownloadHostAddr.wMAC= 0xA7CC3920
pDriverGlobals->eth.DownloadHostAddr.wPort= 0x6804
pDriverGlobals->eth.DbgHostAddr.dwIP= 0x0
pDriverGlobals->eth.DbgHostAddr.wMAC= 0xA7CC392C
pDriverGlobals->eth.DbgHostAddr.wPort= 0x0
pDriverGlobals->eth.KdbgHostAddr.dwIP= 0x0
pDriverGlobals->eth.KdbgHostAddr.wMAC= 0xA7CC3938
pDriverGlobals->eth.KdbgHostAddr.wPort= 0x0
pDriverGlobals->eth.PpshHostAddr.dwIP= 0x0
pDriverGlobals->eth.PpshHostAddr.wMAC= 0xA7CC3944
pDriverGlobals->eth.PpshHostAddr.wPort= 0x0
pDriverGlobals->eth.SubnetMask= 0xC0FFFFFF
pDriverGlobals->eth.DHCPLeaseTime= 0x0
pDriverGlobals->eth.EdbgFlags= 0x1
OEMether IP Addr: 172.18.132.80
OEMether IP netmask: 255.255.255.192
(D)(OEMEthInit) SysIntrVal = EDBG_SYSINTR_NOINTR
(D) After OEMEthInit
Device XSBase25521862, IP 172.18.132.80, Port 981
(D) Before KitlEtherInit
Calling EdbgInitDHCP
(D) After KitlEtherInit
-OEMKitlInit
Host connected
Host IP: 172.18.132.91, port 1124
KeyIndex 0 = -1
KeyIndex 1 = -1
KeyIndex 2 = -1
KeyIndex 3 = -1
KeyIndex 4 = -1
KeyIndex 5 = -4194305
KeyIndex 6 = -4194305
KeyIndex 7 = -1
+KITLRegisterDfltClient, service:0
+KITLRegisterDfltClient, service:1
KITLGlobalState == 0x61
KITL Initialized
Waiting for service 'DBGMSG' to connect..., fUseSysCalls = 0
ProcessAdminMsg: Receive Config message for service DBGMSG
ProcessAdminMsg: Receive Config message for service PPSH
ProcessAdminMsg: Receive Config message for service DBGMSG
ProcessAdminMsg: Receive Config message for service DBGMSG
ProcessAdminMsg: Receive Config message for service PPSH
ProcessAdminMsg: Receive Config message for service DBGMSG
ARMInit done.
+KITLRegisterDfltClient, service:2
ProcessAdminMsg: Receive Config message for service KDBG
ProcessAdminMsg: Receive Config message for service KDBG
KITL: Leaving polling mode...
KITL Checking client registrations
+RegisterClientPart2: Id 0x00000000
KITL Timer thread started, (hTh: 0x07CB4FDE, pTh: 0x87C80000)
-RegisterClientPart2
+RegisterClientPart2: Id 0x00000001
-RegisterClientPart2
looking forward to your suggestions,I was a bit confused now..
thank u very much.