Re: [Etherboot-developers] Comboot - Local Boot Support

"Daniel Verkamp" <[email protected]> Mon, 29 Sep 2008 10:57:43 -0500
Newsgroups gmane.network.etherboot.user,gmane.network.etherboot.devel
Message-ID <[email protected]>
------=_Part_60394_20702386.1222703863441
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

On Tue, Sep 23, 2008 at 4:26 PM, Daniel Verkamp <[email protected]> wrote:
> On Tue, Sep 23, 2008 at 3:34 PM, Michael Brown <[email protected]> wrote:
>> On Monday 22 September 2008 21:54:38 Daniel Verkamp wrote:
>>> PS: This patch is also ready for review for mainline; CCing to
>>> etherboot-developers (there is an equivalent function for PM instead
>>> of RM, so I can write that one as well if desired before review).
>>
>> Thanks for implementing this.  I'm a bit dubious about constructing executable
>> code to implement the register loads; it feels as though there ought to be a
>> neater way than this.  Maybe have a static buffer in .text16, copy the
>> syslinux_rm_regs struct to this buffer, and use
>>
>>  __asm__ __volatile__ ( REAL_CODE ( "movl %cs:syslinux_rm_eax, %eax\n\t"
>>                                                                .... ) );
>>
>> to load up the register contents and jump?  It should work out smaller than
>> the current code, I think.  You can probably optimise this further.
>>
>> Michael
>>
>
> Ok, I will rework the patch in this way; I followed the way SYSLINUX
> did it, but I agree that it could be smaller (SYSLINUX's code
> generation uses carefully selected x86 string instructions to build
> the code without much size overhead).

I've rewritten the patch as indicated; this does save about 100 bytes
over the previous version.

A patch for PM will follow if this is the desired style.

See attached patch or
http://git.etherboot.org/?p=people/dverkamp/gpxe.git;a=commitdiff;h=510aeef08caedab65414546f1f1a9661105409ff

Thanks,
-- Daniel

------=_Part_60394_20702386.1222703863441
Content-Type: text/x-diff;
	name=0001-comboot-Implement-INT-22h-AX-001Bh-Cleanup-shuff.patch
Content-Transfer-Encoding: base64
X-Attachment-Id: f_flpa9j9m0
Content-Disposition: attachment;
	filename=0001-comboot-Implement-INT-22h-AX-001Bh-Cleanup-shuff.patch

