5 ms·
(For a Cortex-M based microcontroller)
by Koshkin 4y ago
(For a Cortex-M based microcontroller)
- kaycebasques 4y ago(n00b q) are there big differences for Cortex-A and Cortex-M bootloaders? Any helpful tutorials for Cortex-A if so?
- auxym 4y agoCortex-A appears to be way more vendor-implementation dependent. For example, I remember reading that the Raspberry Pi SoC, which uses a Cortex-A72 core, actually boots off its GPU.
- megous 4y agoYes. DRAM initiazization, MMU, exception levels, trusted-firmware, initialization of specialized coprocessors for system power states management, more complicated storage access options (SD card/eMMC), etc. etc.
- sbf501 4y agoMost of those aren't Cortex-A specific, you've just listed mostly peripherals that are typically initialized in the application space (except for a secure boot). E.g. you aren't going to go into power savings mode during boot, nor are you going to initialize peripherals (because their contexts will be lost once you jump to the application). Initializing assymetric processors can be done in application space with a variety of tools (AMP) as well. I haven't seen a need to initialize them during bootloader1 phase, but there are lot of use cases.
- megous 4y agoMajority of Cortex-A cores are in complex SoCs, where you have to do all of the above and more if you want to boot something like Linux.
- sbf501 4y agoWhat are you talking about? The MCU is the first thing to boot. Wait, do you not know what a bootloader is? It's not GRUB.
- megous 4y agoYes, I wrote one bootloader for a SoC, and read through several other bootloaders to be able to make modifications to them. I've also reverse engineered several binary only bootloaders for undocumented MCUs to be able to write sane Linux based flashing tools for them. Kinda know what bootloader is. And, while I don't care about the naming, I know several people who would vehemently disagree with you that grub is not a bootloader. They'd say that only grub is a bootloader, and anything else running prior to that is platform firmware. Cortex-A is not typically used in MCUs, so I don't see what you mean by "The MCU is the first thing to boot".
- fra 4y agoYes, an important qualifier! In practice the vast majority of embedded projects out there are on cortex M, with a bit of xtensa (ESP32) and a bit of RISC-V.
- chinabot 4y agoand 32-Bit microprocessors are still only about 1/3 of total microprocessors by volume (source https://www.ednasia.com/8-bit-mcu-still-alive-and-kicking/ https://www.ednasia.com/8-bit-mcu-still-alive-and-kicking/)