custom-allocators
Custom allocator skill for memory allocation strategies. Use when implementing…
Device tree skill for Linux hardware description. Use when writing DTS/DTSI, bindings, overlays, phandles, or debugging OF platform probe failures. Activates on queries about device tree, DTS syntax, phandle, devicetree bindings, DT overlay, or OF graph.
$ npx -y skills add mohitmishra786/low-level-dev-skills --skill device-tree --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/device-treeContext preview
The summary Claude sees to decide when to auto-load this skill.
Device tree skill for Linux hardware description. Use when writing DTS/DTSI, bindings, overlays, phandles, or debugging OF platform probe failures. Activates on queries about device tree, DTS syntax, phandle, devicetree bindings, DT overlay, or OF graph.
name: device-tree description: Device tree skill for Linux hardware description. Use when writing DTS/DTSI, bindings, overlays, phandles, or debugging OF platform probe failures. Activates on queries about device tree, DTS syntax, phandle, devicetree bindings, DT overlay, or OF graph.
Guide agents through Linux device tree source (DTS): syntax, bindings, phandles, overlays, and how the kernel OF (Open Firmware) layer parses hardware description into `platform_device` instances.
/dts-v1/;
#include "soc.dtsi"
/ {
model = "My Board";
compatible = "vendor,my-board", "vendor,soc-family";
soc {
uart0: serial@40011000 {
compatible = "vendor,uart";
reg = <0x40011000 0x400>;
interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clk_uart0>;
status = "okay";
};
};
};| Property | Meaning | |----------|---------| | `compatible` | Driver match string (most specific first) | | `reg` | MMIO address + length ( `#address-cells`, `#size-cells` ) | | `interrupts` | IRQ specifier (interrupt parent defines cells) | | `clocks` / `clock-names` | phandle to clock provider | | `status` | `"disabled"` skips probe |
clk_uart0: clock-uart {
compatible = "vendor,clk";
#clock-cells = <0>;
};
serial@... {
clocks = <&clk_uart0>; /* phandle reference */
};OF core reads DTB at boot ├── of_platform_populate() creates platform_devices └── driver `.of_match_table` matches `compatible`
static const struct of_device_id my_of_match[] = {
{ .compatible = "vendor,uart" },
{ }
};
MODULE_DEVICE_TABLE(of, my_of_match);dtc -I dts -O dtb -o board.dtb board.dts dtc -I fs -O dts /proc/device-tree 2>/dev/null | less ls /sys/firmware/devicetree/base/
Bindings live at [devicetree.org](https://www.devicetree.org/) — always cite binding name in commits.
# Runtime overlay apply (when CONFIG_OF_OVERLAY) mkdir -p /config/device-tree/overlays/my-overlay cat my-overlay.dtbo > /config/device-tree/overlays/my-overlay/dtbo
/device-tree Write DTS fragment for I2C sensor on i2c1 with interrupt on GPIO5
| Symptom | Cause | Fix | |---------|-------|-----| | Driver not bound | `compatible` typo | Match driver's `of_match_table` | | Wrong MMIO | `#address-cells` mismatch | Follow SoC `.dtsi` | | IRQ not firing | Wrong interrupt parent/cells | Copy from working board DTS | | Probe defer loop | Clock/regulator missing | `-EPROBE_DEFER` supplier in DT | | Overlay fails | Symbol unresolved | `__fixups__` / label exports |
A curated suite of AI agent skills for systems and low-level programming — C/C++, Rust, Zig, GPU, bare-metal firmware, Linux kernel/driver development, computer architecture, compiler internals, HPC, and more.
Repo: mohitmishra786/low-level-dev-skills
Custom allocator skill for memory allocation strategies. Use when implementing…
NUMA programming skill for multi-socket memory locality. Use when detecting NUMA topology,…
AF_XDP skill for high-performance XDP sockets. Use when creating AF_XDP sockets, configuring…
DPDK skill for userspace packet I/O. Use when initializing EAL, configuring PMD drivers,…
io_uring skill for Linux async I/O. Use when building high-performance servers with liburing,…
Bare-metal ADC and DAC skill. Use when configuring analog sampling, DMA-driven ADC,…