All of lore.kernel.org
 help / color / mirror / Atom feed
From: Omkar Bolla <omkar.bolla@pathpartnertech.com>
To: Julien Grall <julien.grall@arm.com>
Cc: jgross@suse.com, xen-devel@lists.xensource.com,
	Oleksandr_Andrushchenko@epam.com,
	Oleksandr Andrushchenko <andr2000@gmail.com>,
	Lars Kurth <lars.kurth.xen@gmail.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: Xen PV: Sample new PV driver for buffer sharing between domains
Date: Thu, 1 Nov 2018 14:45:05 +0530	[thread overview]
Message-ID: <CAC4nxbvVfeN1gXa9sKSBNL6p21r8K6hMDpxYSSR4G1SWOb=eBg@mail.gmail.com> (raw)
In-Reply-To: <d920cfb3-a6cc-8f1b-e0b4-2b59ba768030@arm.com>


[-- Attachment #1.1: Type: text/plain, Size: 15485 bytes --]

Hi,

> May I ask why you need the dependency on the rootfs?

I am trying to pass-through the display to guest domain. to do through
driver needs clocks. I have written simple basic clock pv frontend and
backend.
So I thought these clocks must be initialised before display driver
initialisation.

But if I start both domain and clocks script one after another, clock got
initialised properly. Problem solved.
But still i have some doubt, is it possible to do some thing in xenbits src
to start automatically when we start underprivileged domain?

I have one more question about pass-through
To implement pass through I took reference from below link
https://wiki.xen.org/images/1/17/Device_passthrough_xen.pdf

I added 'xen-passthrough' to actual dom0 dtb and created new dtb with below
nodes in passthrough node
============================================================================
dpe: dpe@10004000 {
compatible = "hisilicon,hi3660-dpe";
status = "ok";
#if 0
//ACTUAL REG PROPERTY of DISPLAY
                        reg = <0x0 0xE8600000 0x0 0x80000>,
                                        <0x0 0xFFF35000 0 0x1000>,
                                        <0x0 0xFFF0A000 0 0x1000>,
                                        <0x0 0xFFF31000 0 0x1000>,
                                        <0x0 0xE86C0000 0 0x10000>;
#endif
//reg = <0x0 0x10004000 0x0 0x80000>,
reg = <0x0 0x10004000 0x0 0x80000>,
      <0x0 0x10084000 0 0x1000>,
      <0x0 0x10085000 0 0x1000>,
      <0x0 0x10086000 0 0x1000>,
      <0x0 0x100C4000 0 0x10000>;
//       <0x0 0x10087000 0 0x10000>;

interrupts = <0 245 4>;

clocks = <&clk_xen HI3660_ACLK_GATE_DSS>,
<&clk_xen HI3660_PCLK_GATE_DSS>,
<&clk_xen HI3660_CLK_GATE_EDC0>,
<&clk_xen HI3660_CLK_GATE_LDI0>,
<&clk_xen HI3660_CLK_GATE_LDI1>,
<&clk_xen HI3660_CLK_GATE_DSS_AXI_MM>,
<&clk_xen HI3660_PCLK_GATE_MMBUF>;
clock-names = "aclk_dss",
"pclk_dss",
"clk_edc0",
"clk_ldi0",
"clk_ldi1",
"clk_dss_axi_mm",
"pclk_mmbuf";

dma-coherent;

port {
dpe_out: endpoint {
remote-endpoint = <&dsi_in>;
};
};
};

dsi: dsi@10097000 {
compatible = "hisilicon,hi3660-dsi";
status = "ok";
#if 0
//ACTUAL REG PROPERTY of DISPLAY
reg = <0 0xE8601000 0 0x7F000>,
                                        <0 0xFFF35000 0 0x1000>;
#endif
// reg = <0 0x10097000 0 0x7F000>,
// <0 0x10116000 0 0x1000>;
reg = <0 0x10004000 0 0x80000>,
<0 0x10084000 0 0x1000>;

clocks = <&clk_xen HI3660_CLK_GATE_TXDPHY0_REF>,
<&clk_xen HI3660_CLK_GATE_TXDPHY1_REF>,
<&clk_xen HI3660_CLK_GATE_TXDPHY0_CFG>,
<&clk_xen HI3660_CLK_GATE_TXDPHY1_CFG>,
<&clk_xen HI3660_PCLK_GATE_DSI0>,
<&clk_xen HI3660_PCLK_GATE_DSI1>;
clock-names = "clk_txdphy0_ref",
"clk_txdphy1_ref",
"clk_txdphy0_cfg",
"clk_txdphy1_cfg",
"pclk_dsi0",
"pclk_dsi1";

#address-cells = <1>;
#size-cells = <0>;

};
#endif
clocks {
compatible = "simple-bus";
#address-cells = <2>;
#size-cells = <2>;
ranges;
clk_xen: xen_clk@0 {
compatible = "xen,xen-vclk";
#clock-cells = <1>;
};
};
============================================================================
Below is my 'debian.cfg' file:
============================================================================
kernel = "/debian/Image"
device_tree="/debian/domu.dtb"
memory = 512
vcpus = 8
cpus = "all"
name="debian"

################# DPE ################
#iomem = [ "0xE8600,0x80@0x10004", "0xFFF35,1@0x10084", "0xFFF0A,1@0x10085",
"0xFFF31,1@0x10086", "0xE86C0,10@0x10087"]
#iomem = [ "0xE8600,0x80", "0xFFF35,1", "0xFFF0A,1", "0xFFF31,1",
"0xE86C0,10"]
irqs = [ 277 ]

