Files
luban-lite/doc/topics/sdk/mac/mac_config_lite.html

848 lines
77 KiB
HTML
Raw Normal View History

2025-04-23 17:54:31 +08:00
<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-cn" lang="zh-cn" data-whc_version="26.1">
<head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><meta name="description" content="以太网配置 内核配置主要是通过 scons --menuconfig 命令进行 以太网的功能配置, 配置完成后的项目存储在 target/configs/xxx_defconfig 文件中。 MAC 参数配置 内核中要使用以太网功能,首先需要配置 MAC 的属性参数。MAC 的参数随着板卡的不同而不同 以下是展开后 MAC 的所有的配置选项及其介绍 注: 为防止配置错误,实际的 MAC ..."/><meta name="DC.rights.owner" content="(C) 版权 2025"/><meta name="copyright" content="(C) 版权 2025"/><meta name="generator" content="DITA-OT"/><meta name="DC.type" content="topic"/><meta name="DC.relation" content="../../../topics/sdk/mac/mac_user_guide.html"/><meta name="DC.relation" content="../../../topics/sdk/mac/mac_user_guide.html"/><meta name="DC.relation" content="../../../topics/sdk/mac/mac_debug_lite.html"/><meta name="DC.contributor" content="yan.wang"/><meta name="DC.contributor" content="yan.wang"/><meta name="DC.date.modified" content="2025-04-09"/><meta name="DC.format" content="HTML5"/><meta name="DC.identifier" content="id"/><meta name="DC.language" content="zh-CN"/><title>参数配置</title><meta name="wh-path2root" content="../../../"/><meta name="wh-toc-id" content="id-d3703e6606"/><meta name="wh-source-relpath" content="topics/sdk/mac/mac_config_lite.dita"/><meta name="wh-out-relpath" content="topics/sdk/mac/mac_config_lite.html"/>
2025-01-23 16:37:00 +08:00
2025-04-23 17:54:31 +08:00
<link rel="stylesheet" type="text/css" href="../../../webhelp/app/commons.css?buildId=2024041900"/>
<link rel="stylesheet" type="text/css" href="../../../webhelp/app/topic.css?buildId=2024041900"/>
2025-01-23 16:37:00 +08:00
2025-04-23 17:54:31 +08:00
<script src="../../../webhelp/app/options/properties.js?buildId=20250409170918"></script>
<script src="../../../webhelp/app/localization/strings.js?buildId=2024041900"></script>
<script src="../../../webhelp/app/search/index/keywords.js?buildId=20250409170918"></script>
<script defer="defer" src="../../../webhelp/app/commons.js?buildId=2024041900"></script>
<script defer="defer" src="../../../webhelp/app/topic.js?buildId=2024041900"></script>
<link rel="stylesheet" type="text/css" href="../../../webhelp/template/css/aic-styles-web-internal.css?buildId=2024041900"/><link rel="stylesheet" type="text/css" href="../../../webhelp/template/css/notes.css?buildId=2024041900"/><link rel="stylesheet" type="text/css" href="../../../webhelp/template/css/aic-common.css?buildId=2024041900"/><link rel="stylesheet" type="text/css" href="../../../webhelp/template/css/aic-images.css?buildId=2024041900"/><link rel="stylesheet" type="text/css" href="../../../webhelp/template/css/footnote.css?buildId=2024041900"/><link rel="stylesheet" type="text/css" href="../../../webhelp/template/css/aic-highlight-changes.css?buildId=2024041900"/><link rel="stylesheet" type="text/css" href="../../../webhelp/template/css/search-in-header.css?buildId=2024041900"/><link rel="stylesheet" type="text/css" href="../../../webhelp/template/css/topic-body-list.css?buildId=2024041900"/></head>
2025-01-23 16:37:00 +08:00
<body id="id" class="wh_topic_page frmBody">
<a href="#wh_topic_body" class="sr-only sr-only-focusable">
跳转到主要内容
</a>
<header class="navbar navbar-default wh_header">
<div class="container-fluid">
2025-04-23 17:54:31 +08:00
<div xmlns:whc="http://www.oxygenxml.com/webhelp/components" class="wh_header_flex_container navbar-nav navbar-expand-md navbar-dark">
2025-01-23 16:37:00 +08:00
<div class="wh_logo_and_publication_title_container">
<div class="wh_logo_and_publication_title">
2025-04-23 17:54:31 +08:00
<a href="https://www.artinchip.com" class=" wh_logo d-none d-sm-block "><img src="../../../company-logo.png" alt=" RTOS SDK 使用指南 SDK 指南文件 "/></a>
<div class=" wh_publication_title "><a href="../../../index.html"><span class="booktitle"> <span class="ph mainbooktitle">RTOS SDK 使用指南</span> <span class="ph booktitlealt">SDK 指南文件</span> </span></a></div>
2025-01-23 16:37:00 +08:00
</div>
</div>
<div class="wh_top_menu_and_indexterms_link collapse navbar-collapse" id="wh_top_menu_and_indexterms_link">
</div>
<div class=" wh_search_input navbar-form wh_topic_page_search search " role="form">
<form id="searchForm" method="get" role="search" action="../../../search.html"><div><input type="search" placeholder="搜索 " class="wh_search_textfield" id="textToSearch" name="searchQuery" aria-label="搜索查询" required="required"/><button type="submit" class="wh_search_button" aria-label="搜索"><span class="search_input_text">搜索</span></button></div></form>
2025-04-23 17:54:31 +08:00
</div></div>
</div>
</header>
2025-01-23 16:37:00 +08:00
<div class="container-fluid" id="wh_topic_container">
<div class="row">
<nav class="wh_tools d-print-none navbar-expand-md" aria-label="Tools">
2025-04-23 17:54:31 +08:00
<div data-tooltip-position="bottom" class=" wh_breadcrumb "><ol class="d-print-none"><li><span class="home"><a href="../../../index.html"><span>主页</span></a></span></li><li><div class="topicref" data-id="id"><div class="title"><a href="../../../topics/sdk/chapter-advanced-app.html">高级应用</a><div class="wh-tooltip"><p class="shortdesc">系统、存储、多媒体、接口、安全等模块的详细配置和设计说明。</p></div></div></div></li><li><div class="topicref" data-id="concept_nww_hzh_pzb"><div class="title"><a href="../../../topics/chapter-title/chapter-interface-sdk.html">接口</a><div class="wh-tooltip"><p class="shortdesc">CAN<span class="ph">、CAP</span>、CIR、GPAI、GPIO、I2C、PSADC、PWM 等接口模块的介绍和使用说明。</p></div></div></div></li><li><div class="topicref" data-id="id"><div class="title"><a href="../../../topics/sdk/mac/mac_user_guide.html">MAC 使用指南</a></div></div></li><li class="active"><div class="topicref" data-id="id"><div class="title"><a href="../../../topics/sdk/mac/mac_config_lite.html">参数配置</a></div></div></li></ol></div>
2025-01-23 16:37:00 +08:00
<div class="wh_right_tools">
<button class="wh_hide_highlight" aria-label="切换搜索突出显示" title="切换搜索突出显示"></button>
<button class="webhelp_expand_collapse_sections" data-next-state="collapsed" aria-label="折叠截面" title="折叠截面"></button>
<div class=" wh_navigation_links "><span id="topic_navigation_links" class="navheader">
2025-04-23 17:54:31 +08:00
<span class="navprev"><a class="- topic/link link" href="../../../topics/sdk/mac/mac_user_guide.html" title="MAC 使用指南" aria-label="上一主题: MAC 使用指南" rel="prev"></a></span>
2025-01-23 16:37:00 +08:00
<span class="navnext"><a class="- topic/link link" href="../../../topics/sdk/mac/mac_debug_lite.html" title="调试指南" aria-label="下一主题: 调试指南" rel="next"></a></span> </span></div>
<div class=" wh_print_link print d-none d-md-inline-block "><button onClick="window.print()" title="打印此页" aria-label="打印此页"></button></div>
<button type="button" id="wh_toc_button" class="custom-toggler navbar-toggler collapsed wh_toggle_button navbar-light" aria-expanded="false" aria-label="Toggle publishing table of content" aria-controls="wh_publication_toc">
<span class="navbar-toggler-icon"></span>
</button>
</div>
</nav>
</div>
<div class="wh_content_area">
<div class="row">
<nav id="wh_publication_toc" class="col-lg-3 col-md-3 col-sm-12 d-md-block d-none d-print-none" aria-label="Table of Contents Container">
<div id="wh_publication_toc_content">
2025-04-23 17:54:31 +08:00
<div class=" wh_publication_toc " data-tooltip-position="right"><span class="expand-button-action-labels"><span id="button-expand-action" role="button" aria-label="Expand"></span><span id="button-collapse-action" role="button" aria-label="Collapse"></span><span id="button-pending-action" role="button" aria-label="Pending"></span></span><ul role="tree" aria-label="Table of Contents"><li role="treeitem"><div data-tocid="revinfo_linux-d3703e457" class="topicref" data-id="revinfo_linux" data-state="leaf"><span role="button" class="wh-expand-btn"></span><div class="title"><a href="../../../topics/revinfo/revinfo_rtos.html" id="revinfo_linux-d3703e457-link">修订记录</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="id-d3703e479" class="topicref" data-id="id" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action id-d3703e479-link" class="wh-expand-btn"></span><div class="title"><a href="../../../topics/sdk/env/sdk-compile.html" id="id-d3703e479-link">SDK 编译</a><div class="wh-tooltip"><p class="shortdesc">介绍不同编译环境下 SDK 的详细编译流程。</p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="id-d3703e601" class="topicref" data-id="id" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action id-d3703e601-link" class="wh-expand-btn"></span><div class="title"><a href="../../../topics/sdk/advanced/sdk-usage.html" id="id-d3703e601-link">使用指南</a><div class="wh-tooltip"><p class="shortdesc">命令详解,编译选项,镜像和分区配置,添加应用和驱动等的详细使用说明。</p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_rcx_czh_pzb-d3703e1001" class="topicref" data-id="concept_rcx_czh_pzb" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_rcx_czh_pzb-d3703e1001-link" class="wh-expand-btn"></span><div class="title"><a href="../../../topics/sdk/chapter-app.html" id="concept_rcx_czh_pzb-d3703e1001-link">应用场景</a><div class="wh-tooltip"><p class="shortdesc">描述了 SDK 在不同应用场景中的配置和使用包括系统更新、OTA、安全方案等。</p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="id-d3703e1841" class="topicref" data-id="id" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action id-d3703e1841-link" class="wh-expand-btn"></span><div class="title"><a href="../../../topics/sdk/peripheral/peripheral-intro.html" id="id-d3703e1841-link">外设移植</a><div class="wh-tooltip"><p class="shortdesc"><span class="ph">CTP、U 盘、SD 卡、有线和无线网络</span>等外设的介绍和使用说明。</p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="id-d3703e2015" class="topicref" data-id="id" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action id-d3703e2015-link" class="wh-expand-btn"></span><div class="title"><a href="../../../topics/sdk/bringup/chapter-bringup.html" id="id-d3703e2015-link">BringUp</a><div class="wh-tooltip"><p class="shortdesc">在硬件上电后快速初始化系统,为操作系统的启动准备好必要的硬件环境。</p></div></div></div></li><li role="treeitem" aria-expanded="true"><div data-tocid="id-d3703e2355" class="topicref" data-id="id" data-state="expanded"><span role="button" tabindex="0" aria-labelledby="button-collapse-action id-d3703e2355-link" class="wh-expand-btn"></span><div class="title"><a href="../../../topics/sdk/chapter-advanced-app.html" id="id-d3703e2355-link">高级应用</a><div class="wh-tooltip"><p class="shortdesc">系统、存储、多媒体、接口、安全等模块的详细配置和设计说明。</p></div></div></div><ul role="group" class="navbar-nav nav-list"><li role="treeitem" aria-expanded="false"><div data-tocid="_0-d3703e2372" class="topicref" data-id="_0" data-state="
2025-01-23 16:37:00 +08:00
</div>
</nav>
<div class="col-lg-7 col-md-9 col-sm-12" id="wh_topic_body">
<button id="wh_close_publication_toc_button" class="close-toc-button d-none" aria-label="Toggle publishing table of content" aria-controls="wh_publication_toc" aria-expanded="true">
<span class="close-toc-icon-container">
<span class="close-toc-icon"></span>
</span>
</button>
<button id="wh_close_topic_toc_button" class="close-toc-button d-none" aria-label="Toggle topic table of content" aria-controls="wh_topic_toc" aria-expanded="true">
<span class="close-toc-icon-container">
<span class="close-toc-icon"></span>
</span>
</button>
2025-04-23 17:54:31 +08:00
<div class=" wh_topic_content body "><main role="main"><article class="- topic/topic topic" role="article" aria-labelledby="ariaid-title1">
<span class="edit-link" style="font-size:12px; opacity:0.6; text-align:right; vertical-align:middle"><a target="_blank" href="http://aicdocco/taskstopics/sdk/mac/mac_config_lite.dita">Edit online</a></span><h1 class="- topic/title title topictitle1" id="ariaid-title1">参数配置</h1>
<div class="date inPage">9 Apr 2025</div><div style="color: gray;">
2025-01-23 16:37:00 +08:00
Read time: 13 minute(s)
2025-04-23 17:54:31 +08:00
</div>
<div class="- topic/body body">
<section class="- topic/section section" id="id__ref-to-lite-mac-cfg" data-ofbid="id__ref-to-lite-mac-cfg"><h2 class="- topic/title title sectiontitle">以太网配置</h2>
2025-01-23 16:37:00 +08:00
2025-04-23 17:54:31 +08:00
<p class="- topic/p p" data-ofbid="d73738e33__20250409171037">内核配置主要是通过 <span class="+ topic/keyword sw-d/cmdname keyword cmdname">scons --menuconfig</span> 命令进行 以太网的功能配置, 配置完成后的项目存储在
2025-01-23 16:37:00 +08:00
<span class="+ topic/ph sw-d/filepath ph filepath">target/configs/xxx_defconfig</span> 文件中。</p>
2025-04-23 17:54:31 +08:00
<ul class="- topic/ul ul" id="id__ul_ehm_kys_4dc" data-ofbid="id__ul_ehm_kys_4dc">
<li class="- topic/li li" data-ofbid="d73738e44__20250409171037">
2025-01-23 16:37:00 +08:00
<div class="- topic/div div section" id="id__mac">
<strong class="+ topic/ph hi-d/b ph b">MAC 参数配置</strong>
2025-04-23 17:54:31 +08:00
<p class="- topic/p p" data-ofbid="d73738e51__20250409171037">内核中要使用以太网功能,首先需要配置 MAC 的属性参数。MAC 的参数随着板卡的不同而不同 以下是展开后 MAC
2025-01-23 16:37:00 +08:00
的所有的配置选项及其介绍</p><div class="- topic/note note note note_note" id="id__note_eql_qn3_ddc" data-ofbid="id__note_eql_qn3_ddc"><span class="note__title">注:</span>
2025-04-23 17:54:31 +08:00
<div class="- topic/p p" data-ofbid="d73738e55__20250409171037">为防止配置错误,实际的 MAC
2025-01-23 16:37:00 +08:00
配置有一套依赖规则,不会同时出现以下全部的配置选项<pre class="+ topic/pre pr-d/codeblock pre codeblock language-c" id="id__codeblock_nvz_yjn_fdc" data-ofbid="id__codeblock_nvz_yjn_fdc">Board options ---&gt;
[*] Using Gmac0
gmac0 parameter ---&gt;
(PE.<span class="hl-number">6</span>) gmac0 PHY reset GPIO
Select gmac0 bus (RMII) ---&gt;
Select PHY clk (external clk) ---&gt;
(<span class="hl-number">0</span>) gmac0 rx delay
(<span class="hl-number">0</span>) gmac0 tx delay
(<span class="hl-number">192.168</span>.<span class="hl-number">1.2</span>) gmac0 IPv4 addr
(<span class="hl-number">192.168</span>.<span class="hl-number">1.1</span>) gmac0 Gateway
(<span class="hl-number">255.255</span>.<span class="hl-number">255.0</span>) gmac0 Subnet Mask
[*] gmac0 MAC address use chip-id
(<span class="hl-number">002244887766</span>) gmac0 MAC addr
(<span class="hl-number">1</span>) gmac0 PHY MDIO addr
Clocks Options ---&gt;
...
[ ] Enable CLK_OUT0
[ ] Enable CLK_OUT1
[*] Enable CLK_OUT2
(<span class="hl-number">25000000</span>) Clk CLK_OUT2 frequence
[ ] Enable CLK_OUT3</pre></div>
2025-04-23 17:54:31 +08:00
</div><ul class="- topic/ul ul simple" id="id__ul_of4_kys_4dc" data-ofbid="id__ul_of4_kys_4dc">
<li class="- topic/li li" data-ofbid="d73738e62__20250409171037">
<dl class="- topic/dl dl simple" id="id__dl_pf4_kys_4dc" data-ofbid="id__dl_pf4_kys_4dc">
<dt class="- topic/dt dt dlterm" data-ofbid="d73738e68__20250409171037">gmac0 PHY reset GPIO</dt>
<dd class="- topic/dd dd">
<p class="- topic/p p" data-ofbid="d73738e73__20250409171037">外部 PHY 芯片的复位脚相连接的 IO 引脚,根据板卡设计决定</p>
</dd>
</dl>
</li>
<li class="- topic/li li" data-ofbid="d73738e80__20250409171037">
<dl class="- topic/dl dl simple" id="id__dl_qf4_kys_4dc" data-ofbid="id__dl_qf4_kys_4dc">
<dt class="- topic/dt dt dlterm" data-ofbid="d73738e86__20250409171037">Select gmac0 bus</dt>
<dd class="- topic/dd dd">
<p class="- topic/p p" data-ofbid="d73738e91__20250409171037">选择 MAC 与 PHY 相连接的接口类型,根据板卡决定是 RGMII 还是 RMII</p>
</dd>
</dl>
</li>
<li class="- topic/li li" data-ofbid="d73738e98__20250409171037">
<dl class="- topic/dl dl simple" id="id__dl_rf4_kys_4dc" data-ofbid="id__dl_rf4_kys_4dc">
<dt class="- topic/dt dt dlterm" data-ofbid="d73738e104__20250409171037">Select PHY clk</dt>
<dd class="- topic/dd dd">
<p class="- topic/p p" data-ofbid="d73738e109__20250409171037">选择 MAC 使用的总线参考时钟类型是 external clk (外部时钟)还是 internal
2025-01-23 16:37:00 +08:00
clk (内部时钟)。这个配置需要根据电路设计决定。如果 MAC 的时钟参考时钟是来自 PHY 芯片
(即 GMAC_CLKIN 引脚接到 PHY 芯片)则这里选择 external clk否则选择
internal clk</p>
2025-04-23 17:54:31 +08:00
</dd>
</dl>
</li>
<li class="- topic/li li" data-ofbid="d73738e116__20250409171037">
<dl class="- topic/dl dl simple" id="id__dl_sf4_kys_4dc" data-ofbid="id__dl_sf4_kys_4dc">
<dt class="- topic/dt dt dlterm" data-ofbid="d73738e122__20250409171037">gmac0 rx delay</dt>
<dd class="- topic/dd dd">
<p class="- topic/p p" data-ofbid="d73738e127__20250409171037">gmac0 的接收时延,适用于 RGMII 接口模式下, MAC 匹配 PHY 芯片的数据建立时间和保留时
2025-01-23 16:37:00 +08:00
间(单位0.17 ns) 需要根据外部使用的 PHY 芯片调整。一般情况下,设置为 12 ,即
2.04 ns</p>
2025-04-23 17:54:31 +08:00
</dd>
</dl>
</li>
<li class="- topic/li li" data-ofbid="d73738e134__20250409171037">
<dl class="- topic/dl dl simple" id="id__dl_tf4_kys_4dc" data-ofbid="id__dl_tf4_kys_4dc">
<dt class="- topic/dt dt dlterm" data-ofbid="d73738e140__20250409171037">gmac0 tx delay</dt>
<dd class="- topic/dd dd">
<p class="- topic/p p" data-ofbid="d73738e145__20250409171037">gmac0 的发送时延,适用于 RGMII 接口模式下MAC 匹配 PHY 芯片的数据建立时间和保留时间
2025-01-23 16:37:00 +08:00
(单位0.17 ns),需要根据外部使用的 PHY 芯片调整。一般情况下,可设置为 12即 2.04
ns</p>
2025-04-23 17:54:31 +08:00
</dd>
</dl>
</li>
<li class="- topic/li li" data-ofbid="d73738e153__20250409171037">
<dl class="- topic/dl dl simple" id="id__dl_uf4_kys_4dc" data-ofbid="id__dl_uf4_kys_4dc">
<dt class="- topic/dt dt dlterm" data-ofbid="d73738e159__20250409171037">gmac0 IPv4 addr</dt>
<dd class="- topic/dd dd">
<p class="- topic/p p" data-ofbid="d73738e164__20250409171037">当前网卡的初始静态 IP 地址,如打开 DHCP 功能,此处设置无效</p>
</dd>
</dl>
</li>
<li class="- topic/li li" data-ofbid="d73738e171__20250409171037">
<dl class="- topic/dl dl simple" id="id__dl_vf4_kys_4dc" data-ofbid="id__dl_vf4_kys_4dc">
<dt class="- topic/dt dt dlterm" data-ofbid="d73738e177__20250409171037">gmac0 Gateway</dt>
<dd class="- topic/dd dd">
<p class="- topic/p p" data-ofbid="d73738e182__20250409171037">当前网卡的初始静态网关地址,如打开 DHCP 功能,此处设置无效</p>
</dd>
</dl>
</li>
<li class="- topic/li li" data-ofbid="d73738e189__20250409171037">
<dl class="- topic/dl dl simple" id="id__dl_wf4_kys_4dc" data-ofbid="id__dl_wf4_kys_4dc">
<dt class="- topic/dt dt dlterm" data-ofbid="d73738e195__20250409171037">gmac0 Subnet Mask</dt>
<dd class="- topic/dd dd">
<p class="- topic/p p" data-ofbid="d73738e200__20250409171037">当前网卡初始静态子网掩码,如打开 DHCP 功能,此处设置无效</p>
</dd>
</dl>
</li>
<li class="- topic/li li" data-ofbid="d73738e207__20250409171037">
<dl class="- topic/dl dl simple" id="id__dl_xf4_kys_4dc" data-ofbid="id__dl_xf4_kys_4dc">
<dt class="- topic/dt dt dlterm" data-ofbid="d73738e213__20250409171037">gmac0 MAC address use chip-id</dt>
<dd class="- topic/dd dd">
<p class="- topic/p p" data-ofbid="d73738e218__20250409171037">使用芯片的 chip-id 作为 MAC 地址,使能此选项后会使用 chip-id 的低六位经过加密后作为
2025-01-23 16:37:00 +08:00
MAC 地址。这样的好处是同一系列产品的 MAC 地址基本不会重复。</p>
2025-04-23 17:54:31 +08:00
</dd>
</dl>
</li>
<li class="- topic/li li" data-ofbid="d73738e225__20250409171037">
<dl class="- topic/dl dl simple" id="id__dl_yf4_kys_4dc" data-ofbid="id__dl_yf4_kys_4dc">
<dt class="- topic/dt dt dlterm" data-ofbid="d73738e231__20250409171037">gmac0 MAC addr</dt>
<dd class="- topic/dd dd">
<p class="- topic/p p" data-ofbid="d73738e236__20250409171037">gmac0 默认 MAC 地址,当不使能
2025-01-23 16:37:00 +08:00
<span class="+ topic/ph ui-d/uicontrol ph uicontrol">gmac0 MAC address use chip-id</span>
时,即用户需要自定义 MAC 地址时可以在这里配置用户自己的 MAC 地址。</p>
2025-04-23 17:54:31 +08:00
</dd>
</dl>
</li>
<li class="- topic/li li" data-ofbid="d73738e246__20250409171037">
<dl class="- topic/dl dl simple" id="id__dl_zf4_kys_4dc" data-ofbid="id__dl_zf4_kys_4dc">
<dt class="- topic/dt dt dlterm" data-ofbid="d73738e252__20250409171037">gmac0 PHY MDIO addr</dt>
<dd class="- topic/dd dd">
<p class="- topic/p p" data-ofbid="d73738e257__20250409171037">PHY 在 总线上的挂载地址PHY 芯片地址一般取决于 PHY
2025-01-23 16:37:00 +08:00
芯片外部电路设计,请根据板卡设计决定</p>
2025-04-23 17:54:31 +08:00
</dd>
</dl>
</li>
<li class="- topic/li li" data-ofbid="d73738e265__20250409171037">
<dl class="- topic/dl dl simple" id="id__dl_ag4_kys_4dc" data-ofbid="id__dl_ag4_kys_4dc">
<dt class="- topic/dt dt dlterm" data-ofbid="d73738e271__20250409171037">Clocks Options</dt>
<dd class="- topic/dd dd">
<p class="- topic/p p" data-ofbid="d73738e276__20250409171037">如果 PHY 的工作时钟由主控芯片的 CLK_OUTx 提供,则需要在这里使能 CLK_OUT。
2025-01-23 16:37:00 +08:00
具体使能哪一个 CLK_OUT取决于硬件设计</p>
2025-04-23 17:54:31 +08:00
</dd>
</dl>
</li>
<li class="- topic/li li" data-ofbid="d73738e283__20250409171037">
<dl class="- topic/dl dl simple" id="id__dl_bg4_kys_4dc" data-ofbid="id__dl_bg4_kys_4dc">
<dt class="- topic/dt dt dlterm" data-ofbid="d73738e289__20250409171037">Clk CLK_OUT2 frequence</dt>
<dd class="- topic/dd dd">
<p class="- topic/p p" data-ofbid="d73738e294__20250409171037">CLK_OUTx 的输出时钟频率,对于常用的 PHY 芯片,一般是 25 MHz</p>
</dd>
</dl>
</li>
</ul></div>
</li>
<li class="- topic/li li" data-ofbid="d73738e303__20250409171037">
2025-01-23 16:37:00 +08:00
<div class="- topic/div div section" id="id__lwip">
<strong class="+ topic/ph hi-d/b ph b">LwIP 协议配置</strong>
2025-04-23 17:54:31 +08:00
<div class="- topic/p p" data-ofbid="d73738e310__20250409171037"><span class="- topic/ph ph">Luban-Lite</span> 内置 LwIP2.1.3 协议栈,用户可以根据自身需求通过 <span class="+ topic/keyword sw-d/cmdname keyword cmdname">scons
2025-01-23 16:37:00 +08:00
--menuconfig</span> 进行裁剪。 <span class="- topic/ph ph">Luban-Lite</span>
2025-04-23 17:54:31 +08:00
提供的可裁剪属性如下,如有其它特别需求,可自行配置
2025-01-23 16:37:00 +08:00
<span class="+ topic/ph sw-d/filepath ph filepath">packages/third-party/lwip/lwipopts.h</span>
文件。<pre class="+ topic/pre pr-d/codeblock pre codeblock language-c" id="id__codeblock_a4l_2kn_fdc" data-ofbid="id__codeblock_a4l_2kn_fdc">Local packages options ---&gt;
Third-party packages options ---&gt;
[*] lwIP: light weight TCP/IP stack ---&gt;
[ ] IPv6 protocol
[*] lwIP Example
[*] Using net tools
[ ] IGMP protocol
[*] ICMP protocol
[ ] SNMP protocol
[ ] Enable DNS <strong class="hl-keyword">for</strong> name resolution
[ ] Enable alloc IP address through DHCP
[*] UDP protocol
[*] TCP protocol
[*] RAW protocol
[ ] PPP protocol
(<span class="hl-number">8</span>) the number of <strong class="hl-keyword">struct</strong> netconns
(<span class="hl-number">16</span>) the number of PBUF
(<span class="hl-number">15360</span>) the size of lwIP<span class="hl-string">'s dynamic memory
</span> (<span class="hl-number">4</span>) the number of raw connection
(<span class="hl-number">4</span>) the number of UDP socket
(<span class="hl-number">4</span>) the number of TCP socket
(<span class="hl-number">40</span>) the number of TCP segment
(<span class="hl-number">8196</span>) the size of send buffer
(<span class="hl-number">8196</span>) the size of TCP send window
(<span class="hl-number">10</span>) the priority level value of lwIP thread
(<span class="hl-number">8</span>) the number of mail in the lwIP thread mailbox
(<span class="hl-number">3072</span>) the stack size of lwIP thread
[ ] Enable IP reassembly and frag
[ ] Enable lwIP statistics
[ ] Enable tx hardware generate checksum
[ ] Enable rx hardware check checksum
[ ] Enable ping features ----
[ ] Using socket interface during ping requests
( ) the priority level value of ping thread
[ ] Using MQTT protocol
[ ] USing DHCP server
(<span class="hl-number">192.168</span>.<span class="hl-number">1.1</span>) DHCP server IP addresss
(<span class="hl-number">2</span>) Start address of DHCP allocation(Last byte)
(<span class="hl-number">254</span>) End address of DHCP allocation(Last byte)
2025-04-23 17:54:31 +08:00
[ ] Enable lwIP Debugging Options ----</pre></div><dl class="- topic/dl dl" data-ofbid="d73738e325__20250409171037">
<dt class="- topic/dt dt dlterm" data-ofbid="d73738e329__20250409171037">IPv6 protocol</dt>
<dd class="- topic/dd dd">
<p class="- topic/p p" data-ofbid="d73738e334__20250409171037">LwIP 支持 IPV6 协议</p>
</dd>
<dt class="- topic/dt dt dlterm" data-ofbid="d73738e341__20250409171037">lwIP Example</dt>
<dd class="- topic/dd dd">SDK 提供的初始化以太网示例,示例程序源码在
2025-01-23 16:37:00 +08:00
<span class="+ topic/ph sw-d/filepath ph filepath">packages/third-party/lwip/contrib/examples/example_app/</span>
目录下的
<span class="+ topic/ph sw-d/filepath ph filepath">test.c</span><span class="+ topic/ph sw-d/filepath ph filepath">netif_start.c</span><span class="+ topic/ph sw-d/filepath ph filepath">netif_start.h</span>。打开此选项后SDK
会在启动过程中自动 初始化以太网。用户可根据自身需求定义以太网初始化流程。如果不开启此选项,则需要用户自己编写以太网
2025-04-23 17:54:31 +08:00
的初始化程序</dd>
<dt class="- topic/dt dt dlterm" data-ofbid="d73738e360__20250409171037">IPv6 protocol</dt>
<dd class="- topic/dd dd">
<p class="- topic/p p" data-ofbid="d73738e365__20250409171037">LwIP 支持 IPV6 协议</p>
</dd>
<dt class="- topic/dt dt dlterm" data-ofbid="d73738e372__20250409171037">lwIP Example</dt>
<dd class="- topic/dd dd">
<p class="- topic/p p" data-ofbid="d73738e377__20250409171037">SDK 提供的初始化以太网示例,示例程序源码在
2025-01-23 16:37:00 +08:00
<span class="+ topic/ph sw-d/filepath ph filepath">packages/third-party/lwip/contrib/examples/example_app/</span>
目录下的
<span class="+ topic/ph sw-d/filepath ph filepath">test.c</span><span class="+ topic/ph sw-d/filepath ph filepath">netif_start.c</span>
<span class="+ topic/ph sw-d/filepath ph filepath">netif_start.h</span> 文件。打开此选项后SDK 会在启动过程中自动
初始化以太网。用户可根据自身需求定义以太网初始化流程。如果不开启此选项,则需要用户自己编写以太网 的初始化程序</p>
2025-04-23 17:54:31 +08:00
</dd>
<dt class="- topic/dt dt dlterm" data-ofbid="d73738e396__20250409171037">Using net tools</dt>
<dd class="- topic/dd dd">
<p class="- topic/p p" data-ofbid="d73738e401__20250409171037">使用网络调试命令ifconfig, dhcpc …</p>
</dd>
<dt class="- topic/dt dt dlterm" data-ofbid="d73738e409__20250409171037">IGMP protocol</dt>
<dd class="- topic/dd dd">
<p class="- topic/p p" data-ofbid="d73738e414__20250409171037">以太网支持 IGMP 协议,使用组播功能时打开</p>
</dd>
<dt class="- topic/dt dt dlterm" data-ofbid="d73738e421__20250409171037">ICMP protocol</dt>
<dd class="- topic/dd dd">
<p class="- topic/p p" data-ofbid="d73738e426__20250409171037">以太网支持 ICMP 协议,使用 ping 命令时打开</p>
</dd>
<dt class="- topic/dt dt dlterm" data-ofbid="d73738e433__20250409171037">SNMP protocol</dt>
<dd class="- topic/dd dd">
<p class="- topic/p p" data-ofbid="d73738e438__20250409171037">以太网支持 SNMP 协议,需要时打开</p>
</dd>
<dt class="- topic/dt dt dlterm" data-ofbid="d73738e445__20250409171037">Enable DNS for name resolution</dt>
<dd class="- topic/dd dd">
<p class="- topic/p p" data-ofbid="d73738e450__20250409171037">支持 DNS 用户端功能,需要时打开</p>
</dd>
<dt class="- topic/dt dt dlterm" data-ofbid="d73738e457__20250409171037">Enable alloc IP address through DHCP</dt>
<dd class="- topic/dd dd">
<p class="- topic/p p" data-ofbid="d73738e462__20250409171037"> 支持 DHCP 用户端功能,需要时打开。如果打开 DHCP 选项,默认 IP 地址会失效,如果 IP 申请失败,则此时
2025-01-23 16:37:00 +08:00
IP 地址为 0.0.0.0</p>
2025-04-23 17:54:31 +08:00
</dd>
<dt class="- topic/dt dt dlterm" data-ofbid="d73738e469__20250409171037">UDP protocol</dt>
<dd class="- topic/dd dd">
<p class="- topic/p p" data-ofbid="d73738e474__20250409171037">支持 UDP 协议,默认打开</p>
</dd>
<dt class="- topic/dt dt dlterm" data-ofbid="d73738e482__20250409171037">TCP protocol</dt>
<dd class="- topic/dd dd">
<p class="- topic/p p" data-ofbid="d73738e487__20250409171037">支持 TCP 协议,默认打开</p>
</dd>
<dt class="- topic/dt dt dlterm" data-ofbid="d73738e494__20250409171037">RAW protocol</dt>
<dd class="- topic/dd dd">
<p class="- topic/p p" data-ofbid="d73738e499__20250409171037">支持原始套接字接口,如需要编写基于 RAW 套接字的程序时,需要打开</p>
</dd>
<dt class="- topic/dt dt dlterm" data-ofbid="d73738e506__20250409171037">PPP protocol</dt>
<dd class="- topic/dd dd">
<p class="- topic/p p" data-ofbid="d73738e511__20250409171037">支持 PPP 协议,需要时打开</p>
</dd>
<dt class="- topic/dt dt dlterm" data-ofbid="d73738e518__20250409171037">the number of struct netconns</dt>
<dd class="- topic/dd dd">
<p class="- topic/p p" data-ofbid="d73738e523__20250409171037">struct netconns 接口的数量,默认为 8 个,可根据需求自行修改</p>
</dd>
<dt class="- topic/dt dt dlterm" data-ofbid="d73738e530__20250409171037">the number of PBUF</dt>
<dd class="- topic/dd dd">
<p class="- topic/p p" data-ofbid="d73738e535__20250409171037">pbuf 结构的数量,如果需要发送较多的 ROM 类型消息,可自行修改</p>
</dd>
<dt class="- topic/dt dt dlterm" data-ofbid="d73738e542__20250409171037">the size of lwIPs dynamic memory</dt>
<dd class="- topic/dd dd">
<p class="- topic/p p" data-ofbid="d73738e547__20250409171037">LwIP 堆空间大小,与数据发送有关,不建议修改</p>
</dd>
<dt class="- topic/dt dt dlterm" data-ofbid="d73738e555__20250409171037">the number of raw connection</dt>
<dd class="- topic/dd dd">
<p class="- topic/p p" data-ofbid="d73738e560__20250409171037">RAW 控制块数量,根据需求修改</p>
</dd>
<dt class="- topic/dt dt dlterm" data-ofbid="d73738e567__20250409171037">the number of UDP socket</dt>
<dd class="- topic/dd dd">
<p class="- topic/p p" data-ofbid="d73738e572__20250409171037">UDP 控制块数量,根据需求修改</p>
</dd>
<dt class="- topic/dt dt dlterm" data-ofbid="d73738e579__20250409171037">the number of TCP socket</dt>
<dd class="- topic/dd dd">
<p class="- topic/p p" data-ofbid="d73738e584__20250409171037">TCP 控制块数量,根据需求修改</p>
</dd>
<dt class="- topic/dt dt dlterm" data-ofbid="d73738e591__20250409171037">the number of TCP segment</dt>
<dd class="- topic/dd dd">
<p class="- topic/p p" data-ofbid="d73738e596__20250409171037">TCP 等待队列的个数,这个值应该不小于 TCP 的发送队列的个数</p>
</dd>
<dt class="- topic/dt dt dlterm" data-ofbid="d73738e603__20250409171037">the size of send buffer</dt>
<dd class="- topic/dd dd">
<p class="- topic/p p" data-ofbid="d73738e608__20250409171037">TCP 发送缓存大小,如无特别需求,请保持默认值</p>
</dd>
<dt class="- topic/dt dt dlterm" data-ofbid="d73738e615__20250409171037">the size of TCP send window</dt>
<dd class="- topic/dd dd">
<p class="- topic/p p" data-ofbid="d73738e620__20250409171037">TCP 滑动窗口大小,如无特别需求,请保持默认值</p>
</dd>
<dt class="- topic/dt dt dlterm" data-ofbid="d73738e628__20250409171037">the priority level value of lwIP thread</dt>
<dd class="- topic/dd dd">
<p class="- topic/p p" data-ofbid="d73738e633__20250409171037">LwIP 协议栈任务优先级,为防止网络丢包,建议保持较高优先级</p>
</dd>
<dt class="- topic/dt dt dlterm" data-ofbid="d73738e640__20250409171037">the number of mail in the lwIP thread mailbox</dt>
<dd class="- topic/dd dd">
<p class="- topic/p p" data-ofbid="d73738e645__20250409171037">消息邮箱数量,如无特别需求,不建议修改此数量</p>
</dd>
<dt class="- topic/dt dt dlterm" data-ofbid="d73738e652__20250409171037">the stack size of lwIP thread</dt>
<dd class="- topic/dd dd">
<p class="- topic/p p" data-ofbid="d73738e657__20250409171037">LwIP 协议栈任务的栈空间大小,如没有添加基于 RAW 接口的应用程序,不建议修改任务栈。
2025-01-23 16:37:00 +08:00
否则,应该加大协议栈任务的栈空间</p>
2025-04-23 17:54:31 +08:00
</dd>
<dt class="- topic/dt dt dlterm" data-ofbid="d73738e664__20250409171037">Enable IP reassembly and frag</dt>
<dd class="- topic/dd dd">
<p class="- topic/p p" data-ofbid="d73738e669__20250409171037">使能 IP 包的分片重装功能</p>
</dd>
<dt class="- topic/dt dt dlterm" data-ofbid="d73738e676__20250409171037">Enable lwIP statistics</dt>
<dd class="- topic/dd dd">
<p class="- topic/p p" data-ofbid="d73738e681__20250409171037">使能 LwIP 统计信息</p>
</dd>
<dt class="- topic/dt dt dlterm" data-ofbid="d73738e688__20250409171037">Enable tx hardware generate checksum</dt>
<dd class="- topic/dd dd">
<p class="- topic/p p" data-ofbid="d73738e693__20250409171037">使能发送时自动生成硬件校验和</p>
</dd>
<dt class="- topic/dt dt dlterm" data-ofbid="d73738e701__20250409171037">Enable rx hardware check checksum</dt>
<dd class="- topic/dd dd">
<p class="- topic/p p" data-ofbid="d73738e706__20250409171037">使能接收时硬件检查校验和</p>
</dd>
<dt class="- topic/dt dt dlterm" data-ofbid="d73738e713__20250409171037">Enable ping features —-</dt>
<dd class="- topic/dd dd">
<p class="- topic/p p" data-ofbid="d73738e718__20250409171037">ping 命令支持,使能此选项后,可在终端中使用 ping 命令</p>
</dd>
<dt class="- topic/dt dt dlterm" data-ofbid="d73738e725__20250409171037">Using MQTT protocol</dt>
<dd class="- topic/dd dd">
<p class="- topic/p p" data-ofbid="d73738e730__20250409171037">支持 MQTT 协议</p>
</dd>
<dt class="- topic/dt dt dlterm" data-ofbid="d73738e737__20250409171037">USing DHCP server</dt>
<dd class="- topic/dd dd">
<p class="- topic/p p" data-ofbid="d73738e742__20250409171037">使用 dhcp server 服务。使能此选项后可以使用 dhcpd 命令开启 dhcp 服务端</p>
</dd>
<dt class="- topic/dt dt dlterm" data-ofbid="d73738e749__20250409171037">DHCP server IP addresss</dt>
<dd class="- topic/dd dd">
<p class="- topic/p p" data-ofbid="d73738e754__20250409171037">做 dhcp 服务端时的 IP 地址</p>
</dd>
<dt class="- topic/dt dt dlterm" data-ofbid="d73738e761__20250409171037">Start address of DHCP allocation(Last byte)</dt>
<dd class="- topic/dd dd">
<p class="- topic/p p" data-ofbid="d73738e766__20250409171037">dhcp 服务端分配给用户端的起始 ip 地址的低八位</p>
</dd>
<dt class="- topic/dt dt dlterm" data-ofbid="d73738e774__20250409171037">End address of DHCP allocation(Last byte)</dt>
<dd class="- topic/dd dd">
<p class="- topic/p p" data-ofbid="d73738e779__20250409171037">dhcp 服务端分配给用户端的结束 ip 地址的低八位</p>
</dd>
<dt class="- topic/dt dt dlterm" data-ofbid="d73738e786__20250409171037">Enable lwIP Debugging Options —-</dt>
<dd class="- topic/dd dd">
<p class="- topic/p p" data-ofbid="d73738e791__20250409171037">LwIP 调试信息选项,可根据自身需求进行打开</p>
</dd>
</dl>
2025-01-23 16:37:00 +08:00
</div>
2025-04-23 17:54:31 +08:00
</li>
</ul>
</section>
<section class="- topic/section section" id="id__section_twf_bkn_fdc" data-ofbid="id__section_twf_bkn_fdc"><h2 class="- topic/title title sectiontitle">时钟</h2>
2025-01-23 16:37:00 +08:00
2025-04-23 17:54:31 +08:00
<p class="- topic/p p" data-ofbid="d73738e806__20250409171037">MAC 和 PHY 的协同工作共牵涉到四组时钟, <span class="- topic/ph ph">Luban-Lite</span> 已将时钟部分处理完整,不需要用户除 <span class="+ topic/keyword sw-d/cmdname keyword cmdname">scons
2025-01-23 16:37:00 +08:00
--menuconfig</span> 配置 MAC 使用 <span class="+ topic/keyword pr-d/parmname keyword parmname">external clk</span>
2025-04-23 17:54:31 +08:00
<span class="+ topic/keyword pr-d/parmname keyword parmname">internal clk</span> 之外的其它任何修改</p>
<ul class="- topic/ul ul" id="id__ul_zvb_lys_4dc" data-ofbid="id__ul_zvb_lys_4dc">
<li class="- topic/li li" data-ofbid="d73738e823__20250409171037">
2025-01-23 16:37:00 +08:00
<div class="- topic/div div section" id="id__id4">
<strong class="+ topic/ph hi-d/b ph b">MAC 工作时钟</strong>
2025-04-23 17:54:31 +08:00
<div class="- topic/p p" data-ofbid="d73738e830__20250409171037">MAC 的内部工作时钟通过 PLL 分频获得,为 50M 工作时钟不会因为方案的不同而不同,为一固定值 配置代码在
2025-01-23 16:37:00 +08:00
<span class="+ topic/ph sw-d/filepath ph filepath">packages/third-party/lwip/contrib/ports/drv/aic/aic_mac_ll.c</span>
中。<pre class="+ topic/pre pr-d/codeblock pre codeblock language-c" id="id__codeblock_lxy_qxn_fdc" data-ofbid="id__codeblock_lxy_qxn_fdc"><strong class="hl-keyword">void</strong> aicmac_low_level_init(uint32_t port, bool en)
{
uint32_t id = CLK_GMAC0 + port;
<em class="hl-comment">/* MAC clock */</em>
<strong class="hl-keyword">if</strong> (en) {
<em class="hl-comment">/* Set clock frequence = 50M */</em>
hal_clk_set_freq(id, <span class="hl-number">50000000</span>);
<em class="hl-comment">/* clock enable &amp; reset deassert */</em>
hal_clk_enable_deassertrst_iter(id);
} <strong class="hl-keyword">else</strong> {
<em class="hl-comment">/* clock enable &amp; reset deassert */</em>
hal_clk_disable_assertrst(id);
}
}</pre></div>
</div>
2025-04-23 17:54:31 +08:00
</li>
<li class="- topic/li li" data-ofbid="d73738e840__20250409171037">
2025-01-23 16:37:00 +08:00
<div class="- topic/div div section" id="id__mdc">
<strong class="+ topic/ph hi-d/b ph b">MDC 时钟</strong>
2025-04-23 17:54:31 +08:00
<div class="- topic/p p" data-ofbid="d73738e847__20250409171037">MDC 时钟是 MDIO 的工作时钟,是 MAC 和 PHY 进行配置的工作时钟,双方在使用初期会有一个协 商,一般是 MAC 通知
2025-01-23 16:37:00 +08:00
PHY该时钟为 MAC 通过模块的内部工作时钟处理生成,也不会因为方案的 不同而不同为一固定值。MDIO 时钟初始化在
<span class="+ topic/ph sw-d/filepath ph filepath">packages/third-party/lwip/contrib/ports/drv/aic/aicmac.c</span>
文件的 <span class="+ topic/keyword pr-d/apiname keyword apiname">aicmac_init</span>
函数中:<pre class="+ topic/pre pr-d/codeblock pre codeblock language-c" id="id__codeblock_ir5_jyn_fdc" data-ofbid="id__codeblock_ir5_jyn_fdc"><strong class="hl-keyword">int</strong> aicmac_init(uint32_t port)
{
...
<em class="hl-comment">/* MDCIO Internal Clock Select */</em>
tmpreg = readl(MAC(port, mdioctl));
tmpreg &amp;= ~(ETH_MDIOCTL_CR_MSK);
ahbclk = hal_clk_get_freq(CLK_AHB0);
<strong class="hl-keyword">if</strong> ((ahbclk ≥ <span class="hl-number">20000000</span>) &amp;&amp; (ahbclk &lt; <span class="hl-number">35000000</span>)) {
tmpreg |= ETH_MDIOCTL_CR_Div16;
} <strong class="hl-keyword">else</strong> <strong class="hl-keyword">if</strong> ((ahbclk ≥ <span class="hl-number">35000000</span>) &amp;&amp; (ahbclk &lt; <span class="hl-number">60000000</span>)) {
tmpreg |= ETH_MDIOCTL_CR_Div26;
} <strong class="hl-keyword">else</strong> <strong class="hl-keyword">if</strong> ((ahbclk ≥ <span class="hl-number">60000000</span>) &amp;&amp; (ahbclk &lt; <span class="hl-number">100000000</span>)) {
tmpreg |= ETH_MDIOCTL_CR_Div42;
} <strong class="hl-keyword">else</strong> <strong class="hl-keyword">if</strong> ((ahbclk ≥ <span class="hl-number">100000000</span>) &amp;&amp; (ahbclk &lt; <span class="hl-number">150000000</span>)) {
tmpreg |= ETH_MDIOCTL_CR_Div62;
} <strong class="hl-keyword">else</strong> <strong class="hl-keyword">if</strong> ((ahbclk ≥ <span class="hl-number">150000000</span>) &amp;&amp; (ahbclk &lt; <span class="hl-number">250000000</span>)) {
tmpreg |= ETH_MDIOCTL_CR_Div102;
} <strong class="hl-keyword">else</strong> <em class="hl-comment">/* ((ahbclk ≥ 250000000)&amp;&amp;(ahbclk &lt;= 300000000)) */</em>
{
tmpreg |= ETH_MDIOCTL_CR_Div124;
}
writel(tmpreg, MAC(port, mdioctl));
...
...
2025-04-23 17:54:31 +08:00
}</pre></div><p class="- topic/p p" data-ofbid="d73738e857__20250409171037">MDC 时钟配置错误,则 MAC 和 PHY 的通信不通,呈现的现象是 MAC 无法发现 PHY
2025-01-23 16:37:00 +08:00
设备</p>
</div>
2025-04-23 17:54:31 +08:00
</li>
<li class="- topic/li li" data-ofbid="d73738e862__20250409171037">
2025-01-23 16:37:00 +08:00
<div class="- topic/div div section" id="id__phy">
<strong class="+ topic/ph hi-d/b ph b">PHY 工作时钟</strong>
2025-04-23 17:54:31 +08:00
<p class="- topic/p p" data-ofbid="d73738e869__20250409171037">一般 PHY 的工作时钟是 25M 一般的设计是外挂一个晶振提供时钟给 PHY 模组, AIC
不同型号芯片都对外提供几组时钟(CLK_OUT),也可以使用该时钟供给 PHY 模块工作。</p><div class="- topic/p p" data-ofbid="d73738e871__20250409171037">该时钟 (CLK_OUT) 使能在
2025-01-23 16:37:00 +08:00
<span class="+ topic/ph sw-d/filepath ph filepath">target/soc name/board name/sys_clk.c</span>
中配置。如果需要可以打开<pre class="+ topic/pre pr-d/codeblock pre codeblock language-c" id="id__codeblock_brh_kyn_fdc" data-ofbid="id__codeblock_brh_kyn_fdc"><strong class="hl-keyword">struct</strong> aic_sysclk aic_sysclk_config[] = {
...
#ifdef AIC_USING_CLK_OUT0
{AIC_CLK_OUT0_FREQ, CLK_OUT0, <span class="hl-number">0</span>},
#endif <em class="hl-comment">/* AIC_USING_CLK_OUT0 */</em>
#ifdef AIC_USING_CLK_OUT1
{AIC_CLK_OUT1_FREQ, CLK_OUT1, <span class="hl-number">0</span>},
#endif <em class="hl-comment">/* AIC_USING_CLK_OUT1 */</em>
#ifdef AIC_USING_CLK_OUT2
{AIC_CLK_OUT2_FREQ, CLK_OUT2, <span class="hl-number">0</span>},
#endif <em class="hl-comment">/* AIC_USING_CLK_OUT2 */</em>
#ifdef AIC_USING_CLK_OUT3
{AIC_CLK_OUT3_FREQ, CLK_OUT3, <span class="hl-number">0</span>},
#endif <em class="hl-comment">/* AIC_USING_CLK_OUT3 */</em>
...
};
<strong class="hl-keyword">void</strong> aic_board_sysclk_init(<strong class="hl-keyword">void</strong>)
{
uint32_t i = <span class="hl-number">0</span>;
<strong class="hl-keyword">for</strong> (i=<span class="hl-number">0</span>; i&lt;<strong class="hl-keyword">sizeof</strong>(aic_sysclk_config)/<strong class="hl-keyword">sizeof</strong>(<strong class="hl-keyword">struct</strong> aic_sysclk); i++) {
hal_clk_set_freq(aic_sysclk_config[i].clk_id, aic_sysclk_config[i].freq);
}
<em class="hl-comment">/* Enable sys clk */</em>
hal_clk_enable_deassertrst_iter(CLK_GPIO);
hal_clk_enable_deassertrst_iter(CLK_GTC);
}</pre></div></div>
2025-04-23 17:54:31 +08:00
</li>
<li class="- topic/li li" data-ofbid="d73738e880__20250409171037">
2025-01-23 16:37:00 +08:00
<div class="- topic/div div section" id="id__mdata">
<strong class="+ topic/ph hi-d/b ph b">MDATA 时钟</strong>
2025-04-23 17:54:31 +08:00
<p class="- topic/p p" data-ofbid="d73738e887__20250409171037">MDATA 时钟 为 MAC 和 PHY 进行数据传输的时钟,对于百兆和千兆有不同的使用方式 </p><ul class="- topic/ul ul simple" id="id__ul_yd3_bkn_fdc" data-ofbid="id__ul_yd3_bkn_fdc">
<li class="- topic/li li" data-ofbid="d73738e891__20250409171037">
<p class="- topic/p p" data-ofbid="d73738e893__20250409171037">百兆网络:可以是 MAC 供给 PHY 也可以是 PHY 供给 MAC</p>
</li>
<li class="- topic/li li" data-ofbid="d73738e897__20250409171037">
<p class="- topic/p p" data-ofbid="d73738e899__20250409171037">千兆网络:只能是 MAC 供给 PHYRGMII0-TXCK 端口</p>
</li>
</ul><div class="- topic/p p" data-ofbid="d73738e903__20250409171037">代码中会根据 <span class="+ topic/keyword sw-d/cmdname keyword cmdname">scons --menuconfig</span> 中的配置来决定 MAC
2025-01-23 16:37:00 +08:00
使用的时钟来源是内部时钟还是外部时钟<pre class="+ topic/pre pr-d/codeblock pre codeblock language-c" id="id__codeblock_zk2_lyn_fdc" data-ofbid="id__codeblock_zk2_lyn_fdc"><strong class="hl-keyword">static</strong> s32 syscfg_gmac_init(u32 ch)
{
#ifdef AIC_SYSCFG_DRV_V10
u32 cfg_reg = ch ? SYSCFG_GMAC1_CFG : SYSCFG_GMAC0_CFG;
#<strong class="hl-keyword">else</strong>
u32 cfg_reg = SYSCFG_GMAC0_CFG;
#endif
s32 cfg;
cfg = syscfg_readl(cfg_reg);
<strong class="hl-keyword">if</strong> (ch == <span class="hl-number">0</span>) {
#ifdef AIC_SYSCFG_DRV_V10
#ifdef AIC_DEV_GMAC0_RGMII
cfg |= SYSCFG_GMAC_PHY_RGMII_<span class="hl-number">1000</span>M;
#<strong class="hl-keyword">else</strong>
cfg &amp;= ~SYSCFG_GMAC_PHY_RGMII_<span class="hl-number">1000</span>M;
#endif
#endif
#ifdef AIC_DEV_GMAC0_PHY_EXTCLK
cfg |= SYSCFG_GMAC_RMII_EXTCLK_SEL;
#endif
#<strong class="hl-keyword">if</strong> AIC_DEV_GMAC0_TXDELAY
cfg |= (AIC_DEV_GMAC0_TXDELAY &lt;&lt; SYSCFG_GMAC_TXDLY_SEL_SHIFT);
#endif
#<strong class="hl-keyword">if</strong> AIC_DEV_GMAC0_RXDELAY
cfg |= (AIC_DEV_GMAC0_RXDELAY &lt;&lt; SYSCFG_GMAC_RXDLY_SEL_SHIFT);
#endif
} <strong class="hl-keyword">else</strong> <strong class="hl-keyword">if</strong> (ch == <span class="hl-number">1</span>) {
#ifdef AIC_SYSCFG_DRV_V10
#ifdef AIC_DEV_GMAC1_RGMII
cfg |= SYSCFG_GMAC_PHY_RGMII_<span class="hl-number">1000</span>M;
#<strong class="hl-keyword">else</strong>
cfg &amp;= ~SYSCFG_GMAC_PHY_RGMII_<span class="hl-number">1000</span>M;
#endif
#endif
#ifdef AIC_DEV_GMAC1_PHY_EXTCLK
cfg |= SYSCFG_GMAC_RMII_EXTCLK_SEL;
#endif
#<strong class="hl-keyword">if</strong> AIC_DEV_GMAC1_TXDELAY
cfg |= (AIC_DEV_GMAC1_TXDELAY &lt;&lt; SYSCFG_GMAC_TXDLY_SEL_SHIFT);
#endif
#<strong class="hl-keyword">if</strong> AIC_DEV_GMAC1_RXDELAY
cfg |= (AIC_DEV_GMAC1_RXDELAY &lt;&lt; SYSCFG_GMAC_RXDLY_SEL_SHIFT);
#endif
}
syscfg_writel(cfg, cfg_reg);
<strong class="hl-keyword">return</strong> <span class="hl-number">0</span>;
}</pre></div></div>
2025-04-23 17:54:31 +08:00
</li>
<li class="- topic/li li" data-ofbid="d73738e912__20250409171037">
2025-01-23 16:37:00 +08:00
<div class="- topic/div div section" id="id__pinmux">
<strong class="+ topic/ph hi-d/b ph b">pinmux 配置</strong>
2025-04-23 17:54:31 +08:00
<div class="- topic/p p" data-ofbid="d73738e919__20250409171037"><span class="+ topic/ph sw-d/filepath ph filepath">target/soc name/board name/pinmux.c</span> 中设置 MAC 端口的
2025-01-23 16:37:00 +08:00
pinmux
需要根据开发板板的不同进行不同的设置<pre class="+ topic/pre pr-d/codeblock pre codeblock language-c" id="id__codeblock_s2s_lyn_fdc" data-ofbid="id__codeblock_s2s_lyn_fdc">#ifdef AIC_USING_GMAC0
<em class="hl-comment">/* gmac0 */</em>
{<span class="hl-number">6</span>, PIN_PULL_DIS, <span class="hl-number">3</span>, <span class="hl-string">"PE.0"</span>},
{<span class="hl-number">6</span>, PIN_PULL_DIS, <span class="hl-number">3</span>, <span class="hl-string">"PE.1"</span>},
{<span class="hl-number">6</span>, PIN_PULL_DIS, <span class="hl-number">3</span>, <span class="hl-string">"PE.2"</span>},
{<span class="hl-number">6</span>, PIN_PULL_DIS, <span class="hl-number">3</span>, <span class="hl-string">"PE.3"</span>},
{<span class="hl-number">6</span>, PIN_PULL_DIS, <span class="hl-number">3</span>, <span class="hl-string">"PE.4"</span>},
{<span class="hl-number">6</span>, PIN_PULL_DIS, <span class="hl-number">3</span>, <span class="hl-string">"PE.5"</span>},
{<span class="hl-number">6</span>, PIN_PULL_DIS, <span class="hl-number">3</span>, <span class="hl-string">"PE.7"</span>},
{<span class="hl-number">6</span>, PIN_PULL_DIS, <span class="hl-number">3</span>, <span class="hl-string">"PE.8"</span>},
{<span class="hl-number">6</span>, PIN_PULL_DIS, <span class="hl-number">3</span>, <span class="hl-string">"PE.9"</span>},
<em class="hl-comment">/* phy0 reset GPIO */</em>
{<span class="hl-number">1</span>, PIN_PULL_DIS, <span class="hl-number">3</span>, <span class="hl-string">"PE.6"</span>},
2025-04-23 17:54:31 +08:00
#endif</pre></div><div class="- topic/p p" data-ofbid="d73738e926__20250409171037">如果 PHY 工作时钟是由主控芯片的 CLK_OUT 提供,则还需要配置 CLK_OUT
2025-01-23 16:37:00 +08:00
引脚的
pinmux<pre class="+ topic/pre pr-d/codeblock pre codeblock language-c" id="id__codeblock_skh_myn_fdc" data-ofbid="id__codeblock_skh_myn_fdc">#ifdef AIC_USING_CLK_OUT0
{<span class="hl-number">6</span>, PIN_PULL_DIS, <span class="hl-number">3</span>, <span class="hl-string">"PD.21"</span>},
#endif
#ifdef AIC_USING_CLK_OUT1
{<span class="hl-number">5</span>, PIN_PULL_DIS, <span class="hl-number">3</span>, <span class="hl-string">"PE.11"</span>},
#endif
#ifdef AIC_USING_CLK_OUT2
{<span class="hl-number">6</span>, PIN_PULL_DIS, <span class="hl-number">3</span>, <span class="hl-string">"PE.10"</span>},
#endif
#ifdef AIC_USING_CLK_OUT3
{<span class="hl-number">6</span>, PIN_PULL_DIS, <span class="hl-number">3</span>, <span class="hl-string">"PF.10"</span>},
#endif</pre></div></div>
2025-04-23 17:54:31 +08:00
</li>
</ul>
</section>
</div>
</article></main></div>
2025-01-23 16:37:00 +08:00
</div>
<nav role="navigation" id="wh_topic_toc" aria-label="On this page" class="col-lg-2 d-none d-lg-block navbar d-print-none">
<div id="wh_topic_toc_content">
<div class=" wh_topic_toc "><div class="wh_topic_label">在本页上</div><ul><li class="section-item"><div class="section-title"><a href="#id__ref-to-lite-mac-cfg" data-tocid="id__ref-to-lite-mac-cfg">以太网配置</a></div></li><li class="section-item"><div class="section-title"><a href="#id__section_twf_bkn_fdc" data-tocid="id__section_twf_bkn_fdc">时钟</a></div></li></ul></div>
</div>
</nav>
</div>
</div>
</div>
<footer class="navbar navbar-default wh_footer">
<div class=" footer-container mx-auto ">
<title>footer def</title>
2025-04-23 17:54:31 +08:00
<style>
2025-01-23 16:37:00 +08:00
.p1 {
font-family: FangZhengShuSong, Times, serif;
}
.p2 {
font-family: Arial, Helvetica, sans-serif;
}
.p3 {
font-family: "Lucida Console", "Courier New", monospace;
}
2025-04-23 17:54:31 +08:00
</style>
2025-01-23 16:37:00 +08:00
<div class="webhelp.fragment.footer">
2025-04-23 17:54:31 +08:00
<p class="p1">Copyright © 2019-2025 广东匠芯创科技有限公司. All rights reserved.</p>
</div>
<div>
2025-01-23 16:37:00 +08:00
<div class="generation_time">
2025-04-23 17:54:31 +08:00
Update Time: 2025-04-09
2025-01-23 16:37:00 +08:00
</div>
2025-04-23 17:54:31 +08:00
</div>
2025-01-23 16:37:00 +08:00
</div>
</footer>
<div id="go2top" class="d-print-none">
<span class="oxy-icon oxy-icon-up"></span>
</div>
<div id="modal_img_large" class="modal">
<span class="close oxy-icon oxy-icon-remove"></span>
<div id="modal_img_container"></div>
<div id="caption"></div>
</div>
<script src="${pd}/publishing/publishing-styles-AIC-template/js/custom.js" defer="defer"></script>
</body>
</html>