华为Atlas 200 AI驱动rtl8367s网络交换芯片

一、难点

调试rtl8367s交换芯片主要面临三大挑战:
1、以前没有过关于调试switch芯片的案例,几乎从无到有,需要自行查阅资料。
2、网上关于rtl8367系列调试资料很少,而且大多数并没有实际的参考意义。
3、rtl8376s芯片调试没有官方技术支持,并且无官方资料,给出的芯片手册寄存器说明不全。

二、前期准备

1、从OpenWrt项目中找到rtl8367s相关源码并下载到本地。
2、查阅Atlas内核源码中与switch芯片相关的部分,发现只有rtl8366rb驱动。
3、初步计划将rtl8367s源码移植到内核中。

三、移植过程

第一步使用自带switch源码测试mdio通信,确保芯片与Atlas之间的通信没有问题,硬件上连接了MDIO专用接口和i2c0,直接考虑用专用通信接口,调试过程中发现网上找的rtl8367s大多数源码都是用gpio模拟mdio总线通信,于是将这两个专用口配置为普通gpio,设备树hi1910-asic-nic.dtsi中增加

	switch {
   
		compatible = "realtek,rtl8366rb";
		mdc-gpios = <&porta 8 1>; // 
		mdio-gpios = <&porta 9 1>; // 
		reset-gpios = <&portc 7 0>; // 
		realtek,disable-leds;
		subctrl-vbase = <&peri_sub>;
		
		switch_intc: interrupt-controller {
   
			// GPIO 10 provides the interrupt
			interrupt-parent = <&porta>;
			interrupts = <10 8>;
			interrupt-controller;
			#address-cells = <0>;
			#interrupt-cells = <1>;
		};

		ports {
   
			#address-cells = <1>;
			#size-cells = <0>;

			port@0 {
   
				reg = <0>;
				label = "lan0";
				phy-handle = <&phy0>;
			};
			port@1 {
   
				reg = <1>;
				label = "lan1";
				phy-handle = <&phy1>;
			};
			port@2 {
   
				reg = <2>;
				label = "lan2";
				phy-handle = <&phy2>;
			};
			port@3 {
   
				reg = <3>;
				label = "lan3";
				phy-handle = <&phy3>;
			};
			port@4 {
   
				reg = <4>;
				label = "wan";
				phy-handle = <&phy4>;
			};
			rtl8366rb_cpu_port: port@5 {
   
				reg = <5>;
				label = "cpu";
				ethernet = <&higmac>;
				phy-mode = "rgmii";
				fixed-link {
   
					speed 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

深入黑暗

创作不易,希望大家支持一下

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值