iomem = [ "0xE8600,80@0x10004" ]

iomem = [ "0xFFF35,1@0x10084" ]
iomem = [ "0xFFF0A,1@0x10085" ]
iomem = [ "0xFFF31,1@0x10086" ]
iomem = [ "0xE86C0,10@0x100C4"]
#iomem = [ "0xE86C0,10@0x10087"]
#iomem = [ "0xE8600,80@0x00000" ]

################# DPE ################
################# DSI ################
#iomem = [ "0xE8601,0x7F", "0xFFF35,1"]
#iomem = [ "0xE8601,0x7F@0x10097", "0xFFF35,1@0x10116",
"0xE8601,0x7F@0x10195"]

#iomem = [ "0xE8601,7F@0x10097" ]
#iomem = [ "0xFFF35,1@0x10116" ]


iomem = [ "0xE8601,7F@0x10005" ]
iomem = [ "0xFFF35,1@0x10084" ]
################# DSI ################

#vif = ['mac=00:16:3e:64:b8:40,bridge=xenbr0']
#nics = 1
#vif = [ 'eth0=00:60:00:00:00:01' ]

disk = ['/dev/loop1,raw,xvda,w']
extra = "earlyprintk=xenboot console=hvc0 root=/dev/xvda rootfstype=ext4 rw
video=HDMI-A-1:1280x720@60"
============================================================================
Here I am using same io space(GFNs) for DPE and DSI nodes, and having same
below error
and tried with different GFNs and giving same error.

