BOOTING SDI WITH SYSLINUX
WinXPTalk.com Forum Index WinXPTalk.com
Forums for Windows XP users.
 
 FAQFAQ   MemberlistMemberlist     RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 
 
Google
 
Web winxptalk.com
BOOTING SDI WITH SYSLINUX
Goto page Previous  1, 2, 3
 
Post new topic   Reply to topic    WinXPTalk.com Forum Index -> Embedded System
Author Message
Slobodan Brcin (eMVP)
Guest





Posted: Fri Dec 31, 2004 2:37 pm    Post subject: Re: BOOTING SDI WITH SYSLINUX Reply with quote

Rémi,

You are not using startrom, right?

I have never analyzed how it is implemented, could you provide us with info about your replacement?
I guess that startrom and your patch depend on some mem addresses that are only present in Y2002 ntldr version.

Regards,
Slobodan



"Rémi Lefèvre" <RLefevre@gmail.com> wrote in message news:pan.2004.12.31.09.33.02.875775@gmail.com...
Quote:
Slobodan, Konstantin, anyone...

Have you an idea why the loader only works with this
version of NTLDR (34400h size) ?
Are you aware of any behaviour difference between the versions ?

I really don't see why it only works with this one; particularly, it
should work with the later versions released with XPe (SP2 and sooner).

Rémi


On Thu, 30 Dec 2004 14:07:55 -0500, Dietmar wrote:

Hi Konstantin

thank you for the link.
I dont know whether it is the same ntldr, as I used.
I will prove this whether that one works also with SDI.

Now I gave you the exact description of what ntldr you must use for SDI
with Syslinux. (I have no company)

startrom.com in the same directory as ntldr SEEMS to be ever the same.

ONLY that ntldr works for me:

Windows Embedded SP1 Version 5.1.2600.1106
with ntldr 214016 Byte (34400h)
build 4.September 2002 16:01:46
xpsp1.020828-1920

in directoty C:\...\Windows Embedded\Remote Boot Service\Downloads\ntldr.

I tried so much ntldr's, but that from Saad Syed
I cant found.

Good luck
Dietmar
Back to top
Rémi Lefèvre
Guest





Posted: Fri Dec 31, 2004 3:16 pm    Post subject: Re: BOOTING SDI WITH SYSLINUX Reply with quote

On Fri, 31 Dec 2004 10:37:18 +0100, Slobodan Brcin (eMVP) wrote:

I use the "standard" Saad Syed method.
startrom.com and NTLDR are included in the SDI file. I copy the boot blob
(startrom.com) at 7C00h and call it with the address of the SDI bitwise
ORed with 041h in registers.

Rémi

P.S: perhaps there is a way to call directly NTLDR ?

Quote:
Rémi,

You are not using startrom, right?

I have never analyzed how it is implemented, could you provide us with info about your replacement?
I guess that startrom and your patch depend on some mem addresses that are only present in Y2002 ntldr version.

Regards,
Slobodan



"Rémi Lefèvre" <RLefevre@gmail.com> wrote in message news:pan.2004.12.31.09.33.02.875775@gmail.com...
Slobodan, Konstantin, anyone...

Have you an idea why the loader only works with this
version of NTLDR (34400h size) ?
Are you aware of any behaviour difference between the versions ?

I really don't see why it only works with this one; particularly, it
should work with the later versions released with XPe (SP2 and sooner).

Rémi


On Thu, 30 Dec 2004 14:07:55 -0500, Dietmar wrote:

Hi Konstantin

thank you for the link.
I dont know whether it is the same ntldr, as I used.
I will prove this whether that one works also with SDI.

Now I gave you the exact description of what ntldr you must use for SDI
with Syslinux. (I have no company)

startrom.com in the same directory as ntldr SEEMS to be ever the same.

ONLY that ntldr works for me:

Windows Embedded SP1 Version 5.1.2600.1106
with ntldr 214016 Byte (34400h)
build 4.September 2002 16:01:46
xpsp1.020828-1920

