Re: WinCE boot from RAM with Lauterbach trace32



Hi: I have used Lauterbach Trace32 on a PXA270 + Windows CE 6.0.
I used this configuration (.cmm) file (obviously the virtual addresses are
specific to my image):

***************************************************************

System.Down ; reset debugger settings

TASK.RESet

Break.Delete

MAP.RESet

sYmbol.RESet

MMU.RESet

GROUP.RESet

SYStem.Down

SYStem.CPU PXA270 ; select our
target CPU

SYStem.Option Wait``Reset ON ; Wait at least 1
sec after the deassertion of nRESET and nRESET before the first JTAG
activity

SYStem.Option Dyn``Vector ON ; WinCE reprograms
vector table

Tr``Onchip.Set DABORT OFF ; used by wince for
page miss!

Tr``Onchip.Set PABORT OFF ; used by wince for
page miss!

Tr``Onchip.Set UNDEF OFF ; used to detect not
present FPU

SYStem.Option MMU ON ; enable space ids
to virtual addresses

SYStem.Up ;
Reset the CPU and break at 0x0

SETUP.IMASKASM ON ; block interrupts
on assembler steps

SETUP.IMASKHLL OFF ; allow interrupts
on HLL steps

MAP.BOnchip 0--0x7FFFFFF ; tell T32 that we
have 128MB of flash

Data.LOAD.EXE nk.exe /nocode /reloc .text at 0x80101000 ; load OAL
debug symbols at correct virtual addresses

Go 0x3059F8 ; run until OALStartUp has copied the image in RAM
(cfr. %_WINCEROOT%\PLATFORM\WL1100\src\oal\oallib\startup.s, cfr. nk.map)

Wait !run() ; wait until we break at previous address

;break just after MMU init (cfr.
%_WINCEROOT%\PRIVATE\WINCEOS\COREOS\NK\LDR\ARM\armstart.s, cfr. nk.map)

Break.Set 0xA0105CA0

go

Wait !run() ;
wait until we break at previous address

Step.Single ;
from this point we use virtual addresses

MMU.COMMON 0x8000000--0xffffffff ; turn on MMU translation

MMU:ON

Go

; wait a couple of seconds, until OS boots

&count=5.

while &count!=0
(
wait 1.s
print &count
&count=&count-1
)

Break

SYStem.Option Dyn``Vector OFF ; no longer needed, run faster if
OFF

Go

***************************************************************

HTH

--

Luca Calligaris (MVP-Windows Embedded)
l.calligaris.nospam@xxxxxxxxxxxxxxxxxx
www.eurotech.it

"Prabhat" <Prabhat@xxxxxxxxxxxxxxxxxxxxxxxxx> ha scritto nel messaggio
news:3248D8BF-6FB4-4A9A-8DCB-7A04014030B6@xxxxxxxxxxxxxxxx
Hello All

The problem to boot eboot and WinCE6.0 from RAM using Lauterbach Trace32
has
been solved by disabling watchdog timer at primary boot loader (xldr).
The boot ROM of CPU is enabling watchdog timer to perform cpu bootpin scan
and perform the boot operation as per boot pin configuration like boot
form
USB,Eth,NAND flash, and SD card. So the disable watchdog will be the first
task need to perform by xldr (primery boot loader) before performing any
other operation.

But as we are loading primary boot loader (xldr) at internal CPU SRAM
thought trace32 we need to manually enable watchdog timer functional and
interface clock to allow access watchdog registers.

Hope this will help in booting eboot and WinCE6.0 from RAM using trace32
or
any other Jtag.

Thanks,
Prabhat Shrivastav



"Prabhat" wrote:

Thanks for your reply.
No my OS resides at 0x80001000 (RAM). Actually my boot sequence is like
i
am using CPU rom code which shall be responsible to load xldr(primary
boot
loader) to CPU internal sram from NAND and executes. The xldr shall
initialize the peripheral clocks and DDRAM and copy the eboot(secondary
bootloader) to RAM from NAND and executes. And eboot shall be responsible
to
load and executs the CE image to RAM from NAND flash. With the above
sequence
every thing is working fine without any problem.

But i dont want anything to load from NAND flash or from any non volatile
memory, So using Lauterbach trace32 i have loaded xldr at internal SRAM ,
eboot and WinCE at RAM. as i mention in my previous mail.

Here at eboot the 0x00000000 might be showing since i have removed NAND
copy
and other NAND related code from eboot to make it work independent to
NAND
flash.
Is we can run WinCE from RAM without eboot or bootloader, if possible
please
let me know how to do that.
please suggest.

Thanks,
Prabhat Shrivastav



"Bruce Eitman [eMVP]" wrote:

Is your OS at address 0x00000000? If it is, is it actually set up to
be at
that address in config.bib?

--
Bruce Eitman (eMVP)
Senior Engineer
Bruce.Eitman AT EuroTech DOT com
My BLOG http://geekswithblogs.net/bruceeitman

EuroTech Inc.
www.EuroTech.com

"Prabhat" <Prabhat@xxxxxxxxxxxxxxxxxxxxxxxxx> wrote in message
news:F7DAAAC6-0EC0-4C43-B3D0-A936FDC3134C@xxxxxxxxxxxxxxxx
Hello All,

I tried to run WinCE OS image from RAM using Lauterbach trace32 with
following steps
1) Initialized the target board RAM using trace32 script
2) Loaded eboot.nbo into RAM (Since CE have eboot which shall load
the CE
image from non volatile memory so I have modified the eboot OEM code
such
that it
should not try to create partition or tries to copy from non volatile
memory)
and i am successfully able to bring the boot-loader up from RAM.
3) run eboot and got the proper prints on serial console;
print appears at the end of console is "Launch Windows CE image by
jumping
to 0x00000000" .
4) Loaded nk.bin (kitl was disable) and run; but it's stuck and
generate
cpu
exception. Not even got any OC debug prints on serial console.

I am unable to find the cause of this. My point here is- i tried to
run OS
image without bootloader also, but it was not worked and so tried
with
bootloader with the assumption that CE excepting some boot argument
at
boot
time.
But as I mention above bootloader code is for Nand flash so i
modified the
portion of OEM boot code to not to look for Nand flash for copying OS
image
and creating partition.

Can anyone please suggest or give some direction to solve this
problem?
Thanks in advance
Prabhat Shrivastav
India





.



Relevant Pages