CN106407156A - A method and a system for BOOTROM guiding multi-core CPU boot - Google Patents

A method and a system for BOOTROM guiding multi-core CPU boot Download PDF

Info

Publication number
CN106407156A
CN106407156A CN201610844750.6A CN201610844750A CN106407156A CN 106407156 A CN106407156 A CN 106407156A CN 201610844750 A CN201610844750 A CN 201610844750A CN 106407156 A CN106407156 A CN 106407156A
Authority
CN
China
Prior art keywords
core
bootrom
address
register
cpu
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
CN201610844750.6A
Other languages
Chinese (zh)
Other versions
CN106407156B (en
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.)
Shenzhen Zhenyou Software Technology Co.,Ltd.
Original Assignee
Shenzhen Genew Technologies Co Ltd
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 Shenzhen Genew Technologies Co Ltd filed Critical Shenzhen Genew Technologies Co Ltd
Priority to CN201610844750.6A priority Critical patent/CN106407156B/en
Publication of CN106407156A publication Critical patent/CN106407156A/en
Application granted granted Critical
Publication of CN106407156B publication Critical patent/CN106407156B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/177Initialisation or configuration control

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

The invention provides a method and a system for BOOTROM guiding multi-core CPU boot. The method comprises the steps of: A, setting a processor ID register for distinguishing a CPU in advance; B, when the CPU is electrified, tacitly approving that a main core executes an instruction and starting a main core operating system image; C, in an application program of the main core operating system image, copying a slave core operating system image code from NOR FLASH to a slave core memory boot address; D, setting a boot page translation register address to start slave cores. The system comprises a presetting module, a main core boot module, a copying module and a slave core boot module. Multiple cores of a CPU can be started only by compiling one copy of a BOOTROM code, and the multiple-core CPU can be started at the same time, so that the problem of complicated burn maintenance in an AMP system is solved and the problem that NOR FLASH is non-accessible after an SMP system starts slave cores.

Description

