The Kernel Boot & Baseport Engineer is responsible for bringing up and enabling the Linux kernel on new hardware platforms (SoCs/boards). The primary goal is to ensure the kernel boots successfully and supports required hardware features.
- Bring up the Linux kernel on new platforms (boot to console/Android UI)
- Enable basic functionalities (CPU, memory, interrupts, timers)
- Debug boot issues such as crashes, hangs, and panics
1.1 Core Responsibilities:
- Bring up Linux on new ARM-based hardware platforms
- Debug early boot issues (pre-kernel and post-kernel)
- Work on:
- Kernel image loading (zImage/Image/uImage)
- Initramfs/rootfs mounting
- Boot arguments and workplace setup
- Collaborate with kernel teams for boot-time dependencies and integration
1.2 Image Packaging & Distribution
- Implement and maintain boot image packaging workflows
- FIT images (Flattened Image Tree)
- Boot.img, DTB bundling, multi-image packaging
- Support flashing, provisioning, and OTA updates
- Work with Yocto/OpenEmbedded for boot components
- Ensure compatibility across distributions (Yocto, Ubuntu, etc.)
2. Kernel Development & Porting
- Port kernel features across versions/platforms
- Modify kernel code for new SoCs/boards
- Maintain and optimize kernel performance and stability
- Work on drivers and BSP components for platform bring-up
3. Debugging & Performance Optimization
- Debug kernel issues using logs, traces, and tools
- Fix boot failures, crashes, and performance bottlenecks
- Optimize power and CPU performance
Required Skills
Core Technical Skills
- Strong C programming and data structures
- Good understanding of:
- Linux kernel internals
- Boot process, SMP, scheduling, memory management
- Experience with debugging tools (ftrace, perf, logs)