<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic U-Boot Port to Yocto - Phy not found in i.MX Processors</title>
    <link>https://community.nxp.com/t5/i-MX-Processors/U-Boot-Port-to-Yocto-Phy-not-found/m-p/457935#M71653</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I am working on a custom u-boot project for Yocto. I pretty much have everything working but cannot get the ethernet to connect. The issue appears to be with the Phy device but once at the command prompt, I can see the KSZ9031 Phy device. I have added a board_phy_config() function in my board file and it is being executed. I am using the same config code that was previously used and verified under LTIB.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Following is the u-boot output with some printf debug lines I added to the phy driver. As can be seen, the Phy is addressable but still isn't seen during the boot.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Any ideas what is wrong?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;U-Boot 2014.04 (Sep 17 2015 - 11:37:59)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CPU:&amp;nbsp;&amp;nbsp; Freescale i.MX6Q rev1.2 at 792 MHz&lt;/P&gt;&lt;P&gt;CPU:&amp;nbsp;&amp;nbsp; Temperature 37 C, calibration data: 0x5534cc69&lt;/P&gt;&lt;P&gt;Reset cause: POR&lt;/P&gt;&lt;P&gt;Board: SBC35-C398Q&lt;/P&gt;&lt;P&gt;Boot Device: SD&lt;/P&gt;&lt;P&gt;I2C:&amp;nbsp;&amp;nbsp; ready&lt;/P&gt;&lt;P&gt;DRAM:&amp;nbsp; 2 GiB&lt;/P&gt;&lt;P&gt;MMC:&amp;nbsp;&amp;nbsp; FSL_SDHC: 0, FSL_SDHC: 1&lt;/P&gt;&lt;P&gt;*** Warning - bad CRC, using default environment&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In:&amp;nbsp;&amp;nbsp;&amp;nbsp; serial&lt;/P&gt;&lt;P&gt;Out:&amp;nbsp;&amp;nbsp; serial&lt;/P&gt;&lt;P&gt;Err:&amp;nbsp;&amp;nbsp; serial&lt;/P&gt;&lt;P&gt;mmc1 is current device&lt;/P&gt;&lt;P&gt;Net:&amp;nbsp;&amp;nbsp; &lt;SPAN style="line-height: 1.5;"&gt;Phy not found&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="line-height: 1.5;"&gt;phy_read++&amp;nbsp; addr = 7&amp;nbsp; devad = ffffffff&amp;nbsp; regnum = 0&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;phy_write++&amp;nbsp; addr = 7&amp;nbsp; devad = ffffffff&amp;nbsp; regnum = 0 val = ffff&lt;/P&gt;&lt;P&gt;phy_read++&amp;nbsp; addr = 7&amp;nbsp; devad = ffffffff&amp;nbsp; regnum = 0&lt;/P&gt;&lt;P&gt;phy_read++&amp;nbsp; addr = 7&amp;nbsp; devad = ffffffff&amp;nbsp; regnum = 9&lt;/P&gt;&lt;P&gt;phy_write++&amp;nbsp; addr = 7&amp;nbsp; devad = ffffffff&amp;nbsp; regnum = 9 val = 1b00&lt;/P&gt;&lt;P&gt;phy_write++&amp;nbsp; addr = 7&amp;nbsp; devad = ffffffff&amp;nbsp; regnum = d val = 2&lt;/P&gt;&lt;P&gt;phy_write++&amp;nbsp; addr = 7&amp;nbsp; devad = ffffffff&amp;nbsp; regnum = e val = 4&lt;/P&gt;&lt;P&gt;phy_write++&amp;nbsp; addr = 7&amp;nbsp; devad = ffffffff&amp;nbsp; regnum = d val = c002&lt;/P&gt;&lt;P&gt;phy_write++&amp;nbsp; addr = 7&amp;nbsp; devad = ffffffff&amp;nbsp; regnum = e val = 0&lt;/P&gt;&lt;P&gt;phy_write++&amp;nbsp; addr = 7&amp;nbsp; devad = ffffffff&amp;nbsp; regnum = d val = 2&lt;/P&gt;&lt;P&gt;phy_write++&amp;nbsp; addr = 7&amp;nbsp; devad = ffffffff&amp;nbsp; regnum = e val = 5&lt;/P&gt;&lt;P&gt;phy_write++&amp;nbsp; addr = 7&amp;nbsp; devad = ffffffff&amp;nbsp; regnum = d val = c002&lt;/P&gt;&lt;P&gt;phy_write++&amp;nbsp; addr = 7&amp;nbsp; devad = ffffffff&amp;nbsp; regnum = e val = 0&lt;/P&gt;&lt;P&gt;phy_write++&amp;nbsp; addr = 7&amp;nbsp; devad = ffffffff&amp;nbsp; regnum = d val = 2&lt;/P&gt;&lt;P&gt;phy_write++&amp;nbsp; addr = 7&amp;nbsp; devad = ffffffff&amp;nbsp; regnum = e val = 6&lt;/P&gt;&lt;P&gt;phy_write++&amp;nbsp; addr = 7&amp;nbsp; devad = ffffffff&amp;nbsp; regnum = d val = c002&lt;/P&gt;&lt;P&gt;phy_write++&amp;nbsp; addr = 7&amp;nbsp; devad = ffffffff&amp;nbsp; regnum = e val = 0&lt;/P&gt;&lt;P&gt;phy_write++&amp;nbsp; addr = 7&amp;nbsp; devad = ffffffff&amp;nbsp; regnum = d val = 2&lt;/P&gt;&lt;P&gt;phy_write++&amp;nbsp; addr = 7&amp;nbsp; devad = ffffffff&amp;nbsp; regnum = e val = 8&lt;/P&gt;&lt;P&gt;phy_write++&amp;nbsp; addr = 7&amp;nbsp; devad = ffffffff&amp;nbsp; regnum = d val = c002&lt;/P&gt;&lt;P&gt;phy_write++&amp;nbsp; addr = 7&amp;nbsp; devad = ffffffff&amp;nbsp; regnum = e val = 3ff&lt;/P&gt;&lt;P&gt;phy_write++&amp;nbsp; addr = 7&amp;nbsp; devad = ffffffff&amp;nbsp; regnum = d val = 2&lt;/P&gt;&lt;P&gt;phy_write++&amp;nbsp; addr = 7&amp;nbsp; devad = ffffffff&amp;nbsp; regnum = e val = 10&lt;/P&gt;&lt;P&gt;phy_write++&amp;nbsp; addr = 7&amp;nbsp; devad = ffffffff&amp;nbsp; regnum = d val = c002&lt;/P&gt;&lt;P&gt;phy_write++&amp;nbsp; addr = 7&amp;nbsp; devad = ffffffff&amp;nbsp; regnum = e val = 4000&lt;/P&gt;&lt;P&gt;phy_read++&amp;nbsp; addr = 7&amp;nbsp; devad = ffffffff&amp;nbsp; regnum = 0&lt;/P&gt;&lt;P&gt;phy_write++&amp;nbsp; addr = 7&amp;nbsp; devad = ffffffff&amp;nbsp; regnum = 0 val = 1340&lt;/P&gt;&lt;P&gt;ksz9031_config()++&lt;/P&gt;&lt;P&gt;phy_read++&amp;nbsp; addr = 7&amp;nbsp; devad = ffffffff&amp;nbsp; regnum = 1&lt;/P&gt;&lt;P&gt;phy_read++&amp;nbsp; addr = 7&amp;nbsp; devad = ffffffff&amp;nbsp; regnum = f&lt;/P&gt;&lt;P&gt;phy_read++&amp;nbsp; addr = 7&amp;nbsp; devad = ffffffff&amp;nbsp; regnum = 4&lt;/P&gt;&lt;P&gt;phy_read++&amp;nbsp; addr = 7&amp;nbsp; devad = ffffffff&amp;nbsp; regnum = 9&lt;/P&gt;&lt;P&gt;phy_read++&amp;nbsp; addr = 7&amp;nbsp; devad = ffffffff&amp;nbsp; regnum = 0&lt;/P&gt;&lt;P&gt;ksz9031_config()--&lt;/P&gt;&lt;P&gt;FEC&lt;/P&gt;&lt;P&gt;Normal Boot&lt;/P&gt;&lt;P&gt;Hit any key to stop autoboot:&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SBC35-C398Q U-Boot &amp;gt; mii info&lt;/P&gt;&lt;P&gt;PHY 0x07: OUI = 0x0885, Model = 0x22, Rev = 0x01, 100baseT, FDX&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="line-height: 1.5;"&gt;SBC35-C398Q U-Boot &amp;gt; mdio read 7 2&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;7 is not a known ethernet&lt;/P&gt;&lt;P&gt;Reading from bus FEC&lt;/P&gt;&lt;P&gt;PHY at address 7:&lt;/P&gt;&lt;P&gt;2 - 0x22&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SBC35-C398Q U-Boot &amp;gt; mdio read 7 3&lt;/P&gt;&lt;P&gt;7 is not a known ethernet&lt;/P&gt;&lt;P&gt;Reading from bus FEC&lt;/P&gt;&lt;P&gt;PHY at address 7:&lt;/P&gt;&lt;P&gt;3 - 0x1621&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SBC35-C398Q U-Boot &amp;gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 17 Sep 2015 17:20:50 GMT</pubDate>
    <dc:creator>PaulDeMetrotion</dc:creator>
    <dc:date>2015-09-17T17:20:50Z</dc:date>
    <item>
      <title>U-Boot Port to Yocto - Phy not found</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/U-Boot-Port-to-Yocto-Phy-not-found/m-p/457935#M71653</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I am working on a custom u-boot project for Yocto. I pretty much have everything working but cannot get the ethernet to connect. The issue appears to be with the Phy device but once at the command prompt, I can see the KSZ9031 Phy device. I have added a board_phy_config() function in my board file and it is being executed. I am using the same config code that was previously used and verified under LTIB.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Following is the u-boot output with some printf debug lines I added to the phy driver. As can be seen, the Phy is addressable but still isn't seen during the boot.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Any ideas what is wrong?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;U-Boot 2014.04 (Sep 17 2015 - 11:37:59)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CPU:&amp;nbsp;&amp;nbsp; Freescale i.MX6Q rev1.2 at 792 MHz&lt;/P&gt;&lt;P&gt;CPU:&amp;nbsp;&amp;nbsp; Temperature 37 C, calibration data: 0x5534cc69&lt;/P&gt;&lt;P&gt;Reset cause: POR&lt;/P&gt;&lt;P&gt;Board: SBC35-C398Q&lt;/P&gt;&lt;P&gt;Boot Device: SD&lt;/P&gt;&lt;P&gt;I2C:&amp;nbsp;&amp;nbsp; ready&lt;/P&gt;&lt;P&gt;DRAM:&amp;nbsp; 2 GiB&lt;/P&gt;&lt;P&gt;MMC:&amp;nbsp;&amp;nbsp; FSL_SDHC: 0, FSL_SDHC: 1&lt;/P&gt;&lt;P&gt;*** Warning - bad CRC, using default environment&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In:&amp;nbsp;&amp;nbsp;&amp;nbsp; serial&lt;/P&gt;&lt;P&gt;Out:&amp;nbsp;&amp;nbsp; serial&lt;/P&gt;&lt;P&gt;Err:&amp;nbsp;&amp;nbsp; serial&lt;/P&gt;&lt;P&gt;mmc1 is current device&lt;/P&gt;&lt;P&gt;Net:&amp;nbsp;&amp;nbsp; &lt;SPAN style="line-height: 1.5;"&gt;Phy not found&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="line-height: 1.5;"&gt;phy_read++&amp;nbsp; addr = 7&amp;nbsp; devad = ffffffff&amp;nbsp; regnum = 0&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;phy_write++&amp;nbsp; addr = 7&amp;nbsp; devad = ffffffff&amp;nbsp; regnum = 0 val = ffff&lt;/P&gt;&lt;P&gt;phy_read++&amp;nbsp; addr = 7&amp;nbsp; devad = ffffffff&amp;nbsp; regnum = 0&lt;/P&gt;&lt;P&gt;phy_read++&amp;nbsp; addr = 7&amp;nbsp; devad = ffffffff&amp;nbsp; regnum = 9&lt;/P&gt;&lt;P&gt;phy_write++&amp;nbsp; addr = 7&amp;nbsp; devad = ffffffff&amp;nbsp; regnum = 9 val = 1b00&lt;/P&gt;&lt;P&gt;phy_write++&amp;nbsp; addr = 7&amp;nbsp; devad = ffffffff&amp;nbsp; regnum = d val = 2&lt;/P&gt;&lt;P&gt;phy_write++&amp;nbsp; addr = 7&amp;nbsp; devad = ffffffff&amp;nbsp; regnum = e val = 4&lt;/P&gt;&lt;P&gt;phy_write++&amp;nbsp; addr = 7&amp;nbsp; devad = ffffffff&amp;nbsp; regnum = d val = c002&lt;/P&gt;&lt;P&gt;phy_write++&amp;nbsp; addr = 7&amp;nbsp; devad = ffffffff&amp;nbsp; regnum = e val = 0&lt;/P&gt;&lt;P&gt;phy_write++&amp;nbsp; addr = 7&amp;nbsp; devad = ffffffff&amp;nbsp; regnum = d val = 2&lt;/P&gt;&lt;P&gt;phy_write++&amp;nbsp; addr = 7&amp;nbsp; devad = ffffffff&amp;nbsp; regnum = e val = 5&lt;/P&gt;&lt;P&gt;phy_write++&amp;nbsp; addr = 7&amp;nbsp; devad = ffffffff&amp;nbsp; regnum = d val = c002&lt;/P&gt;&lt;P&gt;phy_write++&amp;nbsp; addr = 7&amp;nbsp; devad = ffffffff&amp;nbsp; regnum = e val = 0&lt;/P&gt;&lt;P&gt;phy_write++&amp;nbsp; addr = 7&amp;nbsp; devad = ffffffff&amp;nbsp; regnum = d val = 2&lt;/P&gt;&lt;P&gt;phy_write++&amp;nbsp; addr = 7&amp;nbsp; devad = ffffffff&amp;nbsp; regnum = e val = 6&lt;/P&gt;&lt;P&gt;phy_write++&amp;nbsp; addr = 7&amp;nbsp; devad = ffffffff&amp;nbsp; regnum = d val = c002&lt;/P&gt;&lt;P&gt;phy_write++&amp;nbsp; addr = 7&amp;nbsp; devad = ffffffff&amp;nbsp; regnum = e val = 0&lt;/P&gt;&lt;P&gt;phy_write++&amp;nbsp; addr = 7&amp;nbsp; devad = ffffffff&amp;nbsp; regnum = d val = 2&lt;/P&gt;&lt;P&gt;phy_write++&amp;nbsp; addr = 7&amp;nbsp; devad = ffffffff&amp;nbsp; regnum = e val = 8&lt;/P&gt;&lt;P&gt;phy_write++&amp;nbsp; addr = 7&amp;nbsp; devad = ffffffff&amp;nbsp; regnum = d val = c002&lt;/P&gt;&lt;P&gt;phy_write++&amp;nbsp; addr = 7&amp;nbsp; devad = ffffffff&amp;nbsp; regnum = e val = 3ff&lt;/P&gt;&lt;P&gt;phy_write++&amp;nbsp; addr = 7&amp;nbsp; devad = ffffffff&amp;nbsp; regnum = d val = 2&lt;/P&gt;&lt;P&gt;phy_write++&amp;nbsp; addr = 7&amp;nbsp; devad = ffffffff&amp;nbsp; regnum = e val = 10&lt;/P&gt;&lt;P&gt;phy_write++&amp;nbsp; addr = 7&amp;nbsp; devad = ffffffff&amp;nbsp; regnum = d val = c002&lt;/P&gt;&lt;P&gt;phy_write++&amp;nbsp; addr = 7&amp;nbsp; devad = ffffffff&amp;nbsp; regnum = e val = 4000&lt;/P&gt;&lt;P&gt;phy_read++&amp;nbsp; addr = 7&amp;nbsp; devad = ffffffff&amp;nbsp; regnum = 0&lt;/P&gt;&lt;P&gt;phy_write++&amp;nbsp; addr = 7&amp;nbsp; devad = ffffffff&amp;nbsp; regnum = 0 val = 1340&lt;/P&gt;&lt;P&gt;ksz9031_config()++&lt;/P&gt;&lt;P&gt;phy_read++&amp;nbsp; addr = 7&amp;nbsp; devad = ffffffff&amp;nbsp; regnum = 1&lt;/P&gt;&lt;P&gt;phy_read++&amp;nbsp; addr = 7&amp;nbsp; devad = ffffffff&amp;nbsp; regnum = f&lt;/P&gt;&lt;P&gt;phy_read++&amp;nbsp; addr = 7&amp;nbsp; devad = ffffffff&amp;nbsp; regnum = 4&lt;/P&gt;&lt;P&gt;phy_read++&amp;nbsp; addr = 7&amp;nbsp; devad = ffffffff&amp;nbsp; regnum = 9&lt;/P&gt;&lt;P&gt;phy_read++&amp;nbsp; addr = 7&amp;nbsp; devad = ffffffff&amp;nbsp; regnum = 0&lt;/P&gt;&lt;P&gt;ksz9031_config()--&lt;/P&gt;&lt;P&gt;FEC&lt;/P&gt;&lt;P&gt;Normal Boot&lt;/P&gt;&lt;P&gt;Hit any key to stop autoboot:&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SBC35-C398Q U-Boot &amp;gt; mii info&lt;/P&gt;&lt;P&gt;PHY 0x07: OUI = 0x0885, Model = 0x22, Rev = 0x01, 100baseT, FDX&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="line-height: 1.5;"&gt;SBC35-C398Q U-Boot &amp;gt; mdio read 7 2&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;7 is not a known ethernet&lt;/P&gt;&lt;P&gt;Reading from bus FEC&lt;/P&gt;&lt;P&gt;PHY at address 7:&lt;/P&gt;&lt;P&gt;2 - 0x22&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SBC35-C398Q U-Boot &amp;gt; mdio read 7 3&lt;/P&gt;&lt;P&gt;7 is not a known ethernet&lt;/P&gt;&lt;P&gt;Reading from bus FEC&lt;/P&gt;&lt;P&gt;PHY at address 7:&lt;/P&gt;&lt;P&gt;3 - 0x1621&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SBC35-C398Q U-Boot &amp;gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 17 Sep 2015 17:20:50 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/U-Boot-Port-to-Yocto-Phy-not-found/m-p/457935#M71653</guid>
      <dc:creator>PaulDeMetrotion</dc:creator>
      <dc:date>2015-09-17T17:20:50Z</dc:date>
    </item>
    <item>
      <title>Re: U-Boot Port to Yocto - Phy not found</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/U-Boot-Port-to-Yocto-Phy-not-found/m-p/457936#M71654</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Not much of a response. After more analysis, I found that the 'Phy not found' message is generated in the function get_phy_device_by_mask() which is shown below. Maybe someone has some experience with this code. I cannot determine why the function search_for_existing_phy() does not return a valid value since the Phy device is present and addressable. I have verified that the address is a 7 which is the Phy device address. I cannot find where the array phymap[addr] is being initialized? Am I possibly missing some device initialization function that needs to be done before this code is called?&amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;static struct phy_device *search_for_existing_phy(struct mii_dev *bus,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned phy_mask, phy_interface_t interface)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* If we have one, return the existing device, with new interface */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (phy_mask) {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int addr = ffs(phy_mask) - 1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (&lt;STRONG&gt;bus-&amp;gt;phymap[addr]&lt;/STRONG&gt;) {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bus-&amp;gt;phymap[addr]-&amp;gt;interface = interface;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return bus-&amp;gt;phymap[addr];&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; phy_mask &amp;amp;= ~(1 &amp;lt;&amp;lt; addr);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return NULL;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;static struct phy_device *get_phy_device_by_mask(struct mii_dev *bus,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned phy_mask, phy_interface_t interface)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int i;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; struct phy_device *phydev;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; phydev = &lt;STRONG&gt;search_for_existing_phy&lt;/STRONG&gt;(bus, phy_mask, interface);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (phydev)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return phydev;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Try Standard (ie Clause 22) access */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Otherwise we have to try Clause 45 */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (i = 0; i &amp;lt; 5; i++) {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; phydev = create_phy_by_mask(bus, phy_mask,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i ? i : MDIO_DEVAD_NONE, interface);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (IS_ERR(phydev))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return NULL;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (phydev)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return phydev;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("Phy not found\n");&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return phy_device_create(bus, ffs(phy_mask) - 1, 0xffffffff, interface);&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 18 Sep 2015 13:32:50 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/U-Boot-Port-to-Yocto-Phy-not-found/m-p/457936#M71654</guid>
      <dc:creator>PaulDeMetrotion</dc:creator>
      <dc:date>2015-09-18T13:32:50Z</dc:date>
    </item>
    <item>
      <title>Re: U-Boot Port to Yocto - Phy not found</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/U-Boot-Port-to-Yocto-Phy-not-found/m-p/457937#M71655</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;HI Paul&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I believe it may be useful to look at micrel drivers at&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="https://community.nxp.com/thread/311185"&gt;Micrel KSZ8091 drivers for i.MX6 platform. Any leads appreciated.&lt;/A&gt; &lt;/P&gt;&lt;P&gt;&lt;A href="http://lists.infradead.org/pipermail/linux-arm-kernel/2013-June/178629.html" title="http://lists.infradead.org/pipermail/linux-arm-kernel/2013-June/178629.html"&gt;[PATCH 3/3] ARM: i.MX6: add ethernet phy fixup for KSZ9031&lt;/A&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best regards&lt;/P&gt;&lt;P&gt;igor&lt;/P&gt;&lt;P&gt;-----------------------------------------------------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;Note: If this post answers your question, please click the Correct Answer button. Thank you!&lt;/P&gt;&lt;P&gt;-----------------------------------------------------------------------------------------------------------------------&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 19 Sep 2015 14:55:46 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/U-Boot-Port-to-Yocto-Phy-not-found/m-p/457937#M71655</guid>
      <dc:creator>igorpadykov</dc:creator>
      <dc:date>2015-09-19T14:55:46Z</dc:date>
    </item>
    <item>
      <title>Re: U-Boot Port to Yocto - Phy not found</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/U-Boot-Port-to-Yocto-Phy-not-found/m-p/457938#M71656</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;These patches are for Linux drivers. I am having issues with u-boot access to the PHY.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 25 May 2016 19:45:19 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/U-Boot-Port-to-Yocto-Phy-not-found/m-p/457938#M71656</guid>
      <dc:creator>PaulDeMetrotion</dc:creator>
      <dc:date>2016-05-25T19:45:19Z</dc:date>
    </item>
    <item>
      <title>Re: U-Boot Port to Yocto - Phy not found</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/U-Boot-Port-to-Yocto-Phy-not-found/m-p/457939#M71657</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;HI,&amp;nbsp;&lt;STRONG style="background-color: #ffffff; color: #51626f; font-weight: normal;"&gt;Paul&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style="background-color: #ffffff; color: #51626f; font-weight: normal;"&gt;Did you solve this problem?&lt;/STRONG&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 03 Apr 2017 06:41:39 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/U-Boot-Port-to-Yocto-Phy-not-found/m-p/457939#M71657</guid>
      <dc:creator>kevinchau</dc:creator>
      <dc:date>2017-04-03T06:41:39Z</dc:date>
    </item>
    <item>
      <title>Re: U-Boot Port to Yocto - Phy not found</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/U-Boot-Port-to-Yocto-Phy-not-found/m-p/457940#M71658</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Yes I did. The following code in my board specific file was not scanning the appropriate phy addr&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; /* scan phy 4,5,6,7 */&lt;BR /&gt;&amp;nbsp; &amp;nbsp; phydev = phy_find_by_mask(bus, (0xf &amp;lt;&amp;lt; 4), PHY_INTERFACE_MODE_RGMII);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The second variable passed to the function phy_find_by_mask() needed to include address 7 which is the MSB of the mask. If you want to scan all addresses from 0-7, then pass 0xff as the parameter.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 07 Apr 2017 16:26:29 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/U-Boot-Port-to-Yocto-Phy-not-found/m-p/457940#M71658</guid>
      <dc:creator>PaulDeMetrotion</dc:creator>
      <dc:date>2017-04-07T16:26:29Z</dc:date>
    </item>
    <item>
      <title>Re: U-Boot Port to Yocto - Phy not found</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/U-Boot-Port-to-Yocto-Phy-not-found/m-p/457941#M71659</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Paul,&lt;/P&gt;&lt;P&gt;as per mii info command my phy id is 0x18&amp;nbsp;&lt;/P&gt;&lt;P&gt;what paramter should i pass in above function&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;thanks &amp;amp; regards&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 06 May 2017 06:39:13 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/U-Boot-Port-to-Yocto-Phy-not-found/m-p/457941#M71659</guid>
      <dc:creator>sameerarvikar</dc:creator>
      <dc:date>2017-05-06T06:39:13Z</dc:date>
    </item>
    <item>
      <title>Re: U-Boot Port to Yocto - Phy not found</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/U-Boot-Port-to-Yocto-Phy-not-found/m-p/457942#M71660</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;imx6q with PHY chip AR8035, u-boot of L4.1.15-2.0.0 display error:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Net:&amp;nbsp;&amp;nbsp; Board Net Initialization Failed&lt;/P&gt;&lt;P&gt;according to the method, it works well now, thanks so much.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 09 Nov 2017 09:36:09 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/U-Boot-Port-to-Yocto-Phy-not-found/m-p/457942#M71660</guid>
      <dc:creator>liu_jialu</dc:creator>
      <dc:date>2017-11-09T09:36:09Z</dc:date>
    </item>
  </channel>
</rss>

