[PATCH] [romprefix] Allow building for opt-out boot strategy
Shao Miller
shao.miller at yrdsb.edu.on.ca
Mon Jun 14 17:37:59 EDT 2010
We detect the VMware Player and VMware Workstation 7.0.1
BIOS as a non-BBS-compliant BIOS and we therefore hook
INTerrupt 0x19 for booting. As of commit
4d7c650164a759e3dadbcf8f83da6789165c68b7, we would choose
to always boot unless the user at the console specifies
otherwise with an 'N' keystroke. Some users would
rather that we not always boot by default.
This commit introduces a conditional build path for
allowing INT 0x19 users to build an "opt-out" ROM.
If INT19_OPTOUT is defined, such a ROM image will result.
This commit also adds a ROM-O-Matic option for the same.
Reported-by: Alessandro Salvatori <sandr8 at gmail.com>
Tested-by: Alessandro Salvatori <sandr8 at gmail.com>
Tested-by: Shao Miller <shao.miller at yrdsb.edu.on.ca>
Signed-off-by: Shao Miller <shao.miller at yrdsb.edu.on.ca>
---
contrib/rom-o-matic/doc/INT19_OPTOUT.html | 1 +
contrib/rom-o-matic/flag-table.php | 8 ++++++++
src/arch/i386/prefix/romprefix.S | 12 ++++++++++++
src/config/defaults/pcbios.h | 2 ++
4 files changed, 23 insertions(+), 0 deletions(-)
create mode 100644 contrib/rom-o-matic/doc/INT19_OPTOUT.html
diff --git a/contrib/rom-o-matic/doc/INT19_OPTOUT.html
b/contrib/rom-o-matic/doc/INT19_OPTOUT.html
new file mode 100644
index 0000000..d7aab28
--- /dev/null
+++ b/contrib/rom-o-matic/doc/INT19_OPTOUT.html
@@ -0,0 +1 @@
+Require 'B' keystroke to boot on INT 0x19 BIOSes
diff --git a/contrib/rom-o-matic/flag-table.php
b/contrib/rom-o-matic/flag-table.php
index 82551e4..45e41cd 100644
--- a/contrib/rom-o-matic/flag-table.php
+++ b/contrib/rom-o-matic/flag-table.php
@@ -98,6 +98,14 @@ $flag_table =3D array (
"cfgsec" =3D> "general"
),
=20
+ "INT19_OPTOUT"
+ =3D> array (
+ "flag" =3D> "INT19_OPTOUT",
+ "type" =3D> "on/off",
+ "value" =3D> "off",
+ "cfgsec" =3D> "general"
+ ),
+
// End Console Options
=20
// Begin Network Protocol Options:
diff --git a/src/arch/i386/prefix/romprefix.S
b/src/arch/i386/prefix/romprefix.S
index 02e5497..fdd3ae2 100644
--- a/src/arch/i386/prefix/romprefix.S
+++ b/src/arch/i386/prefix/romprefix.S
@@ -904,7 +904,11 @@ int19_entry:
call print_message
movw $int19_message_dots, %si
call print_message
+#ifdef INT19_OPTOUT
movw $0xdf4e, %bx
+#else
+ movw $0xdf42, %bx
+#endif
call wait_for_key
pushf
xorw %di, %di
@@ -912,7 +916,11 @@ int19_entry:
movw $int19_message_done, %si
call print_message
popf
+#ifdef INT19_OPTOUT
+ jnz 1f
+#else
jz 1f
+#endif
/* Leave keypress in buffer and start gPXE. The keypress will
* cause the usual initial Ctrl-B prompt to be skipped.
*/
@@ -931,7 +939,11 @@ orig_int19:
.size orig_int19, . - orig_int19
=20
int19_message_prompt:
+#ifdef INT19_OPTOUT
+ .asciz "Press B to boot from "
+#else
.asciz "Press N to skip booting from "
+#endif
.size int19_message_prompt, . - int19_message_prompt
int19_message_dots:
.asciz "..."
diff --git a/src/config/defaults/pcbios.h b/src/config/defaults/pcbios.h
index c09105c..c881cbb 100644
--- a/src/config/defaults/pcbios.h
+++ b/src/config/defaults/pcbios.h
@@ -32,4 +32,6 @@ FILE_LICENCE ( GPL2_OR_LATER );
#define SANBOOT_PROTO_ISCSI /* iSCSI protocol */
#define SANBOOT_PROTO_AOE /* AoE protocol */
=20
+#undef INT19_OPTOUT /* INT19 BIOS boot-on-keypress-only */
+
#endif /* CONFIG_DEFAULTS_PCBIOS_H */
--=20
1.5.6.6
------_=_NextPart_001_01CB0C35.6C6459A1
Content-Type: application/octet-stream;
name="0001--romprefix-Allow-building-for-opt-out-boot-strategy.patch"
Content-Transfer-Encoding: base64
Content-Description: 0001--romprefix-Allow-building-for-opt-out-boot-strategy.patch
Content-Disposition: attachment;
filename="0001--romprefix-Allow-building-for-opt-out-boot-strategy.patch"
RnJvbSAyZGZlZDg3NTk2MTg1ZGU3YzZjZGVkMmNhMThjZjkxNDRkMGJkYzYyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBTaGFvIE1pbGxlciA8c2hhby5taWxsZXJAeXJkc2IuZWR1Lm9u
LmNhPgpEYXRlOiBNb24sIDE0IEp1biAyMDEwIDIxOjM3OjU5ICswMDAwClN1YmplY3Q6IFtQQVRD
SF0gW3JvbXByZWZpeF0gQWxsb3cgYnVpbGRpbmcgZm9yIG9wdC1vdXQgYm9vdCBzdHJhdGVneQoK
V2UgZGV0ZWN0IHRoZSBWTXdhcmUgUGxheWVyIGFuZCBWTXdhcmUgV29ya3N0YXRpb24gNy4wLjEK
QklPUyBhcyBhIG5vbi1CQlMtY29tcGxpYW50IEJJT1MgYW5kIHdlIHRoZXJlZm9yZSBob29rCklO
VGVycnVwdCAweDE5IGZvciBib290aW5nLiAgQXMgb2YgY29tbWl0CjRkN2M2NTAxNjRhNzU5ZTNk
YWRiY2Y4ZjgzZGE2Nzg5MTY1YzY4YjcsIHdlIHdvdWxkIGNob29zZQp0byBhbHdheXMgYm9vdCB1
bmxlc3MgdGhlIHVzZXIgYXQgdGhlIGNvbnNvbGUgc3BlY2lmaWVzCm90aGVyd2lzZSB3aXRoIGFu
ICdOJyBrZXlzdHJva2UuICBTb21lIHVzZXJzIHdvdWxkCnJhdGhlciB0aGF0IHdlIG5vdCBhbHdh
eXMgYm9vdCBieSBkZWZhdWx0LgoKVGhpcyBjb21taXQgaW50cm9kdWNlcyBhIGNvbmRpdGlvbmFs
IGJ1aWxkIHBhdGggZm9yCmFsbG93aW5nIElOVCAweDE5IHVzZXJzIHRvIGJ1aWxkIGFuICJvcHQt
b3V0IiBST00uCklmIElOVDE5X09QVE9VVCBpcyBkZWZpbmVkLCBzdWNoIGEgUk9NIGltYWdlIHdp
bGwgcmVzdWx0LgoKVGhpcyBjb21taXQgYWxzbyBhZGRzIGEgUk9NLU8tTWF0aWMgb3B0aW9uIGZv
ciB0aGUgc2FtZS4KClJlcG9ydGVkLWJ5OiBBbGVzc2FuZHJvIFNhbHZhdG9yaSA8c2FuZHI4QGdt
YWlsLmNvbT4KVGVzdGVkLWJ5OiBBbGVzc2FuZHJvIFNhbHZhdG9yaSA8c2FuZHI4QGdtYWlsLmNv
bT4KVGVzdGVkLWJ5OiBTaGFvIE1pbGxlciA8c2hhby5taWxsZXJAeXJkc2IuZWR1Lm9uLmNhPgpT
aWduZWQtb2ZmLWJ5OiBTaGFvIE1pbGxlciA8c2hhby5taWxsZXJAeXJkc2IuZWR1Lm9uLmNhPgot
LS0KIGNvbnRyaWIvcm9tLW8tbWF0aWMvZG9jL0lOVDE5X09QVE9VVC5odG1sIHwgICAgMSArCiBj
b250cmliL3JvbS1vLW1hdGljL2ZsYWctdGFibGUucGhwICAgICAgICB8ICAgIDggKysrKysrKysK
IHNyYy9hcmNoL2kzODYvcHJlZml4L3JvbXByZWZpeC5TICAgICAgICAgIHwgICAxMiArKysrKysr
KysrKysKIHNyYy9jb25maWcvZGVmYXVsdHMvcGNiaW9zLmggICAgICAgICAgICAgIHwgICAgMiAr
KwogNCBmaWxlcyBjaGFuZ2VkLCAyMyBpbnNlcnRpb25zKCspLCAwIGRlbGV0aW9ucygtKQogY3Jl
YXRlIG1vZGUgMTAwNjQ0IGNvbnRyaWIvcm9tLW8tbWF0aWMvZG9jL0lOVDE5X09QVE9VVC5odG1s
CgpkaWZmIC0tZ2l0IGEvY29udHJpYi9yb20tby1tYXRpYy9kb2MvSU5UMTlfT1BUT1VULmh0bWwg
Yi9jb250cmliL3JvbS1vLW1hdGljL2RvYy9JTlQxOV9PUFRPVVQuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi5kN2FhYjI4Ci0tLSAvZGV2L251bGwKKysrIGIvY29udHJp
Yi9yb20tby1tYXRpYy9kb2MvSU5UMTlfT1BUT1VULmh0bWwKQEAgLTAsMCArMSBAQAorUmVxdWly
ZSAnQicga2V5c3Ryb2tlIHRvIGJvb3Qgb24gSU5UIDB4MTkgQklPU2VzCmRpZmYgLS1naXQgYS9j
b250cmliL3JvbS1vLW1hdGljL2ZsYWctdGFibGUucGhwIGIvY29udHJpYi9yb20tby1tYXRpYy9m
bGFnLXRhYmxlLnBocAppbmRleCA4MjU1MWU0Li40NWU0MWNkIDEwMDY0NAotLS0gYS9jb250cmli
L3JvbS1vLW1hdGljL2ZsYWctdGFibGUucGhwCisrKyBiL2NvbnRyaWIvcm9tLW8tbWF0aWMvZmxh
Zy10YWJsZS5waHAKQEAgLTk4LDYgKzk4LDE0IEBAICRmbGFnX3RhYmxlID0gYXJyYXkgKAogCSAg
ICJjZmdzZWMiID0+ICJnZW5lcmFsIgogCSAgICksCiAKKyAgICAgICAgIklOVDE5X09QVE9VVCIK
KyAgICAgICAgPT4gYXJyYXkgKAorCSAgICJmbGFnIiA9PiAiSU5UMTlfT1BUT1VUIiwKKwkgICAi
dHlwZSIgPT4gIm9uL29mZiIsCisJICAgInZhbHVlIiA9PiAib2ZmIiwKKwkgICAiY2Znc2VjIiA9
PiAiZ2VuZXJhbCIKKwkgICApLAorCiAJLy8gRW5kIENvbnNvbGUgT3B0aW9ucwogCiAJLy8gQmVn
aW4gTmV0d29yayBQcm90b2NvbCBPcHRpb25zOgpkaWZmIC0tZ2l0IGEvc3JjL2FyY2gvaTM4Ni9w
cmVmaXgvcm9tcHJlZml4LlMgYi9zcmMvYXJjaC9pMzg2L3ByZWZpeC9yb21wcmVmaXguUwppbmRl
eCAwMmU1NDk3Li5mZGQzYWUyIDEwMDY0NAotLS0gYS9zcmMvYXJjaC9pMzg2L3ByZWZpeC9yb21w
cmVmaXguUworKysgYi9zcmMvYXJjaC9pMzg2L3ByZWZpeC9yb21wcmVmaXguUwpAQCAtOTA0LDcg
KzkwNCwxMSBAQCBpbnQxOV9lbnRyeToKIAljYWxsCXByaW50X21lc3NhZ2UKIAltb3Z3CSRpbnQx
OV9tZXNzYWdlX2RvdHMsICVzaQogCWNhbGwJcHJpbnRfbWVzc2FnZQorI2lmZGVmIElOVDE5X09Q
VE9VVAogCW1vdncJJDB4ZGY0ZSwgJWJ4CisjZWxzZQorCW1vdncJJDB4ZGY0MiwgJWJ4CisjZW5k
aWYKIAljYWxsCXdhaXRfZm9yX2tleQogCXB1c2hmCiAJeG9ydwklZGksICVkaQpAQCAtOTEyLDcg
KzkxNiwxMSBAQCBpbnQxOV9lbnRyeToKIAltb3Z3CSRpbnQxOV9tZXNzYWdlX2RvbmUsICVzaQog
CWNhbGwJcHJpbnRfbWVzc2FnZQogCXBvcGYKKyNpZmRlZiBJTlQxOV9PUFRPVVQKKwlqbnoJMWYK
KyNlbHNlCiAJanoJMWYKKyNlbmRpZgogCS8qIExlYXZlIGtleXByZXNzIGluIGJ1ZmZlciBhbmQg
c3RhcnQgZ1BYRS4gIFRoZSBrZXlwcmVzcyB3aWxsCiAJICogY2F1c2UgdGhlIHVzdWFsIGluaXRp
YWwgQ3RybC1CIHByb21wdCB0byBiZSBza2lwcGVkLgogCSAqLwpAQCAtOTMxLDcgKzkzOSwxMSBA
QCBvcmlnX2ludDE5OgogCS5zaXplCW9yaWdfaW50MTksIC4gLSBvcmlnX2ludDE5CiAKIGludDE5
X21lc3NhZ2VfcHJvbXB0OgorI2lmZGVmIElOVDE5X09QVE9VVAorCS5hc2NpeiAiUHJlc3MgQiB0
byBib290IGZyb20gIgorI2Vsc2UKIAkuYXNjaXoJIlByZXNzIE4gdG8gc2tpcCBib290aW5nIGZy
b20gIgorI2VuZGlmCiAJLnNpemUJaW50MTlfbWVzc2FnZV9wcm9tcHQsIC4gLSBpbnQxOV9tZXNz
YWdlX3Byb21wdAogaW50MTlfbWVzc2FnZV9kb3RzOgogCS5hc2NpegkiLi4uIgpkaWZmIC0tZ2l0
IGEvc3JjL2NvbmZpZy9kZWZhdWx0cy9wY2Jpb3MuaCBiL3NyYy9jb25maWcvZGVmYXVsdHMvcGNi
aW9zLmgKaW5kZXggYzA5MTA1Yy4uYzg4MWNiYiAxMDA2NDQKLS0tIGEvc3JjL2NvbmZpZy9kZWZh
dWx0cy9wY2Jpb3MuaAorKysgYi9zcmMvY29uZmlnL2RlZmF1bHRzL3BjYmlvcy5oCkBAIC0zMiw0
ICszMiw2IEBAIEZJTEVfTElDRU5DRSAoIEdQTDJfT1JfTEFURVIgKTsKICNkZWZpbmUJU0FOQk9P
VF9QUk9UT19JU0NTSQkvKiBpU0NTSSBwcm90b2NvbCAqLwogI2RlZmluZQlTQU5CT09UX1BST1RP
X0FPRQkvKiBBb0UgcHJvdG9jb2wgKi8KIAorI3VuZGVmIElOVDE5X09QVE9VVAkJLyogSU5UMTkg
QklPUyBib290LW9uLWtleXByZXNzLW9ubHkgKi8KKwogI2VuZGlmIC8qIENPTkZJR19ERUZBVUxU
U19QQ0JJT1NfSCAqLwotLSAKMS41LjYuNgoK
------_=_NextPart_001_01CB0C35.6C6459A1--
More information about the gPXE-devel
mailing list