<p>I've been thinking about the namespacing.</p>
<blockquote>
<p>Also, the netdev adaption is done in the cpu implementation, and I think it should be somewhere in <code>drivers/</code>. The CPU will only provide <code>eth_init</code>, <code>eth_read</code> and <code>eth_write</code>.<br>
Is it possible to have multiple eth interfaces on the same board ?</p>
<p>I have other small comments below. But I think the global design needs more work. Maybe one day, we will want to provide a <code>periph_eth</code> for the FRDM_KW64F (Kinetis). If everything is already in place, it will be easier to add.</p>
</blockquote>
<p><a class="user-mention" data-hovercard-type="user" data-hovercard-url="/hovercards?user_id=1375137" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/aabadie">@aabadie</a>  I'm not sure this makes sense. It would basically mean that "periph_eth" is the interface that is to be implemented. But ethernet is fundamentally different from uart, gpio, timers as in <em>no</em> application will directly use the API. They will use netdev. So IMO there's not much need to unify below that. I mean, just think of netdev as "periph_netdev"...</p>
<p>What might cause trouble is using <code>eth_*()</code> as function namespace...</p>
<p>Thus I suggest:</p>
<ul>
<li>keep stm32_eth as feature (for conditional compilation, only provide that for boards that have the periperal, the wiring and the configuration)</li>
<li>drop periph_eth and periph_stm32_eth features (no need to use either without netdev)</li>
<li>move all of the implementation into <code>cpu/stm32_common/stm32_eth</code></li>
<li>rename all (global) functions to <code>stm32_eth_*()</code></li>
</ul>
<p>Looking forward to get this in!</p>

<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">—<br />You are receiving this because you are subscribed to this thread.<br />Reply to this email directly, <a href="https://github.com/RIOT-OS/RIOT/pull/10633#issuecomment-464348583">view it on GitHub</a>, or <a href="https://github.com/notifications/unsubscribe-auth/AEn7YHIerdH8BkBlHqMVQoVfnzkrFHUWks5vOAwzgaJpZM4ZYr4S">mute the thread</a>.<img src="https://github.com/notifications/beacon/AEn7YHMMfT0kdo2Jtp7y41BOqLPxPT-Sks5vOAwzgaJpZM4ZYr4S.gif" height="1" width="1" alt="" /></p>
<script type="application/json" data-scope="inboxmarkup">{"api_version":"1.0","publisher":{"api_key":"05dde50f1d1a384dd78767c55493e4bb","name":"GitHub"},"entity":{"external_key":"github/RIOT-OS/RIOT","title":"RIOT-OS/RIOT","subtitle":"GitHub repository","main_image_url":"https://github.githubassets.com/images/email/message_cards/header.png","avatar_image_url":"https://github.githubassets.com/images/email/message_cards/avatar.png","action":{"name":"Open in GitHub","url":"https://github.com/RIOT-OS/RIOT"}},"updates":{"snippets":[{"icon":"PERSON","message":"@kaspar030 in #10633: I've been thinking about the namespacing.\r\n\r\n\u003e Also, the netdev adaption is done in the cpu implementation, and I think it should be somewhere in `drivers/`. The CPU will only provide `eth_init`, `eth_read` and `eth_write`.\r\n\u003e Is it possible to have multiple eth interfaces on the same board ?\r\n\u003e \r\n\u003e I have other small comments below. But I think the global design needs more work. Maybe one day, we will want to provide a `periph_eth` for the FRDM_KW64F (Kinetis). If everything is already in place, it will be easier to add.\r\n\r\n@aabadie  I'm not sure this makes sense. It would basically mean that \"periph_eth\" is the interface that is to be implemented. But ethernet is fundamentally different from uart, gpio, timers as in *no* application will directly use the API. They will use netdev. So IMO there's not much need to unify below that. I mean, just think of netdev as \"periph_netdev\"...\r\n\r\nWhat might cause trouble is using ```eth_*()``` as function namespace...\r\n\r\nThus I suggest:\r\n\r\n- keep stm32_eth as feature (for conditional compilation, only provide that for boards that have the periperal, the wiring and the configuration)\r\n- drop periph_eth and periph_stm32_eth features (no need to use either without netdev)\r\n- move all of the implementation into ```cpu/stm32_common/stm32_eth```\r\n- rename all (global) functions to ```stm32_eth_*()```\r\n\r\nLooking forward to get this in!"}],"action":{"name":"View Pull Request","url":"https://github.com/RIOT-OS/RIOT/pull/10633#issuecomment-464348583"}}}</script>
<script type="application/ld+json">[
{
"@context": "http://schema.org",
"@type": "EmailMessage",
"potentialAction": {
"@type": "ViewAction",
"target": "https://github.com/RIOT-OS/RIOT/pull/10633#issuecomment-464348583",
"url": "https://github.com/RIOT-OS/RIOT/pull/10633#issuecomment-464348583",
"name": "View Pull Request"
},
"description": "View this Pull Request on GitHub",
"publisher": {
"@type": "Organization",
"name": "GitHub",
"url": "https://github.com"
}
}
]</script>