Loading arch/powerpc/platforms/chrp/setup.c +52 −0 Original line number Diff line number Diff line Loading @@ -256,6 +256,57 @@ static void briq_restart(char *cmd) for(;;); } /* * Per default, input/output-device points to the keyboard/screen * If no card is installed, the built-in serial port is used as a fallback. * But unfortunately, the firmware does not connect /chosen/{stdin,stdout} * the the built-in serial node. Instead, a /failsafe node is created. */ static void chrp_init_early(void) { struct device_node *node; const char *property; if (strstr(cmd_line, "console=")) return; /* find the boot console from /chosen/stdout */ if (!of_chosen) return; node = of_find_node_by_path("/"); if (!node) return; property = of_get_property(node, "model", NULL); if (!property) goto out_put; if (strcmp(property, "Pegasos2")) goto out_put; /* this is a Pegasos2 */ property = of_get_property(of_chosen, "linux,stdout-path", NULL); if (!property) goto out_put; of_node_put(node); node = of_find_node_by_path(property); if (!node) return; property = of_get_property(node, "device_type", NULL); if (!property) goto out_put; if (strcmp(property, "serial")) goto out_put; /* * The 9pin connector is either /failsafe * or /pci@80000000/isa@C/serial@i2F8 * The optional graphics card has also type 'serial' in VGA mode. */ property = of_get_property(node, "name", NULL); if (!property) goto out_put; if (!strcmp(property, "failsafe") || !strcmp(property, "serial")) add_preferred_console("ttyS", 0, NULL); out_put: of_node_put(node); } void __init chrp_setup_arch(void) { struct device_node *root = of_find_node_by_path("/"); Loading Loading @@ -599,6 +650,7 @@ define_machine(chrp) { .probe = chrp_probe, .setup_arch = chrp_setup_arch, .init = chrp_init2, .init_early = chrp_init_early, .show_cpuinfo = chrp_show_cpuinfo, .init_IRQ = chrp_init_IRQ, .restart = rtas_restart, Loading Loading
arch/powerpc/platforms/chrp/setup.c +52 −0 Original line number Diff line number Diff line Loading @@ -256,6 +256,57 @@ static void briq_restart(char *cmd) for(;;); } /* * Per default, input/output-device points to the keyboard/screen * If no card is installed, the built-in serial port is used as a fallback. * But unfortunately, the firmware does not connect /chosen/{stdin,stdout} * the the built-in serial node. Instead, a /failsafe node is created. */ static void chrp_init_early(void) { struct device_node *node; const char *property; if (strstr(cmd_line, "console=")) return; /* find the boot console from /chosen/stdout */ if (!of_chosen) return; node = of_find_node_by_path("/"); if (!node) return; property = of_get_property(node, "model", NULL); if (!property) goto out_put; if (strcmp(property, "Pegasos2")) goto out_put; /* this is a Pegasos2 */ property = of_get_property(of_chosen, "linux,stdout-path", NULL); if (!property) goto out_put; of_node_put(node); node = of_find_node_by_path(property); if (!node) return; property = of_get_property(node, "device_type", NULL); if (!property) goto out_put; if (strcmp(property, "serial")) goto out_put; /* * The 9pin connector is either /failsafe * or /pci@80000000/isa@C/serial@i2F8 * The optional graphics card has also type 'serial' in VGA mode. */ property = of_get_property(node, "name", NULL); if (!property) goto out_put; if (!strcmp(property, "failsafe") || !strcmp(property, "serial")) add_preferred_console("ttyS", 0, NULL); out_put: of_node_put(node); } void __init chrp_setup_arch(void) { struct device_node *root = of_find_node_by_path("/"); Loading Loading @@ -599,6 +650,7 @@ define_machine(chrp) { .probe = chrp_probe, .setup_arch = chrp_setup_arch, .init = chrp_init2, .init_early = chrp_init_early, .show_cpuinfo = chrp_show_cpuinfo, .init_IRQ = chrp_init_IRQ, .restart = rtas_restart, Loading