in directoty C:\...\Windows Embedded\Remote Boot Service\Downloads\ntldr.

I tried so much ntldr's, but that from Saad Syed
I cant found.

Good luck
Dietmar
Back to top
Slobodan Brcin (eMVP)
Guest





Posted: Fri Dec 31, 2004 3:51 pm    Post subject: Re: BOOTING SDI WITH SYSLINUX Reply with quote

Rémi,

I was under impression that you do not use startrom. If you use startrom then you are have two possible choices.
1. That your loader make havoc in processor tables during the protected/user mode switches. That work for some strange case with
original version.
2. That startrom is written in a way that it will jump into certain offset into ntldr.

In second case you can't do anything except to write your own startrom, which I thought that you did.

Now I'm even more interested in reasons why you used syslinux since I do not see reason for it. (Perhaps only better network
support?)

If only reason was that you need to copy data to high memory (>1MB) then there is BIOS call that do exactly that.
If will handle all nasty transitions to protected mode and back, and as long as you are concerned your program will always stay in
user-mode and when you load your image you just do jump to startrom as you described.

You can find source code for loader that fit in MBR area and that can load and execute XPe boot from local storage mediums.

Regards,
Slobodan

"Rémi Lefèvre" <RLefevre@gmail.com> wrote in message news:pan.2004.12.31.10.16.44.823936@gmail.com...
Quote:
On Fri, 31 Dec 2004 10:37:18 +0100, Slobodan Brcin (eMVP) wrote:

I use the "standard" Saad Syed method.
startrom.com and NTLDR are included in the SDI file. I copy the boot blob
(startrom.com) at 7C00h and call it with the address of the SDI bitwise
ORed with 041h in registers.

Rémi

P.S: perhaps there is a way to call directly NTLDR ?

Rémi,

You are not using startrom, right?

I have never analyzed how it is implemented, could you provide us with info about your replacement?
I guess that startrom and your patch depend on some mem addresses that are only present in Y2002 ntldr version.

Regards,
Slobodan



"Rémi Lefèvre" <RLefevre@gmail.com> wrote in message news:pan.2004.12.31.09.33.02.875775@gmail.com...
Slobodan, Konstantin, anyone...

Have you an idea why the loader only works with this
version of NTLDR (34400h size) ?
Are you aware of any behaviour difference between the versions ?

I really don't see why it only works with this one; particularly, it
should work with the later versions released with XPe (SP2 and sooner).

Rémi


On Thu, 30 Dec 2004 14:07:55 -0500, Dietmar wrote:

Hi Konstantin

thank you for the link.
I dont know whether it is the same ntldr, as I used.
I will prove this whether that one works also with SDI.

Now I gave you the exact description of what ntldr you must use for SDI
with Syslinux. (I have no company)

startrom.com in the same directory as ntldr SEEMS to be ever the same.

ONLY that ntldr works for me:

Windows Embedded SP1 Version 5.1.2600.1106
with ntldr 214016 Byte (34400h)
build 4.September 2002 16:01:46
xpsp1.020828-1920

in directoty C:\...\Windows Embedded\Remote Boot Service\Downloads\ntldr.

I tried so much ntldr's, but that from Saad Syed
I cant found.

Good luck
Dietmar

Back to top
Rémi Lefèvre
Guest





Posted: Fri Dec 31, 2004 4:53 pm    Post subject: Re: BOOTING SDI WITH SYSLINUX Reply with quote

Slobodan,

On Fri, 31 Dec 2004 11:51:23 +0100, Slobodan Brcin (eMVP) wrote:

Quote:
Rémi,

I was under impression that you do not use startrom. If you use startrom then you are have two possible choices.
1. That your loader make havoc in processor tables during the protected/user mode switches. That work for some strange case with
original version.

I'm not sure about that. I replaced at a moment the protected/user mode
switch by a BIOS call and had the same behaviour. It's strange.

