SDI boot from RAM

G

Guest

Hello Guys!

I need to boot a SDI image from RAMDISK after loaded into extended memory.
My target system has 256 MB of RAM and the SDI image is 128 MB large.
I write a small piece of code in assembler language to load the SDI image over
64 MB in RAM and, as described in the article "RAM Boot Using SDI in
Windows XP
Embedded with Service Pack 1", I loaded the BOOT code at 0000:7C000 address.

The BOOT code load the NTLDR correctly but the system hang-up after the
execution
start ad NTLDR. It is not possible to discover why because is very hard to
debug the
system in this state. What is happened? The documentation is not complete
for this case
or I have mistake anything?

Please help me!

Thanks a lot,

Paolo


--

--------------------------------------------------------------------------------

Ing. Paolo Margari, PHD
Research & Development Deputy Director

Studio di Informatica
via L. Sanfelice, 25
I-50133 Firenze - Italy

Tel. +39 055 561420
Fax +39 055 81131184
mobile +39 335 6122211

e-mail: (e-mail address removed)
(e-mail address removed)

----------------------------------
Privacy and Confidentiality Notice:
The information contained in this electronic mail message is intended for
the named recipient(s) only. It may contain privileged and confidential
information. If you are not an intended recipient, you must not copy,
forward, distribute or take any action in reliance on it. If you have
received this electronic mail message in error, please notify the sender
immediately.
----------------------------------
 
S

Slobodan Brcin \(eMVP\)

Hi Paolo,

1. 0000:7C000? Shouldn't it be 0000:7C00?
2. Load SDI file at offset above at least 4MB (lowest safe value is not documented). If you don't do that ntldr will damage SDI file
data in memory.
3. You must read again: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnxpesp1/html/ram_sdi.asp

If there are still problems:
4. Modify boot.ini to contain two same entries and change timeout value so you can determine if at least boot.ini is loaded.

Best regards,
Slobodan
 
G

Guest

Hi Slobodan,

thanks for your answer but the problem still again!
I have implemented correctly the address of boot code at 0000:7C00: I wrote
bad in my last message!

The NTLDR is relocated correctly at 0x400000 and the SDI image is located at
0x04000000 (64 MB) but the system is not working yet! After the execution
start
at NTLDR, a black screen appear without display the progress bar.

Please, have you any new suggest?

Thanks in advance,

Paolo
 
S

Slobodan Brcin \(eMVP\)

Hi Paolo,

Have you XOR-ed SDI address in memory before the jump?

Regards,
Slobodan
 
G

Guest

Hi Slobodan,

I have only OR-ed the DL register with 41h value, as the article says,
before to jump in STARTROM.COM.

What means "XOR-ed SDI address in memory"? In the article I don't find that.
Please explain me the correct procedure before to jump STARTROM.COM.

Thanks a lot,

Paolo
 
S

Slobodan Brcin \(eMVP\)

Hi Paolo,
6. The boot code switches to real mode, sets EDX = physical address of SDI bitwise ORed with 041h.
I meant this. Not XOR, although it would give same result.

I don't know that to say to you.

There is and working ASM source in this NG posted by me that I use to RAM boot XPe from special area of CD.
You can see from there if you are missing something.

Anyhow, you can usually have only two problems. Either you load SDI at too low offset in memory. Or you did not loaded SDI file
correctly.

Read this two threads:
http://groups.google.com/groups?hl=...=1&selm=uQlE#[email protected]
http://groups.google.com/groups?hl=...=1&[email protected]


Also can you tell me about the source medium that you try to boot from?
There might be an alternative.

Best regards,
Slobodan
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top