Boot loader startup sequence

简介:
The boot loader's primary function is to initialize enough of the hardware and CPU to allow the hardware to communicate with the development environment for downloading a Windows CE-based run-time image. 

A boot loader manages the boot process of the target device by initializing the target device, downloading the run-time image, and booting the run-time image on the target device. The boot loader is a utility that is an integral part of the OEM device development process. In some cases, it is also included in the final OEM product. The general purpose of the boot loader is to place the run-time image into memory, and then jump to the OS startup routine. The boot loader can obtain the run-time image in a number of different ways, including loading it over a cabled connection, such as Ethernet, a universal serial bus (USB), or serial connection. The boot loader also loads the OS from a local storage device, such as Compact Flash, or a hard disk. The boot loader might store the run-time image in RAM or in nonvolatile storage, such as flash memory, electrically erasable programmable read only memory (EEPROM), or some other storage device for later use.

Only couple ideas about Boot loader booting sequence. 
1. Initialise the read and write clock speed for the SDRAM to from 95 MHz to 115 MHz. I don't know why 95 MHz to 115 MHz.

2. Initialise the read and write clock speed for the Flash memory to between 9 MHz and 12 MHz. I got no idea why 9 MHz and 12 MHz.

3. Initialise the QVGA display.

4. Initialise the back-light of the display.

5. Initialise microprocessor FFUART (baud rate, data bits, stop bit and so forth). (FFUART: This serial port is what developers can connect to to obtain console access to the Gumstix. Another module which uses this shared serial port is the VDIP module which provides a serial to usb host functionality. ) 

FFUART
The FFUART (for Full-Function UART) serves as the default Linux console on the Gumstix, and supports rates of up to 230kbaud. It is exposed on nearly all 60-pin expansion boards.

The Gumstix Linux kernel maps the FFUART to /dev/ttyS0.

Despite its name, the Gumstix does not use the FFUART as a "full-function" serial port by default: when used as the system console, hardware flow control is disabled.

On all of the boards which have USB, the FFUART CTS and RTS signals are currently used as part of the USB hardware. The RTS is used to tell the host that it's ready (cable plugged in), and the CTS is used to detect cable insertion.

FFUART GPIO configuration:

echo "AF1 in" > /proc/gpio/GPIO34
echo "AF2 out" > /proc/gpio/GPIO39
  
Refer to  http://docwiki.gumstix.org/index.php/UART_Schematics

UART (universal asynchronous receiver/transmitter) is a type of "asynchronous receiver/transmitter", a piece of computer  hardware  that translates data between parallel and serial forms. UARTs are commonly used in conjunction with other communication standards such as EIA RS-232.

As of 2008, UARTs are commonly used with RS-232 for embedded systems communications. It is useful to communicate between microcontrollers and also with PCs. Many chips provide UART functionality in silicon, and low-cost chips exist to convert logic level signals (such as TTL voltages) to RS-232 level signals.

Refer to http://en.wikipedia.org/wiki/Universal_asynchronous_receiver/transmitter

I think FFUART is serial port for debugging. And it can be communicated with a host PC. 

6. Initialise I2C controller.

7. Initialise the peripherals such as keyboard.  

8. If a sequence of key presses is detected, shall change booting mode or execute a particularly operation.  

9. Verify and validate the integrity of System Software image.

10. Copy the System Software image from flash memory to the SDRAM.

11. Pass control to the System Software image.

 


    本文转自Jake Lin博客园博客,原文链接:http://www.cnblogs.com/procoder/archive/2010/06/10/Boot-loader-startup-sequence.html,如需转载请自行联系原作者


相关文章
|
18天前
|
Java
springboot启动报错:“Error starting ApplicationContext. To display the conditions report re-run your appl
springboot启动报错:“Error starting ApplicationContext. To display the conditions report re-run your appl
26 0
|
5月前
Error starting ApplicationContext. To display the auto-configuration report re-run your application
Error starting ApplicationContext. To display the auto-configuration report re-run your application
|
容器
SpringMVC - load-on-startup
SpringMVC - load-on-startup
105 0
|
Java
SpringBoot启动报错Unable to start EmbeddedWebApplicationContext due to missing
当启动SpringBoot时报错Unable to start EmbeddedWebApplicationContext due to missing应该如何做?本文带大家解决这个问题。
428 0
SpringBoot启动报错Unable to start EmbeddedWebApplicationContext due to missing
Embedded web server initialization - jar file default-mimetypes.properties
Embedded web server initialization - jar file default-mimetypes.properties
Embedded web server initialization - jar file default-mimetypes.properties
|
Java 数据库连接 mybatis
IDEA安装mybatis plugin启动报错Could not load ..Start up Aborted Exception: Fatal error initializing plugin com.seventh7.plugin.mybatis
启动IDEA时异常,报Could not load ..Start up Aborted Exception: Fatal error initializing plugin com.seventh7.
4377 0
|
Oracle 关系型数据库 Shell
|
Java Spring Maven
深入Spring Boot:怎样排查 Cannot determine embedded database driver class for database type NONE
写在前面 这个demo来说明怎么一步步排查一个常见的spring boot AutoConfiguration的错误。 https://github.
3625 0