From: "Jianjun Wang (王建军)" <Jianjun.Wang@mediatek.com>
To: "robh@kernel.org" <robh@kernel.org>,
"amergnat@baylibre.com" <amergnat@baylibre.com>,
"kw@linux.com" <kw@linux.com>,
"lpieralisi@kernel.org" <lpieralisi@kernel.org>,
"bhelgaas@google.com" <bhelgaas@google.com>,
"angelogioacchino.delregno@collabora.com"
<angelogioacchino.delregno@collabora.com>,
"matthias.bgg@gmail.com" <matthias.bgg@gmail.com>
Cc: "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"linux-mediatek@lists.infradead.org"
<linux-mediatek@lists.infradead.org>,
"Jieyy Yang (杨洁)" <Jieyy.Yang@mediatek.com>,
"Chuanjia Liu (柳传嘉)" <Chuanjia.Liu@mediatek.com>,
"Jian Yang (杨戬)" <Jian.Yang@mediatek.com>,
"Qizhong Cheng (程啟忠)" <Qizhong.Cheng@mediatek.com>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>,
"linux-pci@vger.kernel.org" <linux-pci@vger.kernel.org>,
"Ryder Lee" <Ryder.Lee@mediatek.com>
Subject: Re: [PATCH] PCI: mediatek-gen3: Fix translation window
Date: Fri, 13 Oct 2023 08:37:17 +0000 [thread overview]
Message-ID: <cfadcaf435f36e08e1a9dd30eff99a5f1890752a.camel@mediatek.com> (raw)
In-Reply-To: <899c7275-ccca-43bb-b1ae-a3403dd18622@baylibre.com>
On Wed, 2023-10-11 at 17:38 +0200, Alexandre Mergnat wrote:
>
> External email : Please do not click links or open attachments until
> you have verified the sender or the content.
>
>
> On 11/10/2023 14:26, Jianjun Wang wrote:
> > The size of translation table should be a power of 2, using fls()
> cannot
> > get the proper value when the size is not a power of 2. For
> example,
> > fls(0x3e00000) - 1 = 25, hence the PCIe translation window size
> will be
> > set to 0x2000000 instead of the expected size 0x3e00000. Fix
> translation
> > window by splitting the MMIO space to multiple tables if its size
> is not
> > a power of 2.
>
> Hi Jianjun,
>
> I've no knowledge in PCIE, so maybe what my suggestion is stupid:
>
> Is it mandatory to fit the translation table size with 0x3e00000 (in
> this example) ?
> I'm asking because you can have an issue by reaching the maximum
> translation table number.
>
> Is it possible to just use only one table with the power of 2 size
> above
> 0x3e00000 => 0x4000000 ( fls(0x3e00000) = 26 = 0x4000000). The
> downside
> of this method is wasting allocation space. AFAIK I already see this
> kind of method for memory protection/allocation in embedded systems,
> so
> I'm wondering if this method is safer than using multiple table for
> only
> one size which isn't a power of 2.
Hi Alexandre,
It's not mandatory to fit the translation table size with 0x3e00000,
and yes we can use only one table with the power of 2 size to prevent
this.
For MediaTek's SoCs, the MMIO space range for each PCIe port is fixed,
and it will always be a power of 2, most of them will be 64MB.
The reason we have the size which isn't a power of 2 is that we reserve
an IO space for compatible purposes, some older devices may still use
IO space.
Take MT8195 as an example, its MMIO size is 64MB, and the declaration
in the DT is like:
ranges = <0x81000000 0 0x20000000 0x0 0x20000000 0 0x200000>,
<0x82000000 0 0x20200000 0x0 0x20200000 0 0x3e00000>;
The MMIO space is splited to 2MB IO space and 62MB MEM space, that's
cause the current risk of using the MEM space, since its actual
available MEM space is 32MB. But it still works for now because most of
the devices only require a very small amount of MEM space and will not
reach ranges higher than 32MB.
So for the concern of reaching the maximum translation number, I think
maybe we can just print the warning message instead of return error
code, since it still works but have some limitations(MEM space not set
as DT expected).
Thanks.
>
>
> --
> Regards,
> Alexandre
prev parent reply other threads:[~2023-10-13 8:47 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-10-11 12:26 [PATCH] PCI: mediatek-gen3: Fix translation window Jianjun Wang
2023-10-11 15:38 ` Alexandre Mergnat
2023-10-12 6:17 ` Jianjun Wang (王建军)
2023-10-12 10:27 ` Alexandre Mergnat
2023-10-12 12:52 ` AngeloGioacchino Del Regno
2023-10-12 13:30 ` Alexandre Mergnat
2023-10-13 2:52 ` Jianjun Wang (王建军)
2023-10-13 9:52 ` Alexandre Mergnat
2023-10-13 8:37 ` Jianjun Wang (王建军) [this message]
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=cfadcaf435f36e08e1a9dd30eff99a5f1890752a.camel@mediatek.com \
--to=jianjun.wang@mediatek.com \
--cc=Chuanjia.Liu@mediatek.com \
--cc=Jian.Yang@mediatek.com \
--cc=Jieyy.Yang@mediatek.com \
--cc=Qizhong.Cheng@mediatek.com \
--cc=Ryder.Lee@mediatek.com \
--cc=amergnat@baylibre.com \
--cc=angelogioacchino.delregno@collabora.com \
--cc=bhelgaas@google.com \
--cc=kw@linux.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mediatek@lists.infradead.org \
--cc=linux-pci@vger.kernel.org \
--cc=lpieralisi@kernel.org \
--cc=matthias.bgg@gmail.com \
--cc=robh@kernel.org \
/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