<?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>Troy's Blog</title><link>https://blog.troy-y.org/</link><description>Recent content on Troy's Blog</description><generator>Hugo</generator><language>en</language><lastBuildDate>Tue, 28 Apr 2026 09:32:38 +0800</lastBuildDate><atom:link href="https://blog.troy-y.org/index.xml" rel="self" type="application/rss+xml"/><item><title>Stop Manually Editing Rebase TODOs: Use git commit --fixup + autosquash</title><link>https://blog.troy-y.org/posts/git-fixup-autosquash/</link><pubDate>Tue, 28 Apr 2026 09:32:38 +0800</pubDate><guid>https://blog.troy-y.org/posts/git-fixup-autosquash/</guid><description>A faster way to amend older commits in a patch series using git commit &amp;ndash;fixup and rebase &amp;ndash;autosquash, without manually editing the rebase TODO list.</description></item><item><title>Plano: Smart LLM Router with Failover and Intelligent Routing</title><link>https://blog.troy-y.org/posts/plano-smart-llm-router/</link><pubDate>Mon, 27 Apr 2026 16:59:39 +0800</pubDate><guid>https://blog.troy-y.org/posts/plano-smart-llm-router/</guid><description>Deploy Plano as a local LLM proxy with automatic failover across providers, per-status-code retry policies, and intent-based smart routing — so your requests always land on the right model through the right channel.</description></item><item><title>linux-mm[1]: folio, HVO, and the Memory Lifecycle</title><link>https://blog.troy-y.org/posts/linux-mm-1-folio-hvo-and-memory-lifecycle/</link><pubDate>Fri, 24 Apr 2026 23:00:00 +0800</pubDate><guid>https://blog.troy-y.org/posts/linux-mm-1-folio-hvo-and-memory-lifecycle/</guid><description>A deep dive into struct folio, HugeTLB Vmemmap Optimization, reverse mapping, demand paging, and dirty page management in the Linux kernel.</description></item><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>