But adding this, Every thing is good but when i am trying to remap iomem
second time, having below error
============================================================================
[    3.215021] OF: rrrrrrrrrrrr: start: 0x10004000, sz = 0x80000
[    3.215062] [DISPLAY] dsi_parse_dt(): 1536: of device:
/passthrough/dsi@10097000
[    3.215083] [DISPLAY] dsi_parse_dt(): 1537:
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
[    3.215108] [DISPLAY] dsi_parse_dt(): 1540: ctx->base: ffffff800bd01000
[    3.215126] [DISPLAY] dsi_parse_dt(): 1541:
[    3.215136] OF: rrrrrrrrrrrr: start: 0x10084000, sz = 0x1000
[    3.215169] [DISPLAY] dsi_parse_dt(): 1548:
[    4.159087] [DISPLAY] dsi_parse_dt(): 1563:
[    4.159092] [DISPLAY] dsi_parse_dt(): 1568:
[    4.159132] [D][XEN_VCLK]xen_vclk_xfer(): 163: buffer: clk_txdphy0_ref,1
[    4.159163] [D][XEN_VCLK]xen_vclk_xfer(): 164:
*******************************************
[    4.159399] [D][XEN_VCLK]xen_vclk_xfer(): 170:
*******************************************
[    4.159626] [D][XEN_VCLK]xen_vclk_xfer(): 176: Sending IRQ_DATA to
domain-0
[    4.160218] [D][XEN_VCLK]xen_vclk_interrupt(): 446: IRQ(13) from domain
0 fired!!!
[    4.160359] [D][XEN_VCLK]vclk_fe_bh(): 394: irq_status: 0x3
[    4.160532] [D][XEN_VCLK]vclk_fe_bh(): 407: ACK Recieved from dom-0
[    4.160542] [D][XEN_VCLK]xen_vclk_xfer(): 179: Xfer Done
[    4.160545] [D][XEN_VCLK]xen_of_clk_src_onecell_get(): 286:  Xfer done...
[    4.160554] [DISPLAY] dsi_parse_dt(): 1575:
[    4.160560] [D][XEN_VCLK]vclk_round_rate(): 224:  called...
[    4.160567] [D][XEN_VCLK]xen_vclk_xfer(): 163: buffer:
clk_txdphy0_ref,4,19200000
[    4.160570] [D][XEN_VCLK]xen_vclk_xfer(): 164:
*******************************************
[    4.161095] [D][XEN_VCLK]xen_vclk_xfer(): 170:
*******************************************
[    4.161331] [D][XEN_VCLK]xen_vclk_xfer(): 176: Sending IRQ_DATA to
domain-0
[    4.161946] [D][XEN_VCLK]xen_vclk_interrupt(): 446: IRQ(13) from domain
0 fired!!!
[    4.162120] [D][XEN_VCLK]vclk_fe_bh(): 394: irq_status: 0x3
[    4.162284] [D][XEN_VCLK]vclk_fe_bh(): 407: ACK Recieved from dom-0
[    4.162295] [D][XEN_VCLK]xen_vclk_xfer(): 179: Xfer Done
[    4.162301] [DISPLAY] dsi_parse_dt(): 1583:
[    4.162314] [D][XEN_VCLK]xen_vclk_xfer(): 163: buffer: clk_txdphy0_cfg,1
[    4.162316] [D][XEN_VCLK]xen_vclk_xfer(): 164:
*******************************************
[    4.162641] [D][XEN_VCLK]xen_vclk_xfer(): 170:
*******************************************
[    4.162984] [D][XEN_VCLK]xen_vclk_xfer(): 176: Sending IRQ_DATA to
domain-0
[    4.163596] [D][XEN_VCLK]xen_vclk_interrupt(): 446: IRQ(13) from domain
0 fired!!!
[    4.167753] [D][XEN_VCLK]vclk_fe_bh(): 394: irq_status: 0x3
[    4.167955] [D][XEN_VCLK]vclk_fe_bh(): 407: ACK Recieved from dom-0
[    4.167968] [D][XEN_VCLK]xen_vclk_xfer(): 179: Xfer Done
[    4.167971] [D][XEN_VCLK]xen_of_clk_src_onecell_get(): 286:  Xfer done...
[    4.167979] [DISPLAY] dsi_parse_dt(): 1593:
[    4.167982] [D][XEN_VCLK]vclk_round_rate(): 224:  called...
[    4.167985] [D][XEN_VCLK]xen_vclk_xfer(): 163: buffer:
clk_txdphy0_cfg,4,19200000
[    4.167992] [D][XEN_VCLK]xen_vclk_xfer(): 164:
*******************************************
[    4.168244] [D][XEN_VCLK]xen_vclk_xfer(): 170:
*******************************************
[    4.168476] [D][XEN_VCLK]xen_vclk_xfer(): 176: Sending IRQ_DATA to
domain-0
[    4.169101] [D][XEN_VCLK]xen_vclk_interrupt(): 446: IRQ(13) from domain
0 fired!!!
[    4.169262] [D][XEN_VCLK]vclk_fe_bh(): 394: irq_status: 0x3
[    4.169448] [D][XEN_VCLK]vclk_fe_bh(): 407: ACK Recieved from dom-0
[    4.169491] [D][XEN_VCLK]xen_vclk_xfer(): 179: Xfer Done
[    4.169510] [DISPLAY] dsi_parse_dt(): 1601:
[    4.169535] [D][XEN_VCLK]xen_vclk_xfer(): 163: buffer: pclk_dsi0,1
[    4.169554] [D][XEN_VCLK]xen_vclk_xfer(): 164:
*******************************************
[    4.169803] [D][XEN_VCLK]xen_vclk_xfer(): 170:
*******************************************
[    4.170019] [D][XEN_VCLK]xen_vclk_xfer(): 176: Sending IRQ_DATA to
domain-0
[    4.170619] [D][XEN_VCLK]xen_vclk_interrupt(): 446: IRQ(13) from domain
0 fired!!!
[    4.170779] [D][XEN_VCLK]vclk_fe_bh(): 394: irq_status: 0x3
[    4.170965] [D][XEN_VCLK]vclk_fe_bh(): 407: ACK Recieved from dom-0
[    4.170978] [D][XEN_VCLK]xen_vclk_xfer(): 179: Xfer Done
[    4.170981] [D][XEN_VCLK]xen_of_clk_src_onecell_get(): 286:  Xfer done...
[    4.170989] [DISPLAY] dsi_parse_dt(): 1611:
[    4.170992] [DISPLAY] dsi_probe(): 1654: Before component add
[    4.170997] [DISPLAY] compare_of(): 242:
[    4.171002] [DISPLAY] kirin_drm_bind(): 257:
[    4.171004] [drm] +.
[    4.171386] [DISPLAY] kirin_drm_kms_init(): 105:
[    4.171391] [drm] +.
[    4.212543] [DISPLAY] kirin_drm_mode_config_init(): 91:
[    4.212547] [DISPLAY] dss_drm_init(): 638:
[    4.212563] [drm] +.
[    4.212585] [DISPLAY] dss_dts_parse(): 513:
[    4.212603] [DISPLAY] dss_dts_parse(): 530: of device:
/passthrough/dpe@10004000
[    4.212635] [DISPLAY] dss_dts_parse(): 531:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[    4.212661] [DISPLAY] dss_dts_parse(): 532: ctx->base: ffffff800bd00000
[    4.212688] Unhandled fault: ttbr address size fault (0x96000000) at
0xffffff800bd01000
[    4.212708] Mem abort info:
[    4.212720]   Exception class = DABT (current EL), IL = 32 bits
[    4.212738]   SET = 0, FnV = 0
[    4.212751]   EA = 0, S1PTW = 0
[    4.212763] Data abort info:
[    4.212776]   ISV = 0, ISS = 0x00000000
[    4.212789]   CM = 0, WnR = 0
[    4.212806] Internal error: : 96000000 [#1] PREEMPT SMP
[    4.212821] Modules linked in:
[    4.212839] CPU: 7 PID: 99 Comm: kworker/7:1 Tainted: G S
4.14.0-rc7 #456
[    4.212857] Hardware name: XENVM-4.8 (DT)
[    4.212878] Workqueue: events deferred_probe_work_func
[    4.212893] task: ffffffc01abe6000 task.stack: ffffff8009878000
[    4.212916] PC is at dss_drm_init+0x1a8/0x680
[    4.212931] LR is at dss_drm_init+0x1a0/0x680
[    4.212945] pc : [<ffffff80087061d0>] lr : [<ffffff80087061c8>] pstate:
40000045
[    4.212963] sp : ffffff800987ba20
[    4.212973] x29: ffffff800987ba30 x28: ffffffc01bff42e8
[    4.212990] x27: ffffff800bd01000 x26: ffffffc018d25760
[    4.213006] x25: ffffff80090f8c70 x24: ffffffc017212800
[    4.213023] x23: ffffff8008e32000 x22: ffffff80090f8000
[    4.213039] x21: ffffff8008e32748 x20: ffffffc018d25018
[    4.213055] x19: ffffffc01abdf810 x18: 0000000000000010
[    4.213071] x17: 000000000000000e x16: 0000000000000020
[    4.213087] x15: ffffffffffffffff x14: ffffff80894c6157
[    4.213104] x13: ffffff80094c6165 x12: ffffff8009379000
[    4.213120] x11: 0000000005f5e0ff x10: ffffff800987b6f0
[    4.257555] x9 : 00000000ffffffd0 x8 : 000000000000004b
[    4.257573] x7 : 000000000000000c x6 : 00000000000001ee
[    4.257591] x5 : 0000000000007ceb x4 : 0000000000000000
[    4.257608] x3 : ffffff800934a000 x2 : 0000000000000000
[    4.257625] x1 : 0000000000000000 x0 : 000000000000003b
[    4.257644] Process kworker/7:1 (pid: 99, stack limit =
0xffffff8009878000)
[    4.257661] Call trace:
[    4.257672] Exception stack(0xffffff800987b8e0 to 0xffffff800987ba20)
[    4.257691] b8e0: 000000000000003b 0000000000000000 0000000000000000
ffffff800934a000
[    4.257713] b900: 0000000000000000 0000000000007ceb 00000000000001ee
000000000000000c
[    4.257734] b920: 000000000000004b 00000000ffffffd0 ffffff800987b6f0
0000000005f5e0ff
[    4.257756] b940: ffffff8009379000 ffffff80094c6165 ffffff80894c6157
ffffffffffffffff
[    4.257777] b960: 0000000000000020 000000000000000e 0000000000000010
ffffffc01abdf810
[    4.257799] b980: ffffffc018d25018 ffffff8008e32748 ffffff80090f8000
ffffff8008e32000
[    4.257821] b9a0: ffffffc017212800 ffffff80090f8c70 ffffffc018d25760
ffffff800bd01000
[    4.257842] b9c0: ffffffc01bff42e8 ffffff800987ba30 ffffff80087061c8
ffffff800987ba20
[    4.257864] b9e0: ffffff80087061d0 0000000040000045 0000000000000214
ffffff800bd00000
[    4.257885] ba00: ffffffffffffffff 0000000000007c9f ffffff800987ba30
ffffff80087061d0
[    4.257908] [<ffffff80087061d0>] dss_drm_init+0x1a8/0x680
[    4.257926] [<ffffff8008705490>] kirin_drm_bind+0x128/0x310
[    4.257945] [<ffffff8008740c88>] try_to_bring_up_master+0x180/0x1e0
[    4.257965] [<ffffff8008740d8c>] component_add+0xa4/0x170
[    4.257981] [<ffffff800870b574>] dsi_probe+0x52c/0x5a0
[    4.258000] [<ffffff8008749d60>] platform_drv_probe+0x60/0xc0
[    4.258018] [<ffffff8008747a94>] driver_probe_device+0x234/0x2e0
[    4.258037] [<ffffff8008747cb0>] __device_attach_driver+0xa0/0xe8
[    4.258056] [<ffffff80087459d0>] bus_for_each_drv+0x58/0xa8
[    4.258072] [<ffffff80087476e8>] __device_attach+0xc8/0x138
[    4.302470] [<ffffff8008747d74>] device_initial_probe+0x24/0x30
[    4.302490] [<ffffff8008746ae4>] bus_probe_device+0x9c/0xa8
[    4.302506] [<ffffff8008746fcc>] deferred_probe_work_func+0xac/0x150
[    4.302528] [<ffffff80080efd98>] process_one_work+0x1d8/0x490
[    4.302547] [<ffffff80080f0298>] worker_thread+0x248/0x478
[    4.302565] [<ffffff80080f6728>] kthread+0x138/0x140
[    4.302584] [<ffffff8008084d7c>] ret_from_fork+0x10/0x1c
[    4.302601] Code: f90037a4 97e8a1ea f943a69b 9140077b (b940037b)
[    4.302621] ---[ end trace d64c23a811313502 ]---
[    4.302638] Kernel panic - not syncing: Fatal exception
[    4.302656] SMP: stopping secondary CPUs
[    4.332694] Kernel Offset: disabled
[    4.332708] CPU features: 0x002004
[    4.332720] Memory Limit: none
[    4.332736] Rebooting in 5 seconds..
============================================================================

How to fix this IO addr size fault, I think some problem in dts or
debian.cfg to map Physical addresses to GFNs
Please help me to come out of this problem.

Thanks
Omkar B

On Thu, Nov 1, 2018 at 1:11 AM Julien Grall <julien.grall@arm.com> wrote:

>
>
> On 10/17/18 1:24 PM, Omkar Bolla wrote:
> > Hi,
>
> Hi Omkar,
>
> > I have started finding which patch introduced Armv8 Secondary CPUs issue.
> >
> > I just want to start PV vdevb before domainU debian rootfs mount. Is it
> > possible?
>
> May I ask why you need the dependency on the rootfs?
>
> Cheers,
>
> --
> Julien Grall
>

-- 






This
message contains confidential information and is intended only 
for the
individual(s) named. If you are not the intended
recipient, you are 
notified that disclosing, copying, distributing or taking any
action in 
reliance on the contents of this mail and attached file/s is strictly

prohibited. Please notify the
sender immediately and delete this e-mail 
from your system. E-mail transmission
cannot be guaranteed to be secured or 
error-free as information could be
intercepted, corrupted, lost, destroyed, 
arrive late or incomplete, or contain
viruses. The sender therefore does 
not accept liability for any errors or
omissions in the contents of this 
message, which arise as a result of e-mail
transmission.

[-- Attachment #1.2: Type: text/html, Size: 33703 bytes --]

[-- Attachment #2: Type: text/plain, Size: 157 bytes --]

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

  reply	other threads:[~2018-11-01  9:15 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-09-27  5:44 Xen PV: Sample new PV driver for buffer sharing between domains Omkar Bolla
2018-09-27  9:39 ` Lars Kurth
2018-09-27 10:07   ` Oleksandr Andrushchenko
2018-09-27 10:16     ` Juergen Gross
2018-09-27 10:20       ` Oleksandr Andrushchenko
2018-09-27 10:34         ` Julien Grall
2018-09-27 10:35         ` Omkar Bolla
2018-09-27 11:03           ` Juergen Gross
2018-09-28 12:55             ` Omkar Bolla
2018-09-28 13:42               ` Juergen Gross
2018-10-02 10:03                 ` Omkar Bolla
2018-10-03  9:53                   ` Julien Grall
2018-10-08  9:12                     ` Omkar Bolla
2018-10-08 10:30                       ` Julien Grall
2018-10-17 12:24                         ` Omkar Bolla
2018-10-31 19:41                           ` Julien Grall
2018-11-01  9:15                             ` Omkar Bolla [this message]
2018-11-01 21:49                               ` Julien Grall
2018-11-02  5:25                                 ` Omkar Bolla
2018-11-02  8:47                                 ` Wei Liu

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAC4nxbvVfeN1gXa9sKSBNL6p21r8K6hMDpxYSSR4G1SWOb=eBg@mail.gmail.com' \
    --to=omkar.bolla@pathpartnertech.com \
    --cc=Oleksandr_Andrushchenko@epam.com \
    --cc=andr2000@gmail.com \
    --cc=jgross@suse.com \
    --cc=julien.grall@arm.com \
    --cc=lars.kurth.xen@gmail.com \
    --cc=sstabellini@kernel.org \
    --cc=xen-devel@lists.xensource.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.