IP Library Granted Patent US 12,406,066
Granted Patent B2
US 12,406,066 · App. 17/875,074 · Granted Sep 2, 2025

Decoupled external storage device booting

Inventors: Vinod Sasidharan (Bangalore, IN); Dattatreya Nayak (Bangalore, IN)
Assignee: Sandisk Technologies, Inc.
G06F21/575G06F21/572
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,406,066
App. No.
17/875,074
Granted
Sep 2, 2025
Kind
B2
Abstract

Storage devices may be utilized in external devices that communicate with host computing devices over various communication ports and protocols. Traditionally, storage devices utilize bootloading data, such as boot ROMS, to start normal operations of the device. However, many storage devices are unable to change or update bootloading data once the device has been manufactured or deployed. Thus, methods, systems, and devices described herein decouple the bootloading process from the storage device and load bootloading data from an external device. The bootloading data can be loaded via a wireless communication connection from an external device, where it can be updated as needed. Once loaded, the bootloader can begin the process of loading firmware and starting the normal operation of the drive over regular wired communication ports. When the bootloading data or firmware cannot be loaded externally, traditional booting methods can be used utilizing previously stored copies of the required data.

Claims (57)

1. A device comprising:

a memory array comprising a plurality of memory devices;

a Universal Asynchronous Receive Transmitter (UART) communication port coupled with a second device; and

a controller, comprising:

a controller memory array;

a security processor configured to:

establish communication with the second device; and

load bootloading data into the controller memory array;

a storage processor configured to:

determine if the device responds to a transmitted bootloader signal request;

revert to one or more traditional boot-up processes if no response is received, wherein the traditional boot-up processes are configured to utilize previously stored bootloading data;

execute the bootloading data in the controller memory array;

load firmware data in the memory array;

execute the firmware data; and

begin communication with the second device via the communication port.

2. The device of claim 1 , wherein the communication port is a wireless communication port.

3. The device of claim 2 , wherein the security processor establishes communication with the second device via the wireless communication port.

4. The device of claim 3 , wherein the UART communicates with the second device via Bluetooth.

5. The device of claim 4 , wherein the second device is a mobile computing device.

6. The device of claim 1 , wherein the security processor further comprises a security memory.

7. The device of claim 6 , wherein the security memory includes logic for establishing wireless communication with the second device.

8. The device of claim 1 , wherein the security processor is further configured to enable the storage processor.

9. The device of claim 8 , wherein the storage processor is enabled upon completion of a security check.

10. The device of claim 1 , wherein the communication port is a universal serial bus (USB) port.

11. A method of booting up a storage device, comprising:

establishing communication with a second device via a Universal Asynchronous Receive Transmitter (UART);

determining if the storage device responds to a transmitted bootloader signal request;

reverting to one or more traditional boot-up processes if no response is received, wherein the traditional boot-up processes are configured to utilize previously stored bootloading data;

loading bootloading data from the second device into a first memory array within the storage device;

executing the loaded bootloading data;

loading firmware data within a second memory array into the first memory array;

executing the loaded firmware data; and

establishing communication with the second device via a wired communication port.

12. The method of claim 11 , wherein the communication is via a Bluetooth connection.

13. The method of claim 12 , wherein the second device is a mobile computing device.

14. The method of claim 11 , wherein the method further comprises saving a copy of the bootloading data within the storage device upon establishing communication with the second device via the wired communication port.

15. The method of claim 14 , wherein the bootloading data is validated upon being loaded.

16. The method of claim 15 , wherein, in response to a failure to validate the bootloading data, a previously saved copy of the bootloading data is loaded.

17. The method of claim 11 , wherein the method further comprises saving a copy of the firmware data within the storage device upon loading the firmware data from the second memory array into the first memory array.

18. The method of claim 17 , wherein, upon a failure to load the firmware data into the second memory array, a previously saved copy of the firmware is loaded executed.

19. A device comprising:

a memory array;

a wired Universal Asynchronous Receive Transmitter (UART) communication port coupled with a second device; and

a controller, comprising:

a controller memory array;

a security processor configured to:

establish a wireless communication connection with the second device;

verify accessibility of bootloading data;

load, via the wireless communication connection, bootloading data into the controller memory array; and

validate the bootloading data; and

a storage processor configured to:

determine if the device responds to a transmitted bootloader signal request;

revert to one or more traditional boot-up processes if no response is received, wherein the traditional boot-up processes are configured to utilize previously stored bootloading data;

execute the bootloading data in the controller memory array;

load firmware data in the controller memory array;

execute the firmware data; and

begin communication with the second device via the wired communication port.

Assignments (8)
PARTIAL RELEASE OF SECURITY INTERESTS Recorded Apr 25, 2025
From: JPMORGAN CHASE BANK, N.A., AS AGENT
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 071382/0001 →
SECURITY AGREEMENT Recorded Apr 25, 2025
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 071050/0001 →
PATENT COLLATERAL AGREEMENT Recorded Aug 23, 2024
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS THE AGENT
Reel/Frame 068762/0494 →
CHANGE OF NAME Recorded Jun 27, 2024
From: SANDISK TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067982/0032 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 29, 2024
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067567/0682 →
PATENT COLLATERAL AGREEMENT - A&R LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 064715/0001 →
PATENT COLLATERAL AGREEMENT - DDTL LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 067045/0156 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 27, 2022
From: SASIDHARAN, VINOD; NAYAK, DATTATREYA
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 060646/0481 →