<html><head></head><body><div class="ydpc8f51fc5yahoo-style-wrap" style="font-family:Helvetica Neue, Helvetica, Arial, sans-serif;font-size:16px;"><div></div>
        <div dir="ltr" data-setdir="false">HI Ozgur,</div><div dir="ltr" data-setdir="false"><br>Please see my inline response below as [Khalid]</div><div><br></div>
        
        </div><div id="ydpae0e2811yahoo_quoted_0693343029" class="ydpae0e2811yahoo_quoted">
            <div style="font-family:'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:13px;color:#26282a;">
                
                <div>
                    On Wednesday, April 13, 2022, 02:09:49 AM PDT, Ozgur Karatas <ozgurk@ieee.org> wrote:
                </div>
                <div><br></div>
                <div><br></div>
                <div><div id="ydpae0e2811yiv0471571909"><div><div dir="ltr"><div dir="ltr"><br clear="none"></div><br clear="none"><div class="ydpae0e2811yiv0471571909gmail_quote"><div dir="ltr" class="ydpae0e2811yiv0471571909gmail_attr">On Wed, Apr 13, 2022 at 11:34 AM Greg KH <<a shape="rect" href="mailto:greg@kroah.com" rel="nofollow" target="_blank">greg@kroah.com</a>> wrote:<br clear="none"></div><blockquote style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex;" class="ydpae0e2811yiv0471571909gmail_quote">On Wed, Apr 13, 2022 at 07:01:01AM +0000, Khalid F. Sabzwari wrote:<br clear="none">
>  Thanks Ozgur for quick reply.The link you shared below seems to work with MDIO interface.The PHY used on my board is Intel's i211 PHY which is controlled by PCIe interface.I found this link:<a shape="rect" href="https://docs.kernel.org/PCI/pci.html#how-to-access-pci-config-space" rel="nofollow" target="_blank">https://docs.kernel.org/PCI/pci.html#how-to-access-pci-config-space</a><br clear="none">
> <br clear="none">
> I never wrote a kernel code before, and am trying to just hack for an experiment to write to config space of this PHY. so I will give it a try to see if i can read/write to i211's config space, during early kernel boot time, using pci_(read|write)_config_(byte|word|dword)<br clear="none">
<br clear="none"></blockquote><div><br clear="none"></div><div>Hello, </div><div><br clear="none"></div><div>as Greg-KH said below, you dont need to do anything about kernel or PCI structure.</div><div>So I have question, this card already driven and initialized by Linux kernel?<br clear="none"></div><div>Can you run this card inserting into slot as PCIE?<br clear="none"></div><div><br></div><div dir="ltr" data-setdir="false">[Khalid]: its not a card. the PHY is just a chip soldered on the board connected directly to Intel CPU via PCIe. </div><div><br clear="none"></div><div dir="ltr" data-setdir="false">if it probably has a driver that uses phy.h I think and in  this case, will get a PHY id and use it to shift it after initing to PCIE address (for example PCIE0).<br clear="none">You just need to process module file before inital process and you dont need to work with an additional processing or PCIE structure on kernel side.<br clear="none"><br clear="none">if you want to see an example please check these out:<br clear="none"><br clear="none">Documentation/devicetree/bindings/pci/qcom,pcie.txt<br clear="none">Documentation/devicetree/bindings/phy/qcom-pcie-phy.txt<br clear="none">drivers/pci/host/pcie-qcom.c<br clear="none">drivers/phy/phy-qcom-pcie.c<br clear="none"><br>[Khalid]: Thanks for he pointers. I will check those out. As Greg-K-H mentioned I will try to write some code in the driver, not the kernel core</div><div dir="ltr" data-setdir="false">as I was originally intending, and will see if I can read/modify the config space of this i211 PHY.</div><div dir="ltr" data-setdir="false"><br clear="none">These examples will show you PCIE addressing shift and PHY communication of a Qualcom PCIE etherner card.<br clear="none"></div><div>Sorry for my bad English and wrong information.</div><div><br clear="none"></div><div>Regards</div><div id="ydpae0e2811yiv0471571909yqtfd91863" class="ydpae0e2811yiv0471571909yqt9915150393"><div><br clear="none"></div><div>                           Ozgur</div><div><br clear="none"></div><div> <br clear="none"></div><blockquote style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex;" class="ydpae0e2811yiv0471571909gmail_quote">
Do so in the driver that binds to the device, before it initializes it.<br clear="none">
Not in the kernel core, otherwise in the kernel core you do not have<br clear="none">
access to the needed pci structures.<br clear="none">
<br clear="none">
thanks,<br clear="none">
<br clear="none">
greg k-h<br clear="none">
</blockquote></div></div></div><div id="ydpae0e2811yiv0471571909yqtfd71083" class="ydpae0e2811yiv0471571909yqt9915150393">
</div></div></div></div>
            </div>
        </div></body></html>