Initial x86 port
diff --git a/arch/arm/crt0.S b/arch/arm/crt0.S
index 68dbc67..f567574 100644
--- a/arch/arm/crt0.S
+++ b/arch/arm/crt0.S
@@ -187,3 +187,14 @@
 abort_stack:
 	.skip 1024
 abort_stack_top:
+
+.rodata:
+.align 2
+
+/* define the heap end as read-only data containing the end defined in the
+ * linker script. other archs that use dynamic memory length discovery can make
+ * this read-write and update it during init.
+ */
+.global _heap_end
+_heap_end:
+	.int _end_of_ram