CN107690630B - 计算设备中的桥配置 - Google Patents
计算设备中的桥配置 Download PDFInfo
- Publication number
- CN107690630B CN107690630B CN201680015931.6A CN201680015931A CN107690630B CN 107690630 B CN107690630 B CN 107690630B CN 201680015931 A CN201680015931 A CN 201680015931A CN 107690630 B CN107690630 B CN 107690630B
- Authority
- CN
- China
- Prior art keywords
- interface
- volatile memory
- memory module
- data package
- updated data
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 claims abstract description 107
- 230000015654 memory Effects 0.000 claims abstract description 57
- 238000004891 communication Methods 0.000 claims abstract description 33
- 230000006870 function Effects 0.000 claims abstract description 6
- 230000007613 environmental effect Effects 0.000 claims description 4
- 230000002093 peripheral effect Effects 0.000 claims description 4
- 238000009434 installation Methods 0.000 claims 1
- 238000012545 processing Methods 0.000 description 29
- 230000008569 process Effects 0.000 description 26
- 238000003860 storage Methods 0.000 description 22
- RVCKCEDKBVEEHL-UHFFFAOYSA-N 2,3,4,5,6-pentachlorobenzyl alcohol Chemical compound OCC1=C(Cl)C(Cl)=C(Cl)C(Cl)=C1Cl RVCKCEDKBVEEHL-UHFFFAOYSA-N 0.000 description 17
- 238000012360 testing method Methods 0.000 description 12
- 238000013500 data storage Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 230000007547 defect Effects 0.000 description 4
- 238000000429 assembly Methods 0.000 description 3
- 230000000712 assembly Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 239000002671 adjuvant Substances 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 210000003205 muscle Anatomy 0.000 description 1
- APTZNLHMIGJTEW-UHFFFAOYSA-N pyraflufen-ethyl Chemical compound C1=C(Cl)C(OCC(=O)OCC)=CC(C=2C(=C(OC(F)F)N(C)N=2)Cl)=C1F APTZNLHMIGJTEW-UHFFFAOYSA-N 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 239000003039 volatile agent Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1694—Configuration of memory controller to different memory types
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
- G06F8/63—Image based installation; Cloning; Build to order
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/654—Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0638—Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7208—Multiple device management, e.g. distributing data over multiple flash devices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
公开了用于配置接口桥的***和方法。计算***包括设备控制器、耦合到设备控制器的被配置为根据第一通信标准提供桥功能的接口桥模块、符合第一通信标准并耦合到接口桥模块的主要的通信接口。该计算***还包括耦合到接口桥模块的第一非易失性存储器模块,该第一非易失性存储器模块存储第一级启动加载程序代码,计算***还包括耦合到设备控制器的第二非易失性存储器模块和符合第二通信标准的耦合到设备控制器的辅助通信接口。该设备控制器被配置为通过辅助通信接口接收更新数据包数据,更新数据包数据包括固件映像,以及为将更新数据包数据写入第二非易失性存储器模块。
Description
背景技术
诸如嵌入式***的计算***可以具有在***的非易失性存储器中编程的操作固件,其指导***的操作。各种数据通信接口可以被用来编程***的一个或多个组件。
附图说明
为了说明的目的,各种实施例被描绘在附图中,并且绝不应被解释为限制本公开的范围。此外,不同公开的实施例的各种特征能够被组合以形成作为本公开的一部分的附加实施例。
图1是根据一个或多个实施例的计算***的框图。
图2是根据一个或多个实施例的计算***的框图。
图3是根据一个或多个实施例的数据结构的框图。
图4是根据一个或多个实施例的用于编程存储器设备的处理的流程图。
图5是示出根据一个或多个实施例的用于配置计算设备的处理的流程图。
具体实施方式
虽然描述了某些实施例,但是这些实施例仅作为示例的方式来呈现,并不意图限制保护范围。实际上,这里描述的新颖的方法和***可以以各种其他形式具体实现。另外,在不脱离保护范围的情况下,可以做出这里所述的方法和***的形式中的各种省略、替换和改变。
这里提供的前文仅仅为了方便,并不一定影响权利要求的范围或意义。这里公开的是与通信接口设备的配置有关的示例配置和实施例。
概览
这里公开的是用于经由不直接连接到桥的辅助通信接口(例如,串行输入/输出(Serial input/output,SIO))间接地更新和编程用于通信接口桥的固件的***和方法,所述通信接口桥与主要的主机接口(例如,通用串行总线(Universal Serial Bus,USB)桥设备)相关联,其当印刷电路板组件(printedcircuit board assembly,PCBA)正在例如工厂腔室(factory chamber)中被处理时可以是有益的。例如,在包括设备控制器和用于经由主要的主机接口与主机设备/***通信的接口桥的数据存储装置设备的上下文中这里公开了某些实施例。这里在配置USB接口/桥的上下文中公开了某些实施例,尽管应当理解,所公开的特征和实施例可以应用于具有诸如PCIe(peripheralcomponent interconnectexpress,高速外设部件互连)、以太网、雷电接口(Thunderbolt)、SATA(Serial AdvancedTechnology Attachment,串行高级技术附件)、WiFi、或类似物的任何类型的主机接口的***。
虽然接口编程可以通过主要的主机接口被执行,但是在某些情况下,可能期望原生PCBA设备在不一定要通过主要的主机接口连接到设备的情况下被编程。例如,工厂自动化可以被用来在没有手动操作者用于***电缆等的情况下处理设备。
在工厂处理期间,某些处理可以被设计为经由后端或辅助的通信接口与被测设备通信。虽然这里在SIO后端/辅助接口的上下文中公开了某些实施例,但是应该理解,这里公开的特征和实施例可以应用于任何实际或期望的接口。在某些***中,通过主要的接口和辅助接口的同步通信是不可能或不可期望的;当一个接口是活动的时,另一个接口可以通常是不活动的,反之亦然。
某些工厂处理将主要的接口组件保留为默认配置。然而,在期望提供被直接处理的设备用于操作使用的情况下,这种配置可能是不可接受的。在某些实施例中,通过诸如SIO的辅助接口管理和控制工厂处理。本文公开的某些实施例提供了在例如处理设备(例如,数据存储装置驱动器)的最后阶段期间将用于接口桥的配置图像写入正被处理的设备的非易失性存储器(诸如硬盘驱动器或其它非易失性存储器模块)。当桥被启用以运行时,可以执行代码加载器的某些阶段以在处理结束时读取、验证和/或配置桥(例如,USB)。
计算***
图1是根据一个或多个实施例的计算***的框图。***100包括设备控制器130和被配置为便于通过主要的主机接口125通信的接口桥120。***100可以是例如集成的USB存储装置驱动器。这里公开的某些实施例使***/设备100能够直接在处理工厂处被配置,而不一定要被装运到例如第三方制造商处用于二次处理。
接口桥120可以是诸如USB、PCIe、以太网等的任何类型的桥,并且可以是有线或无线通信接口。接口桥120还可以连接到一个或多个非易失性存储装置模块140(诸如通过串行外设接口(serial peripheral interface,SPI)耦合到接口桥120的闪存设备)和/或接口桥120与一个或多个非易失性存储模块140相关联,以及与一个或多个易失性存储器模块150相关联。
在某些实施例中,***100的所示组件中的一个或多个可以被安装到印刷电路板(Printed Circuit Board,PCB),其可以构成经受如这里所述的处理/配置的计算设备(例如,数据存储装置驱动器)。
***100包括辅助主机通信接口135,其可以耦合到被设计为与主机电缆紧密配合或者以其它方式连接到主机***的物理连接器137。在某些实施例中,可以没有通过辅助接口135(例如,SIO)来编程非易失性存储装置140(例如,SPI闪存)的直接路径/连接。
辅助接口135可以是用于处理目的的相对简单的串行接口。在某些实施例中,当辅助接口135是活动的时,可以将接口桥120和主接口125保持复位,以防止两个接口同时尝试与设备控制器130通信。在工厂环境中,可能期望实施其中对于处理的某些部分需要代码变化尽可能不频繁的解决方案。例如,对于PCBA测试,使用相对稳定的代码加载到PCBA上可以是有益的;对于各种原因,此阶段的代码修改可能是有问题的。
这里公开的某些实施例提供在PCBA测试阶段将相对基本的“启动程序(bootstrap)”加载程序放置在桥非易失性存储器140(例如,SPI闪存)中。由基本的加载程序代码指导,随后可以从***的大容量存储装置160直接地读取更复杂的加载程序。更复杂的加载程序可以被设计为执行用于配置接口桥120的进一步的操作。
为了做出设备的固件代码,可能期望启动程序加载程序(这里称为“第一级加载程序”或“主加载程序”)的功能是相对简单的。例如,在某些实施例中,第一级加载程序仅被配置为使得设备处于就绪状态,并从非易失性存储装置160读取并验证更复杂的第二级加载程序并将其复制到***存储器150中。如果成功被加载,主加载程序可以将处理控制传递给第二级加载程序。由于在PCBA测试期间可能需要其他代码,在某些实施例中,可以在PCBA测试结束时加载第一级加载程序。该处理可以提供通过辅助接口135启用主要接口组件的能力。
图2是根据一个或多个实施例的计算***200的框图。图2的图示出了用于通过辅助主机接口235配置接口桥220的处理的数据流。在一个实施例中,该处理可以涉及使用SIO接口间接地编程SPI闪存设备中的固件。图2的***/处理可以有效地提供接口桥220的自编程,其对于大批量制造的解决方案可能是被需要的。
作为初始步骤,图2中展示的处理可以涉及将代码(在这里称为“更新数据包”)存储在可以在对于主接口和辅助接口的公共的非易失性存储装置260中,其可以如图中的流程“A”所示通过辅助接口235被执行。
桥220的非易失性存储装置240可以最初固件映像预先加载原始固件映像241(“第一级加载程序”)。例如,桥的非易失性存储器240可以使用某些固件被编程,以从对于主要接口和辅助接口共同的非易失性数据存储装置260中复制或“抓取(slurp)”最终的固件映像。例如,非易失性存储装置260可以是磁性硬盘存储装置或其他大容量存储装置,并且可以通过有线的物理接口或通过无线网络耦合到设备控制器230。在某些实施例中,公共存储装置260可由设备控制器230通过因特网或其他广域网访问。存储在桥的非易失性存储装置240中的第一级加载程序241可以包括用于定位公共存储装置260并从其检索代码的指令。
在某些实施例中,第一级加载程序241仅提供在公共存储装置260上找到代码并验证该代码的指令。存储在公共存储装置中的代码包括第二级加载程序代码,其可以被设计为获取验证过的更新数据包并解析其中某些组件并将其复制到***200中的适当位置。
在接口桥上运行的第一级加载程序241可以被设计为通过设备控制器230到达以检索存储在非易失性公共存储装置260中的更新数据包包210,并通过桥220将更新数据包加载到附接到接口桥220的易失性存储装置250,如流程‘B’所示。然后非易失性存储装置240可以基于更新数据包被更新。在某些实施例中,第一级加载程序包括是桥供应商特定的二进制代码。在某些实施例中,第一级加载程序在尺寸上小于大约20kB。例如,第一级加载程序在尺寸上可以是大约16kB或更小。第一级加载程序可以在PCBA测试期间被加载在桥存储器240中。
在某些实施例中,第一级加载程序241执行以下步骤:根据需要初始化桥220以使非易失性公共存储装置260处于就绪状态;旋转非易失性存储装置260的盘(仅用于硬盘实施例);以及读取更新数据包210的签名块,并验证其是正确的。如果更新数据包210不是有效和正确的,则第一级加载程序241可以变成空闲的。第一级加载程序还可以在它已经验证了数据包并将执行转移到第二级加载程序之后进一步加载第二级加载程序。
一旦更新数据包210已经被复制到易失性存储装置250,程序流可以传送到更新数据包中的第二级加载程序。该处理还可以涉及通过将固件映像从更新数据包复制到非易失性存储装置240来更新非易失性存储装置240中的固件映像。因为第一级加载程序241是相对原生的,所以固件修改可以仅需要针对在某些情况下可以更容易地可修改的更新数据包中的更新的固件映像。例如,因为与第一级加载程序相比,第二级加载程序相对复杂,它可能比第一级加载程序更频繁地改变;由于它被写在大容量存储装置260上,所以改变该代码可能比修改桥存储装置240中的第一级加载程序要简单得多。
在某些实施例中,第二级加载程序执行以下一个或多个步骤:如有必要,使公共存储装置260进入就绪状态;并验证更新数据包210的配置数据。如果配置数据是无效的,则可以更新状态信息以反映相同状况,并且第二级加载程序可以变为空闲。如果数据是有效的,则第二级加载程序可以应用这些改变并提供适当的状态信息。在某些实施例中,将配置数据在固件映像之后写入非易失性存储装置260上。验证和应用配置数据还可以涉及验证和应用OEM(Original Equipment Manufacturer,原始设备制造商)品牌数据等等。
第二级加载程序可以进一步读取和验证更新数据包的固件映像(例如,闪存图像)。如果闪存图像是无效的,则第二级加载程序可以提供适当的状态信息。如流程“C”所示,第二级加载程序可以使用固件映像进一步编程非易失性存储装置240的第二固件映像区域。在某些实施例中,此时第一固件映像不被重写。第二固件映像242可以被有利地写入,使得它是下一个电源循环时的固件的可启动的副本。在某些实施例中,作为单独的操作,第二级加载程序也可以擦除和编程第一固件映像区域。在非易失性存储装置240的成功编程之后,第二级加载程序可以被配置为发布指示编程是否成功的最终状态信息,并进一步设置工厂冻结状态(factory freeze state)。
最初是更新数据包210的组件的固件映像242(例如,闪存图像)可以提供生产(即,最终)桥存储装置图像(例如,SPI闪存图像)。在某些实施例中,可以仅存在目标固件的单个副本。
更新数据包
图3是根据一个或多个实施例的数据结构(“更新数据包”)310的框图。例如,数据结构310可以对应于图2中所示并在上面描述的更新数据包210。在某些实施例中,如这里所描述的,更新数据包310可以被预加载到计算***的非易失性公共存储装置上。如所示出的,更新数据包可以包括用于配置例如接口桥模块的代码和/或组合成数据结构的相关组件。更新数据包310可以包括在图3的图中被作为框示出的各种子组件。虽然针对各种组件示出了单独的块,但是应当理解,更新数据包310及其组件可以物理地、逻辑地和/或概念地被分解成任何期望的或实际的配置或表示。在一个实施例中,更新数据包的各个块起始于例如4kB边界。
如上所述,更新数据包可以包括签名数据311,其可以包括可以由第一级加载程序代码来检查的用于验证目的一个或多个数字签名。在某些实施例中,签名块311还包含指示例如起始逻辑块地址(logical block address,LBA)和以字节为单位的长度的内容的表。
更新数据包310还可以包括状态信息块312,其可以例如长度上是一个块。状态结构可以反映对于整个操作的最近的状态(例如,进度)。在某些实施例中,状态块312可以被预加载失败状态,并且可以仅由第一级加载程序和第二级加载程序更新。状态块信息312可以被用来与工厂处理通信(多个)处理操作是否成功完成。状态块312还可以包括用于当第一级加载程序和第二级加载程序通过更新处理进行时捕获状态信息的进度日志信息。
更新数据包310还包括第二级加载程序代码313,其可以包括负责使非易失性公共存储装置进入就绪状态(如果需要)和配置桥以及编程桥的非易失性存储装置(例如,闪存)的代码。第二级加载程序313还可以被配置为更新状态块312。
更新数据包310还包括固件映像314(例如,闪存图像),其可以包含例如要加载在桥的非易失性存储装置中的最终产品代码的简单二进制图像。在某些实施例中,第二级加载程序313被配置为验证该数据。
更新数据包310还包括配置数据315,其可以包括用于配置某些***功能的参数。在某些实施例中,配置数据315由第二级加载程序读取并用来配置固件映像314。
更新数据包310的各种组件可以共同提供所有必需的代码来编程和配置例如耦合到接口桥的SPI闪存设备。在某些实施例中,更新数据包310可以在不使用本地/主要的主机接口的情况下被用来编程桥,而是使用辅助(例如,存储装置侧)接口。
文件名目录位置识别
图4是根据一个或多个实施例的用于编程存储器设备的流程400的流程图。在某些实施例中,流程400可以至少部分地作为PCBA测试/配置程序的一部分执行,其中可以通过主要的主机接口(例如,USB)来实现与PCBA的通信。另外,可以使用测试腔室(testingchamber)来执行流程400的至少一部分,其中可以通过辅助串行接口(例如,SIO)来实现与PCBA的通信。
在框402处,流程400涉及将第一级加载程序代码编程到诸如闪存模块的非易失性存储器模块中,其可被配置为通过SPI接口与主机通信。在某些实施例中,步骤402可以作为PCBA测试处理的最后步骤通过主要的主机接口被执行。例如,SCSI(Small ComputerSystem Interface,小型计算机***接口)命令可以通过主要的USB接口被发送以实施第一级加载程序的编程。
在将第一级加载程序编程到非易失性桥存储器之前,可以在其中存储基本固件映像,其包括与PCBA兼容并且用于处理PCBA的固件的基本通用版本。这样的代码可以包含测试目的所需的基本代码。根据某些实施例,第一级加载程序可以被加载到测试处理的结束,以使得后端接口(例如,SIO)处理能够编程非易失性桥存储器。
在框404处,流程400涉及对计算设备执行某些处理。处理可以涉及某些缺陷管理的处理。在某些实施例中,在环境控制腔室(environment‐controlled chamber)中通过辅助串行接口(例如,SIO)执行设备处理。当PCBA受制在环境控制腔室中时,环境控制腔室可以提供温度控制用于缺陷映射的目的。温度控制可以允许压力测试发现PCBA中(诸如在设备的介质中)的缺陷。
在框406处,流程400涉及将更新数据包写入非易失性存储器。例如,在缺陷映射之后,SIO处理以在正被处理/测试的设备的非易失性数据存储装置上写入图像(例如,更新数据包)作为结束。图像可以类似于图3中所示以及以上描述的数据结构。
在框408处,流程400可以涉及关闭正被处理的设备的电源,其中在框410处,设备在不保持桥复位的情况下上电。通过不保持桥复位,流程400可以允许桥在电源循环之后能够运行第一级加载程序。在这种情况下,可能已经完成了通过腔室接口(chamberinterface)与设备的通信。
桥可以随后执行第一级加载程序,其可以包括验证更新数据包图像的指令、将包括第二级加载程序的更新数据包加载到桥的易失性存储器中、并跳转到第二级加载程序的执行。第二级加载程序通常可以与基于被一起打包和提供的两个组件所释放的固件映像兼容。第二级加载程序可以提供编程配置数据的功能,将固件映像编程到桥的非易失性存储器(例如,SPI闪存)中,并使固件映像激活。
图5是示出根据一个或多个实施例的用于配置计算设备的流程500的流程图。可以在PCBA或其他计算设备(诸如数据存储装置驱动器或其他嵌入式***)的腔室测试(chamber testing)/处理之后执行流程500。流程500可以表示用于通过后端/辅助接口编程闪存设备或其他非易失性存储器模块的机制。
在框502,流程500涉及执行存储在非易失性存储器(诸如耦合到接口桥设备的闪存设备)中的第一级加载程序代码。例如,在实施图5中的主要的接口处理之前,第一级加载程序(即,预启动加载程序)可以已经被保存在桥的非易失性存储器上。在某些实施例中,第一级加载程序是相对原生的;第一级加载程序是原生的可以是有利的,因为事后改变代码可能是不切实际或麻烦的。
在框504,流程500涉及验证存储在非易失性存储器(诸如设备的硬盘组件或其他非易失性数据存储装置)中的更新数据包。与第一级加载程序类似,更新数据包可以已经作为先前实施的处理的一部分被预加载。例如,第一级加载程序可以被设计为验证更新数据包的签名。
在框506处,流程500涉及将更新数据包从盘复制到易失性存储器,其可耦合到桥的易失性存储器或非易失性存储器(例如闪存设备)。第二级加载程序可以是更新数据包的组件,并且因此使用更新数据包被加载。
在框508处,流程500涉及执行第二级加载程序代码,其可以是被复制到易失性存储器的更新数据包的组件。如框510所示,第二级加载程序可以指导桥验证并应用配置数据,配置数据可以是更新数据包的组件。配置数据可以包括OEM设置数据。第二级加载程序可以指导桥以设置配置数据中指定的所需功能和值。
在框512处,流程500涉及将更新数据包的固件映像验证并写入桥的非易失性存储器(例如,闪速存储器)。在某些实施例中,当执行框512时,存储在非易失性存储器中的先前版本的固件不被重写。作为单独的步骤,先前的固件版本可以使用更新的固件被擦除并重写。
一旦桥非易失性存储器的编程完成,第二级加载程序可以执行工厂冻结操作(factory freeze operation)和/或执行各种状态更新操作。发布状态信息可以对于调试目的是有用的。在某些实施例中,在预定更新时间段已经过去之后,流程500可以涉及关闭设备电源,并进一步重新启动保持桥复位的设备以通过后端接口读取状态信息。
如所公开的,某些实施例通过在设备的公共存储上放置能够由桥检索的某些数据以允许它有效地自我编程来提供后端桥/接口编程。某些实施例可以允许集成的USB数据存储装置驱动器在驱动器工厂中被配置。这样的***和处理可以有效地消除当前软件制造工具所完成的大量工作,其可以转而降低由设备制造商执行的配置步骤的成本。
附加实施例
本领域技术人员将理解,在一些实施例中,能够实施的其他类型的桥配置***,同时保持在本公开的范围内。此外,在这里讨论的处理中采取的实际步骤可以与描述的或图中示出的不同。取决于实施例,上述某些步骤可以被移除,和/或其他步骤可以被添加。
虽然已经描述了某些实施例,但是这些实施例仅作为示例的方式来呈现,并不旨在限制保护范围。实际上,这里描述的新颖的方法和***可以以各种其他形式具体实现。另外,可以做出这里所述的方法和***的形式中的各种省略、替换和改变。所附权利要求及其等同物旨在覆盖会落入保护范围和精神内的这些形式或修改。例如,图中所示的各种组件可以被实施为处理器上的软件和/或固件、专用集成电路(application‐specificintegrated circuit,ASIC)、现场可编程门阵列(field‐programmable gate array,FPGA)或专用硬件。并且,上述公开的特定实施例的特征和属性可以以不同的方式组合以形成附加实施例,所有这些都落入本公开的范围内。虽然本公开提供了某些偏好的实施例和应用,但是对于本领域普通技术人员显而易见的包括不提供这里所阐述的所有特征和优点的实施例的其他实施例也在本公开的范围内。因此,本公开的范围旨在仅通过参考所附权利要求来定义。
上述所有处理可以经由由一个或多个通用或专用计算机或处理器执行的软件代码模块具体实现并且完全自动化。代码模块可以被存储在任何类型的计算机可读介质或其他计算机存储装置设备或存储装置设备的集合上。一些或所有方法可以可替换地具体实现在专用的计算机硬件中。
Claims (18)
1.一种计算***,包括:
设备控制器;
接口桥模块,其通信地耦合到所述设备控制器和被配置为提供桥功能;
主要的通信接口,其符合第一通信标准并且通信地耦合到所述接口桥模块;
第一非易失性存储器模块,其通信地耦合到所述接口桥模块,所述第一非易失性存储器模块存储第一级启动加载程序代码;
第二非易失性存储器模块,其与第一非易失性存储器模块分离并且通信地耦合到所述设备控制器;以及
辅助通信接口,其符合第二通信标准并且通信地耦合到所述设备控制器;
其中当接口桥模块保持在复位的同时,所述设备控制器被配置为:
通过所述辅助通信接口接收更新数据包数据,所述更新数据包数据包括固件映像;以及
将所述更新数据包数据写入所述第二非易失性存储器模块。
2.如权利要求1所述的计算***,其中所述辅助通信接口是串行接口。
3.如权利要求1所述的计算***,其中所述更新数据包数据包括:
第二级启动加载程序代码;以及
用于配置所述接口桥模块的配置数据。
4.如权利要求1所述的计算***,其中所述设备控制器还被配置为:
将所述辅助通信接口保持为复位;
激活所述主要的通信接口;
从所述第二非易失性存储器模块复制所述更新数据包数据的第二级启动加载程序代码到易失性存储器模块;以及
执行来自所述易失性存储器模块的第二级启动加载程序代码。
5.如权利要求4所述的计算***,其中第二级启动加载程序代码当被所述设备控制器执行时,使得所述设备控制器:
验证所述更新数据包数据的配置数据;
应用所述配置数据以配置所述接口桥模块;
验证所述固件映像;以及
将所述固件映像存储在所述第一非易失性存储器模块中。
6.如权利要求1所述的计算***,还包括印刷电路板PCB,其中所述设备控制器、接口桥模块和第一非易失性存储器模块每一个包括安装在所述PCB上的一个或多个芯片。
7.如权利要求1所述的计算***,其中所述第一级启动加载程序代码当被所述设备控制器执行时使得所述设备控制器:
初始化所述接口桥模块;
旋转所述第二非易失性存储器模块的磁盘;以及
验证存储在所述第二非易失性存储器模块中的所述更新数据包数据的第二级启动加载程序代码。
8.如权利要求1所述的计算***,其中所述第一级启动加载程序代码在大小上小于20kB。
9.如权利要求1所述的计算***,其中所述辅助通信接口是串行输入/输出SIO接口。
10.如权利要求1所述的计算***,其中所述第二非易失性存储器模块包括磁存储器。
11.如权利要求1所述的计算***,其中所述第一非易失性存储器模块是串行***接口SPI闪存模块。
12.一种在计算***中编程固件的方法,所述方法包括:
在将耦合到主要的通信接口的接口桥模块保持为复位时:
通过辅助通信接口接收更新数据包数据,所述更新数据包数据包括第二级启动加载程序代码和固件映像;以及
将所述更新数据包数据写入第一非易失性存储器模块;
将第一级启动加载程序代码从第二非易失性存储器模块加载到易失性存储器模块,所述第二非易失性存储器模块与所述第一非易失性存储器模块分离并通信地耦合到所述接口桥模块;
执行第一级启动加载程序代码以:
初始化所述接口桥模块;和
将更新数据包数据从第一非易失性存储器模块复制到所述易失性存储器模块;和
执行第二级启动加载程序代码以将更新数据包数据的固件映像从所述易失性存储器模块复制到第二非易失性存储器模块。
13.如权利要求12所述的方法,其中所述方法至少部分地在环境控制腔室内被执行。
14.如权利要求12所述的方法,其中所述更新数据包数据包括:用于配置所述接口桥模块的配置数据。
15.如权利要求12所述的方法,其中执行所述第二级启动加载程序代码包括:
验证所述更新数据包数据的配置数据;
应用所述配置数据;以及
验证所述固件映像。
16.如权利要求12所述的方法,其中所述方法至少部分地由安装到印刷电路板PCB的设备控制器执行,其中所述接口桥模块和第一非易失性存储器模块每一个包括安装到所述PCB的一个或多个芯片。
17.如权利要求12所述的方法,其中所述执行第一级启动加载程序代码还包括:
旋转所述第一非易失性存储器模块的磁盘;以及
验证第二级启动加载程序代码。
18.如权利要求12所述的方法,其中所述主要的通信接口是通用串行总线USB接口。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201562150132P | 2015-04-20 | 2015-04-20 | |
US62/150,132 | 2015-04-20 | ||
US14/737,307 | 2015-06-11 | ||
US14/737,307 US9836417B2 (en) | 2015-04-20 | 2015-06-11 | Bridge configuration in computing devices |
PCT/US2016/026482 WO2016171921A1 (en) | 2015-04-20 | 2016-04-07 | Bridge configuration in computing devices |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107690630A CN107690630A (zh) | 2018-02-13 |
CN107690630B true CN107690630B (zh) | 2019-03-19 |
Family
ID=57129791
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680015931.6A Expired - Fee Related CN107690630B (zh) | 2015-04-20 | 2016-04-07 | 计算设备中的桥配置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9836417B2 (zh) |
CN (1) | CN107690630B (zh) |
MY (1) | MY180952A (zh) |
WO (1) | WO2016171921A1 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10180844B2 (en) * | 2017-01-20 | 2019-01-15 | Oracle International Corporation | Boot path and production path accessible storage system |
KR20190118862A (ko) * | 2018-04-11 | 2019-10-21 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 컨트롤러의 동작 방법 |
KR20200077276A (ko) * | 2018-12-20 | 2020-06-30 | 에스케이하이닉스 주식회사 | 저장 장치 및 그 동작 방법 |
TWI703446B (zh) * | 2019-01-29 | 2020-09-01 | 瑞昱半導體股份有限公司 | 介面轉接電路 |
CN111447240B (zh) * | 2020-04-29 | 2022-02-15 | 安康鸿天科技股份有限公司 | 数据通信控制方法、装置、***、存储介质及计算机设备 |
US20230126350A1 (en) * | 2021-10-25 | 2023-04-27 | Nvidia Corporation | Non-volatile memory storage and interface |
US11989874B2 (en) | 2022-01-14 | 2024-05-21 | Hewlett Packard Enterprise Development Lp | Multi-tier PCBA integrity validation process |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5894425A (en) * | 1997-02-28 | 1999-04-13 | Quantum Corporation | Wireless secondary interface for data storage device |
US6499054B1 (en) * | 1999-12-02 | 2002-12-24 | Senvid, Inc. | Control and observation of physical devices, equipment and processes by multiple users over computer networks |
CN102087606A (zh) * | 2011-02-16 | 2011-06-08 | 电子科技大学 | 一种fpga配置文件更新装置 |
CN104583989A (zh) * | 2012-08-28 | 2015-04-29 | 惠普发展公司,有限责任合伙企业 | 高性能持久性存储器 |
Family Cites Families (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7587467B2 (en) | 1999-12-02 | 2009-09-08 | Western Digital Technologies, Inc. | Managed peer-to-peer applications, systems and methods for distributed data access and storage |
ATE396577T1 (de) | 1999-12-02 | 2008-06-15 | Western Digital Tech Inc | System zum fernaufnehmen von fernsehprogrammen |
US8688797B2 (en) | 1999-12-02 | 2014-04-01 | Western Digital Technologies, Inc. | Managed peer-to-peer applications, systems and methods for distributed data access and storage |
US9191443B2 (en) | 1999-12-02 | 2015-11-17 | Western Digital Technologies, Inc. | Managed peer-to-peer applications, systems and methods for distributed data access and storage |
US8793374B2 (en) | 1999-12-02 | 2014-07-29 | Western Digital Technologies, Inc. | Managed peer-to-peer applications, systems and methods for distributed data access and storage |
US7120692B2 (en) | 1999-12-02 | 2006-10-10 | Senvid, Inc. | Access and control system for network-enabled devices |
US7934251B2 (en) | 1999-12-02 | 2011-04-26 | Western Digital Technologies, Inc. | Managed peer-to-peer applications, systems and methods for distributed data access and storage |
US7917628B2 (en) | 1999-12-02 | 2011-03-29 | Western Digital Technologies, Inc. | Managed peer-to-peer applications, systems and methods for distributed data access and storage |
US7949564B1 (en) | 2000-05-31 | 2011-05-24 | Western Digital Technologies, Inc. | System and method of receiving advertisement content from advertisers and distributing the advertising content to a network of personal computers |
US7454443B2 (en) | 2003-08-26 | 2008-11-18 | Tamir Ram | Method, system, and program for personal data management using content-based replication |
EP1751745B1 (en) | 2003-11-14 | 2019-07-10 | Western Digital Technologies, Inc. | Managed peer-to-peer applications, systems and methods for distributed data access and storage |
US7266727B2 (en) | 2004-03-18 | 2007-09-04 | International Business Machines Corporation | Computer boot operation utilizing targeted boot diagnostics |
US20060282571A1 (en) * | 2005-04-25 | 2006-12-14 | Perception Digital Limited | Multimedia devices with enhanced functionality |
US7600055B2 (en) * | 2006-01-03 | 2009-10-06 | International Business Machines Corporation | Apparatus, system, and method for firmware update of redundant controllers |
US8713551B2 (en) * | 2006-01-03 | 2014-04-29 | International Business Machines Corporation | Apparatus, system, and method for non-interruptively updating firmware on a redundant hardware controller |
US8004791B2 (en) | 2008-02-22 | 2011-08-23 | Western Digital Technologies, Inc. | Information storage device with a bridge controller and a plurality of electrically coupled conductive shields |
TWI386847B (zh) | 2009-02-04 | 2013-02-21 | Novatek Microelectronics Corp | 可安全復原的韌體更新方法及可安全復原之韌體更新的嵌入式電子裝置 |
US9696779B2 (en) * | 2009-08-25 | 2017-07-04 | Nuvoton Technology Corporation | Integrated circuit, electronic device and operation method thereof |
US8255661B2 (en) | 2009-11-13 | 2012-08-28 | Western Digital Technologies, Inc. | Data storage system comprising a mapping bridge for aligning host block size with physical block size of a data storage device |
US8285965B2 (en) | 2009-11-20 | 2012-10-09 | Western Digital Technologies, Inc. | Aligning data storage device partition to boundary of physical data sector |
US8526798B2 (en) | 2009-12-23 | 2013-09-03 | Western Digital Technologies, Inc. | Portable content container displaying A/V files in response to a command received from a consumer device |
US8601203B2 (en) * | 2010-03-12 | 2013-12-03 | Standard Microsystems Corporation | Firmware flashing of a portable device using a serial bus hub |
US8631284B2 (en) | 2010-04-30 | 2014-01-14 | Western Digital Technologies, Inc. | Method for providing asynchronous event notification in systems |
US8762682B1 (en) | 2010-07-02 | 2014-06-24 | Western Digital Technologies, Inc. | Data storage apparatus providing host full duplex operations using half duplex storage devices |
US10019741B2 (en) | 2010-08-09 | 2018-07-10 | Western Digital Technologies, Inc. | Methods and systems for a personal multimedia content archive |
US8713265B1 (en) | 2010-09-21 | 2014-04-29 | Western Digital Technologies, Inc. | Visual indicator of online backup |
EP2453352A1 (en) | 2010-11-08 | 2012-05-16 | Gemalto SA | Software updating process for an embedded device |
US8640118B2 (en) * | 2011-05-24 | 2014-01-28 | International Business Machines Corporation | Managing firmware on a system board |
US8780004B1 (en) | 2012-01-31 | 2014-07-15 | Western Digital Technologies, Inc. | Dual configuration enclosure with optional shielding |
US8819443B2 (en) | 2012-02-14 | 2014-08-26 | Western Digital Technologies, Inc. | Methods and devices for authentication and data encryption |
US8661429B2 (en) * | 2012-02-28 | 2014-02-25 | Seagate Technology Llc | Updating peripheral device firmware via a portable device |
US8646054B1 (en) | 2012-03-23 | 2014-02-04 | Western Digital Technologies, Inc. | Mechanism to manage access to user data area with bridged direct-attached storage devices |
US9214184B2 (en) | 2012-04-10 | 2015-12-15 | Western Digital Technologies, Inc. | Digital rights management system, devices, and methods for binding content to an intelligent storage device |
US8914634B2 (en) | 2012-04-10 | 2014-12-16 | Western Digital Technologies, Inc. | Digital rights management system transfer of content and distribution |
US9626373B2 (en) | 2012-10-01 | 2017-04-18 | Western Digital Technologies, Inc. | Optimizing data block size for deduplication |
US9280482B2 (en) | 2012-12-13 | 2016-03-08 | Western Digital Technologies, Inc. | Methods and systems for provisioning a bootable image on to an external drive |
US20140169921A1 (en) | 2012-12-19 | 2014-06-19 | Mark Carey | Cargo carrier |
US9177122B1 (en) * | 2013-06-26 | 2015-11-03 | Amazon Technologies, Inc. | Managing secure firmware updates |
-
2015
- 2015-06-11 US US14/737,307 patent/US9836417B2/en active Active
-
2016
- 2016-04-07 MY MYPI2017703349A patent/MY180952A/en unknown
- 2016-04-07 WO PCT/US2016/026482 patent/WO2016171921A1/en active Application Filing
- 2016-04-07 CN CN201680015931.6A patent/CN107690630B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5894425A (en) * | 1997-02-28 | 1999-04-13 | Quantum Corporation | Wireless secondary interface for data storage device |
US6499054B1 (en) * | 1999-12-02 | 2002-12-24 | Senvid, Inc. | Control and observation of physical devices, equipment and processes by multiple users over computer networks |
CN102087606A (zh) * | 2011-02-16 | 2011-06-08 | 电子科技大学 | 一种fpga配置文件更新装置 |
CN104583989A (zh) * | 2012-08-28 | 2015-04-29 | 惠普发展公司,有限责任合伙企业 | 高性能持久性存储器 |
Also Published As
Publication number | Publication date |
---|---|
US20160306757A1 (en) | 2016-10-20 |
WO2016171921A1 (en) | 2016-10-27 |
MY180952A (en) | 2020-12-14 |
US9836417B2 (en) | 2017-12-05 |
CN107690630A (zh) | 2018-02-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107690630B (zh) | 计算设备中的桥配置 | |
US7334117B2 (en) | Device boot loader for processing one or more requests from a host computer system concurrently with loading or updating the firmware of the device | |
US10120694B2 (en) | Embedded system boot from a storage device | |
CN107493685B (zh) | 经由端口控制器自身的外部端口对端口控制器进行再编程 | |
US9027014B2 (en) | Updating firmware compatibility data | |
CN109656593B (zh) | 基于zynq芯片实现fpga程序远程升级的方法 | |
US11579893B2 (en) | Systems and methods for separate storage and use of system BIOS components | |
US20070094489A1 (en) | Embedded system that boots from USB flash drive | |
CN110879720B (zh) | 可配置服务器及配置服务器的功能的方法 | |
JP5229673B2 (ja) | 管理エンジンを利用する仮想バスデバイス | |
US9891862B2 (en) | Forensic data acquisition apparatus and method for guaranteeing integrity of flash memory in smart device | |
US8601464B2 (en) | Memory online update system and method | |
CN107533441B (zh) | 创建操作***卷 | |
US10579801B2 (en) | Selecting and loading firmware volumes based on license | |
US20140052403A1 (en) | Test system and test method thereof | |
WO2016062146A1 (zh) | 序列号信息的更新方法、装置及终端 | |
US20160011886A1 (en) | Adaptive device driver method and system | |
US20230229481A1 (en) | Provisioning dpu management operating systems | |
EP2778910B1 (en) | Systems and methods to extend rom functionality | |
TWI813887B (zh) | 從分離的bios映像檔啟動的方法及系統 | |
CN106528114B (zh) | 一种安卓固件应用装置和安卓固件升级方法 | |
CN102298531B (zh) | 在嵌入式***中对闪存文件***进行升级的方法 | |
CN115495136B (zh) | 一种基于国产飞腾平台的bmc快速在线升级方法 | |
US20090199216A1 (en) | Multi-level driver configuration | |
CN101789265B (zh) | 一种对PowerPC***FLASH快速编程的方法 |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20190319 |