From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Stabellini Subject: [PATCH v6 22/26] xen: support console_switching between Dom0 and DomUs on ARM Date: Fri, 2 Nov 2018 16:45:14 -0700 Message-ID: <1541202318-9840-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+CkNDOiBhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tCkNDOiBH ZW9yZ2UuRHVubGFwQGV1LmNpdHJpeC5jb20KQ0M6IGlhbi5qYWNrc29uQGV1LmNpdHJpeC5jb20K Q0M6IGpiZXVsaWNoQHN1c2UuY29tCkNDOiBrb25yYWQud2lsa0BvcmFjbGUuY29tCkNDOiB0aW1A eGVuLm9yZwpDQzogd2VpLmxpdTJAY2l0cml4LmNvbQotLS0KQ2hhbmdlcyBpbiB2NjoKLSBpbXBy b3ZlIGluLWNvZGUgY29tbWVudAotIGltcHJvdmUgY29tbWl0IG1lc3NhaGUKLSBjb2RlIHN0eWxl CgpDaGFuZ2VzIGluIHY1OgotIG1vdmUgcGF0Y2ggZWFybGllciBhbmQgZGlzYWJsZSBjb2RlIHRo YXQgY2FsbHMgdnBsMDExX3J4X2NoYXJfeGVuIChub3QKICBkZWZpbmVkIHlldCkKLSBpbXByb3Zl IGNvbW1lbnRzCi0gcmVwbGFjZSBpZnMgd2l0aCBhIHN3aXRjaAotIGNvZGUgc3R5bGUKCkNoYW5n ZXMgaW4gdjQ6Ci0gaGFuZGxlIGNvbnNvbGVfcnggPT0gMCBpbiBjb25zb2xlX2lucHV0X2RvbWFp bgotIHVzZSByY3VfbG9ja19ieV9kb21haW4gaW5zdGVhZCBvZiBnZXRfZG9tYWluX2J5X2lkCi0g aGFuZGxlIHRoZSBjYXNlIHdoZXJlIHRoZSByZXR1cm5lZCBkb21haW4gaXMgTlVMTAotIHNlbmRf Z2xvYmFsX3ZpcnEoVklSUV9DT05TT0xFKSBvbmx5IHdoZW4gY2hhcnMgYXJlIGZvciBEb20wCi0g bWFrZSBjb25zb2xlX3J4IHVuc2lnbmVkIGludAotIGZpeCBjb21tZW50Ci0gY29kZSByZWFkYWJp bGl0eSBpbXByb3ZlbWVudAotIGZpeCBvcHRfY29uc3dpdGNoWzFdID09ICd4JyBjYXNlCi0gbW92 ZSBjb25zb2xlX2lucHV0X2RvbWFpbiB0byBuZXh0IHBhdGNoCgpDaGFuZ2VzIGluIHYzOgotIG9u bHkgY2FsbCB2cGwwMTEgZnVuY3Rpb25zIGlmZGVmIENPTkZJR19TQlNBX1ZVQVJUX0NPTlNPTEUK LSBhZGQgYmxhbmsgbGluZSBhbmQgc3BhY2VzCi0gcmVtb3ZlIHhlbl9yeCBmcm9tIHByaW50IG1l c3NhZ2VzCi0gcmVuYW1lIHhlbl9yeCB0byBjb25zb2xlX3J4Ci0ga2VlcCBzd2l0Y2hfc2VyaWFs X2lucHV0KCkgYXQgYm9vdAotIGFkZCBiZXR0ZXIgY29tbWVudHMKLSBmaXggZXhpc3RpbmcgY29t bWVudAotIGFkZCB3YXJuaW5nIGlmIG5vIGd1ZXN0cyBjb25zb2xlL3VhcnQgaXMgYXZhaWxhYmxl Ci0gYWRkIGNvbnNvbGVfaW5wdXRfZG9tYWluIGZ1bmN0aW9uCgpDaGFuZ2VzIGluIHYyOgotIG9u bHkgY2FsbCB2cGwwMTFfcnhfY2hhciBpZiB0aGUgdnBsMDExIGhhcyBiZWVuIGluaXRpYWxpemVk Ci0tLQogeGVuL2RyaXZlcnMvY2hhci9jb25zb2xlLmMgfCA4MiArKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKy0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNjggaW5zZXJ0aW9u cygrKSwgMTQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEveGVuL2RyaXZlcnMvY2hhci9jb25z b2xlLmMgYi94ZW4vZHJpdmVycy9jaGFyL2NvbnNvbGUuYwppbmRleCAzYjc1ZjdhLi44YTAxYTQz IDEwMDY0NAotLS0gYS94ZW4vZHJpdmVycy9jaGFyL2NvbnNvbGUuYworKysgYi94ZW4vZHJpdmVy cy9jaGFyL2NvbnNvbGUuYwpAQCAtMzEsMTAgKzMxLDEzIEBACiAjaW5jbHVkZSA8eGVuL2Vhcmx5 X3ByaW50ay5oPgogI2luY2x1ZGUgPHhlbi93YXJuaW5nLmg+CiAjaW5jbHVkZSA8eGVuL3B2X2Nv bnNvbGUuaD4KKyNpbmNsdWRlIDxhc20vc2V0dXAuaD4KIAogI2lmZGVmIENPTkZJR19YODYKICNp bmNsdWRlIDx4ZW4vY29uc29sZWQuaD4KICNpbmNsdWRlIDxhc20vZ3Vlc3QuaD4KKyNlbHNlCisj aW5jbHVkZSA8YXNtL3ZwbDAxMS5oPgogI2VuZGlmCiAKIC8qIGNvbnNvbGU6IGNvbW1hLXNlcGFy YXRlZCBsaXN0IG9mIGNvbnNvbGUgb3V0cHV0cy4gKi8KQEAgLTM5MSwzMSArMzk0LDgyIEBAIHN0 YXRpYyB2b2lkIGR1bXBfY29uc29sZV9yaW5nX2tleSh1bnNpZ25lZCBjaGFyIGtleSkKICAgICBm cmVlX3hlbmhlYXBfcGFnZXMoYnVmLCBvcmRlcik7CiB9CiAKLS8qIENUUkwtPHN3aXRjaF9jaGFy PiBzd2l0Y2hlcyBpbnB1dCBkaXJlY3Rpb24gYmV0d2VlbiBYZW4gYW5kIERPTTAuICovCisvKgor ICogQ1RSTC08c3dpdGNoX2NoYXI+IGNoYW5nZXMgaW5wdXQgZGlyZWN0aW9uLCByb3RhdGluZyBh bW9uZyBYZW4sIERvbTAsCisgKiBhbmQgdGhlIERvbVVzIHN0YXJ0ZWQgZnJvbSBYZW4gYXQgYm9v dC4KKyAqLwogI2RlZmluZSBzd2l0Y2hfY29kZSAob3B0X2NvbnN3aXRjaFswXS0nYScrMSkKLXN0 YXRpYyBpbnQgX19yZWFkX21vc3RseSB4ZW5fcnggPSAxOyAvKiBGQUxTRSA9PiBpbnB1dCBwYXNz ZWQgdG8gZG9tYWluIDAuICovCisvKgorICogY29uc29sZV9yeD0wID0+IGlucHV0IHRvIHhlbgor ICogY29uc29sZV9yeD0xID0+IGlucHV0IHRvIGRvbTAKKyAqIGNvbnNvbGVfcng9TiA9PiBpbnB1 dCB0byBkb20oTi0xKQorICovCitzdGF0aWMgdW5zaWduZWQgaW50IF9fcmVhZF9tb3N0bHkgY29u c29sZV9yeCA9IDA7CiAKIHN0YXRpYyB2b2lkIHN3aXRjaF9zZXJpYWxfaW5wdXQodm9pZCkKIHsK LSAgICBzdGF0aWMgY2hhciAqaW5wdXRfc3RyWzJdID0geyAiRE9NMCIsICJYZW4iIH07Ci0gICAg eGVuX3J4ID0gIXhlbl9yeDsKLSAgICBwcmludGsoIioqKiBTZXJpYWwgaW5wdXQgLT4gJXMiLCBp bnB1dF9zdHJbeGVuX3J4XSk7CisgICAgaWYgKCBjb25zb2xlX3J4ID09IG1heF9pbml0X2RvbWlk ICsgMSApCisgICAgeworICAgICAgICBjb25zb2xlX3J4ID0gMDsKKyAgICAgICAgcHJpbnRrKCIq KiogU2VyaWFsIGlucHV0IHRvIFhlbiIpOworICAgIH0KKyAgICBlbHNlCisgICAgeworICAgICAg ICBjb25zb2xlX3J4Kys7CisgICAgICAgIHByaW50aygiKioqIFNlcmlhbCBpbnB1dCB0byBET00l ZCIsIGNvbnNvbGVfcnggLSAxKTsKKyAgICB9CisKICAgICBpZiAoIHN3aXRjaF9jb2RlICkKLSAg ICAgICAgcHJpbnRrKCIgKHR5cGUgJ0NUUkwtJWMnIHRocmVlIHRpbWVzIHRvIHN3aXRjaCBpbnB1 dCB0byAlcykiLAotICAgICAgICAgICAgICAgb3B0X2NvbnN3aXRjaFswXSwgaW5wdXRfc3RyWyF4 ZW5fcnhdKTsKKyAgICAgICAgcHJpbnRrKCIgKHR5cGUgJ0NUUkwtJWMnIHRocmVlIHRpbWVzIHRv IHN3aXRjaCBpbnB1dCkiLAorICAgICAgICAgICAgICAgb3B0X2NvbnN3aXRjaFswXSk7CiAgICAg cHJpbnRrKCJcbiIpOwogfQogCiBzdGF0aWMgdm9pZCBfX3NlcmlhbF9yeChjaGFyIGMsIHN0cnVj dCBjcHVfdXNlcl9yZWdzICpyZWdzKQogewotICAgIGlmICggeGVuX3J4ICkKKyAgICBzd2l0Y2gg KCBjb25zb2xlX3J4ICkKKyAgICB7CisgICAgY2FzZSAwOgogICAgICAgICByZXR1cm4gaGFuZGxl X2tleXByZXNzKGMsIHJlZ3MpOwogCi0gICAgLyogRGVsaXZlciBpbnB1dCB0byBndWVzdCBidWZm ZXIsIHVubGVzcyBpdCBpcyBhbHJlYWR5IGZ1bGwuICovCi0gICAgaWYgKCAoc2VyaWFsX3J4X3By b2Qtc2VyaWFsX3J4X2NvbnMpICE9IFNFUklBTF9SWF9TSVpFICkKLSAgICAgICAgc2VyaWFsX3J4 X3JpbmdbU0VSSUFMX1JYX01BU0soc2VyaWFsX3J4X3Byb2QrKyldID0gYzsKLSAgICAvKiBBbHdh eXMgbm90aWZ5IHRoZSBndWVzdDogcHJldmVudHMgcmVjZWl2ZSBwYXRoIGZyb20gZ2V0dGluZyBz dHVjay4gKi8KLSAgICBzZW5kX2dsb2JhbF92aXJxKFZJUlFfQ09OU09MRSk7CisgICAgY2FzZSAx OgorICAgICAgICAvKgorICAgICAgICAgKiBEZWxpdmVyIGlucHV0IHRvIHRoZSBoYXJkd2FyZSBk b21haW4gYnVmZmVyLCB1bmxlc3MgaXQgaXMKKyAgICAgICAgICogYWxyZWFkeSBmdWxsLgorICAg ICAgICAgKi8KKyAgICAgICAgaWYgKCAoc2VyaWFsX3J4X3Byb2QgLSBzZXJpYWxfcnhfY29ucykg IT0gU0VSSUFMX1JYX1NJWkUgKQorICAgICAgICAgICAgc2VyaWFsX3J4X3JpbmdbU0VSSUFMX1JY X01BU0soc2VyaWFsX3J4X3Byb2QrKyldID0gYzsKKworICAgICAgICAvKgorICAgICAgICAgKiBB bHdheXMgbm90aWZ5IHRoZSBoYXJkd2FyZSBkb21haW46IHByZXZlbnRzIHJlY2VpdmUgcGF0aCBm cm9tCisgICAgICAgICAqIGdldHRpbmcgc3R1Y2suCisgICAgICAgICAqLworICAgICAgICBzZW5k X2dsb2JhbF92aXJxKFZJUlFfQ09OU09MRSk7CisgICAgICAgIGJyZWFrOworCisjaWYgMAorICAg IGRlZmF1bHQ6CisgICAgeworICAgICAgICBzdHJ1Y3QgZG9tYWluICpkID0gcmN1X2xvY2tfZG9t YWluX2J5X2FueV9pZChjb25zb2xlX3J4IC0gMSk7CisKKyAgICAgICAgLyoKKyAgICAgICAgICog SWYgd2UgaGF2ZSBhIHByb3Blcmx5IGluaXRpYWxpemVkIHZwbDAxMSBjb25zb2xlIGZvciB0aGUK KyAgICAgICAgICogZG9tYWluLCB3aXRob3V0IGEgZnVsbCBQViByaW5nIHRvIERvbTAgKGluIHRo YXQgY2FzZSBpbnB1dAorICAgICAgICAgKiBjb21lcyBmcm9tIHRoZSBQViByaW5nKSwgdGhlbiBz ZW5kIHRoZSBjaGFyYWN0ZXIgdG8gaXQuCisgICAgICAgICAqLworICAgICAgICBpZiAoIGQgIT0g TlVMTCAmJgorICAgICAgICAgICAgICFkLT5hcmNoLnZwbDAxMS5iYWNrZW5kX2luX2RvbWFpbiAm JgorICAgICAgICAgICAgIGQtPmFyY2gudnBsMDExLmJhY2tlbmQueGVuICE9IE5VTEwgKQorICAg ICAgICAgICAgdnBsMDExX3J4X2NoYXJfeGVuKGQsIGMpOworICAgICAgICBlbHNlCisgICAgICAg ICAgICBwcmludGsoIkNhbm5vdCBzZW5kIGNoYXJzIHRvIERvbSVkOiBubyBVQVJUIGF2YWlsYWJs ZVxuIiwKKyAgICAgICAgICAgICAgICAgICBjb25zb2xlX3J4IC0gMSk7CisKKyAgICAgICAgaWYg KCBkICE9IE5VTEwgKQorICAgICAgICAgICAgcmN1X3VubG9ja19kb21haW4oZCk7CisgICAgfQor I2VuZGlmCisgICAgfQogCiAjaWZkZWYgQ09ORklHX1g4NgogICAgIGlmICggcHZfc2hpbSAmJiBw dl9jb25zb2xlICkKQEAgLTk0Myw3ICs5OTcsNyBAQCB2b2lkIF9faW5pdCBjb25zb2xlX2VuZGJv b3Qodm9pZCkKICAgICAgKiBhIHVzZWZ1bCAnaG93IHRvIHN3aXRjaCcgbWVzc2FnZS4KICAgICAg Ki8KICAgICBpZiAoIG9wdF9jb25zd2l0Y2hbMV0gPT0gJ3gnICkKLSAgICAgICAgeGVuX3J4ID0g IXhlbl9yeDsKKyAgICAgICAgY29uc29sZV9yeCA9IG1heF9pbml0X2RvbWlkICsgMTsKIAogICAg IHJlZ2lzdGVyX2tleWhhbmRsZXIoJ3cnLCBkdW1wX2NvbnNvbGVfcmluZ19rZXksCiAgICAgICAg ICAgICAgICAgICAgICAgICAic3luY2hyb25vdXNseSBkdW1wIGNvbnNvbGUgcmluZyBidWZmZXIg KGRtZXNnKSIsIDApOwotLSAKMS45LjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54 ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGlu Zm8veGVuLWRldmVs