RnJvbSA1MTBhZWVmMDhjYWVkYWI2NTQxNDU0NmYxZjFhOTY2MTEwNTQwOWZmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgVmVya2FtcCA8ZGFuaWVsQGRydi5udT4KRGF0ZTog
TW9uLCAyOSBTZXAgMjAwOCAxMDo0NTo1NyAtMDUwMApTdWJqZWN0OiBbUEFUQ0hdIFtjb21ib290
XSBJbXBsZW1lbnQgSU5UIDIyaCBBWD0wMDFCaCAoQ2xlYW51cCwgc2h1ZmZsZSwgYW5kIGJvb3Qg
dG8gcmVhbCBtb2RlKSAodHJ5MikKCi0tLQogc3JjL2FyY2gvaTM4Ni9pbmNsdWRlL2NvbWJvb3Qu
aCAgICAgICAgICAgICAgICAgfCAgIDM0ICsrKysrKysrKysrKwogc3JjL2FyY2gvaTM4Ni9pbnRl
cmZhY2Uvc3lzbGludXgvY29tYm9vdF9jYWxsLmMgfCAgIDYyICsrKysrKysrKysrKysrKysrKysr
KystCiAyIGZpbGVzIGNoYW5nZWQsIDk1IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb25zKC0pCgpk
aWZmIC0tZ2l0IGEvc3JjL2FyY2gvaTM4Ni9pbmNsdWRlL2NvbWJvb3QuaCBiL3NyYy9hcmNoL2kz
ODYvaW5jbHVkZS9jb21ib290LmgKaW5kZXggMWZjM2I3MS4uNDYzZmIzYyAxMDA2NDQKLS0tIGEv
c3JjL2FyY2gvaTM4Ni9pbmNsdWRlL2NvbWJvb3QuaAorKysgYi9zcmMvYXJjaC9pMzg2L2luY2x1
ZGUvY29tYm9vdC5oCkBAIC01OCw2ICs1OCw0MCBAQCB0eXBlZGVmIHN0cnVjdCB7CiB9IGNvbTMy
c3lzX3Q7CiAKIHR5cGVkZWYgc3RydWN0IHsKKwl1aW50MzJfdCBlYXg7ICAgICAgICAgICAgICAg
LyogT2Zmc2V0ICAwICovCisJdWludDMyX3QgZWN4OyAgICAgICAgICAgICAgIC8qIE9mZnNldCAg
NCAqLworCXVpbnQzMl90IGVkeDsgICAgICAgICAgICAgICAvKiBPZmZzZXQgIDggKi8KKwl1aW50
MzJfdCBlYng7ICAgICAgICAgICAgICAgLyogT2Zmc2V0IDEyICovCisJdWludDMyX3QgZXNwOyAg
ICAgICAgICAgICAgIC8qIE9mZnNldCAxNiAqLworCXVpbnQzMl90IGVicDsgICAgICAgICAgICAg
ICAvKiBPZmZzZXQgMjAgKi8KKwl1aW50MzJfdCBlc2k7ICAgICAgICAgICAgICAgLyogT2Zmc2V0
IDI0ICovCisJdWludDMyX3QgZWRpOyAgICAgICAgICAgICAgIC8qIE9mZnNldCAyOCAqLworCisJ
dWludDMyX3QgZWlwOyAgICAgICAgICAgICAgIC8qIE9mZnNldCAzMiAqLworfSBzeXNsaW51eF9w
bV9yZWdzOworCit0eXBlZGVmIHN0cnVjdCB7CisJdWludDE2X3QgZXM7ICAgICAgICAgICAgICAg
IC8qIE9mZnNldCAgMCAqLworCXVpbnQxNl90IF91bnVzZWRfY3M7ICAgICAgICAvKiBPZmZzZXQg
IDIgKi8KKwl1aW50MTZfdCBkczsgICAgICAgICAgICAgICAgLyogT2Zmc2V0ICA0ICovCisJdWlu
dDE2X3Qgc3M7ICAgICAgICAgICAgICAgIC8qIE9mZnNldCAgNiAqLworCXVpbnQxNl90IGZzOyAg
ICAgICAgICAgICAgICAvKiBPZmZzZXQgIDggKi8KKwl1aW50MTZfdCBnczsgICAgICAgICAgICAg
ICAgLyogT2Zmc2V0IDEwICovCisKKwl1aW50MzJfdCBlYXg7ICAgICAgICAgICAgICAgIC8qIE9m
ZnNldCAxMiAqLworCXVpbnQzMl90IGVjeDsgICAgICAgICAgICAgICAgLyogT2Zmc2V0IDE2ICov
CisJdWludDMyX3QgZWR4OyAgICAgICAgICAgICAgICAvKiBPZmZzZXQgMjAgKi8KKwl1aW50MzJf
dCBlYng7ICAgICAgICAgICAgICAgIC8qIE9mZnNldCAyNCAqLworCXVpbnQzMl90IGVzcDsgICAg
ICAgICAgICAgICAgLyogT2Zmc2V0IDI4ICovCisJdWludDMyX3QgZWJwOyAgICAgICAgICAgICAg
ICAvKiBPZmZzZXQgMzIgKi8KKwl1aW50MzJfdCBlc2k7ICAgICAgICAgICAgICAgIC8qIE9mZnNl
dCAzNiAqLworCXVpbnQzMl90IGVkaTsgICAgICAgICAgICAgICAgLyogT2Zmc2V0IDQwICovCisK
Kwl1aW50MTZfdCBpcDsgICAgICAgICAgICAgICAgLyogT2Zmc2V0IDQ0ICovCisJdWludDE2X3Qg
Y3M7ICAgICAgICAgICAgICAgIC8qIE9mZnNldCA0NiAqLworfSBzeXNsaW51eF9ybV9yZWdzOwor
Cit0eXBlZGVmIHN0cnVjdCB7CiAJdWludDMyX3QgZGVzdDsKIAl1aW50MzJfdCBzcmM7CiAJdWlu
dDMyX3QgbGVuOwpkaWZmIC0tZ2l0IGEvc3JjL2FyY2gvaTM4Ni9pbnRlcmZhY2Uvc3lzbGludXgv
Y29tYm9vdF9jYWxsLmMgYi9zcmMvYXJjaC9pMzg2L2ludGVyZmFjZS9zeXNsaW51eC9jb21ib290
X2NhbGwuYwppbmRleCA1YTQwMGVkLi44YTVlNGZiIDEwMDY0NAotLS0gYS9zcmMvYXJjaC9pMzg2
L2ludGVyZmFjZS9zeXNsaW51eC9jb21ib290X2NhbGwuYworKysgYi9zcmMvYXJjaC9pMzg2L2lu
dGVyZmFjZS9zeXNsaW51eC9jb21ib290X2NhbGwuYwpAQCAtNTEsNiArNTEsMTQgQEAgc3RhdGlj
IGNoYXIgX19kYXRhMTZfYXJyYXkgKCBzeXNsaW51eF9jb25maWd1cmF0aW9uX2ZpbGUsIFtdICkg
PSAiIjsKIHN0YXRpYyB1aW50OF90IF9fZGF0YTE2ICggY29tYm9vdF9mZWF0dXJlX2ZsYWdzICkg
PSBDT01CT09UX0ZFQVRVUkVfSURMRV9MT09QOwogI2RlZmluZSBjb21ib290X2ZlYXR1cmVfZmxh
Z3MgX191c2VfZGF0YTE2ICggY29tYm9vdF9mZWF0dXJlX2ZsYWdzICkKIAordHlwZWRlZiB1bmlv
biB7CisJc3lzbGludXhfcG1fcmVncyBwbTsgc3lzbGludXhfcm1fcmVncyBybTsKK30gc3lzbGlu
dXhfcmVnczsKKworLyoqIEluaXRpYWwgcmVnaXN0ZXIgdmFsdWVzIGZvciBJTlQgMjJoIEFYPTFB
aCBhbmQgMUJoICovCitzdGF0aWMgc3lzbGludXhfcmVncyBfX3RleHQxNiAoIGNvbWJvb3RfaW5p
dGlhbF9yZWdzICk7CisjZGVmaW5lIGNvbWJvb3RfaW5pdGlhbF9yZWdzIF9fdXNlX3RleHQxNiAo
IGNvbWJvb3RfaW5pdGlhbF9yZWdzICkKKwogc3RhdGljIHN0cnVjdCBzZWdvZmYgX190ZXh0MTYg
KCBpbnQyMF92ZWN0b3IgKTsKICNkZWZpbmUgaW50MjBfdmVjdG9yIF9fdXNlX3RleHQxNiAoIGlu
dDIwX3ZlY3RvciApCiAKQEAgLTI5NCw3ICszMDIsNyBAQCBzdGF0aWMgX19jZGVjbCB2b2lkIGlu
dDIyICggc3RydWN0IGkzODZfYWxsX3JlZ3MgKml4ODYgKSB7CiAJY2FzZSAweDAwMDE6IC8qIEdl
dCBWZXJzaW9uICovCiAKIAkJLyogTnVtYmVyIG9mIElOVCAyMmggQVBJIGZ1bmN0aW9ucyBhdmFp
bGFibGUgKi8KLQkJaXg4Ni0+cmVncy5heCA9IDB4MDAxODsKKwkJaXg4Ni0+cmVncy5heCA9IDB4
MDAxQjsKIAogCQkvKiBTWVNMSU5VWCB2ZXJzaW9uIG51bWJlciAqLwogCQlpeDg2LT5yZWdzLmNo
ID0gMDsgLyogbWFqb3IgKi8KQEAgLTU0OSw2ICs1NTcsNTggQEAgc3RhdGljIF9fY2RlY2wgdm9p
ZCBpbnQyMiAoIHN0cnVjdCBpMzg2X2FsbF9yZWdzICppeDg2ICkgewogCQlpeDg2LT5mbGFncyAm
PSB+Q0Y7CiAJCWJyZWFrOwogCisJY2FzZSAweDAwMUI6IC8qIENsZWFudXAsIHNodWZmbGUgYW5k
IGJvb3QgdG8gcmVhbCBtb2RlICovCisJCWlmICggaXg4Ni0+cmVncy5jeCA+IENPTUJPT1RfTUFY
X1NIVUZGTEVfREVTQ1JJUFRPUlMgKQorCQkJYnJlYWs7CisKKwkJLyogUGVyZm9ybSBmaW5hbCBj
bGVhbnVwICovCisJCXNodXRkb3duICggU0hVVERPV05fQk9PVCApOworCisJCS8qIFBlcmZvcm0g
c2VxdWVuY2Ugb2YgY29waWVzICovCisJCXNodWZmbGUgKCBpeDg2LT5zZWdzLmVzLCBpeDg2LT5y
ZWdzLmRpLCBpeDg2LT5yZWdzLmN4ICk7CisKKwkJLyogQ29weSBpbml0aWFsIHJlZ2lzdGVyIHZh
bHVlcyB0byAudGV4dDE2ICovCisJCW1lbWNweV91c2VyICggcmVhbF90b191c2VyICggcm1fY3Ms
ICh1bnNpZ25lZCkgX19mcm9tX3RleHQxNiAoICZjb21ib290X2luaXRpYWxfcmVncyApICksIDAs
CisJCSAgICAgICAgICAgICAgcmVhbF90b191c2VyICggaXg4Ni0+c2Vncy5kcywgaXg4Ni0+cmVn
cy5zaSApLCAwLAorCQkgICAgICAgICAgICAgIHNpemVvZihzeXNsaW51eF9ybV9yZWdzKSApOwor
CisJCS8qIExvYWQgaW5pdGlhbCByZWdpc3RlciB2YWx1ZXMgKi8KKwkJX19hc21fXyBfX3ZvbGF0
aWxlX18gKAorCQkJUkVBTF9DT0RFICgKKwkJCQkvKiBQb2ludCBTUzpTUCBhdCB0aGUgcmVnaXN0
ZXIgdmFsdWUgc3RydWN0dXJlICovCisJCQkJInB1c2h3ICUlY3Ncblx0IgorCQkJCSJwb3B3ICUl
c3Ncblx0IgorCQkJCSJtb3Z3ICRjb21ib290X2luaXRpYWxfcmVncywgJSVzcFxuXHQiCisKKwkJ
CQkvKiBTZWdtZW50IHJlZ2lzdGVycyAqLworCQkJCSJwb3B3ICUlZXNcblx0IgorCQkJCSJwb3B3
ICUlYXhcblx0IiAvKiBTa2lwIENTICovCisJCQkJInBvcHcgJSVkc1xuXHQiCisJCQkJInBvcHcg
JSVheFxuXHQiIC8qIFNraXAgU1MgZm9yIG5vdyAqLworCQkJCSJwb3B3ICUlZnNcblx0IgorCQkJ
CSJwb3B3ICUlZ3Ncblx0IgorCisJCQkJLyogR1AgcmVnaXN0ZXJzICovCisJCQkJInBvcGwgJSVl
YXhcblx0IgorCQkJCSJwb3BsICUlZWN4XG5cdCIKKwkJCQkicG9wbCAlJWVkeFxuXHQiCisJCQkJ
InBvcGwgJSVlYnhcblx0IgorCQkJCSJwb3BsICUlZWJwXG5cdCIgLyogU2tpcCBFU1AgZm9yIG5v
dyAqLworCQkJCSJwb3BsICUlZWJwXG5cdCIKKwkJCQkicG9wbCAlJWVzaVxuXHQiCisJCQkJInBv
cGwgJSVlZGlcblx0IgorCisJCQkJLyogTG9hZCBjb3JyZWN0IFNTOkVTUCAqLworCQkJCSJtb3Z3
ICQoY29tYm9vdF9pbml0aWFsX3JlZ3MgKyA2KSwgJSVzcFxuXHQiCisJCQkJInBvcHcgJSVzc1xu
XHQiCisJCQkJIm1vdmwgJSVjczooY29tYm9vdF9pbml0aWFsX3JlZ3MgKyAyOCksICUlZXNwXG5c
dCIKKworCQkJCSJsam1wIColJWNzOihjb21ib290X2luaXRpYWxfcmVncyArIDQ0KVxuXHQiCisJ
CQkpCisJCQk6IDogKTsKKworCQlicmVhazsKKwogCWRlZmF1bHQ6CiAJCURCRyAoICJDT01CT09U
IHVua25vd24gaW50MjIgZnVuY3Rpb24gJTA0eFxuIiwgaXg4Ni0+cmVncy5heCApOwogCQlicmVh
azsKLS0gCjEuNS40LjMKCg==
------=_Part_60394_20702386.1222703863441
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
------=_Part_60394_20702386.1222703863441
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
Etherboot-discuss mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/etherboot-discuss

------=_Part_60394_20702386.1222703863441--