Index: kernel/generic/include/mm/frame.h
===================================================================
--- kernel/generic/include/mm/frame.h	(revision ddcc8a0d63f8ff64bcff9151c6d65b103343d22c)
+++ kernel/generic/include/mm/frame.h	(revision 95e882dbb99acf08dbec02f08677c10516b5d4d9)
@@ -58,4 +58,6 @@
 /** Do not reserve / unreserve memory. */
 #define FRAME_NO_RESERVE  0x8
+/** Allocate a frame which can be identity-mapped. */
+#define FRAME_LOWMEM	  0x10
 
 typedef uint8_t zone_flags_t;
@@ -67,8 +69,8 @@
 /** Zone is used by firmware (not available for allocation) */
 #define ZONE_FIRMWARE   0x10
+/** Zone contains memory that can be identity-mapped */
+#define ZONE_LOWMEM	0x20
 
-/** Currently there is no equivalent zone flags
-    for frame flags */
-#define FRAME_TO_ZONE_FLAGS(frame_flags)  0
+#define FRAME_TO_ZONE_FLAGS(ff)	(((ff) & FRAME_LOWMEM) ? ZONE_LOWMEM : 0) 
 
 typedef struct {
