aboutsummaryrefslogtreecommitdiff
path: root/lib/libhvcall
diff options
context:
space:
mode:
authorNikunj A Dadhania <nikunj@linux.vnet.ibm.com>2013-11-21 11:14:54 +0530
committerNikunj A Dadhania <nikunj@linux.vnet.ibm.com>2013-12-16 11:56:42 +0530
commit79f0600b9aa14e5a52e6c8428b0ce0c3e24cd480 (patch)
tree92d34dada75869d0ef9d4d448e4daa0287e61500 /lib/libhvcall
parente086e9992c26bc23cd75dfad2239949c10da1fb1 (diff)
downloadSLOF-79f0600b9aa14e5a52e6c8428b0ce0c3e24cd480.zip
SLOF-79f0600b9aa14e5a52e6c8428b0ce0c3e24cd480.tar.gz
SLOF-79f0600b9aa14e5a52e6c8428b0ce0c3e24cd480.tar.bz2
Output banner and initial display output in VNC window
Initial display output does not show up in the VGA/VNC window. Create replay buffer to store the initial output and when vga/vnc console starts, dump the buffer there. Signed-off-by: Nikunj A Dadhania <nikunj@linux.vnet.ibm.com>
Diffstat (limited to 'lib/libhvcall')
-rw-r--r--lib/libhvcall/hvcall.S12
-rw-r--r--lib/libhvcall/hvcall.code5
-rw-r--r--lib/libhvcall/hvcall.in1
-rw-r--r--lib/libhvcall/libhvcall.h1
4 files changed, 17 insertions, 2 deletions
diff --git a/lib/libhvcall/hvcall.S b/lib/libhvcall/hvcall.S
index 2444953..92cf22e 100644
--- a/lib/libhvcall/hvcall.S
+++ b/lib/libhvcall/hvcall.S
@@ -2,12 +2,20 @@
#define __ASSEMBLY__
#include "macros.h"
#include "libhvcall.h"
-
+#include <termctrl.h>
+#include <product.h>
+
#define HVCALL .long 0x44000022
-
.text
.align 3
+ENTRY(get_print_banner)
+ LOAD32(r4, print_version)
+ LOAD32(r5, print_version_end)
+ std r4,0(r3)
+ std r5,8(r3)
+ blr
+
ENTRY(hv_generic)
HVCALL
blr
diff --git a/lib/libhvcall/hvcall.code b/lib/libhvcall/hvcall.code
index 9bd47c6..6d70b3c 100644
--- a/lib/libhvcall/hvcall.code
+++ b/lib/libhvcall/hvcall.code
@@ -110,3 +110,8 @@ PRIM(hv_X2d_cas)
unsigned long vec = TOS.u;
TOS.u = hv_cas(vec, buf, size);
MIRP
+
+PRIM(get_X2d_print_X2d_version)
+ unsigned long addr = TOS.u; POP;
+ get_print_banner(addr);
+MIRP
diff --git a/lib/libhvcall/hvcall.in b/lib/libhvcall/hvcall.in
index 9c8d6aa..1f9ed6b 100644
--- a/lib/libhvcall/hvcall.in
+++ b/lib/libhvcall/hvcall.in
@@ -29,3 +29,4 @@ cod(RX!)
cod(hv-logical-memop)
cod(hv-cas)
+cod(get-print-version)
diff --git a/lib/libhvcall/libhvcall.h b/lib/libhvcall/libhvcall.h
index de54313..03813cd 100644
--- a/lib/libhvcall/libhvcall.h
+++ b/lib/libhvcall/libhvcall.h
@@ -32,6 +32,7 @@ extern long hv_generic(unsigned long opcode, ...);
extern void hv_putchar(char c, int hvtermno);
extern char hv_getchar(int hvtermno);
extern char hv_haschar(int hvtermno);
+extern void get_print_banner(unsigned long addr);
extern int hv_send_crq(unsigned int unit, uint64_t *msgaddr);