I'm a bit lost regarding the boot concept of a modern system from a serial flash device. Having programmed quite a number of simple micros ranging from 8 bit PICs to 32 bit Power Architecture down on the bare metal (always by reprogramming the normal bus-addressable flash)I wonder how modern SoCs boot from serial devices. I didn't find too much on the net either as every system seems to rely on a combination of sd-card programming tool and a secondary bootloader, both receiving little to no attention.
how does an ARM boot from a sd card?
1.3k Views Asked by Vroomfondel At
1
There are 1 best solutions below
Related Questions in ARM
- Why Device Tree Structure (DTS) file is needed both in bootloader and kernel source code?
- How can I use LD to place ARM reset vectors in a program segment
- Errors in makefile for qemu 0.14.1 in ubuntu 15.04 64 bit
- Text as parameter in inline assembly (ARM)?
- GSL: nm outputs "undefined Symbol (U)"
- How to address multiple definition compiler error
- Did anyone compiled GSL for androind?
- Linker Error on cross compiling Project in eclipse
- How to set privilaged mode in ARM Cortex-A8?
- Why is a write to a memory-mapped peripheral register not actioned (LPC43xx)?
- what's ARM TCM memory
- Traversing a string using arm assembly inside V8 source
- C Global declared in ISR
- Which is better? int8_t vs int32_t in 32 bits MCU
- Cannot find -lgtk-x11-2.0. Also, some modules are not found by cmake, though they are installed
Related Questions in BOOT
- u-boot select boot partition based on GPIO state
- Mounting GEOM_ELI Encrypted ZFS Pool as root
- Android / Cannot start app at boot on certain devices (e.g. Xiaomi)
- Piping echo into sendmail in rc.local fails
- ARM Trustzone, Open Virtualization SDK Boot stuck
- How to write a BIOS program that runs before the OS?
- Linux Kernel init fails in encrypted filesystem
- Cannot boot Arch Linux after installing it next to windows 10
- Android - Launch service at Boot but without Boot Completed Permission
- Embedded Linux Newbie Questions
- Nodejs forever, run on boot with --watch not working
- android wrong boot up time
- Start Service after boot
- linux deploy, kali, start an app service after its boots up
- Why kexts are loaded by Boot Loader but not after Kernel gets the control
Related Questions in BOOTLOADER
- Bootloader in Assembly with Linux kernel
- Put a bootloader program at the bottom of the FLASH memory
- ASM : Trouble using int21h on real machine
- What steps are needed to load a second stage bootloader by name on a FAT32 file system in x86 Assembly?
- Write a custom bootloader with the STM32L1 series in C
- NASM memory not being accessed correctly?
- Is this an overflow, or maybe more keyboard data?
- NASM assembled bootloader memory issue
- Loosing some bytes on USART transmission with STM32L1XX
- TFTP boot of a bare-metal program on imx53-QSB
- my bootloader doesn't boot my new program on stm32
- How are all disk sectors iterated in assembly?
- Is a boot loader without assembly language possible?
- int 10h 13h bios string output not working
- kernel in c inline assembly
Related Questions in SYSTEM-ON-CHIP
- GadgetFS on Allwinner H3 based linux board
- Can cc2541 be the role of observer and peripheral at the same time?
- Basic ARM application in Xilinx Zynq SoC
- Linux Toolchain for TI CCXXXX SoC Chips
- What is the difference between openwrt and μTenux?
- Can a 32 bit MCU have data lines more than 32?
- Do all Bluetooth LE devices implement the HCI interface?
- advice on embedded linux on an FreeScale SoC MCU MPC56xx
- How to retrieve SoC model name of an android device?
- Libero soc & ide for windows 7 x32
- Balanced processor/SOC (?) for small embedded system running linux
- example extending LEON SOC with custom peripheral, AMBA AHB slave
- Nordic nRF51822 + Nordic IoT SDK
- Prefered HDL instantiation hierarchy for a SoC
- Accessing Platform Device from Userpace
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
The 'how' is a mask-PROM based primary-boot loader baked into the SoC. It doesn't need to do much besides initialise the SD card interface and possibly some SDRAM with enormously conservative timings (although some devices have embedded SRAM to use at this point).
It then enumerates the card interface, reads the FAT from the first card it finds, and from whence, copies the secondary boot-loader into SRAM or SDRAM and executes it.
Often there are restrictions such as the secondary bootloader being the first file on the card and the allocated locks being contiguous.
Many systems then load yet another boot-loader at this point, which is the one which boots the operating system.