Quote:
2. That startrom is written in a way that it will jump into certain offset into ntldr.

What exactly startrom is doing ? Do you know a documentation that would
permit me to write my own startrom ? What would be the benefits ?

Quote:

In second case you can't do anything except to write your own startrom, which I thought that you did.

Now I'm even more interested in reasons why you used syslinux since I do not see reason for it. (Perhaps only better network
support?)


Like I said earlier, loading time is important to me. I get significant
improvements with my loader but my initial aim was to use UDP
fragmentation to transfer the image. However almost all PXE
implementations in network cards are broken and don't handle correctly
fragmented packets. The only (and not really real) working one I found
is the VMware virtual card vmxnet (about 15 seconds to
load a 200 MB image with 65K packets).

Others reasons are custom messages during image loading and the need to be
able to load different SDI files depending of the subnetwork.

More generally, controlling both the client and the server side of the
loading may be useful.

Quote:
If only reason was that you need to copy data to high memory (>1MB) then there is BIOS call that do exactly that.
If will handle all nasty transitions to protected mode and back, and as long as you are concerned your program will always stay in
user-mode and when you load your image you just do jump to startrom as you described.

You can find source code for loader that fit in MBR area and that can load and execute XPe boot from local storage mediums.

I think I saw this loader. However it seemed to me that it also uses
startrom, am I wrong ?

regards,

Rémi

Quote:

Regards,
Slobodan

"Rémi Lefèvre" <RLefevre@gmail.com> wrote in message news:pan.2004.12.31.10.16.44.823936@gmail.com...
On Fri, 31 Dec 2004 10:37:18 +0100, Slobodan Brcin (eMVP) wrote:

I use the "standard" Saad Syed method.
startrom.com and NTLDR are included in the SDI file. I copy the boot blob
(startrom.com) at 7C00h and call it with the address of the SDI bitwise
ORed with 041h in registers.

Rémi

P.S: perhaps there is a way to call directly NTLDR ?

Rémi,

You are not using startrom, right?

I have never analyzed how it is implemented, could you provide us with info about your replacement?
I guess that startrom and your patch depend on some mem addresses that are only present in Y2002 ntldr version.

Regards,
Slobodan



"Rémi Lefèvre" <RLefevre@gmail.com> wrote in message news:pan.2004.12.31.09.33.02.875775@gmail.com...
Slobodan, Konstantin, anyone...

Have you an idea why the loader only works with this
version of NTLDR (34400h size) ?
Are you aware of any behaviour difference between the versions ?

I really don't see why it only works with this one; particularly, it
should work with the later versions released with XPe (SP2 and sooner).

Rémi


On Thu, 30 Dec 2004 14:07:55 -0500, Dietmar wrote:

Hi Konstantin

thank you for the link.
I dont know whether it is the same ntldr, as I used.
I will prove this whether that one works also with SDI.

Now I gave you the exact description of what ntldr you must use for SDI
with Syslinux. (I have no company)

startrom.com in the same directory as ntldr SEEMS to be ever the same.

ONLY that ntldr works for me:

Windows Embedded SP1 Version 5.1.2600.1106
with ntldr 214016 Byte (34400h)
build 4.September 2002 16:01:46
xpsp1.020828-1920

in directoty C:\...\Windows Embedded\Remote Boot Service\Downloads\ntldr.

I tried so much ntldr's, but that from Saad Syed
I cant found.

Good luck
Dietmar

Back to top
Slobodan Brcin (eMVP)
Guest





Posted: Fri Dec 31, 2004 5:05 pm    Post subject: Re: BOOTING SDI WITH SYSLINUX Reply with quote

Rémi,

I'm using startrom and I do not have any documentation on its implementation.

I just thought that you have disassembled it and made similar replica by yourself.

Regarding the network boot using syslinux make sense.

Regards,
Slobodan

