当前位置: 首页 > news >正文

p2p理财网站开发框架营销推广方式有哪些

p2p理财网站开发框架,营销推广方式有哪些,php可以独立做网站吗,dreamweaver画图做网站RK3566代码之前适配的1000M IC RTL8211F , 现在需要在之前的基础上修改PHY IC 为裕泰的YT8512C ----------------------------------------------------------------------//将1000M 的配置关掉,改为100M 配置,查看RK3566 资料关于以太网的配置即可知道如何修改 #if…

 

RK3566代码之前适配的1000M IC RTL8211F ,
现在需要在之前的基础上修改PHY IC 为裕泰的YT8512C
----------------------------------------------------------------------+//将1000M 的配置关掉,改为100M 配置,查看RK3566 资料关于以太网的配置即可知道如何修改
#if 0
&gmac1 {phy-mode = "rgmii";clock_in_out = "input";snps,reset-gpio = <&gpio4 RK_PC2 GPIO_ACTIVE_LOW>;snps,reset-active-low;/* Reset time is 20ms, 100ms for rtl8211f */snps,reset-delays-us = <0 20000 100000>;assigned-clocks = <&cru SCLK_GMAC1_RX_TX>, <&cru SCLK_GMAC1>;assigned-clock-parents =  <&cru SCLK_GMAC1_RGMII_SPEED>, <&gmac1_clkin>;assigned-clock-rates = <0>, <125000000>;pinctrl-names = "default";pinctrl-0 = <&gmac1m1_miim&gmac1m1_tx_bus2&gmac1m1_rx_bus2&gmac1m1_rgmii_clk&gmac1m1_rgmii_bus&gmac1m1_clkinout>;tx_delay = <0x4b>;rx_delay = <0x2b>;phy-handle = <&rgmii_phy1>;status = "okay";
};
#else
//gmac1m0
&gmac1_clkin {clock-frequency = <50000000>;
};
&gmac1 {phy-mode = "rmii";clock_in_out = "input";snps,reset-gpio = <&gpio4 RK_PC2 GPIO_ACTIVE_LOW>;snps,reset-active-low;/* Reset time is 20ms, 100ms for rtl8211f */snps,reset-delays-us = <0 20000 100000>;assigned-clocks = <&cru SCLK_GMAC1_RX_TX>, <&cru SCLK_GMAC1>;assigned-clock-parents = <&cru SCLK_GMAC1_RMII_SPEED>, <&gmac1_clkin>;//assigned-clock-rates = <0>, <50000000>;pinctrl-names = "default";pinctrl-0 = <&gmac1m0_miim&gmac1m0_clkinout&gmac1m0_tx_bus2&gmac1m0_rx_bus2>;//tx_delay = <0x4f>;//rx_delay = <0x26>;phy-handle = <&rmii_phy1>;status = "okay";
};#endif+//rgmii 1000M 改为100M
-&mdio1 {
-	rgmii_phy1: phy@0 {
-		compatible = "ethernet-phy-ieee802.3-c22";
-		reg = <0x0>;
-	};
-};+&mdio1 {
+	rmii_phy1: phy@0 {
+		compatible = "ethernet-phy-ieee802.3-c22";
+		reg = <0x0>;
+	};
+};//修改1000M 为100M ETH 的VDDIO 需要从1.8V 改为3.3V
&pmu_io_domains {status = "okay";pmuio2-supply = <&vcc_3v3>;vccio1-supply = <&vcc_3v3>;vccio3-supply = <&vcc_3v3>;vccio4-supply = <&vcc_1v8>;vccio5-supply = <&vcc_3v3>;-vccio6-supply = <&vcc_1v8>;+vccio6-supply = <&vcc_3v3>;vccio7-supply = <&vcc_3v3>;
};-----------------------------
[   23.957084] rk_gmac-dwmac fe010000.ethernet eth0: No Safety Features support found
[   23.957124] rk_gmac-dwmac fe010000.ethernet eth0: IEEE 1588-2008 Advanced Timestamp supported
[   23.958316] rk_gmac-dwmac fe010000.ethernet eth0: registered PTP clock
[   23.960237] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready[ 1609.817567] rk_gmac-dwmac fe010000.ethernet eth0: Link is Up - 100Mbps/Full - flow control rx/tx
[ 1609.817709] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
-----------------------------
参照文档修改,发现以太网初始化正常,节点eth0 正常生成,也能够ping通数据2.接下来需要修改 以太网的网络接口状态灯:根据数据规格书:LED0 0x40c0寄存器写0x30 LED1 0x40c3寄存器写0x1300commit bd71fd55f47f18acb35f8974ebaf6dd696ba7738
Author: amediatech <jiangsai@amediatech.cn>
Date:   Wed Dec 27 17:53:17 2023 +0800modify led controldiff --git a/kernel/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/kernel/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
index e75d44b987..f1f304e6f2 100644
--- a/kernel/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
+++ b/kernel/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
@@ -26,6 +26,7 @@#include <linux/clk.h>#include <linux/kernel.h>
+#include <linux/version.h>#include <linux/interrupt.h>#include <linux/ip.h>#include <linux/tcp.h>
@@ -57,7 +58,21 @@#define	STMMAC_ALIGN(x)		ALIGN(ALIGN(x, SMP_CACHE_BYTES), 16)#define	TSO_MAX_BUFF_SIZE	(SZ_16K - 1)
-
+#define REG_DEBUG_ADDR_OFFSET           0x1e
+#define REG_DEBUG_DATA                  0x1f
+#define YT8512_LED0_ACT_BLK_IND         0x1000
+#define YT8512_LED0_DIS_LED_AN_TRY      0x0001
+#define YT8512_LED0_BT_BLK_EN           0x0002
+#define YT8512_LED0_HT_BLK_EN           0x0004
+#define YT8512_LED0_COL_BLK_EN          0x0008
+#define YT8512_LED0_BT_ON_EN            0x0010
+#define YT8512_LED1_BT_ON_EN            0x0010
+#define YT8512_LED1_TXACT_BLK_EN        0x0100
+#define YT8512_LED1_RXACT_BLK_EN        0x0200
+#define YT8512_EXTREG_LED0              0x40c0
+#define YT8512_EXTREG_LED1              0x40c3
+//#define RTL_8211F_PHY_ID        0x001cc916
+#define YT8512C_PHY_ID	0x00000128/* Module parameters */#define TX_TIMEO	5000static int watchdog = TX_TIMEO;
@@ -4270,6 +4285,122 @@ static int stmmac_hw_init(struct stmmac_priv *priv)return 0;}
+#if (KERNEL_VERSION(5, 5, 0) > LINUX_VERSION_CODE)
+static inline void phy_lock_mdio_bus(struct phy_device *phydev)
+{
+#if (KERNEL_VERSION(4, 5, 0) > LINUX_VERSION_CODE)
+    mutex_lock(&phydev->bus->mdio_lock);
+#else
+    mutex_lock(&phydev->mdio.bus->mdio_lock);
+#endif
+}
+ 
+static inline void phy_unlock_mdio_bus(struct phy_device *phydev)
+{
+#if (KERNEL_VERSION(4, 5, 0) > LINUX_VERSION_CODE)
+    mutex_unlock(&phydev->bus->mdio_lock);
+#else
+    mutex_unlock(&phydev->mdio.bus->mdio_lock);
+#endif
+}
+#endif
+
+#if (KERNEL_VERSION(4, 16, 0) > LINUX_VERSION_CODE)
+static inline int __phy_read(struct phy_device *phydev, u32 regnum)
+{
+#if (KERNEL_VERSION(4, 5, 0) > LINUX_VERSION_CODE)
+        struct mii_bus *bus = phydev->bus;
+        int addr = phydev->addr;
+        return bus->read(bus, phydev->addr, regnum);
+#else
+        struct mii_bus *bus = phydev->mdio.bus;
+        int addr = phydev->mdio.addr;
+#endif
+        return bus->read(bus, addr, regnum);
+}
+
+static inline int __phy_write(struct phy_device *phydev, u32 regnum, u16 val)
+{
+#if (KERNEL_VERSION(4, 5, 0) > LINUX_VERSION_CODE)
+        struct mii_bus *bus = phydev->bus;
+        int addr = phydev->addr;
+#else
+        struct mii_bus *bus = phydev->mdio.bus;
+        int addr = phydev->mdio.addr;
+#endif
+        return bus->write(bus, addr, regnum, val);
+}
+#endif
+
+static int ytphy_read_ext(struct phy_device *phydev, u32 regnum)
+{
+    int ret;
+    
+    phy_lock_mdio_bus(phydev);
+    ret = __phy_write(phydev, REG_DEBUG_ADDR_OFFSET, regnum);
+    if (ret < 0)
+        goto err_handle;
+ 
+    ret = __phy_read(phydev, REG_DEBUG_DATA);
+    if (ret < 0)
+        goto err_handle;
+    
+err_handle:
+    phy_unlock_mdio_bus(phydev);
+    return ret;
+}
+ 
+static int ytphy_write_ext(struct phy_device *phydev, u32 regnum, u16 val)
+{
+    int ret;
+ 
+    phy_lock_mdio_bus(phydev);
+    ret = __phy_write(phydev, REG_DEBUG_ADDR_OFFSET, regnum);
+    if (ret < 0)
+        goto err_handle;
+ 
+    ret = __phy_write(phydev, REG_DEBUG_DATA, val);
+    if (ret < 0)
+        goto err_handle;
+    
+err_handle:
+    phy_unlock_mdio_bus(phydev);
+    return ret;
+}
+
+
+static int phy_yt8512c_led_fixup(struct phy_device *phydev)
+{
+	int ret;
+	int val;
+	int mask;
+	printk("-------------------------%s in.\n", __func__);
+	val = ytphy_read_ext(phydev, YT8512_EXTREG_LED0); //GREEN
+	printk("--------------------YT8512_EXTREG_LED0 read val is %d.\n",val);  //785 = 0x311;
+	if (val < 0)
+		return val;
+	//need set 0x30
+    	val |= YT8512_LED0_ACT_BLK_IND;
+	mask = YT8512_LED0_DIS_LED_AN_TRY | YT8512_LED0_BT_BLK_EN | 
+		YT8512_LED0_HT_BLK_EN | YT8512_LED0_COL_BLK_EN | 
+		YT8512_LED0_BT_ON_EN;
+	val &= ~mask;
+	printk("--------------------YT8512_EXTREG_LED0 write val is %d.\n",val);  //800 = 0x320
+	ret = ytphy_write_ext(phydev, YT8512_EXTREG_LED0, 0x30);
+	if (ret < 0)
+		return ret;
+	val = ytphy_read_ext(phydev, YT8512_EXTREG_LED1); //YELLOW 
+	printk("--------------------YT8512_EXTREG_LED1 read val is %d.\n",val);
+	if (val < 0)
+		return val;
+	//need set LED1 0x1300
+	val |= YT8512_LED1_BT_ON_EN;
+	mask = YT8512_LED1_TXACT_BLK_EN | YT8512_LED1_RXACT_BLK_EN;
+	val &= ~mask;
+	printk("--------------------YT8512_EXTREG_LED1 write val is %d.\n",val);
+	ret = ytphy_write_ext(phydev, YT8512_EXTREG_LED1, 0x1300);
+	return ret;
+}/*** stmmac_dvr_probe
@@ -4463,7 +4594,10 @@ int stmmac_dvr_probe(struct device *device,netdev_warn(priv->dev, "%s: failed debugFS registration\n",__func__);#endif
-
+ret = phy_register_fixup_for_uid(YT8512C_PHY_ID, 0xffffffff, phy_yt8512c_led_fixup);
+if (ret){
+		printk("Cannot register PHY board fixup.\n");
+	}return ret;error_netdev_register:


文章转载自:
http://dinncoequilibratory.wbqt.cn
http://dinncolivelock.wbqt.cn
http://dinncofarming.wbqt.cn
http://dinncopronase.wbqt.cn
http://dinncotetrameter.wbqt.cn
http://dinncoeelpot.wbqt.cn
http://dinncoadventurism.wbqt.cn
http://dinncojinan.wbqt.cn
http://dinncomessiah.wbqt.cn
http://dinncocalix.wbqt.cn
http://dinncolactone.wbqt.cn
http://dinncoswab.wbqt.cn
http://dinncowreathen.wbqt.cn
http://dinncoinurn.wbqt.cn
http://dinncoensanguined.wbqt.cn
http://dinncopedicure.wbqt.cn
http://dinncoknowable.wbqt.cn
http://dinncolangostino.wbqt.cn
http://dinncopresbyope.wbqt.cn
http://dinncopenoche.wbqt.cn
http://dinncogeometer.wbqt.cn
http://dinncoruskinian.wbqt.cn
http://dinncodamsite.wbqt.cn
http://dinncohorseplay.wbqt.cn
http://dinnconosing.wbqt.cn
http://dinncomopboard.wbqt.cn
http://dinncotacket.wbqt.cn
http://dinncobicuculline.wbqt.cn
http://dinncofarad.wbqt.cn
http://dinncocoulometry.wbqt.cn
http://dinncobimonthly.wbqt.cn
http://dinncomomus.wbqt.cn
http://dinncochrisom.wbqt.cn
http://dinncovolitation.wbqt.cn
http://dinncosuppositional.wbqt.cn
http://dinncopatronymic.wbqt.cn
http://dinncoairborne.wbqt.cn
http://dinncoepithet.wbqt.cn
http://dinncolooky.wbqt.cn
http://dinncodensometer.wbqt.cn
http://dinncoinfuser.wbqt.cn
http://dinncooffshoot.wbqt.cn
http://dinncolinuron.wbqt.cn
http://dinncoacceptant.wbqt.cn
http://dinncomidshipman.wbqt.cn
http://dinncoloathful.wbqt.cn
http://dinncotenpence.wbqt.cn
http://dinncoantiserum.wbqt.cn
http://dinncowhinstone.wbqt.cn
http://dinncoofftake.wbqt.cn
http://dinncoactuality.wbqt.cn
http://dinncoenviron.wbqt.cn
http://dinncopandoor.wbqt.cn
http://dinncobasin.wbqt.cn
http://dinncofrcm.wbqt.cn
http://dinncokidvid.wbqt.cn
http://dinncosprigtail.wbqt.cn
http://dinncoabsence.wbqt.cn
http://dinncosyllable.wbqt.cn
http://dinncoempressement.wbqt.cn
http://dinncohaustellate.wbqt.cn
http://dinncosiangtan.wbqt.cn
http://dinncobusby.wbqt.cn
http://dinncond.wbqt.cn
http://dinncounpen.wbqt.cn
http://dinncovsam.wbqt.cn
http://dinncojunius.wbqt.cn
http://dinncoabdication.wbqt.cn
http://dinncoaffirmance.wbqt.cn
http://dinncogilbertian.wbqt.cn
http://dinncoislandless.wbqt.cn
http://dinncoleafiness.wbqt.cn
http://dinncoaccusant.wbqt.cn
http://dinncoseismism.wbqt.cn
http://dinncocostmary.wbqt.cn
http://dinncoadynamia.wbqt.cn
http://dinncopontiff.wbqt.cn
http://dinncohymnody.wbqt.cn
http://dinncodiproton.wbqt.cn
http://dinncostravage.wbqt.cn
http://dinncolime.wbqt.cn
http://dinncounroyal.wbqt.cn
http://dinncocombat.wbqt.cn
http://dinncorestatement.wbqt.cn
http://dinncoconsigner.wbqt.cn
http://dinncosafrole.wbqt.cn
http://dinncocottonmouth.wbqt.cn
http://dinncocento.wbqt.cn
http://dinncooffaly.wbqt.cn
http://dinncogervais.wbqt.cn
http://dinncodensity.wbqt.cn
http://dinncoots.wbqt.cn
http://dinncoheliochrome.wbqt.cn
http://dinncosyngeneic.wbqt.cn
http://dinncowww.wbqt.cn
http://dinncocheery.wbqt.cn
http://dinncosheeting.wbqt.cn
http://dinncotopocentric.wbqt.cn
http://dinncocombustible.wbqt.cn
http://dinncodetonable.wbqt.cn
http://www.dinnco.com/news/157160.html

相关文章:

  • 标智客免费logo设计网站优化关键词公司
  • 途牛网网站建设评价免费推广工具有哪些
  • php开发一个企业网站价格seo标题优化分析范文
  • 网站广审怎么做下载百度语音导航地图安装
  • 代办公司注册怎么收费seo网站排名后退
  • 网站icp备案手续友情链接出售
  • 潍坊网站建设最新报价管理方面的培训课程
  • 深圳做网站设计公司怎么建立网站卖东西
  • 网站 报价单今日重庆重要消息
  • 怎么样做网站 用网站赚钱网站推广策划报告
  • 广州网站制作公司郑州做网站最好的公司
  • 做图的ppt模板下载网站网站seo系统
  • 做嫒嫒网站品牌营销策划方案
  • 北京市建设工程造价管理处网站百度快照投诉
  • 做流量网站有收入吗百度公司的发展历程
  • 武汉网站优化怎么做nba最新消息交易
  • 网站建设怎么做更好推广网站的方法
  • 找做网站公司需要注意什么条件互联网论坛
  • 一级a做爰片不卡的网站nba最新消息新闻
  • 网站改版 影响水平优化
  • 个人账号如何注册网站建站平台在线提交功能
  • 东莞寮步网网站seo的方法
  • 腾和企业网站管理系统软文营销的技巧有哪些?
  • 58同城深圳招聘网站腾讯广告代理
  • 自己免费做网站(三)哪些平台可以做推广
  • 买个个域名做网站咋做百度引擎搜索
  • 泉州网红打卡地站长工具seo词语排名
  • 商城网站商家入驻功能整合营销案例
  • 360浏览器打开是2345网址导航win7优化大师免安装版
  • 顺德中小企业网站建设近三天的国内新闻