md.h revision 1.5 1 1.5 martin /* $NetBSD: md.h,v 1.5 2020/01/20 21:26:35 martin Exp $ */
2 1.1 dholland
3 1.1 dholland /*
4 1.1 dholland * Copyright 1997 Piermont Information Systems Inc.
5 1.1 dholland * All rights reserved.
6 1.1 dholland *
7 1.1 dholland * Based on code written by Philip A. Nelson for Piermont Information
8 1.1 dholland * Systems Inc.
9 1.1 dholland *
10 1.1 dholland * Redistribution and use in source and binary forms, with or without
11 1.1 dholland * modification, are permitted provided that the following conditions
12 1.1 dholland * are met:
13 1.1 dholland * 1. Redistributions of source code must retain the above copyright
14 1.1 dholland * notice, this list of conditions and the following disclaimer.
15 1.1 dholland * 2. Redistributions in binary form must reproduce the above copyright
16 1.1 dholland * notice, this list of conditions and the following disclaimer in the
17 1.1 dholland * documentation and/or other materials provided with the distribution.
18 1.1 dholland * 3. The name of Piermont Information Systems Inc. may not be used to endorse
19 1.1 dholland * or promote products derived from this software without specific prior
20 1.1 dholland * written permission.
21 1.1 dholland *
22 1.1 dholland * THIS SOFTWARE IS PROVIDED BY PIERMONT INFORMATION SYSTEMS INC. ``AS IS''
23 1.1 dholland * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
24 1.1 dholland * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
25 1.1 dholland * ARE DISCLAIMED. IN NO EVENT SHALL PIERMONT INFORMATION SYSTEMS INC. BE
26 1.1 dholland * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
27 1.1 dholland * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
28 1.1 dholland * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
29 1.1 dholland * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
30 1.1 dholland * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
31 1.1 dholland * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
32 1.1 dholland * THE POSSIBILITY OF SUCH DAMAGE.
33 1.1 dholland *
34 1.1 dholland */
35 1.1 dholland
36 1.1 dholland /* md.h -- Machine specific definitions for evbarm */
37 1.1 dholland
38 1.1 dholland #include "mbr.h"
39 1.1 dholland
40 1.1 dholland /* Constants and defines */
41 1.2 martin #define PART_BOOT (16*MEG)
42 1.5 martin #define PART_BOOT_LARGE (32*MEG)
43 1.2 martin #define PART_BOOT_TYPE FS_MSDOS
44 1.5 martin #define PART_BOOT_SUBT MBR_PTYPE_FAT16L
45 1.2 martin #define PART_BOOT_MOUNT "/boot"
46 1.1 dholland
47 1.1 dholland /* Megs required for a full X installation. */
48 1.1 dholland #define XNEEDMB 60
49 1.1 dholland
50 1.5 martin #define DEFSWAPSIZE (-1)
51 1.5 martin
52 1.5 martin /* use UFS2 by default for ffs */
53 1.5 martin #define DEFAULT_UFS2
54 1.5 martin
55 1.1 dholland #define HAVE_UFS2_BOOT
56 1.1 dholland
57 1.5 martin /* allow using tmpfs for /tmp instead of mfs */
58 1.5 martin #define HAVE_TMPFS
59 1.5 martin
60 1.1 dholland /*
61 1.1 dholland * Default filesets to fetch and install during installation
62 1.1 dholland * or upgrade. The standard sets are:
63 1.3 maya * base etc comp games man misc rescue tests text xbase xcomp xetc xfont xserver
64 1.1 dholland */
65 1.5 martin #if 0 /* XXX */
66 1.1 dholland #define SET_KERNEL_1_NAME "kern-ADI_BRH"
67 1.1 dholland #define SET_KERNEL_2_NAME "kern-INTEGRATOR"
68 1.1 dholland #define SET_KERNEL_3_NAME "kern-IQ80310"
69 1.1 dholland #define SET_KERNEL_4_NAME "kern-IQ80321"
70 1.1 dholland #define SET_KERNEL_5_NAME "kern-MINI2440"
71 1.1 dholland #define SET_KERNEL_6_NAME "kern-TEAMASA_NPWR"
72 1.1 dholland #define SET_KERNEL_7_NAME "kern-TS7200"
73 1.1 dholland #define SET_KERNEL_8_NAME "kern-RPI"
74 1.1 dholland #define SET_KERNEL_9_NAME "kern-KUROBOX_PRO"
75 1.5 martin #endif
76 1.5 martin
77 1.5 martin #ifdef _LP64
78 1.5 martin #define SET_KERNEL_1_NAME "kern-GENERIC64"
79 1.5 martin #else
80 1.5 martin #define SET_KERNEL_1_NAME "kern-GENERIC"
81 1.5 martin #endif
82 1.1 dholland
83 1.1 dholland #define MD_SETS_SELECTED SET_SYSTEM
84 1.1 dholland
85 1.1 dholland /*
86 1.1 dholland * Machine-specific command to write a new label to a disk.
87 1.1 dholland * For example, shark uses "/sbin/disklabel -w -r".
88 1.1 dholland * Sun ports should probably use DISKLABEL_CMD "/sbin/disklabel -w"
89 1.1 dholland * to get incore to ondisk inode translation for the Sun proms.
90 1.1 dholland * If not defined, we assume the port does not support disklabels and
91 1.1 dholland * hand-edited disklabel will NOT be written by MI code.
92 1.1 dholland */
93 1.1 dholland #define DISKLABEL_CMD "disklabel -w -r"
94 1.1 dholland
95 1.1 dholland /* Special board type routines need a switch */
96 1.4 martin #define BOARD_TYPE_NORMAL 0 /* assume u-boot */
97 1.4 martin #define BOARD_TYPE_RPI 1 /* RPi firmware booted us */
98 1.4 martin #define BOARD_TYPE_ACPI 2 /* generic SBSA machine */
99 1.1 dholland int boardtype;
100 1.2 martin
101 1.2 martin /*
102 1.2 martin * Size limit for the initial GPT part, in bytes. This allows us to
103 1.2 martin * dd u-boot at 8k into the image for allwinner SoCs.
104 1.2 martin */
105 1.2 martin #define MD_GPT_INITIAL_SIZE (8*1024)
106 1.2 martin
107 1.5 martin
108 1.5 martin #define HAVE_GPT_BOOT /* yes, u-boot can boot us from GPT */
109 1.5 martin #define NO_DISKLABEL_BOOT /* ... but not directly from disklabel */
110 1.5 martin
111 1.5 martin #define MD_MAY_SWAP_TO(DISK) may_swap_if_not_sdmmc(DISK)
112 1.5 martin
113 1.5 martin int evbarm_extract_finalize(int);
114 1.5 martin #define MD_SET_EXTRACT_FINALIZE(UP) evbarm_extract_finalize(UP)
115 1.5 martin
116 1.5 martin void evbarm_part_defaults(struct pm_devs*, struct part_usage_info*,
117 1.5 martin size_t num_usage_infos);
118 1.5 martin
119 1.5 martin #define MD_PART_DEFAULTS(A,B,C) evbarm_part_defaults(A,B,C)
120 1.5 martin
121