CN107493685B - 经由端口控制器自身的外部端口对端口控制器进行再编程 - Google Patents
经由端口控制器自身的外部端口对端口控制器进行再编程 Download PDFInfo
- Publication number
- CN107493685B CN107493685B CN201580066259.9A CN201580066259A CN107493685B CN 107493685 B CN107493685 B CN 107493685B CN 201580066259 A CN201580066259 A CN 201580066259A CN 107493685 B CN107493685 B CN 107493685B
- Authority
- CN
- China
- Prior art keywords
- port
- debug
- controller
- logic
- program path
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/3177—Testing of logic operation, e.g. by logic analysers
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/31705—Debugging aspects, e.g. using test circuits for debugging, using dedicated debugging test circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3648—Software debugging using additional hardware
- G06F11/3656—Software debugging using additional hardware using a specific debug interface
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2205—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
- G06F11/2236—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test CPU or processors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
Abstract
系统和方法可以提供一种调试工具,所述调试工具包括调试端口和控制器,所述控制器包括用于经由所述调试端口向目标设备的外部端口发送调试模式请求的逻辑。此外,所述目标设备可以包括连接器,所述连接器具有所述外部端口以及耦合至所述外部端口的端口控制器,其中,所述端口控制器包括用于执行以下各项的逻辑:经由所述外部端口检测所述调试模式请求;响应于所述调试模式请求而激活所述外部端口与所述端口控制器之间的程序路径;以及处理经由所述程序路径接收的一条或多条命令。在一个示例中,所述目标设备进一步包括多路复用器,所述多路复用器耦合至所述外部端口和所述端口控制器,其中,所述逻辑用于向所述多路复用器发送路由信号以便激活所述程序路径。
Description
相关申请的交叉引用
本申请要求于2014年12月26日提交的美国非临时专利申请号14/583,218的优先权权益。
技术领域
实施例总体上涉及端口控制器更新。更具体地,实施例涉及经由端口控制器自身的外部端口来对端口控制器进行再编程。
背景技术
如USB(通用串行总线)C型(例如,通用串行总线C型电缆和连接器规范,版本1.0,2014年8月11日,USB开发者论坛)接口等接口可以使各种计算部件能够交换信息并且彼此提供电力。典型的USB C型接口可以包括端口控制器芯片和连接器,所述连接器具有面向外(例如,相对于包含连接器的设备)的外部端口/具有电耦合至端口控制器芯片的引脚子集的插座。升级这种接口可能涉及对具有新固件的端口控制器进行再编程。尽管用于引导升级的常规方法在某些情况下可能是合适的,但是仍存在相当大的改进余地。
例如,一种方法可以包括将专用工具插入JTAG(Joint TestAction Group,联合测试行为组织)端口中,所述端口侧向面向并位于包含接口的设备的底板的内部,其中,所述工具可以运行将新固件编程到端口控制器芯片中的应用软件。由于打开设备底板以便访问JTAG端口的过程,因此这种解决方案可能是耗时、不方便且昂贵的。另一种方法可以在设备自身的主机处理器上运行设备固件更新(device firmware update,DFU)软件应用,其中,DFU软件应用将新固件编程到端口控制器芯片中。然而,如果设备是不可启用、缺乏电力的或者感染恶意软件的,则这种解决方案可能是不适合的。
附图说明
通过阅读以下说明书和所附权利要求书并参考以下附图,实施例的各种优点对于本领域技术人员将变得显而易见,在附图中:
图1是根据实施例的端口再编程配置的示例的框图;
图2是根据实施例的可再编程目标设备的示例的示意图;
图3A至图3D展示了根据实施例的存储器区段的示例;
图4是根据实施例的一种操作端口控制器的方法的示例的流程图;
图5是根据实施例的调试工具的示例的示意图;以及
图6是根据实施例的一种操作调试工具的方法的示例的流程图。
具体实施方式
现在转到图1,示出了端口再编程配置,在所述端口再编程配置中,调试工具10和调试计算系统12用于对端口控制器14进行再编程。通常,可以将端口控制器14安装在主板16或包含在可再编程目标设备20(例如,服务器、台式计算机、笔记本计算机、平板计算机、可转换平板计算机、智能电话、个人数字助理/PDA、移动互联网设备/MID、媒体播放器、可穿戴计算机等)的底板18中的其他适当电路板和/或子系统上。在所展示的示例中,端口控制器14电耦合至外部端口22(例如,插座),所述外部端口从目标设备20面向外并且可在没有打开目标设备20的底板18的情况下由调试工具10访问。在一个示例中,外部端口22和端口控制器14构成USB C型接口。
如将更加详细讨论的,调试工具10可以很容易耦合至目标设备的外部端口22和调试计算系统12的外部端口24,其中,在调试计算系统12的片上系统(SoC)26(例如,主机处理器、芯片集、输入/输出模块)上运行的设备固件更新(DFU)应用可以经由调试工具10和外部端口22指导/控制对端口控制器14进行的再编程。由此,所展示的方法可以提供快速、方便且廉价的解决方案,以便对端口控制器14进行再编程,所述解决方案不涉及打开底板18或在目标设备20的SoC 28上运行DFU。调试工具10还可以用于诊断SoC 28和/或目标设备20的其他子系统而不打开底板18。
图2更加详细地示出了目标设备20的一个示例。在所展示的示例中,外部端口22包括配置通道触头组34(例如,CC1,CC2)、电压总线触头36(例如,V总线)以及耦合至电缆朝向多路复用器30(MUX)的剩余触头组32。在操作期间,端口控制器14可以使用模拟数字(A/D)转换和/或电压比较器(未示出)来监测配置通道触头组34,以便判定目标设备20相对于与外部端口22紧密配合的另一个端口(例如,“端口搭档”,未示出)是否将充当“主机”或“设备”。端口控制器14还可以使用配置通道触头组34来确定端口搭档的朝向,并且使用电缆朝向选择信号38来控制电缆朝向多路复用器30,从而使得剩余触头组32对多路复用器30(如例如,SoC 28)之上的电路系统看起来是“右侧朝上”。特别注意的是,在所展示的示例中,剩余触头组32并不终止在端口控制器14处。
交替模式多路复用器组40(40a至40d)可以耦合至电缆朝向多路复用器30,其中,交替模式多路复用器组40通常可以基于来自策略引擎44的交替模式选择信号42和/或来自端口控制器14的音频附件选择信号43将信号从剩余触头组32路由至SoC 28(28a至28d)的部件。例如,第一SoC部件28a可以包括USB控制器主机端口,第二SoC部件28b可以包括显示器端口控制器源端口,第三SoC部件28c可以包括音频编解码器,第四SoC部件28d可以包括主机处理器等等,其中,在正常操作期间,目标设备20与端口搭档之间的通信可以涉及取决于替代模式选择信号42和/或音频附件选择信号43的SoC的部件的各种组合。策略引擎44可以替代地嵌入端口控制器14中。这种方法可以使消除策略引擎44与端口控制器14之间的通信链路45成为可能,并且提供策略引擎44与潜在地在SoC 28上运行的恶意软件的隔离。另一方面,策略引擎44的所展示的位置可以使由在SoC 28上运行的软件进行的实时策略控制/修改成为可能。
此外,目标设备20可以被电力岛分界线50分割,从而使得线50之下的所有电路系统具有专用电压调节器(未示出),所述专用电压调节器使电路系统能够通过或者由位于目标设备20的底板18(图1)内部的内部电源或者由例如提供在外部端口22的电压总线触头36上的调试工具的外部电源提供的电力上电。由此,所展示的端口控制器14甚至在目标设备20缺乏内部电源(例如,无电电池)时能够上电、操作并且被再编程。就这一点而言,端口控制器14还可以向电力开关54断言电力选择信号52,以便允许电流流入或流出主板16(图1)。目标设备20还可以配置有进行路由和/或电压调节的适当的电力轨55,以便使分界线50之上的电路系统能够由外部电源上电。
在所展示的示例中,端口控制器14经由外部端口22检测调试模式请求并且向交替模式多路复用器40b断言路由信号46,以便激活外部端口22与端口控制器14之间的程序路径48。因此,端口控制器14可以经由程序路径48选择性地接收命令和/或代码,所述程序路径旁路第四SoC部件28d(例如,主机处理器)以及SoC 28的其他部件。命令可以包括例如,再编程命令、重置命令、诊断命令等,并且代码可以包括运行时固件映像、调试引导加载程序等。如将更加详细讨论的,端口控制器14可以将代码存储到与端口控制器14相关联的非易失性存储器(NVM)56中。
现在转到图3A至图3D,以各种不同配置示出了非易失性存储器区段。所展示的存储器区段中的每一个可以容易地替代NVM 56(图2)。通常,端口控制器的非易失性存储器(例如,闪存)可以被分成被称为“区段”的不重叠区域,其中,区段可以是连续的或不连续的。每个区段可以具有属性,包括但不限于:开始地址(例如,在存储器中其开始的地方);长度(例如,其占据了存储器的多少字节);访问权限(例如,控制区段可以怎样由软件使用)等等。
区段的访问权限可以包括但不限于:读取(例如,DFU软件可以读出区段的内容);写入(例如,DFU软件可以对区段的内容进行再编程);执行(例如,区段包含可以被执行的有效代码)等。此外,端口控制器协议可以使用这些访问权限的缩写表示,如“rwx”(读取、写入、和执行),其中,可以使用连字符代替任何不可用访问权限,如“rw-”(读取、写入,但是不可执行)。
具体参照图3A,在检测重置60之后,端口控制器可以在地址0K处开始执行。所展示的存储器被分成两个区段:在重置60之后可以首先执行的引导加载程序区段62;以及包含操作端口控制器的固件的运行时映像区段64(例如,根据接口规范)。
图4示出了操作端口控制器的方法66。方法66可在作为逻辑指令集合的一个或多个引导加载程序模块中实现,所述逻辑指令集合被存储在机器或计算机可读存储介质中(如随机存取存储器(RAM)、只读存储器(ROM)、可编程ROM(PROM)、固件、闪存等等)、在可配置逻辑中(如,例如可编程逻辑阵列(PLA)、现场可编程门阵列(FPGA)、复合可编程逻辑装置(CPLD))、在使用电路技术的固定功能逻辑硬件中(如,例如专用集成电路(ASIC)、互补金属氧化物半导体(CMOS)、或晶体管-晶体管逻辑(TTL)技术、或其任何组合)。例如,用于执行方法66中所示出的操作的计算机程序代码可以以一种或多种编程语言的任何组合来写,所述一种或多种编程语言包括面向对象的编程语言,如JAVA、SMALLTALK、C++或者类似的以及常规的过程编程语言,诸如“C”编程语言或类似的编程语言。
所展示的框67提供了检测配置通道触头(如例如,配置通道触头34(图2))上的预定电压和/或电阻并且激活外部端口与端口控制器之间的程序路径(如例如,程序路径48(图2))。如将更加详细讨论的,预定电压可以指示端口搭档中耦合至配置通道触头中的每一个的特定电阻器(例如,Rd)。框68可以检查外部端口的使能引脚/触头。如果在框70处判定在使能引脚上断言使能信号,则端口控制器可以确定端口搭档下发调试模式请求。在这种情况下,框72可以通过程序路径接受命令,其中,可以在框74处对命令进行处理。命令可以包括例如再编程命令、重置命令、诊断命令等,或其任何组合。再编程命令例如可以提供修改已经写入访问的任何区段。在一个示例中,引导加载程序区段具有访问权限“--x”并且因此可以被执行但不能读取或写入。
可以在框76处做出命令是否是重置命令的判定。如果不是,则在所展示的框72处通过程序路径接受下一条命令。否则,方法66可以返回到框68,并且检查使能引脚。如果在框70处判定在使能引脚上没有断言使能信号(例如,端口搭档已经完成再编程/诊断),则在框78处可以执行跳转到可执行运行时间映像区段。运行时间图形区段可以包含由端口控制器在正常操作期间使用的固件。在一个示例中,运行时间映像区段具有访问权限“rwx”,并且因此可以被读取(例如,进行备份复制)、写入(例如,再编程)和执行。
现在返回到图3B,执行可以替代地在被称为重置向量80的地址处开始,所述重置向量是重置和中断向量区段82的一部分。重置向量80可以包含在引导加载程序区段84的开始处的这种情况下执行继续的地址(或者“跳转”指令和地址)。引导加载程序区段84可以实现如例如已经讨论的方法66(图4)的方法。由此,如果断言使能信号,则可以对运行时间映像区段86的内容进行再编程。否则,引导加载程序区段84可以跳转执行到运行时映像区段86的开始。因此,此示例表明一些区段可以是不连续的,如由将引导加载程序区段84与运行时映像区段86分开的未使用空间88指示。
图3C演示了:在引导加载程序需要升级的情况下(例如,由于新特征或勘误表校正),引导加载程序自身可以是可再编程的(例如,具有访问权限“-wx”,而不是“--x”)。为防止破坏引导加载程序(例如,在再编程当中发生电力故障),可以限定术语为“引导加载程序A”区段90以及“引导加载程序B”区段92的两个单独副本。首先,重置和中断向量区段94可以指向具有访问权限-wx的引导加载程序A区段90而不是具有访问权限-w-(例如,不可执行)的引导加载程序B区段92。
如果以及当引导加载程序需要升级时,新引导加载程序映像可以被编程到引导加载程序B区段92中。如果在此阶段期间发生中断,则在可以恢复到的引导加载程序A区段90中仍然存在有效且可执行代码。仅在成功/完成/验证再编程之后,引导加载程序B区段92可以标记有访问权限“-wx”,引导加载程序A区段90可以重新标记有访问权限“-w-”,并且重置向量可以更新为指向引导加载程序B而不是引导加载程序A。现在引导加载程序A区段90也可以被再编程。如果在此阶段期间发生中断,则在将运行的引导加载程序B区段92中已经存在有效且可执行代码。
现在转到图3D,示出了“安全DFU”情境。在所展示的示例中,具有访问权限“--x”的信任根区段96可以是可由系统制造商仅使用JTAG安装的。由此,信任根区段96可以包含可验证与将被编程的每个区段(如引导加载程序A区段98,引导加载程序B区段100和/或运行时映像区段102)相关联的数字签名的代码。在安全DFU模式中,可以仅在访问权限均为可写入的并且新映像具有有效数字签名时允许对任何区段进行再编程。(多个)引导加载程序可以使用对信任根区段96的安全的代码函数调用来执行实际的签名验证。在一些实施例中,信任根区段96可以物理地位于单独外围设备(如例如,可信平台模块(TPM))中。
在一些实施例中,端口控制器的制造商可以提供供应商专有引导加载程序代替DFU引导加载程序。供应商的引导加载程序通常在不可再编程存储器(如“掩模型ROM”)中。供应商可以限定期望类型的接口端口,如例如,USB、I2C(集成电路间,例如,I2C规范UM10204,版本03,2007年6月19日,NXP半导体)、SPI(串行外围接口)、UART(通用异步接收器/发射器)等等。在这种情况下,调试工具10(图1)可以被供应商提供的工具或者仅仅由路由返回到调试计算系统12(图1)的适当电缆代替。
图5更加详细地示出了调试工具10的一个示例。通常,调试工具10可以包括调试端口104和控制器106,所述控制器具有用于经由调试端口104向目标设备(如例如,目标设备20(图1和图2))的外部端口发送调试模式请求的逻辑。更具体地,控制器106的逻辑可以经由使能触头108向调试端口104断言使能信号、向调试端口104施加预定电阻并且向调试端口104施加电力。例如,第一开关110可以耦合至调试端口104的第一配置通道(CCl)触头112,并且第一电阻器114(例如,Rd)可以耦合至第一开关110,其中,控制器106的逻辑可以激活(例如,拉下)第一开关110以便向调试端口104施加预定电阻。例如,第二开关116可以耦合至第二配置通道(CC2)触头118,并且第二电阻器120(例如,Rd)可以耦合至第二开关116,其中,控制器106的逻辑可以激活(例如,拉下)第二开关116以便向调试端口104施加预定电阻。
所展示的调试工具10还包括耦合至调试端口104的电压总线触头124的功率晶体管组122以及耦合至功率晶体管组122的电源端口126。当电源端口126耦合至电源时,控制器106的逻辑可以因此激活功率晶体管组122以便向调试端口104施加电力。向调试端口104施加电力可以因此使调试工具10驱动足够的电力来运行目标设备电力岛分界线(如例如,已经讨论的分界线50(图2))之下的电路系统。控制器106的逻辑还可以经由调试端口104的串行数据触头128(例如,DFU_SDA)向目标设备的外部端口发送一条或多条命令和/或代码(例如,运行时固件映像、调试引导加载程序),其中,所述一条或多条命令可以包括再编程命令、诊断命令等,或其任何组合。此外,控制器106的逻辑可以经由调试端口104的重置触头130(例如,DFU_RESET#)向目标设备的外部端口发送重置命令。可以从调试计算系统(如例如,系统12(图1))经由外部端口132接收命令。可替代地,调试工具10可以结合到如已经指出的调试计算系统中。
现在转到图6,示出了一种操作调试工具的方法134。方法134可在作为逻辑指令集合的一个或多个调试控制器模块中实现,所述逻辑指令集合被存储在机器或计算机可读存储介质中(如RAM、ROM、PROM、固件、闪存等)、在可配置逻辑中(如例如,PLA、FPGA、CPLD)、在使用电路技术的固定功能逻辑硬件中(如例如,ASIC、CMOS、或TTL技术,或其任何组合)。所展示的处理框136提供了:向调试工具的调试端口断言使能信号,其中,在框138处可以向调试端口施加预定电阻。此外,所展示的框140向调试端口施加电力。相应地,框136、138和140可以提供:向目标设备的外部端口发送调试模式请求。
在框142处,可以向调试端口发送任意的ping命令,其中,所展示的框144判定ping命令是否已经被目标设备确认。如果没有,则在框142处可以重新发送ping命令。否则,已经验证了对到端口控制器的通信程序路径的打开,并且框146可以向调试端口发送命令。命令可以包括例如再编程命令、诊断命令等,或其任何组合。由此,命令可以提供各种调试动作,如例如,将寄存器读取/写入其他部件芯片内部、检查存储器、设置断点、单步调试等。所展示的框148判定命令传输序列是否完成。如果没有,则在框146处可以向调试端口发送下一条命令。当命令传输序列完成时,框150可以解除断言使能信号,并且所展示的框152向调试端口发送重置命令。
附加说明与示例:
示例1可以包括一种可再编程目标设备,所述可再编程目标设备包括连接器,所述连接器包括外部端口和端口控制器,所述端口控制器包括用于执行以下各项的逻辑:经由所述外部端口检测调试模式请求;响应于所述调试模式请求而激活所述外部端口与所述端口控制器之间的程序路径;以及处理经由所述程序路径接收的一条或多条命令。
示例2可以包括如示例1所述的设备,所述设备进一步包括多路复用器,所述多路复用器耦合至所述外部端口和所述端口控制器,其中,所述逻辑用于向所述多路复用器发送路由信号以便激活所述程序路径。
示例3可以包括如示例1所述的设备,进一步包括主机处理器,其中,所述程序路径旁路所述主机处理器。
示例4可以包括如示例1所述的设备,其中,使用所述设备外部的电力来处理所述一条或多条命令。
示例5可以包括如示例1所述的设备,所述设备进一步包括与所述端口控制器相关联的非易失性存储器,其中,所述逻辑用于:经由所述程序路径接收代码,其中,所述代码包括运行时固件映像或调试引导加载程序中的一个或多个;以及将所述代码存储到所述非易失性存储器中。
示例6可以包括如示例1至5中任一项所述的设备,其中,所述一条或多条命令包括再编程命令、重置命令或诊断命令中的一条或多条。
示例7可以包括一种调试工具,所述调试工具包括调试端口和控制器,所述控制器包括用于经由所述调试端口向目标设备的外部端口发送调试模式请求的逻辑。
示例8可以包括如示例7所述的调试工具,其中,为了发送所述调试模式请求,所述逻辑用于:向所述调试端口断言使能信号;向所述调试端口施加预定电阻;以及向所述调试端口施加电力。
示例9可以包括如示例8所述的调试工具,所述调试工具进一步包括:第一开关,所述第一开关耦合至所述调试端口的第一配置通道触头;第一电阻器,所述第一电阻器耦合至所述第一开关;第二开关,所述第二开关耦合至所述调试端口的第二配置通道触头;以及第二电阻器,所述第二电阻器耦合至所述第二开关,其中,所述逻辑用于激活所述第一开关和所述第二开关以便向所述调试端口施加所述预定电阻。
示例10可以包括如示例7所述的调试工具,进一步包括:功率晶体管组,所述功率晶体管组耦合至所述调试端口的电压总线触头;以及电源端口,所述电源端口耦合至所述功率晶体管组,其中,所述逻辑用于激活所述功率晶体管组以便向所述调试端口施加电力。
示例11可以包括如示例7至10中任一项所述的调试工具,其中,所述逻辑用于经由所述调试端口向所述目标设备的所述外部端口发送一条或多条命令,其中,所述一条或多条命令包括再编程命令、重置命令或诊断命令中的一条或多条。
示例12可以包括如示例7至10中任一项所述的调试工具,其中,所述逻辑用于经由所述调试端口向所述目标设备的所述外部端口发送代码,其中,所述代码包括运行时固件映像或调试引导加载程序之一。
示例13可以包括一种操作端口控制器的方法,所述方法包括:经由连接器的外部端口在所述端口控制器处检测调试模式请求;响应于所述调试模式请求而激活所述外部端口与所述端口控制器之间的程序路径;以及在所述端口控制器处处理经由所述程序路径接收的一条或多条命令。
示例14可以包括如示例13所述的方法,其中,激活所述程序路径包括向耦合至所述外部端口的多路复用器发送路由信号。
示例15可以包括如示例13所述的方法,其中,所述程序路径旁路包含所述端口控制器的目标设备的主机处理器。
示例16可以包括如示例13所述的方法,其中,使用包含所述端口控制器的目标设备外部的电力来处理所述一条或多条命令。
示例17可以包括如示例13所述的方法,所述方法进一步包括:经由所述程序路径接收代码,其中,所述代码包括运行时固件映像或调试引导加载程序中的一个或多个;以及将所述代码存储到与所述端口控制器相关联的非易失性存储器中。
示例18可以包括如示例13至17中任一项所述的方法,其中,所述一条或多条命令包括再编程命令、重置命令或诊断命令中的一条或多条。
示例19可以包括至少一种非瞬态计算机可读存储介质,所述至少一种非瞬态计算机可读存储介质包括指令集,所述指令当被端口控制器执行时使所述端口控制器:经由连接器的外部端口检测调试模式请求;响应于所述调试模式请求而激活所述外部端口与所述端口控制器之间的程序路径;以及处理经由所述程序路径接收的一条或多条命令。
示例20可以包括如示例19所述的至少一种非瞬态计算机可读存储介质,其中,所述指令当被执行时使所述端口控制器向耦合至所述外部端口的多路复用器发送路由信号以便激活所述程序路径。
示例21可以包括如示例19所述的至少一种非瞬态计算机可读存储介质,其中,所述程序路径用于旁路包含所述端口控制器的目标设备的主机处理器。
示例22可以包括如示例19所述的至少一种非瞬态计算机可读存储介质,其中,使用包含所述端口控制器的目标设备外部的电力来处理所述一条或多条命令。
示例23可以包括如示例19所述的至少一种非瞬态计算机可读存储介质,其中,所述指令当被执行时使所述端口控制器:经由所述程序路径接收代码,其中,所述代码包括运行时固件映像或调试引导加载程序中的一个或多个;以及将所述代码存储到与所述端口控制器相关联的非易失性存储器中。
示例24可以包括如示例19至23中任一项所述的至少一种非瞬态计算机可读存储介质,其中,所述一条或多条命令包括再编程命令、重置命令或诊断命令中的一条或多条。
示例25可以包括一种调试工具,所述调试工具包括:用于经由连接器的外部端口在所述端口控制器处检测调试模式请求的装置;用于响应于所述调试模式请求而激活所述外部端口与所述端口控制器之间的程序路径的装置;以及用于在所述端口控制器处处理经由所述程序路径接收的一条或多条命令的装置。
示例26可以包括如示例25所述的调试工具,其中,用于激活所述程序路径的所述装置包括用于向耦合至所述外部端口的多路复用器发送路由信号的装置。
示例27可以包括如示例25所述的调试工具,其中,所述程序路径用于旁路包含所述端口控制器的目标设备的主机处理器。
示例28可以包括如示例25所述的调试工具,其中,使用包含所述端口控制器的目标设备外部的电力来处理所述一条或多条命令。
示例29可以包括如示例25所述的调试工具,进一步包括:用于经由所述程序路径接收代码的装置,其中,所述代码包括运行时固件映像或调试引导加载程序中的一个或多个;以及用于将所述代码存储到与所述端口控制器相关联的非易失性存储器中的装置。
示例30可以包括如示例25至29中任一项所述的调试工具,其中,所述一条或多条命令包括再编程命令、重置命令或诊断命令中的一条或多条。
实施例适用于与所有类型的半导体集成电路(“IC”)芯片一起使用。这些IC芯片的示例包括但不限于:处理器、控制器、芯片组部件、可编程逻辑阵列(PLA)、存储器芯片、网络芯片、片上系统(SoC)、SSD/NAND控制器ASIC等。另外,在一些附图中,利用线条表示信号导体线。一些线条可以是不同的以指示更多组成的信号路径,具有数字标记以指示组成的信号路径的编号和/或在一端或多端具有箭头以指示主要信息流方向。然而,这不应被解释为限制性方式。而是,这种附加的细节可以与一个或多个示例性实施例结合使用以帮助更容易地理解电路。任何表示的信号线,无论是否有附加信息,都实际可以包括可以在多个方向上行进的一个或多个信号,并且可以利用任何适当类型的信号方案来实现,例如利用差分对、光纤线路和/或单端线路实现的数字或模拟线路。
可能已经给出了示例尺寸/模型/值/范围,尽管实施例不限于此。随着制造技术(例如,光刻)随时间推移而成熟,预计可以制造出更小尺寸的器件。另外,为了简化图示和讨论以及为了不使实施例的一些方案不清晰,可以在图内示出或不示出到IC芯片和其他部件的公知的电力/接地连接。此外,安排可以以框图的形式示出,以避免模糊实施例,并且还鉴于以下事实:关于这样的框图安排的实现方式的细节高度依赖于在其中实现实施例的平台,即,这样的细节应当完全处在本领域技术人员的视界中。特定细节(例如,电路)被阐述以便描述示例性实施例,对本领域技术人员来说应当显而易见的是:实施例可以在无需这些细节或者采用这些实施例细节的变化的情况下被实践。描述因此被视为是说明性的而非限制性的。
术语“耦合”在本文中可以用于指代所讨论的部件之间的任何类型的直接或间接关系,并且可以应用于电学、机械、流体、光学、电磁、机电或其他连接。此外,除非另有说明,否则术语“第一”、“第二”等在本文中可以仅用于便于讨论,并且不具有特定的时间或时间顺序的意义。
本领域技术人员从前面的描述将理解,可以用各种形式来实现实施例的广泛技术。因此,虽然已经结合其特定示例描述了这些实施例,但是实施例的实际范围不应由此受限,因为其他的修改在本领域技术人员学习了附图、说明书和所附权利要求之后就将变得显而易见。
Claims (21)
1.一种可再编程目标设备,包括:
连接器,所述连接器包括外部端口;
端口控制器,所述端口控制器包括用于以下操作的逻辑:
经由所述外部端口检测调试模式请求,
响应于所述调试模式请求而激活所述外部端口与所述端口控制器之间的程序路径,以及
处理经由所述程序路径接收的一条或多条命令;
多路复用器,所述多路复用器耦合至所述外部端口和所述端口控制器,其中,所述逻辑用于将路由信号发送到所述多路复用器以便激活所述程序路径。
2.如权利要求1所述的设备,进一步包括主机处理器,其中,所述程序路径旁路所述主机处理器。
3.如权利要求1所述的设备,其中,使用所述设备外部的功率来处理所述一条或多条命令。
4.如权利要求1所述的设备,进一步包括与所述端口控制器相关联的非易失性存储器,其中,所述逻辑用于:
经由所述程序路径接收代码,其中,所述代码包括运行时固件映像或调试引导加载程序中的一个或多个;以及
将所述代码存储到所述非易失性存储器中。
5.如权利要求1至4中任一项所述的设备,其中,所述一条或多条命令包括再编程命令、重置命令或诊断命令中的一条或多条。
6.一种操作端口控制器的系统,包括:
如权利要求1至5中任一项所述的可再编程目标设备;以及
调试工具,包括:
调试端口;以及
控制器,所述控制器包括用于经由所述调试端口将调试模式请求发送到目标设备的外部端口的逻辑,其中为了发送所述调试模式请求,所述逻辑用于:
向所述调试端口断言使能信号;
向所述调试端口施加预定电阻;以及
向所述调试端口施加功率。
7.如权利要求6所述的系统,进一步包括:
第一开关,所述第一开关耦合至所述调试端口的第一配置通道触头;
第一电阻器,所述第一电阻器耦合至所述第一开关;
第二开关,所述第二开关耦合至所述调试端口的第二配置通道触头;以及
第二电阻器,所述第二电阻器耦合至所述第二开关,其中,所述逻辑用于激活所述第一开关和所述第二开关以便将所述预定电阻施加到所述调试端口。
8.如权利要求6所述的系统,进一步包括:
功率晶体管组,所述功率晶体管组耦合至所述调试端口的电压总线触头;以及
电源端口,所述电源端口耦合至所述功率晶体管组,其中,所述逻辑用于激活所述功率晶体管组以便将功率施加到所述调试端口。
9.如权利要求6所述的系统,其中,所述逻辑用于经由所述调试端口将一条或多条命令发送到所述目标设备的所述外部端口,其中,所述一条或多条命令包括再编程命令、重置命令或诊断命令中的一条或多条。
10.如权利要求6所述的系统,其中,所述逻辑用于经由所述调试端口将代码发送到所述目标设备的所述外部端口,其中,所述代码包括运行时固件映像或调试引导加载程序中的一者。
11.一种操作端口控制器的方法,所述方法包括:
经由连接器的外部端口在所述端口控制器处检测调试模式请求;
响应于所述调试模式请求而经由耦合至所述端口控制器的逻辑激活所述外部端口与所述端口控制器之间的程序路径,其中激活所述程序路径包括将路由信号从所述逻辑发送到耦合至所述外部端口的多路复用器;以及
在所述端口控制器处,处理经由所述程序路径接收的一条或多条命令。
12.如权利要求11所述的方法,其中,所述程序路径旁路包含所述端口控制器的目标设备的主机处理器。
13.如权利要求11所述的方法,其中,使用包含所述端口控制器的目标设备外部的功率来处理所述一条或多条命令。
14.如权利要求11所述的方法,进一步包括:
经由所述程序路径接收代码,其中,所述代码包括运行时固件映像或调试引导加载程序中的一个或多个;以及
将所述代码存储到与所述端口控制器相关联的非易失性存储器中。
15.如权利要求11至14中任一项所述的方法,其中,所述一条或多条命令包括再编程命令、重置命令或诊断命令中的一条或多条。
16.一种调试工具,包括:
用于在端口控制器处经由连接器的外部端口检测调试模式请求的装置;
用于响应于所述调试模式请求而经由耦合至所述端口控制器的逻辑激活所述外部端口与所述端口控制器之间的程序路径的装置,其中用于激活所述程序路径的装置包括用于将路由信号从所述逻辑发送到耦合至所述外部端口的多路复用器的装置;以及
用于在所述端口控制器处处理经由所述程序路径接收的一条或多条命令的装置。
17.如权利要求16所述的调试工具,其中,所述程序路径用于旁路包含所述端口控制器的目标设备的主机处理器。
18.如权利要求16所述的调试工具,其中,使用包含所述端口控制器的目标设备外部的功率来处理所述一条或多条命令。
19.如权利要求16所述的调试工具,进一步包括:
用于经由所述程序路径接收代码的装置,其中,所述代码包括运行时固件映像或调试引导加载程序中的一个或多个;以及
用于将所述代码存储到与所述端口控制器相关联的非易失性存储器中的装置。
20.如权利要求16至19中任一项所述的调试工具,其中,所述一条或多条命令包括再编程命令、重置命令或诊断命令中的一条或多条。
21.至少一种机器可读介质,包括多条指令,所述指令响应于在计算设备上被执行而使所述计算设备执行如权利要求11到15中任一项所述的方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/583,218 | 2014-12-26 | ||
US14/583,218 US9606175B2 (en) | 2014-12-26 | 2014-12-26 | Reprogramming a port controller via its own external port |
PCT/US2015/066231 WO2016106056A1 (en) | 2014-12-26 | 2015-12-17 | Reprogramming a port controller via its own external port |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107493685A CN107493685A (zh) | 2017-12-19 |
CN107493685B true CN107493685B (zh) | 2021-05-14 |
Family
ID=56151435
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580066259.9A Active CN107493685B (zh) | 2014-12-26 | 2015-12-17 | 经由端口控制器自身的外部端口对端口控制器进行再编程 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9606175B2 (zh) |
EP (1) | EP3238067B1 (zh) |
JP (1) | JP6790325B2 (zh) |
CN (1) | CN107493685B (zh) |
WO (1) | WO2016106056A1 (zh) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10282337B2 (en) * | 2015-02-27 | 2019-05-07 | Google Llc | Multi-function ports on a computing device |
US10152442B2 (en) | 2015-02-27 | 2018-12-11 | Google Llc | Multi-function ports on a computing device |
US9535117B2 (en) * | 2015-03-06 | 2017-01-03 | Intel Corporation | System debug using an all-in-one connector |
US10268618B2 (en) * | 2015-04-16 | 2019-04-23 | Advanced Micro Devices, Inc. | Chip level switching for multiple computing device interfaces |
US20160306616A1 (en) * | 2015-04-20 | 2016-10-20 | Microsoft Technology Licensing, Llc | Firmware update by usb cc |
US9959239B2 (en) * | 2015-10-16 | 2018-05-01 | Dell Products L.P. | Secondary data channel communication system |
US9995789B2 (en) * | 2015-12-22 | 2018-06-12 | Intel IP Corporation | Secure remote debugging of SoCs |
TWI595355B (zh) * | 2016-06-22 | 2017-08-11 | 台達電子工業股份有限公司 | 測試裝置和方法 |
US10241803B2 (en) * | 2016-10-03 | 2019-03-26 | Schneider Electric It Corporation | System and method for updating device software |
WO2018133242A1 (zh) * | 2017-01-19 | 2018-07-26 | 华为技术有限公司 | 终端、调试系统和调试方法 |
TWI627415B (zh) * | 2017-07-18 | 2018-06-21 | 和碩聯合科技股份有限公司 | 測試用纜線及使用其的測試方法 |
US10582636B2 (en) * | 2017-08-07 | 2020-03-03 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Server having a dual-mode serial bus port enabling selective access to a baseboard management controller |
CN108197054B (zh) * | 2018-01-24 | 2021-12-14 | 硅谷数模半导体(北京)有限公司 | USB Type-C芯片、及其调试方法、系统 |
US11023342B2 (en) * | 2018-11-30 | 2021-06-01 | Western Digital Technologies, Inc. | Cache diagnostic techniques |
CN111831471B (zh) * | 2019-04-18 | 2023-03-03 | 华为终端有限公司 | 一种用户终端、调试设备及数据备份的方法 |
GB201905835D0 (en) * | 2019-04-26 | 2019-06-12 | Ibm | On-premise and off-premise debugging |
TWI768592B (zh) * | 2020-12-14 | 2022-06-21 | 瑞昱半導體股份有限公司 | 中央處理器 |
CN115220769A (zh) * | 2021-04-16 | 2022-10-21 | 瑞昱半导体股份有限公司 | 实时配置固件数据的方法与调试装置 |
US20230273873A1 (en) * | 2022-02-28 | 2023-08-31 | Nvidia Corporation | Performing diagnostic operations on a target system |
CN115220978B (zh) * | 2022-09-19 | 2023-02-03 | 瀚博半导体(上海)有限公司 | 包括在线调试模式的芯片启动方法和装置、芯片和设备 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6126258A (en) * | 1999-02-12 | 2000-10-03 | Agilent Technologies | System and method for interfacing signals with a processing element |
US6732301B1 (en) | 2000-03-06 | 2004-05-04 | Hewlett-Packard Development Company, L.P. | Serial bus diagnostic port of a digital system |
GB0025593D0 (en) | 2000-10-18 | 2000-12-06 | Sgs Thomson Microelectronics | On-chip emulator communication |
CN100357751C (zh) * | 2004-02-26 | 2007-12-26 | 联想(北京)有限公司 | 一种jtag模块及应用该模块的调试方法 |
US7213172B2 (en) | 2004-03-31 | 2007-05-01 | Intel Corporation | Debugging power management |
US7318172B2 (en) | 2004-08-31 | 2008-01-08 | Broadcom Corporation | Wireless remote firmware debugging for embedded wireless device |
CN101243453B (zh) * | 2005-08-22 | 2011-04-20 | Nxp股份有限公司 | 控制内置存储器访问的方法和设备 |
US7665002B1 (en) | 2005-12-14 | 2010-02-16 | Advanced Micro Devices, Inc. | Multi-core integrated circuit with shared debug port |
US7870434B2 (en) * | 2008-02-29 | 2011-01-11 | Freescale Semiconductor, Inc. | Method and apparatus for masking debug resources |
US8156352B2 (en) | 2009-01-27 | 2012-04-10 | Standard Microsystems Corporation | Single pin port power control |
US8074131B2 (en) | 2009-06-30 | 2011-12-06 | Intel Corporation | Generic debug external connection (GDXC) for high integration integrated circuits |
US8214653B1 (en) | 2009-09-04 | 2012-07-03 | Amazon Technologies, Inc. | Secured firmware updates |
US8402314B2 (en) * | 2010-12-09 | 2013-03-19 | Apple Inc. | Debug registers for halting processor cores after reset or power off |
US9870301B2 (en) * | 2014-03-31 | 2018-01-16 | Intel Corporation | High-speed debug port using standard platform connectivity |
-
2014
- 2014-12-26 US US14/583,218 patent/US9606175B2/en active Active
-
2015
- 2015-12-17 EP EP15874150.4A patent/EP3238067B1/en active Active
- 2015-12-17 JP JP2017527552A patent/JP6790325B2/ja active Active
- 2015-12-17 CN CN201580066259.9A patent/CN107493685B/zh active Active
- 2015-12-17 WO PCT/US2015/066231 patent/WO2016106056A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
EP3238067A4 (en) | 2018-11-14 |
US20160187420A1 (en) | 2016-06-30 |
EP3238067B1 (en) | 2023-06-14 |
CN107493685A (zh) | 2017-12-19 |
US9606175B2 (en) | 2017-03-28 |
JP2018508053A (ja) | 2018-03-22 |
WO2016106056A1 (en) | 2016-06-30 |
EP3238067A1 (en) | 2017-11-01 |
JP6790325B2 (ja) | 2020-11-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107493685B (zh) | 经由端口控制器自身的外部端口对端口控制器进行再编程 | |
US6918027B2 (en) | System and method for in-system programming through an on-system JTAG bridge of programmable logic devices on multiple circuit boards of a system | |
US8943302B2 (en) | Method of flashing bios using service processor and computer system using the same | |
US9678682B2 (en) | Backup storage of vital debug information | |
US20030023771A1 (en) | Method for accessing scan chains and updating EEPROM-resident FPGA code through a system mangement processor and JTAG bus | |
TWI588837B (zh) | 具除錯控制器的系統單晶片及其操作方法 | |
CN103477296A (zh) | 用于从bios prom配置可编程逻辑器件的装置 | |
US9886408B2 (en) | Data access protection for computer systems | |
US10572434B2 (en) | Intelligent certificate discovery in physical and virtualized networks | |
US9946552B2 (en) | System and method for detecting redundant array of independent disks (RAID) controller state from baseboard management controller (BMC) | |
US20040225783A1 (en) | Bus to multiple jtag bus bridge | |
US10180800B2 (en) | Automated secure data and firmware migration between removable storage devices that supports boot partitions and replay protected memory blocks | |
US11544129B2 (en) | Cross-component health monitoring and improved repair for self-healing platforms | |
US9442831B1 (en) | Automated testing of program code for processing a simple boot flag data structure | |
US11334359B2 (en) | Systems and methods for management of dynamic devices | |
TWI600006B (zh) | 快閃操作的儲存裝置 | |
US10656991B2 (en) | Electronic component having redundant product data stored externally | |
TW201729094A (zh) | 微處理器介面 | |
TWI739853B (zh) | 運算裝置與運作方法 | |
TWI815725B (zh) | 電腦系統 | |
CN117742752A (zh) | Fpga固件升级方法及装置 | |
WO2023244210A1 (en) | Quick error detection and symbolic initial states in pre-silicon verification and debugging | |
TW201621648A (zh) | 新穎基本輸入輸出系統 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |