|
|
1.1 root 1: ******************************************************************************
2:
3: Here's the initial version of NetBSD for the Amiga. This version is strictly
4: for the kernel hackers among you, there's no sense in `normal' users trying
5: to install it, possibly killing their other partitions, facing kernel panics and
6: not knowing what to do. Please keep that in mind, if you feel like going on...
7:
8: ******************************************************************************
9:
10:
11: Currently supported equipment:
12: -----------------------------
13:
14: o any Amiga with either 68020/68851 or 68030, 6888[12] is currently required
15: (because fpu code is conditionally compilable in the kernel, and this
16: version contains fpu code).
17: o A3000 internal SCSI controller. Note that you cannot boot BSD currently
18: with any other SCSI controller (not to mention weird IDE interfaces..).
19: o internal RS232 port. This is not by default used as the system console.
20: you have to recompile if you want the console on the RS232.
21: o some `sort of' VT200 emulator for the custom chips display, which is
22: an NTSC laced, 640x400 monochrome display. This is the default console.
23: o disk and tape drivers using the mentioned A3000 scsi controller.
24: Disks I tried it on include: Wren7, IBM-OEM 0663E12, Quantum LP105S.
25: Only tape tested is my Wangtek 5150ES.
26:
27:
28: Some comments on these:
29: ----------------------
30: 68020&68851/68030 support:
31: These cpu's should be fully supported. Note that you cannot run
32: BSD with a '30EC, the MMU is absolutely required. The '40 is
33: currently *NOT* supported, don't try! The reason for this is
34: the braindamaged, mind boggingly stupid '40 MMU, which only
35: implements a very limited subset of the 68851/68030 MMUs. In
36: particular, it doesn't deal with the current 2-level MMU
37: setup. See the extra doc about AMIGA-MMU for details.
38: Exception handling for the '40 is also different to its predecessors,
39: however this should be easier to implement than revamping
40: the MMU code to work on the '40.
41:
42: A3000 internal SCSI controller:
43: This is a driver tested on an AMD33C93A chip, I just hope I
44: didn't do anything that won't run on the dreadful WD33C93A-PROTO
45: still in use in thousands of A3000. It is a *VERY* rough
46: driver, it's really a hack, and should be replaced by a chip-
47: specific low-level driver for use with the generic scsi/*
48: code for the PC. Might even use Mach-drivers as well. The
49: driver would support DMA, if only DMA would work... That is,
50: DMA trashed my memory, so I disabled it for a while, and the
51: driver was degraded to a PIO in the meanwhile.. Hope to get
52: DMA up again RSN ...
53: Note that (contrary to Amiga Unix..) this driver should handle
54: drives ok that send sync-requests (it just rejects those..).
55:
56: Internal RS232 port:
57: Well, that's not exactly a terribly complicated thing.. It should
58: perform reasonably well, but I didn't really test it with file
59: transfers, just with my old VT100. It should do hardware flow-
60: control, but that's not tested either. The driver supports being
61: a console.
62:
63: Custom chips display, console:
64: I implemented the console in a two-layer approach stolen from
65: the hp300 implementation. There is a low-level layer (grf*)
66: responsible for creating a display (`view' in AmigaOS parlance),
67: and a hi-level layer (ite*) dealing with display of characters,
68: scrolling regions, handling keyboard, etc. This approach should
69: it make trivial to support consoles on custom graphics boards.
70: Grf currently opens an interlaced NTSC screen, with a resolution
71: of 1024x1024 pixels, and a visible display size of 640x400. It
72: provides for smooth scrolling of this display window inside the
73: larger bitmap (once the ioctl's are implemented..), and it can
74: handle overscan (by changing the visible display size and moving
75: the display offset). These ioctl's aren't implemented yet either.
76: Oh: don't try to convince me to offer a PAL display, I won't.
77: The console tries to be some sort of VT200 compatible terminal,
78: however, I only implemented a small subset of features. Essentially,
79: I took the existing HP-ite driver, a VT320 manual, and started
80: to replace the control sequences with the ones I found in the
81: manual. Don't expect the driver to do downloadable fonts or other
82: weird features, I think even scrolling regions might be broken
83: at the moment. It should however work reasonably well for most
84: editing purposes.
85:
86:
87: Keyboard:
88: Default keymap is US-ASCII. However, I reasoned quite a bit about
89: how to do the mapping of keys into characters and character
90: sequences to easily change the keymap to international layouts.
91: Dead-keys are supported, as well as having a second set of keys
92: reachable with the Alt keys (same usage as AmigaOS). Thus, you
93: should be able to generate an � (oe) by typing Alt-k o.
94: However, currently any 8bit characters just appear as ^@ on the
95: screen, and I don't know whether the tty is responsible for this
96: misfeature, or whether I have a bug in my alt-key handling...
97: All keys sending <CSI> sequences send <CSI> as <ESC>[ instead of
98: \x9b, as under AmigaOS. This should make use with Emacs, Bash, etc.
99: *much* easier.
100: For information about how keymaps work, look at dev/kbdmap.h and
101: dev/kbdmap.c.
102:
103: Disks:
104: See the special section on how RDBs map into BSD partitions.
105:
106: Tapes:
107: The tape driver seems to support a variety of different tape
108: drives. Chances are, your tape will work too. Just give it a try,
109: worst thing that can happen is a kernel panic ;-)
110:
111:
112:
113: RDB's and how BSD finds its partitions on disk drives
114: -----------------------------------------------------
115: BSD partition tables usually look like this:
116: A: boot partition, ~8M
117: B: swap partition, twice the (Fast)RAM size you have
118: C: the entire disk
119: D: /usr
120: E, F, G, H: additional partitions
121:
122: Since Amiga partitions are managed thru a RigidDiskBlock (RDB) stored
123: in the first cylinder(s) of a drive, I took the following approach to
124: map Amiga partitions to BSD A-H partitions:
125:
126: C: still is the entire disk. Take extreme care!!
127: A: has identifier: BSDR (Root fs)
128: B: has identifier: BSDS (Swap fs)
129: DEFGH: have identifiers: BSDD, BSDE, BSDF, BSDG, BSDH.
130:
131: BSD recognizes at most one partition of each type per drive, but you can
132: have multiple BSDD partitions on different drives, for example.
133:
134: There is no restriction on the volume name for those partitions, and
135: there's no restriction on the order of the partitions on the disk, you can
136: have BSDD before BSDR, for example.
137:
138: -> IMPORTANT NOTE: BSD will boot off the last BSDR partition it finds,
139: ie. if you have a BSDR partition on drives 0 and 6,
140: it will boot from the one in drive 6 !!
141:
142: I'm running BSD on my Amiga with BSDR, BSDS, BSDE on drive 6, and a
143: BSDD on drive 1. BSDD on drive 6 is a backup root filesystem, I can just
144: change its type to BSDR, change the BSDR type to BSDD (ie. swap them), and
145: boot off the other partition, without BSD noticing anything.
146:
147:
148: Using UFS partitions formatted under Amiga Unix System V Release 4
149: ------------------------------------------------------------------
150: You can use such partitions under NetBSD-Amiga, however, you cannot use
151: partitions formatted (newfs/mkfs) under NetBSD-Amiga under Amix. Amix
152: uses the old BSD-4.2 ffs, and doesn't understand the new BSD-4.3 ffs.
153:
154:
155: Other documents
156: ---------------
157: The BSD distribution contains a huge doc directory, so if you want to
158: know everything about XYZ, chances are you'll find a manual for it there.
159: The other short docs in this distribution cover:
160:
161: AMIGA-MMU: short description of what's going on when initializing
162: the system.
163:
164: BUGS: you might guess what this contains :-)
165:
166: INSTALL: quick guide on how to install the included dump of the
167: root filesystem on your harddisk. This is quite risky,
168: please read the warnings, and only try the installation
169: if you feel totally confident that you understood the
170: process!
171:
172: README.first: this file.
173:
174: RECOMPILE: short notes about how to change the default configuration
175: (throw out unneeded drivers, add drivers for other
176: SCSI units, etc). Recompiling probably requires a lot
177: of experience in this sort of things (possibly from already
178: hacking around with the Mach kernel...), I'd imagine
179: make'ing the kernel requires a lot of unix'ish tools
180: not commonly found on `normal' amigas, however you
181: should find most of them in the Mach distribution.
182:
183:
184: Distribution of NetBSD-Amiga
185: ----------------------------
186: I'll try to put my updates on ftp.eunet.ch, given that I don't run out
187: of diskspace there. After integrating the Amiga changes into the official
188: NetBSD sources, you'll also be able to get the (entire) distribution
189: from sun-lamp.cs.berkeley.edu, or any of its mirrors. I'm using the
190: NetBSD-current sources, and am updating my source tree regularly, however I
191: didn't incorporate the most recent changes before the first release, since
192: I've worked with this version for some time now, and found it to be
193: fairly stable (so no loadable kernel modules yet in this release).
194:
195: There is going to be a mailing-list for NetBSD-Amiga, I'll post the
196: information to comp.unix.amiga when I know its definite name and location.
197:
198: You can reach me at [email protected], please mention `BSD' in your Subject:
199: line, this makes it easier for me to automatically sort incoming mail
200: according to topic, thanks!
201:
202: -Markus Wild
203:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.