Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 22 May 2014 11:32:12 -0400
From:      =?UTF-8?Q?Rafael_Esp=C3=ADndola?= <rafael.espindola@gmail.com>
To:        freebsd-current@freebsd.org, Ed Maste <emaste@freebsd.org>
Subject:   [patch] Switch to text mode during efi boot
Message-ID:  <CAG3jReLhdO7xdM8W8M65iokD9y5tFDTR7vRO0Tz8C6d0e5Q3Jw@mail.gmail.com>

next in thread | raw e-mail | index | archive | help
--20cf303f6cb229999604f9fed12b
Content-Type: text/plain; charset=UTF-8

The attached patch causes both boot1 and loader.efi to switch to text
mode. This only
seems to make a difference on Macs where otherwise no information was being
displayed.

The ConsoleControl.h file is copied from
EdkCompatibilityPkg/Foundation/Protocol/ConsoleControl in
https://github.com/tianocore/edk2.

I tested that both programs are able to change to text mode by
enabling only one of them at a time.

With this patch I am able to see loaders output on all the macs I
tried. The kernel boots correctly on a MacPro, but unfortunately it
doesn't seem to be able to find the efi buffer in a MacBookPro.

Some design questions:

* Why do we have both boot1 and loader? It is just the issue with
building a usb image without root that requires having a boot1 that
has a predictable size?

* Even if we want to keep both boot1 and loader, could boot1 use libefi?

* Is it ok to always switch to text mode in libefi or should it
provide a switch_to_text_mode function?

Cheers,
Rafael

--20cf303f6cb229999604f9fed12b
Content-Type: application/octet-stream; name="efi.patch"
Content-Disposition: attachment; filename="efi.patch"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_hvi7mgn50

