Index: kernel/genarch/include/genarch/multiboot/multiboot2.h
===================================================================
--- kernel/genarch/include/genarch/multiboot/multiboot2.h	(revision 63e27efdf2fe6d3fa02bbb5ee1da00df5cc07e9d)
+++ kernel/genarch/include/genarch/multiboot/multiboot2.h	(revision 9ef1fadef604b9c3871bb759de90bf613963a180)
@@ -52,4 +52,5 @@
 #define MULTIBOOT2_TAG_MODULE_ALIGN   6
 
+#define MULTIBOOT2_TAG_CMDLINE 1
 #define MULTIBOOT2_TAG_MODULE  3
 #define MULTIBOOT2_TAG_MEMMAP  6
@@ -73,4 +74,9 @@
 	uint32_t reserved;
 } __attribute__((packed)) multiboot2_info_t;
+
+/** Multiboot2 cmdline structure */
+typedef struct {
+	char string[0];
+} __attribute__((packed)) multiboot2_cmdline_t;
 
 /** Multiboot2 modules structure */
@@ -138,4 +144,5 @@
 	uint32_t size;
 	union {
+		multiboot2_cmdline_t cmdline;
 		multiboot2_module_t module;
 		multiboot2_memmap_t memmap;
Index: kernel/genarch/src/multiboot/multiboot2.c
===================================================================
--- kernel/genarch/src/multiboot/multiboot2.c	(revision 63e27efdf2fe6d3fa02bbb5ee1da00df5cc07e9d)
+++ kernel/genarch/src/multiboot/multiboot2.c	(revision 9ef1fadef604b9c3871bb759de90bf613963a180)
@@ -41,4 +41,25 @@
 
 #define MULTIBOOT2_TAG_ALIGN  8
+
+static void multiboot2_cmdline(const multiboot2_cmdline_t *module)
+{
+	/*
+	 * GRUB passes the command line in an escaped form.
+	 */
+	for (size_t i = 0, j = 0;
+	    module->string[i] && j < CONFIG_BOOT_ARGUMENTS_BUFLEN;
+	    i++, j++) {
+		if (module->string[i] == '\\') {
+			switch (module->string[i + 1]) {
+			case '\\':
+			case '\'':
+			case '\"':
+				i++;
+				break;
+			}
+		}
+		bargs[j] = module->string[i];
+	} 
+}
 
 static void multiboot2_module(const multiboot2_module_t *module)
@@ -117,4 +138,7 @@
 	while (tag->type != MULTIBOOT2_TAG_TERMINATOR) {
 		switch (tag->type) {
+		case MULTIBOOT2_TAG_CMDLINE:
+			multiboot2_cmdline(&tag->cmdline);
+			break;
 		case MULTIBOOT2_TAG_MODULE:
 			multiboot2_module(&tag->module);
