SlideShare a Scribd company logo
1 of 36
From first power-on to OS booting:
software solutions for hardware issues
October 2016
2
Specification
Schematics
Design/Routing
Manufacturing
Device development
Device
Reference platform
Typical design flow
3
In the beginning
Reference platform
PINMUXes, GPIOs, CLKs, etc:
Device under development
(“10 differences”)
4
PowerOn
 Leds are on
 Voltages are OK
 Clocks are generated
 POR sequence is correct
 No smoke!
Boot
5
Engineer’s tools
UART as “window into the world” JTAG as “last hope”
GPIO bit-banging
6
System Boot
Boot mode
• NOR Flash
• NAND Flash
• SD/MMC/eMMC
• USB
• UART (“BOOTME”!)
• SPI/I2C (NOR, EEPROM)
• …
7
System Boot
Typical booting sequence
OnChip ROM
Boot source
1
OnChip RAM
(SPL, IBL, etc.)
2 3
RAM,
Bootloader
OS
4
1. OnChip ROM detects boot source
2. OnChip ROM reads intermediate bootloader into OnChip RAM and transfers
control to it
Or
OnChip ROM reads configuration into OnChip RAM, initializes RAM, loads and
runs main bootloader
3. SPL initializes RAM, loads and runs main bootloader
4. Main bootloader loads OS
2
8
Intermediate bootloader
SPL – Secondary Program Loader
Common name
Other names (Vendor specific):
IBL (Intermediate Boot Loader)
UBL (User Boot Loader)
X-loader (External Loader)
…
Features:
• Open source (Vendor provided)
• Executing in OnChip RAM
• Small size (OnChip RAM)
Main functions:
• Memory Controller and RAM initialization
• Loads main bootloader
9
RAM test
OnChip RAM
(SPL, IBL, etc.)
RAM,
Bootloader
Loading failed ?
Memory Test!
• Pattern (0x00000000, 0xFFFFFFFF, …)
• Walking ‘1’
• Walking ‘0’
• Address
• Word, halfword, byte
Classic Memory Test: Implementation:
• SPL
• Standalone (OnChip RAM)
• Registers based (NOR flash)
10
Bootloader
• U-Boot (ARM, x86, …)
• RedBoot (ARM, x86, …)
• PMON2000 (MIPS, PowerPC)
• PRIME (MIPS)
• …
• Open source
• Simple configuring (GUI, menuconfig)
• Monitor functions (memory r/w, devices)
• Extensibility (new functionlality)
• Scripting (U-Boot, RedBoot)
• Client applications (HW tests)
Alternatives: Capabilities:
11
U-Boot: adaptation
Typical actions:
• Choose platform (board)
• Configure (make board_config)
• Build (make)
• Prepare bootable image (UART, MMC, …)
• First boot
• Check first boot results
• Adjust and reconfigure
• Debug
• Add new platform (board)
12
U-Boot: adaptation
U-Boot calls sequence partial breakdown:
(i.MX51 Babbage board)
b _start
_start()
reset()
cpu_init_crit()
lowlevel_init()
mxc_nand_load()
stack_setup()
board_mmu_init()
start_armboot()
arch_cpu_init()
board_init()
…
board/freescale/mx51_bbg/flash_header.S
cpu/arm_cortexa8/start.S
cpu/arm_cortexa8/start.S
cpu/arm_cortexa8/start.S
board/freescale/mx51_bbg/lowlevel_init.S
cpu/arm_cortexa8/mx51/mxc_nand_load.S
cpu/arm_cortexa8/start.S
lib_arm/board.c (init_fnc_t *init_sequence[] = {…})
board/freescale/mx51_bbg.c
cpu/arm_cortexa8/mx51/generic.c
board/freescale/mx51_bbg/mx51_bbg.c
13
U-Boot: enhancement
Add new driver
Allwinner A10 DISP driver
Linux kernel 3.0.8
1MB (97 files) sources in total 900KB (55 files) sources in total
U-Boot
_start()
reset()
board_init_r()
board_late_init()
sunxi_video_init()
arch/arm/cpu/armv7/start.S
arch/arm/cpu/armv7/start.S
arch/arm/lib/board.c
board/allwinner/a10-evb/a10-evb.c
video_sunxi/sunxi_video.c
Calls sequence
#if 0
…
#else
…
#endif
14
OS: porting Linux
Linux Kernel Sources
Vendor
BSP
Kernel sources
Target image
www.kernel.org
15
OS: porting Linux
Platform
(reference board)
Config kernel
UART enable
Kernel param
Boot!
1
2
3
4
1. arch/arm/mach-<soc>,
<soc> = imx, davinci, pxa, …
2. make menuconfig,
Kernel hacking ->
Kernel low-level debugging port/functions
Early printk
3. Update platform source (2.6)
or
Update DTS (3.0, …):
arch/arm/boot/dts/<soc>-<platform>.dts
4. earlyprintk=tty<uart_name><num>,
<uart_name> = S, O, mxc, …
<num> = 0, 1, 2, …
boardid: arch/arm/tools/mach-types (2.6)
First steps
16
OS: porting Linux
No kernel messages
Kernel booting issues
• Check UART settings and configuration
platform (2.6) / DTS (3.0, …)
• Enable early debug:
arch/arm/boot/compressed/head.S
arch/arm/mach-<soc>/include/mach/
debug-macro.S (2.6)
or
arch/arm/boot/compressed/debug.S (3.0, …)
Макросы:
addruart
senduart
busyuart
waituart
17
OS: porting Linux
Kernel is booted!
• Load simple target image
• Create custom platform
(finalizing changes)
• Build and load new target images
(X-Window, Gnome, …)
Kernel successfully booted
18
Linux: kernel backporting
Reasons ?
• Customer requirements (particular version is needed)
• Support (driver updates)
• Security (fix vulnerabilities)
• ???
19
Linux: kernel backporting
From 3.0.35 to 2.6.34
Requirements
Kernel 2.6.34
Vendor BSP
Kernel 3.0.35
i.MX 6Dual based board
arch/arm, include, drivers, kernel, init, mm
Patch 40M
include
kernel,
mm,
init
drivers
dma, ata,
i2c,mmc, usb,
media, net,
power,
regulator, rtc,
spi, video, serial,
watchdog,
Kconfigs,
Makefiles
arch/arm
mach-, plat-,
mm, kernel,
common,
include,
Kconfigs,
Makefiles
20
OS: Linux instead of Android ?
The task
IN OUT
???
Would it be possible to install Linux instead of stock Android ?
• Linux (any distro)
• GUI (X11)
Requirements:
Specific software
21
OS: Linux instead of Android ?
Solution
30-pin connector
?
• Interface 0 ?
• Interface 1 ?
• …
• Interface n ?
!
• USB OTG !
• …
• UART RXD/TXD !
• …
USB host-USB client-UART cable
1. UART + null-modem cable
2. Boot to Recovery
3. Root !
4. mmcblk0p0, mmcblk0p1, …
5. USB flash drive
6. dd if=/dev/block/mmcblk0 of=/usbdrive/emmc.img
7. emmc.img => GPT => p0, p1, p2, … => p2 boot image (kernel + ramdisk) !
8. Download kernel sources (vendor provided)
9. OpenEmbedded + kernel sources => bzImage + rootfs
10. mkbootimg: bzImage + ramdisk => bootimg
11. UART, USB flash drive, Recovery: dd if=/usbdrive/bootimg of=/dev/block/mmcblk0p2
12. Kernel is booted !
Steps
22
OS: Linux instead of Android ?
Results
Boot splash Login
GPE
Features
• Angstrom distro
• x11-gpe-image
• No multitouch is supported (modified TS-driver)
• Rootfs on USB drive (root=/dev/sda1)
23
• Design errors
• Routing errors
• Mounting issues
• Component defects
• Components errors (Errata, workarounds)
• Physical damages
• Incompatible conditions
Hardware issues
Possible causes
24
Hardware issues
Common approach:
troubleshooting and looking for solution
Start
Localization
Test
Can it
be
solved
by SW ?
Is it
HW-
issue ?
Yes
Solution
Yes
Debug
No
End
No
1
2
3
4
6
7
5
8
1. Suspected HW-issue
2. Localization failing source code.
3. HW test
(“three-lines program”).
4. HW issue confirmed ?
5. No.
Caused by SW.
6. Yes.
Can be bypassed by SW ?
7. Yes.
Working out solution and add it to sources
8. Further accordingly to results
(Fail or Success).Fail
Success
25
Hardware issues
Software solution
A workaround is a bypass of a recognized problem in a system.
A workaround is typically a temporary fix that implies that a genuine solution to the problem is needed.
But workarounds are frequently as creative as true solutions, involving outside the box thinking in their creation.
Workaround
From Wikipedia, the free encyclopedia
Solution for
HW-issue ?
The problem is already
known and there is a
solution
(Errata documents, etc.)
Device specific
Workaround Reimplementation ?
26
Software solution: workaround
Spontaneous device power on
Caused by ? PowerOn bounce
Is
PowerOn
pressed
≥ 5 sec ?
Yes
No
PowerOff
Boot device
The solution
was implemented
in bootloader
(U-Boot)
27
Software solution: workaround
Unstable device behavior
Caused by ? SDCLK rate
Routing error: the device was
not able to stable work with
needed SDCLK rate.
Adjust CLK
divisors
and gating
The solution
was implemented
in bootloaders
(SPL, proprietary)
28
Software solution: workaround
CMOS camera1: black and white photos
Preview
Still
Caused by ? MasterClock (MCLK) rate
Adjust CLK divisors
and gating
(decrease clock rate)
The solution
was implemented
in driver.
Design error: the device cannot
provide camera with needed MCLK
rate (it is impossible to find correct
divisors values).
Fixed by frequency rate decreasing
that in turn caused FrameRate
decreasing in Preview mode.
(~10 fps).
29
Software solution: workaround
CMOS Camera2: autofocus frame is present on the photos
Preview
Still
Caused by ? Sensor firmware error
Autofocus frame is occasionally
emerged on the photos despite
of explicitly executed command
“Hide frame” in accordance with
Application Notes.
Fixed by setting
autofocus frame
Hsize and Vsize to 0
via found
undocummented
registers
The solution
was implemented
in driver
The solution (needed registers)
was found through reverse-
engineering of Sensor Devkit
SWtools.
30
Software solution: workaround
LCD: the leftmost column issue
Display
Actual Anticipated
Caused by ? HSyncStart, HSyncWidth, HTotal ?
The needed values of horizontal
synchronization parameters to
correctly display leftmost column
weren’t eventually found.
Presumable root cause is
incompatibility of particular
TFT LCD and videocontroller.
Fixed by filling
framebuffer data in
accordance with
actual image size
The solution
implemented
in driver
31
Software solution: workaround
Resistive touchscreen: false pressings
Caused by ? Touchscreen feature ?
Completed
collecting
samples
No
Get
sample
Is
sample
valid ?
Is
PenDown
?
Yes
Collect
sampleYes
No
The solution
was implemented
in driver
False pressings were
successfully filtered out via
checking of distance between
points.
Presumable root cause of
such behavior is a feature of
particular touchscreen
connected as follows:
TS
Codec
AC97
SOC
32
Software solution: reimplementation
ASIC video controller:
incorrectly working hardware BitBlt with OR
OR =
Caused by ? ASIC VC error
XOR =
The solution
was implemented
in driver
Symbols displaying was
implemented with hardware
BitBlt with XOR.
33
Software solution: reimplementation
RTC Alarm reboot
Watchdog
timer
Reboot
OnChip RTC
Caused by ? No external RTC
PeriodicInterruptInterval = 3 ms
Enable PeriodicInterrupt counting
Enter DeepSleep Mode
WakeUp!
Boot
Device rebooting was performed
through transition to Deep Sleep
mode and subsequent waking up on
RTC Periodic Interrupt Alarm event.
Such a mechanism let to avoid onchip
RTC reset that took place in case of
Watchdog Reset.
3 ms
34
Software solution: not found
FPGA FPGA
CPU CPU
Board1 Board2
RAM RAM
DMA DMAHigh Speed
interface
I/O I/O
About design errors
“Bottle neck”
Due to erroneous design actual traffic rate turned out to
be half the level of anticipated.
The bottle neck was FPGA <-> FPGA section.
This issue doesn’t have a software solution.
35
Hardware issue ?
SD HC vs SD Host 1.01
SD Spec. 2.0
SD Host controller,
SD Spec. 1.01
?
It works!
CMD8,
Set Response Format
as R1/R6
This is not hardware issue!
In accordance with SD Spec. 2.0 SDHC cards shall execute CMD8 (Send
Interface Condition) after CMD0 (Go Idle State) and before ACMD41 (Send
Operation Condition) during card initialization.
Minor driver fix allowed to work with SDHC card on SD Spec. 1.01 host
controller.
36
Contacts
Thank You
Auriga, USA
92 Potter Rd, Ste. 1
Wilton, NH 03086, USA
Phone: +1 (866) 645-1119
Fax: +1 (603) 386-6097
info@auriga.com
www.auriga.com
Auriga, Russia
125 Varshavskoe Shosse, Unit 16A,
Moscow, 117587
Tel:+7 (495) 713-9900
Fax:+7 (495) 939-0300
info@auriga.com
www.auriga.com

More Related Content

What's hot

Linux Crash Dump Capture and Analysis
Linux Crash Dump Capture and AnalysisLinux Crash Dump Capture and Analysis
Linux Crash Dump Capture and AnalysisPaul V. Novarese
 
Memory Management in Android
Memory Management in AndroidMemory Management in Android
Memory Management in AndroidOpersys inc.
 
Spectre meltdown performance_tests - v0.3
Spectre meltdown performance_tests - v0.3Spectre meltdown performance_tests - v0.3
Spectre meltdown performance_tests - v0.3David Pasek
 
Evolution of ota_update_in_the_io_t_world
Evolution of ota_update_in_the_io_t_worldEvolution of ota_update_in_the_io_t_world
Evolution of ota_update_in_the_io_t_worldStefano Babic
 
Learning AOSP - Android Booting Process
Learning AOSP - Android Booting ProcessLearning AOSP - Android Booting Process
Learning AOSP - Android Booting ProcessNanik Tolaram
 
VM Forking and Hypervisor-based Fuzzing with Xen
VM Forking and Hypervisor-based Fuzzing with XenVM Forking and Hypervisor-based Fuzzing with Xen
VM Forking and Hypervisor-based Fuzzing with XenTamas K Lengyel
 
Workshop su Android Kernel Hacking
Workshop su Android Kernel HackingWorkshop su Android Kernel Hacking
Workshop su Android Kernel HackingDeveler S.r.l.
 