SW5kZXg6IHN5cy9ib290L2FtZDY0L2Jvb3QxLmVmaS9ib290MS5jCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHN5
cy9ib290L2FtZDY0L2Jvb3QxLmVmaS9ib290MS5jCShyZXZpc2lvbiAyNjYxNTkpCisrKyBzeXMv
Ym9vdC9hbWQ2NC9ib290MS5lZmkvYm9vdDEuYwkod29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYs
NyBAQAogI2luY2x1ZGUgPG1hY2hpbmUvc3RkYXJnLmg+CiAKICNpbmNsdWRlIDxlZmkuaD4KKyNp
bmNsdWRlIDxDb25zb2xlQ29udHJvbC5oPgogCiAjZGVmaW5lIF9QQVRIX0xPQURFUgkiL2Jvb3Qv
bG9hZGVyLmVmaSIKICNkZWZpbmUgX1BBVEhfS0VSTkVMCSIvYm9vdC9rZXJuZWwva2VybmVsIgpA
QCAtOTcsNiArOTgsNyBAQAogc3RhdGljIEVGSV9HVUlEIEJsb2NrSW9Qcm90b2NvbEdVSUQgPSBC
TE9DS19JT19QUk9UT0NPTDsKIHN0YXRpYyBFRklfR1VJRCBEZXZpY2VQYXRoR1VJRCA9IERFVklD
RV9QQVRIX1BST1RPQ09MOwogc3RhdGljIEVGSV9HVUlEIExvYWRlZEltYWdlR1VJRCA9IExPQURF
RF9JTUFHRV9QUk9UT0NPTDsKK3N0YXRpYyBFRklfR1VJRCBDb25zb2xlQ29udHJvbEdVSUQgPSAg
RUZJX0NPTlNPTEVfQ09OVFJPTF9QUk9UT0NPTF9HVUlEOwogCiBzdGF0aWMgRUZJX0JMT0NLX0lP
ICpib290ZGV2Owogc3RhdGljIEVGSV9ERVZJQ0VfUEFUSCAqYm9vdGRldnBhdGg7CkBAIC0xMTcs
NiArMTE5LDE2IEBACiAJcHJpbnRmKCIgXG4+PiBGcmVlQlNEIEVGSSBib290IGJsb2NrXG4iKTsK
IAlwcmludGYoIiAgIExvYWRlciBwYXRoOiAlc1xuIiwgcGF0aCk7CiAKKwlFRklfQk9PVF9TRVJW
SUNFUyAqQlMgPSBzeXN0YWItPkJvb3RTZXJ2aWNlczsKKwlFRklfQ09OU09MRV9DT05UUk9MX1BS
T1RPQ09MICpDb25zb2xlQ29udHJvbCA9IE5VTEw7CisJc3RhdHVzID0gQlMtPkxvY2F0ZVByb3Rv
Y29sKCZDb25zb2xlQ29udHJvbEdVSUQsIE5VTEwsIChWT0lEICoqKSYgQ29uc29sZUNvbnRyb2wp
OworCWlmIChFRklfRVJST1Ioc3RhdHVzKSkKKwkJcGFuaWMoIk5vIGNvbnNvbGUgY29udHJvbCBw
cm90b2NvbCBsb2NhdGVkIik7CisKKwlzdGF0dXMgPSBDb25zb2xlQ29udHJvbC0+U2V0TW9kZShD
b25zb2xlQ29udHJvbCwgRWZpQ29uc29sZUNvbnRyb2xTY3JlZW5UZXh0KTsKKwlpZiAoRUZJX0VS
Uk9SKHN0YXR1cykpCisJCXBhbmljKCJDb3VsZCBub3Qgc3dpdGNoIHRvIHRleHQgbW9kZSIpOwor
CiAJc3RhdHVzID0gc3lzdGFiLT5Cb290U2VydmljZXMtPkxvY2F0ZUhhbmRsZShCeVByb3RvY29s
LAogCSAgICAmQmxvY2tJb1Byb3RvY29sR1VJRCwgTlVMTCwgJm5wYXJ0cywgaGFuZGxlcyk7CiAJ
bnBhcnRzIC89IHNpemVvZihoYW5kbGVzWzBdKTsKSW5kZXg6IHN5cy9ib290L2VmaS9pbmNsdWRl
L0NvbnNvbGVDb250cm9sLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gc3lzL2Jvb3QvZWZpL2luY2x1ZGUvQ29u
c29sZUNvbnRyb2wuaAkocmV2aXNpb24gMCkKKysrIHN5cy9ib290L2VmaS9pbmNsdWRlL0NvbnNv
bGVDb250cm9sLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMjIgQEAKKy8qKysgCisKK0Nv
cHlyaWdodCAoYykgMjAwNCAtIDIwMTAsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJl
c2VydmVkLjxCUj4KK1RoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMg
ICAgICAgICAgICAgICAgICAgICAgICAgIAorYXJlIGxpY2Vuc2VkIGFuZCBtYWRlIGF2YWlsYWJs
ZSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIEJTRCBMaWNlbnNlICAgICAg
ICAgCit3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbi4gIFRoZSBmdWxsIHRleHQg
b2YgdGhlIGxpY2Vuc2UgbWF5IGJlIGZvdW5kIGF0ICAgICAgICAKK2h0dHA6Ly9vcGVuc291cmNl
Lm9yZy9saWNlbnNlcy9ic2QtbGljZW5zZS5waHAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCitUSEUg
UFJPR1JBTSBJUyBESVNUUklCVVRFRCBVTkRFUiBUSEUgQlNEIExJQ0VOU0UgT04gQU4gIkFTIElT
IiBCQVNJUywgICAgICAgICAgICAgICAgICAgICAKK1dJVEhPVVQgV0FSUkFOVElFUyBPUiBSRVBS
RVNFTlRBVElPTlMgT0YgQU5ZIEtJTkQsIEVJVEhFUiBFWFBSRVNTIE9SIElNUExJRUQuICAgICAg
ICAgICAgIAorCitNb2R1bGUgTmFtZToKKworICBDb25zb2xlQ29udHJvbC5oCisKK0Fic3RyYWN0
OgorCisgIEFic3RyYWN0aW9uIG9mIGEgVGV4dCBtb2RlIG9yIEdPUC9VR0Egc2NyZWVuCisKKy0t
Ki8KKworI2lmbmRlZiBfX0NPTlNPTEVfQ09OVFJPTF9IX18KKyNkZWZpbmUgX19DT05TT0xFX0NP
TlRST0xfSF9fCisKKyNkZWZpbmUgRUZJX0NPTlNPTEVfQ09OVFJPTF9QUk9UT0NPTF9HVUlEIFwK
KyAgeyAweGY0MmY3NzgyLCAweDEyZSwgMHg0YzEyLCB7MHg5OSwgMHg1NiwgMHg0OSwgMHhmOSwg
MHg0MywgMHg0LCAweGY3LCAweDIxfSB9CisKK3R5cGVkZWYgc3RydWN0IF9FRklfQ09OU09MRV9D
T05UUk9MX1BST1RPQ09MICAgRUZJX0NPTlNPTEVfQ09OVFJPTF9QUk9UT0NPTDsKKworCit0eXBl
ZGVmIGVudW0geworICBFZmlDb25zb2xlQ29udHJvbFNjcmVlblRleHQsCisgIEVmaUNvbnNvbGVD
b250cm9sU2NyZWVuR3JhcGhpY3MsCisgIEVmaUNvbnNvbGVDb250cm9sU2NyZWVuTWF4VmFsdWUK
K30gRUZJX0NPTlNPTEVfQ09OVFJPTF9TQ1JFRU5fTU9ERTsKKworCit0eXBlZGVmCitFRklfU1RB
VFVTCisoRUZJQVBJICpFRklfQ09OU09MRV9DT05UUk9MX1BST1RPQ09MX0dFVF9NT0RFKSAoCisg
IElOICBFRklfQ09OU09MRV9DT05UUk9MX1BST1RPQ09MICAgICAgKlRoaXMsCisgIE9VVCBFRklf
Q09OU09MRV9DT05UUk9MX1NDUkVFTl9NT0RFICAgKk1vZGUsCisgIE9VVCBCT09MRUFOICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKkdvcFVnYUV4aXN0cywgIE9QVElPTkFMICAKKyAgT1VUIEJP
T0xFQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAqU3RkSW5Mb2NrZWQgICAgT1BUSU9OQUwK
KyAgKQorLyorKworCisgIFJvdXRpbmUgRGVzY3JpcHRpb246CisgICAgUmV0dXJuIHRoZSBjdXJy
ZW50IHZpZGVvIG1vZGUgaW5mb3JtYXRpb24uIEFsc28gcmV0dXJucyBpbmZvIGFib3V0IGV4aXN0
ZW5jZQorICAgIG9mIEdyYXBoaWNzIE91dHB1dCBkZXZpY2VzIG9yIFVHQSBEcmF3IGRldmljZXMg
aW4gc3lzdGVtLCBhbmQgaWYgdGhlIFN0ZCBJbgorICAgIGRldmljZSBpcyBsb2NrZWQuIEFsbCB0
aGUgYXJndW1lbnRzIGFyZSBvcHRpb25hbCBhbmQgb25seSByZXR1cm5lZCBpZiBhIG5vbgorICAg
IE5VTEwgcG9pbnRlciBpcyBwYXNzZWQgaW4uCisKKyAgQXJndW1lbnRzOgorICAgIFRoaXMgICAg
ICAgICAtIFByb3RvY29sIGluc3RhbmNlIHBvaW50ZXIuCisgICAgTW9kZSAgICAgICAgIC0gQXJl
IHdlIGluIHRleHQgb2YgZ3JhaGljcyBtb2RlLgorICAgIEdvcFVnYUV4aXN0cyAtIFRSVUUgaWYg
Q29uc29sZSBTcGxpdGVyIGhhcyBmb3VuZCBhIEdPUCBvciBVR0EgZGV2aWNlCisgICAgU3RkSW5M
b2NrZWQgIC0gVFJVRSBpZiBTdGRJbiBkZXZpY2UgaXMga2V5Ym9hcmQgbG9ja2VkCisKKyAgUmV0
dXJuczoKKyAgICBFRklfU1VDQ0VTUyAgICAgLSBNb2RlIGluZm9ybWF0aW9uIHJldHVybmVkLgor
CistLSovCis7CisKKwordHlwZWRlZgorRUZJX1NUQVRVUworKEVGSUFQSSAqRUZJX0NPTlNPTEVf
Q09OVFJPTF9QUk9UT0NPTF9TRVRfTU9ERSkgKAorICBJTiAgRUZJX0NPTlNPTEVfQ09OVFJPTF9Q
Uk9UT0NPTCAgICAgICpUaGlzLAorICBJTiAgRUZJX0NPTlNPTEVfQ09OVFJPTF9TQ1JFRU5fTU9E
RSAgIE1vZGUKKyAgKQorLyorKworCisgIFJvdXRpbmUgRGVzY3JpcHRpb246CisgICAgU2V0IHRo
ZSBjdXJyZW50IG1vZGUgdG8gZWl0aGVyIHRleHQgb3IgZ3JhcGhpY3MuIEdyYXBoaWNzIGlzCisg
ICAgZm9yIFF1aWV0IEJvb3QuCisKKyAgQXJndW1lbnRzOgorICAgIFRoaXMgIC0gUHJvdG9jb2wg
aW5zdGFuY2UgcG9pbnRlci4KKyAgICBNb2RlICAtIE1vZGUgdG8gc2V0IHRoZSAKKworICBSZXR1
cm5zOgorICAgIEVGSV9TVUNDRVNTICAgICAtIE1vZGUgaW5mb3JtYXRpb24gcmV0dXJuZWQuCisK
Ky0tKi8KKzsKKworCit0eXBlZGVmCitFRklfU1RBVFVTCisoRUZJQVBJICpFRklfQ09OU09MRV9D
T05UUk9MX1BST1RPQ09MX0xPQ0tfU1REX0lOKSAoCisgIElOICBFRklfQ09OU09MRV9DT05UUk9M
X1BST1RPQ09MICAgICAgKlRoaXMsCisgIElOIENIQVIxNiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKlBhc3N3b3JkCisgICkKKy8qKysKKworICBSb3V0aW5lIERlc2NyaXB0aW9uOgorICAg
IExvY2sgU3RkIEluIGRldmljZXMgdW50aWwgUGFzc3dvcmQgaXMgdHlwZWQuCisKKyAgQXJndW1l
bnRzOgorICAgIFRoaXMgICAgIC0gUHJvdG9jb2wgaW5zdGFuY2UgcG9pbnRlci4KKyAgICBQYXNz
d29yZCAtIFBhc3N3b3JkIG5lZWRlZCB0byB1bmxvY2sgc2NyZWVuLiBOVUxMIG1lYW5zIHVubG9j
ayBrZXlib2FyZAorCisgIFJldHVybnM6CisgICAgRUZJX1NVQ0NFU1MgICAgICAtIE1vZGUgaW5m
b3JtYXRpb24gcmV0dXJuZWQuCisgICAgRUZJX0RFVklDRV9FUlJPUiAtIFN0ZCBJbiBub3QgbG9j
a2VkCisKKy0tKi8KKzsKKworCisKK3N0cnVjdCBfRUZJX0NPTlNPTEVfQ09OVFJPTF9QUk9UT0NP
TCB7CisgIEVGSV9DT05TT0xFX0NPTlRST0xfUFJPVE9DT0xfR0VUX01PREUgICAgICAgICAgIEdl
dE1vZGU7CisgIEVGSV9DT05TT0xFX0NPTlRST0xfUFJPVE9DT0xfU0VUX01PREUgICAgICAgICAg
IFNldE1vZGU7CisgIEVGSV9DT05TT0xFX0NPTlRST0xfUFJPVE9DT0xfTE9DS19TVERfSU4gICAg
ICAgIExvY2tTdGRJbjsKK307CisKK2V4dGVybiBFRklfR1VJRCBnRWZpQ29uc29sZUNvbnRyb2xQ
cm90b2NvbEd1aWQ7CisKKyNlbmRpZgoKUHJvcGVydHkgY2hhbmdlcyBvbjogc3lzL2Jvb3QvZWZp
L2luY2x1ZGUvQ29uc29sZUNvbnRyb2wuaApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkFkZGVkOiBzdm46bWltZS10eXBl
CiMjIC0wLDAgKzEgIyMKK3RleHQvcGxhaW4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0
eQpBZGRlZDogc3ZuOmtleXdvcmRzCiMjIC0wLDAgKzEgIyMKK0ZyZWVCU0Q9JUgKXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQpBZGRlZDogc3ZuOmVvbC1zdHlsZQojIyAtMCwwICsxICMj
CituYXRpdmUKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQpJbmRleDogc3lzL2Jvb3Qv
ZWZpL2xpYmVmaS9saWJlZmkuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBzeXMvYm9vdC9lZmkvbGliZWZpL2xp
YmVmaS5jCShyZXZpc2lvbiAyNjYxNTkpCisrKyBzeXMvYm9vdC9lZmkvbGliZWZpL2xpYmVmaS5j
CSh3b3JraW5nIGNvcHkpCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSA8ZWZpLmg+CiAjaW5j
bHVkZSA8ZWZpbGliLmg+CiAjaW5jbHVkZSA8c3RhbmQuaD4KKyNpbmNsdWRlIDxDb25zb2xlQ29u
dHJvbC5oPgogCiBFRklfSEFORExFCQlJSDsKIEVGSV9TWVNURU1fVEFCTEUJKlNUOwpAQCAtODIs
NiArODMsOCBAQAogZWZpX21haW4oRUZJX0hBTkRMRSBpbWFnZV9oYW5kbGUsIEVGSV9TWVNURU1f
VEFCTEUgKnN5c3RlbV90YWJsZSkKIHsKIAlzdGF0aWMgRUZJX0dVSUQgaW1hZ2VfcHJvdG9jb2wg
PSBMT0FERURfSU1BR0VfUFJPVE9DT0w7CisJc3RhdGljIEVGSV9HVUlEIGNvbnNvbGVfY29udHJv
bF9wcm90b2NvbCA9ICBFRklfQ09OU09MRV9DT05UUk9MX1BST1RPQ09MX0dVSUQ7CisJRUZJX0NP
TlNPTEVfQ09OVFJPTF9QUk9UT0NPTCAqY29uc29sZV9jb250cm9sID0gTlVMTDsKIAlFRklfTE9B
REVEX0lNQUdFICppbWc7CiAJQ0hBUjE2ICphcmdwLCAqYXJncywgKiphcmd2OwogCUVGSV9TVEFU
VVMgc3RhdHVzOwpAQCAtOTIsNiArOTUsMTQgQEAKIAlCUyA9IFNULT5Cb290U2VydmljZXM7CiAJ
UlMgPSBTVC0+UnVudGltZVNlcnZpY2VzOwogCisJc3RhdHVzID0gQlMtPkxvY2F0ZVByb3RvY29s
KCZjb25zb2xlX2NvbnRyb2xfcHJvdG9jb2wsIE5VTEwsIChWT0lEICoqKSYgY29uc29sZV9jb250
cm9sKTsKKwlpZiAoRUZJX0VSUk9SKHN0YXR1cykpCisJCUJTLT5FeGl0KElILCBzdGF0dXMsIDAs
IE5VTEwpOworCisJc3RhdHVzID0gY29uc29sZV9jb250cm9sLT5TZXRNb2RlKGNvbnNvbGVfY29u
dHJvbCwgRWZpQ29uc29sZUNvbnRyb2xTY3JlZW5UZXh0KTsKKwlpZiAoRUZJX0VSUk9SKHN0YXR1
cykpCisJCUJTLT5FeGl0KElILCBzdGF0dXMsIDAsIE5VTEwpOworCiAJaGVhcHNpemUgPSAyICog
MTAyNCAqIDEwMjQ7CiAJc3RhdHVzID0gQlMtPkFsbG9jYXRlUGFnZXMoQWxsb2NhdGVBbnlQYWdl
cywgRWZpTG9hZGVyRGF0YSwKIAkgICAgRUZJX1NJWkVfVE9fUEFHRVMoaGVhcHNpemUpLCAmaGVh
cCk7Cg==
--20cf303f6cb229999604f9fed12b--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAG3jReLhdO7xdM8W8M65iokD9y5tFDTR7vRO0Tz8C6d0e5Q3Jw>