I’m Troy Mitchell. Welcome to my blog.
linux-mm[0]: Physical Memory and struct page
How the Linux kernel slices RAM into pages, tracks per-page metadata via struct page, and manages page lifetime through reference counting and dirty writeback.
Hello World
This is my first Hugo blog post. Migrated from Hexo + Butterfly to Hugo + PaperMod, pursuing simplicity and efficiency.
Building LazyVim on RISC-V from Scratch
A complete guide to compiling and running Neovim with LazyVim on RISC-V Linux, including LuaJIT porting, tree-sitter, LSP, blink.cmp native build, and snacks.nvim workarounds.
Fix LazyVim Clipboard over SSH
LazyVim disables system clipboard when running over SSH. A one-line config override fixes it.
Booting a Linux Kernel via PXE in U-Boot
How to set up TFTP-based PXE boot in U-Boot to load a Linux kernel and device tree over the network, including the fdt_addr_r pitfall on SpacemiT K1.
Rockchip Boot Flow Explained
A walkthrough of the Rockchip SoC boot sequence from BootROM to U-Boot, covering both the open-source TPL/SPL path and the closed-source miniloader path.
Linux earlycon: How the Kernel Gets Console Output Before Drivers Are Ready
A deep dive into the Linux earlycon mechanism — how the kernel provides console output during early boot before the real serial driver is initialized, covering both command-line and device-tree paths.