|
@@ -231,6 +231,26 @@ static noinline __init void detect_machine_type(void)
|
|
|
S390_lowcore.machine_flags |= MACHINE_FLAG_VM;
|
|
|
}
|
|
|
|
|
|
+static noinline __init void setup_arch_string(void)
|
|
|
+{
|
|
|
+ struct sysinfo_1_1_1 *mach = (struct sysinfo_1_1_1 *)&sysinfo_page;
|
|
|
+
|
|
|
+ if (stsi(mach, 1, 1, 1))
|
|
|
+ return;
|
|
|
+ EBCASC(mach->manufacturer, sizeof(mach->manufacturer));
|
|
|
+ EBCASC(mach->type, sizeof(mach->type));
|
|
|
+ EBCASC(mach->model, sizeof(mach->model));
|
|
|
+ EBCASC(mach->model_capacity, sizeof(mach->model_capacity));
|
|
|
+ dump_stack_set_arch_desc("%-16.16s %-4.4s %-16.16s %-16.16s (%s)",
|
|
|
+ mach->manufacturer,
|
|
|
+ mach->type,
|
|
|
+ mach->model,
|
|
|
+ mach->model_capacity,
|
|
|
+ MACHINE_IS_LPAR ? "LPAR" :
|
|
|
+ MACHINE_IS_VM ? "z/VM" :
|
|
|
+ MACHINE_IS_KVM ? "KVM" : "unknown");
|
|
|
+}
|
|
|
+
|
|
|
static __init void setup_topology(void)
|
|
|
{
|
|
|
int max_mnest;
|
|
@@ -452,6 +472,7 @@ void __init startup_init(void)
|
|
|
setup_lowcore_early();
|
|
|
setup_facility_list();
|
|
|
detect_machine_type();
|
|
|
+ setup_arch_string();
|
|
|
ipl_update_parameters();
|
|
|
setup_boot_command_line();
|
|
|
create_kernel_nss();
|