X-Git-Url: http://git.ozlabs.org/?p=petitboot;a=blobdiff_plain;f=discover%2Fplatform-powerpc.c;h=a4b13e4f8dd7e224896ffd9c8f303eaed8c3de1e;hp=2b89121264e4c11e02856c8d7861c1e20dbf53bf;hb=1dd51e986202e5e111c1042f148867bd08c2bedc;hpb=662129afba2d344d692a9dbfd430c91eff4f281d diff --git a/discover/platform-powerpc.c b/discover/platform-powerpc.c index 2b89121..a4b13e4 100644 --- a/discover/platform-powerpc.c +++ b/discover/platform-powerpc.c @@ -59,7 +59,7 @@ static const char *known_params[] = { "petitboot,debug?", "petitboot,write?", "petitboot,snapshots?", - "petitboot,tty", + "petitboot,console", NULL, }; @@ -567,9 +567,12 @@ static void populate_config(struct platform_powerpc *platform, if (val) config->disable_snapshots = !strcmp(val, "false"); - val = get_param(platform, "petitboot,tty"); + val = get_param(platform, "petitboot,console"); if (val) - config->boot_tty = talloc_strdup(config, val); + config->boot_console = talloc_strdup(config, val); + /* If a full path is already set we don't want to override it */ + config->manual_console = config->boot_console && + !strchr(config->boot_console, '['); } static char *iface_config_str(void *ctx, struct interface_config *config) @@ -746,8 +749,10 @@ static int update_config(struct platform_powerpc *platform, val = config->allow_writes ? "true" : "false"; update_string_config(platform, "petitboot,write?", val); - val = config->boot_tty ?: ""; - update_string_config(platform, "petitboot,tty", val); + if (!config->manual_console) { + val = config->boot_console ?: ""; + update_string_config(platform, "petitboot,console", val); + } update_network_config(platform, config); @@ -1239,32 +1244,32 @@ static void get_active_consoles(struct config *config) struct stat sbuf; char *fsp_prop = NULL; - config->n_tty = 2; - config->tty_list = talloc_array(config, char *, config->n_tty); - if (!config->tty_list) + config->n_consoles = 2; + config->consoles = talloc_array(config, char *, config->n_consoles); + if (!config->consoles) goto err; - config->tty_list[0] = talloc_asprintf(config->tty_list, + config->consoles[0] = talloc_asprintf(config->consoles, "/dev/hvc0 [IPMI / Serial]"); - config->tty_list[1] = talloc_asprintf(config->tty_list, + config->consoles[1] = talloc_asprintf(config->consoles, "/dev/tty1 [VGA]"); fsp_prop = talloc_asprintf(config, "%sfsps", devtree_dir); if (stat(fsp_prop, &sbuf) == 0) { /* FSP based machines also have a separate serial console */ - config->tty_list = talloc_realloc(config, config->tty_list, - char *, config->n_tty + 1); - if (!config->tty_list) + config->consoles = talloc_realloc(config, config->consoles, + char *, config->n_consoles + 1); + if (!config->consoles) goto err; - config->tty_list[config->n_tty++] = talloc_asprintf( - config->tty_list, + config->consoles[config->n_consoles++] = talloc_asprintf( + config->consoles, "/dev/hvc1 [Serial]"); } return; err: - config->n_tty = 0; - pb_log("Failed to allocate memory for tty_list\n"); + config->n_consoles = 0; + pb_log("Failed to allocate memory for consoles\n"); } static int load_config(struct platform *p, struct config *config)