Build XNU 6153.141.1 ARM64

Darwin Kernel Version 19.6.0: Mon Sep  7 21:53:47 EDT 2020; binwang:XNU/BUILD/obj/DEVELOPMENT_ARM64_BCM2837 It is similar to building XNU 4903, but a few things changed. I am just writing down my quick diff here: Dependencies have version dump, take the latest version. dtrace/CTF Tools need to have macosx.internal SDK string replaced with the public macOS SDK string.… Continue reading Build XNU 6153.141.1 ARM64

About the vGIC implementation on Qualcomm GICv2

Random Internet search gives you useful results: https://lore.kernel.org/linux-arm-msm/1576752109-24497-7-git-send-email-sricharan@codeaurora.org/ With some induction, we can guess the GICH/GICV and vGIC maintenance interrupt for other QGIC2 SoC like MSM8994: [04Ch 0076 8] Base Address : 00000000F9002000 [054h 0084 8] Virtual GIC Base Address : 00000000F9004000 [05Ch 0092 8] Hypervisor GIC Base Address : 00000000F9001000 [064h 0100 4] Virtual… Continue reading About the vGIC implementation on Qualcomm GICv2

So you told me you want to run Windows on a Calculator

HP Prime G2 Calculator running Windows 10 IoT, showing the default IoT shell experience.

Running Windows on a consumer calculator was a dream until the appearance of HP Prime G2 Graphical Calculator. This calculator has the most superior hardware specification among the market so far. This post discusses the implementation of UEFI and ACPI on this device.

A deep dive into Apple Touch Bar – Part I

Recent Apple MacBook Pro models are usually equipped with long OLED touch display that officially named “Touch Bar” that substitutes the traditional Function (Fn) key row. Internally, this thing is called Dynamic Function Row (DFR) according to the naming prefix of related system components. In Boot Camp Windows installations, the Touch Bar acts as basic… Continue reading A deep dive into Apple Touch Bar – Part I

Debugging early ARM ACPI bringup without UART

Sometimes it is not feasible to get UART access on consumer blackbox devices (e.g. Lumia 950XL). In the case of ARM ACPI debugging, the lack of UART access may make early boot debug incredibly difficult. Starting from Linux Kernel 5.0, it is now possible to enable FrameBuffer-based early kernel display. All you need to do… Continue reading Debugging early ARM ACPI bringup without UART

Status Update: Lumia950XLPkg

It’s almost a year for Lumia950XLPkg and its derivative projects. A new touch-enabled graphical menu will be added in coming weeks (I’ve posted a picture on Twitter). UEFI: Finalized There are a few more things to do (mostly bugfix) after the PCIe initialization (Talkman variant will be released later). Here’s a list of current backlog:… Continue reading Status Update: Lumia950XLPkg

Play “Overcooked” efficiently

I got a Nintendo Switch from my friend (for a research project). Meanwhile, I enjoyed the game “Overcooked” on Switch. I spent some time figuring out an efficient way to play the game.