romvec.pvtime is a pointer to a millisecond rate uptime counter. NextSTEP uses this counter for timing the 10 seconds timeout during boot, when asking for boot options.
For now, let's just set this to a constant, there is no timeout, but we avoid null pointer dereferencing.
Signed-off-by: Olivier Danet odanet@caramail.com =================================================================== --- arch/sparc32/romvec.c (révision 1257) +++ arch/sparc32/romvec.c (copie de travail) @@ -26,7 +26,7 @@
char obp_stdin, obp_stdout; const char *obp_stdin_path, *obp_stdout_path; - +int32_t obp_ticks; struct linux_arguments_v0 obp_arg; const char *bootpath; static const struct linux_arguments_v0 * const obp_argp = &obp_arg; @@ -456,6 +456,8 @@ via their handler (see call-romvec.S) which acts as a proxy to save the globals and setup the stack correctly */
+ obp_ticks = 10000; /* Dummy. Ticks should be the uptime, in milliseconds. */ + // Linux wants a R/W romvec table romvec0.pv_magic_cookie = LINUX_OPPROM_MAGIC; romvec0.pv_romvers = 3; @@ -479,6 +481,7 @@ romvec0.pv_reboot = obp_reboot_handler; romvec0.pv_printf = obp_printf_handler; romvec0.pv_abort = obp_abort_handler; + romvec0.pv_ticks = &obp_ticks; romvec0.pv_halt = obp_halt_handler; romvec0.pv_synchook = &sync_hook; romvec0.pv_v0bootargs = &obp_argp; ===================================================================