The method and system that one BOOTROM guides multi-core CPU to start
Technical field
The present invention relates to embedded system BSP technical field, more particularly, to one BOOTROM guiding multi-core CPU opens Dynamic method and system.
Background technology
BSP is board suppot package, i.e. Board support package, is between motherboard hardware and operating system One layer it should say the part being belonging to operating system, main purpose is to support operating system, enables preferably Run on hardware mainboard.
Embedded system field, the application for multinuclear is divided into symmetric multi-processors(I.e. English:Symmetrical Multi- Processing, abbreviation SMP)With asymmetric multiprocessing(I.e. English:Asymmetric-Multi-Processing, is abbreviated as AMP, ASMP), they adapt to various different applications.Although there is very big difference in them, will be many in processor Individual core starts, and they can be executed and each instructs and work together.
In Linux system, with PowerPC double-core P1021 citing.Smp system, U-BOOT(I.e. Universal Boot Loader)By the startup code compilation from core in a page(page)(4KB)Section in, address be _ _ secondary_start_ Page, and this section of Code copying has been arrived random access memory when U-BOOT starts(I.e. Random Access Memory, RAM, also known as " random access memory)In.Main core will start when core, because E500 CPU starts address is all The physical address being located from core code is therefore passed through MMU TLB by 0xffff-fffc(I.e. Memory Manage Unit
, memory management unit, Translation Lookaside Buffers, changes fast table)It is mapped to the virtual address of 4G-4K Space, then starts from core.So the drawbacks of is exactly:If CPU is from local bus Nor Flash, and (Local Bus bus is again Referred to as cpu bus) start(Major applications are all such), the address space of the Nor Flash last 64MB in 4GB space(Nor The size of flash), start after core, the virtual address due to having reset last 4K is address ram, then Nor flash Address space(Remove top 4KB)Will be unable to access, data access occurs and stops(I.e. Data Access abort)Abnormal.
In vxworks system, also illustrated with PowerPC double-core P1021.AMP system, principal and subordinate's core has each independent BOOTROM and operation system image (i.e. OS image).So system is exactly to there are 2 BOOTROM, and programming is in Nor flash Upper diverse location.Main core starts when core, and setting starts page translation register BPTR(I.e. Boot Page Translation Register)It is the address being located from core BOOTROM, then start from core.So start stream from the flow process of core startup and main core Journey is just the same.Such startup thinking is simple, easy-to-understand.But each burning BOOTROM wants burning 2, also will simultaneously 2 BOOTROM of compiling, burning is comparatively laborious with release maintenance.
Therefore, prior art has yet to be improved and developed.
Content of the invention
In view of in place of above-mentioned the deficiencies in the prior art, it is an object of the invention to provide a BOOTROM guides multi-core CPU The method and system starting, it is intended to propose a kind of code maintenance simply, only can start multi-core CPU with a BOOTRM, and Do not affect the scheme of BOOTROM space access, solve the problems, such as AMP system safeguards that burning is loaded down with trivial details, also solves smp system and opens The dynamic problem that can not access NOR FLASH after core.
In order to achieve the above object, the technical scheme that present invention solution technical problem is adopted is as follows:
The method that one BOOTROM guides multi-core CPU to start, comprises the following steps:
A, pre-set distinguish CPU processor ID register;
After the upper electricity of B, CPU, give tacit consent to main core execute instruction, start main core operation system image;
C, in main core operation system image application program, will from core operation system image code from NOR FLASH copy to from Core internal storage starting address;
D, setting start page translation register address, start from core.
A described BOOTROM guides the method that multi-core CPU starts, wherein, step A specifically, arranging processor ID Register be when 0 based on core, processor ID register is to be from core during N, wherein, N be not equal to 0 numeral.
A described BOOTROM guides the method that multi-core CPU starts, and wherein, step B specifically includes:
B1, main core initialize internal register from 0xffff-fffc instruction fetch, are tentatively arranged;
B2, by access Double Data Rate synchronous DRAM, by whole BOOTROM Code copying to random access memory Device ram space, address is RAM-HIGH-ADRS;
B3, by absolute jump instruction by program counter move on to random access memory ram space execute BOOTROM code, Initialization network interface serial ports, peripheral hardware, setting start-up parameter, BOOT menu, automatic;
Operation system image is read RAM-LOW-ADRS from FLASH region with file mode by B4, main core;
B5, main core jump to RAM-LOW-ADRS, start main core operation system image.
A described BOOTROM guides the method that multi-core CPU starts, and wherein, step C is specially:Operate system in main core In system image application program, will be copied to from NOR FLASH with file mode from core operation system image code and open from core internal memory At the Double Data Rate synchronous DRAM initial address of dynamic address 512M+RAM-LOW-ADRS.
A described BOOTROM guides the method that multi-core CPU starts, and wherein, step D specifically includes:
It is 0xffff-fffc that D1, setting start page translation register address;
D2, execute among BOOTROM from core, and read first instruction execution from 0xffff-fffc;
D3, when reading processor ID register is from core, execution initialization is from the instruction of core;
D4, then directly definitely redirecting mode, jump to RAM-LOW-ADRS and run, enter and hold from core operation system image OK.
A described BOOTROM guides the method that multi-core CPU starts, and wherein, step D3 specifically includes:
Execution initialization described in step D3 is specially from the instruction of core:The value of initialization internal register, and internal memory is set Administrative unit changes the initial value of fast table, is entered as starting point in internal memory for the operation system image to program counter register Location, makes the virtual address of the physical address map of 512M+RAM-LOW-ADRS to RAM-LOW-ADRS, and mapping size is 512M.
The system that one BOOTROM guides multi-core CPU to start, including:
Pre-set module, for pre-setting the processor ID register distinguishing CPU;
Main core starting module, after electricity on CPU, gives tacit consent to main core execute instruction, starts main core operation system image;
Copy module, in main core operation system image application program, will be from core operation system image code from NOR FLASH copies to from core internal storage starting address;
From core starting module, start page translation register address for setting, start from core.
A described BOOTROM guides the system that multi-core CPU starts, and wherein, pre-sets module and is specially setting process Device ID register be when 0 based on core, processor ID register is to be from core during N, wherein, N be not equal to 0 numeral.
A described BOOTROM guides the system that multi-core CPU starts, and wherein, main core starting module includes:
The preliminary arranging unit of main core, initializes internal register for main core from 0xffff-fffc instruction fetch, is tentatively set Put;
Copied cells, for by access Double Data Rate synchronous DRAM, by whole BOOTROM Code copying to Machine accesses memory RAM space, and address is RAM-HIGH-ADRS;
Redirect start unit, hold for program counter is moved on to by random access memory ram space by absolute jump instruction Row BOOTROM code, initialization network interface serial ports, peripheral hardware, setting start-up parameter, BOOT menu, automatic;
Operation system image is read RAM-LOW- from FLASH region with file mode for main core by the first reading unit ADRS;
Main core start unit, jumps to RAM-LOW-ADRS for main core, starts main core operation system image.
A described BOOTROM guides the system that multi-core CPU starts, and wherein, copy module is specially in the operation of main core In system image application program, will be copied to from core internal memory from NOR FLASH with file mode from core operation system image code Start at the Double Data Rate synchronous DRAM initial address of address 512M+RAM-LOW-ADRS;
Include from core starting module:
Address setting unit, starting page translation register address for setting is 0xffff-fffc;
Second reading unit, for executing in BOOTROM from core, and reads first instruction execution from 0xffff-fffc;
From core initialization unit, for when reading processor ID register is from core, execution initialization is from the instruction of core;
From core start unit, directly definitely to redirect mode, jump to RAM-LOW-ADRS and run, enter from core behaviour for then Make system image execution.
Beneficial effect:Compared to prior art, the method for the BOOTROM guiding multi-core CPU startup that the present invention provides And system, methods described includes:A, pre-set distinguish CPU processor ID register;After the upper electricity of B, CPU, give tacit consent to main core and hold Row instruction, starts main core operation system image;C, in main core operation system image application program, will be from core operation system image Code copies to from core internal storage starting address from NOR FLASH;D, setting start page translation register address, start from core.Institute The system of stating includes:Pre-set module, main core starting module, copy module, from core starting module.In technical solution of the present invention BOOTROM code only need to compile portion so that it may start multi-core CPU simultaneously, solve and safeguard loaded down with trivial details the asking of burning in AMP system Topic, also solves the problems, such as that smp system starts and can not access NOR FLASH after core, is that a BOOTROM starts a CPU In multiple cores core, start a CPU with multiple BOOTROM, and each CPU have the technical sides such as independent BOOTROM Case is entirely different.
Brief description
Fig. 1 is 4GB double-core cpu address spatial distribution map in AMP system in prior art.
The flow chart that Fig. 2 guides the method preferred embodiment of multi-core CPU startup for the BOOTROM that the present invention provides.
Fig. 3 guides the cpu address spatial distribution map of double-core CPU startup for the BOOTROM that the present invention provides.
Fig. 4 guides the functional module of the system preferred embodiment of multi-core CPU startup for the BOOTROM that the present invention provides Figure.
Specific embodiment
For making the objects, technical solutions and advantages of the present invention clearer, clear and definite, develop simultaneously embodiment pair referring to the drawings The present invention further describes.It should be appreciated that specific embodiment described herein is only in order to explain the present invention, and without In the restriction present invention.
Refer to Fig. 2, Fig. 2 is that the BOOTROM that the present invention provides guides the method preferred embodiment that multi-core CPU starts Flow chart, including step:
S100, pre-set distinguish CPU processor ID register;
Pre-set processor ID register PIR, i.e. the Processor Identification Register distinguishing CPU, Being used for distinguishing is which core of processor CPU, i.e. core.
When being embodied as, step S100 can specifically, setting processor ID register PIR be when 0 based on core, processor ID Register PIR is to be from core during N, wherein, N be not equal to 0 numeral, such as CPU be double-core when, can arrange during PIR=0 based on Core, is from core during PIR=1, if CPU is three cores, can arrange core based on PIR=0, and PIR=1 represents first from core, and PIR=2 represents Second core, if CPU is four cores and with first-class, can the like.
Which CPU that BOOTROM judges according to PIR currently to run in running is, taking double-core as a example, such as Core based on PIR=0, PIR=1 is from core, thus carrying out corresponding command operating.
After the upper electricity of S200, CPU, give tacit consent to main core execute instruction, start main core operation system image;
I.e. after electricity on CPU, give tacit consent to main core execute instruction, start main core operation system image, i.e. OS image;
Specifically, after the upper electricity of CPU, if based on current operation during core, as traditional Booting sequence, initialization is internal to deposit Device, DDR SDRAM(I.e. Double Data Rate SDRAM, is abbreviated as DDR SDRAM, i.e. Double Data Rate synchronous dynamic random Memory), internal memory moves, a series of actions such as network interface initialization of (a) serial ports, and guides OS image to start.
, single BOOTROM starts more than 2 core processors taking AMP system as a example.Refer to Fig. 1, Fig. 1 is existing skill 2 core 4GB cpu address spatial distribution maps in AMP system in art:Principal and subordinate core BOOTROM is in FLASH ROM(ROM, that is, Read Only Memory, read-only storage)Highest 1MB;Principal and subordinate's core version leaves the remaining 63MB of FLASH ROM in;Main Core image takies 0 ~ 512MB DDR SDRAM space;Take 512M ~ 1024M DDR SDRAM space from core;Other spaces are CPU internal register, the space such as CPLD, PCI, NAND FLASH.
Refer to Fig. 3, Fig. 3 guides the cpu address space that double-core CPU starts to divide for the BOOTROM that the present invention provides Butut, specifically, Fig. 3 is whole BOOTROM guiding OS image and starts address space distribution map during core, whole Individual DDR SDRAM size be 1GB, main core with each account for 512MB DDR SDRAM space from core AMP system.
See also Fig. 1, Fig. 2 and Fig. 3, further, in this step, step S200 specifically includes:
After the upper electricity of S210, CPU, give tacit consent to main core execute instruction, main core initializes internal register from 0xffff-fffc instruction fetch, Tentatively arranged;
S220, by access Double Data Rate synchronous DRAM, whole BOOTROM Code copying is deposited to arbitrary access Reservoir ram space, address is RAM-HIGH-ADRS;
S230, by absolute jump instruction by program counter move on to random access memory ram space execute BOOTROM generation Code, initialization network interface serial ports, peripheral hardware, setting start-up parameter, BOOT menu, automatic;
Operation system image is read RAM-LOW-ADRS from FLASH region with file mode by S240, main core;
S250, main core jump to RAM-LOW-ADRS, start main core operation system image.
Specifically, that is, after the upper electricity of S210, CPU, give tacit consent to main core execute instruction, main core is from the beginning of 0xffff-fffc instruction fetch Beginningization internal register, configures DDR sdram controller, adjusts MMU TLB(I.e. Memory Management Unit, storage Device administrative unit, Translation Look-aside Buffers transmits posterior bumper, and that is, memory management unit conversion is fast Table), piece is set and selects the basic preparation such as attribute;
S220, now DDR SDRAM(I.e. Double Data Rate synchronous DRAM)Can access, by whole BOOTROM generation Code all copies to ram space, and address is RAM-HIGH-ADRS;
S230, by absolute jump instruction by PC(I.e. program counter, is abbreviated as PC, program counter)Move on to RAM empty Between execute, still carry out BOOTROM code, then initialization network interface serial ports, peripheral hardware, setting start-up parameter, BOOT menu, automatically Start etc.;
S240, start the OS stage, main core is by operation system image(I.e. OS image)Read with file mode from FLASH region RAM-LOW-ADRS;
S250, main core jump to RAM-LOW-ADRS, start main core operation system image, that is, start main core OS image.
S300, in main core operation system image application program, will copy from NOR FLASH from core operation system image code Shellfish is to from core internal storage starting address;
I.e. in main core OS image application program, will be copied from NOR FLASH with file mode from the OS image code of core To from core internal storage starting address;
Please continue to refer to Fig. 2 and Fig. 3, step S300 is specially:In main core operation system image application program, will operate from core System image code is copied to double from core internal storage starting address 512M+RAM-LOW-ADRS with file mode from NOR FLASH At times speed synchronous DRAM DDR SDRAM initial address;
I.e. in the operation of main core OS image application program, from the OS image of core, 512M+RAM- will be read with file mode At the DDR SDRAM initial address of LOW-ADRS.
S400, setting start page translation register address, start from core;
I.e. setting starts page translation register BPTR address is 0xffff-fffc, and allows from core startup.
Please continue to refer to Fig. 2 and Fig. 3, step S400 specifically includes:
It is 0xffff-fffc that S410, setting start page translation register address;
S420, execute among BOOTROM from core, and read first instruction execution from 0xffff-fffc;
S430, when reading processor ID register is from core, execution initialization is from the instruction of core;
S440, then directly definitely redirecting mode, jump to RAM-LOW-ADRS and run, enter and hold from core operation system image OK.
Specifically, that is, S420, this be from core execution, execute among BOOTROM from core, take from 0xffff-fffc from core Article first, instruction execution;
S430, reading PIR register are when core, and execution initialization is from the instruction of core;
After i.e. reading PIR register is 1, execution initialization is from the instruction of core.
Execution initialization described in step S430 is specially from the instruction of core:The value of initialization internal register, and Setting memory management unit changes the initial value of fast table MMU TLB, to program counter register PC(The full name of PC is Program Counter)It is entered as initial address in internal memory for the operation system image, make the physical address of 512M+RAM-LOW-ADRS reflect It is mapped to the virtual address of RAM-LOW-ADRS, mapping size is 512M, then the virtual address scope run from core remains as 0~ 512MB.
S440, then directly definitely redirecting mode, jump to RAM-LOW-ADRS and run, enter and reflect from core operating system As execution.
Specifically, take first instruction execution from core from 0xffff-fffc, that is, the code of BOOTROM, with double-core As a example, after reading PIR=1, will not deinitialization DDR again, network interface serial ports etc., as long as and initialize the value of internal register, and And some initial values of MMU TLB are set.Then carry out and redirect preparation, be OS image in internal memory to PC register assignment Initial address, then directly definitely to redirect mode, jumps to RAM-LOW-ADRS and runs, just jump directly to OS from core Image performs, and enters the OS image stage hence it is evident that faster much than main core start-up course this moment, simpler than main core.
Certainly, technique scheme is also similar in smp system, for smp system, from core from ROM instruction fetch, does not change Become MMU TLB last 4KB page is remapped.
In technical solution of the present invention, BOOTROM code only need to compile portion so that it may start multi-core CPU simultaneously, solves AMP Safeguard the loaded down with trivial details problem of burning in system, also solve the problems, such as that smp system starts and can not access NOR FLASH after core, be One BOOTROM starts multiple cores core in a CPU.
Refer to Fig. 4, Fig. 4 guides the system preferred embodiment of multi-core CPU startup for the BOOTROM that the present invention provides Functional block diagram, including:
Pre-set module 10, for pre-setting the processor ID register distinguishing CPU, as detailed above;
Main core starting module 20, after electricity on CPU, gives tacit consent to main core execute instruction, starts main core operation system image, specifically such as Upper described;
Copy module 30, in main core operation system image application program, will be from core operation system image code from NOR FLASH copies to from core internal storage starting address, as detailed above;
From core starting module 40, start page translation register address for setting, start from core, as detailed above.
A described BOOTROM guides the system that multi-core CPU starts, and wherein, pre-sets module 10 and is specially at setting Reason device ID register be when 0 based on core, processor ID register is to be from core during N, wherein, N be not equal to 0 numeral, specifically As mentioned above.
A described BOOTROM guides the system that multi-core CPU starts, and wherein, main core starting module 20 includes:
The preliminary arranging unit of main core, initializes internal register for main core from 0xffff-fffc instruction fetch, is tentatively set Put, as detailed above;
Copied cells, for by access Double Data Rate synchronous DRAM, by whole BOOTROM Code copying to Machine accesses memory RAM space, and address is RAM-HIGH-ADRS, as detailed above;
Redirect start unit, hold for program counter is moved on to by random access memory ram space by absolute jump instruction Row BOOTROM code, initialization network interface serial ports, peripheral hardware, setting start-up parameter, BOOT menu, automatic, specifically as above institute State;
Operation system image is read RAM-LOW- from FLASH region with file mode for main core by the first reading unit ADRS, as detailed above;
Main core start unit, jumps to RAM-LOW-ADRS for main core, starts main core operation system image, specifically as above institute State.
A described BOOTROM guides the system that multi-core CPU starts, and wherein, copy module 30 is specially in main core behaviour Make in system image application program, will be copied in core from NOR FLASH with file mode from core operation system image code Deposit and start at the Double Data Rate synchronous DRAM initial address of address 512M+RAM-LOW-ADRS, specifically as above institute State;
Include from core starting module 40:
Address setting unit, starting page translation register address for setting is 0xffff-fffc;
Second reading unit, for executing in BOOTROM from core, and reads first instruction execution, tool from 0xffff-fffc Body is as described above;
From core initialization unit, for when reading processor ID register is from core, execution initializes the instruction from core, specifically As mentioned above;
From core start unit, directly definitely to redirect mode, jump to RAM-LOW-ADRS and run, enter from core behaviour for then Make system image execution, as detailed above.
In sum, the method and system that an a kind of BOOTROM provided by the present invention guides multi-core CPU to start, institute The method of stating includes:A, pre-set distinguish CPU processor ID register;After the upper electricity of B, CPU, give tacit consent to main core execute instruction, open Move main core operation system image;C, in main core operation system image application program, will be from core operation system image code from NOR FLASH copies to from core internal storage starting address;D, setting start page translation register address, start from core.Described system includes: Pre-set module, main core starting module, copy module, from core starting module.In technical solution of the present invention, BOOTROM code only needs Compiling portion, so that it may start multi-core CPU simultaneously, solves the problems, such as to safeguard in AMP system that burning is loaded down with trivial details, also solves SMP system System starts the problem that can not access NOR FLASH after core, is multiple cores core that a BOOTROM starts in a CPU, Start a CPU with multiple BOOTROM, and each CPU to have the technical schemes such as independent BOOTROM entirely different.
Certainly, one of ordinary skill in the art will appreciate that realizing all or part of flow process in above-described embodiment method, Can be by computer program to instruct related hardware(As processor, controller etc.)To complete, described program can store In the storage medium of an embodied on computer readable, this program may include upon execution as the flow process of above-mentioned each method embodiment.Its Described in storage medium can be memory, magnetic disc, CD etc..
It should be appreciated that the application of the present invention is not limited to above-mentioned citing, for those of ordinary skills, can To be improved according to the above description or to convert, all these modifications and variations all should belong to the guarantor of claims of the present invention Shield scope.