"Rémi Lefèvre" <RLefevre@gmail.com> wrote in message news:pan.2004.12.31.11.53.15.335108@gmail.com...
Quote:
Slobodan,

On Fri, 31 Dec 2004 11:51:23 +0100, Slobodan Brcin (eMVP) wrote:

Rémi,

I was under impression that you do not use startrom. If you use startrom then you are have two possible choices.
1. That your loader make havoc in processor tables during the protected/user mode switches. That work for some strange case with
original version.

I'm not sure about that. I replaced at a moment the protected/user mode
switch by a BIOS call and had the same behaviour. It's strange.

2. That startrom is written in a way that it will jump into certain offset into ntldr.

What exactly startrom is doing ? Do you know a documentation that would
permit me to write my own startrom ? What would be the benefits ?


In second case you can't do anything except to write your own startrom, which I thought that you did.

Now I'm even more interested in reasons why you used syslinux since I do not see reason for it. (Perhaps only better network
support?)


Like I said earlier, loading time is important to me. I get significant
improvements with my loader but my initial aim was to use UDP
fragmentation to transfer the image. However almost all PXE
implementations in network cards are broken and don't handle correctly
fragmented packets. The only (and not really real) working one I found
is the VMware virtual card vmxnet (about 15 seconds to
load a 200 MB image with 65K packets).

Others reasons are custom messages during image loading and the need to be
able to load different SDI files depending of the subnetwork.

More generally, controlling both the client and the server side of the
loading may be useful.

If only reason was that you need to copy data to high memory (>1MB) then there is BIOS call that do exactly that.
If will handle all nasty transitions to protected mode and back, and as long as you are concerned your program will always stay
in
user-mode and when you load your image you just do jump to startrom as you described.

You can find source code for loader that fit in MBR area and that can load and execute XPe boot from local storage mediums.

I think I saw this loader. However it seemed to me that it also uses
startrom, am I wrong ?

regards,

Rémi


Regards,
Slobodan

"Rémi Lefèvre" <RLefevre@gmail.com> wrote in message news:pan.2004.12.31.10.16.44.823936@gmail.com...
On Fri, 31 Dec 2004 10:37:18 +0100, Slobodan Brcin (eMVP) wrote:

I use the "standard" Saad Syed method.
startrom.com and NTLDR are included in the SDI file. I copy the boot blob
(startrom.com) at 7C00h and call it with the address of the SDI bitwise
ORed with 041h in registers.

Rémi

P.S: perhaps there is a way to call directly NTLDR ?

Rémi,

You are not using startrom, right?

I have never analyzed how it is implemented, could you provide us with info about your replacement?
I guess that startrom and your patch depend on some mem addresses that are only present in Y2002 ntldr version.

Regards,
Slobodan



"Rémi Lefèvre" <RLefevre@gmail.com> wrote in message news:pan.2004.12.31.09.33.02.875775@gmail.com...
Slobodan, Konstantin, anyone...

Have you an idea why the loader only works with this
version of NTLDR (34400h size) ?
Are you aware of any behaviour difference between the versions ?

I really don't see why it only works with this one; particularly, it
should work with the later versions released with XPe (SP2 and sooner).

Rémi


On Thu, 30 Dec 2004 14:07:55 -0500, Dietmar wrote:

Hi Konstantin

thank you for the link.
I dont know whether it is the same ntldr, as I used.
I will prove this whether that one works also with SDI.

Now I gave you the exact description of what ntldr you must use for SDI
with Syslinux. (I have no company)

startrom.com in the same directory as ntldr SEEMS to be ever the same.

ONLY that ntldr works for me:

Windows Embedded SP1 Version 5.1.2600.1106
with ntldr 214016 Byte (34400h)
build 4.September 2002 16:01:46
xpsp1.020828-1920

in directoty C:\...\Windows Embedded\Remote Boot Service\Downloads\ntldr.

I tried so much ntldr's, but that from Saad Syed
I cant found.

Good luck
Dietmar


