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--