CN101246428A - 启动装置的重枚举的方法 - Google Patents

启动装置的重枚举的方法 Download PDF

Info

Publication number
CN101246428A
CN101246428A CNA2007103066797A CN200710306679A CN101246428A CN 101246428 A CN101246428 A CN 101246428A CN A2007103066797 A CNA2007103066797 A CN A2007103066797A CN 200710306679 A CN200710306679 A CN 200710306679A CN 101246428 A CN101246428 A CN 101246428A
Authority
CN
China
Prior art keywords
main frame
command
order
predetermined
predetermined state
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.)
Granted
Application number
CNA2007103066797A
Other languages
English (en)
Other versions
CN101246428B (zh
Inventor
谢文祥
陈思杰
陈有民
蒋忠权
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Seagate Technology LLC
Original Assignee
Seagate Technology LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Seagate Technology LLC filed Critical Seagate Technology LLC
Publication of CN101246428A publication Critical patent/CN101246428A/zh
Application granted granted Critical
Publication of CN101246428B publication Critical patent/CN101246428B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • G06F9/4413Plug-and-play [PnP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)
  • Stored Programmes (AREA)

Abstract

提供了一种无需人工干预即可启动USB装置的重枚举的方法。该方法包括当装置保持与主机的连接时,模拟装置与主机的断开连接和重新连接的流程。当装置在流程期间保持与主机的连接时,操作主机OS以重新获得多个预定装置状态,从而检测装置变化,并最终启动装置枚举。当发生请求状态枚举的事件时,可以通过主机中存储的软件应用程序启动包括装置和主机之间的一系列命令变化的该流程。

Description

启动装置的重枚举的方法
技术领域
本发明总体涉及通用串行总线(USB)装置,更具体地,涉及一种无需USB装置与主机物理断开并重新连接即可启动装置重枚举的方法。
背景技术
由于其大容量以及使得装置便于携带的缩小的物理尺寸,可移除的通用串行总线(USB)数据存储装置已经得到了广泛应用。可以提供多个分区,其中的一个或多个分区可以被保护,从而使得经过验证访问受保护分区中存储的数据,同时其它部分保持不被保护,从而使得不受限制地访问其中存储的数据。
有时,存储装置的用户可能需要修改其存储需求。例如,用户可能需要将一个分区修改为两个分区。每当对存储装置进行重新分区时,就需要将该装置连接到主机,例如个人计算机,以对该装置进行重枚举。如果装置是冷插入到主机,则自动执行枚举。然而,如果在保持连接于主机时对装置进行重新分区,则当完成重新分区时,主机不能自动对装置进行枚举。需要人工干预,例如从主机中物理断开该装置并将其重新连接,启动装置的重枚举。
发明内容
本发明的实施例允许主机在需要装置重枚举的事件之后启动USB装置的重枚举,无需人工干预,即,将装置与主机物理断开并重新连接。同样地,不需要额外的硬件支持。
为此目的,当在整个处理流程中,该装置与主机保持连接时,执行USB装置与主机模拟断开和连接的处理流程或处理程序。处理流程包括装置和主机之间的一系列命令交换,从而使得主机中具有的操作系统(OS)检测到依次使主机OS启动装置枚举的装置变化。由于在整个处理流程中,该装置与主机保持连接,因此操作主机OS以接收预先设定的多种装置状态,使其检测装置变化。
当阅读以下详细说明和查阅相关附图时,体现本发明实施例的其它特征和优点将变得明显。
附图说明
图1说明包括主机和USB装置的系统。
图2说明根据本发明的一个实施例的流程。
具体实施方式
在以下说明中,为了提供对本发明的各个实施例的透彻理解,描述多个特殊细节。然而,所属领域技术人员可以理解无需这些特殊细节中的一部分或全部也可以实现本发明的实施例。在其它示例中,为了不会不必要地模糊描述的实施例的相关方面,没有详细地描述公知的处理操作。
图1说明了包括主机12,例如耦合于通用串行总线(USB)装置14的个人计算机或任何计算装置,的系统10。主机12包括主机12的非易失性存储器中存储的操作系统(OS)16和软件应用程序18。MicrosoftWindows产品可以作为本发明实施例中的OS使用。然而,应该理解可以替换地应用其它操作系统。软件应用程序18被构建为与主机OS 16以及与装置14相互作用,例如对装置12重新分区。在主机12中提供连接点(端口)20,从而从装置14接收电缆22以将装置14电连接于主机12。可替换地,可以在装置14和端口20之间提供集线器(未示出)以将装置14电连接于主机12。集线器提供额外的连接点,通过该连接点将其它USB装置同时连接于主机12。
为了无需人工干预地启动USB装置14的重枚举,当装置14保持与主机12的连接时,执行模拟装置14与主机12的断开和重新连接的处理流程。可以由需要装置重枚举的预定事件调用该处理流程。处理流程包括装置14和主机OS 16和/或主机12中存储的应用程序18之间的多个命令交换,从而操作主机OS 16检测装置变化,即使在整个处理流程中,装置14保持与主机12连接。具体地,操作主机OS 16,从而检测装置14从主机14中断开的第一状态,其中,随后检测装置14连接于主机12的第二状态。模拟装置变化的该处理流程使主机OS 16根据标准OS特性启动装置枚举。
现在,参照图2,其中说明了根据本发明的实施例用于启动USB装置14的枚举的处理流程200。可以由需要装置枚举的预定事件调用处理流程200。所述事件的示例包括但不限于USB装置的分区(例如,从一个分区到两个分区,以及分区的任何其它组合),以及修改装置14中分区的安全等级(例如,保护或安全分区,反之亦然)。以下说明应用于可移除存储装置,该可移除存储装置利用根据小型计算机系统接口(SCSI)命令组的USB大容量存储等级的仅仅大容量传输规范。然而,应该理解以下说明还应用于利用控制大容量中断(CBI)传输规范的USB装置。
当出现预定事件时,可以由主机12中存储的软件应用程序18调用处理流程200。在流程202中,应用程序18发出的第一专用命令以将装置14设定为拒绝除预定命令以外的全部命令和请求。换句话说,装置14仅仅可以接收预定命令。因此,装置14对除预定命令以外的命令的接收将导致命令故障。预定命令例如包括,但是不限于,根据USB大存储等级规范和SCDI命令组的REQUESTSENSE命令。REQUEST SENSE命令通常用于将检测数据从装置14传送到主机12,从而确定是否已经出现错误。第一专用命令还将检测数据预先设定或确定为第一状态,在该第一状态中,装置14从主机12中断开连接,例如“介质不存在”。
然后,在流程204中,应用程序18通过向装置14发出除预定命令以外的第二命令来不断请求命令故障或故障响应。由于在流程202中将装置14设定为拒绝除预定命令以外的全部命令,因此任何其它命令都将导致命令故障。适当的命令例如是基于标准SCSI命令组的TEST UNIT READY命令,该命令用于如果准备好则请求装置报告。流程204中的第二命令的目的是生成命令故障,这依次导致主机OS 16根据标准OS特性初始化错误检查。在流程206中,响应于TEST UNIT READY命令,装置14向应用程序18返回命令故障。
在流程208中命令故障的接收使主机OS 16通过向装置14发送REQUESTSENSE命令来执行错误检查。由于将REQUEST SENSE命令设定为被装置14接收,因此装置14根据REQUEST SENSE命令所需的标准响应向主机OS 16返回检测数据。在流程208中,将之前预先设定为处于第一状态“介质不存在”中的检测数据提供给主机OS 16。因此,即使装置14保持与主机12的连接,主机OS 16也能感测或检测到不存在装置。
之后,操作主机OS 16来检测装置14已经被重新连接,从而调用枚举。为此目的,在流程212中,应用程序18发出第三专用命令来将装置14设定为拒绝除预定命令以外的全部命令。在当前示例中,预定命令也可以是REQUESTSENSE命令。第三专用命令还重写现有检测数据,并将其预先设定为第二状态,在第二状态中,装置14连接于主机12,例如“没有准备好准备转换-介质被改变”。此外,装置14可以根据装置14中当前的分区序号校正逻辑单元序号(LUN)值。之后,可以在枚举期间将校正的LUN值提供给主机OS 16。
应用程序18再次从装置14不断请求命令故障或故障响应,从而使主机OS16启动错误检查。为此目的,在流程214中,向装置14发出除预定命令以外的第四命令。第四命令可以与流程204中的第二命令相同,例如为TEST UNITREADY命令,或者可以是任何其它适当的命令。响应于第四命令,在流程216,装置14向应用程序18返回命令故障,这是由于之前在流程212中已经将装置14设定为拒绝除预定命令,例如REQUEST SENSE命令以外的全部命令。
在流程218中,命令故障的接收触发主机OS 16通过向装置14发送REQUEST SENSE命令来执行错误检查。在流程220中,响应于REQUESTSENSE命令,装置14向主机OS 16返回或提供检测数据,其中已经将检测数据预先设定为第二状态,在该第二状态中,装置14连接于主机12,例如“没有准备好准备转换介质被改变”。因此,即使在流程200期间同一装置14保持与主机12连接,主机OS 16也能感测或检测到被连接的装置14中的变化。
由于主机OS 16检测装置变化,因此在流程222中主机OS 16根据标准OS特性启动枚举处理。除了别的以外,枚举处理还包括获取装置14中的分区序号(即,LUN值)以及每一分区的大小,并在流程222中将这些值提供给主机OS 16。
在以上段落中,即使将装置条件操作或预先设定为模拟装置与主机的断开连接或连接,REQUEST SENSE命令也能用于提供装置的条件或状态。应该理解的是,能够通过与主机相关的装置的参数或相反表示状态条件或能够表示连接状态的其它命令也可以以适当的改进用在本发明的实施例中。
在一方面中,可以将REQUEST SENSE命令描述为用于从接收到命令的目标装置激发响应的命令,其中响应包括关于目标装置的信息,例如,目标装置是否检测连接于另一装置。
本发明的实施例特别有利,因为可以自动启动连接于主机12的装置14的重枚举,而无需手工干预。因此,对于用户来说重枚举处理是透明的,并且还与事件无缝接合,例如装置的重新分区。此外,本发明的实施例不需要在装置中的额外硬件或电路,否则的话将导致额外的制造成本。本发明的实施例可以应用于利用USB连接的各种存储装置。所述装置的示例包括,但是不限于闪存(通常称为笔式驱动器、存储棒或拇指驱动器)、外部硬驱动器或具有特定应用程序结构的任何其它所述驱动器。
需要理解的是,对于所属领域技术人员来说,考虑到本发明的说明书和实践得到其它实施例是显而易见的。此外,为了说明清楚的目的应用了某一术语,并不限制本发明。应该将上述实施例和特征理解为为示例性的,发明由后附的权利要求来定义。

Claims (20)

1.一种启动枚举的方法,所述方法包括:
当装置保持与主机连接时:
操作主机操作系统(OS)以重新获得所述装置与所述主机中断连接的第一预定状态;
操作所述主机操作系统以重新获得所述装置与所述主机连接的第二预定状态;以及
响应于所述主机操作系统检测到第二预定状态,启动所述装置的枚举。
2.如权利要求1所述的方法,其特征在于,操作所述主机操作系统以重新获得第一预定状态以及操作所述主机操作系统以重新获得第二预定状态都是通过生成命令故障。
3.如权利要求2所述的方法,其特征在于,操作所述主机操作系统以重新获得第一预定状态以及操作所述主机操作系统以重新获得第二预定状态都还包括:
将所述装置设定为仅接收预定命令;
定义所述第一预定状态和所述第二预定状态中的相应一个;以及
向所述装置发出除所述预定命令以外的命令以生成所述命令故障。
4.如权利要求3所述的方法,其特征在于,所述预定命令是REQUEST SENSE命令。
5.如权利要求4所述的方法,其特征在于,除所述预定命令以外的命令是TESTUNIT READY命令。
6.如权利要求3所述的方法,其特征在于,所述预定命令是配置为表示与所述主机相关的装置的连接状态的命令。
7.如权利要求1所述的方法,其特征在于,操作所述主机操作系统以重新获得第一预定状态由所述主机中存储的应用程序响应于预定事件来调用。
8.如权利要求7所述的方法,其特征在于,所述预定事件是对所述装置的重新分区或对所述装置中分区的安全等级的修改。
9.如权利要求1所述的方法,其特征在于,所述装置是通用串行总线装置。
10.一种装置,当连接于主机时,将所述装置设定为提供该装置从所述主机中断连接的第一预定状态和随后所述装置与所述主机连接的第二状态,以启动所述装置的枚举,其中在多个命令故障之后提供所述第一预定状态和所述第二预定状态。
11.如权利要求10所述的装置,其特征在于,所述装置被配置成:通过被配置为仅接收预定命令来生成所述多个命令故障,以及响应于接收除所述预定命令以外的命令来提供命令故障。
12.如权利要求11所述的装置,其特征在于,所述预定命令是REQUEST SENSE命令。
13.如权利要求12所述的装置,其特征在于,除所述预定命令以外的命令是TESTUNIT READY命令。
14.如权利要求11所述的装置,其特征在于,所述预定命令是配置为表示与所述主机相关的装置的连接状态的命令。
15.如权利要求10所述的装置,其特征在于,所述装置是通用串行总线装置。
16.如权利要求10所述的装置,其特征在于,通过多个命令由应用程序配置所述装置,从而提供所述第一预定状态和所述第二预定状态。
17.一种系统,包括:
主机;以及
通用串行总线(USB)装置,当连接到所述主机时,将所述装置配置为向主机操作系统(OS)提供所述装置与所述主机断开连接的第一预定状态和随后所述装置与所述主机连接的第二预定状态,其中操作所述主机以相应于多个命令故障重新获得第一和第二预定状态。
18.如权利要求17所述的系统,其特征在于,将所述装置配置为仅接收预定命令,以及响应于接收除所述预定命令以外的命令来提供所述预定命令。
19.如权利要求18所述的方法,其特征在于,所述预定命令是REQUEST SENSE命令,而所述多个命令是TEST UNIT READY命令。
20.如权利要求19所述的方法,还包括:所述主机中存储的应用程序,所述应用程序用于在所述装置重新分区或修改所述装置中分区的安全等级之后启动所述装置的枚举。
CN200710306679.7A 2007-02-12 2007-10-30 启动装置的重枚举的方法 Expired - Fee Related CN101246428B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/705,065 2007-02-12
US11/705,065 US7721016B2 (en) 2007-02-12 2007-02-12 Method for using host controller to solicit a command failure from target device in order to initiate re-enumeration of the target device

Publications (2)

Publication Number Publication Date
CN101246428A true CN101246428A (zh) 2008-08-20
CN101246428B CN101246428B (zh) 2016-12-14

Family

ID=

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102096646A (zh) * 2011-01-30 2011-06-15 中兴通讯股份有限公司 一种无线通讯终端的启用方法及装置
CN102156648A (zh) * 2011-01-30 2011-08-17 中兴通讯股份有限公司 一种无线通讯终端的启用方法及装置
CN102253904A (zh) * 2011-06-08 2011-11-23 广州视睿电子科技有限公司 一种usb设备识别计算机操作系统的方法及装置
WO2012025048A1 (en) * 2010-08-24 2012-03-01 Mediatek Inc. Method of usb device enumeration including detecting operating system type of usb host
CN103314365A (zh) * 2011-09-29 2013-09-18 赛普拉斯半导体公司 用于启动usb 3.0兼容装置的重列举的方法和物理计算机可读存储媒体
US9804859B2 (en) 2011-09-29 2017-10-31 Cypress Semiconductor Corporation Re-enumeration of USB 3.0 compatible devices
CN114372017A (zh) * 2022-01-04 2022-04-19 中国大恒(集团)有限公司北京图像视觉技术分公司 一种不影响cxp设备正常工作的枚举方法

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102713843B (zh) * 2010-08-24 2014-06-11 联发科技股份有限公司 通用串行总线装置枚举方法及通用串行总线装置
WO2012025048A1 (en) * 2010-08-24 2012-03-01 Mediatek Inc. Method of usb device enumeration including detecting operating system type of usb host
CN102713843A (zh) * 2010-08-24 2012-10-03 联发科技股份有限公司 包含检测usb主机操作系统类型的usb装置枚举方法
CN102156648A (zh) * 2011-01-30 2011-08-17 中兴通讯股份有限公司 一种无线通讯终端的启用方法及装置
CN102096646A (zh) * 2011-01-30 2011-06-15 中兴通讯股份有限公司 一种无线通讯终端的启用方法及装置
CN102253904A (zh) * 2011-06-08 2011-11-23 广州视睿电子科技有限公司 一种usb设备识别计算机操作系统的方法及装置
US9804859B2 (en) 2011-09-29 2017-10-31 Cypress Semiconductor Corporation Re-enumeration of USB 3.0 compatible devices
US9804858B2 (en) 2011-09-29 2017-10-31 Cypress Semiconductor Corporation System for re-enumeration of USB 3.0 compatible peripheral devices
CN103314365A (zh) * 2011-09-29 2013-09-18 赛普拉斯半导体公司 用于启动usb 3.0兼容装置的重列举的方法和物理计算机可读存储媒体
CN103314365B (zh) * 2011-09-29 2017-12-05 赛普拉斯半导体公司 用于启动usb 3.0兼容装置的重列举的方法和物理计算机可读存储媒体
US9864607B2 (en) 2011-09-29 2018-01-09 Cypress Semiconductor Corporation Methods and physical computer-readable storage media for initiating re-enumeration of USB 3.0 compatible devices
CN108008980A (zh) * 2011-09-29 2018-05-08 赛普拉斯半导体公司 启动usb 3.0兼容装置的重列举的方法和设备
CN108008980B (zh) * 2011-09-29 2020-10-09 赛普拉斯半导体公司 启动usb3.0兼容装置的重列举的方法和设备
CN114372017A (zh) * 2022-01-04 2022-04-19 中国大恒(集团)有限公司北京图像视觉技术分公司 一种不影响cxp设备正常工作的枚举方法
CN114372017B (zh) * 2022-01-04 2023-12-12 中国大恒(集团)有限公司北京图像视觉技术分公司 一种不影响cxp设备正常工作的枚举方法

Also Published As

Publication number Publication date
US7721016B2 (en) 2010-05-18
US20080195765A1 (en) 2008-08-14
SG145609A1 (en) 2008-09-29

Similar Documents

Publication Publication Date Title
US8458524B2 (en) Firmware recovery system and method
US9158628B2 (en) Bios failover update with service processor having direct serial peripheral interface (SPI) access
CN103377063B (zh) 从遗留操作系统环境恢复到uefi预启动环境的方法和系统
US9448889B2 (en) BIOS failover update with service processor
US9448808B2 (en) BIOS update with service processor without serial peripheral interface (SPI) access
EP3709149B1 (en) Off-board flash memory
EP2821882B1 (en) Computer device and method for converting working mode of universal serial bus connector of the computer device
JP6850331B2 (ja) マルチノードストレージシステムにおけるファームウェアアップグレード方法
US9806959B2 (en) Baseboard management controller (BMC) to host communication through device independent universal serial bus (USB) interface
CN101373433A (zh) 更新bios的方法以及使用该方法的电脑与系统
KR20170040734A (ko) 업데이트 제어 방법을 갖는 전자 시스템 및 그것의 동작 방법
US10509750B2 (en) System and method for controlling multi-function pins in management controller stack
US20180210783A1 (en) Information processing apparatus, control method of the same, and storage medium
US8176309B2 (en) Boot system has BIOS that reads rescue operating system from memory device via input/output chip based on detecting a temperature of a hard disk
US7721016B2 (en) Method for using host controller to solicit a command failure from target device in order to initiate re-enumeration of the target device
US20140089653A1 (en) Electronic apparatus, method of restoring guid partition table (gpt) and computer-readable recording medium
US7627789B2 (en) Polymorphic management of embedded devices using web interfaces
EP2330509B1 (en) Method and apparatus for an automatic recovery keyboard for slate tablet computers
CN103475514A (zh) 无bmc的节点、集群系统及bios修复和升级方法
CN102253866B (zh) 一种多主机板服务器
US11354109B1 (en) Firmware updates using updated firmware files in a dedicated firmware volume
JP6331505B2 (ja) 起動制御装置、起動制御方法、及び起動制御プログラム
US10768940B2 (en) Restoring a processing unit that has become hung during execution of an option ROM
CN115129384A (zh) 一种电子设备的启动程序的运行方法和电子设备
CN101246428B (zh) 启动装置的重枚举的方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
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: 20161214

Termination date: 20201030