Claims (10)

1. a BOOTROM guides the method for multi-core CPU startup it is characterised in that comprising the following steps:
A, pre-set distinguish CPU processor ID register;
After the upper electricity of B, CPU, give tacit consent to main core execute instruction, start main core operation system image;
C, in main core operation system image application program, will from core operation system image code from NOR FLASH copy to from Core internal storage starting address;
D, setting start page translation register address, start from core.
2. a BOOTROM according to claim 1 guides the method for multi-core CPU startup it is characterised in that step A has Body is, setting processor ID register be when 0 based on core, processor ID register is to be from core during N, and wherein, N is to be not equal to 0 Numeral.
3. a BOOTROM according to claim 1 guides the method for multi-core CPU startup it is characterised in that step B has Body includes:
B1, main core initialize internal register from 0xffff-fffc instruction fetch, are tentatively arranged;
B2, by access Double Data Rate synchronous DRAM, by whole BOOTROM Code copying to random access memory Device ram space, address is RAM-HIGH-ADRS;
B3, by absolute jump instruction by program counter move on to random access memory ram space execute BOOTROM code, Initialization network interface serial ports, peripheral hardware, setting start-up parameter, BOOT menu, automatic;
Operation system image is read RAM-LOW-ADRS from FLASH region with file mode by B4, main core;
B5, main core jump to RAM-LOW-ADRS, start main core operation system image.
4. a BOOTROM according to claim 1 guides the method for multi-core CPU startup it is characterised in that step C has Body is:In main core operation system image application program, will from core operation system image code with file mode from NOR FLASH Copy the Double Data Rate synchronous DRAM initial address from core internal storage starting address 512M+RAM-LOW-ADRS to Place.
5. a BOOTROM according to claim 1 guides the method for multi-core CPU startup it is characterised in that step D has Body includes:
It is 0xffff-fffc that D1, setting start page translation register address;
D2, execute among BOOTROM from core, and read first instruction execution from 0xffff-fffc;
D3, when reading processor ID register is from core, execution initialization is from the instruction of core;
D4, then directly definitely redirecting mode, jump to RAM-LOW-ADRS and run, enter and hold from core operation system image OK.
6. a BOOTROM according to claim 5 guides the method for multi-core CPU startup it is characterised in that step D3 has Body includes:
Execution initialization described in step D3 is specially from the instruction of core:The value of initialization internal register, and internal memory is set Administrative unit changes the initial value of fast table, is entered as starting point in internal memory for the operation system image to program counter register Location, makes the virtual address of the physical address map of 512M+RAM-LOW-ADRS to RAM-LOW-ADRS, and mapping size is 512M.
7. a BOOTROM guides the system of multi-core CPU startup it is characterised in that including:
Pre-set module, for pre-setting the processor ID register distinguishing CPU;
Main core starting module, after electricity on CPU, gives tacit consent to main core execute instruction, starts main core operation system image;
Copy module, in main core operation system image application program, will be from core operation system image code from NOR FLASH copies to from core internal storage starting address;
From core starting module, start page translation register address for setting, start from core.
8. a BOOTROM according to claim 7 guides the system of multi-core CPU startup it is characterised in that pre-seting mould Block be specially arrange processor ID register be when 0 based on core, processor ID register is to be from core during N, wherein, N be In 0 numeral.
9. a BOOTROM according to claim 7 guides the system of multi-core CPU startup it is characterised in that main core starts Module includes:
The preliminary arranging unit of main core, initializes internal register for main core from 0xffff-fffc instruction fetch, is tentatively set Put;
Copied cells, for by access Double Data Rate synchronous DRAM, by whole BOOTROM Code copying to Machine accesses memory RAM space, and address is RAM-HIGH-ADRS;
Redirect start unit, hold for program counter is moved on to by random access memory ram space by absolute jump instruction Row BOOTROM code, initialization network interface serial ports, peripheral hardware, setting start-up parameter, BOOT menu, automatic;
Operation system image is read RAM-LOW- from FLASH region with file mode for main core by the first reading unit ADRS;
Main core start unit, jumps to RAM-LOW-ADRS for main core, starts main core operation system image.
10. a BOOTROM according to claim 7 guides the system of multi-core CPU startup it is characterised in that copying mould Block be specially in main core operation system image application program, will from core operation system image code with file mode from NOR FLASH copies to and initiates from the Double Data Rate synchronous DRAM of core internal storage starting address 512M+RAM-LOW-ADRS At address;
Include from core starting module:
Address setting unit, starting page translation register address for setting is 0xffff-fffc;
Second reading unit, for executing in BOOTROM from core, and reads first instruction execution from 0xffff-fffc;
From core initialization unit, for when reading processor ID register is from core, execution initialization is from the instruction of core;
From core start unit, directly definitely to redirect mode, jump to RAM-LOW-ADRS and run, enter from core behaviour for then Make system image execution.
CN201610844750.6A 2016-09-23 2016-09-23 The method and system of one BOOTROM guidance multi-core CPU starting Active CN106407156B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610844750.6A CN106407156B (en) 2016-09-23 2016-09-23 The method and system of one BOOTROM guidance multi-core CPU starting

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610844750.6A CN106407156B (en) 2016-09-23 2016-09-23 The method and system of one BOOTROM guidance multi-core CPU starting

