xref: /netbsd-src/usr.sbin/installboot/arch/sun68k.c (revision e5c09b191b3a14e8b4648a699077b773caf1ed9b)
1*e5c09b19Sthorpej /*	$NetBSD: sun68k.c,v 1.22 2019/05/07 04:35:31 thorpej Exp $ */
2878d42b1Slukem 
3878d42b1Slukem /*-
4966b42a3Slukem  * Copyright (c) 2002 The NetBSD Foundation, Inc.
5878d42b1Slukem  * All rights reserved.
6878d42b1Slukem  *
7878d42b1Slukem  * This code is derived from software contributed to The NetBSD Foundation
8966b42a3Slukem  * by Luke Mewburn.
9878d42b1Slukem  *
10878d42b1Slukem  * Redistribution and use in source and binary forms, with or without
11878d42b1Slukem  * modification, are permitted provided that the following conditions
12878d42b1Slukem  * are met:
13878d42b1Slukem  * 1. Redistributions of source code must retain the above copyright
14878d42b1Slukem  *    notice, this list of conditions and the following disclaimer.
15878d42b1Slukem  * 2. Redistributions in binary form must reproduce the above copyright
16878d42b1Slukem  *    notice, this list of conditions and the following disclaimer in the
17878d42b1Slukem  *    documentation and/or other materials provided with the distribution.
18878d42b1Slukem  *
19878d42b1Slukem  * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
20878d42b1Slukem  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
21878d42b1Slukem  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
22878d42b1Slukem  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
23878d42b1Slukem  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
24878d42b1Slukem  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
25878d42b1Slukem  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26878d42b1Slukem  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
27878d42b1Slukem  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
28878d42b1Slukem  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29878d42b1Slukem  * POSSIBILITY OF SUCH DAMAGE.
30878d42b1Slukem  */
31878d42b1Slukem 
32171d6532Slukem #if HAVE_NBTOOL_CONFIG_H
33171d6532Slukem #include "nbtool_config.h"
344887cf34Stv #endif
354887cf34Stv 
36171d6532Slukem #include <sys/cdefs.h>
37171d6532Slukem #if !defined(__lint)
38*e5c09b19Sthorpej __RCSID("$NetBSD: sun68k.c,v 1.22 2019/05/07 04:35:31 thorpej Exp $");
39171d6532Slukem #endif	/* !__lint */
40171d6532Slukem 
41878d42b1Slukem #include <sys/param.h>
42878d42b1Slukem 
43878d42b1Slukem #include <assert.h>
44878d42b1Slukem #include <err.h>
45878d42b1Slukem #include <stdio.h>
46878d42b1Slukem 
472fddf94bSlukem #include "installboot.h"
48878d42b1Slukem 
49cce659e2Sdsl static int sun68k_clearboot(ib_params *);
50cce659e2Sdsl static int sun68k_setboot(ib_params *);
51cce659e2Sdsl 
52*e5c09b19Sthorpej struct ib_mach ib_mach_sun2 = {
53*e5c09b19Sthorpej 	.name		=	"sun2",
54*e5c09b19Sthorpej 	.setboot	=	sun68k_setboot,
55*e5c09b19Sthorpej 	.clearboot	=	sun68k_clearboot,
56*e5c09b19Sthorpej 	.editboot	=	no_editboot,
57*e5c09b19Sthorpej 	.valid_flags	=	IB_STAGE2START,
58*e5c09b19Sthorpej };
59cce659e2Sdsl 
60*e5c09b19Sthorpej struct ib_mach ib_mach_sun3 = {
61*e5c09b19Sthorpej 	.name		=	"sun3",
62*e5c09b19Sthorpej 	.setboot	=	sun68k_setboot,
63*e5c09b19Sthorpej 	.clearboot	=	sun68k_clearboot,
64*e5c09b19Sthorpej 	.editboot	=	no_editboot,
65*e5c09b19Sthorpej 	.valid_flags	=	IB_STAGE2START,
66*e5c09b19Sthorpej };
67cce659e2Sdsl 
68966b42a3Slukem static struct bbinfo_params bbparams = {
69966b42a3Slukem 	SUN68K_BBINFO_MAGIC,
70966b42a3Slukem 	SUN68K_BOOT_BLOCK_OFFSET,
71966b42a3Slukem 	SUN68K_BOOT_BLOCK_BLOCKSIZE,
72966b42a3Slukem 	SUN68K_BOOT_BLOCK_MAX_SIZE,
73966b42a3Slukem 	0,
74d22f5cffSlukem 	BBINFO_BIG_ENDIAN,
75966b42a3Slukem };
76966b42a3Slukem 
77cce659e2Sdsl static int
sun68k_clearboot(ib_params * params)78878d42b1Slukem sun68k_clearboot(ib_params *params)
79878d42b1Slukem {
80878d42b1Slukem 
81878d42b1Slukem 	assert(params != NULL);
82878d42b1Slukem 
83d22f5cffSlukem 	return (shared_bbinfo_clearboot(params, &bbparams, NULL));
84878d42b1Slukem }
85878d42b1Slukem 
86cce659e2Sdsl static int
sun68k_setboot(ib_params * params)87878d42b1Slukem sun68k_setboot(ib_params *params)
88878d42b1Slukem {
89878d42b1Slukem 
90878d42b1Slukem 	assert(params != NULL);
91878d42b1Slukem 
92966b42a3Slukem 	return (shared_bbinfo_setboot(params, &bbparams, NULL));
93878d42b1Slukem }
94