This repository has been 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. |