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,如需转载请自行联系原作者


相关文章
|
3月前
|
C++ Windows
vs2019 This application failed to start because it could not find or load the QT platform plugin
这篇文章介绍了在VS2019中解决QT程序运行时出现的“无法找到或加载QT平台插件”错误的步骤,通过将必要的DLL文件和插件目录复制到项目解决方案中解决了问题。
|
3月前
webpack——You may need an appropriate loader to handle this file type, currently no loaders are configured to process this file.
webpack——You may need an appropriate loader to handle this file type, currently no loaders are configured to process this file.
415 0
|
3月前
ESLint—— Failed to load config "standard" to extend from
ESLint—— Failed to load config "standard" to extend from
74 0
|
5月前
|
缓存 Java Maven
Spring Boot 启动错误:To display the conditions report re-run your application with ‘debug‘ enable —【已解决】
Spring Boot 启动错误:To display the conditions report re-run your application with ‘debug‘ enable —【已解决】
730 1
|
6月前
|
JavaScript 前端开发
ESLint—— Failed to load config “standard“ to extend from
ESLint—— Failed to load config “standard“ to extend from
178 0
|
6月前
|
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
408 0
|
Java
SpringBoot导入第三方jar方法打包报错Failed to load ApplicationContext Failed to determine a suitable driver cla
这是第一篇博客,很早想写了,只不过每次解决问题后都觉得人家写的蛮好的,自己无须再写了,不过昨天打包时遇到的这个问题,自己找半天解决了,看很多博客也是许久才解决,不说了我的方法如下:
159 0
|
6月前
spring-state-machine持久化restore踩坑
spring-state-machine持久化restore踩坑
110 0
|
6月前
|
Java Spring
spring-doc报错Unable to render this definition
spring-doc报错Unable to render this definition
411 0
|
11月前
|
Java Spring
spring-guides-accessing-data-jpa
spring-guides-accessing-data-jpa
38 1