]> Zhao Yanbai Git Server - minix.git/commitdiff
ARM: provide means to pass boot cmdline
authorThomas Veerman <thomas@minix3.org>
Thu, 17 Jan 2013 11:37:53 +0000 (11:37 +0000)
committerThomas Veerman <thomas@minix3.org>
Fri, 25 Jan 2013 17:07:01 +0000 (17:07 +0000)
kernel/arch/earm/pre_init.c

index cab4979df62d33fdeee7ce4c6fc1f7d8d71808d0..2df28f798f7d90e8cfb35b1ee1fec0f265ed7cd7 100644 (file)
@@ -30,6 +30,8 @@ struct kmessages kmessages;
 /* pg_utils.c uses this; in this phase, there is a 1:1 mapping. */
 phys_bytes vir2phys(void *addr) { return (phys_bytes) addr; } 
 
+static void setup_mbi(multiboot_info_t *mbi);
+
 /* String length used for mb_itoa */
 #define ITOA_BUFFER_SIZE 20
 
@@ -98,6 +100,7 @@ int overlaps(multiboot_module_t *mod, int n, int cmp_mod)
 /* XXX: hard-coded stuff for modules */
 #define MB_MODS_NR 12
 #define MB_MODS_BASE  0x90000000
+#define MB_PARAM_MOD  0x96000000
 #define MB_MODS_ALIGN 0x00800000 /*  8 MB */
 #define MB_MODS_SIZE  0x00004000 /* 16 KB */
 #define MB_MMAP_START MB_MODS_BASE
@@ -109,7 +112,8 @@ multiboot_memory_map_t mb_memmap;
 void setup_mbi(multiboot_info_t *mbi)
 {
        memset(mbi, 0, sizeof(*mbi));
-       mbi->flags = MULTIBOOT_INFO_MODS | MULTIBOOT_INFO_MEM_MAP;
+       mbi->flags = MULTIBOOT_INFO_MODS | MULTIBOOT_INFO_MEM_MAP |
+                       MULTIBOOT_INFO_CMDLINE;
        mbi->mods_count = MB_MODS_NR;
        mbi->mods_addr = (u32_t)&mb_modlist;
 
@@ -119,6 +123,9 @@ void setup_mbi(multiboot_info_t *mbi)
            mb_modlist[i].mod_end = mb_modlist[i].mod_start + MB_MODS_ALIGN - 1;            mb_modlist[i].cmdline = 0;
        }
 
+       /* Final 'module' is actually a string holding the boot cmdline */
+       mbi->cmdline = MB_PARAM_MOD;
+
        mbi->mmap_addr = (void*)&mb_memmap;
        mbi->mmap_length = sizeof(mb_memmap);