CN102279763A - Method for optimizing boot read-only memory (BOOTROM) - Google Patents

Method for optimizing boot read-only memory (BOOTROM) Download PDF

Info

Publication number
CN102279763A
CN102279763A CN2011102546825A CN201110254682A CN102279763A CN 102279763 A CN102279763 A CN 102279763A CN 2011102546825 A CN2011102546825 A CN 2011102546825A CN 201110254682 A CN201110254682 A CN 201110254682A CN 102279763 A CN102279763 A CN 102279763A
Authority
CN
China
Prior art keywords
code
read
reading
header information
information data
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.)
Pending
Application number
CN2011102546825A
Other languages
Chinese (zh)
Inventor
林学善
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fuzhou Rockchip Electronics Co Ltd
Original Assignee
Fuzhou Rockchip Electronics 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 Fuzhou Rockchip Electronics Co Ltd filed Critical Fuzhou Rockchip Electronics Co Ltd
Priority to CN2011102546825A priority Critical patent/CN102279763A/en
Publication of CN102279763A publication Critical patent/CN102279763A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

The invention provides a method for optimizing a boot read-only memory (BOOTROM). The method comprises the following steps of: 10, reading the identification (ID) of a flash (FLASH), if the FLASH is not connected, turning to a step 50, if the ID is identifiable, turning to a step 20, and if the ID is unidentifiable, turning to the step 30; 20, reading the head information data of a first block (BLOCK) by using the physic parameter of the ID; verifying the data; if the data is a needed guide code, reading; if the data is not a needed guide code, reading the next BLOCK; 30, detecting the physic parameter of the ID, and then reading according to the method in the step 20; 40, reading a first part code and a second part code of a loader according to the structure of the head information structure, and finishing guide; if the guide cannot be finished, turning to the step 50; 50, reading the guide code from a single program initiation flash (SPI FLASH); if the code is unavailable, turning to the step 60; 60, reading the guide code from the memory at the embedded memory (emmc) interface; if the code is unavailable, turning to the step 70; and 70, performing the guide mode from any port having a lawful and available upgrading request of the universal asynchronous receiver/transmitter (UART) port and the universal serial bus (USB) port. By the method, poor compatibility of the FLASH can be overcome and the problem that a plurality of guide ways are required to adopt jumping wire selection can be solved.

Description

