Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
© 2015-17 SysPlay Workshops <workshop@sysplay.in>
All Rights Reserved.
BeagleBone Black Booting Process
2© 2015-17 SysPlay Workshops <workshop@sysplay.in>
All Rights Reserved.
What to Expect?
PC Booting Process
Beagle Booting ...
3© 2015-17 SysPlay Workshops <workshop@sysplay.in>
All Rights Reserved.
PC Booting Process
Power-Up / Reset Operation
BIOS...
4© 2015-17 SysPlay Workshops <workshop@sysplay.in>
All Rights Reserved.
BBB Memory Organization
DDR
512MB
ROM
Internal
RAM...
5© 2015-17 SysPlay Workshops <workshop@sysplay.in>
All Rights Reserved.
General Booting of BeagleBoard
Image under “CC BY-...
6© 2015-17 SysPlay Workshops <workshop@sysplay.in>
All Rights Reserved.
BBB Images
ROM
Code
X-loader
SOC
BeagleBone Black
...
7© 2015-17 SysPlay Workshops <workshop@sysplay.in>
All Rights Reserved.
AM335x Processor Boot Modes
Memory Booting
NAND, N...
8© 2015-17 SysPlay Workshops <workshop@sysplay.in>
All Rights Reserved.
Beagle Booting Process
(SD Card)
ROM code loads x-...
9© 2015-17 SysPlay Workshops <workshop@sysplay.in>
All Rights Reserved.
Board Bring Up
Spoil the board
Delete u-boot.img, ...
10© 2015-17 SysPlay Workshops <workshop@sysplay.in>
All Rights Reserved.
Recovering the Board
Copy the user.txt and u-boot...
11© 2015-17 SysPlay Workshops <workshop@sysplay.in>
All Rights Reserved.
SD Card Partitioning
fdisk /dev/mmcblk0
Create a ...
12© 2015-17 SysPlay Workshops <workshop@sysplay.in>
All Rights Reserved.
Creating & Filling the Filesystem
Create the File...
13© 2015-17 SysPlay Workshops <workshop@sysplay.in>
All Rights Reserved.
Board Bring up Hands On
Delete all the contents o...
14© 2015-17 SysPlay Workshops <workshop@sysplay.in>
All Rights Reserved.
What is a Bootloader?
Also, referred to as boot m...
15© 2015-17 SysPlay Workshops <workshop@sysplay.in>
All Rights Reserved.
Tasks of a Bootloader
Initialization Tasks
Memory...
16© 2015-17 SysPlay Workshops <workshop@sysplay.in>
All Rights Reserved.
Design of Bootloaders
As Bootloader is started by...
17© 2015-17 SysPlay Workshops <workshop@sysplay.in>
All Rights Reserved.
Bootloader Comparisons
On Desktops
Initialization...
18© 2015-17 SysPlay Workshops <workshop@sysplay.in>
All Rights Reserved.
Stage 2 Bootloader Flavours
Prevalent Desktop Boo...
19© 2015-17 SysPlay Workshops <workshop@sysplay.in>
All Rights Reserved.
Check
Name the Stage 1 & Stage 2 bootloaders
Desk...
20© 2015-17 SysPlay Workshops <workshop@sysplay.in>
All Rights Reserved.
U-Boot
21© 2015-17 SysPlay Workshops <workshop@sysplay.in>
All Rights Reserved.
W's of U-Boot
Universal Bootloader (U-Boot)
An Op...
22© 2015-17 SysPlay Workshops <workshop@sysplay.in>
All Rights Reserved.
U-Boot Source Tree
arch – Architecture dependent ...
23© 2015-17 SysPlay Workshops <workshop@sysplay.in>
All Rights Reserved.
U-Boot Hands-on
Stopping at the U-Boot
Help - “?”...
24© 2015-17 SysPlay Workshops <workshop@sysplay.in>
All Rights Reserved.
Booting through the Serial
Boot ROM can load any ...
25© 2015-17 SysPlay Workshops <workshop@sysplay.in>
All Rights Reserved.
BBB Serial Booting
ROM
Code
X-loader
SOC
ROM
Inte...
26© 2015-17 SysPlay Workshops <workshop@sysplay.in>
All Rights Reserved.
U-Boot Compiling
Preparing the Makefile
Setup CRO...
27© 2015-17 SysPlay Workshops <workshop@sysplay.in>
All Rights Reserved.
Adding the Command in U-Boot
Create the file cmd_...
28© 2015-17 SysPlay Workshops <workshop@sysplay.in>
All Rights Reserved.
What all have learnt?
PC Booting Process
Beagle B...
29© 2015-17 SysPlay Workshops <workshop@sysplay.in>
All Rights Reserved.
Any Queries?
Upcoming SlideShare
Loading in …5
×

