diff --git a/notes/chapter3-page-tables b/notes/chapter3-page-tables
index a469820..0bbc4eb 100644
--- a/notes/chapter3-page-tables
+++ b/notes/chapter3-page-tables
@@ -169,3 +169,17 @@ How exec works
      `loadseg` uses `walkaddr` to find the phy@ of the allocated memory at which to write ELF segments
 
 To read sections from a binary: objdump -p file
+
+DEVICE TREE (devicetree, DT or DTB for device tree blob or even Flattened Devicetree Blob)
+  => file representing the hardware so the kernel can initialize devices and provide them to the users.
+
+Before DTs:
+  hardware was either hardcoded (with each system-on-chip being listed and their devices enumerated) or
+  detected with A LOT OF plateform-specific features such as BIOS, EFI, ACPI, etc.
+
+DTs are an improvement over ACPI since ACPI isn't properly standardized and implementations are often buggy.
+
+IN QEMU: this file can be created by QEMU and loaded by a bootloader somewhere in RAM, or provided to qemu.
+IN REAL LIFE: this file may be generated statically then loaded by the
+bootloader (or EFI?) in RAM then the address is provided to the kernel.
+Real kernels will get their configuration from different sources anyway.