The optimization method of a kind of BOOTROM
[technical field]
The present invention relates to the optimization method of a kind of BOOTROM.
[background technology]
Existing BOOTROM (mask is in the boot of chip internal) adopts the wire jumper selection mode mostly when multiple guidance mode is arranged, employing wire jumper selection mode is loaded down with trivial details and can increase the wire jumper alternative costs; And be to remove to write the driving code according to existing FLASH kind at NAND FLASH (flash flash memory a kind of) aspect compatible, therefore there is following problem:
Shortcoming one: adopt the wire jumper selection mode to need wire jumper to select guiding wherefrom; Shortcoming two: the new NAND FLASH that releases may be compatible.Shortcoming three: need big SRAM (static RAM) to deposit loader (system loading software) or leave loader in SDRAM (synchronous DRAM) in the sheet, but there is certain risk in the various SDRAM of BOOTROM initialization.
[summary of the invention]
The technical problem to be solved in the present invention is to provide the optimization method of a kind of BOOTROM, and it can overcome the poor compatibility of NAND FLASH, the problem that multiple guidance mode need adopt wire jumper to select.
The present invention is achieved in that the optimization method of a kind of BOOTROM, specifically comprises the steps:
Read the ID of NAND FLASH behind step 10, the chip reset with low frequency range sequential, if the vendor id of the NAND FLASH that reads and device ID are 0x00 or 0xff, then do not meet NAND FLASH, directly forward step 50 to, if read the ID that can discern then change step 20 over to, if read the ID that cannot discern then change step 30 over to;
The physical parameter of the ID that step 20, use read reads first BLOCK (piece, the erase unit of NAND FLASH) header information data, carry out verification to reading header information data, judge whether it is required boot code data institutional framework, if then at the follow-up PAGE of this BLOCK (page or leaf, the unit of program of NAND FLASH) reads guidance code in, change step 40, if not then read the header information data of next BLOCK;
The physical parameter of step 30, the described ID of detection, the physical parameter that re-uses the ID that detects reads the header information data of first BLOCK, carry out verification to reading header information data, judge whether it is required boot code data institutional framework, if then the follow-up PAGE kind at this BLOCK reads guidance code, change step 40, if not then read the header information data of next BLOCK;
Step 40, read guidance code: after reading header information data by following bootstrap technique, read first's code of loader (system loading software) and leave among the chip internal SRAM according to data structure, empirical tests effectively back is carried out this part code, finishes system frequency and promotes and necessary SDRAM initialization; Read the second portion code of loader, after the checking effectively, submit the CPU control to, finish guiding,, then can not forward step 50 to from NAND FLASH guiding if it is imperfect effectively not read header information data or loader first code and second portion code;
Step 50, read guidance code from SPI FLASH (a kind of general flash, it adopts Serial Peripheral Interface (SPI)), if guidance code effectively then finish guiding, if the invalid step 60 that then forwards to of guidance code according to the bootstrap technique of step 40;
Step 60, according to the bootstrap technique of step 40 from the emmc (storer of Embedded mmc card interface, it is a chips rather than card) storer of interface reads guidance code, if guidance code effectively then finish guiding, forwards step 70 to if guidance code is invalid;
Step 70, initialization UART (universal asynchronous reception/dispensing device) port and USB port are waited for and PC connects, and any one port has the legal and valid upgrade request, then changes the bootmode of this port over to.
Further, in the described step 20, the physical parameter of described ID comprises I/O width, PAGE size, BLOCK size, order and address, ECC (bug check and correction), utilize the physical parameter of ID to go to read 512B or the 1KB header information data of first BLOCK, if ECC is wrong, then switches and read again after the ECC figure place up to correctly.
Further, in the described step 40, whole part of loader code pressed PAGE and connected in NAND FLASH, if no end mark shows that then code is imperfect.
The present invention has following advantage:
The present invention just can channeling conduct from multiple guiding is selected without the wire jumper mode, can remove the wire jumper alternative costs, and be simple and easy to use;
The be severe in judgment integrality of loader of the present invention, avoid abnormal conditions to cause not opening machine, the loader code adopts two parts to form, first is very little to be moved in on-chip SRAM, finish elevator system frequency and necessary SDRAM initialization, second portion moves in SDRAM, is the loader that is responsible for the pilot operationp system; Both guaranteed that chip was reliable and stable, need in BOOTROM, not run high frequency, the various SDRAM/DDR SDRAM of deinitialization, and also do not needed bigger on-chip SRAM to deposit the loader code, and can increase various dirigibilities and guiding speed again;
The present invention does the detection of various physical parameters to NAND FLASH, improves compatiblely greatly, and the new NAND FLASH that releases can revise the driving code in the BOOTROM, need not revise the cost of chip and the time of accelerating the chip listing.
[description of drawings]
The present invention is further illustrated in conjunction with the embodiments with reference to the accompanying drawings.
Fig. 1 is the inventive method schematic flow sheet.
Fig. 2 is a module schematic block diagram of the present invention.
[embodiment]
See also Fig. 1, shown in Figure 2, embodiments of the invention are described in detail.
As Fig. 1, Fig. 2, the inventive method specifically comprises the steps: to use low frequency range sequential to read the ID of NAND FLASH behind step 10, the chip reset, because low frequency has guaranteed the stability of chip, wide sequential satisfies the requirement of all NAND FLASH sequential.If the vendor id of the NAND FLASH that reads and device ID are 0x00 or 0xff, then do not meet NAND FLASH, directly forward step 50 to, if read the ID that can discern then change step 20 over to, if read the ID that cannot discern then change step 30 over to (because the id command of reading of NAND FLASH is 0x90 (order), 0x00 (address), if there is not external NAND FLASH, those data of reading are that the last sent data of data bus are 0x00, because vendor id and the device ID of NAND FLASH can not be 0x00 or 0xff, so judge when the vendor id of reading and device ID are 0x00 or 0xff, can determine not have external NAND FLASH).
Step 20, the physical parameter of the ID that use reads reads the header information data of first BLOCK, the physical parameter of described ID comprises the I/O width, the PAGE size, the BLOCK size, order and address, (small page uses 8bit/528B to ECC, large page uses 16bit/1056B), utilize the physical parameter of ID to go to read 512B or the 1KB header information data of first BLOCK, if ECC is wrong, then switch and read again after the ECC figure place up to correctly, as 16bit/1056B--->24bit/1070B--->40bit/1096B--->close (as described in close the FLASH that ECC can support embedded ECC, PBA (a kind of title as TOSHIBA, the FLASH of embedded ECC), the FLASH of the clear NAND of MICRON (semiconductor company of Micron Technology) etc. and some embedded controller, as LBA (also being a kind of title, the FLASH of embedded controller) of TOSHIBA (Toshiba) etc.).Carry out verification to reading header information data, judge whether it is required boot code data institutional framework, if then in the follow-up PAGE of this BLOCK, read guidance code, if not then read the header information data of next BLOCK.
Step 30, survey the physical parameter of described ID, it it generally is following six kinds: the big PAGE/5 of an a. address/big PAGE of 8 bit data width b., 5 the address/little PAGE/4 of the 16 bit data width c. address/little PAGE/4 of the 8 bit data width d. address/big PAGE/4 of the 16 bit data width e. address/big PAGE/4 of 8 a bit data width f. address/16 bit data width, read the header information data of first BLOCK by above six kinds of physical parameter combinations, carry out verification to reading header information data, judge whether it is required boot code data institutional framework, if then the follow-up PAGE kind at this BLOCK reads guidance code, if not then read the header information data of next BLOCK.
Step 40, read guidance code: after reading header information data by following bootstrap technique, read first's code of loader and leave among the chip internal SRAM according to data structure, empirical tests effectively back is carried out this part code, finishes system frequency and promotes and necessary SDRAM initialization; Read the second portion code of loader, after the checking effectively, submit the CPU control to, finish guiding; Whole part of loader code pressed PAGE and connected in NAND FLASH, such as the PAGE1 sensing is PAGE2, what last PAGE pointed to is that full 0xff represents to finish, if no end mark shows that code is imperfect, may be reason such as aborted in escalation process, this have guaranteed the integrality of loader; If it is imperfect effectively not read header information data or loader first code and second portion code, then can not forward step 50 to from NAND FLASH guiding.
Step 50, read guidance code from SPI FLASH, bootstrap technique is with step 40, if guidance code effectively then finish guiding, if the invalid step 60 that then forwards to of guidance code.
Step 60, read guidance code from the storer of emmc interface, bootstrap technique is with step 40, if guidance code effectively then finish guiding, forwards step 70 to if guidance code is invalid.
Step 70, initialization UART port and USB port are waited for and PC connects, and any one port has the legal and valid upgrade request, then changes the bootmode of this port over to.
The above, only for preferred embodiment of the present invention, so can not limit scope of the invention process according to this, i.e. the equivalence of doing according to claim of the present invention and description changes and modification, all should still belong in the scope that the present invention contains.

