From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrei Borzenkov Subject: Re: [PATCH v2 4/4] arm64: update the introduction of xen boot commands in docs/grub.texi Date: Fri, 26 Feb 2016 08:24:07 +0300 Message-ID: References: <1456382355-24614-2-git-send-email-fu.wei@linaro.org> <1456382355-24614-5-git-send-email-fu.wei@linaro.org> <56CF3B24.6030605@gmail.com> Reply-To: The development of GNU GRUB Mime-Version: 1.0 (1.0) Content-Type: text/plain; charset="koi8-r" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: grub-devel-bounces+gcbgd-grub-devel=m.gmane.org@gnu.org Sender: grub-devel-bounces+gcbgd-grub-devel=m.gmane.org@gnu.org To: Fu Wei Cc: The development of GNU GRUB , "xen-devel@lists.xensource.com" , Ian Campbell , Vladimir Serbinenko , Julien Grall , Leif Lindholm , Linaro UEFI Mailman List , Jon Masters List-Id: xen-devel@lists.xenproject.org Cgrv1NDSwdfMxc7PINMgaVBob25lCgo+IDI2IMbF19IuIDIwMTYgxy4sINcgNzo0OCwgRnUgV2Vp IDxmdS53ZWlAbGluYXJvLm9yZz4gzsHQydPBzCjBKToKPiAKPiBIaSBBbmRyZWkKPiAKPj4gT24g MjYgRmVicnVhcnkgMjAxNiBhdCAwMTozNCwgQW5kcmVpIEJvcnplbmtvdiA8YXJ2aWRqYWFyQGdt YWlsLmNvbT4gd3JvdGU6Cj4+IDI1LjAyLjIwMTYgMDk6MzksIGZ1LndlaUBsaW5hcm8ub3JnINDJ 28XUOgo+Pj4gRnJvbTogRnUgV2VpIDxmdS53ZWlAbGluYXJvLm9yZz4KPj4+IAo+Pj4gZGVsZXRl OiB4ZW5fbGludXgsIHhlbl9pbml0cmQsIHhlbl94c20KPj4+IGFkZDogeGVuX21vZHVsZQo+Pj4g Cj4+PiBUaGlzIHVwZGF0ZSBiYXNlcyBvbgo+Pj4gICAgY29tbWl0IDBlZGQ3NTBlNTA2OTg4NTQw NjgzNThlYTUzNTI4MTAwYTkxOTI5MDIKPj4+ICAgIEF1dGhvcjogVmxhZGltaXIgU2VyYmluZW5r byA8cGhjb2RlckBnbWFpbC5jb20+Cj4+PiAgICBEYXRlOiAgIEZyaSBKYW4gMjIgMTA6MTg6NDcg MjAxNiArMDEwMAo+Pj4gCj4+PiAgICAgICAgeGVuX2Jvb3Q6IFJlbW92ZSBvYnNvbGV0ZSBtb2R1 bGUgdHlwZSBkaXN0aW5jdGlvbnMuCj4+PiAKPj4+IFNpZ25lZC1vZmYtYnk6IEZ1IFdlaSA8ZnUu d2VpQGxpbmFyby5vcmc+Cj4+PiAtLS0KPj4+IGRvY3MvZ3J1Yi50ZXhpIHwgMzIgKysrKysrKysr LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4+IDEgZmlsZSBjaGFuZ2VkLCA5IGluc2VydGlvbnMo KyksIDIzIGRlbGV0aW9ucygtKQo+Pj4gCj4+PiBkaWZmIC0tZ2l0IGEvZG9jcy9ncnViLnRleGkg Yi9kb2NzL2dydWIudGV4aQo+Pj4gaW5kZXggODJmNmZhNC4uMGY5OWM1MCAxMDA2NDQKPj4+IC0t LSBhL2RvY3MvZ3J1Yi50ZXhpCj4+PiArKysgYi9kb2NzL2dydWIudGV4aQo+Pj4gQEAgLTM4NjEs OSArMzg2MSw3IEBAIHlvdSBmb3JnZXQgYSBjb21tYW5kLCB5b3UgY2FuIHJ1biB0aGUgY29tbWFu ZCBAY29tbWFuZHtoZWxwfQo+Pj4gKiB2aWRlb2luZm86OiAgICAgICAgICAgICAgICAgICBMaXN0 IGF2YWlsYWJsZSB2aWRlbyBtb2Rlcwo+Pj4gQGNvbW1lbnQgKiB4ZW5fKjo6ICAgICAgICAgICAg ICBYZW4gYm9vdCBjb21tYW5kcwo+Pj4gKiB4ZW5faHlwZXJ2aXNvcjo6ICAgICAgICAgICAgICBM b2FkIHhlbiBoeXBlcnZpc29yIGJpbmFyeQo+Pj4gLSogeGVuX2xpbnV4OjogICAgICAgICAgICAg ICAgICAgTG9hZCBkb20wIGtlcm5lbCBmb3IgeGVuIGh5cGVydmlzb3IKPj4+IC0qIHhlbl9pbml0 cmQ6OiAgICAgICAgICAgICAgICAgIExvYWQgZG9tMCBpbml0cmQgZm9yIGRvbTAga2VybmVsCj4+ PiAtKiB4ZW5feHNtOjogICAgICAgICAgICAgICAgICAgICBMb2FkIHhlbiBzZWN1cml0eSBtb2R1 bGUgZm9yIHhlbiBoeXBlcnZpc29yCj4+PiArKiB4ZW5fbW9kdWxlOjogICAgICAgICAgICAgICAg ICBMb2FkIHhlbiBtb2R1bGVzIGZvciB4ZW4gaHlwZXJ2aXNvcgo+Pj4gQGVuZCBtZW51Cj4+PiAK Pj4+IAo+Pj4gQEAgLTUxNDEsMzAgKzUxMzksMTggQEAgdmVyYmF0aW0gYXMgdGhlIEBkZm57a2Vy bmVsIGNvbW1hbmQtbGluZX0uIEFueSBvdGhlciBiaW5hcmllcyBtdXN0IGJlCj4+PiByZWxvYWRl ZCBhZnRlciB1c2luZyB0aGlzIGNvbW1hbmQuCj4+PiBAZW5kIGRlZmZuCj4+PiAKPj4+IC1Abm9k ZSB4ZW5fbGludXgKPj4+IC1Ac3Vic2VjdGlvbiB4ZW5fbGludXgKPj4+ICtAbm9kZSB4ZW5fbW9k dWxlCj4+PiArQHN1YnNlY3Rpb24geGVuX21vZHVsZQo+Pj4gCj4+PiAtQGRlZmZuIENvbW1hbmQg eGVuX2xpbnV4IGZpbGUgW2FyZ3VtZW50c10KPj4+IC1Mb2FkIGEgZG9tMCBrZXJuZWwgaW1hZ2Ug Zm9yIHhlbiBoeXBlcnZpc29yIGF0IHRoZSBib290aW5nIHByb2Nlc3Mgb2YgeGVuLgo+Pj4gK0Bk ZWZmbiBDb21tYW5kIHhlbl9tb2R1bGUgWy0tbm91bnppcF0gZmlsZSBbYXJndW1lbnRzXQo+Pj4g K0xvYWQgYSBtb2R1bGUgZm9yIHhlbiBoeXBlcnZpc29yIGF0IHRoZSBib290aW5nIHByb2Nlc3Mg b2YgeGVuLgo+Pj4gVGhlIHJlc3Qgb2YgdGhlIGxpbmUgaXMgcGFzc2VkIHZlcmJhdGltIGFzIHRo ZSBtb2R1bGUgY29tbWFuZCBsaW5lLgo+Pj4gK0VhY2ggbW9kdWxlIHdpbGwgYmUgaWRlbnRpZmll ZCBieSB0aGUgb3JkZXIgaW4gd2hpY2ggdGhlIG1vZHVsZXMgYXJlIGFkZGVkLgo+Pj4gK1RoZSAx c3QgbW9kdWxlOiBkb20wIGtlcm5lbCBpbWFnZQo+Pj4gK1RoZSAybmQgbW9kdWxlOiBkb20wIHJh bWRpc2sKPj4+ICtBbGwgc3Vic2VxdWVudCBtb2R1bGVzOiBVTktOT1cKPj4+IEBlbmQgZGVmZm4K Pj4gCj4+IEhtbSAuLi4gZnJvbSBwcmV2aW91cyBkaXNjdXNzaW9uIEkgZ2F0aGVyZWQgdGhhdCBY ZW4gY2FuIGRldGVjdCBtb2R1bGUKPj4gdHlwZS4gV2hhdCBpZiB0aGVyZSBpcyBubyBpbml0cmQg Zm9yIGRvbTA/IEhvdyBjYW4gc3Vic2VxdWVudCBtb2R1bGVzIGJlCj4gCj4gTm93ICwgWGVuIGRl dGVjdCBtb2R1bGUgdHlwZSBieSB0aGUgb3JkZXIuIChhdCBsZWFzdCBvbiBBUk02NCkuCj4gSSB0 aGluayBpMzg2IGlzIHVzaW5nIE11bHRpYm9vdCgyKSBwcm90b2NvbCwgc28gbWF5YmUgdGhpcyBv cmRlciBpcwo+IG5vdGhpbmcgdG8gZG8gd2l0aCBpMzg2Lgo+IAoKVGhlbiB3ZSBoYXZlIG9idmlv dXMgcHJvYmxlbSB3aXRoIHlvdXIgWFNNIHBhdGNoIChodHRwOi8vc2F2YW5uYWguZ251Lm9yZy9i dWdzLz80MzQyMCkgLSBYU00gbWF5IGxhbmQgYXMgdGhlIGZpcnN0IG1vZHVsZS4gVGhhdCdzIGFj dHVhbGx5IHNvbWV0aGluZyB0byBzb2x2ZSBvbiBYZW4gc2lkZSBJIHRoaW5rLiBJdCdzIGp1c3Qg dGhhdCBzbyBmYXIgd2UgaGFkIGp1c3Qga2VybmVsIGFuZCBpbml0cmQsIHNvIHRoYXQgd2FzIG5v biBpc3N1ZS4KCgo+IHNvIG1heWJlIHdlIGNhbiBzYXk6Cj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KPiBPbiBBUk02NCwgZWFjaCBtb2R1bGUgd2lsbCBiZSBpZGVudGlmaWVkIGJ5IHRo ZSBvcmRlciBpbiB3aGljaCB0aGUKPiBtb2R1bGVzIGFyZSBhZGRlZC4KPiBUaGUgMXN0IG1vZHVs ZTogZG9tMCBrZXJuZWwgaW1hZ2UKPiBUaGUgMm5kIG1vZHVsZTogZG9tMCByYW1kaXNrIChvcHRp b25hbCkKPiBBbGwgc3Vic2VxdWVudCBtb2R1bGVzOiBVTktOT1dOCj4gCj4gT24gaTM4NiwgIHRo ZSBtb2R1bGVzIHdpbGwgYmUgaWRlbnRpZmllZCBieSBNdWx0aWJvb3QoMikgcHJvdG9jb2wuCj4g LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiAKPiBJcyB0aGF0IGJldHRlcj8gIHBsZWFz ZSBjb3JyZWN0IG1lIGlmIEkgbWlzcyBzb21ldGhpbmcuCj4gCj4+IGxvYWRlZCB0aGVuPwo+PiAK Pj4+IC1Abm9kZSB4ZW5faW5pdHJkCj4+PiAtQHN1YnNlY3Rpb24geGVuX2luaXRyZAo+Pj4gLQo+ Pj4gLUBkZWZmbiBDb21tYW5kIHhlbl9pbml0cmQgZmlsZQo+Pj4gLUxvYWQgYSBpbml0cmQgaW1h Z2UgZm9yIGRvbTAga2VybmVsIGF0IHRoZSBib290aW5nIHByb2Nlc3Mgb2YgeGVuLgo+Pj4gLUBl bmQgZGVmZm4KPj4+IC0KPj4+IC1Abm9kZSB4ZW5feHNtCj4+PiAtQHN1YnNlY3Rpb24geGVuX3hz bQo+Pj4gLQo+Pj4gLUBkZWZmbiBDb21tYW5kIHhlbl94c20gZmlsZQo+Pj4gLUxvYWQgYSB4ZW4g c2VjdXJpdHkgbW9kdWxlIGZvciB4ZW4gaHlwZXJ2aXNvciBhdCB0aGUgYm9vdGluZyBwcm9jZXNz IG9mIHhlbi4KPj4+IC1TZWUgQHVyZWZ7aHR0cDovL3dpa2kueGVuLm9yZy93aWtpL1hTTX0gZm9y IG1vcmUgZGV0YWlsLgo+Pj4gLUBlbmQgZGVmZm4KPj4+IC0KPj4+IC0KPj4+IEBub2RlIE5ldHdv cmtpbmcgY29tbWFuZHMKPj4+IEBzZWN0aW9uIFRoZSBsaXN0IG9mIG5ldHdvcmtpbmcgY29tbWFu ZHMKPiAKPiAKPiAKPiAtLSAKPiBCZXN0IHJlZ2FyZHMsCj4gCj4gRnUgV2VpCj4gU29mdHdhcmUg RW5naW5lZXIKPiBSZWQgSGF0IFNvZnR3YXJlIChCZWlqaW5nKSBDby4sTHRkLlNoYW5naGFpIEJy YW5jaAo+IFBoOiArODYgMjEgNjEyMjEzMjYoZGlyZWN0KQo+IFBoOiArODYgMTg2IDIwMjAgNDY4 NCAobW9iaWxlKQo+IFJvb20gMTUxMiwgUmVndXMgT25lIENvcnBvcmF0ZSBBdmVudWUsTGV2ZWwg MTUsCj4gT25lIENvcnBvcmF0ZSBBdmVudWUsMjIyIEh1YmluIFJvYWQsSHVhbmdwdSBEaXN0cmlj dCwKPiBTaGFuZ2hhaSxDaGluYSAyMDAwMjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCkdydWItZGV2ZWwgbWFpbGluZyBsaXN0CkdydWItZGV2ZWxAZ251 Lm9yZwpodHRwczovL2xpc3RzLmdudS5vcmcvbWFpbG1hbi9saXN0aW5mby9ncnViLWRldmVsCg== From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1aZAsz-0007Xq-DS for mharc-grub-devel@gnu.org; Fri, 26 Feb 2016 00:24:17 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:56141) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aZAsx-0007XX-3u for grub-devel@gnu.org; Fri, 26 Feb 2016 00:24:16 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aZAst-0004vC-Td for grub-devel@gnu.org; Fri, 26 Feb 2016 00:24:15 -0500 Received: from mail-lb0-x229.google.com ([2a00:1450:4010:c04::229]:33630) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aZAst-0004v6-FH for grub-devel@gnu.org; Fri, 26 Feb 2016 00:24:11 -0500 Received: by mail-lb0-x229.google.com with SMTP id ep2so8852690lbb.0 for ; Thu, 25 Feb 2016 21:24:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=content-type:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=++aSCUKj+9qNGLgWHjvPyIh4C/Xq3Fcz4Z47JayoPsU=; b=QZZaoU9VOPkKTd8SrvabH4qpiQt63yAeKrdVB+tKDZ4qhbw5eWfrt1BpQtuui1MAaB 4tm8niDQQAnnk0KwQOwVBEeiSWpg7awahh4gaDF9+OZ4Q9a2fd646e9DMPlltdOwEvd0 2jUXPfkixG7lKLwt1EMMqi5x+du0A88PVBsQJpboYWZRdxitAejqK2rUx2Yet1efpfw6 f5G7zG9NkjD/U/WxHiVqODrcmA1f4/LMb2o+qRxEvVbjK4Yu99yUKYl8uVVsqx//R03/ cQw6y8v4XU9BWASACtULd8I/nrO6Cz+t5wK00zD56Lf3+Rog4R1u0sjUj1vZUTxCBtyW AlmA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:content-type:mime-version:subject:from :in-reply-to:date:cc:content-transfer-encoding:message-id:references :to; bh=++aSCUKj+9qNGLgWHjvPyIh4C/Xq3Fcz4Z47JayoPsU=; b=X+etTirlNX8yphyyTczZr6j8IrwpqAYuB+adDVY58O6msQczxGE9LvFZekAEjpGxHC gZs1cJ2LjKNmt2AD3qXH0idF2PhK1cSWXg4GclWDwuDc4B1P/Uqb6T3a6OVtAAhq+4Xl jUhoEz6O6K3MllqEHOiVkaHL5imtBr/+Twfg2sM72Jd8bKAh9KdXgJjMbbHabwAVwVyw gz/q0JOUI0/oCiio+Qpzq0HF3ARbmh6WJ1zyh4kp/SRNbGHF5tfZgIHUJYY8n6Vw/Ad3 YO7Peb3vZ7YO5CjavX9fGBwEE9tauXkCCBCFnrl4VxYvLlZwFpjL72GkBNgBhwXUOYnG DMqQ== X-Gm-Message-State: AD7BkJJ3FiaU5y+yFrs2hXwY6ut/vGAE2Yj+eKrizDwnatwjWnhB84xrT5/Xb9GascSduA== X-Received: by 10.112.189.225 with SMTP id gl1mr408702lbc.86.1456464250477; Thu, 25 Feb 2016 21:24:10 -0800 (PST) Received: from [10.141.112.176] ([213.87.146.204]) by smtp.gmail.com with ESMTPSA id rd3sm1553431lbb.2.2016.02.25.21.24.08 (version=TLSv1/SSLv3 cipher=OTHER); Thu, 25 Feb 2016 21:24:09 -0800 (PST) Content-Type: text/plain; charset=koi8-r Mime-Version: 1.0 (1.0) Subject: Re: [PATCH v2 4/4] arm64: update the introduction of xen boot commands in docs/grub.texi From: Andrei Borzenkov X-Mailer: iPhone Mail (12H321) In-Reply-To: Date: Fri, 26 Feb 2016 08:24:07 +0300 Content-Transfer-Encoding: quoted-printable Message-Id: References: <1456382355-24614-2-git-send-email-fu.wei@linaro.org> <1456382355-24614-5-git-send-email-fu.wei@linaro.org> <56CF3B24.6030605@gmail.com> To: Fu Wei X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2a00:1450:4010:c04::229 Cc: The development of GNU GRUB , "xen-devel@lists.xensource.com" , Ian Campbell , Vladimir Serbinenko , Julien Grall , Leif Lindholm , Linaro UEFI Mailman List , Jon Masters X-BeenThere: grub-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list Reply-To: The development of GNU GRUB List-Id: The development of GNU GRUB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 26 Feb 2016 05:24:16 -0000 =EF=D4=D0=D2=C1=D7=CC=C5=CE=CF =D3 iPhone > 26 =C6=C5=D7=D2. 2016 =C7., =D7 7:48, Fu Wei =CE=C1=D0= =C9=D3=C1=CC(=C1): >=20 > Hi Andrei >=20 >> On 26 February 2016 at 01:34, Andrei Borzenkov wrot= e: >> 25.02.2016 09:39, fu.wei@linaro.org =D0=C9=DB=C5=D4: >>> From: Fu Wei >>>=20 >>> delete: xen_linux, xen_initrd, xen_xsm >>> add: xen_module >>>=20 >>> This update bases on >>> commit 0edd750e50698854068358ea53528100a9192902 >>> Author: Vladimir Serbinenko >>> Date: Fri Jan 22 10:18:47 2016 +0100 >>>=20 >>> xen_boot: Remove obsolete module type distinctions. >>>=20 >>> Signed-off-by: Fu Wei >>> --- >>> docs/grub.texi | 32 +++++++++----------------------- >>> 1 file changed, 9 insertions(+), 23 deletions(-) >>>=20 >>> diff --git a/docs/grub.texi b/docs/grub.texi >>> index 82f6fa4..0f99c50 100644 >>> --- a/docs/grub.texi >>> +++ b/docs/grub.texi >>> @@ -3861,9 +3861,7 @@ you forget a command, you can run the command @com= mand{help} >>> * videoinfo:: List available video modes >>> @comment * xen_*:: Xen boot commands >>> * xen_hypervisor:: Load xen hypervisor binary >>> -* xen_linux:: Load dom0 kernel for xen hypervisor >>> -* xen_initrd:: Load dom0 initrd for dom0 kernel >>> -* xen_xsm:: Load xen security module for xen hyperv= isor >>> +* xen_module:: Load xen modules for xen hypervisor >>> @end menu >>>=20 >>>=20 >>> @@ -5141,30 +5139,18 @@ verbatim as the @dfn{kernel command-line}. Any o= ther binaries must be >>> reloaded after using this command. >>> @end deffn >>>=20 >>> -@node xen_linux >>> -@subsection xen_linux >>> +@node xen_module >>> +@subsection xen_module >>>=20 >>> -@deffn Command xen_linux file [arguments] >>> -Load a dom0 kernel image for xen hypervisor at the booting process of x= en. >>> +@deffn Command xen_module [--nounzip] file [arguments] >>> +Load a module for xen hypervisor at the booting process of xen. >>> The rest of the line is passed verbatim as the module command line. >>> +Each module will be identified by the order in which the modules are ad= ded. >>> +The 1st module: dom0 kernel image >>> +The 2nd module: dom0 ramdisk >>> +All subsequent modules: UNKNOW >>> @end deffn >>=20 >> Hmm ... from previous discussion I gathered that Xen can detect module >> type. What if there is no initrd for dom0? How can subsequent modules be >=20 > Now , Xen detect module type by the order. (at least on ARM64). > I think i386 is using Multiboot(2) protocol, so maybe this order is > nothing to do with i386. >=20 Then we have obvious problem with your XSM patch (http://savannah.gnu.org/bu= gs/?43420) - XSM may land as the first module. That's actually something to s= olve on Xen side I think. It's just that so far we had just kernel and initr= d, so that was non issue. > so maybe we can say: > ----------------------------- > On ARM64, each module will be identified by the order in which the > modules are added. > The 1st module: dom0 kernel image > The 2nd module: dom0 ramdisk (optional) > All subsequent modules: UNKNOWN >=20 > On i386, the modules will be identified by Multiboot(2) protocol. > ----------------------------- >=20 > Is that better? please correct me if I miss something. >=20 >> loaded then? >>=20 >>> -@node xen_initrd >>> -@subsection xen_initrd >>> - >>> -@deffn Command xen_initrd file >>> -Load a initrd image for dom0 kernel at the booting process of xen. >>> -@end deffn >>> - >>> -@node xen_xsm >>> -@subsection xen_xsm >>> - >>> -@deffn Command xen_xsm file >>> -Load a xen security module for xen hypervisor at the booting process of= xen. >>> -See @uref{http://wiki.xen.org/wiki/XSM} for more detail. >>> -@end deffn >>> - >>> - >>> @node Networking commands >>> @section The list of networking commands >=20 >=20 >=20 > --=20 > Best regards, >=20 > Fu Wei > Software Engineer > Red Hat Software (Beijing) Co.,Ltd.Shanghai Branch > Ph: +86 21 61221326(direct) > Ph: +86 186 2020 4684 (mobile) > Room 1512, Regus One Corporate Avenue,Level 15, > One Corporate Avenue,222 Hubin Road,Huangpu District, > Shanghai,China 200021