aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHelge Deller <deller@gmx.de>2024-02-09 14:01:44 +0100
committerHelge Deller <deller@gmx.de>2024-05-15 15:50:06 +0200
commit7516bcfcdc2d07365a4a6528f4bf710639e77789 (patch)
tree89f5589af548d336e16fe66e02533aa6d6a7a38e
parent20e652f146815c8be1cf2cf2bd948831310680aa (diff)
downloadseabios-hppa-7516bcfcdc2d07365a4a6528f4bf710639e77789.zip
seabios-hppa-7516bcfcdc2d07365a4a6528f4bf710639e77789.tar.gz
seabios-hppa-7516bcfcdc2d07365a4a6528f4bf710639e77789.tar.bz2
parisc: Implement PDC_MODEL_GET_INSTALL_KERNEL function
The IPL loader on the HP-UX install CD asks firmware which "kernel/program" it should start. By default HP-UX will load the "INSTALL" program, but on 64-bit machines firmware can instead ask to boot the "WINSTALL" program. Signed-off-by: Helge Deller <deller@gmx.de>
-rw-r--r--src/parisc/parisc.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/parisc/parisc.c b/src/parisc/parisc.c
index 2e66a95..e933c80 100644
--- a/src/parisc/parisc.c
+++ b/src/parisc/parisc.c
@@ -1568,8 +1568,16 @@ static int pdc_model(unsigned long *arg)
result[0] &= ~0x30; /* remove NVA bits, we have no issues with non-equiv. aliasing */
return PDC_OK;
case PDC_MODEL_GET_INSTALL_KERNEL:
- // No need to provide a special install kernel during installation of HP-UX
- return PDC_BAD_OPTION;
+ /* default to IPL standard kernel on 32-bit OS */
+ if (!is_64bit_PDC() || (enable_OS64 & PDC_MODEL_OS64) == 0)
+ return PDC_BAD_OPTION;
+ // dprintf(1, "Default install kernel from IPL is: %s\n", (char *)ARG3);
+ /* tell IPL to load 64-bit install kernel called "WINSTALL" */
+ if (ARG5 > 9)
+ ARG5 = 9;
+ strtcpy((char *)ARG4, "WINSTALL", ARG5);
+ result[0] = ARG5;
+ return PDC_OK;
case PDC_MODEL_GET_PLATFORM_INFO:
if (1) /* not supported on B160L or C3700 */
return PDC_BAD_OPTION;