Publications (2)

Publication Number Publication Date
CN106407156A true CN106407156A (en) 2017-02-15
CN106407156B CN106407156B (en) 2018-11-23

Family

ID=57997174

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610844750.6A Active CN106407156B (en) 2016-09-23 2016-09-23 The method and system of one BOOTROM guidance multi-core CPU starting

Country Status (1)

Country Link
CN (1) CN106407156B (en)

Cited By (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108874458A (en) * 2017-05-10 2018-11-23 鸿秦(北京)科技有限公司 A kind of the firmware starting method and multicore SoC device of multicore SoC
CN109144574A (en) * 2017-06-15 2019-01-04 龙芯中科技术有限公司 Starting method, apparatus, electronic equipment and the storage medium of real time operating system
CN109189429A (en) * 2018-09-11 2019-01-11 武汉正维电子技术有限公司 CPU0 updates the method for CPU1 program under dual core processor AMP mode
CN109582370A (en) * 2018-11-01 2019-04-05 浙江大华技术股份有限公司 A kind of starting method and device of NOR FLASH embedded device
CN109634672A (en) * 2018-12-04 2019-04-16 中国航空工业集团公司西安航空计算技术研究所 A kind of multi-core processor loading method based on intercore communication
CN110119286A (en) * 2019-04-11 2019-08-13 厦门亿联网络技术股份有限公司 A kind of firmware guidance implementation method based on simulation Flash chip
CN110557682A (en) * 2019-09-26 2019-12-10 四川长虹电器股份有限公司 Intelligent television quick starting method based on dual-core starting and dual-core intelligent television
CN110569066A (en) * 2019-07-26 2019-12-13 深圳震有科技股份有限公司 Control method of multi-core system shared code segment, intelligent terminal and storage medium
CN110737480A (en) * 2019-09-18 2020-01-31 福州瑞芯微电子股份有限公司 Multiplexing method and device for serial port drivers
CN110785759A (en) * 2017-06-25 2020-02-11 微软技术许可有限责任公司 Remote authentication for multi-core processors
CN111381894A (en) * 2020-02-21 2020-07-07 杨百涛 Method for realizing rapid starting and simultaneous working of slave system during starting of complex time-sharing operating system
WO2020177577A1 (en) * 2019-03-07 2020-09-10 深圳忆联信息***有限公司 Method and apparatus for controller to load multi-core firmware, and computer device
CN111897577A (en) * 2020-07-28 2020-11-06 厦门亿联网络技术股份有限公司 Master-slave distinguishing method and device of CPU (Central processing Unit) and computer terminal equipment
CN111949989A (en) * 2020-07-27 2020-11-17 首都师范大学 Safety control device and method of multi-core processor
CN111984329A (en) * 2019-08-22 2020-11-24 中国科学院国家空间科学中心 Standardized boot software generation and execution method and system
CN113282344A (en) * 2021-05-25 2021-08-20 中国航空无线电电子研究所 Method for realizing weather operating system on Feiteng asymmetric dual-core processor
CN113407247A (en) * 2021-07-16 2021-09-17 上海金脉电子科技有限公司 Dual-system starting method based on multi-core processor
CN113553115A (en) * 2020-04-23 2021-10-26 上汽通用汽车有限公司 Starting method based on heterogeneous multi-core chip and storage medium
CN114064138A (en) * 2022-01-17 2022-02-18 杭州研极微电子有限公司 Method for starting system including multi-core processor and system adopting same
CN114064134A (en) * 2021-11-12 2022-02-18 上海华元创信软件有限公司 Self-guiding method and system suitable for embedded SPARC (spatial Power control processor) architecture processor
CN114090086A (en) * 2021-11-23 2022-02-25 西安微电子技术研究所 Embedded operating system quick starting method based on ZynqMP platform
CN114138360A (en) * 2021-11-12 2022-03-04 上海华元创信软件有限公司 Multi-core programming starting method and system of DSP on Flash
CN115309463A (en) * 2022-09-29 2022-11-08 成都菁蓉联创科技有限公司 Method for guiding and configuring AMP system
CN115827079A (en) * 2023-01-09 2023-03-21 深流微智能科技(深圳)有限公司 Control method and control device for starting graphic processor and electronic equipment
CN117251216A (en) * 2023-09-15 2023-12-19 上海合芯数字科技有限公司 Server firmware starting optimization method, system, server and storage medium

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1553338A (en) * 2003-06-08 2004-12-08 华为技术有限公司 Starting method and system of central processing unit
CN1567187A (en) * 2003-06-11 2005-01-19 华为技术有限公司 Data processing system and method
CN101183311A (en) * 2007-12-21 2008-05-21 上海华为技术有限公司 Method and device of multithread load application version program
CN101464807A (en) * 2009-01-08 2009-06-24 杭州华三通信技术有限公司 Application program loading method and device
US20110246714A1 (en) * 2010-03-30 2011-10-06 Lenovo (Singapore) Pte. Ltd. Migrating client operating systems to remote storage
CN102388365A (en) * 2011-09-27 2012-03-21 华为技术有限公司 Processor start-up method and device
CN102968319A (en) * 2012-11-14 2013-03-13 北京交控科技有限公司 VxWorks image loading method
US8874892B1 (en) * 2011-05-26 2014-10-28 Phoenix Technologies Ltd. Assessing BIOS information prior to reversion

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1553338A (en) * 2003-06-08 2004-12-08 华为技术有限公司 Starting method and system of central processing unit
CN1567187A (en) * 2003-06-11 2005-01-19 华为技术有限公司 Data processing system and method
CN101183311A (en) * 2007-12-21 2008-05-21 上海华为技术有限公司 Method and device of multithread load application version program
CN101464807A (en) * 2009-01-08 2009-06-24 杭州华三通信技术有限公司 Application program loading method and device
US20110246714A1 (en) * 2010-03-30 2011-10-06 Lenovo (Singapore) Pte. Ltd. Migrating client operating systems to remote storage
US8874892B1 (en) * 2011-05-26 2014-10-28 Phoenix Technologies Ltd. Assessing BIOS information prior to reversion
CN102388365A (en) * 2011-09-27 2012-03-21 华为技术有限公司 Processor start-up method and device
CN102968319A (en) * 2012-11-14 2013-03-13 北京交控科技有限公司 VxWorks image loading method

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
蔡湘平 等: "多核DSP的Nand Flash启动软硬件设计", 《新器件新技术》 *
赵立伟 等: "嵌入式对称多核操作***的设计与实现", 《计算机工程与设计》 *

Cited By (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108874458A (en) * 2017-05-10 2018-11-23 鸿秦(北京)科技有限公司 A kind of the firmware starting method and multicore SoC device of multicore SoC
CN109144574A (en) * 2017-06-15 2019-01-04 龙芯中科技术有限公司 Starting method, apparatus, electronic equipment and the storage medium of real time operating system
CN109144574B (en) * 2017-06-15 2021-12-03 龙芯中科技术股份有限公司 Starting method and device of real-time operating system, electronic equipment and storage medium
CN110785759A (en) * 2017-06-25 2020-02-11 微软技术许可有限责任公司 Remote authentication for multi-core processors
US11809544B2 (en) 2017-06-25 2023-11-07 Microsoft Technology Licensing, Llc Remote attestation for multi-core processor
CN110785759B (en) * 2017-06-25 2023-09-29 微软技术许可有限责任公司 Remote authentication for multi-core processors
CN109189429A (en) * 2018-09-11 2019-01-11 武汉正维电子技术有限公司 CPU0 updates the method for CPU1 program under dual core processor AMP mode
CN109582370A (en) * 2018-11-01 2019-04-05 浙江大华技术股份有限公司 A kind of starting method and device of NOR FLASH embedded device
CN109634672A (en) * 2018-12-04 2019-04-16 中国航空工业集团公司西安航空计算技术研究所 A kind of multi-core processor loading method based on intercore communication
WO2020177577A1 (en) * 2019-03-07 2020-09-10 深圳忆联信息***有限公司 Method and apparatus for controller to load multi-core firmware, and computer device
CN110119286A (en) * 2019-04-11 2019-08-13 厦门亿联网络技术股份有限公司 A kind of firmware guidance implementation method based on simulation Flash chip
CN110569066A (en) * 2019-07-26 2019-12-13 深圳震有科技股份有限公司 Control method of multi-core system shared code segment, intelligent terminal and storage medium
CN111984329B (en) * 2019-08-22 2023-10-31 中国科学院国家空间科学中心 Boot software standardized generation and execution method and system
CN111984329A (en) * 2019-08-22 2020-11-24 中国科学院国家空间科学中心 Standardized boot software generation and execution method and system
CN110737480B (en) * 2019-09-18 2022-05-13 瑞芯微电子股份有限公司 Serial port driver multiplexing method and device
CN110737480A (en) * 2019-09-18 2020-01-31 福州瑞芯微电子股份有限公司 Multiplexing method and device for serial port drivers
CN110557682A (en) * 2019-09-26 2019-12-10 四川长虹电器股份有限公司 Intelligent television quick starting method based on dual-core starting and dual-core intelligent television
CN111381894B (en) * 2020-02-21 2023-06-13 杨百涛 Method for realizing rapid starting and simultaneous working of slave system during starting of complex time-sharing operating system
CN111381894A (en) * 2020-02-21 2020-07-07 杨百涛 Method for realizing rapid starting and simultaneous working of slave system during starting of complex time-sharing operating system
CN113553115A (en) * 2020-04-23 2021-10-26 上汽通用汽车有限公司 Starting method based on heterogeneous multi-core chip and storage medium
CN111949989A (en) * 2020-07-27 2020-11-17 首都师范大学 Safety control device and method of multi-core processor
CN111897577A (en) * 2020-07-28 2020-11-06 厦门亿联网络技术股份有限公司 Master-slave distinguishing method and device of CPU (Central processing Unit) and computer terminal equipment
CN111897577B (en) * 2020-07-28 2023-10-13 厦门亿联网络技术股份有限公司 Master-slave distinguishing method and device for CPU and computer terminal equipment
CN113282344A (en) * 2021-05-25 2021-08-20 中国航空无线电电子研究所 Method for realizing weather operating system on Feiteng asymmetric dual-core processor
CN113282344B (en) * 2021-05-25 2022-11-04 中国航空无线电电子研究所 Method for realizing weather operating system on Feiteng asymmetric dual-core processor
CN113407247A (en) * 2021-07-16 2021-09-17 上海金脉电子科技有限公司 Dual-system starting method based on multi-core processor
CN114064134B (en) * 2021-11-12 2024-02-06 上海华元创信软件有限公司 Self-booting method and system suitable for embedded SPARC architecture processor
CN114138360A (en) * 2021-11-12 2022-03-04 上海华元创信软件有限公司 Multi-core programming starting method and system of DSP on Flash
CN114138360B (en) * 2021-11-12 2024-03-26 上海华元创信软件有限公司 Multi-core programming starting method and system for DSP (digital Signal processor) on Flash
CN114064134A (en) * 2021-11-12 2022-02-18 上海华元创信软件有限公司 Self-guiding method and system suitable for embedded SPARC (spatial Power control processor) architecture processor
CN114090086B (en) * 2021-11-23 2023-05-30 西安微电子技术研究所 ZynqMP platform-based embedded operating system quick starting method
CN114090086A (en) * 2021-11-23 2022-02-25 西安微电子技术研究所 Embedded operating system quick starting method based on ZynqMP platform
CN114064138A (en) * 2022-01-17 2022-02-18 杭州研极微电子有限公司 Method for starting system including multi-core processor and system adopting same
CN115309463A (en) * 2022-09-29 2022-11-08 成都菁蓉联创科技有限公司 Method for guiding and configuring AMP system
CN115827079A (en) * 2023-01-09 2023-03-21 深流微智能科技(深圳)有限公司 Control method and control device for starting graphic processor and electronic equipment
CN115827079B (en) * 2023-01-09 2023-07-28 深流微智能科技(深圳)有限公司 Control method and control device for starting graphics processor and electronic equipment
CN117251216A (en) * 2023-09-15 2023-12-19 上海合芯数字科技有限公司 Server firmware starting optimization method, system, server and storage medium
CN117251216B (en) * 2023-09-15 2024-04-05 上海合芯数字科技有限公司 Server firmware starting optimization method, system, server and storage medium

Also Published As

Publication number Publication date
CN106407156B (en) 2018-11-23

Similar Documents

Publication Publication Date Title
CN106407156A (en) A method and a system for BOOTROM guiding multi-core CPU boot
TWI488111B (en) System and method for translating program functions for correct handling of local-scope variables and computing system incorporating the same
TWI417790B (en) Logical partitioning and virtualization in a heterogeneous architecture
US7581054B2 (en) Data processing system
BR102014006299A2 (en) method to initialize a heterogeneous system and present a symmetrical view of the core
US9081694B2 (en) Systems and methods for asymmetric multiprocessing
JP2008165789A (en) Guest to host address translation for device to access memory in partitioned system
CN104714846A (en) Resource processing method, operating system and equipment
US10430221B2 (en) Post-copy virtual machine migration with assigned devices
US10534742B2 (en) Hot-plug of devices in virtualized computer systems
JP5778296B2 (en) Virtual computer system, virtualization mechanism, and data management method
TWI436281B (en) Injecting transactions to support the virtualization of a physical device controller
TW202215223A (en) Devices for accelerators and method for processing data
CN108874458A (en) A kind of the firmware starting method and multicore SoC device of multicore SoC
TWI515553B (en) A method, apparatus, and system for energy efficiency and energy conservation including configurable maximum processor current
US9779050B2 (en) Allocating virtual resources to root PCI bus
CN113642006A (en) Safe starting method of dual-core relay protection system
US20150194198A1 (en) Multi-core processor system, memory controller control method, and computer product
CN113434087B (en) Multi-core starting method based on shared space
US20230185991A1 (en) Multi-processor simulation on a multi-core machine
US11194606B2 (en) Managing related devices for virtual machines utilizing shared device data
CN102789384B (en) Method for implementing server operating system applied to Loongson 3B processor
US20230026837A1 (en) Optimizing Virtual Machine Scheduling on Non-Uniform Cache Access (NUCA) Systems
CN111666104B (en) DSP processor design method supporting from rapidI/O start
KR101587600B1 (en) Inter-virtual machine communication method for numa system

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20210414

Address after: 518052 area a, 5th floor, Caixun technology building, 3176 Keyuan South Road, Gaoxin community, Yuehai street, Nanshan District, Shenzhen City, Guangdong Province

Patentee after: Shenzhen Zhenyou Software Technology Co.,Ltd.

Address before: 518057 3rd floor, area C, Han's innovation building, 9018 Beihuan Avenue, high tech Zone, Nanshan District, Shenzhen City, Guangdong Province

Patentee before: SHENZHEN GENEW TECHNOLOGY Co.,Ltd.

TR01 Transfer of patent right