Kestrel-3 Family
Hello, and welcome to the Fossil repository for the Kestrel-3 family of computers. The Kestrel-3 is a (mostly) MPLv2 licensed computer design. (Disclaimer: I'm seriously considering relicensing the finished result GPLv3, however. While I haven't committed to this decision, it seems like a logical choice considering how successful other GPL'ed open hardware projects have been. More on this later as I feel motivated to document my thoughts.) Folks familiar with the classic home computers of the mid-80s (e.g., Commodore 64 or 128, Apple IIgs, Atari 8-bits, ZX Spectrum, et. al.) can think of the Kestrel-3 as exactly that kind of home computer, but built with a fresh and new design. For this reason, I consider the Kestrel-3 a neo-retro computer.
Features
The Kestrel-3 is designed to empower and encourage the owner to learn about and even tweak the software and hardware for their own benefit.
- No back doors.
- No management engine.
- No hardware locks or encryption.
- Open hardware means you can completely understand the hardware.
- No memberships in expensive special interest groups or trade organizations required to contribute peripherals.
- No fear of bricking your computer trying to install the OS of your choice.
- Bootstrap process is fully disclosed.
- Built on the 64-bit RISC-V instruction set architecture.
- ROM-resident, language-based operating environment ensures the computer remains useful even in absence of bootable storage media.
Technical Resources
- Installing Project IceStorm on VoidLinux
- Installing Verilator on VoidLinux
- Verilog Development Checklist
- Ecosystem
- Will the Kestrel-3 Family Run Linux or BSD?
- Base Specifications
- Development Strategy
- Thoughts about a Software Managed MMU
- Memory Map
- Ruminations on Expanding the Kestrel-3
- On TRIPOS vs. BOAR Project
- PRELIMINARY Technical Specs for KCP53000B Processor
- On Kestrel-3's I/O Architecture
- I/O Architecture (Abridged)
- Implementing a PLA-type Instruction Decoder in nmigen
- Building and Running the E3 Virtual Kestrel-3 Emulator
- More Thoughts on Expansion Backplanes
- Microcoding vs. Pipelining
Relevant Articles
These are mainly just my thoughts on matters relevant to, but not necessarily in direct relationship with, the Kestrel-3 project.
- Computing as an Appliance: Apple's Contribution
- On Worse is Better
- On the Unix Philosophy (William Tanksley, reposted with permission)
Videos
- Over the Shoulder II E01 - Introduction
- Over the Shoulder II E02 - Creating the skeleton source files for the diagnostic DMA controller.
- Over the Shoulder II E03 - Using TDD to Implement Two Requirements of the Master TileLink Interface
- Over The Shoulder II E04 - Mad Rush to Finish the DMAC
Permissions and Contributions
- I would like to thank Pasi 'Albert' Ojala for granting us written permission to re-use and re-license his BOAR Project system software, a clean and proper subset of AmigaOS consisting of just
exec.library
,dos.library
, and a small set of non-resident tools.
Lessons Learned from Kestrel-2DX Development
Use Intelligent Storage Devices, not SD/MMC Cards.
- SD cards are shit. Don't use them if you can avoid them. At least, don't use them directly. Use intelligent storage peripherals instead.
- SD cards will often commence a wear-balance operation when you least expect it. Like a stop-the-world garbage collector, your I/O stops dead for many tens of seconds to minutes. You think the computer is crashed, but it's really not. There is no way to tell if this is what's happening, so no on-screen diagnostics are possible. You can only suspect this is the case heuristically. Sucky!
- Intelligent storage I/O won't solve the SD card wear balance issue; but it can at least add a layer with which you can poll the device to see if it's still alive. Piece of mind counts.