专利名称:一种加载固件的方法和设备的制作方法
技术领域:
本发明涉及网络通信领域,尤其涉及一种加载固件的方法和设备。
背景技术:
通常,交换芯片通过一个串行管理接口 Serial Management hterface,简称为 SMI)连接多个物理层(physical layer,简称为PHY)芯片,各个PHY芯片通过不同的物理地址来区分。在为PHY芯片加载固件(Fireware)时,根据物理地址通过SMI依次为各个PHY 芯片加载。因此,通常的PHY芯片固件加载方式,加载固件时间长,导致设备启动时间长,不能满足快速启动设备的需求。
发明内容
本发明实施例提供了一种加载固件的方法和设备,以解决现有技术中加载固件时间长,设备不能快速启动的问题。为解决上述技术问题,本发明实施例提供了一种加载固件的方法,所述固件加载的方法应用于网络设备中,所述网络设备包括逻辑芯片和多个物理层PHY芯片,其中,所述逻辑芯片通过多个串行管理接口 SMI与所述多个PHY芯片连接,所述多个PHY芯片中至少有两个PHY芯片的物理地址相同,并且所述多个SMI中的任意一个SMI连接的所有PHY芯片的物理地址各不相同;所述固件加载的方法包括所述逻辑芯片打开所述多个SMI中的至少两个SMI ;所述逻辑芯片通过所述打开的至少两个SMI,向物理地址相同的至少两个PHY芯片并行加载固件。本发明实施例提供了一种网络设备,包括逻辑芯片和多个物理层PHY芯片,其中所述逻辑芯片通过多个串行管理接口 SMI与所述多个PHY芯片连接;所述多个PHY芯片中至少有两个PHY芯片的物理地址相同,并且所述多个SMI中的任意一个SMI连接的所有PHY芯片的物理地址各不相同;所述逻辑芯片,用于打开所述多个SMI中的至少两个SMI,并通过所述打开的至少两个SMI,向PHY芯片并行加载固件,所述打开的至少两个SMI连接的PHY芯片中至少有两个PHY芯片的物理地址相同。采用本发明实施例提供的技术方案,通过逻辑芯片向多个PHY芯片并行加载固件,可以缩短加载固件的时间,实现设备快速启动。
图1是本发明实施例提供的一种加载固件的方法流程图;图2是本发明实施例提供的一种逻辑芯片与PHY芯片连接的示意图;图3是本发明实施例提供的另一种逻辑芯片与PHY芯片连接的示意图4是本发明实施例提供的一种网络设备框图;图5是本发明实施例提供的另一种网络设备框图;图6是本发明实施例提供的又一种网络设备框图。
具体实施例方式参见图1,是本发明实施例提供的一种加载固件的方法流程图,所述固件加载的方法应用于网络设备中,所述网络设备包括逻辑芯片和多个PHY芯片,其中,所述逻辑芯片通过多个SMI与所述多个PHY芯片连接,所述多个PHY芯片中至少有两个PHY芯片的物理地址相同,并且所述多个SMI中的任意一个SMI连接的所有PHY芯片的物理地址各不相同;所述固件加载的方法包括101 所述逻辑芯片打开所述多个SMI中的至少两个SMI。
所述网络设备可以是交换机或路由器。所述逻辑芯片可以是可擦除可编辑逻辑芯片(Erasable Programmable Logic Device,简称为 EPLD),现场可编程门阵列(Field-Programmable Gate Array,简称为FPGA),或用于扩展SMI的特定应用集成电路(Application Specific Integrated Circuit,简称为 ASIC)等。所述网络设备还可以包括处理器,所述处理器可以是中央处理器(Central Processing Unit,简称为 CPU),网络处理器(Network Processing Unit,简称为 NPU)等。所述处理器可以在所述逻辑芯片的寄存器中写入打开所述至少两个SMI的代码, 以使所述逻辑芯片打开所述至少两个SMI。102 所述逻辑芯片通过所述打开的至少两个SMI,向物理地址相同的至少两个 PHY芯片并行加载固件。所述处理器可以向所述逻辑芯片发送固件加载指令,所述固件加载指令中包括所述物理地址相同的至少两个PHY芯片的物理地址;所述逻辑芯片可以根据所述固件加载指令,通过所述打开的至少两个SMI向所述物理地址相同的至少两个PHY芯片并行加载固件。所述网络设备还可以包括交换芯片,所述交换芯片通过SMI与所述逻辑芯片连接。所述固件可以保存在所述逻辑芯片的存储器中。所述固件也可以在加载固件之前,从所述处理器或所述交换芯片获取。所述处理器可以检测所述多个PHY芯片的固件是否加载成功,例如可以通过软件检测是否加载成功。当所述多个PHY芯片中的一个PHY芯片的固件加载不成功时,可以单独对该固件加载不成功的PHY芯片重新加载固件,即所述逻辑芯片打开连接到所述固件加载不成功的 PHY芯片的SMI,通过所述打开的连接到所述固件加载不成功的PHY芯片的SMI,向所述固件加载不成功的PHY芯片加载固件。当所述多个PHY芯片中有多于一个PHY芯片的固件加载不成功时,则分别对每一个固件加载不成功的PHY芯片做上述单独重新加载固件的流程。上述单独重新加载固件的流程包括处理器在所述逻辑芯片的寄存器中写入打开连接到所述固件加载不成功的PHY芯片的SMI的代码,以使所述逻辑芯片打开所述连接到所述固件加载不成功的PHY芯片的 SMI ;所述逻辑芯片接收处理器发送的固件加载指令,所述固件加载指令中包括所述固件加载不成功的PHY芯片的物理地址;所述逻辑芯片根据所述固件加载指令,通过所述打开的连接到所述固件加载不成功的PHY芯片的SMI向所述固件加载不成功的PHY芯片加载固件。当完成所述多个PHY芯片的固件加载,所述交换芯片需要访问所述多个PHY芯片中的一个PHY芯片时,所述交换芯片通过所述逻辑芯片打开连接到所述需要访问的PHY芯片的SMI,通过所述打开的连接到所述需要访问的PHY芯片的SMI,访问所述需要访问的PHY芯片。如果所述多个PHY芯片的固件发生更新,可以通过软件升级的方式更新固件。具体的,通过本实施例提供的技术方案,向所述多个PHY芯片加载更新后的固件。本发明实施例因为在加载固件时打开多个SMI,向这多个SMI连接的PHY芯片中的至少两个物理地址相同的PHY芯片并行加载固件,和通常所有PHY芯片的固件都需要依次加载的方案相比,缩短了加载固件的时间。逻辑芯片与PHY芯片间的具体连接方式可以有多种变化,只要满足以下两个设计原则。一方面,打开的至少两个SMI所连接的PHY芯片中需要有两个或更多物理地址相同,以缩短加载固件的时间。另一方面,为了能够准确访问特定的PHY芯片,多个SMI中的任意一个SMI连接的所有PHY芯片的物理地址必须各不相同。根据上述设计原则,可以设计多种具体的固件加载方案。一般来说,为了简便起见,逻辑芯片会同时打开所有与PHY芯片相连的SMI。为了能最快的加载固件,可以将每一个PHY芯片都与逻辑芯片通过SMI单独相连,即PHY芯片与SMI —一对应。通常的多端口 PHY芯片相当于将多个PHY芯片集成在一个芯片上,每个端口与一个被集成的PHY芯片对应。多端口 PHY芯片可以视为多个独立的PHY芯片。举例来说,本发明实施例的一个具体应用中,将集成在一个多端口 PHY芯片上的各个PHY芯片的物理地址设置为相同,并且将各个端口分别通过不同的SMI与逻辑芯片连接。如图2所示,逻辑芯片通过8个SMI与4个2端口 PHY芯片,即PHY芯片1 PHY芯片 4,连接。每个端口的物理地址都为PHY_ADDR1。此外,也可以为一个多端口 PHY芯片上的各个PHY芯片的设置各不相同的物理地址,这样整个多端口 PHY芯片可以通过一个SMI与逻辑芯片连接。例如图3所示,逻辑芯片通过6个SMI分别与6个4端口 PHY芯片,即PHY芯片1 PHY芯片6,连接。每个4端口 PHY芯片的各个端口的物理地址依次为PHY_ADDR1、PHY_ADDR2、PHY_ADDR3和PHY_ADDR4。举例来说,结合图2,本发明实施例提供的加载固件的方法如下处理器向逻辑芯片的寄存器中写入打开所有SMI的代码,例如00,触发逻辑芯片同时打开与PHY芯片连接的6个SMI,SMIl SMI6。然后,处理器向逻辑芯片发送固件加载指令,如果其中包括物理地址PHY_ADDR1,则逻辑芯片根据所述固件加载指令通过SMIl SMI6同时向PHY芯片1 PHY芯片6的端口 1加载固件;如果其中包括物理地址PHY_ADDR2, 则所述逻辑芯片根据所述固件加载通过SMIl SMI6并行向PHY芯片1 PHY芯片6的端口 2加载固件。如果通过检测,PHY芯片3的端口 2加载不成功,处理器向逻辑芯片的寄存器中写入打开连接到PHY芯片3的端口 2的SMI的代码,例如03,触发所述逻辑芯片打开SMI3。然后,处理器向逻辑芯片发送固件加载指令,其中包括PHY芯片3的端口 2的物理地址PHY_ ADDR2,逻辑芯片根据收到的所述固件加载指令,通过已打开的SMI3向PHY芯片3的端口 2 加载固件。参见图4,是本发明实施例提供的一种网络设备框图,所述网络设备包括逻辑芯片 401和多个物理层PHY芯片402。其中所述逻辑芯片401通过多个SMI与所述多个PHY芯片402连接;所述多个PHY芯片402中至少有两个PHY芯片402的物理地址相同,并且所述多个SMI中的任意一个SMI连接的所有PHY芯片402的物理地址各不相同;所述逻辑芯片401,用于打开所述多个SMI中的至少两个,并通过所述打开的至少两个SMI,向PHY芯片402并行加载固件,所述打开的至少两个SMI连接的PHY芯片中至少有两个PHY芯片的物理地址相同。 所述网络设备可以是交换机或路由器。所述逻辑芯片401可以是可擦除可编辑逻辑芯片EPLD,现场可编程门阵列FPGA, 或用于扩展SMI的特定应用集成电路ASIC等。如图5所示,所述网络设备还可以包括处理器403,所述处理器403与所述逻辑芯片401连接。所述处理器403,可以是中央处理器或网络处理器等。所述处理器403,用于在所述逻辑芯片的寄存器中写入打开所述至少两个SMI的代码,以使所述逻辑芯片打开所述至少两个SMI。所述处理器403,还用于向所述逻辑芯片401发送固件加载指令,所述固件加载指令中包括PHY芯片402的物理地址,以使所述逻辑芯片通过所述打开的至少两个SMI向PHY 芯片402并行加载固件。所述处理器403包括中央处理器CPU,网络处理器NPU等。当所述多个PHY芯片402中一个PHY芯片402的固件加载不成功时,所述逻辑芯片401还用于打开所述连接到固件加载不成功的PHY芯片的SMI,并通过所述打开的连接到固件加载不成功的PHY芯片的SMI,向所述固件加载不成功的PHY芯片加载固件。当所述多个PHY芯片402中一个PHY芯片402的固件加载不成功时,所述处理器 403还用于在所述逻辑芯片401的寄存器中写入打开连接到所述固件加载不成功的PHY芯片402的SMI的代码,以使所述逻辑芯片401打开所述连接到所述固件加载不成功的PHY芯片402的SMI ;所述处理器403还用于向所述逻辑芯片401发送固件加载指令,所述固件加载指令中包括所述固件加载不成功的PHY芯片402的物理地址,以使所述逻辑芯片401通过所述打开的连接到所述固件加载不成功的PHY芯片402的SMI向所述固件加载不成功的 PHY芯片402加载固件。如图6所示,所述网络设备还可以包括交换芯片404,所述交换芯片404通过SMI与所述逻辑芯片401连接;可选的,所述逻辑芯片还用于在加载固件之前,从所述交换芯片404或者所示处理器403获取所述固件。当完成所述多个PHY芯片402的固件加载,所述交换芯片404需要访问所述多个PHY芯片402中的一个PHY芯片402时,所述逻辑芯片401还用于打开所述PHY芯片402连接的SMI ;所述交换芯片404用于通过所述打开的连接到所述需要访问的PHY芯片的SMI, 访问所述需要访问的PHY芯片。采用本发明实施例提供的技术方案,通过逻辑芯片向多个PHY芯片并行加载固件,可以缩短加载固件的时间,实现设备快速启动。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于计算机可读存储介质中,所述存储介质可以是R0M/RAM,磁盘或光盘等。以上所述,仅为本发明较佳的具体实施方式
,但本发明的保护范围并不局限于此, 任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换, 都应涵盖在本发明的保护范围之内。
8
权利要求
1.一种加载固件的方法,其特征在于,所述固件加载的方法应用于网络设备中,所述网络设备包括逻辑芯片和多个物理层PHY芯片,其中,所述逻辑芯片通过多个串行管理接口 SMI与所述多个PHY芯片连接,所述多个PHY芯片中至少有两个PHY芯片的物理地址相同, 并且所述多个SMI中的任意一个SMI连接的所有PHY芯片的物理地址各不相同;所述固件加载的方法包括所述逻辑芯片打开所述多个SMI中的至少两个SMI ;所述逻辑芯片通过所述打开的至少两个SMI,向物理地址相同的至少两个PHY芯片并行加载固件。
2.根据权利要求1所述的方法,其特征在于,所述逻辑芯片通过所述打开的至少两个 SMI,向物理地址相同的至少两个PHY芯片并行加载固件具体包括所述逻辑芯片接收处理器发送的固件加载指令,所述固件加载指令中包括所述物理地址相同的至少两个PHY芯片的物理地址;所述逻辑芯片根据所述固件加载指令,通过所述打开的至少两个SMI向所述物理地址相同的至少两个PHY芯片并行加载固件。
3.根据权利要求1或2所述的方法,其特征在于,所述逻辑芯片打开所述多个SMI中的至少两个SMI具体包括处理器在所述逻辑芯片的寄存器中写入打开所述多个SMI中的至少两个SMI的代码, 以使所述逻辑芯片打开所述至少两个SMI。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述方法还包括当所述多个PHY芯片中一个PHY芯片的固件加载不成功时,所述逻辑芯片打开连接到所述固件加载不成功的PHY芯片的SMI ;所述逻辑芯片通过所述打开的连接到所述固件加载不成功的PHY芯片的SMI,向所述固件加载不成功的PHY芯片加载固件。
5.根据权利要求4所述的方法,其特征在于,所述逻辑芯片通过所述打开的连接到所述固件加载不成功的PHY芯片的SMI,向所述固件加载不成功的PHY芯片加载固件具体包括所述逻辑芯片接收处理器发送的固件加载指令,所述固件加载指令中包括所述固件加载不成功的PHY芯片的物理地址;所述逻辑芯片根据所述固件加载指令,通过所述打开的连接到所述固件加载不成功的 PHY芯片的SMI向所述固件加载不成功的PHY芯片加载固件。
6.根据权利要求4或5所述的方法,其特征在于,所述逻辑芯片打开连接到所述固件加载不成功的PHY芯片的SMI具体包括处理器在所述逻辑芯片的寄存器中写入打开连接到所述固件加载不成功的PHY芯片的SMI的代码,以使所述逻辑芯片打开所述连接到所述固件加载不成功的PHY芯片的SMI。
7.根据权利要求1至6任一项所述的方法,其特征在于,所述方法还包括当完成所述多个PHY芯片的固件加载,交换芯片需要访问所述多个PHY芯片中的一个 PHY芯片时,所述逻辑芯片打开连接到所述需要访问的PHY芯片的SMI ;所述逻辑芯片通过所述打开的连接到所述需要访问的PHY芯片的SMI,访问所述需要访问的PHY芯片。
8.根据权利要求1至7任一项所述的方法,其特征在于,在加载固件之前,还包括所述逻辑芯片从交换芯片或者处理器获取所述固件。
9.一种网络设备,其特征在于,包括逻辑芯片和多个物理层PHY芯片,其中所述逻辑芯片通过多个串行管理接口 SMI与所述多个PHY芯片连接;所述多个PHY芯片中至少有两个PHY芯片的物理地址相同,并且所述多个SMI中的任意一个SMI连接的所有PHY芯片的物理地址各不相同;所述逻辑芯片,用于打开所述多个SMI中的至少两个SMI,并通过所述打开的至少两个 SMI,向PHY芯片并行加载固件,所述打开的至少两个SMI连接的PHY芯片中至少有两个PHY 芯片的物理地址相同。
10.根据权利要求9所述的网络设备,其特征在于,所述网络设备还包括处理器,所述处理器与所述逻辑芯片连接。所述处理器,用于在所述逻辑芯片的寄存器中写入打开所述至少两个SMI的代码,以使所述逻辑芯片打开所述至少两个SMI ;所述处理器,还用于向所述逻辑芯片发送固件加载指令,所述固件加载指令中包括PHY 芯片的物理地址。
11.根据权利要求9或10所述的网络设备,其特征在于,当所述多个PHY芯片中一个PHY芯片的固件加载不成功时,所述逻辑芯片还用于打开所述连接到固件加载不成功的 PHY芯片的SMI,并通过所述打开的连接到固件加载不成功的PHY芯片的SMI,向所述固件加载不成功的PHY芯片加载固件。
12.根据权利要求9至11任一项所述的网络设备,其特征在于,所述网络设备还包括交换芯片,所述交换芯片通过SMI与所述逻辑芯片连接;当完成所述多个PHY芯片的固件加载,所述交换芯片需要访问所述多个PHY芯片中的一个PHY芯片时,所述逻辑芯片还用于打开连接到所述需要访问的PHY芯片的SMI ;所述交换芯片用于通过所述打开的连接到所述需要访问的PHY芯片的SMI,访问所述需要访问的PHY芯片。
全文摘要
本发明实施例公开了一种加载固件的方法和设备。所述方法包括逻辑芯片打开多个SMI;所述逻辑芯片通过所述打开的多个SMI,向物理地址相同的至少两个PHY芯片并行加载固件。采用本发明实施例提供的技术方案,可以解决加载固件时间长,设备不能快速启动的问题。
文档编号G06F9/445GK102236572SQ20111021842
公开日2011年11月9日 申请日期2011年8月1日 优先权日2011年8月1日
发明者周庆松, 孙长幸, 张津杨, 徐国梁 申请人:华为技术有限公司