Back to top
KM
Guest





Posted: Fri Dec 31, 2004 10:54 pm    Post subject: Re: BOOTING SDI WITH SYSLINUX Reply with quote

I basically did similar. Just disassembled startrom.com (n12) and analyzed the code a little bit. It is fairly simple code that
leverages PXE (NetPC ROM) BIOS APIs (and there is existing specification docs on it), TFTP download (through PXE) and check on
ntldr.

I had failed to find any docs on the startrom.*.

Konstantin

Quote:
Rémi,

I'm using startrom and I do not have any documentation on its implementation.

I just thought that you have disassembled it and made similar replica by yourself.

Regarding the network boot using syslinux make sense.

Regards,
Slobodan

"Rémi Lefèvre" <RLefevre@gmail.com> wrote in message news:pan.2004.12.31.11.53.15.335108@gmail.com...
Slobodan,

On Fri, 31 Dec 2004 11:51:23 +0100, Slobodan Brcin (eMVP) wrote:

Rémi,

I was under impression that you do not use startrom. If you use startrom then you are have two possible choices.
1. That your loader make havoc in processor tables during the protected/user mode switches. That work for some strange case
with
original version.

I'm not sure about that. I replaced at a moment the protected/user mode
switch by a BIOS call and had the same behaviour. It's strange.

2. That startrom is written in a way that it will jump into certain offset into ntldr.

What exactly startrom is doing ? Do you know a documentation that would
permit me to write my own startrom ? What would be the benefits ?


In second case you can't do anything except to write your own startrom, which I thought that you did.

Now I'm even more interested in reasons why you used syslinux since I do not see reason for it. (Perhaps only better network
support?)


Like I said earlier, loading time is important to me. I get significant
improvements with my loader but my initial aim was to use UDP
fragmentation to transfer the image. However almost all PXE
implementations in network cards are broken and don't handle correctly
fragmented packets. The only (and not really real) working one I found
is the VMware virtual card vmxnet (about 15 seconds to
load a 200 MB image with 65K packets).

Others reasons are custom messages during image loading and the need to be
able to load different SDI files depending of the subnetwork.

More generally, controlling both the client and the server side of the
loading may be useful.

If only reason was that you need to copy data to high memory (>1MB) then there is BIOS call that do exactly that.
If will handle all nasty transitions to protected mode and back, and as long as you are concerned your program will always stay
in
user-mode and when you load your image you just do jump to startrom as you described.

You can find source code for loader that fit in MBR area and that can load and execute XPe boot from local storage mediums.

I think I saw this loader. However it seemed to me that it also uses
startrom, am I wrong ?

regards,

Rémi


Regards,
Slobodan

"Rémi Lefèvre" <RLefevre@gmail.com> wrote in message news:pan.2004.12.31.10.16.44.823936@gmail.com...
On Fri, 31 Dec 2004 10:37:18 +0100, Slobodan Brcin (eMVP) wrote:

I use the "standard" Saad Syed method.
startrom.com and NTLDR are included in the SDI file. I copy the boot blob
(startrom.com) at 7C00h and call it with the address of the SDI bitwise
ORed with 041h in registers.

Rémi

P.S: perhaps there is a way to call directly NTLDR ?

Rémi,

You are not using startrom, right?

I have never analyzed how it is implemented, could you provide us with info about your replacement?
I guess that startrom and your patch depend on some mem addresses that are only present in Y2002 ntldr version.

Regards,
Slobodan



"Rémi Lefèvre" <RLefevre@gmail.com> wrote in message news:pan.2004.12.31.09.33.02.875775@gmail.com...
Slobodan, Konstantin, anyone...

Have you an idea why the loader only works with this
version of NTLDR (34400h size) ?
Are you aware of any behaviour difference between the versions ?

I really don't see why it only works with this one; particularly, it
should work with the later versions released with XPe (SP2 and sooner).

Rémi