Claims (3)

1. the optimization method of a BOOTROM is characterized in that, specifically comprises the steps:
Read the ID of NAND FLASH behind step 10, the chip reset with low frequency range sequential, if the vendor id of the NAND FLASH that reads and device ID are 0x00 or 0xff, then do not meet NAND FLASH, directly forward step 50 to, if read the ID that can discern then change step 20 over to, if read the ID that cannot discern then change step 30 over to;
The physical parameter of the ID that step 20, use read reads the header information data of first BLOCK, carry out verification to reading header information data, judge whether it is required boot code data institutional framework, if then in the follow-up PAGE of this BLOCK, read guidance code, change step 40, if not then read the header information data of next BLOCK;
The physical parameter of step 30, the described ID of detection, the physical parameter that re-uses the ID that detects reads the header information data of first BLOCK, carry out verification to reading header information data, judge whether it is required boot code data institutional framework, if then the follow-up PAGE kind at this BLOCK reads guidance code, change step 40, if not then read the header information data of next BLOCK;
Step 40, read guidance code: after reading header information data by following bootstrap technique, read first's code of loader and leave among the chip internal SRAM according to data structure, empirical tests effectively back is carried out this part code, finishes system frequency and promotes and necessary SDRAM initialization; Read the second portion code of loader, after the checking effectively, submit the CPU control to, finish guiding,, then can not forward step 50 to from NAND FLASH guiding if it is imperfect effectively not read header information data or loader first code and second portion code;
Step 50, read guidance code according to the bootstrap technique of step 40, if guidance code effectively then finish guiding, if the invalid step 60 that then forwards to of guidance code from SPI FLASH;
Step 60, read guidance code according to the bootstrap technique of step 40, if guidance code effectively then finish guiding, forwards step 70 to if guidance code is invalid from the storer of emmc interface;
Step 70, initialization UART port and USB port are waited for and PC connects, and any one port has the legal and valid upgrade request, then changes the bootmode of this port over to.
2. the optimization method of a kind of BOOTROM according to claim 1, it is characterized in that: in the described step 20, the physical parameter of described ID comprises I/O width, PAGE size, BLOCK size, order and address, ECC, utilize the physical parameter of ID to go to read 512B or the 1KB header information data of first BLOCK, if ECC is wrong, then switches and read again after the ECC figure place up to correctly.
3. the optimization method of a kind of BOOTROM according to claim 1 is characterized in that: in the described step 40, whole part of loader code press PAGE and connected in NAND FLASH, show then that as if no end mark code is imperfect.
CN2011102546825A 2011-08-30 2011-08-30 Method for optimizing boot read-only memory (BOOTROM) Pending CN102279763A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2011102546825A CN102279763A (en) 2011-08-30 2011-08-30 Method for optimizing boot read-only memory (BOOTROM)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2011102546825A CN102279763A (en) 2011-08-30 2011-08-30 Method for optimizing boot read-only memory (BOOTROM)