BeagleBone Black Booting Process

10,561 views

Published on

Booting Process of BeagleBone Black

Published in: Technology
  • Be the first to comment

BeagleBone Black Booting Process

  1. 1. © 2015-17 SysPlay Workshops <workshop@sysplay.in> All Rights Reserved. BeagleBone Black Booting Process
  2. 2. 2© 2015-17 SysPlay Workshops <workshop@sysplay.in> All Rights Reserved. What to Expect? PC Booting Process Beagle Booting Process Booting through SD Card Partitioning & Creating Root Filesystem W's of Bootloaders U-Boot Serial Booting Adding the command in U-Boot
  3. 3. 3© 2015-17 SysPlay Workshops <workshop@sysplay.in> All Rights Reserved. PC Booting Process Power-Up / Reset Operation BIOS (POST) Primary Bootloader (446 Bytes) Primary Bootloader (446 Bytes) 0XAA55 Partition Table (64 Bytes) GRUB/LILO (Kernel Loader) Kernel Initrd Init (User Space App.) System Startup Stage 1 Bootloader Stage 2 Bootloader KernelStage 2 Bootloader User Space
  4. 4. 4© 2015-17 SysPlay Workshops <workshop@sysplay.in> All Rights Reserved. BBB Memory Organization DDR 512MB ROM Internal RAM 128KB SOC BeagleBone Black 0x80000000 0x40200000 0x402F0400 EMMC 4GB Ext. MMC
  5. 5. 5© 2015-17 SysPlay Workshops <workshop@sysplay.in> All Rights Reserved. General Booting of BeagleBoard Image under “CC BY-SA 3.0 US” from http://omappedia.org/wiki/Bootloader_Project
  6. 6. 6© 2015-17 SysPlay Workshops <workshop@sysplay.in> All Rights Reserved. BBB Images ROM Code X-loader SOC BeagleBone Black ROM Internal RAM DDR u-boot bbb.dtb uImage Ramdisk/initrd (Ramdisk Boot)
  7. 7. 7© 2015-17 SysPlay Workshops <workshop@sysplay.in> All Rights Reserved. AM335x Processor Boot Modes Memory Booting NAND, NOR, MMC Peripheral Booting USB, UART, Ethernet The Order / Sequence is determined by The set of GPIO configuration pins called SYSBOOT pins (5 pins)
  8. 8. 8© 2015-17 SysPlay Workshops <workshop@sysplay.in> All Rights Reserved. Beagle Booting Process (SD Card) ROM code loads x-loader (MLO) Performs External DRAM configuration X-loader loads u-boot Default location is /media/mmcblkp01/u-boot.bin U-boot executes default environment/commands Default location is /mmcblkp01/uEnv.txt Commands load the Kernel Default location is /media/mmcblkop2/boot/uImage Kernel reads root file system
  9. 9. 9© 2015-17 SysPlay Workshops <workshop@sysplay.in> All Rights Reserved. Board Bring Up Spoil the board Delete u-boot.img, uImage and user.txt Get the u-boot.img and user.txt Change the ipaddr in user.txt Reboot the board Press the user button until countdown This will boot the board with ramdisk Re-partition the card Create 3 partitions and filesystem on them Restore the required images Get MLO, u-boot.img, uEnv.txt and am335x-boneblack.dtb Get the RootFs.xz in second partition and untar the same
  10. 10. 10© 2015-17 SysPlay Workshops <workshop@sysplay.in> All Rights Reserved. Recovering the Board Copy the user.txt and u-boot.img tftp -g <serverip> -r u-boot_bringup.img -l u-boot.img tftp -g <serverip> -r user.txt -l user.txt Change the ip address in user.txt Delete the kernel - /boot/zImage Delete the Root Filesystem Reboot the system
  11. 11. 11© 2015-17 SysPlay Workshops <workshop@sysplay.in> All Rights Reserved. SD Card Partitioning fdisk /dev/mmcblk0 Create a windows partition of 116MB Make it bootable Create two primary Linux partitions of sizes 3GB and 1GB approx
  12. 12. 12© 2015-17 SysPlay Workshops <workshop@sysplay.in> All Rights Reserved. Creating & Filling the Filesystem Create the Filesystem of type Fat 32 on first partition mkfs.vfat -F 32 /dev/mmcblk0p1 -n boot Create the Filesystem of type ext2 on Second and third partitions mke2fs -L FirstRootFs /dev/mmcblk0p2 mke2fs -L SecondRootFs /dev/mmcblk0p3 Fill the filesystem with contents tftp -g 192.168.20.181 -r RootFs.xz tar -zxvf RootFs.xz Copy u-boot_bringup.img, user.txt and uEnv.txt in vfat partition tftp -g <server_ip> -r u-boot_bringup.img -l u-boot.img tftp -g <server_ip> -r user.txt tftp -g <server_ip> -r uEnv.txt tftp -g <server_ip> -r am335x-boneblack.dtb
  13. 13. 13© 2015-17 SysPlay Workshops <workshop@sysplay.in> All Rights Reserved. Board Bring up Hands On Delete all the contents of External SD card Get the MLO, u-boot.img, user.txt Press the boot switch to change the booting sequence Kernel boots with ramdisk Re-partition the card and create the filesystem(vfat on first partition and Ext2 on other two) Get the MLO, u-boot.img, am335x-boneblack.dtb, uEnv.txt and user.txt in first partition Get the Root Filesystem in second partition
  14. 14. 14© 2015-17 SysPlay Workshops <workshop@sysplay.in> All Rights Reserved. What is a Bootloader? Also, referred to as boot monitor, is a small piece of software that executes soon after powering up a system Simply, a loader (program), which boots up (starts) the system A Customized Program started by Controller's Internal Code in Embedded Systems, Or External Pre-programmed Code (like BIOS) in Desktops
  15. 15. 15© 2015-17 SysPlay Workshops <workshop@sysplay.in> All Rights Reserved. Tasks of a Bootloader Initialization Tasks Memory Setup & Initialization System Peripheral Initialization for the kernel Actual Task Load the RAM-based File System, like initrd, initramfs, ... Load the Kernel with proper arguments Jump to the start of the Kernel Additional Tasks Multiple Kernel Boots
  16. 16. 16© 2015-17 SysPlay Workshops <workshop@sysplay.in> All Rights Reserved. Design of Bootloaders As Bootloader is started by a fixed code It needs to be placed at a hard-coded location Hard-coded locations are not big enough for the complete code (/ logic / tasks) of the bootloader Hence, it is typically split into 2 portions Stage 1 – Small enough to load Stage 2 from our desired location Stage 2 – The actual bootloader we want to have
  17. 17. 17© 2015-17 SysPlay Workshops <workshop@sysplay.in> All Rights Reserved. Bootloader Comparisons On Desktops Initialization Tasks are done by BIOS Bootloader is to just Boot the Kernel On Embedded Systems All needs to be done by the Bootloader But in an optimized way Hence, the 2 bootloaders are Quite different from each other Later being more board dependent & constrained
  18. 18. 18© 2015-17 SysPlay Workshops <workshop@sysplay.in> All Rights Reserved. Stage 2 Bootloader Flavours Prevalent Desktop Bootloaders LILO GRUB SYSLINUX loadlin Coreboot (Earlier called LinuxBIOS) Popular Embedded System Bootloaders BootLoader Object (BLOB) Redboot U-Boot
  19. 19. 19© 2015-17 SysPlay Workshops <workshop@sysplay.in> All Rights Reserved. Check Name the Stage 1 & Stage 2 bootloaders Desktops Embedded Systems
  20. 20. 20© 2015-17 SysPlay Workshops <workshop@sysplay.in> All Rights Reserved. U-Boot
  21. 21. 21© 2015-17 SysPlay Workshops <workshop@sysplay.in> All Rights Reserved. W's of U-Boot Universal Bootloader (U-Boot) An Open Source Bootloader With minimal changes, can be ported for any board GRUB/LILO Designed with x-86 in mind Huge in Size Needs to be changed drastically for porting on other architecture
  22. 22. 22© 2015-17 SysPlay Workshops <workshop@sysplay.in> All Rights Reserved. U-Boot Source Tree arch – Architecture dependent Code board – Board dependent Code common – Environment & Command Line Code doc – Documentation drivers – Device specific Drivers fs – File System support Code include – Headers lib – Compression, Encryption related Code net – Minimal Network Stack tools – U-Boot Utilities (mkimage is here)
  23. 23. 23© 2015-17 SysPlay Workshops <workshop@sysplay.in> All Rights Reserved. U-Boot Hands-on Stopping at the U-Boot Help - “?” Commands Booting: bootp, bootm, boot, ... NOR Flash: erase, cp, protect, … NAND Flash: nand Miscellaneous: reset, ... ... Environment Variables printenv setenv saveenv
  24. 24. 24© 2015-17 SysPlay Workshops <workshop@sysplay.in> All Rights Reserved. Booting through the Serial Boot ROM can load any binary x-loader image into the internal SRAM of 109K For Serial Boot, A simple ID is written out of the serial port If host responds within that short window of time The ROM reads from serial port Transfers the data to the internal SRAM Control is passed to the start of the SRAM.
  25. 25. 25© 2015-17 SysPlay Workshops <workshop@sysplay.in> All Rights Reserved. BBB Serial Booting ROM Code X-loader SOC ROM Internal RAM DDR u-boot bbb.dtb uImage Ramdisk/initrd (Ramdisk Boot) X-Loader u-boot
  26. 26. 26© 2015-17 SysPlay Workshops <workshop@sysplay.in> All Rights Reserved. U-Boot Compiling Preparing the Makefile Setup CROSS_COMPILE for cross compilation Or, invoke make with these options Configuring for a particular board make <board>_config Compiling for the configured board make (Output would be u-boot.img) Cleaning up make clean
  27. 27. 27© 2015-17 SysPlay Workshops <workshop@sysplay.in> All Rights Reserved. Adding the Command in U-Boot Create the file cmd_<file>.c Fill the Macro 'U_BOOT_CMD()' name: the name of the command maxargs: the maximum number of arguments this function takes command: func pointer (*cmd)(struct cmd_tbl_s *, int, int, char *[]) usage: Short Description help: Long description Add the entry into common/Makefile COBJS-$(CONFIG_CMD_<NAME>) += cmd_<file>.o Include the macro CONFIG_CMD_<NAME> in board.h file
  28. 28. 28© 2015-17 SysPlay Workshops <workshop@sysplay.in> All Rights Reserved. What all have learnt? PC Booting Process Beagle Booting Process Booting through SD Card Partitioning & Creating Root Filesystem W's of Bootloaders U-Boot Serial Booting Adding the command in U-Boot
  29. 29. 29© 2015-17 SysPlay Workshops <workshop@sysplay.in> All Rights Reserved. Any Queries?

×