From: Wen Congyang <wency@cn.fujitsu.com>
To: Avi Kivity <avi@redhat.com>
Cc: Kevin Wolf <kwolf@redhat.com>,
Isaku Yamahata <yamahata@valinux.co.jp>,
qemu-devel@nongnu.org, "Michael S. Tsirkin" <mst@redhat.com>
Subject: Re: [Qemu-devel] [PATCH] pci: add standard bridge device
Date: Fri, 09 Sep 2011 14:43:24 +0800 [thread overview]
Message-ID: <4E69B58C.2010606@cn.fujitsu.com> (raw)
In-Reply-To: <4E4E808C.4000205@redhat.com>
At 08/19/2011 11:26 PM, Avi Kivity Write:
> On 08/18/2011 10:12 PM, Wen Congyang wrote:
>> >>
>> >> The following patch can fix this problem, but I'm not sure whether it
>> >> is right.
>> >
>> > It's correct but insufficient, the filtering code (pci_bridge_filter)
>> > needs to be updated to use the memory API.
>>
>> I read the function pci_bridge_filter(), and the function only read
>> PCI bridge's config space(command, base and limit). If base> limit,
>> it will set addr to PCI_BAR_UNMAPPED.
>>
>> I do not find anything that needs to updated to use the memory API.
>
> Currently it doesn't do any filtering at all. Bridges need to create a
> new address space, then attach aliases of this region (corresponding to
> the filtered area and to the legacy vga space) to the parent bus'
> address space.
>
>> I add a scsi controller on pci bus1, and a scsi disk on this controller.
>> I can read and write this disk, and I do not meet any problem.
>>
>
> However, filtering doesn't work. You could put a BAR outside the
> filtered area and it would be visible to the guest.
>
I test it on real hardware. If I put a BAR outside the filterer area, and
then run 'lspci -vv', the BAR does not change:
# lspci -vv
...
00:1c.1 PCI bridge: Intel Corporation N10/ICH 7 Family PCI Express Port 2 (rev 01) (prog-if 00 [Normal decode])
...
Bus: primary=00, secondary=02, subordinate=02, sec-latency=0
I/O behind bridge: 0000d000-0000dfff
Memory behind bridge: fea00000-feafffff
Prefetchable memory behind bridge: 0000000080400000-00000000805fffff
...
00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev e1) (prog-if 01 [Subtractive decode])
...
Bus: primary=00, secondary=03, subordinate=03, sec-latency=32
I/O behind bridge: 0000e000-0000efff
Memory behind bridge: feb00000-febfffff
Prefetchable memory behind bridge: 0000000080600000-00000000806fffff
...
03:01.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)
...
Region 0: I/O ports at a800 [size=256]
Region 1: Memory at febfbc00 (32-bit, non-prefetchable) [size=256]
Expansion ROM at 80600000 [disabled] [size=128K]
...
# od -t x1 /sys/bus/pci/devices/0000\:03\:01.0/config
0000000 ec 10 39 81 03 00 90 82 10 00 00 02 00 00 00 00
0000020 01 a8 00 00 00 bc af fe 00 00 00 00 00 00 00 00
0000040 00 00 00 00 00 00 00 00 00 00 00 00 ec 10 39 81
0000060 00 00 bc fe 50 00 00 00 00 00 00 00 06 01 20 40
0000100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0000120 01 00 02 76 00 00 00 00 00 00 00 00 00 00 00 00
0000140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
*
0000400
The BAR1 is feafbc00, and it is in the bus2's range.
I map the BAR(mmap /sys/bus/pci/devices/0000\:03\:01.0/resource1), and find
I can read and write the memory.
Thanks
Wen Congyang
next prev parent reply other threads:[~2011-09-09 6:44 UTC|newest]
Thread overview: 71+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-07-04 9:43 [Qemu-devel] [PATCH] pci: add standard bridge device Michael S. Tsirkin
2011-07-05 13:29 ` Isaku Yamahata
2011-07-05 13:43 ` Michael S. Tsirkin
2011-08-17 8:37 ` Wen Congyang
2011-08-18 3:22 ` Wen Congyang
2011-08-18 15:15 ` Avi Kivity
2011-08-19 5:12 ` Wen Congyang
2011-08-19 15:26 ` Avi Kivity
2011-08-22 3:13 ` Wen Congyang
2011-08-22 6:23 ` Avi Kivity
2011-09-02 1:32 ` Wen Congyang
2011-09-02 2:56 ` Wen Congyang
2011-09-04 8:25 ` Avi Kivity
2011-09-06 3:06 ` Wen Congyang
2011-09-06 7:45 ` Avi Kivity
2011-09-07 4:39 ` Wen Congyang
2011-09-07 11:52 ` Michael S. Tsirkin
2011-09-08 6:15 ` Wen Congyang
2011-09-08 7:26 ` Wen Congyang
2011-09-08 9:43 ` Gerd Hoffmann
2011-09-08 9:58 ` Wen Congyang
2011-09-08 10:42 ` Michael S. Tsirkin
2011-09-08 11:03 ` Wen Congyang
2011-09-08 11:13 ` Michael S. Tsirkin
2011-09-09 6:43 ` Wen Congyang [this message]
2011-09-09 7:12 ` Michael S. Tsirkin
2011-09-09 7:24 ` Wen Congyang
2011-09-09 7:34 ` Michael S. Tsirkin
2011-09-09 7:35 ` Wen Congyang
2011-08-26 9:43 ` Michael S. Tsirkin
2011-08-28 7:50 ` Avi Kivity
2011-08-28 11:41 ` Michael S. Tsirkin
2011-08-28 13:10 ` Avi Kivity
2011-08-28 13:42 ` Michael S. Tsirkin
2011-08-28 13:53 ` Avi Kivity
2011-09-04 12:30 ` Michael S. Tsirkin
2011-09-04 12:40 ` Avi Kivity
2011-09-04 13:01 ` Michael S. Tsirkin
2011-09-04 13:05 ` Avi Kivity
2011-09-04 13:09 ` Avi Kivity
2011-09-04 13:41 ` Michael S. Tsirkin
2011-09-04 13:55 ` Avi Kivity
2011-09-04 14:21 ` Michael S. Tsirkin
2011-09-04 14:36 ` Avi Kivity
2011-09-04 14:54 ` Michael S. Tsirkin
2011-09-04 15:14 ` Avi Kivity
2011-09-04 15:24 ` Michael S. Tsirkin
2011-09-04 15:37 ` Avi Kivity
2011-09-04 15:45 ` Michael S. Tsirkin
2011-09-04 15:46 ` Avi Kivity
2011-09-04 16:19 ` Michael S. Tsirkin
2011-09-04 16:22 ` Avi Kivity
2011-09-04 17:03 ` Michael S. Tsirkin
2011-09-05 5:36 ` Avi Kivity
2011-09-04 15:26 ` Michael S. Tsirkin
2011-09-04 15:42 ` Avi Kivity
2011-09-04 15:46 ` Michael S. Tsirkin
2011-09-04 15:49 ` Avi Kivity
2011-09-04 16:20 ` Michael S. Tsirkin
2011-08-26 9:57 ` Michael S. Tsirkin
2011-09-04 17:11 ` Michael S. Tsirkin
2011-09-05 8:17 ` Markus Armbruster
2011-09-05 9:38 ` Michael S. Tsirkin
2011-09-05 9:53 ` Gerd Hoffmann
2011-09-05 11:40 ` Michael S. Tsirkin
2011-09-06 9:18 ` Markus Armbruster
[not found] ` <4E801927.8020708@cn.fujitsu.com>
[not found] ` <20110926070824.GB5860@redhat.com>
[not found] ` <4EAF4AFD.6040102@cn.fujitsu.com>
[not found] ` <20111101084439.GA11958@redhat.com>
2011-11-01 8:49 ` Wen Congyang
2011-11-01 11:48 ` Michael S. Tsirkin
2011-11-02 1:00 ` Wen Congyang
2011-11-02 2:15 ` Isaku Yamahata
2011-11-02 2:38 ` Wen Congyang
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=4E69B58C.2010606@cn.fujitsu.com \
--to=wency@cn.fujitsu.com \
--cc=avi@redhat.com \
--cc=kwolf@redhat.com \
--cc=mst@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=yamahata@valinux.co.jp \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).