Publications (1)

Publication Number Publication Date
CN102279763A true CN102279763A (en) 2011-12-14

Family

ID=45105227

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2011102546825A Pending CN102279763A (en) 2011-08-30 2011-08-30 Method for optimizing boot read-only memory (BOOTROM)

Country Status (1)

Country Link
CN (1) CN102279763A (en)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103077056A (en) * 2012-12-31 2013-05-01 中国电子科技集团公司第十五研究所 Method for implementing Bootloader by using small quantity of ROM (Read Only Memory) resources
CN103823664A (en) * 2012-11-19 2014-05-28 中兴通讯股份有限公司 Design method for binary system unified Boot programs and kernel programs
CN106158038A (en) * 2015-04-14 2016-11-23 飞思卡尔半导体公司 The method reading data from nonvolatile memory
CN106897623A (en) * 2015-12-21 2017-06-27 深圳市中兴微电子技术有限公司 It is a kind of support more than the chip that guides safely and its startup method
CN108196869A (en) * 2017-12-21 2018-06-22 北京京存技术有限公司 A kind of EMMC firmwares start method and apparatus
CN109725939A (en) * 2017-10-27 2019-05-07 深圳市中兴微电子技术有限公司 A kind of chip starting method, chip and computer readable storage medium
CN109739565A (en) * 2019-01-07 2019-05-10 深圳忆联信息系统有限公司 A kind of method, apparatus, computer equipment and storage medium for guaranteeing Bootrom and operating normally
WO2021036404A1 (en) * 2019-08-31 2021-03-04 安徽寒武纪信息科技有限公司 Data transmission method and related device
US11934337B2 (en) 2019-08-31 2024-03-19 Anhui Cambricon Information Technology Co., Ltd. Chip and multi-chip system as well as electronic device and data transmission method

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040017708A1 (en) * 2002-07-29 2004-01-29 Choi Young-Joon Computer system with NAND flash memory for booting and storage
CN1996251A (en) * 2007-01-04 2007-07-11 炬力集成电路设计有限公司 Embedded system guiding method and device
CN101021794A (en) * 2006-05-25 2007-08-22 杭州晟元芯片技术有限公司 Program bootstrap method after chip power-on
CN102081538A (en) * 2011-01-11 2011-06-01 上海华勤通讯技术有限公司 Method for making mobile phone processor be compatible with multiple chips
CN102163158A (en) * 2011-04-29 2011-08-24 北京凡达讯科技有限公司 Method for starting system-on-a-chip by NAND flash memory

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040017708A1 (en) * 2002-07-29 2004-01-29 Choi Young-Joon Computer system with NAND flash memory for booting and storage
CN101021794A (en) * 2006-05-25 2007-08-22 杭州晟元芯片技术有限公司 Program bootstrap method after chip power-on
CN1996251A (en) * 2007-01-04 2007-07-11 炬力集成电路设计有限公司 Embedded system guiding method and device
CN102081538A (en) * 2011-01-11 2011-06-01 上海华勤通讯技术有限公司 Method for making mobile phone processor be compatible with multiple chips
CN102163158A (en) * 2011-04-29 2011-08-24 北京凡达讯科技有限公司 Method for starting system-on-a-chip by NAND flash memory

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
《现代电子技术》 20080831 刘裕华等 《基于"Steppingstone"的Bootloader的设计与优化》 第98-99页,第102页 1-3 , 第16期 *
刘裕华等: "《基于"Steppingstone"的Bootloader的设计与优化》", 《现代电子技术》 *

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103823664B (en) * 2012-11-19 2017-12-15 中兴通讯股份有限公司 A kind of design method of binary system unification Boot programs and kernel program
CN103823664A (en) * 2012-11-19 2014-05-28 中兴通讯股份有限公司 Design method for binary system unified Boot programs and kernel programs
US10318268B2 (en) 2012-11-19 2019-06-11 Zte Corporation Setting method for binary integration of boot program and kernel program
CN103077056B (en) * 2012-12-31 2015-12-23 中国电子科技集团公司第十五研究所 Use the Bootlorder implementation method of a small amount of ROM resource
CN103077056A (en) * 2012-12-31 2013-05-01 中国电子科技集团公司第十五研究所 Method for implementing Bootloader by using small quantity of ROM (Read Only Memory) resources
CN106158038A (en) * 2015-04-14 2016-11-23 飞思卡尔半导体公司 The method reading data from nonvolatile memory
CN106158038B (en) * 2015-04-14 2021-03-09 恩智浦美国有限公司 Method for reading data from nonvolatile memory
CN106897623A (en) * 2015-12-21 2017-06-27 深圳市中兴微电子技术有限公司 It is a kind of support more than the chip that guides safely and its startup method
CN109725939A (en) * 2017-10-27 2019-05-07 深圳市中兴微电子技术有限公司 A kind of chip starting method, chip and computer readable storage medium
CN108196869A (en) * 2017-12-21 2018-06-22 北京京存技术有限公司 A kind of EMMC firmwares start method and apparatus
CN109739565A (en) * 2019-01-07 2019-05-10 深圳忆联信息系统有限公司 A kind of method, apparatus, computer equipment and storage medium for guaranteeing Bootrom and operating normally
CN109739565B (en) * 2019-01-07 2022-03-29 深圳忆联信息系统有限公司 Method and device for ensuring normal operation of Bootrom, computer equipment and storage medium
WO2021036404A1 (en) * 2019-08-31 2021-03-04 安徽寒武纪信息科技有限公司 Data transmission method and related device
US11934337B2 (en) 2019-08-31 2024-03-19 Anhui Cambricon Information Technology Co., Ltd. Chip and multi-chip system as well as electronic device and data transmission method

