From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Stabellini Subject: [PATCH v7b 22/25] xen: support console_switching between Dom0 and DomUs on ARM Date: Tue, 13 Nov 2018 09:51:46 -0800 Message-ID: <1542131509-17661-22-git-send-email-sstabellini@kernel.org> References: Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: julien.grall@arm.com Cc: Stefano Stabellini , sstabellini@kernel.org, andrii_anisov@epam.com, konrad.wilk@oracle.com, George.Dunlap@eu.citrix.com, andrew.cooper3@citrix.com, Achin.Gupta@arm.com, ian.jackson@eu.citrix.com, xen-devel@lists.xen.org, tim@xen.org, jbeulich@suse.com, wei.liu2@citrix.com List-Id: xen-devel@lists.xenproject.org VG9kYXkgQ3RybC1BQUEgaXMgdXNlZCB0byBzd2l0Y2ggYmV0d2VlbiBYZW4gYW5kIERvbTAuIEV4 dGVuZCB0aGUKbWVjaGFuaXNtIHRvIGFsbG93IGZvciBzd2l0Y2hpbmcgYmV0d2VlbiBYZW4sIERv bTAsIGFuZCBhbnkgb2YgdGhlCmluaXRpYWwgRG9tVSBjcmVhdGVkIGZyb20gWGVuIGFsb25nc2lk ZSBEb20wIG91dCBvZiBpbmZvcm1hdGlvbiBwcm92aWRlZAp2aWEgZGV2aWNlIHRyZWUuCgpSZW5h bWUgeGVuX3J4IHRvIGNvbnNvbGVfcnggdG8gbWF0Y2ggdGhlIG5ldyBiZWhhdmlvci4KCkNsYXJp ZnkgZXhpc3RpbmcgY29tbWVudCBhYm91dCAibm90aWZ5IHRoZSBndWVzdCIsIG1ha2luZyBpdCBj bGVhciB0aGF0Cml0IGlzIG9ubHkgYWJvdXQgdGhlIGhhcmR3YXJlIGRvbWFpbi4KClN3aXRjaGlu ZyB0aGUgY29uc29sZSBpbnB1dCB0byBkb21VcyBzdGFydGVkIGZyb20gWGVuIGF0IGJvb3QgaXMK I2lmZGVmJ2VkIHRvIDAgaW4gdGhpcyBwYXRjaC4gVGhlIGNvZGUgd2lsbCBiZSBlbmFibGVkIHdo ZW4KdnBsMDExX3J4X2NoYXJfeGVuIGlzIGludHJvZHVjZWQuIEZvciBub3cgaXQgaXMgZGlzYWJs ZWQgZm9yCmJpc2VjdGFiaWxpdHkuCgpTaWduZWQtb2ZmLWJ5OiBTdGVmYW5vIFN0YWJlbGxpbmkg PHN0ZWZhbm9zQHhpbGlueC5jb20+CkFja2VkLWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3Vz ZS5jb20+CkNDOiBhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tCkNDOiBHZW9yZ2UuRHVubGFwQGV1 LmNpdHJpeC5jb20KQ0M6IGlhbi5qYWNrc29uQGV1LmNpdHJpeC5jb20KQ0M6IGpiZXVsaWNoQHN1 c2UuY29tCkNDOiBrb25yYWQud2lsa0BvcmFjbGUuY29tCkNDOiB0aW1AeGVuLm9yZwpDQzogd2Vp LmxpdTJAY2l0cml4LmNvbQotLS0KQ2hhbmdlcyBpbiB2NjoKLSBpbXByb3ZlIGluLWNvZGUgY29t bWVudAotIGltcHJvdmUgY29tbWl0IG1lc3NhaGUKLSBjb2RlIHN0eWxlCgpDaGFuZ2VzIGluIHY1 OgotIG1vdmUgcGF0Y2ggZWFybGllciBhbmQgZGlzYWJsZSBjb2RlIHRoYXQgY2FsbHMgdnBsMDEx X3J4X2NoYXJfeGVuIChub3QKICBkZWZpbmVkIHlldCkKLSBpbXByb3ZlIGNvbW1lbnRzCi0gcmVw bGFjZSBpZnMgd2l0aCBhIHN3aXRjaAotIGNvZGUgc3R5bGUKCkNoYW5nZXMgaW4gdjQ6Ci0gaGFu ZGxlIGNvbnNvbGVfcnggPT0gMCBpbiBjb25zb2xlX2lucHV0X2RvbWFpbgotIHVzZSByY3VfbG9j a19ieV9kb21haW4gaW5zdGVhZCBvZiBnZXRfZG9tYWluX2J5X2lkCi0gaGFuZGxlIHRoZSBjYXNl IHdoZXJlIHRoZSByZXR1cm5lZCBkb21haW4gaXMgTlVMTAotIHNlbmRfZ2xvYmFsX3ZpcnEoVklS UV9DT05TT0xFKSBvbmx5IHdoZW4gY2hhcnMgYXJlIGZvciBEb20wCi0gbWFrZSBjb25zb2xlX3J4 IHVuc2lnbmVkIGludAotIGZpeCBjb21tZW50Ci0gY29kZSByZWFkYWJpbGl0eSBpbXByb3ZlbWVu dAotIGZpeCBvcHRfY29uc3dpdGNoWzFdID09ICd4JyBjYXNlCi0gbW92ZSBjb25zb2xlX2lucHV0 X2RvbWFpbiB0byBuZXh0IHBhdGNoCgpDaGFuZ2VzIGluIHYzOgotIG9ubHkgY2FsbCB2cGwwMTEg ZnVuY3Rpb25zIGlmZGVmIENPTkZJR19TQlNBX1ZVQVJUX0NPTlNPTEUKLSBhZGQgYmxhbmsgbGlu ZSBhbmQgc3BhY2VzCi0gcmVtb3ZlIHhlbl9yeCBmcm9tIHByaW50IG1lc3NhZ2VzCi0gcmVuYW1l IHhlbl9yeCB0byBjb25zb2xlX3J4Ci0ga2VlcCBzd2l0Y2hfc2VyaWFsX2lucHV0KCkgYXQgYm9v dAotIGFkZCBiZXR0ZXIgY29tbWVudHMKLSBmaXggZXhpc3RpbmcgY29tbWVudAotIGFkZCB3YXJu aW5nIGlmIG5vIGd1ZXN0cyBjb25zb2xlL3VhcnQgaXMgYXZhaWxhYmxlCi0gYWRkIGNvbnNvbGVf aW5wdXRfZG9tYWluIGZ1bmN0aW9uCgpDaGFuZ2VzIGluIHYyOgotIG9ubHkgY2FsbCB2cGwwMTFf cnhfY2hhciBpZiB0aGUgdnBsMDExIGhhcyBiZWVuIGluaXRpYWxpemVkCi0tLQogeGVuL2RyaXZl cnMvY2hhci9jb25zb2xlLmMgfCA4MiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKy0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNjggaW5zZXJ0aW9ucygrKSwgMTQgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEveGVuL2RyaXZlcnMvY2hhci9jb25zb2xlLmMgYi94ZW4vZHJp dmVycy9jaGFyL2NvbnNvbGUuYwppbmRleCA5MDdhYTk3Li40MTRkMzI5IDEwMDY0NAotLS0gYS94 ZW4vZHJpdmVycy9jaGFyL2NvbnNvbGUuYworKysgYi94ZW4vZHJpdmVycy9jaGFyL2NvbnNvbGUu YwpAQCAtMzEsMTAgKzMxLDEzIEBACiAjaW5jbHVkZSA8eGVuL2Vhcmx5X3ByaW50ay5oPgogI2lu Y2x1ZGUgPHhlbi93YXJuaW5nLmg+CiAjaW5jbHVkZSA8eGVuL3B2X2NvbnNvbGUuaD4KKyNpbmNs dWRlIDxhc20vc2V0dXAuaD4KIAogI2lmZGVmIENPTkZJR19YODYKICNpbmNsdWRlIDx4ZW4vY29u c29sZWQuaD4KICNpbmNsdWRlIDxhc20vZ3Vlc3QuaD4KKyNlbHNlCisjaW5jbHVkZSA8YXNtL3Zw bDAxMS5oPgogI2VuZGlmCiAKIC8qIGNvbnNvbGU6IGNvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIGNv bnNvbGUgb3V0cHV0cy4gKi8KQEAgLTM5MSwzMSArMzk0LDgyIEBAIHN0YXRpYyB2b2lkIGR1bXBf Y29uc29sZV9yaW5nX2tleSh1bnNpZ25lZCBjaGFyIGtleSkKICAgICBmcmVlX3hlbmhlYXBfcGFn ZXMoYnVmLCBvcmRlcik7CiB9CiAKLS8qIENUUkwtPHN3aXRjaF9jaGFyPiBzd2l0Y2hlcyBpbnB1 dCBkaXJlY3Rpb24gYmV0d2VlbiBYZW4gYW5kIERPTTAuICovCisvKgorICogQ1RSTC08c3dpdGNo X2NoYXI+IGNoYW5nZXMgaW5wdXQgZGlyZWN0aW9uLCByb3RhdGluZyBhbW9uZyBYZW4sIERvbTAs CisgKiBhbmQgdGhlIERvbVVzIHN0YXJ0ZWQgZnJvbSBYZW4gYXQgYm9vdC4KKyAqLwogI2RlZmlu ZSBzd2l0Y2hfY29kZSAob3B0X2NvbnN3aXRjaFswXS0nYScrMSkKLXN0YXRpYyBpbnQgX19yZWFk X21vc3RseSB4ZW5fcnggPSAxOyAvKiBGQUxTRSA9PiBpbnB1dCBwYXNzZWQgdG8gZG9tYWluIDAu ICovCisvKgorICogY29uc29sZV9yeD0wID0+IGlucHV0IHRvIHhlbgorICogY29uc29sZV9yeD0x ID0+IGlucHV0IHRvIGRvbTAKKyAqIGNvbnNvbGVfcng9TiA9PiBpbnB1dCB0byBkb20oTi0xKQor ICovCitzdGF0aWMgdW5zaWduZWQgaW50IF9fcmVhZF9tb3N0bHkgY29uc29sZV9yeCA9IDA7CiAK IHN0YXRpYyB2b2lkIHN3aXRjaF9zZXJpYWxfaW5wdXQodm9pZCkKIHsKLSAgICBzdGF0aWMgY2hh ciAqaW5wdXRfc3RyWzJdID0geyAiRE9NMCIsICJYZW4iIH07Ci0gICAgeGVuX3J4ID0gIXhlbl9y eDsKLSAgICBwcmludGsoIioqKiBTZXJpYWwgaW5wdXQgLT4gJXMiLCBpbnB1dF9zdHJbeGVuX3J4 XSk7CisgICAgaWYgKCBjb25zb2xlX3J4ID09IG1heF9pbml0X2RvbWlkICsgMSApCisgICAgewor ICAgICAgICBjb25zb2xlX3J4ID0gMDsKKyAgICAgICAgcHJpbnRrKCIqKiogU2VyaWFsIGlucHV0 IHRvIFhlbiIpOworICAgIH0KKyAgICBlbHNlCisgICAgeworICAgICAgICBjb25zb2xlX3J4Kys7 CisgICAgICAgIHByaW50aygiKioqIFNlcmlhbCBpbnB1dCB0byBET00lZCIsIGNvbnNvbGVfcngg LSAxKTsKKyAgICB9CisKICAgICBpZiAoIHN3aXRjaF9jb2RlICkKLSAgICAgICAgcHJpbnRrKCIg KHR5cGUgJ0NUUkwtJWMnIHRocmVlIHRpbWVzIHRvIHN3aXRjaCBpbnB1dCB0byAlcykiLAotICAg ICAgICAgICAgICAgb3B0X2NvbnN3aXRjaFswXSwgaW5wdXRfc3RyWyF4ZW5fcnhdKTsKKyAgICAg ICAgcHJpbnRrKCIgKHR5cGUgJ0NUUkwtJWMnIHRocmVlIHRpbWVzIHRvIHN3aXRjaCBpbnB1dCki LAorICAgICAgICAgICAgICAgb3B0X2NvbnN3aXRjaFswXSk7CiAgICAgcHJpbnRrKCJcbiIpOwog fQogCiBzdGF0aWMgdm9pZCBfX3NlcmlhbF9yeChjaGFyIGMsIHN0cnVjdCBjcHVfdXNlcl9yZWdz ICpyZWdzKQogewotICAgIGlmICggeGVuX3J4ICkKKyAgICBzd2l0Y2ggKCBjb25zb2xlX3J4ICkK KyAgICB7CisgICAgY2FzZSAwOgogICAgICAgICByZXR1cm4gaGFuZGxlX2tleXByZXNzKGMsIHJl Z3MpOwogCi0gICAgLyogRGVsaXZlciBpbnB1dCB0byBndWVzdCBidWZmZXIsIHVubGVzcyBpdCBp cyBhbHJlYWR5IGZ1bGwuICovCi0gICAgaWYgKCAoc2VyaWFsX3J4X3Byb2Qtc2VyaWFsX3J4X2Nv bnMpICE9IFNFUklBTF9SWF9TSVpFICkKLSAgICAgICAgc2VyaWFsX3J4X3JpbmdbU0VSSUFMX1JY X01BU0soc2VyaWFsX3J4X3Byb2QrKyldID0gYzsKLSAgICAvKiBBbHdheXMgbm90aWZ5IHRoZSBn dWVzdDogcHJldmVudHMgcmVjZWl2ZSBwYXRoIGZyb20gZ2V0dGluZyBzdHVjay4gKi8KLSAgICBz ZW5kX2dsb2JhbF92aXJxKFZJUlFfQ09OU09MRSk7CisgICAgY2FzZSAxOgorICAgICAgICAvKgor ICAgICAgICAgKiBEZWxpdmVyIGlucHV0IHRvIHRoZSBoYXJkd2FyZSBkb21haW4gYnVmZmVyLCB1 bmxlc3MgaXQgaXMKKyAgICAgICAgICogYWxyZWFkeSBmdWxsLgorICAgICAgICAgKi8KKyAgICAg ICAgaWYgKCAoc2VyaWFsX3J4X3Byb2QgLSBzZXJpYWxfcnhfY29ucykgIT0gU0VSSUFMX1JYX1NJ WkUgKQorICAgICAgICAgICAgc2VyaWFsX3J4X3JpbmdbU0VSSUFMX1JYX01BU0soc2VyaWFsX3J4 X3Byb2QrKyldID0gYzsKKworICAgICAgICAvKgorICAgICAgICAgKiBBbHdheXMgbm90aWZ5IHRo ZSBoYXJkd2FyZSBkb21haW46IHByZXZlbnRzIHJlY2VpdmUgcGF0aCBmcm9tCisgICAgICAgICAq IGdldHRpbmcgc3R1Y2suCisgICAgICAgICAqLworICAgICAgICBzZW5kX2dsb2JhbF92aXJxKFZJ UlFfQ09OU09MRSk7CisgICAgICAgIGJyZWFrOworCisjaWYgMAorICAgIGRlZmF1bHQ6CisgICAg eworICAgICAgICBzdHJ1Y3QgZG9tYWluICpkID0gcmN1X2xvY2tfZG9tYWluX2J5X2FueV9pZChj b25zb2xlX3J4IC0gMSk7CisKKyAgICAgICAgLyoKKyAgICAgICAgICogSWYgd2UgaGF2ZSBhIHBy b3Blcmx5IGluaXRpYWxpemVkIHZwbDAxMSBjb25zb2xlIGZvciB0aGUKKyAgICAgICAgICogZG9t YWluLCB3aXRob3V0IGEgZnVsbCBQViByaW5nIHRvIERvbTAgKGluIHRoYXQgY2FzZSBpbnB1dAor ICAgICAgICAgKiBjb21lcyBmcm9tIHRoZSBQViByaW5nKSwgdGhlbiBzZW5kIHRoZSBjaGFyYWN0 ZXIgdG8gaXQuCisgICAgICAgICAqLworICAgICAgICBpZiAoIGQgIT0gTlVMTCAmJgorICAgICAg ICAgICAgICFkLT5hcmNoLnZwbDAxMS5iYWNrZW5kX2luX2RvbWFpbiAmJgorICAgICAgICAgICAg IGQtPmFyY2gudnBsMDExLmJhY2tlbmQueGVuICE9IE5VTEwgKQorICAgICAgICAgICAgdnBsMDEx X3J4X2NoYXJfeGVuKGQsIGMpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBwcmludGsoIkNh bm5vdCBzZW5kIGNoYXJzIHRvIERvbSVkOiBubyBVQVJUIGF2YWlsYWJsZVxuIiwKKyAgICAgICAg ICAgICAgICAgICBjb25zb2xlX3J4IC0gMSk7CisKKyAgICAgICAgaWYgKCBkICE9IE5VTEwgKQor ICAgICAgICAgICAgcmN1X3VubG9ja19kb21haW4oZCk7CisgICAgfQorI2VuZGlmCisgICAgfQog CiAjaWZkZWYgQ09ORklHX1g4NgogICAgIGlmICggcHZfc2hpbSAmJiBwdl9jb25zb2xlICkKQEAg LTk0NCw3ICs5OTgsNyBAQCB2b2lkIF9faW5pdCBjb25zb2xlX2VuZGJvb3Qodm9pZCkKICAgICAg KiBhIHVzZWZ1bCAnaG93IHRvIHN3aXRjaCcgbWVzc2FnZS4KICAgICAgKi8KICAgICBpZiAoIG9w dF9jb25zd2l0Y2hbMV0gPT0gJ3gnICkKLSAgICAgICAgeGVuX3J4ID0gIXhlbl9yeDsKKyAgICAg ICAgY29uc29sZV9yeCA9IG1heF9pbml0X2RvbWlkICsgMTsKIAogICAgIHJlZ2lzdGVyX2tleWhh bmRsZXIoJ3cnLCBkdW1wX2NvbnNvbGVfcmluZ19rZXksCiAgICAgICAgICAgICAgICAgICAgICAg ICAic3luY2hyb25vdXNseSBkdW1wIGNvbnNvbGUgcmluZyBidWZmZXIgKGRtZXNnKSIsIDApOwot LSAKMS45LjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpo dHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs