From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Stabellini Subject: [PATCH v3 23/25] xen: support console_switching between Dom0 and DomUs on ARM Date: Tue, 31 Jul 2018 16:28:06 -0700 Message-ID: <1533079688-9541-23-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, George.Dunlap@eu.citrix.com, andrew.cooper3@citrix.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 bGVhciB0aGF0Cml0IGlzIG9ubHkgYWJvdXQgdGhlIGhhcmR3YXJlIGRvbWFpbi4KCkV4cG9ydCBh IGZ1bmN0aW9uIG5hbWVkIGNvbnNvbGVfaW5wdXRfZG9tYWluKCkgdG8gYWxsb3cgb3RoZXJzIHRv IGtub3cKd2hpY2ggZG9tYWlucyBoYXMgaW5wdXQgYXQgYSBnaXZlbiB0aW1lLgoKU2lnbmVkLW9m Zi1ieTogU3RlZmFubyBTdGFiZWxsaW5pIDxzdGVmYW5vc0B4aWxpbnguY29tPgpDQzogYW5kcmV3 LmNvb3BlcjNAY2l0cml4LmNvbQpDQzogR2VvcmdlLkR1bmxhcEBldS5jaXRyaXguY29tCkNDOiBp YW4uamFja3NvbkBldS5jaXRyaXguY29tCkNDOiBqYmV1bGljaEBzdXNlLmNvbQpDQzoga29ucmFk LndpbGtAb3JhY2xlLmNvbQpDQzogdGltQHhlbi5vcmcKQ0M6IHdlaS5saXUyQGNpdHJpeC5jb20K LS0tCkNoYW5nZXMgaW4gdjM6Ci0gb25seSBjYWxsIHZwbDAxMSBmdW5jdGlvbnMgaWZkZWYgQ09O RklHX1NCU0FfVlVBUlRfQ09OU09MRQotIGFkZCBibGFuayBsaW5lIGFuZCBzcGFjZXMKLSByZW1v dmUgeGVuX3J4IGZyb20gcHJpbnQgbWVzc2FnZXMKLSByZW5hbWUgeGVuX3J4IHRvIGNvbnNvbGVf cngKLSBrZWVwIHN3aXRjaF9zZXJpYWxfaW5wdXQoKSBhdCBib290Ci0gYWRkIGJldHRlciBjb21t ZW50cwotIGZpeCBleGlzdGluZyBjb21tZW50Ci0gYWRkIHdhcm5pbmcgaWYgbm8gZ3Vlc3RzIGNv bnNvbGUvdWFydCBpcyBhdmFpbGFibGUKLSBhZGQgY29uc29sZV9pbnB1dF9kb21haW4gZnVuY3Rp b24KCkNoYW5nZXMgaW4gdjI6Ci0gb25seSBjYWxsIHZwbDAxMV9yeF9jaGFyIGlmIHRoZSB2cGww MTEgaGFzIGJlZW4gaW5pdGlhbGl6ZWQKLS0tCiB4ZW4vZHJpdmVycy9jaGFyL2NvbnNvbGUuYyB8 IDcxICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0KIHhlbi9p bmNsdWRlL3hlbi9jb25zb2xlLmggIHwgIDIgKysKIDIgZmlsZXMgY2hhbmdlZCwgNjAgaW5zZXJ0 aW9ucygrKSwgMTMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEveGVuL2RyaXZlcnMvY2hhci9j b25zb2xlLmMgYi94ZW4vZHJpdmVycy9jaGFyL2NvbnNvbGUuYwppbmRleCAwZjA1MzY5Li5jZDRk ZmIxIDEwMDY0NAotLS0gYS94ZW4vZHJpdmVycy9jaGFyL2NvbnNvbGUuYworKysgYi94ZW4vZHJp dmVycy9jaGFyL2NvbnNvbGUuYwpAQCAtMzEsMTAgKzMxLDEzIEBACiAjaW5jbHVkZSA8eGVuL2Vh cmx5X3ByaW50ay5oPgogI2luY2x1ZGUgPHhlbi93YXJuaW5nLmg+CiAjaW5jbHVkZSA8eGVuL3B2 X2NvbnNvbGUuaD4KKyNpbmNsdWRlIDxhc20vc2V0dXAuaD4KIAogI2lmZGVmIENPTkZJR19YODYK ICNpbmNsdWRlIDx4ZW4vY29uc29sZWQuaD4KICNpbmNsdWRlIDxhc20vZ3Vlc3QuaD4KKyNlbHNl CisjaW5jbHVkZSA8YXNtL3ZwbDAxMS5oPgogI2VuZGlmCiAKIC8qIGNvbnNvbGU6IGNvbW1hLXNl cGFyYXRlZCBsaXN0IG9mIGNvbnNvbGUgb3V0cHV0cy4gKi8KQEAgLTM4OSwzMCArMzkyLDcyIEBA IHN0YXRpYyB2b2lkIGR1bXBfY29uc29sZV9yaW5nX2tleSh1bnNpZ25lZCBjaGFyIGtleSkKICAg ICBmcmVlX3hlbmhlYXBfcGFnZXMoYnVmLCBvcmRlcik7CiB9CiAKLS8qIENUUkwtPHN3aXRjaF9j aGFyPiBzd2l0Y2hlcyBpbnB1dCBkaXJlY3Rpb24gYmV0d2VlbiBYZW4gYW5kIERPTTAuICovCisv KgorICogQ1RSTC08c3dpdGNoX2NoYXI+IHN3aXRjaGVzIGlucHV0IGRpcmVjdGlvbiBiZXR3ZWVu IFhlbiwgRG9tMCBhbmQKKyAqIERvbVVzLgorICovCiAjZGVmaW5lIHN3aXRjaF9jb2RlIChvcHRf Y29uc3dpdGNoWzBdLSdhJysxKQotc3RhdGljIGludCBfX3JlYWRfbW9zdGx5IHhlbl9yeCA9IDE7 IC8qIEZBTFNFID0+IGlucHV0IHBhc3NlZCB0byBkb21haW4gMC4gKi8KKy8qCisgKiBjb25zb2xl X3J4PTAgPT4gaW5wdXQgdG8geGVuCisgKiBjb25zb2xlX3J4PTEgPT4gaW5wdXQgdG8gZG9tMAor ICogY29uc29sZV9yeD1OID0+IGlucHV0IGRvbShOLTEpCisgKi8KK3N0YXRpYyBpbnQgX19yZWFk X21vc3RseSBjb25zb2xlX3J4ID0gMDsKKworc3RydWN0IGRvbWFpbiAqY29uc29sZV9pbnB1dF9k b21haW4odm9pZCkKK3sKKyAgICByZXR1cm4gZ2V0X2RvbWFpbl9ieV9pZChjb25zb2xlX3J4IC0g MSk7Cit9CiAKIHN0YXRpYyB2b2lkIHN3aXRjaF9zZXJpYWxfaW5wdXQodm9pZCkKIHsKLSAgICBz dGF0aWMgY2hhciAqaW5wdXRfc3RyWzJdID0geyAiRE9NMCIsICJYZW4iIH07Ci0gICAgeGVuX3J4 ID0gIXhlbl9yeDsKLSAgICBwcmludGsoIioqKiBTZXJpYWwgaW5wdXQgLT4gJXMiLCBpbnB1dF9z dHJbeGVuX3J4XSk7CisgICAgY29uc29sZV9yeCsrOworICAgIGlmICggY29uc29sZV9yeCA9PSBt YXhfaW5pdF9kb21pZCArIDIgKQorICAgICAgICBjb25zb2xlX3J4ID0gMDsKKworICAgIGlmICgg IWNvbnNvbGVfcnggKQorICAgICAgICBwcmludGsoIioqKiBTZXJpYWwgaW5wdXQgdG8gWGVuIik7 CisgICAgZWxzZQorICAgICAgICBwcmludGsoIioqKiBTZXJpYWwgaW5wdXQgdG8gRE9NJWQiLCBj b25zb2xlX3J4IC0gMSk7CisKICAgICBpZiAoIHN3aXRjaF9jb2RlICkKLSAgICAgICAgcHJpbnRr KCIgKHR5cGUgJ0NUUkwtJWMnIHRocmVlIHRpbWVzIHRvIHN3aXRjaCBpbnB1dCB0byAlcykiLAot ICAgICAgICAgICAgICAgb3B0X2NvbnN3aXRjaFswXSwgaW5wdXRfc3RyWyF4ZW5fcnhdKTsKKyAg ICAgICAgcHJpbnRrKCIgKHR5cGUgJ0NUUkwtJWMnIHRocmVlIHRpbWVzIHRvIHN3aXRjaCBpbnB1 dCkiLAorICAgICAgICAgICAgICAgb3B0X2NvbnN3aXRjaFswXSk7CiAgICAgcHJpbnRrKCJcbiIp OwogfQogCiBzdGF0aWMgdm9pZCBfX3NlcmlhbF9yeChjaGFyIGMsIHN0cnVjdCBjcHVfdXNlcl9y ZWdzICpyZWdzKQogewotICAgIGlmICggeGVuX3J4ICkKKyAgICBpZiAoIGNvbnNvbGVfcnggPT0g MCApCiAgICAgICAgIHJldHVybiBoYW5kbGVfa2V5cHJlc3MoYywgcmVncyk7CiAKLSAgICAvKiBE ZWxpdmVyIGlucHV0IHRvIGd1ZXN0IGJ1ZmZlciwgdW5sZXNzIGl0IGlzIGFscmVhZHkgZnVsbC4g Ki8KLSAgICBpZiAoIChzZXJpYWxfcnhfcHJvZC1zZXJpYWxfcnhfY29ucykgIT0gU0VSSUFMX1JY X1NJWkUgKQotICAgICAgICBzZXJpYWxfcnhfcmluZ1tTRVJJQUxfUlhfTUFTSyhzZXJpYWxfcnhf cHJvZCsrKV0gPSBjOwotICAgIC8qIEFsd2F5cyBub3RpZnkgdGhlIGd1ZXN0OiBwcmV2ZW50cyBy ZWNlaXZlIHBhdGggZnJvbSBnZXR0aW5nIHN0dWNrLiAqLworICAgIGlmICggY29uc29sZV9yeCA9 PSAxICkKKyAgICB7CisgICAgICAgIC8qIERlbGl2ZXIgaW5wdXQgdG8gZ3Vlc3QgYnVmZmVyLCB1 bmxlc3MgaXQgaXMgYWxyZWFkeSBmdWxsLiAqLworICAgICAgICBpZiAoIChzZXJpYWxfcnhfcHJv ZCAtIHNlcmlhbF9yeF9jb25zKSAhPSBTRVJJQUxfUlhfU0laRSApCisgICAgICAgICAgICBzZXJp YWxfcnhfcmluZ1tTRVJJQUxfUlhfTUFTSyhzZXJpYWxfcnhfcHJvZCsrKV0gPSBjOworICAgIH0K KyNpZmRlZiBDT05GSUdfU0JTQV9WVUFSVF9DT05TT0xFCisgICAgZWxzZQorICAgIHsKKyAgICAg ICAgc3RydWN0IGRvbWFpbiAqZCA9IGdldF9kb21haW5fYnlfaWQoY29uc29sZV9yeCAtIDEpOwor CisgICAgICAgIC8qCisgICAgICAgICAqIElmIHdlIGhhdmUgYSBwcm9wZXJseSBpbml0aWFsaXpl ZCB2cGwwMTEgY29uc29sZSBmb3IgdGhlCisgICAgICAgICAqIGRvbWFpbiwgd2l0aG91dCBhIGZ1 bGwgUFYgcmluZyB0byBEb20wIChpbiB0aGF0IGNhc2UgaW5wdXQKKyAgICAgICAgICogY29tZXMg ZnJvbSB0aGUgUFYgcmluZyksIHRoZW4gc2VuZCB0aGUgY2hhcmFjdGVyIHRvIGl0LgorICAgICAg ICAgKi8KKyAgICAgICAgaWYgKCAhZC0+YXJjaC52cGwwMTEuYmFja2VuZF9pbl9kb21haW4gJiYg ZC0+YXJjaC52cGwwMTEueGVuICE9IE5VTEwgKQorICAgICAgICAgICAgdnBsMDExX3J4X2NoYXJf eGVuKGQsIGMpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBwcmludGsoIkNhbm5vdCBzZW5k IGNoYXJzIHRvIERvbSVkOiBubyBVQVJUIGF2YWlsYWJsZVxuIiwKKyAgICAgICAgICAgICAgICAg ICBkLT5kb21haW5faWQpOworICAgIH0KKyNlbmRpZgorICAgIC8qCisgICAgICogQWx3YXlzIG5v dGlmeSB0aGUgaGFyZHdhcmUgZG9tYWluOiBwcmV2ZW50cyByZWNlaXZlIHBhdGggZnJvbQorICAg ICAqIGdldHRpbmcgc3R1Y2suCisgICAgICovCiAgICAgc2VuZF9nbG9iYWxfdmlycShWSVJRX0NP TlNPTEUpOwogCiAjaWZkZWYgQ09ORklHX1g4NgpAQCAtOTIzLDcgKzk2OCw3IEBAIHZvaWQgX19p bml0IGNvbnNvbGVfZW5kYm9vdCh2b2lkKQogICAgICAqIGEgdXNlZnVsICdob3cgdG8gc3dpdGNo JyBtZXNzYWdlLgogICAgICAqLwogICAgIGlmICggb3B0X2NvbnN3aXRjaFsxXSA9PSAneCcgKQot ICAgICAgICB4ZW5fcnggPSAheGVuX3J4OworICAgICAgICBjb25zb2xlX3J4ID0gMDsKIAogICAg IHJlZ2lzdGVyX2tleWhhbmRsZXIoJ3cnLCBkdW1wX2NvbnNvbGVfcmluZ19rZXksCiAgICAgICAg ICAgICAgICAgICAgICAgICAic3luY2hyb25vdXNseSBkdW1wIGNvbnNvbGUgcmluZyBidWZmZXIg KGRtZXNnKSIsIDApOwpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUveGVuL2NvbnNvbGUuaCBiL3hl bi9pbmNsdWRlL3hlbi9jb25zb2xlLmgKaW5kZXggZWEwNmZkOC4uMmZlMzkxMiAxMDA2NDQKLS0t IGEveGVuL2luY2x1ZGUveGVuL2NvbnNvbGUuaAorKysgYi94ZW4vaW5jbHVkZS94ZW4vY29uc29s ZS5oCkBAIC0zMSw2ICszMSw4IEBAIHZvaWQgY29uc29sZV9lbmRfc3luYyh2b2lkKTsKIHZvaWQg Y29uc29sZV9zdGFydF9sb2dfZXZlcnl0aGluZyh2b2lkKTsKIHZvaWQgY29uc29sZV9lbmRfbG9n X2V2ZXJ5dGhpbmcodm9pZCk7CiAKK3N0cnVjdCBkb21haW4gKmNvbnNvbGVfaW5wdXRfZG9tYWlu KHZvaWQpOworCiAvKgogICogU3RlYWwgb3V0cHV0IGZyb20gdGhlIGNvbnNvbGUuIFJldHVybnMg K3ZlIGlkZW50aWZpZXIsIGVsc2UgLXZlIGVycm9yLgogICogVGFrZXMgdGhlIGhhbmRsZSBvZiB0 aGUgc2VyaWFsIGxpbmUgdG8gc3RlYWwsIGFuZCBzdGVhbCBjYWxsYmFjayBmdW5jdGlvbi4KLS0g CjEuOS4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K WGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0 cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA==