SlideShare a Scribd company logo
Submit Search
Upload
Login
Signup
BeagleBone Black Bootloaders
Report
SysPlay eLearning Academy for You
Follow
SysPlay eLearning Academy for You
Jan. 9, 2019
•
0 likes
•
3,921 views
1
of
27
BeagleBone Black Bootloaders
Jan. 9, 2019
•
0 likes
•
3,921 views
Report
Technology
BeagleBone Black Bootloaders
SysPlay eLearning Academy for You
Follow
SysPlay eLearning Academy for You
Recommended
BeagleBoard-xM Booting Process
SysPlay eLearning Academy for You
3.8K views
•
25 slides
BeagleBone Black Booting Process
SysPlay eLearning Academy for You
18.2K views
•
29 slides
Tegra 186のu-boot & Linux
Mr. Vengineer
1.4K views
•
17 slides
Qemu Pcie
The Linux Foundation
2.3K views
•
24 slides
Embedded_Linux_Booting
Rashila Rr
500 views
•
30 slides
I2C Drivers
SysPlay eLearning Academy for You
28.6K views
•
28 slides
More Related Content
What's hot
BeagleBone Black Bootloaders
SysPlay eLearning Academy for You
4.6K views
•
24 slides
Diving into SWUpdate: adding new platform support in 30minutes with Yocto/OE !
Pierre-jean Texier
930 views
•
32 slides
Linux Kernel Module - For NLKB
shimosawa
5.9K views
•
105 slides
Audio Drivers
Anil Kumar Pugalia
20.6K views
•
11 slides
U Boot or Universal Bootloader
Satpal Parmar
21.1K views
•
25 slides
Secure Boot on ARM systems – Building a complete Chain of Trust upon existing...
Linaro
15.1K views
•
26 slides
What's hot
(20)
BeagleBone Black Bootloaders
SysPlay eLearning Academy for You
•
4.6K views
Diving into SWUpdate: adding new platform support in 30minutes with Yocto/OE !
Pierre-jean Texier
•
930 views
Linux Kernel Module - For NLKB
shimosawa
•
5.9K views
Audio Drivers
Anil Kumar Pugalia
•
20.6K views
U Boot or Universal Bootloader
Satpal Parmar
•
21.1K views
Secure Boot on ARM systems – Building a complete Chain of Trust upon existing...
Linaro
•
15.1K views
Project ACRN hypervisor introduction
Project ACRN
•
158 views
Introduction to Linux Drivers
Anil Kumar Pugalia
•
64.5K views
20111015 勉強会 (PCIe / SR-IOV)
Kentaro Ebisawa
•
8.6K views
Android Boot Time Optimization
Kan-Ru Chen
•
13K views
USB Drivers
Anil Kumar Pugalia
•
42.7K views
Vmlinux: anatomy of bzimage and how x86 64 processor is booted
Adrian Huang
•
872 views
Meet cute-between-ebpf-and-tracing
Viller Hsiao
•
8.7K views
Uboot startup sequence
Houcheng Lin
•
33.6K views
Launch the First Process in Linux System
Jian-Hong Pan
•
2.1K views
Embedded Linux/ Debian with ARM64 Platform
SZ Lin
•
3.6K views
Spi drivers
pradeep_tewani
•
388 views
Hands-on ethernet driver
SUSE Labs Taipei
•
2.1K views
The Linux Block Layer - Built for Fast Storage
Kernel TLV
•
4.2K views
LISA2019 Linux Systems Performance
Brendan Gregg
•
347.4K views
Similar to BeagleBone Black Bootloaders
BeagleBoard-xM Bootloaders
SysPlay eLearning Academy for You
7.2K views
•
17 slides
Bootloaders
Anil Kumar Pugalia
9.8K views
•
19 slides
U-Boot Porting on New Hardware
RuggedBoardGroup
2K views
•
31 slides
Ch4 v70 system_configuration_en
confidencial
2.2K views
•
44 slides
Raspberry Pi tutorial
艾鍗科技
2.3K views
•
33 slides
PowerAI Deep Dive ( key points )
Paulo Sergio Lemes Queiroz
91 views
•
14 slides
Similar to BeagleBone Black Bootloaders
(20)
BeagleBoard-xM Bootloaders
SysPlay eLearning Academy for You
•
7.2K views
Bootloaders
Anil Kumar Pugalia
•
9.8K views
U-Boot Porting on New Hardware
RuggedBoardGroup
•
2K views
Ch4 v70 system_configuration_en
confidencial
•
2.2K views
Raspberry Pi tutorial
艾鍗科技
•
2.3K views
PowerAI Deep Dive ( key points )
Paulo Sergio Lemes Queiroz
•
91 views
SPI Drivers
SysPlay eLearning Academy for You
•
10K views
my Windows 7 info
isky guard
•
2.1K views
SPI Drivers
SysPlay eLearning Academy for You
•
13.1K views
建構嵌入式Linux系統於SD Card
艾鍗科技
•
5.9K views
Armboot process zeelogic
Aleem Shariff
•
2.2K views
Motherboard
BarojReal
•
95 views
101 1.1 hardware settings
Acácio Oliveira
•
1.2K views
Understanding the BBB
SysPlay eLearning Academy for You
•
9.5K views
ChromePad - Chromium OS ThinkPad X220
AndrewWright224
•
1.8K views
ChromePad - Chromium OS for ThinkPad
AndrewWright224
•
372 views
Hypervisor and VDI security
Denis Gundarev
•
2.8K views
Aplus essentials-exam-cram
Peter Sonko
•
822 views
Study on Android Emulator
Samael Wang
•
6.7K views
BlueHat v17 || Betraying the BIOS: Where the Guardians of the BIOS are Failing
BlueHat Security Conference
•
858 views
More from SysPlay eLearning Academy for You
Linux Internals Part - 3
SysPlay eLearning Academy for You
117 views
•
52 slides
Linux Internals Part - 2
SysPlay eLearning Academy for You
59 views
•
57 slides
Linux Internals Part - 1
SysPlay eLearning Academy for You
91 views
•
70 slides
Kernel Timing Management
SysPlay eLearning Academy for You
3K views
•
29 slides
POSIX Threads
SysPlay eLearning Academy for You
4.1K views
•
21 slides
Linux DMA Engine
SysPlay eLearning Academy for You
6K views
•
23 slides
More from SysPlay eLearning Academy for You
(12)
Linux Internals Part - 3
SysPlay eLearning Academy for You
•
117 views
Linux Internals Part - 2
SysPlay eLearning Academy for You
•
59 views
Linux Internals Part - 1
SysPlay eLearning Academy for You
•
91 views
Kernel Timing Management
SysPlay eLearning Academy for You
•
3K views
POSIX Threads
SysPlay eLearning Academy for You
•
4.1K views
Linux DMA Engine
SysPlay eLearning Academy for You
•
6K views
Cache Management
SysPlay eLearning Academy for You
•
1.8K views
Introduction to BeagleBone Black
SysPlay eLearning Academy for You
•
8.2K views
Introduction to BeagleBoard-xM
SysPlay eLearning Academy for You
•
3.2K views
Platform Drivers
SysPlay eLearning Academy for You
•
17.4K views
Serial Drivers
SysPlay eLearning Academy for You
•
17K views
Linux System
SysPlay eLearning Academy for You
•
852 views
Recently uploaded
BuilderAI Proposal_Malesniak
Michael Lesniak
95 views
•
9 slides
Demystifying ML/AI
Matthew Reynolds
36 views
•
30 slides
How to use the Cataloguing Code Ethics at your day job : a hands-on workshop ...
CILIP MDG
38 views
•
13 slides
Framing Few Shot Knowledge Graph Completion with Large Language Models
MODUL Technology GmbH
39 views
•
11 slides
h2 meet pdf test.pdf
JohnLee971654
58 views
•
4 slides
Elevate Your Enterprise with FME 23.1
Safe Software
336 views
•
72 slides
Recently uploaded
(20)
BuilderAI Proposal_Malesniak
Michael Lesniak
•
95 views
Demystifying ML/AI
Matthew Reynolds
•
36 views
How to use the Cataloguing Code Ethics at your day job : a hands-on workshop ...
CILIP MDG
•
38 views
Framing Few Shot Knowledge Graph Completion with Large Language Models
MODUL Technology GmbH
•
39 views
h2 meet pdf test.pdf
JohnLee971654
•
58 views
Elevate Your Enterprise with FME 23.1
Safe Software
•
336 views
Roottoo Innovation V24_CP.pdf
roottooinnovation
•
33 views
Improving Employee Experiences on Cisco RoomOS Devices, Webex, and Microsoft ...
ThousandEyes
•
77 views
Navigating the Future
OnBoard
•
28 views
ISO Survey 2022: ISO 27001 certificates (ISMS)
Andrey Prozorov, CISM, CIPP/E, CDPSE. LA 27001
•
96 views
Product Research Presentation-Maidy Veloso.pptx
MaidyVeloso
•
27 views
Unleashing Innovation: IoT Project with MicroPython
Vubon Roy
•
33 views
Webinar: Discover the Power of SpiraTeam - A Jira Alternative To Revolutioniz...
Inflectra
•
39 views
Accelerating Data Science through Feature Platform, Transformers, and GenAI
FeatureByte
•
158 views
info_session_gdsc_tmsl .pptx
NikitaSingh741518
•
24 views
Announcing InfluxDB Clustered
InfluxData
•
58 views
Google Cloud Study Jams Info Session
GDSCPCCE
•
51 views
Keynote: Two years at the British Library... and counting / Alan Danskin (Bri...
CILIP MDG
•
32 views
Machine learning with quantum computers
Speck&Tech
•
26 views
web test repair.pptx
YuanzhangLin
•
39 views
BeagleBone Black Bootloaders
1.
© 2015-18 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. BeagleBone Black Bootloaders
2.
2© 2015-18 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. What to Expect? BBB Memory Organization Beagle Booting Process W's of X-Loader BSP in X-Loader W's of U-Boot BSP in U-Boot
3.
3© 2015-18 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. BBB Memory Organization DDR 512MB ROM Internal RAM 64KB SOC BeagleBone Black 0x800000 00 0x402000 00 0x402F0400 EMMC 4GB Ext. MMC
4.
4© 2015-18 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. General Booting of BeagleBoard ROM Code Internal ROM X-Loader Internal SRAM Internal ROM U-Boot External DDR Kernel External DDR
5.
5© 2015-18 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)
6.
6© 2015-18 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. X-Loader
7.
7© 2015-18 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. W's of X-Loader First stage bootloader for Beagle Board Derived from u-boot – the second stage bootloader Named as MLO (Memory Loader) in filesystem. Runs in an internal SRAM Loads the second stage bootloader i.e. U- Boot
8.
8© 2015-18 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. Let's Get Down to Source Code
9.
9© 2015-18 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. X-Loader Code Flow cpu/armv7/start.S reset() Disable IRQ & FIQ. Switch to supervisor mode Low Level Initialization cpu_init_cp15() Invalidate and disable Instruction & data Cache Disable MMU cpu/armv7/lowlevel_i nit.S lowlevel_init() arm/lib/crt0.S _main() C Runtime setup arm/lib/spl.c board_init_f() Early Board Setup Clear BSS and jump to board_init_r() Common/spl/spl.c board_init_r() Load the u-boot
10.
10© 2015-18 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. X-Loader for BBB Board configuration include/configs/am335x_evm.h CPU dependent code arch/arm/cpu/armv7/*.c arch/arm/cpu/armv7/lowlevel_init.S arch/arm/lib/crt0.S arch/arm/cpu/armv7/am33x/board.c arch/arm/lib/spl.c Board dependent code Board/ti/am335x/board.* Board independent code common/spl/spl.c
11.
11© 2015-18 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. X-loader Hands on On which pin is the LED connected? How is it connected – Active high/Active low? Pin muxing/Direction Registers to manipulate the LED
12.
12© 2015-18 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. X-loader Hands on... Schematic (BBB SRM) On which pin is the LED connected? How is it connected - Active high/Active low? Datasheet (TRM of AM33XX) Pin muxing / Direction Registers to manipulate the LED
13.
13© 2015-18 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. U-Boot
14.
14© 2015-18 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
15.
15© 2015-18 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)
16.
16© 2015-18 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. U-Boot Initialization Details Bootloader starts its execution from flash /RAM Hardware Diagnostics, like POST, … Configuring the CPU speed, MMU setting, etc Memory setup & initialization Setting up interfacing ports like serial, VGA, … Sets up the address of the boot parameters
17.
17© 2015-18 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. Let's Get Down to Source Code
18.
18© 2015-18 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. U-Boot Code Flow cpu/armv7/start.S reset() Disable IRQ & FIQ. Switch to supervisor mode Low Level Initialization cpu_init_cp15() Invalidate and disable Instruction & data Cache Disable MMU cpu/armv7/lowlevel_i nit.S lowlevel_init() arm/lib/crt0.S _main() C Runtime setup arm/lib/board.c board_init_f() Early Board Setup Calculate Addresses (SP, Dest, GD) for Relocation Call the board initialization functions Arch/arm/lib/reloc ate.S relocate_code() General Relocation arm/lib/crt0.S _main() Clear BSS, Setup GD and jump to board_init_r() arm/lib/board.c board_init_r() Final Board Setup Board/it/am335x/board.c board_init() Board specific device setup env_relocate() Setup Environment common/main.c main_loop() Boot the kernel or give out the u-boot shell
19.
19© 2015-18 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. Let's Check What is the starting point of u-boot? Where is the address of the Environmental Variables set? Where is RAM initialized? Which file is the interface between the architecture dependent code & board dependent code? Where is serial initialized? From where is the kernel invoked? And what are the parameters passed to the kernel? Where is default environment defined? where is the board dependent file for BBB? Where is the configuration file for BBB? Where is the architecture number set? Where is the pin multiplexing done? From where does the boot delay comes?
20.
20© 2015-18 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. U-Boot BSP Board configuration include/configs/am335x_evm.h CPU dependent code arch/arm/cpu/armv7/*.c arch/arm/cpu/armv7/lowlevel_init.S arch/arm/lib/crt0.S arch/arm/lib/relocate.S arch/arm/cpu/armv7/am33x/board.c arch/arm/lib/board.c Board dependent code Board/ti/am335x/board.* Board independent code common/* driver, fs, common(cmd, flash, env..)
21.
21© 2015-18 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. U-Boot Configuration Creating a configuration file for the board Adding a Kconfig file in 'board/<vendor>/<board> with below info: Architecture CPU Board Vendor (May be NULL) SoC (May be NULL)
22.
22© 2015-18 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. U-Boot Configuration Output Configuration files for use in C Sources include/generated/autoconf.h spl/include/generated/autoconf.h (For SPL) include/config.h include/configs/<board>.h Configuration files for Makefile include/config/auto.conf spl/include/config/auto.conf (For SPL) include/autoconf.mk
23.
23© 2015-18 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. U-Boot Porting Implies adding a new Board to U-Boot That entails Adding board specific code at the right places Adding the new board directory under board/ with Makefile Initialization Code for the Board Kconfig file Adding the new board header under include/configs/ with Configuration for the Board
24.
24© 2015-18 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. U-Boot Porting Hands On Add the configuration file .h in include/configs Add the Kconfig file at board/<vendor>/<soc>/ Modify the arch/arm/Kconfig to add the menu item for the board and source the board dependent Kconfig file Add the board dependent file at board/<vendor>/<soc>/ Modify the path for linker script at include/configs/<config_name.h> In the linker script, add the path for built_in.o for the board. Add the defconfig file in configs folder. Add atleast CONFIG_ARM and CONFIG_TARGET_<BOARD>
25.
25© 2015-18 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. Env in I2C eeprom Configure for Env is in eeprom I2C EEPROM Slave Address Env offset in eeprom Page write delay Page write bits
26.
26© 2015-18 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. What all have learnt? BBB Memory Organization Beagle Booting Process W's of X-Loader BSP in X-Loader W's of U-Boot BSP in U-Boot
27.
27© 2015-18 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. Any Queries?