IP Library Granted Patent US 11,029,868
Granted Patent B1
US 11,029,868 · App. 16/775,386 · Granted Jun 8, 2021

Initialization code/data memory mapping system

Inventors: Wei Liu (Austin, TX); Po-Yu Cheng (Tainan, TW)
Assignee: Dell Products L.P.
G06F3/0632G06F3/061G06F3/0679G06F9/30098G06F9/4401G06F13/4282
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 11,029,868
App. No.
16/775,386
Filed
Jan 29, 2020
Granted
Jun 8, 2021
Kind
B1
Art Unit
2184
USPC
711/154
Abstract

A initialization code/data memory mapping system includes a processing system, memory device(s) storing initialization code and initialization data, and a main memory system. The processing system performs first MMIO read operations to access the initialization code stored in the memory device(s) that is mapped to an initialization memory space in order to provide an initialization engine, and uses it to copy the initialization code from the memory device(s) to the main memory system. The processing system then accesses the initialization code stored in the main memory system in order to provide the initialization engine, and uses it to map the initialization data stored in the memory device(s) to the initialization memory space. The processing system then performs second MMIO read operations to access the initialization data stored in the memory device(s) that is mapped to the initialization memory space for use by the initialization engine.

Claims (43)

1. An initialization code/data memory mapping system, comprising:

at least one memory device storing initialization code and initialization data;

a main memory system; and

a processing system that is coupled to the at least one memory device and the main memory system, wherein the processing system is configured to:

access, via first Memory Mapped Input/Output (MMIO) read operations, the initialization code stored in the at least one memory device that is mapped to an initialization memory space in order to provide an initialization engine;

copy, using the initialization engine, the initialization code from the at least one memory device to the main memory system;

access the initialization code stored in the main memory system in order to provide the initialization engine;

map, using the initialization engine provided via the initialization code stored in the main memory system, the initialization data stored in the at least one memory device to the initialization memory space, wherein the mapping the initialization data stored in the at least one memory device to the initialization memory space hides the initialization code in a runtime environment that is provided following completion of initialization operations by unmapping the initialization code stored in the at least one memory device from the initialization memory space; and

access, via second MMIO read operations, the initialization data stored in the at least one memory device that is mapped to the initialization memory space for use by the initialization engine.

2. The system of claim 1 , wherein the at least one memory device includes a first memory device that stores the initialization code, and a second memory device that stores the initialization data.

3. The system of claim 2 , wherein the first memory device is provided by a Serial Peripheral Interface (SPI) flash memory device, and wherein the second memory device is provided by a second SPI flash memory device.

4. The system of claim 1 , further comprising:

a chipset that is included in the processing system and that has at least one register, wherein the register is configured to store first information to map the initialization code stored in the at least one memory device to the initialization memory space, and second information to map the initialization data stored in the at least one memory device to the initialization memory space.

5. The system of claim 4 , further comprising:

a Central Processing Unit (CPU) that is coupled to the chipset and configured to perform the first MMIO read operations, provide the initialization engine, and perform the second MMIO read operations.

6. An Information Handling System (IHS), comprising:

a processing system that is configured to:

access, via first Memory Mapped Input/Output (MMIO) read operations, initialization code stored in at least one memory device that is mapped to an initialization memory space in order to provide an initialization engine;

copy, using the initialization engine, the initialization code from the at least one memory device to a main memory system;

access the initialization code stored in the main memory system in order to provide the initialization engine;

map, using the initialization engine provided via the initialization code stored in the main memory system, initialization data stored in the at least one memory device to the initialization memory space, wherein the mapping the initialization data stored in the at least one memory device to the initialization memory space hides the initialization code in a runtime environment that is provided following completion of initialization operations by unmapping the initialization code stored in the at least one memory device from the initialization memory space; and

access, via second MMIO read operations, the initialization data stored in the at least one memory device that is mapped to the initialization memory space for use by the initialization engine.

7. The IHS of claim 6 , wherein the at least one memory device includes a first memory device that stores the initialization code, and a second memory device that stores the initialization data.

8. The IHS of claim 7 , wherein the first memory device is provided by a Serial Peripheral Interface (SPI) flash memory device, and wherein the second memory device is provided by a second SPI flash memory device.

9. The IHS of claim 6 , further comprising:

a chipset that is included in the processing system and that has at least one register, wherein the register is configured to store first information to map the initialization code stored in the at least one memory device to the initialization memory space, and second information to map the initialization data stored in the at least one memory device to the initialization memory space.

10. The IHS of claim 9 , further comprising:

a Central Processing Unit (CPU) that is coupled to the chipset and configured to perform the first MMIO read operations, provide the initialization engine, and perform the second MMIO read operations.

11. A method for mapping initialization code memory and initialization data memory, comprising:

accessing, by a processing system via first Memory Mapped Input/Output (MMIO) read operations, initialization code stored in at least one memory device that is mapped to an initialization memory space in order to provide an initialization engine;

copying, by the processing system using the initialization engine, the initialization code from the at least one memory device to a main memory system;

accessing, by the processing system, the initialization code stored in the main memory system in order to provide the initialization engine;

mapping, by the processing system using the initialization engine provided via the initialization code stored in the main memory system, the initialization data stored in the at least one memory device to the initialization memory space, wherein the mapping the initialization data stored in the at least one memory device to the initialization memory space hides the initialization code in a runtime environment that is provided following completion of initialization operations by unmapping the initialization code stored in the at least one memory device from the initialization memory space; and

accessing, by the processing system via second MMIO read operations, the initialization data stored in the at least one memory device that is mapped to the initialization memory space for use by the initialization engine.

12. The method of claim 11 , wherein the at least one memory device includes a first memory device that stores the initialization code, and a second memory device that stores the initialization data.

13. The method of claim 12 , wherein the first memory device is provided by a Serial Peripheral Interface (SPI) flash memory device, and wherein the second memory device is provided by a second SPI flash memory device.

14. The method of claim 11 , further comprising:

storing, in at least one register provided in a chipset that is included in the processing system, first information to map the initialization code stored in the at least one memory device to the initialization memory space; and

storing, in the at least one register provided in the chipset that is included in the processing system, second information to map the initialization data stored in the at least one memory device to the initialization memory space.

15. The method of claim 14 , further comprising:

performing, by a Central Processing Unit (CPU) that is included in the processing system and coupled to the chipset, the first MMIO read operations;

providing, by the CPU, the initialization engine; and

performing, by the CPU, the second MMIO read operations.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052216/0758) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060438/0680 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053311/0169) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 060438/0742 →
RELEASE OF SECURITY INTEREST AF REEL 052243 FRAME 0773 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0152 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 053311/0169 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 26, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 052243/0773 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Mar 24, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052216/0758 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 29, 2020
From: LIU, WEI; CHENG, PO-YU
To: DELL PRODUCTS L.P.
Reel/Frame 051654/0221 →