This repository was archived by the owner on Feb 10, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 10
SdbRegistry
Samuel A. Falvo II edited this page Apr 16, 2016
·
4 revisions
Device IDs are always written in hexadecimal. All device IDs are scoped by the Kestrel-3 project's vendor ID of $C0C21E6D3B1EDF88.
| Device | Type | Description |
|---|---|---|
| 00000001 | Interconnect | The e emulated Kestrel-3 "motherboard" or SoC. The version field for this device indicates the version of e currently running the environment, written as $mmMMMrrr, where $mm is the major version in hexadecimal, $MMM is the minor version, and $rrr is the revision. The lowest supported value is $00003000, since any version prior to 0.3.0 lacks support for SDB emulation. |
| 00000002 | Device | Reserved for the Kestrel-2's S16X4-family processing device. These are 16-bit processor cores capable of addressing 64KiB of RAM, with 4-bit opcodes packed 4-wide in a 16-bit instruction word. This reservation is made to support possible future re-application as I/O coprocessors. Version 0 is the original S16X4, version 1 is the S16X4A, version 2 is a future S16X4B, and so on. |
| 00000003 | Device | The Kestrel-3 emulator, e, virtual "Red Tail Subset" microprocessor family. These processors offer a substantial subset of the RV64IS instruction set compatibility. Check specific device versions for known compatibility issues. e's virtual CPUs are intended to be upward compatible with standard RV64 instruction sets in general, and Red Tail CPUs in particular. |
| 00000004 | Device | Kestrel-3 "Red Tail" family of processors. Red Tail describes a Verilog soft-core family of processors that is backward compatible with e's processor. Whereas device 3 CPUs are proper subsets of the RISC-V specifications, all Red Tails must conform with RISC-V specs as precisely as experience will allow. |
| 00000005 | Device | RAM. Intended application for this device's RAM may be queried through the class field. |
| 00000006 | Device | General Purpose Interface Adapter (GPIA-I). Version 0 describes the 16-bit part first used in the Kestrel-2. It consists of an input-only port at address 0, and an output-only port at address 2. Subsequent versions may offer enhancements to this ABI. |
| 00000007 | Device | General Purpose Interface Adapter (GPIA-II). Version 0 describes the 64-bit part intended for use with Red Tail processors. It consists of an input-only port at address 0, and an output-only port at address 8. Subsequent versions may offer enhancements to this ABI. |
| 00000008 | Device | Keyboard Interface Adapter (KIA-I and KIA-II). Version 0 describes the 8-bit KIA-I part intended for use with the Kestrel-2 and Kestrel-3. This device is used to accept input from PS/2 keyboards and mice. Version 1 describes the 10-bit KIA-II device, presently found only in the e emulator. The additional two bits lets the firmware running in the emulator respond to all keyboard events generated by the libSDL-2.0 graphics library used to emulate VGA. |
| 00000009 | Device | ROM. Intended application for this device's RAM may be queried through the class field. |
Unless otherwise documented, all classes below only specify ABI major and minor versions of 0.
| Class | Description |
|---|---|
| 0001 | RISC-V compatible core (or HART, for HARdware Thread). Exactly one HART device is required for each independently running core (physical or emulated). Device ID and optionally version fields indicates the make/model/compatibility of the core. |
| 0002 | Generic RAM. Used for any purpose. |
| 0003 | GPIA-II-compatible I/O interface, as wired for the Kestrel-3. |
| 0004 | KIA-compatible keyboard interface. |
| 0005 | KIA-compatible mouse interface. |
| 0006 | MGIA frame-buffer RAM. Can be used for any purpose; but remember that the contents of this RAM will appear on the screen in bitmapped form. NOTE: Since the MGIA offers no addressible registers, it is not described by a unique device ID. Rather, MGIA presence is determined by looking for a block of RAM with this specific class. abi_ver_minor can be 0 for MGIA-I or 1 for MGIA-II. |
| 0007 | SDB Configuration ROM. This can be implemented either as a genuine ROM or as a configuration-sensitive core that provides current configuration information in a manner compatible with SDB V1.1. |
| 0008 | Bootstrap firmware. |