Defeating x64: Modern Trends of Kernel-Mode Rootkits
Defeating x64: Modern Trends of Kernel-Mode RootkitsDefeating x64: Modern Trends of Kernel-Mode Rootkits
Defeating x64: Modern Trends of Kernel-Mode RootkitsAlex Matrosov
 
Debugging linux kernel tools and techniques
Debugging linux kernel tools and  techniquesDebugging linux kernel tools and  techniques
Debugging linux kernel tools and techniquesSatpal Parmar
 
Android OTA updates
Android OTA updatesAndroid OTA updates
Android OTA updatesGary Bisson
 
DEF CON 27 - ALI ISLAM and DAN REGALADO WEAPONIZING HYPERVISORS
DEF CON 27 - ALI ISLAM and DAN REGALADO WEAPONIZING HYPERVISORSDEF CON 27 - ALI ISLAM and DAN REGALADO WEAPONIZING HYPERVISORS
DEF CON 27 - ALI ISLAM and DAN REGALADO WEAPONIZING HYPERVISORSFelipe Prado
 
Joanna Rutkowska Subverting Vista Kernel
Joanna Rutkowska   Subverting Vista KernelJoanna Rutkowska   Subverting Vista Kernel
Joanna Rutkowska Subverting Vista Kernelguestf1a032
 
HKG18-TR14 - Postmortem Debugging with Coresight
HKG18-TR14 - Postmortem Debugging with CoresightHKG18-TR14 - Postmortem Debugging with Coresight
HKG18-TR14 - Postmortem Debugging with CoresightLinaro
 
x86_64 Hardware Deep dive
x86_64 Hardware Deep divex86_64 Hardware Deep dive
x86_64 Hardware Deep diveNaoto MATSUMOTO
 
Memory Management in Android
Memory Management in AndroidMemory Management in Android
Memory Management in AndroidOpersys inc.
 
Systemtap
SystemtapSystemtap
SystemtapFeng Yu
 
Wintel Hell: průvodce devíti kruhy Dantova technologického pekla / MARTIN HRO...
Wintel Hell: průvodce devíti kruhy Dantova technologického pekla / MARTIN HRO...Wintel Hell: průvodce devíti kruhy Dantova technologického pekla / MARTIN HRO...
Wintel Hell: průvodce devíti kruhy Dantova technologického pekla / MARTIN HRO...Security Session
 
Android booting sequece and setup and debugging
Android booting sequece and setup and debuggingAndroid booting sequece and setup and debugging
Android booting sequece and setup and debuggingUtkarsh Mankad
 

What's hot (20)

Linux Crash Dump Capture and Analysis
Linux Crash Dump Capture and AnalysisLinux Crash Dump Capture and Analysis
Linux Crash Dump Capture and Analysis
 
Memory Management in Android
Memory Management in AndroidMemory Management in Android
Memory Management in Android
 
Spectre meltdown performance_tests - v0.3
Spectre meltdown performance_tests - v0.3Spectre meltdown performance_tests - v0.3
Spectre meltdown performance_tests - v0.3
 
Evolution of ota_update_in_the_io_t_world
Evolution of ota_update_in_the_io_t_worldEvolution of ota_update_in_the_io_t_world
Evolution of ota_update_in_the_io_t_world
 
Learning AOSP - Android Booting Process
Learning AOSP - Android Booting ProcessLearning AOSP - Android Booting Process
Learning AOSP - Android Booting Process
 
VM Forking and Hypervisor-based Fuzzing with Xen
VM Forking and Hypervisor-based Fuzzing with XenVM Forking and Hypervisor-based Fuzzing with Xen
VM Forking and Hypervisor-based Fuzzing with Xen
 
Workshop su Android Kernel Hacking
Workshop su Android Kernel HackingWorkshop su Android Kernel Hacking
Workshop su Android Kernel Hacking
 
Defeating x64: Modern Trends of Kernel-Mode Rootkits
Defeating x64: Modern Trends of Kernel-Mode RootkitsDefeating x64: Modern Trends of Kernel-Mode Rootkits
Defeating x64: Modern Trends of Kernel-Mode Rootkits
 
Android Custom Kernel/ROM design
Android Custom Kernel/ROM designAndroid Custom Kernel/ROM design
Android Custom Kernel/ROM design
 
Debugging linux kernel tools and techniques
Debugging linux kernel tools and  techniquesDebugging linux kernel tools and  techniques
Debugging linux kernel tools and techniques
 
Android OTA updates
Android OTA updatesAndroid OTA updates
Android OTA updates
 