Similar Documents

Publication Publication Date Title
CN102279763A (en) Method for optimizing boot read-only memory (BOOTROM)
CN101650662B (en) Memory device of embedded system and staring method and upgrading of firmware
CN102945173B (en) User program online upgrade system and upgrade method
CN101853692B (en) Controller with flash memory test function, and storage system and test method thereof
US9158476B2 (en) Method for switching operation mode, memory controller and memory storage apparatus
CN105760191A (en) Embedded system equipment programming mass production method
CN102446141B (en) Device and method for realizing write protection control
CN101295255B (en) Firmware updating system and method
US7793004B2 (en) Computer peripheral device implemented as optic storage device or/and removable disk by software emulation and implementing method thereof
US9552287B2 (en) Data management method, memory controller and embedded memory storage apparatus using the same
CN102163155A (en) Upgrade controlling device and method for upgrading memory device
CN101169729A (en) Embedded type system and method for renewing application program
CN101477838B (en) Condition detection apparatus, system and electronic device for NAND flash memory body
CN113377408A (en) High-reliability SRAM type FPGA online upgrading method and system
CN105468390A (en) BOOT online upgrade apparatus and method
CN102662688A (en) An update method and apparatus for Nor flash
US8595420B2 (en) Method for dispatching and transmitting data streams between host system and memory storage apparatus having non-volatile memory and smart card chip, memory controller, and memory storage apparatus
CN101527161B (en) Method for fast programming NAND flash and device thereof
US9146860B2 (en) Flash memory controller, flash memory system, and flash memory control method
CN102629212A (en) Method for indirectly programming to NANDFLASH based on J-LINK
CN107894899A (en) ROM program upgrade systems and upgrade method
US20070162699A1 (en) Apparatus for expanding storage capacity of memory card and operating method of memory card with the same
CN102184115A (en) Method and device for updating system software
CN108052337A (en) A kind of firmware upgrade method and device of eMMC production tools
US20140108711A1 (en) Portable secure device providing storage service

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20111214