On Thu, 30 Dec 2004 14:07:55 -0500, Dietmar wrote:

Hi Konstantin

thank you for the link.
I dont know whether it is the same ntldr, as I used.
I will prove this whether that one works also with SDI.

Now I gave you the exact description of what ntldr you must use for SDI
with Syslinux. (I have no company)

startrom.com in the same directory as ntldr SEEMS to be ever the same.

ONLY that ntldr works for me:

Windows Embedded SP1 Version 5.1.2600.1106
with ntldr 214016 Byte (34400h)
build 4.September 2002 16:01:46
xpsp1.020828-1920

in directoty C:\...\Windows Embedded\Remote Boot Service\Downloads\ntldr.

I tried so much ntldr's, but that from Saad Syed
I cant found.

Good luck
Dietmar




Back to top
Rémi Lefèvre
Guest





Posted: Tue Jan 04, 2005 12:59 am    Post subject: Re: BOOTING SDI WITH SYSLINUX Reply with quote

Hi Konstantin,

So because I do in my loader the tftp transfer (with PXE API), perhaps I
could call NTLDR directly ? Do you know if it is called in real or
protected mode and what parameters (processor registers) are passed to it
? I don't have a Windows binaries disassembler at my disposition at the
moment.

Perhaps there are differences in the way to call NTLDR between the
versions that work and the ones that don't...

Cordially,

Rémi

On Fri, 31 Dec 2004 09:54:01 -0800, KM wrote:

Quote:

I basically did similar. Just disassembled startrom.com (n12) and analyzed the code a little bit. It is fairly simple code that
leverages PXE (NetPC ROM) BIOS APIs (and there is existing specification docs on it), TFTP download (through PXE) and check on
ntldr.

I had failed to find any docs on the startrom.*.

Konstantin

Rémi,

I'm using startrom and I do not have any documentation on its implementation.

I just thought that you have disassembled it and made similar replica by yourself.

Regarding the network boot using syslinux make sense.

Regards,
Slobodan

"Rémi Lefèvre" <RLefevre@gmail.com> wrote in message news:pan.2004.12.31.11.53.15.335108@gmail.com...
Slobodan,

On Fri, 31 Dec 2004 11:51:23 +0100, Slobodan Brcin (eMVP) wrote:

Rémi,

I was under impression that you do not use startrom. If you use startrom then you are have two possible choices.
1. That your loader make havoc in processor tables during the protected/user mode switches. That work for some strange case
with
original version.

I'm not sure about that. I replaced at a moment the protected/user mode
switch by a BIOS call and had the same behaviour. It's strange.

2. That startrom is written in a way that it will jump into certain offset into ntldr.

What exactly startrom is doing ? Do you know a documentation that would
permit me to write my own startrom ? What would be the benefits ?


In second case you can't do anything except to write your own startrom, which I thought that you did.

Now I'm even more interested in reasons why you used syslinux since I do not see reason for it. (Perhaps only better network
support?)


Like I said earlier, loading time is important to me. I get significant
improvements with my loader but my initial aim was to use UDP
fragmentation to transfer the image. However almost all PXE
implementations in network cards are broken and don't handle correctly
fragmented packets. The only (and not really real) working one I found
is the VMware virtual card vmxnet (about 15 seconds to
load a 200 MB image with 65K packets).

Others reasons are custom messages during image loading and the need to be
able to load different SDI files depending of the subnetwork.

More generally, controlling both the client and the server side of the
loading may be useful.

If only reason was that you need to copy data to high memory (>1MB) then there is BIOS call that do exactly that.
If will handle all nasty transitions to protected mode and back, and as long as you are concerned your program will always stay
in
user-mode and when you load your image you just do jump to startrom as you described.

You can find source code for loader that fit in MBR area and that can load and execute XPe boot from local storage mediums.

I think I saw this loader. However it seemed to me that it also uses
startrom, am I wrong ?

regards,

Rémi


Regards,
Slobodan

