CN101484878A - A method to use global variables for Pre-EFI initialization modules in EFI-based firmware - Google Patents

A method to use global variables for Pre-EFI initialization modules in EFI-based firmware Download PDF

Info

Publication number
CN101484878A
CN101484878A CNA2006800553499A CN200680055349A CN101484878A CN 101484878 A CN101484878 A CN 101484878A CN A2006800553499 A CNA2006800553499 A CN A2006800553499A CN 200680055349 A CN200680055349 A CN 200680055349A CN 101484878 A CN101484878 A CN 101484878A
Authority
CN
China
Prior art keywords
reflection
revision
section
round
address
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
CNA2006800553499A
Other languages
Chinese (zh)
Other versions
CN101484878B (en
Inventor
X·马
H·邵
Z·刘
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN101484878A publication Critical patent/CN101484878A/en
Application granted granted Critical
Publication of CN101484878B publication Critical patent/CN101484878B/en
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
    • 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/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Read Only Memory (AREA)

Abstract

A method for enabling global variable read/write operations in a pre-EFI Initialization (PEI). The method includes the generation of a driver image. The driver image includes at least a code (i.e., text) section, a data section, and a relocation section. A first round fixing on the driver image is performed to fix all address data items with absolute non-volatile memory addresses. A second round fixing on the driver image is performed to fix all address data items fixed in the first round fixing that point to the data section with absolute Cache-As-RAM (Cache-As-Random Access Memory) addresses. The fixed driver image is burned into a non-volatile memory device. Upon booting the non-volatile memory device, the data section of the burned driver image is copied to a Cache-As-RAM (CAR), wherein execution of executable code in the text section enables static and global variables to have read/write access from the CAR.

Description

For use the method for global variable based on the pre-EFI initialization module in the firmware of EFI
Technical field
The present invention summarily relates to firmware.More specifically, use the method for global variable during the pre-EFI that the present invention relates in the platform innovation framework that is used for EFI (pre-Extensible Firmware Interface) initial phase.
Background technology
By the Santa Clara's that is positioned at CA
Figure A200680055349D0007102517QIETU
The platform innovation framework that is used for EFI (Extensible Firmware Interface) of company's exploitation is the architecture interface with one group of stalwartness of C realization, and its design is in order to carry out from power on to the required the whole series operation of the platform initialization that control is transferred to operating system.The platform innovation framework (being also referred to as " framework ") that will be used for EFI is divided into two Main Stage: pre-EFI initialization (PEI) stage and driving execution environment (DXE) stage.The PEI stage is carried out smallest processor, chipset and the platform configuration of supporting that storer is found.The DXE stage advances the PEI stage by the initialization of finishing platform, processor and chipset devices.
There is not available storer in the PEI stage.Though there is not available storer, can serve as RAM (random access storage device) by temporary transient initialization processor high-speed cache, therefore can be stored in heap and stack in the high-speed cache.This provides the possibility of moving the module of high-level programming language compiling in the PEI stage.
Known limitation in the framework is, PEI in the stage module global variable as read-only variable, promptly can not revise global variable.Because unavailable, be placed in the flash memory to all data (data) and the no reorientation of code (code) section at PEI stage storer.
Well known fact is, easy modification the data of the data in the flash memory in other conventional memory devices.Though the PEI code can call the write access to the global variable in the data segment of flash memory, can not revise global variable.This restriction provides several shortcomings of PEI module.The first, hindered the ability of sharing module global variable between function.All variablees that need between function to share must transmit back and forth by heap or stack.This can cause the increase greatly of code length.Same because the PEI code moves in flash memory, so can not compress.The second, it reduces startability.The increase of code needs the more processor cycle to decipher and move.In addition, do not enable, cause operational efficiency slow, particularly because to the frequent global variable access of flash memory at this phase process device high-speed cache.The 3rd, it stops firmware development person to develop and test their code like a cork.
Therefore, need make the method that in for pre-EFI initialization (PEI) environment, can support global variable based on the firmware of EFI.Also need to make the method that during the PEI stage, can revise global variable.
Description of drawings
In this article in conjunction with and the accompanying drawing that forms the part of instructions with describing embodiments of the invention are shown, but also be used to illustrate principle of the present invention and make those skilled in the relevant art can realize and use the present invention.In the drawings, the unified expression of same reference number identical, on the function similar to/or structure on similar element.The figure that element occurs for the first time is by the leftmost numeral of corresponding reference number.
Fig. 1 according to the embodiment of the invention, the figure of PE32 (portable can move the 32) reflection of demonstration is shown.
Fig. 2 according to the embodiment of the invention, describe be used to revise the PE32 reflection so that pre-EFI initialization (PEI) can the read global variable during the stage the process flow diagram of demonstration methods.
Fig. 3 according to the embodiment of the invention, illustrate and make during pre-EFI initial phase the block diagram of exemplary modification of PE32 reflection that can the read global variable.
Fig. 4 is the process flow diagram according to embodiments of the invention, first round revision (fix) method of describing to demonstrate.
Fig. 5 is according to embodiments of the invention, second process flow diagram of taking turns the revision method describing to demonstrate.
Embodiment
Though described the present invention with reference to the exemplary embodiment of application-specific in this article, should understand and the invention is not restricted to this.The technician who reads the relevant field of instruction provided herein will be familiar with its scope interior other modification, application and embodiment, and the embodiments of the invention other field that will have remarkable effectiveness wherein.
Mention that in instructions " embodiment " of the present invention, " embodiment " or " another embodiment " mean that specific feature, structure or the characteristic described in conjunction with the embodiments are contained among at least one embodiment of the present invention.Therefore, run through the appearance that instructions comes across " in one embodiment " or " in an embodiment " phrase everywhere and might not all indicate identical embodiment.
Embodiments of the invention are at the method that is used for making it possible at pre-EFI initial phase modification (being read) global variable.It is by realizing the part of processor high speed buffer memory as being called as " as the high-speed cache (Cache As RAM) of RAM " use pattern (CAR).By the data segment that drives reflection is reoriented to the CAR zone from flash memory device, can be as in RAM, freely revising global variable.
Embodiments of the invention are described as realizing in flash memory device during the stage for the pre-EFI initialization (PEI) based on the firmware of EFI.For utilize PE32 (portable can move 32) image format based on the PEI stage of the firmware of EFI.Those skilled in the relevant art will recognize the invention is not restricted to flash memory device, based on firmware or the PE32 image format of EFI.The present invention also can use other software/firmware environments (wherein global variable is only limited to read-only access) that needs other image format to realize in other non-volatile memory device.
Support standard P E32 (portable can move 32) image format based on the firmware of EFI.The PE32 image format is organized code, data and other information, for example relocation information by section.Section closely puts together successively.In case loader loads reflection, the image layout in the storer is almost the same with its file map.What make an exception is, because the alignment requirement between the section has some bubbles (bubble) in the memory mapping layout.Usually, if preferably do not linking loaded segment on the plot, loader will be revised (fix up) its memory mapping.
Fig. 1 is the figure of the PE32 that demonstration is shown (portable can move the 32) reflection 100 according to the embodiment of the invention.PE reflection 100 is also referred to as in this article and can moves driver module 100, comprises .text section 102 .data section 104 and .relocation (.reloc) section 106.In one embodiment .text section 102 also can be described as .code section 102.In an embodiment, driver module 100 be can move and .text section 102 .data section 104 and .reloc section 106 are not limited to.In an embodiment, can move driver module 100 and also can comprise more section, for example .rdata section .rsrc section or the like.As noted, the requirement of the alignment requirement between the section closely puts together section 102,104 and 106 successively.
.text but section 102 comprises about moving the operation code of driver module 100..data section 104 is included in .text section 102 run durations with the data of using..reloc section 106 provides the information that will use the address data items of absolute flash address renewal about all.
The PE32 reflection is correct to be started in order to make, and section 102,104 and 106 must be positioned in the continuous virtual or physical memory space.If enable paging, section 102,104 and 106 need be arranged in continuous virtual memory space.If do not require paging, then section 102,104 and 106 need be arranged in continuous physical storage.Use the EFI firmware, paging is forbidden all the time.Therefore, section 102,104 and 106 is positioned in the continuous physical memory space.Prevent from like this section 102,104 and 106 that can move driver module 100 is dispersed in the discontinuous memory range.To load at different plots if can move module, all sections (102,104 and 106) that must be able to move in the driver module 100 are reoriented to new plot together.Only reorientation code segment (be also referred to as " text (text) section ") is to a plot and the reorientation data segment is unacceptable to another discontinuous new plot.
In order to reach the target that can revise global variable in the PEI stage, the PE32 section (102,104 and 106) that must be able to move driver module 100 is dispersed in the different memory ranges.For example .text section 102 must be kept in the flash memory space and must .data section 104 storage is static and global variable be reoriented to CAR.The spatial dimension of flash memory and CAR is different and discontinuous.
Be the true(-)running of guaranteeing to move driver module 100 when .data section 104 moved on to CAR when .text section 102 and .reloc section 106 being kept in the flash memory, before being burnt to code in the flash memory, at first use the build tool to repair (patch) .text section 102 and .data section 104, because in case code is arranged in flash memory, code must move in position, without any correction or reorientation.Therefore, the present invention requires first round revision, and it uses the flash base correction reflection of relocation information in appointment.The first round is revised and allows the directly all codes of operation in flash memory, and all simultaneously data accesses also occur in the flash memory, therefore block the write access to global variable.In order to make it possible to moving the write access of all global variables in the driver module 100, need second to take turns revision, make all codes of visit .data section 104 will upgrade with the .data section 104 of operation, because .data section 104 will copy to CAR from flash memory before operation code from CAR with all related datas of pointing to field (field) in the .data section 104.
Fig. 2 according to the embodiment of the invention, describe to be used to revise the PE32 reflection so that pre-EFI initialization (PEI) can the read global variable during the stage flow process Figure 200 of demonstration methods.Invention is not limited to the embodiment that this paper describes with reference to flow process Figure 200.On the contrary, read instruction provided herein after, those skilled in the relevant art will understand that other functional flow diagram is within the scope of the present invention.Method starts from frame 202, and this prescribing method proceeds to frame 204 immediately.
In frame 204, generation can move driver module 100.Can move driver module 100 and comprise global variable, when in flash memory device, moving, only make it possible to the read access global variable.Method proceeds to frame 206 then.
In frame 206, execution can move the first round revision of driver module 100.Further describe below with reference to Fig. 4, first round revision is revised all address data items with absolute flash address.Method proceeds to frame 208 then.
In frame 208, execution can move second of driver module 100 and take turns revision.Further describe below with reference to Fig. 5, second takes turns revision takes turns correction to all address data items execution second revision in the first round revision, that point to the .data section 104 that can move driver module 100.Second takes turns correction upgrades these data addresses with absolute CAR address.Second take turns revision during, renewable .text section 102 and .data section 104 are with absolute CAR address reflection data address.Finish second take turns the revision final EFI firmware image (final moved driver module) is provided, it now has been ready to be burnt in the flash memory.Final EFI firmware image comprises necessary absolute CAR address, makes global variable can have the read/write authority from CAR.Method proceeds to frame 210 then.
In frame 210, final EFI firmware image (finally can move driver module) is burnt in the flash memory.Method proceeds to frame 212 then.
When starting flash memory, firmware loader can copy to CAR from flash memory with .data section 104, transfers control to the reflection entrance then to be used for operation.This make can move that driver module 100 can normally move in flash memory and in CAR storage and operation .data section 104.Now during the PEI stage, but static and global variable is a free access.In other words, now in CAR global variable have read.
Fig. 3 according to the embodiment of the invention, illustrate make pre-EFI initialization (PEI) can the read global variable during the stage the block diagram of exemplary modification of PE32 reflection (can move driver module) 100.That shown in Figure 3 is flash memory 302, flash memory 302 ' and CAR 304 (it is the part of aforesaid processor high speed buffer memory).
Flash memory 302 comprises can move driver module 100, and it comprises .text section 102 .data section 104 and .reloc section 106.In the .text of flash memory 302 section 102 and .data section 104, first round revision has been shown.Based on .reloc section 106, in first round revision, revise all address data items with absolute flash address.In flash memory 302 ', illustrated second and taken turns revision.Take turns in the revision second, will point to all related datas of field in the .data section 104 with the revision of absolute CAR address.
Fig. 4 is the process flow diagram 400 according to embodiments of the invention, the first round revision method describing to demonstrate.Invention is not limited to the embodiment that this paper reference flow sheet 400 is described.On the contrary, read instruction provided herein after, those skilled in the relevant art will understand that other functional flow diagram is within the scope of the present invention.Method starts from frame 402, and wherein method proceeds to frame 404 immediately.
For PE32 reflection, should revise after .reloc section 106 records load in can moving driver module 100 have a few.Usually .reloc section 106 provides relative virtual address (RVA) information.RVA is the skew that relatively reflection is loaded into the base address in the storer.According to RVA, in can moving driver module 100, be identified in all addresses to be repaired during the first round revision.The flash base of the appointment that will be used to load by addition is upgraded each address to be repaired.
In frame 404, will analyze the point in the .reloc section 106.Method proceeds to frame 406 then.
34-is updated in the address date at the some place of identification in the frame 404 with absolute flash address in frame 406.Method proceeds to decision box 408 then.
In decision box 408, determine in .reloc section 106, whether to have the more point that needs revision.If the more point that needs revision is arranged in .reloc section 106, then method is got back to frame 404 to analyze next point.
Get back to decision box 408, if there is not more point to be analyzed in .reloc section 106, then method proceeds to frame 410, and first round revision herein finishes.
The first round, revision was also shown in the flash memory 302 of Fig. 3.Shown in the flash memory 302 of Fig. 3 is example points, the Data Position B in the .data section 104 and absolute flash address Ma in the .reloc section 106 and data code position A and C and the absolute flash address Mc in Mb and the .text section 102.Ma is the absolute flash address that is used for code position A.Mb is the absolute flash address that is used for Data Position B.Mc is the absolute flash address that is used for code position C.
Demonstration pilot project Ra, Rb and Rc are shown in .reloc section 106 highlightedly.Ra comprises the relocation information of pointing to code position A (being arranged in .text section 102).Upgrade the address date at A place, position with the absolute flash address Ma that is arranged in .data section 104.Rb comprises the relocation information of pointing to Data Position B (being arranged in .data section 104).Upgrade the address date at B place, position with the absolute flash address Mb that is arranged in .data section 104.Last Rc comprises the relocation information of pointing to code position C (being arranged in .text section 102).Upgrade the address date at C place, position with the absolute flash address Mc that is arranged in .text section 102.
Flash memory 302 ' illustrates second and takes turns the revision method.Flash memory 302 ' shows .reloc section 106 .data section 104 ' and the .text section 102 ' of outstanding example points Ra, Rb and Rc..data section 104 ' comprises Data Position B and absolute CAR address Mb ' and Ma '..text section 102 ' comprises position A and C and absolute flash address Mc.Note, in flash memory 302 ' (.data section 102 '), revise the .text section 102 of flash memory 302 to adapt to the address change of Ma '.
If in .data section 104, find the address, for example Mb of flash memory 302 and Ma, positive access static of code or global variable in this expression .text section 102.Because the .data section 104 ' of flash memory 302 ' will copy to CAR 304, so must upgrade these addresses (Mb and Ma) with the absolute CAR address of reflection as shown in the .data section 104 ' in the flash memory 302 ' (Mb ' and Ma ').Therefore, need further repair by the gap between addition specified flash plot and the CAR plot.For other address outside the .data section 104 ' of .data section 104 that is positioned at flash memory 302 or flash memory 302 ' (for example, the Mc that in .text section 102 and .text section 102 ', finds), do not need further repairing, because these addresses will be retained in the flash memory.In other words, will in flash memory, move .text section 102.
By checking the address of having revised in the first round revision, be easy to judge whether the address is arranged in data section 104.To be redirected to the CAR304 in the .data section 104 ' to the all-access of the flash memory address in the .data section 104.Flash memory address in being redirected .data section 104 copies to CAR 304 with .data section 104 ' from flash memory 302 ' with after obtaining .data section 104 '.At this moment, the moved driver module 100 with the .data section 104 ' of storing in CAR zone 304 and operating can normally move.This has improved startability significantly, because all are static and global variable access occurs among the CAR 304 rather than in the flash memory after the reorientation.Therefore, by to pointing to the other repairing of address applications of .data section 104, might from whole image layout, separately and it be redirected to the address of any other appointment after the first round revision to the .data section.By .data section 104 ' is navigated among the CAR 304, at PEI in the stage, can move driver module 100 and can have write access global variable.
As shown in flash memory 302 ', with the previous address date of having revised (Mb) at absolute CAR address Mb ' renewal B place, position, and the previous address date of having revised (Ma) that upgrades A place, position with absolute CAR address Ma '.Because the address date of having revised (Mc) at position C place is arranged in .text section 102, and the .text section will be retained in the flash memory, therefore will not upgrade the address date of having revised (Mc) at C place, position.
CAR 304 is parts of processor high speed buffer memory, and wherein .data section 104 ' is replicated.As implied above, after flash memory space, firmware loader can copy to CAR from flash memory with .data section 104 ' with firmware burning..data section 104 ' is transferred to CAR 304 and is made the static and global variable of PEI have read by CAR 304.
Fig. 5 is according to embodiments of the invention, second process flow diagram 500 of taking turns the revision method describing to demonstrate.The invention is not restricted to the embodiment that this paper describes with reference to process flow diagram 500.On the contrary, read instruction provided herein after, those skilled in the relevant art will understand that other functional flow diagram is within the scope of the present invention.Method starts from frame 502, and wherein method proceeds to decision box 504 immediately.
In decision box 504, determine whether the address data items of revision in the first round revision points to .data section 104.If there is the address data items of revision in the first round revision to point to .data section 104, in frame 506, select this address data item, method proceeds to frame 508 then.If there is not the address data items of revision to point to .data section 104 in the first round revision, then method proceeds to frame 512, and this prescribing method finishes.
In frame 508, upgrade the address data items of selecting in the frame 506 with absolute CAR address.Method proceeds to decision box 510 then.
In decision box 510, determine whether to have in the first round revision data item of location more revision, that point to .data section 104.If the data item of location more revision, that point to .data section 104 is arranged in the first round revision, then method turns back to frame 506 to select the next address data item with revision.
Get back to decision box 510, if determine the data item of location more revision, that do not point to .data section 104 in first round revision, then method proceeds to frame 512, and this prescribing method finishes.
Use hardware, software or its combination can realize embodiments of the invention, and can be implemented in one or more computer systems or other the disposal system.Technology described herein can find applicability in any calculating, consumer electronics or processing environment.Realize in the program that technology can be moved that programmable machine for example moves or stationary computer on programmable machine, personal digital assistant, set-top box, cell phone and pager, consumer electronic devices (comprises DVD (digital video disk) player, personal video record, personal video player, satellite receiver, stereophone receiver, wired television receiver) and can comprise processor, storage medium (comprising volatile memory and nonvolatile memory and/or memory element), the electronic installation of other of at least one input media and one or more output units.Be applied to use the data of input media input to carry out described function and to generate output information program code.Output information can be applicable to one or more output units.Those skilled in the art may appreciate that the present invention can comprise multicomputer system, small-size computer, mainframe computer, independent consumer electronic devices and like that with multiple systems configuration practice.Present invention can also be practiced in the distributed computing environment, wherein its task or part can be by carrying out by the teleprocessing device of communication network link.
Each program can realize communicating by letter with disposal system with senior procedure-oriented programming language or object oriented programming languages.But if necessary, also available assembly language of program or machine language realize.Under any circumstance, language can be compiling or explain.
But making with the universal or special disposal system of these instruction programmings, the service routine instruction carries out operation described herein.Alternatively, can come executable operations by the specific nextport hardware component NextPort of the firmware hardwired logic that contains executable operations or any combination of computer module of having programmed and self-defining nextport hardware component NextPort.Can provide method described herein as computer program, its can comprise machine-accessible medium (have storage thereon, can be used for the programming of disposal system or other electronic installation to carry out the instruction of these methods).Word used herein " medium of machine-accessible " will comprise can be stored or encode by the instruction sequence of machine run and make machine carry out any medium of any one method described herein.Word " medium of machine-accessible " therefore will be including but not limited to the carrier wave of solid-state memory, CD and disk and encoded data signal.In addition, it is common with a kind of form or another kind of form (for example program, process, process, application, module, logic or the like) software being expressed as the execution action or bearing results in this area.This type of is expressed and only states by the disposal system operating software so that the brief mode that processor is carried out action or born results.
Though below described a plurality of embodiment of the present invention, should understand them only by way of example and unrestricted the proposition.It will be apparent to one skilled in the art that under the prerequisite of defined essence of an invention and scope in not breaking away from appended claim, can make multiple modification in form and details.Therefore, range of the present invention and scope should not be subject to any above-mentioned exemplary embodiment, and should limit according to claims and equivalent thereof.

Claims (26)

  1. One kind be used for making pre-EFI initialization (PEI) can the read/write operation global variable method, comprising:
    Generate and drive reflection, described driving reflection comprises code segment, data segment and reorientation section;
    On described driving reflection, carry out first round revision to revise all address data items with absolute non-volatile memory addresses;
    Take turns revision to revise all address data items that revise, that point to described data segment in described first round revision with absolute high-speed cache (as the high-speed cache of random access storage device) address in execution second on the described driving reflection as RAM; And
    The driving reflection of being revised is burnt in the non-volatile memory device, wherein when starting described non-volatile memory device, the described data segment of the driving of institute's burning reflection is copied to high-speed cache (CAR) as RAM, but the operation of the operation code in the wherein said code segment makes static and global variable can have read from described CAR.
  2. 2. the method for claim 1, wherein said driving reflection comprises 32 (PE32) reflection that portable can move.
  3. 3. the method for claim 1 is wherein moved described driving reflection in described nonvolatile memory.
  4. 4. the method for claim 1, wherein said nonvolatile memory comprises the flash memory storage apparatus.
  5. 5. the method for claim 1, wherein carry out first round revision and comprise:
    Analyze each point in the described reorientation section; And
    With described absolute non-volatile address upgrade with described reorientation section in each put each related address data items.
  6. 6. the method for claim 1 is wherein carried out second and is taken turns revision, comprising:
    Determine whether the address data items of revision in described first round revision points to described data segment; And
    If the address data items of revision is pointed to described data segment in described first round revision, then upgrade the address data items of being revised with described absolute CAR address.
  7. 7. method that is used for using in the pre-EFI stage global variable comprises:
    Data division and the code section and the reorientation that drive reflection are partly separated;
    Described data division is copied to zone as the processor high speed buffer memory of RAM (random access storage device); And
    The reflection entrance that transfers control to described driving reflection is to be used for the operation of described driving reflection, wherein from the described described global variable of processor high speed cache access as RAM.
  8. 8. method as claimed in claim 7, wherein before the described code section of described data division and described driving reflection and described reorientation partly separate, carry out that the first round revises and second take turns revision to repair described code section and the code of being repaired is burnt in the nonvolatile memory.
  9. 9. method as claimed in claim 8, wherein nonvolatile memory comprises the flash memory storage apparatus.
  10. 10. method as claimed in claim 8 is wherein carried out first round revision and is comprised that using described reorientation part to revise described driving at the nonvolatile memory plot of appointment videos.
  11. 11. method as claimed in claim 8, wherein carrying out second takes turns revision and comprises: upgrade in the described code section all codes of the described data division of visit and all related datas of pointing to described data division, and described with the described code portions time-sharing operation of the described driving reflection of operation in described nonvolatile memory as the data in the processor high speed buffer memory of RAM.
  12. 12. one kind is used to make and comprises the mechanism that can use global variable in pre-EFI initialization (PEI) during the stage:
    Can move and drive reflection, comprise code section, data division and reorientation part, but described code section comprises operation code, but described data division comprises described operation code with the data of using, and described reorientation partly comprises the information about all address data items that will upgrade with absolute non-volatile memory addresses during the described first round of moving the driving reflection revises;
    Nonvolatile memory is stored and is moved described the operation and drives reflection; And
    The processor high speed buffer memory, the zone of wherein said processor high speed buffer memory will be as the high-speed cache (CAR) as RAM (random access storage device), after revision is taken turns in the described first round revision and second that drives reflection the described described data division that drives reflection that moves is copied to described CAR described the operation, so that can in described CAR, operate static state and global variable at the described run duration that drives reflection that moves.
  13. 13. mechanism as claimed in claim 12, wherein after revision is taken turns in the described described first round revision and described second that moves the driving reflection, described move the operation that drives reflection before, will describedly move that driving videos is burnt on the described nonvolatile memory.
  14. 14. mechanism as claimed in claim 12, wherein said nonvolatile memory comprises the flash memory storage apparatus.
  15. 15. mechanism as claimed in claim 12, wherein said described second of the driving reflection that moves is taken turns all codes of the described data division of visit in the described code section of revision renewal and all related datas of pointing to described data division, with the data among the described CAR of described code portions time-sharing operation that moves described driving reflection in described nonvolatile memory.
  16. 16. article comprise: have the storage medium of a plurality of machine-accessible instructions, wherein when the described instruction of processor operation, described instruction is provided for generating and drives reflection, and described driving reflection comprises code segment, data segment and reorientation section;
    On described driving reflection, carry out first round revision to revise all address data items with absolute non-volatile memory addresses;
    Take turns revision to revise all address data items that revise, that point to described data segment in described first round revision with absolute high-speed cache (as the high-speed cache of random access storage device) address in execution second on the described driving reflection as RAM; And
    The driving reflection of being revised is burnt in the non-volatile memory device, wherein when starting described non-volatile memory device, the described data segment of the driving of institute's burning reflection is copied to high-speed cache (CAR) as RAM, but wherein static the and global variable of the runtime chien shih of the operation code in described code segment can have read from described CAR.
  17. 17. article as claimed in claim 16, wherein said driving reflection comprises 32 (PE32) reflection that portable can move.
  18. 18. article as claimed in claim 16, the wherein described driving reflection of operation in described nonvolatile memory.
  19. 19. article as claimed in claim 16, wherein said nonvolatile memory comprises the flash memory storage apparatus.
  20. 20. article as claimed in claim 16, the instruction that wherein is used to carry out first round revision comprises the instruction that is used for following operation:
    Analyze each point in the described reorientation section; And
    With described absolute non-volatile address upgrade with described reorientation section in each put each related address data items.
  21. 21. article as claimed in claim 16 wherein are used to carry out second instruction of taking turns revision and comprise the instruction that is used for following operation:
    Determine whether the address data items of revision in described first round revision points to described data segment; And
    If the address data items of revision is pointed to described data segment in described first round revision, then upgrade the address data items of being revised with described absolute CAR address.
  22. 22. article comprise: have the storage medium of a plurality of machine-accessible instructions, wherein when the described instruction of processor operation, described instruction is provided for data division and the code section and the reorientation that drive reflection are partly separated;
    Described data division is copied to zone as the processor high speed buffer memory of RAM (random access storage device); And
    The reflection entrance that transfers control to described driving reflection is to be used for the operation of described driving reflection, wherein from described processor high speed cache access global variable as RAM.
  23. 23. article as claimed in claim 22, wherein before instruction is used for the described code section of described data division and described driving reflection and described reorientation partly separate, instruction is used for carrying out that the first round revises and second take turns revision to repair described code section and the code of being repaired is burnt to nonvolatile memory.
  24. 24. article as claimed in claim 23, wherein nonvolatile memory comprises the flash memory storage apparatus.
  25. 25. comprising, article as claimed in claim 23, the instruction that wherein is used to carry out first round revision are used to use described reorientation part to revise the instruction of described driving reflection at the nonvolatile memory plot of appointment.
  26. 26. article as claimed in claim 23, wherein be used for carrying out second instruction of taking turns revision and comprise the instruction that is used for following operation: upgrade all codes of the described data division of described code section visit and all related datas of pointing to described data division, described with the described code portions time-sharing operation of the described driving reflection of operation in described nonvolatile memory as the data in the processor high speed buffer memory of RAM.
CN2006800553499A 2006-07-18 2006-07-18 A method to use global variables for pre-EFI initialization modules in EFI-based firmware Expired - Fee Related CN101484878B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2006/001746 WO2008014635A1 (en) 2006-07-18 2006-07-18 A method to use global variables for pre-efi initialization modules in efi-based firmware

Publications (2)

Publication Number Publication Date
CN101484878A true CN101484878A (en) 2009-07-15
CN101484878B CN101484878B (en) 2012-11-28

Family

ID=38996845

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2006800553499A Expired - Fee Related CN101484878B (en) 2006-07-18 2006-07-18 A method to use global variables for pre-EFI initialization modules in EFI-based firmware

Country Status (5)

Country Link
EP (1) EP2047364A4 (en)
JP (1) JP4961019B2 (en)
KR (1) KR101036675B1 (en)
CN (1) CN101484878B (en)
WO (1) WO2008014635A1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105446842A (en) * 2015-12-03 2016-03-30 南京南瑞继保电气有限公司 ADI DSP code online monitoring method
CN107450953A (en) * 2017-08-01 2017-12-08 合肥联宝信息技术有限公司 A kind of renewal BIOS method and device
CN110990072A (en) * 2019-11-08 2020-04-10 杭州智控网络有限公司 Price tag screen multi-drive dynamic loading method

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8463998B1 (en) 2002-12-13 2013-06-11 Open Text S.A. System and method for managing page variations in a page delivery cache
CN101599043B (en) * 2008-06-02 2013-07-17 松下电器产业株式会社 Method and system for tracking correlation information of document
CN105630559B (en) * 2015-12-25 2018-12-28 广州视源电子科技股份有限公司 Board firmware burning method and its system
CN105426223B (en) * 2015-12-25 2019-01-04 百度在线网络技术(北京)有限公司 Using loading method and device

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59125421A (en) * 1983-01-04 1984-07-19 Nec Corp Initialization system of computer applied equipment
DE69031936T2 (en) * 1989-11-17 1998-06-10 Digital Equipment Corp System and method for storing firmware in an address-independent format
US6298440B1 (en) * 1994-04-22 2001-10-02 Microsoft Corporation Method and system for providing multiple entry point code resources
JPH1153249A (en) * 1997-08-07 1999-02-26 Sharp Corp Memory managing method
JP2001195258A (en) * 2000-01-12 2001-07-19 Mitsutoyo Corp Computer built-in system
US20040103272A1 (en) 2002-11-27 2004-05-27 Zimmer Vincent J. Using a processor cache as RAM during platform initialization
JP2004348677A (en) * 2003-05-26 2004-12-09 Sony Corp Program and information processing method
KR100658918B1 (en) * 2004-03-29 2006-12-15 주식회사 팬택앤큐리텔 Apparatus and method for initialization of system global variables using block input/output command
US7730472B2 (en) * 2004-09-24 2010-06-01 Hewlett-Packard Development Company, L.P. Dynamic linking of modules in a pre-operating system environment

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105446842A (en) * 2015-12-03 2016-03-30 南京南瑞继保电气有限公司 ADI DSP code online monitoring method
CN105446842B (en) * 2015-12-03 2019-01-04 南京南瑞继保电气有限公司 A kind of ADI DSP code in-service monitoring method
CN107450953A (en) * 2017-08-01 2017-12-08 合肥联宝信息技术有限公司 A kind of renewal BIOS method and device
CN110990072A (en) * 2019-11-08 2020-04-10 杭州智控网络有限公司 Price tag screen multi-drive dynamic loading method

Also Published As

Publication number Publication date
JP2009544085A (en) 2009-12-10
CN101484878B (en) 2012-11-28
EP2047364A4 (en) 2009-08-05
KR101036675B1 (en) 2011-05-24
JP4961019B2 (en) 2012-06-27
EP2047364A1 (en) 2009-04-15
KR20090035521A (en) 2009-04-09
WO2008014635A1 (en) 2008-02-07

Similar Documents

Publication Publication Date Title
CN101484878B (en) A method to use global variables for pre-EFI initialization modules in EFI-based firmware
CN102567128B (en) System reset
CN1029336C (en) Apparatus and method for loading system reference diskette image from system partition in personal computer system
CN102707900A (en) Virtual disk storage techniques
US8286154B2 (en) Apparatus and method for live loading of version upgrades in a process control environment
EP3267308B1 (en) Application loading method and device
EP3314514B1 (en) Protecting basic input/output (bios) code
CN102591675B (en) Method and system for management of multiple software images with shared memory blocks
US20070180223A1 (en) Computer system and method of booting the system
CN102799483B (en) A kind of method and apparatus for conversion operations system running environment
CN1963773A (en) Method and system to pick-up log and pursue buffer when the system brokendown
CN1334936A (en) Method for communication between firmware written for different instruction set architectures
CN102567042A (en) Method and system for managing multiple software images with relocation of boot blocks
CN101421701A (en) Direct boot arrangement using a NAND flash memory
US20040088684A1 (en) Intercepting function calls
CN103221921A (en) Direct migration of software images with streaming technique
CN101021797A (en) Repairing and staging method for software of embedded system
CN1627258A (en) Driver-specific context for kernel-mode shimming
CN101645003A (en) Method and device for software transplantation
US20110265072A1 (en) Dynamic Installation of Files for Running Programs
CN106201608A (en) Computer UEFI firmware update
US20060294356A1 (en) Apparatus and method of an executable-in-place flash device
US20110296092A1 (en) Storing a Driver for Controlling a Memory
US9841982B2 (en) Locating import class files at alternate locations than specified in classpath information
CN105630530A (en) Multilevel boot method and system of digital signal processor

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
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20121128

Termination date: 20130718