<html><head></head><body><div class="ydpc748c82eyahoo-style-wrap" style="font-family:Helvetica Neue, Helvetica, Arial, sans-serif;font-size:16px;"><div></div>
        <div dir="ltr" data-setdir="false">Thanks Ozgur for quick reply.</div><div dir="ltr" data-setdir="false">The link you shared below seems to work with MDIO interface.</div><div dir="ltr" data-setdir="false">The PHY used on my board is Intel's i211 PHY which is controlled by PCIe interface.</div><div dir="ltr" data-setdir="false">I found this link:</div><div dir="ltr" data-setdir="false"><a href="https://docs.kernel.org/PCI/pci.html#how-to-access-pci-config-space" rel="nofollow" target="_blank" class="">https://docs.kernel.org/PCI/pci.html#how-to-access-pci-config-space</a><br></div><div><br></div><div dir="ltr" data-setdir="false">I never wrote a kernel code before, and am trying to just hack for an experiment to write to config space of this PHY. </div><div dir="ltr" data-setdir="false">so I will give it a try to see if i can read/write to i211's config space, during early kernel boot time, </div><div dir="ltr" data-setdir="false">using <span><span style="color: rgb(0, 0, 0); font-family: serif; font-size: 16px; font-style: italic; background-color: rgb(252, 252, 252);">pci_(read|write)_config_(byte|word|dword)</span></span></div><div><br></div><div dir="ltr" data-setdir="false">thanks,</div><div dir="ltr" data-setdir="false">Khalid.</div><div dir="ltr" data-setdir="false"><br></div><div><br></div>
        
        </div><div id="ydpde7f39f1yahoo_quoted_9947520535" class="ydpde7f39f1yahoo_quoted">
            <div style="font-family:'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:13px;color:#26282a;">
                
                <div>
                    On Tuesday, April 12, 2022, 12:11:21 PM PDT, Ozgur Karatas <ozgurk@ieee.org> wrote:
                </div>
                <div><br></div>
                <div><br></div>
                <div><div id="ydpde7f39f1yiv6137411259"><div><div dir="ltr"><div dir="ltr"><br clear="none"></div><br clear="none"><div class="ydpde7f39f1yiv6137411259gmail_quote"><div dir="ltr" class="ydpde7f39f1yiv6137411259gmail_attr">On Tue, Apr 12, 2022 at 11:00 PM Khalid F. Sabzwari <<a shape="rect" href="mailto:kfsabzwari@yahoo.com" rel="nofollow" target="_blank">kfsabzwari@yahoo.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="ydpde7f39f1yiv6137411259gmail_quote"><div><div style="font-family:Helvetica, Arial, sans-serif;font-size:16px;"><div dir="ltr">Hi,</div></div></div></blockquote><div><br clear="none"></div><div>Hello,</div><div> </div><blockquote style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex;" class="ydpde7f39f1yiv6137411259gmail_quote"><div><div style="font-family:Helvetica, Arial, sans-serif;font-size:16px;"><div dir="ltr">My CPU is Intel x86 (Broadwell DE). I want to write to the command register of the management ethernet PHY's PCIe</div><div dir="ltr">config space during Linux boot up. And I want to do that before kernel start loading the igb (ethernet) driver for this PHY.</div><div dir="ltr">Can I do that inside the <span><span style="color:rgb(0,0,0);font-family:monospace, monospace;font-size:14px;background-color:rgb(248,249,250);">start_kernel() </span></span>routine in init.main.c, or is the driver is already installed once code reaches this point (I am assuming probably not) ?</div><div dir="ltr">If this is the correct routine to do this job, is there any kernel code that I can use to write to this config space? </div></div></div></blockquote><div><br clear="none"></div><div>I dont think this right way, there should be a phy.h header file in kernel and i think should use PHY Abstraction Layer.<br clear="none"></div><div><br clear="none"></div><div><a shape="rect" href="https://docs.kernel.org/networking/phy.html" rel="nofollow" target="_blank">https://docs.kernel.org/networking/phy.html</a><div id="ydpde7f39f1yiv6137411259yqtfd38431" class="ydpde7f39f1yiv6137411259yqt7838125408"><br clear="none"></div></div><div id="ydpde7f39f1yiv6137411259yqtfd71625" class="ydpde7f39f1yiv6137411259yqt7838125408"><div><br clear="none"></div><div> </div><blockquote style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex;" class="ydpde7f39f1yiv6137411259gmail_quote"><div><div style="font-family:Helvetica, Arial, sans-serif;font-size:16px;"><div dir="ltr">I have bus/device/function info for this management PHY which is already set by the BIOS.</div><div dir="ltr"><br clear="none"></div><div dir="ltr">thanks,</div><div dir="ltr">Khalid.</div></div></div>
</blockquote></div></div></div><div id="ydpde7f39f1yiv6137411259yqtfd09520" class="ydpde7f39f1yiv6137411259yqt7838125408">
</div></div></div>_______________________________________________<br clear="none">Kernelnewbies mailing list<br clear="none"><a shape="rect" href="mailto:Kernelnewbies@kernelnewbies.org" rel="nofollow" target="_blank">Kernelnewbies@kernelnewbies.org</a><br clear="none"><a shape="rect" href="https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies" rel="nofollow" target="_blank">https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies</a><div class="ydpde7f39f1yqt7838125408" id="ydpde7f39f1yqtfd46879"><br clear="none"></div></div>
            </div>
        </div></body></html>