Sync kloader(4) behavior with hpcmips:
- use bootstr passed via reboot(2) with RB_STRING for the next kernel path - prepare independent opt_kloader_kernel_path.h for KLOADER_KERNEL_PATH - some cosmetics to reduce diffs from hpcmips Tested on HPW-50PA (Hitachi PERSONA).
This commit is contained in:
parent
17b7c13057
commit
3f23c95545
@ -1,4 +1,4 @@
|
|||||||
# $NetBSD: files.hpcsh,v 1.51 2008/02/20 21:43:34 drochner Exp $
|
# $NetBSD: files.hpcsh,v 1.52 2010/05/03 12:16:04 tsutsui Exp $
|
||||||
#
|
#
|
||||||
maxpartitions 8
|
maxpartitions 8
|
||||||
|
|
||||||
@ -16,11 +16,11 @@ file arch/hpcsh/hpcsh/bus_space.c
|
|||||||
#file arch/hpcsh/hpcsh/bus_dma.c
|
#file arch/hpcsh/hpcsh/bus_dma.c
|
||||||
file arch/hpcsh/hpcsh/clock_machdep.c
|
file arch/hpcsh/hpcsh/clock_machdep.c
|
||||||
|
|
||||||
defflag opt_kloader.h KLOADER
|
|
||||||
defparam opt_kloader.h KLOADER_KERNEL_PATH
|
|
||||||
defflag debug_kloader.h KLOADER_DEBUG
|
|
||||||
file dev/kloader.c kloader
|
file dev/kloader.c kloader
|
||||||
file arch/hpcsh/hpcsh/kloader_machdep.c kloader
|
file arch/hpcsh/hpcsh/kloader_machdep.c kloader
|
||||||
|
defflag opt_kloader.h KLOADER
|
||||||
|
defflag debug_kloader.h KLOADER_DEBUG
|
||||||
|
defparam opt_kloader_kernel_path.h KLOADER_KERNEL_PATH
|
||||||
|
|
||||||
# power management
|
# power management
|
||||||
include "dev/hpc/files.hpcapm"
|
include "dev/hpc/files.hpcapm"
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* $NetBSD: machdep.c,v 1.72 2010/03/02 21:17:31 pooka Exp $ */
|
/* $NetBSD: machdep.c,v 1.73 2010/05/03 12:16:04 tsutsui Exp $ */
|
||||||
|
|
||||||
/*-
|
/*-
|
||||||
* Copyright (c) 2001, 2002, 2004 The NetBSD Foundation, Inc.
|
* Copyright (c) 2001, 2002, 2004 The NetBSD Foundation, Inc.
|
||||||
@ -27,7 +27,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include <sys/cdefs.h>
|
#include <sys/cdefs.h>
|
||||||
__KERNEL_RCSID(0, "$NetBSD: machdep.c,v 1.72 2010/03/02 21:17:31 pooka Exp $");
|
__KERNEL_RCSID(0, "$NetBSD: machdep.c,v 1.73 2010/05/03 12:16:04 tsutsui Exp $");
|
||||||
|
|
||||||
#include "opt_md.h"
|
#include "opt_md.h"
|
||||||
#include "opt_ddb.h"
|
#include "opt_ddb.h"
|
||||||
@ -38,11 +38,7 @@ __KERNEL_RCSID(0, "$NetBSD: machdep.c,v 1.72 2010/03/02 21:17:31 pooka Exp $");
|
|||||||
#include "hd64465if.h"
|
#include "hd64465if.h"
|
||||||
|
|
||||||
#include "opt_kloader.h"
|
#include "opt_kloader.h"
|
||||||
#ifdef KLOADER
|
#include "opt_kloader_kernel_path.h"
|
||||||
#if !defined(KLOADER_KERNEL_PATH)
|
|
||||||
#define KLOADER_KERNEL_PATH "/netbsd"
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include <sys/param.h>
|
#include <sys/param.h>
|
||||||
#include <sys/systm.h>
|
#include <sys/systm.h>
|
||||||
@ -169,6 +165,12 @@ extern void main(void) __attribute__((__noreturn__));
|
|||||||
void machine_startup(int, char *[], struct bootinfo *)
|
void machine_startup(int, char *[], struct bootinfo *)
|
||||||
__attribute__((__noreturn__));
|
__attribute__((__noreturn__));
|
||||||
|
|
||||||
|
#ifdef KLOADER
|
||||||
|
#if !defined(KLOADER_KERNEL_PATH)
|
||||||
|
#define KLOADER_KERNEL_PATH "/netbsd"
|
||||||
|
#endif /* !KLOADER_KERNEL_PATH */
|
||||||
|
static const char kernel_path[] = KLOADER_KERNEL_PATH;
|
||||||
|
#endif /* KLOADER */
|
||||||
|
|
||||||
void
|
void
|
||||||
machine_startup(int argc, char *argv[], struct bootinfo *bi)
|
machine_startup(int argc, char *argv[], struct bootinfo *bi)
|
||||||
@ -377,8 +379,12 @@ cpu_reboot(int howto, char *bootstr)
|
|||||||
}
|
}
|
||||||
|
|
||||||
#ifdef KLOADER
|
#ifdef KLOADER
|
||||||
if ((howto & RB_HALT) == 0)
|
if ((howto & RB_HALT) == 0) {
|
||||||
kloader_reboot_setup(KLOADER_KERNEL_PATH);
|
if ((howto & RB_STRING) != 0)
|
||||||
|
kloader_reboot_setup(bootstr);
|
||||||
|
else
|
||||||
|
kloader_reboot_setup(kernel_path);
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
boothowto = howto;
|
boothowto = howto;
|
||||||
@ -411,14 +417,14 @@ cpu_reboot(int howto, char *bootstr)
|
|||||||
pmf_system_shutdown(boothowto);
|
pmf_system_shutdown(boothowto);
|
||||||
|
|
||||||
/* Finally, halt/reboot the system. */
|
/* Finally, halt/reboot the system. */
|
||||||
|
if ((howto & RB_HALT) != 0) {
|
||||||
|
printf("halted.\n");
|
||||||
|
} else {
|
||||||
#ifdef KLOADER
|
#ifdef KLOADER
|
||||||
if ((howto & RB_HALT) == 0) {
|
|
||||||
kloader_reboot();
|
kloader_reboot();
|
||||||
/* NOTREACHED */
|
/* NOTREACHED */
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
|
}
|
||||||
printf("halted.\n");
|
|
||||||
|
|
||||||
#if NHD64465IF > 0
|
#if NHD64465IF > 0
|
||||||
hd64465_shutdown();
|
hd64465_shutdown();
|
||||||
|
Loading…
Reference in New Issue
Block a user