DEF CON 27 - ALI ISLAM and DAN REGALADO WEAPONIZING HYPERVISORS
DEF CON 27 - ALI ISLAM and DAN REGALADO WEAPONIZING HYPERVISORSDEF CON 27 - ALI ISLAM and DAN REGALADO WEAPONIZING HYPERVISORS
DEF CON 27 - ALI ISLAM and DAN REGALADO WEAPONIZING HYPERVISORS
 
Joanna Rutkowska Subverting Vista Kernel
Joanna Rutkowska   Subverting Vista KernelJoanna Rutkowska   Subverting Vista Kernel
Joanna Rutkowska Subverting Vista Kernel
 
Path to Surfdroid
Path to SurfdroidPath to Surfdroid
Path to Surfdroid
 
HKG18-TR14 - Postmortem Debugging with Coresight
HKG18-TR14 - Postmortem Debugging with CoresightHKG18-TR14 - Postmortem Debugging with Coresight
HKG18-TR14 - Postmortem Debugging with Coresight
 
x86_64 Hardware Deep dive
x86_64 Hardware Deep divex86_64 Hardware Deep dive
x86_64 Hardware Deep dive
 
Memory Management in Android
Memory Management in AndroidMemory Management in Android
Memory Management in Android
 
Systemtap
SystemtapSystemtap
Systemtap
 
Wintel Hell: průvodce devíti kruhy Dantova technologického pekla / MARTIN HRO...
Wintel Hell: průvodce devíti kruhy Dantova technologického pekla / MARTIN HRO...Wintel Hell: průvodce devíti kruhy Dantova technologického pekla / MARTIN HRO...
Wintel Hell: průvodce devíti kruhy Dantova technologického pekla / MARTIN HRO...
 
Android booting sequece and setup and debugging
Android booting sequece and setup and debuggingAndroid booting sequece and setup and debugging
Android booting sequece and setup and debugging
 

Similar to Когда предрелизный не только софт

Basics_of_Kernel_Panic_Hang_and_ Kdump.pdf
Basics_of_Kernel_Panic_Hang_and_ Kdump.pdfBasics_of_Kernel_Panic_Hang_and_ Kdump.pdf
Basics_of_Kernel_Panic_Hang_and_ Kdump.pdfstroganovboris
 
Linux Kernel Platform Development: Challenges and Insights
 Linux Kernel Platform Development: Challenges and Insights Linux Kernel Platform Development: Challenges and Insights
Linux Kernel Platform Development: Challenges and InsightsGlobalLogic Ukraine
 
U Boot or Universal Bootloader
U Boot or Universal BootloaderU Boot or Universal Bootloader
U Boot or Universal BootloaderSatpal Parmar
 
HKG15-409: ARM Hibernation enablement on SoCs - a case study
HKG15-409: ARM Hibernation enablement on SoCs - a case studyHKG15-409: ARM Hibernation enablement on SoCs - a case study
HKG15-409: ARM Hibernation enablement on SoCs - a case studyLinaro
 
建構嵌入式Linux系統於SD Card
建構嵌入式Linux系統於SD Card建構嵌入式Linux系統於SD Card
建構嵌入式Linux系統於SD Card艾鍗科技
 
Raspberry Pi tutorial
Raspberry Pi tutorialRaspberry Pi tutorial
Raspberry Pi tutorial艾鍗科技
 
U-Boot Porting on New Hardware
U-Boot Porting on New HardwareU-Boot Porting on New Hardware
U-Boot Porting on New HardwareRuggedBoardGroup
 
Linux: the first second
Linux: the first secondLinux: the first second
Linux: the first secondAlison Chaiken
 
Let's trace Linux Lernel with KGDB @ COSCUP 2021
Let's trace Linux Lernel with KGDB @ COSCUP 2021Let's trace Linux Lernel with KGDB @ COSCUP 2021
Let's trace Linux Lernel with KGDB @ COSCUP 2021Jian-Hong Pan
 
