diff options
author | Helge Deller <deller@gmx.de> | 2017-05-30 23:02:55 +0200 |
---|---|---|
committer | Helge Deller <deller@gmx.de> | 2017-05-30 23:02:55 +0200 |
commit | 9bb40b5ab775a077fd847c6ff99462249cc3f426 (patch) | |
tree | 29555e0aa49c71b8f3956b1c95341a4ba8a0c0b4 | |
parent | 305c805caab36a27f5017b86010d86803d0b8d2d (diff) | |
download | palo-9bb40b5ab775a077fd847c6ff99462249cc3f426.tar.gz |
palo v1.98 release, fixes console on rp34x0 machinesv1.98
-rw-r--r-- | debian/changelog | 6 | ||||
-rw-r--r-- | ipl/ipl.c | 33 | ||||
-rw-r--r-- | ipl/pdc_misc.c | 17 | ||||
-rw-r--r-- | iplboot | bin | 45056 -> 45056 bytes | |||
-rw-r--r-- | lib/common.h | 2 | ||||
-rw-r--r-- | palo.spec | 2 |
6 files changed, 57 insertions, 3 deletions
diff --git a/debian/changelog b/debian/changelog index 40d5273..80751b0 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +palo (1.98) unstable; urgency=medium + + * Default to console=ttyS1 on rp34x0 machines + + -- Helge Deller <deller@gmx.de> Tue, 30 May 2017 13:12:20 -0700 + palo (1.97) unstable; urgency=medium * Enable support for cross-building of iplboot: (Closes: #851792) @@ -410,6 +410,37 @@ interact(int *ok) } } +/* + * On some server models the serial port of the GSP/Management card which + * mirrors the console port shows up as ttyS1 instead of ttyS0. This is due + * how the pci code in Linux kernel scans the PCI bus. Check the relevant + * models and return ttyS1 for such machines. + * Beware: pdc_model_sysmodel() may return a machine name which has trailing + * spaces. + */ +static char * +get_default_serial_console() +{ + char sys_model_name[81]; + char *ttyS1_models[] = { + "9000/800/rp3410", + "9000/800/rp3420", + "9000/800/rp3440", + NULL + }; + + if (pdc_model_sysmodel(sys_model_name) == PDC_OK) { + char **check = ttyS1_models; + while (*check) { + if (strncmp(*check, sys_model_name, strlen(*check)) == 0) + return "ttyS1"; + check++; + } + } + + return "ttyS0"; +} + unsigned iplmain(int is_interactive, char *initialstackptr, int started_wide) { @@ -523,7 +554,7 @@ iplmain(int is_interactive, char *initialstackptr, int started_wide) if(is_mux) chk_strcat(commandline, "ttyB0", CMDLINELEN, &ok); else - chk_strcat(commandline, "ttyS0", CMDLINELEN, &ok); + chk_strcat(commandline, get_default_serial_console(), CMDLINELEN, &ok); if (strstr(commandline, " TERM=") == 0) chk_strcat(commandline, " TERM=vt102", CMDLINELEN, &ok); diff --git a/ipl/pdc_misc.c b/ipl/pdc_misc.c index 863cc77..e14d1c1 100644 --- a/ipl/pdc_misc.c +++ b/ipl/pdc_misc.c @@ -229,6 +229,23 @@ pdc_os_bits() } int +pdc_model_sysmodel(char *name) +{ + int r; + + r = firmware_call(mem_pdc, PDC_MODEL, PDC_MODEL_SYSMODEL, pdc_result, + OS_ID_HPUX, name); + convert_from_wide(pdc_result); + if (r == PDC_OK) { + name[pdc_result[0]] = '\0'; /* add trailing '\0' */ + } else { + name[0] = 0; + } + + return r; +} + +int pdc_cons_duplex() { return (PAGE0->mem_cons.cl_class == CL_DUPLEX); Binary files differdiff --git a/lib/common.h b/lib/common.h index b1d34d6..225da0f 100644 --- a/lib/common.h +++ b/lib/common.h @@ -67,7 +67,7 @@ void *pa_memcpy(void *dest, const void *src, unsigned n); #define __swab16(x) bswap_16(x) #endif /* __swab16 */ -#define PALOVERSION "1.97" +#define PALOVERSION "1.98" /* size of I/O block used in HP firmware */ #define FW_BLOCKSIZE 2048 @@ -1,5 +1,5 @@ Name: palo -Version: 1.97 +Version: 1.98 Release: 1%{?dist} Summary: PALO - PA-RISC Boot Loader Packager: Helge Deller <deller@gmx.de> |