"Rémi Lefèvre" <RLefevre@gmail.com> wrote in message news:pan.2004.12.31.10.16.44.823936@gmail.com...
On Fri, 31 Dec 2004 10:37:18 +0100, Slobodan Brcin (eMVP) wrote:

I use the "standard" Saad Syed method.
startrom.com and NTLDR are included in the SDI file. I copy the boot blob
(startrom.com) at 7C00h and call it with the address of the SDI bitwise
ORed with 041h in registers.

Rémi

P.S: perhaps there is a way to call directly NTLDR ?

Rémi,

You are not using startrom, right?

I have never analyzed how it is implemented, could you provide us with info about your replacement?
I guess that startrom and your patch depend on some mem addresses that are only present in Y2002 ntldr version.

Regards,
Slobodan



"Rémi Lefèvre" <RLefevre@gmail.com> wrote in message news:pan.2004.12.31.09.33.02.875775@gmail.com...
Slobodan, Konstantin, anyone...

Have you an idea why the loader only works with this
version of NTLDR (34400h size) ?
Are you aware of any behaviour difference between the versions ?

I really don't see why it only works with this one; particularly, it
should work with the later versions released with XPe (SP2 and sooner).

Rémi


On Thu, 30 Dec 2004 14:07:55 -0500, Dietmar wrote:

Hi Konstantin

thank you for the link.
I dont know whether it is the same ntldr, as I used.
I will prove this whether that one works also with SDI.

Now I gave you the exact description of what ntldr you must use for SDI
with Syslinux. (I have no company)

startrom.com in the same directory as ntldr SEEMS to be ever the same.

ONLY that ntldr works for me:

Windows Embedded SP1 Version 5.1.2600.1106
with ntldr 214016 Byte (34400h)
build 4.September 2002 16:01:46
xpsp1.020828-1920

in directoty C:\...\Windows Embedded\Remote Boot Service\Downloads\ntldr.

I tried so much ntldr's, but that from Saad Syed
I cant found.

Good luck
Dietmar




Back to top
KM
Guest





Posted: Tue Jan 04, 2005 7:19 am    Post subject: Re: BOOTING SDI WITH SYSLINUX Reply with quote

Rémi,

I don't have that dissembled code in front of me now so I can't send you the exact answers.

When I have a little bit more free time, I will go though the code again and let you know if I can easy extract the information you
need.

IIRC, there was no switch from real to protected mode in the dissembled code.
Also, I don't recall I could find out how they jump to ntldr but I might have not spent enough time reviewing the code that time.
But I saw PXE calls, I think.

--
Regards,
Konstantin


Quote:
Hi Konstantin,

So because I do in my loader the tftp transfer (with PXE API), perhaps I
could call NTLDR directly ? Do you know if it is called in real or
protected mode and what parameters (processor registers) are passed to it
? I don't have a Windows binaries disassembler at my disposition at the
moment.

Perhaps there are differences in the way to call NTLDR between the
versions that work and the ones that don't...

Cordially,

Rémi

On Fri, 31 Dec 2004 09:54:01 -0800, KM wrote:


I basically did similar. Just disassembled startrom.com (n12) and analyzed the code a little bit. It is fairly simple code that
leverages PXE (NetPC ROM) BIOS APIs (and there is existing specification docs on it), TFTP download (through PXE) and check on
ntldr.

I had failed to find any docs on the startrom.*.

Konstantin

Rémi,

I'm using startrom and I do not have any documentation on its implementation.

I just thought that you have disassembled it and made similar replica by yourself.

Regarding the network boot using syslinux make sense.

Regards,
Slobodan

"Rémi Lefèvre" <RLefevre@gmail.com> wrote in message news:pan.2004.12.31.11.53.15.335108@gmail.com...
Slobodan,

On Fri, 31 Dec 2004 11:51:23 +0100, Slobodan Brcin (eMVP) wrote:

Rémi,

