G-BOIS是MaxWit开源项目的其中一个子项目,意在打造一个精炼、方便调试的嵌入式Bootloader,目前仅仅支持ARM处理器。
G-BOIS将整个bootloader分成上半部分和下半部分。上半部分短小精悍,小于4K,保证能在一些支持NAND FLASH启动的处理器如S3C2410的NAND FLASH启动。上半部分完成了对CPU时钟、内存、NAND FLASH以及UART的初始化,并加入了kermit协议支持,可以支持从串口或者NAND FLASH读取下半部分并运行下半部分。
下半部分是G-BOIS的主体,也是整个bootloader的主体,支持其它子系统,如网卡、文件系统等等,下半部分才能真正的引导内核。
G-BOIS的设计思想与很多较新的处理器的bootloader架构类似,分成多级启动。如LPC3250的bootloader就分成了Kickstart、S1L以及系统级bootloader,需要3级才能引导操作系统启动。
为了方便分析G-BOIS,先列出G-BOIS的目录结构。
├─g-bios
│ ├─app
│ │ ├─boot
│ │ ├─device_mamger
│ │ ├─flash
│ │ ├─memory
│ │ ├─net
│ │ ├─serial
│ │ ├─shell
│ │ └─sys
│ ├─arch
│ │ └─arm
│ │ ├─atmel
│ │ └─samsung
│ ├─boot //这个目录下的是G-BOIS的上半部分的实现代码。
│ │ └─arm
│ │ ├─atmel
│ │ └─samsung
│ ├─device
│ │ ├─audio
│ │ ├─bus
│ │ ├─flash
│ │ ├─graphics
│ │ ├─interrupt
│ │ ├─key
│ │ ├─led
│ │ ├─net
│ │ ├─rtc
│ │ ├─timer
│ │ ├─touchscreen
│ │ ├─uart
│ │ └─watchdog
│ ├─doc
│ │ ├─Chinese
│ │ └─English
│ ├─filesys
│ │ ├─base
│ │ ├─ext4
│ │ ├─fat32
│ │ ├─generic
│ │ ├─gfs
│ │ ├─ntfs
│ │ ├─yaffs
│ │ └─yaffs2
│ ├─include
│ │ ├─arch
│ │ ├─core
│ │ ├─flash
│ │ └─net
│ ├─lib
│ │ ├─arm
│ │ └─stdlib
│ ├─mm
│ │ ├─arm
│ │ └─heap
│ └─thread
阅读(1229) | 评论(0) | 转发(0) |