From owner-freebsd-current@FreeBSD.ORG Thu May 22 15:32:14 2014 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 275B8218; Thu, 22 May 2014 15:32:14 +0000 (UTC) Received: from mail-yk0-x231.google.com (mail-yk0-x231.google.com [IPv6:2607:f8b0:4002:c07::231]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id D30052DE4; Thu, 22 May 2014 15:32:13 +0000 (UTC) Received: by mail-yk0-f177.google.com with SMTP id 19so2931022ykq.8 for ; Thu, 22 May 2014 08:32:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:date:message-id:subject:from:to:content-type; bh=aVJ2OBA6lD5AqMM92AotM5/LcUEzly2MvNd3+pVFFFA=; b=S+zSGsFvHe+7zy8FL8T6s0STwhOLuotU7WCz3NTkKM/EuRDu/w/zCDVd3x0IlC5rJv lkCiWnu6O2o+dLlp2g0J3rbGmzN+5lzh3Mttqy8Q+PVS4a3YtiIGyQScjG4kZ/Ct6Brg EFomrmdweJLepBrB0NbCjWByuoRZ4YFs2UGGLRt81kRIw/4z0BvM6qWJtWtevsL8SwOK b3FsaDGFBytp9dbGsIAxqVaGkVgqZ09rAMe4Jvy2S2P7Wsgo11hlJDw/cL3l0sIEe+fD u29K+AAOB9JduF2NHeYAeeCmXM1NGwZalK2o4LpfFjjKojzM6k4Jpvu1l/lHm5z47GJF 5/Bw== MIME-Version: 1.0 X-Received: by 10.236.166.169 with SMTP id g29mr38407730yhl.135.1400772732985; Thu, 22 May 2014 08:32:12 -0700 (PDT) Received: by 10.170.120.214 with HTTP; Thu, 22 May 2014 08:32:12 -0700 (PDT) Date: Thu, 22 May 2014 11:32:12 -0400 Message-ID: Subject: [patch] Switch to text mode during efi boot From: =?UTF-8?Q?Rafael_Esp=C3=ADndola?= To: freebsd-current@freebsd.org, Ed Maste Content-Type: multipart/mixed; boundary=20cf303f6cb229999604f9fed12b X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 22 May 2014 15:32:14 -0000 --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--