Bringing up Android on your favorite X86 Workstation or VM (AnDevCon Boston, ...
Bringing up Android on your favorite X86 Workstation or VM (AnDevCon Boston, ...Bringing up Android on your favorite X86 Workstation or VM (AnDevCon Boston, ...
Bringing up Android on your favorite X86 Workstation or VM (AnDevCon Boston, ...Ron Munitz
 
Kernel Recipes 2015 - Kernel dump analysis
Kernel Recipes 2015 - Kernel dump analysisKernel Recipes 2015 - Kernel dump analysis
Kernel Recipes 2015 - Kernel dump analysisAnne Nicolas
 
Bootstrap process of u boot (NDS32 RISC CPU)
Bootstrap process of u boot (NDS32 RISC CPU)Bootstrap process of u boot (NDS32 RISC CPU)
Bootstrap process of u boot (NDS32 RISC CPU)Macpaul Lin
 
Advanced Diagnostics 2
Advanced Diagnostics 2Advanced Diagnostics 2
Advanced Diagnostics 2Aero Plane
 
Bootloaders (U-Boot)
Bootloaders (U-Boot) Bootloaders (U-Boot)
Bootloaders (U-Boot) Omkar Rane
 
Java gpu computing
Java gpu computingJava gpu computing
Java gpu computingArjan Lamers
 
Developing a Windows CE OAL.ppt
Developing a Windows CE OAL.pptDeveloping a Windows CE OAL.ppt
Developing a Windows CE OAL.pptKundanSingh887495
 

Similar to Когда предрелизный не только софт (20)

Introduction to Modern U-Boot
Introduction to Modern U-BootIntroduction to Modern U-Boot
Introduction to Modern U-Boot
 
Basics_of_Kernel_Panic_Hang_and_ Kdump.pdf
Basics_of_Kernel_Panic_Hang_and_ Kdump.pdfBasics_of_Kernel_Panic_Hang_and_ Kdump.pdf
Basics_of_Kernel_Panic_Hang_and_ Kdump.pdf
 
Linux Kernel Platform Development: Challenges and Insights
 Linux Kernel Platform Development: Challenges and Insights Linux Kernel Platform Development: Challenges and Insights
Linux Kernel Platform Development: Challenges and Insights
 
U Boot or Universal Bootloader
U Boot or Universal BootloaderU Boot or Universal Bootloader
U Boot or Universal Bootloader
 
HKG15-409: ARM Hibernation enablement on SoCs - a case study
HKG15-409: ARM Hibernation enablement on SoCs - a case studyHKG15-409: ARM Hibernation enablement on SoCs - a case study
HKG15-409: ARM Hibernation enablement on SoCs - a case study
 
建構嵌入式Linux系統於SD Card
建構嵌入式Linux系統於SD Card建構嵌入式Linux系統於SD Card
建構嵌入式Linux系統於SD Card
 
Raspberry Pi tutorial
Raspberry Pi tutorialRaspberry Pi tutorial
Raspberry Pi tutorial
 
U-Boot Porting on New Hardware
U-Boot Porting on New HardwareU-Boot Porting on New Hardware
U-Boot Porting on New Hardware
 
Linux: the first second
Linux: the first secondLinux: the first second
Linux: the first second
 
Let's trace Linux Lernel with KGDB @ COSCUP 2021
Let's trace Linux Lernel with KGDB @ COSCUP 2021Let's trace Linux Lernel with KGDB @ COSCUP 2021
Let's trace Linux Lernel with KGDB @ COSCUP 2021
 
Bringing up Android on your favorite X86 Workstation or VM (AnDevCon Boston, ...
Bringing up Android on your favorite X86 Workstation or VM (AnDevCon Boston, ...Bringing up Android on your favorite X86 Workstation or VM (AnDevCon Boston, ...
Bringing up Android on your favorite X86 Workstation or VM (AnDevCon Boston, ...
 
Kernel Recipes 2015 - Kernel dump analysis
Kernel Recipes 2015 - Kernel dump analysisKernel Recipes 2015 - Kernel dump analysis
Kernel Recipes 2015 - Kernel dump analysis
 
Ch04 system administration
Ch04 system administration Ch04 system administration
Ch04 system administration
 
Ch04
Ch04Ch04
Ch04
 
Bootstrap process of u boot (NDS32 RISC CPU)
Bootstrap process of u boot (NDS32 RISC CPU)Bootstrap process of u boot (NDS32 RISC CPU)
Bootstrap process of u boot (NDS32 RISC CPU)
 
Advanced Diagnostics 2
Advanced Diagnostics 2Advanced Diagnostics 2
Advanced Diagnostics 2
 
Bootloaders (U-Boot)
Bootloaders (U-Boot) Bootloaders (U-Boot)
Bootloaders (U-Boot)
 
Java gpu computing
Java gpu computingJava gpu computing
Java gpu computing
 
Developing a Windows CE OAL.ppt
Developing a Windows CE OAL.pptDeveloping a Windows CE OAL.ppt
Developing a Windows CE OAL.ppt
 
BeagleBone Black Booting Process
BeagleBone Black Booting ProcessBeagleBone Black Booting Process
BeagleBone Black Booting Process
 

More from CEE-SEC(R)

Подбор и адаптация методологий разработки ПО под различные типы производствен...
Подбор и адаптация методологий разработки ПО под различные типы производствен...Подбор и адаптация методологий разработки ПО под различные типы производствен...
Подбор и адаптация методологий разработки ПО под различные типы производствен...CEE-SEC(R)
 
Проектный офис и аналитик
Проектный офис и аналитикПроектный офис и аналитик
Проектный офис и аналитикCEE-SEC(R)
 
Онлайн-революция: от ранних репозиториев – к современным МООС-курсам
Онлайн-революция: от ранних репозиториев – к современным МООС-курсамОнлайн-революция: от ранних репозиториев – к современным МООС-курсам
Онлайн-революция: от ранних репозиториев – к современным МООС-курсамCEE-SEC(R)
 
Массовый параллелизм для гетерогенных вычислений на C++ для беспилотных автом...
Массовый параллелизм для гетерогенных вычислений на C++ для беспилотных автом...Массовый параллелизм для гетерогенных вычислений на C++ для беспилотных автом...
Массовый параллелизм для гетерогенных вычислений на C++ для беспилотных автом...CEE-SEC(R)
 
Как компании с вузами вместе ИТ специалиста готовили или Чем ИТ компания може...
Как компании с вузами вместе ИТ специалиста готовили или Чем ИТ компания може...Как компании с вузами вместе ИТ специалиста готовили или Чем ИТ компания може...
Как компании с вузами вместе ИТ специалиста готовили или Чем ИТ компания може...CEE-SEC(R)
 
«Знак качества» как инструмент анализа восприятия продукта клиентами
«Знак качества» как инструмент анализа восприятия продукта клиентами«Знак качества» как инструмент анализа восприятия продукта клиентами
«Знак качества» как инструмент анализа восприятия продукта клиентамиCEE-SEC(R)
 
Машинное обучение на каждый день
Машинное обучение на каждый деньМашинное обучение на каждый день
Машинное обучение на каждый деньCEE-SEC(R)
 
Process и Case Management в информационной системе:
Process и Case Management в информационной системе: Process и Case Management в информационной системе:
Process и Case Management в информационной системе: CEE-SEC(R)
 
Проблемы процесса разработки с точки зрения тестирования
Проблемы процесса разработки с точки зрения тестированияПроблемы процесса разработки с точки зрения тестирования
Проблемы процесса разработки с точки зрения тестированияCEE-SEC(R)
 
Как ЧПУ станку в домашней мастерской не превратиться в мульт героев “двое из ...
Как ЧПУ станку в домашней мастерской не превратиться в мульт героев “двое из ...Как ЧПУ станку в домашней мастерской не превратиться в мульт героев “двое из ...
Как ЧПУ станку в домашней мастерской не превратиться в мульт героев “двое из ...CEE-SEC(R)
 
Ай-трекинг в UX исследованиях
Ай-трекинг в UX исследованияхАй-трекинг в UX исследованиях
Ай-трекинг в UX исследованияхCEE-SEC(R)
 
Настоящее и будущее решений для разработки кросс-платформенных мобильных гибр...
Настоящее и будущее решений для разработки кросс-платформенных мобильных гибр...Настоящее и будущее решений для разработки кросс-платформенных мобильных гибр...
Настоящее и будущее решений для разработки кросс-платформенных мобильных гибр...CEE-SEC(R)
 
Технологичный подход к повышению продуктивности – кейсы и исследования
Технологичный подход к повышению продуктивности – кейсы и исследованияТехнологичный подход к повышению продуктивности – кейсы и исследования
Технологичный подход к повышению продуктивности – кейсы и исследованияCEE-SEC(R)
 
Субъектно-ориентированные информационные системы на предприятиях
Субъектно-ориентированные информационные системы на предприятияхСубъектно-ориентированные информационные системы на предприятиях
Субъектно-ориентированные информационные системы на предприятияхCEE-SEC(R)
 
Шаблоны контейнеров в Virtuozzo
Шаблоны контейнеров в VirtuozzoШаблоны контейнеров в Virtuozzo
Шаблоны контейнеров в VirtuozzoCEE-SEC(R)
 
Apache Storm: от простого приложения до подробностей реализации
Apache Storm: от простого приложения до подробностей реализацииApache Storm: от простого приложения до подробностей реализации
Apache Storm: от простого приложения до подробностей реализацииCEE-SEC(R)
 
Семантическое ядро рунета
Семантическое ядро рунетаСемантическое ядро рунета
Семантическое ядро рунетаCEE-SEC(R)
 
Разработка требований для противоречащих законодательств
Разработка требований для противоречащих законодательствРазработка требований для противоречащих законодательств
Разработка требований для противоречащих законодательствCEE-SEC(R)
 
IT-Лаборатория: кузница кадров и стартапов
IT-Лаборатория: кузница кадров и стартаповIT-Лаборатория: кузница кадров и стартапов
IT-Лаборатория: кузница кадров и стартаповCEE-SEC(R)
 
Законы создания IT команд и следствия законов для IT проектов «на пальцах»
Законы создания IT команд и следствия законов для IT проектов «на пальцах»Законы создания IT команд и следствия законов для IT проектов «на пальцах»
Законы создания IT команд и следствия законов для IT проектов «на пальцах»CEE-SEC(R)
 

More from CEE-SEC(R) (20)

Подбор и адаптация методологий разработки ПО под различные типы производствен...
Подбор и адаптация методологий разработки ПО под различные типы производствен...Подбор и адаптация методологий разработки ПО под различные типы производствен...
Подбор и адаптация методологий разработки ПО под различные типы производствен...
 
Проектный офис и аналитик
Проектный офис и аналитикПроектный офис и аналитик
Проектный офис и аналитик
 
Онлайн-революция: от ранних репозиториев – к современным МООС-курсам
Онлайн-революция: от ранних репозиториев – к современным МООС-курсамОнлайн-революция: от ранних репозиториев – к современным МООС-курсам
Онлайн-революция: от ранних репозиториев – к современным МООС-курсам
 
Массовый параллелизм для гетерогенных вычислений на C++ для беспилотных автом...
Массовый параллелизм для гетерогенных вычислений на C++ для беспилотных автом...Массовый параллелизм для гетерогенных вычислений на C++ для беспилотных автом...
Массовый параллелизм для гетерогенных вычислений на C++ для беспилотных автом...
 
Как компании с вузами вместе ИТ специалиста готовили или Чем ИТ компания може...
Как компании с вузами вместе ИТ специалиста готовили или Чем ИТ компания може...Как компании с вузами вместе ИТ специалиста готовили или Чем ИТ компания може...
Как компании с вузами вместе ИТ специалиста готовили или Чем ИТ компания може...
 
«Знак качества» как инструмент анализа восприятия продукта клиентами
«Знак качества» как инструмент анализа восприятия продукта клиентами«Знак качества» как инструмент анализа восприятия продукта клиентами
«Знак качества» как инструмент анализа восприятия продукта клиентами
 
Машинное обучение на каждый день
Машинное обучение на каждый деньМашинное обучение на каждый день
Машинное обучение на каждый день
 
Process и Case Management в информационной системе:
Process и Case Management в информационной системе: Process и Case Management в информационной системе:
Process и Case Management в информационной системе:
 
Проблемы процесса разработки с точки зрения тестирования
Проблемы процесса разработки с точки зрения тестированияПроблемы процесса разработки с точки зрения тестирования
Проблемы процесса разработки с точки зрения тестирования
 
Как ЧПУ станку в домашней мастерской не превратиться в мульт героев “двое из ...
Как ЧПУ станку в домашней мастерской не превратиться в мульт героев “двое из ...Как ЧПУ станку в домашней мастерской не превратиться в мульт героев “двое из ...
Как ЧПУ станку в домашней мастерской не превратиться в мульт героев “двое из ...
 
Ай-трекинг в UX исследованиях
Ай-трекинг в UX исследованияхАй-трекинг в UX исследованиях
Ай-трекинг в UX исследованиях
 
Настоящее и будущее решений для разработки кросс-платформенных мобильных гибр...
Настоящее и будущее решений для разработки кросс-платформенных мобильных гибр...Настоящее и будущее решений для разработки кросс-платформенных мобильных гибр...
Настоящее и будущее решений для разработки кросс-платформенных мобильных гибр...
 
Технологичный подход к повышению продуктивности – кейсы и исследования
Технологичный подход к повышению продуктивности – кейсы и исследованияТехнологичный подход к повышению продуктивности – кейсы и исследования
Технологичный подход к повышению продуктивности – кейсы и исследования
 
Субъектно-ориентированные информационные системы на предприятиях
Субъектно-ориентированные информационные системы на предприятияхСубъектно-ориентированные информационные системы на предприятиях
Субъектно-ориентированные информационные системы на предприятиях
 
Шаблоны контейнеров в Virtuozzo
Шаблоны контейнеров в VirtuozzoШаблоны контейнеров в Virtuozzo
Шаблоны контейнеров в Virtuozzo
 
Apache Storm: от простого приложения до подробностей реализации
Apache Storm: от простого приложения до подробностей реализацииApache Storm: от простого приложения до подробностей реализации
Apache Storm: от простого приложения до подробностей реализации
 
Семантическое ядро рунета
Семантическое ядро рунетаСемантическое ядро рунета
Семантическое ядро рунета
 
Разработка требований для противоречащих законодательств
Разработка требований для противоречащих законодательствРазработка требований для противоречащих законодательств
Разработка требований для противоречащих законодательств
 
IT-Лаборатория: кузница кадров и стартапов
IT-Лаборатория: кузница кадров и стартаповIT-Лаборатория: кузница кадров и стартапов
IT-Лаборатория: кузница кадров и стартапов
 
Законы создания IT команд и следствия законов для IT проектов «на пальцах»
Законы создания IT команд и следствия законов для IT проектов «на пальцах»Законы создания IT команд и следствия законов для IT проектов «на пальцах»
Законы создания IT команд и следствия законов для IT проектов «на пальцах»
 

Recently uploaded

Buds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in NoidaBuds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in Noidabntitsolutionsrishis
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Matt Ray
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odishasmiwainfosol
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)jennyeacort
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanyChristoph Pohl
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtimeandrehoraa
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfFerryKemperman
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfStefano Stabellini
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...Technogeeks
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
How to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfHow to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfLivetecs LLC
 

Recently uploaded (20)

Buds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in NoidaBuds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in Noida
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtime
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdf
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdf
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
How to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfHow to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdf
 

Когда предрелизный не только софт

  • 1. From first power-on to OS booting: software solutions for hardware issues October 2016
  • 3. 3 In the beginning Reference platform PINMUXes, GPIOs, CLKs, etc: Device under development (“10 differences”)
  • 4. 4 PowerOn  Leds are on  Voltages are OK  Clocks are generated  POR sequence is correct  No smoke! Boot
  • 5. 5 Engineer’s tools UART as “window into the world” JTAG as “last hope” GPIO bit-banging
  • 6. 6 System Boot Boot mode • NOR Flash • NAND Flash • SD/MMC/eMMC • USB • UART (“BOOTME”!) • SPI/I2C (NOR, EEPROM) • …
  • 7. 7 System Boot Typical booting sequence OnChip ROM Boot source 1 OnChip RAM (SPL, IBL, etc.) 2 3 RAM, Bootloader OS 4 1. OnChip ROM detects boot source 2. OnChip ROM reads intermediate bootloader into OnChip RAM and transfers control to it Or OnChip ROM reads configuration into OnChip RAM, initializes RAM, loads and runs main bootloader 3. SPL initializes RAM, loads and runs main bootloader 4. Main bootloader loads OS 2
  • 8. 8 Intermediate bootloader SPL – Secondary Program Loader Common name Other names (Vendor specific): IBL (Intermediate Boot Loader) UBL (User Boot Loader) X-loader (External Loader) … Features: • Open source (Vendor provided) • Executing in OnChip RAM • Small size (OnChip RAM) Main functions: • Memory Controller and RAM initialization • Loads main bootloader
  • 9. 9 RAM test OnChip RAM (SPL, IBL, etc.) RAM, Bootloader Loading failed ? Memory Test! • Pattern (0x00000000, 0xFFFFFFFF, …) • Walking ‘1’ • Walking ‘0’ • Address • Word, halfword, byte Classic Memory Test: Implementation: • SPL • Standalone (OnChip RAM) • Registers based (NOR flash)
  • 10. 10 Bootloader • U-Boot (ARM, x86, …) • RedBoot (ARM, x86, …) • PMON2000 (MIPS, PowerPC) • PRIME (MIPS) • … • Open source • Simple configuring (GUI, menuconfig) • Monitor functions (memory r/w, devices) • Extensibility (new functionlality) • Scripting (U-Boot, RedBoot) • Client applications (HW tests) Alternatives: Capabilities:
  • 11. 11 U-Boot: adaptation Typical actions: • Choose platform (board) • Configure (make board_config) • Build (make) • Prepare bootable image (UART, MMC, …) • First boot • Check first boot results • Adjust and reconfigure • Debug • Add new platform (board)
  • 12. 12 U-Boot: adaptation U-Boot calls sequence partial breakdown: (i.MX51 Babbage board) b _start _start() reset() cpu_init_crit() lowlevel_init() mxc_nand_load() stack_setup() board_mmu_init() start_armboot() arch_cpu_init() board_init() … board/freescale/mx51_bbg/flash_header.S cpu/arm_cortexa8/start.S cpu/arm_cortexa8/start.S cpu/arm_cortexa8/start.S board/freescale/mx51_bbg/lowlevel_init.S cpu/arm_cortexa8/mx51/mxc_nand_load.S cpu/arm_cortexa8/start.S lib_arm/board.c (init_fnc_t *init_sequence[] = {…}) board/freescale/mx51_bbg.c cpu/arm_cortexa8/mx51/generic.c board/freescale/mx51_bbg/mx51_bbg.c
  • 13. 13 U-Boot: enhancement Add new driver Allwinner A10 DISP driver Linux kernel 3.0.8 1MB (97 files) sources in total 900KB (55 files) sources in total U-Boot _start() reset() board_init_r() board_late_init() sunxi_video_init() arch/arm/cpu/armv7/start.S arch/arm/cpu/armv7/start.S arch/arm/lib/board.c board/allwinner/a10-evb/a10-evb.c video_sunxi/sunxi_video.c Calls sequence #if 0 … #else … #endif
  • 14. 14 OS: porting Linux Linux Kernel Sources Vendor BSP Kernel sources Target image www.kernel.org
  • 15. 15 OS: porting Linux Platform (reference board) Config kernel UART enable Kernel param Boot! 1 2 3 4 1. arch/arm/mach-<soc>, <soc> = imx, davinci, pxa, … 2. make menuconfig, Kernel hacking -> Kernel low-level debugging port/functions Early printk 3. Update platform source (2.6) or Update DTS (3.0, …): arch/arm/boot/dts/<soc>-<platform>.dts 4. earlyprintk=tty<uart_name><num>, <uart_name> = S, O, mxc, … <num> = 0, 1, 2, … boardid: arch/arm/tools/mach-types (2.6) First steps
  • 16. 16 OS: porting Linux No kernel messages Kernel booting issues • Check UART settings and configuration platform (2.6) / DTS (3.0, …) • Enable early debug: arch/arm/boot/compressed/head.S arch/arm/mach-<soc>/include/mach/ debug-macro.S (2.6) or arch/arm/boot/compressed/debug.S (3.0, …) Макросы: addruart senduart busyuart waituart
  • 17. 17 OS: porting Linux Kernel is booted! • Load simple target image • Create custom platform (finalizing changes) • Build and load new target images (X-Window, Gnome, …) Kernel successfully booted
  • 18. 18 Linux: kernel backporting Reasons ? • Customer requirements (particular version is needed) • Support (driver updates) • Security (fix vulnerabilities) • ???
  • 19. 19 Linux: kernel backporting From 3.0.35 to 2.6.34 Requirements Kernel 2.6.34 Vendor BSP Kernel 3.0.35 i.MX 6Dual based board arch/arm, include, drivers, kernel, init, mm Patch 40M include kernel, mm, init drivers dma, ata, i2c,mmc, usb, media, net, power, regulator, rtc, spi, video, serial, watchdog, Kconfigs, Makefiles arch/arm mach-, plat-, mm, kernel, common, include, Kconfigs, Makefiles
  • 20. 20 OS: Linux instead of Android ? The task IN OUT ??? Would it be possible to install Linux instead of stock Android ? • Linux (any distro) • GUI (X11) Requirements: Specific software
  • 21. 21 OS: Linux instead of Android ? Solution 30-pin connector ? • Interface 0 ? • Interface 1 ? • … • Interface n ? ! • USB OTG ! • … • UART RXD/TXD ! • … USB host-USB client-UART cable 1. UART + null-modem cable 2. Boot to Recovery 3. Root ! 4. mmcblk0p0, mmcblk0p1, … 5. USB flash drive 6. dd if=/dev/block/mmcblk0 of=/usbdrive/emmc.img 7. emmc.img => GPT => p0, p1, p2, … => p2 boot image (kernel + ramdisk) ! 8. Download kernel sources (vendor provided) 9. OpenEmbedded + kernel sources => bzImage + rootfs 10. mkbootimg: bzImage + ramdisk => bootimg 11. UART, USB flash drive, Recovery: dd if=/usbdrive/bootimg of=/dev/block/mmcblk0p2 12. Kernel is booted ! Steps
  • 22. 22 OS: Linux instead of Android ? Results Boot splash Login GPE Features • Angstrom distro • x11-gpe-image • No multitouch is supported (modified TS-driver) • Rootfs on USB drive (root=/dev/sda1)
  • 23. 23 • Design errors • Routing errors • Mounting issues • Component defects • Components errors (Errata, workarounds) • Physical damages • Incompatible conditions Hardware issues Possible causes
  • 24. 24 Hardware issues Common approach: troubleshooting and looking for solution Start Localization Test Can it be solved by SW ? Is it HW- issue ? Yes Solution Yes Debug No End No 1 2 3 4 6 7 5 8 1. Suspected HW-issue 2. Localization failing source code. 3. HW test (“three-lines program”). 4. HW issue confirmed ? 5. No. Caused by SW. 6. Yes. Can be bypassed by SW ? 7. Yes. Working out solution and add it to sources 8. Further accordingly to results (Fail or Success).Fail Success
  • 25. 25 Hardware issues Software solution A workaround is a bypass of a recognized problem in a system. A workaround is typically a temporary fix that implies that a genuine solution to the problem is needed. But workarounds are frequently as creative as true solutions, involving outside the box thinking in their creation. Workaround From Wikipedia, the free encyclopedia Solution for HW-issue ? The problem is already known and there is a solution (Errata documents, etc.) Device specific Workaround Reimplementation ?
  • 26. 26 Software solution: workaround Spontaneous device power on Caused by ? PowerOn bounce Is PowerOn pressed ≥ 5 sec ? Yes No PowerOff Boot device The solution was implemented in bootloader (U-Boot)
  • 27. 27 Software solution: workaround Unstable device behavior Caused by ? SDCLK rate Routing error: the device was not able to stable work with needed SDCLK rate. Adjust CLK divisors and gating The solution was implemented in bootloaders (SPL, proprietary)
  • 28. 28 Software solution: workaround CMOS camera1: black and white photos Preview Still Caused by ? MasterClock (MCLK) rate Adjust CLK divisors and gating (decrease clock rate) The solution was implemented in driver. Design error: the device cannot provide camera with needed MCLK rate (it is impossible to find correct divisors values). Fixed by frequency rate decreasing that in turn caused FrameRate decreasing in Preview mode. (~10 fps).
  • 29. 29 Software solution: workaround CMOS Camera2: autofocus frame is present on the photos Preview Still Caused by ? Sensor firmware error Autofocus frame is occasionally emerged on the photos despite of explicitly executed command “Hide frame” in accordance with Application Notes. Fixed by setting autofocus frame Hsize and Vsize to 0 via found undocummented registers The solution was implemented in driver The solution (needed registers) was found through reverse- engineering of Sensor Devkit SWtools.
  • 30. 30 Software solution: workaround LCD: the leftmost column issue Display Actual Anticipated Caused by ? HSyncStart, HSyncWidth, HTotal ? The needed values of horizontal synchronization parameters to correctly display leftmost column weren’t eventually found. Presumable root cause is incompatibility of particular TFT LCD and videocontroller. Fixed by filling framebuffer data in accordance with actual image size The solution implemented in driver
  • 31. 31 Software solution: workaround Resistive touchscreen: false pressings Caused by ? Touchscreen feature ? Completed collecting samples No Get sample Is sample valid ? Is PenDown ? Yes Collect sampleYes No The solution was implemented in driver False pressings were successfully filtered out via checking of distance between points. Presumable root cause of such behavior is a feature of particular touchscreen connected as follows: TS Codec AC97 SOC
  • 32. 32 Software solution: reimplementation ASIC video controller: incorrectly working hardware BitBlt with OR OR = Caused by ? ASIC VC error XOR = The solution was implemented in driver Symbols displaying was implemented with hardware BitBlt with XOR.
  • 33. 33 Software solution: reimplementation RTC Alarm reboot Watchdog timer Reboot OnChip RTC Caused by ? No external RTC PeriodicInterruptInterval = 3 ms Enable PeriodicInterrupt counting Enter DeepSleep Mode WakeUp! Boot Device rebooting was performed through transition to Deep Sleep mode and subsequent waking up on RTC Periodic Interrupt Alarm event. Such a mechanism let to avoid onchip RTC reset that took place in case of Watchdog Reset. 3 ms
  • 34. 34 Software solution: not found FPGA FPGA CPU CPU Board1 Board2 RAM RAM DMA DMAHigh Speed interface I/O I/O About design errors “Bottle neck” Due to erroneous design actual traffic rate turned out to be half the level of anticipated. The bottle neck was FPGA <-> FPGA section. This issue doesn’t have a software solution.
  • 35. 35 Hardware issue ? SD HC vs SD Host 1.01 SD Spec. 2.0 SD Host controller, SD Spec. 1.01 ? It works! CMD8, Set Response Format as R1/R6 This is not hardware issue! In accordance with SD Spec. 2.0 SDHC cards shall execute CMD8 (Send Interface Condition) after CMD0 (Go Idle State) and before ACMD41 (Send Operation Condition) during card initialization. Minor driver fix allowed to work with SDHC card on SD Spec. 1.01 host controller.
  • 36. 36 Contacts Thank You Auriga, USA 92 Potter Rd, Ste. 1 Wilton, NH 03086, USA Phone: +1 (866) 645-1119 Fax: +1 (603) 386-6097 info@auriga.com www.auriga.com Auriga, Russia 125 Varshavskoe Shosse, Unit 16A, Moscow, 117587 Tel:+7 (495) 713-9900 Fax:+7 (495) 939-0300 info@auriga.com www.auriga.com