21 #include <linux/kernel.h>
24 #include <linux/screen_info.h>
26 #include <asm/setup.h>
36 #define MEM_SIZE (16*1024*1024)
55 if (tag->
hdr.size > 2) {
56 if ((tag->
u.
core.flags & 1) == 0)
65 static int __init parse_tag_mem32(
const struct tag *tag)
72 #if defined(CONFIG_VGA_CONSOLE) || defined(CONFIG_DUMMY_CONSOLE)
73 static int __init parse_tag_videotext(
const struct tag *tag)
90 #ifdef CONFIG_BLK_DEV_RAM
91 static int __init parse_tag_ramdisk(
const struct tag *tag)
95 rd_image_start = tag->
u.
ramdisk.start;
96 rd_doload = (tag->
u.
ramdisk.flags & 1) == 0;
97 rd_prompt = (tag->
u.
ramdisk.flags & 2) == 0;
108 static int __init parse_tag_serialnr(
const struct tag *tag)
117 static int __init parse_tag_revision(
const struct tag *tag)
125 static int __init parse_tag_cmdline(
const struct tag *tag)
127 #if defined(CONFIG_CMDLINE_EXTEND)
131 #elif defined(CONFIG_CMDLINE_FORCE)
132 pr_warning(
"Ignoring tag cmdline (using the default kernel command line)\n");
147 static int __init parse_tag(
const struct tag *tag)
149 extern struct tagtable __tagtable_begin, __tagtable_end;
152 for (t = &__tagtable_begin; t < &__tagtable_end; t++)
153 if (tag->
hdr.tag == t->
tag) {
158 return t < &__tagtable_end;
165 static void __init parse_tags(
const struct tag *t)
170 "Ignoring unrecognised tag 0x%08x\n",
174 static void __init squash_mem_tags(
struct tag *tag)
182 unsigned int machine_nr)
184 struct tag *
tags = (
struct tag *)&default_tags;
186 char *
from = default_command_line;
194 if (machine_nr == p->nr) {
195 printk(
"Machine: %s\n", p->name);
201 early_print(
"\nError: unrecognized/unsupported machine ID"
202 " (r1 = 0x%08x).\n\n", machine_nr);
211 #if defined(CONFIG_DEPRECATED_PARAM_STRUCT)
220 early_print(
"Warning: Neither atags nor dtb found\n");
221 tags = (
struct tag *)&default_tags;
229 squash_mem_tags(tags);