<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Posts on Troy's Blog</title><link>https://blog.troy-y.org/posts/</link><description>Recent content in Posts on Troy's Blog</description><generator>Hugo</generator><language>en</language><lastBuildDate>Thu, 23 Apr 2026 18:15:51 +0800</lastBuildDate><atom:link href="https://blog.troy-y.org/posts/index.xml" rel="self" type="application/rss+xml"/><item><title>linux-mm[0]: Physical Memory and struct page</title><link>https://blog.troy-y.org/posts/linux-mm-0-physical-memory-and-struct-page/</link><pubDate>Thu, 23 Apr 2026 18:15:51 +0800</pubDate><guid>https://blog.troy-y.org/posts/linux-mm-0-physical-memory-and-struct-page/</guid><description>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.</description></item><item><title>Hello World</title><link>https://blog.troy-y.org/posts/hello-world/</link><pubDate>Thu, 23 Apr 2026 00:00:00 +0000</pubDate><guid>https://blog.troy-y.org/posts/hello-world/</guid><description>&lt;p&gt;This is my first Hugo blog post.&lt;/p&gt;
&lt;p&gt;Migrated from Hexo + Butterfly to Hugo + PaperMod, pursuing simplicity and efficiency.&lt;/p&gt;</description></item><item><title>Building LazyVim on RISC-V from Scratch</title><link>https://blog.troy-y.org/posts/lazyvim-on-riscv/</link><pubDate>Mon, 20 Apr 2026 17:09:46 +0800</pubDate><guid>https://blog.troy-y.org/posts/lazyvim-on-riscv/</guid><description>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.</description></item><item><title>Fix LazyVim Clipboard over SSH</title><link>https://blog.troy-y.org/posts/fix-lazyvim-clipboard-over-ssh/</link><pubDate>Sat, 30 Nov 2024 12:07:41 +0800</pubDate><guid>https://blog.troy-y.org/posts/fix-lazyvim-clipboard-over-ssh/</guid><description>LazyVim disables system clipboard when running over SSH. A one-line config override fixes it.</description></item><item><title>Booting a Linux Kernel via PXE in U-Boot</title><link>https://blog.troy-y.org/posts/pxe-boot-linux-kernel-in-uboot/</link><pubDate>Fri, 06 Sep 2024 10:33:32 +0800</pubDate><guid>https://blog.troy-y.org/posts/pxe-boot-linux-kernel-in-uboot/</guid><description>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.</description></item><item><title>Rockchip Boot Flow Explained</title><link>https://blog.troy-y.org/posts/rockchip-boot-flow/</link><pubDate>Fri, 23 Aug 2024 12:57:43 +0800</pubDate><guid>https://blog.troy-y.org/posts/rockchip-boot-flow/</guid><description>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.</description></item><item><title>Linux earlycon: How the Kernel Gets Console Output Before Drivers Are Ready</title><link>https://blog.troy-y.org/posts/linux-earlycon-internals/</link><pubDate>Wed, 03 Jul 2024 18:01:54 +0800</pubDate><guid>https://blog.troy-y.org/posts/linux-earlycon-internals/</guid><description>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.</description></item></channel></rss>