I was under impression that you do not use startrom. If you use startrom then you are have two possible choices.
1. That your loader make havoc in processor tables during the protected/user mode switches. That work for some strange case
with
original version.

I'm not sure about that. I replaced at a moment the protected/user mode
switch by a BIOS call and had the same behaviour. It's strange.

2. That startrom is written in a way that it will jump into certain offset into ntldr.

What exactly startrom is doing ? Do you know a documentation that would
permit me to write my own startrom ? What would be the benefits ?


In second case you can't do anything except to write your own startrom, which I thought that you did.

Now I'm even more interested in reasons why you used syslinux since I do not see reason for it. (Perhaps only better network
support?)


Like I said earlier, loading time is important to me. I get significant
improvements with my loader but my initial aim was to use UDP
fragmentation to transfer the image. However almost all PXE
implementations in network cards are broken and don't handle correctly
fragmented packets. The only (and not really real) working one I found
is the VMware virtual card vmxnet (about 15 seconds to
load a 200 MB image with 65K packets).

Others reasons are custom messages during image loading and the need to be
able to load different SDI files depending of the subnetwork.

More generally, controlling both the client and the server side of the
loading may be useful.

If only reason was that you need to copy data to high memory (>1MB) then there is BIOS call that do exactly that.
If will handle all nasty transitions to protected mode and back, and as long as you are concerned your program will always
stay
in
user-mode and when you load your image you just do jump to startrom as you described.

You can find source code for loader that fit in MBR area and that can load and execute XPe boot from local storage mediums.

I think I saw this loader. However it seemed to me that it also uses
startrom, am I wrong ?

regards,

Rémi


Regards,
Slobodan

"Rémi Lefèvre" <RLefevre@gmail.com> wrote in message news:pan.2004.12.31.10.16.44.823936@gmail.com...
On Fri, 31 Dec 2004 10:37:18 +0100, Slobodan Brcin (eMVP) wrote:

I use the "standard" Saad Syed method.
startrom.com and NTLDR are included in the SDI file. I copy the boot blob
(startrom.com) at 7C00h and call it with the address of the SDI bitwise
ORed with 041h in registers.

Rémi

P.S: perhaps there is a way to call directly NTLDR ?

Rémi,

You are not using startrom, right?

I have never analyzed how it is implemented, could you provide us with info about your replacement?
I guess that startrom and your patch depend on some mem addresses that are only present in Y2002 ntldr version.

Regards,
Slobodan



"Rémi Lefèvre" <RLefevre@gmail.com> wrote in message news:pan.2004.12.31.09.33.02.875775@gmail.com...
Slobodan, Konstantin, anyone...

Have you an idea why the loader only works with this
version of NTLDR (34400h size) ?
Are you aware of any behaviour difference between the versions ?

I really don't see why it only works with this one; particularly, it
should work with the later versions released with XPe (SP2 and sooner).

Rémi


On Thu, 30 Dec 2004 14:07:55 -0500, Dietmar wrote:

Hi Konstantin

thank you for the link.
I dont know whether it is the same ntldr, as I used.
I will prove this whether that one works also with SDI.

Now I gave you the exact description of what ntldr you must use for SDI
with Syslinux. (I have no company)

startrom.com in the same directory as ntldr SEEMS to be ever the same.

ONLY that ntldr works for me:

Windows Embedded SP1 Version 5.1.2600.1106
with ntldr 214016 Byte (34400h)
build 4.September 2002 16:01:46
xpsp1.020828-1920

in directoty C:\...\Windows Embedded\Remote Boot Service\Downloads\ntldr.

I tried so much ntldr's, but that from Saad Syed
I cant found.

Good luck
Dietmar





Back to top
 
Post new topic   Reply to topic    WinXPTalk.com Forum Index -> Embedded System All times are GMT
Goto page Previous  1, 2, 3
Page 3 of 3

 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Office Forums Access Forums Windows Server Exchange Server Help
New Topics Powered by phpBB