28 Commits
Author SHA1 Message Date
Daniel Markstedt 1ee4a320b8 replace compile-time board types with runtime profiles
Move GPIO mappings into a single module and select a board profile at process startup instead of at compile time: Build every GPIO-facing utility for every supported profile. At the same time, we remove support for the historical AIBOM board type since it's the only one using positive logic, the other three variants share the same electrical behavior.

Run piscsi, scsimon, scsiloop, scsidump, or sasidump with -C=STANDARD, FULLSPEC, or GAMERNIUM. FULLSPEC remains the default. To select a profile for the systemd service, set PISCSI_CONNECTION_TYPE and restart the service.
2026-08-31 21:55:50 +02:00
Daniel Markstedt 3fab138bf5 Make Meson unit tests portable to macOS 2026-08-02 23:18:40 +02:00
Daniel Markstedt 4564e427ef create meson build scripts
Adds a suite of meson scripts for building the C++ project
2026-08-02 23:18:40 +02:00
Uwe Seimet bb602040e2 Improve BSD compile-time compatibility (#1342) 2023-11-16 12:37:50 +01:00
Uwe Seimet 70bcb78d24 Use a standard timer for the DaynaPort delay work-around (#1357)
* Do not use the proprietary system timer for the DaynaPort delay work-around
2023-11-15 07:51:21 +01:00
Uwe Seimet ec9f83f9df Improve performance when reading sectors (#1344) 2023-11-15 07:44:46 +01:00
Uwe Seimet baf89dcf86 Use standard C++ timer for long timeouts (#1327), remove unused code (#1328)
* Replace timer in WaitSignal()

' Remove unused code

* Remove unused file
2023-11-14 16:03:25 +01:00
Uwe Seimet 23e5286267 Fix BSY pin handling in initiator mode (#1312)
* In initiator mode configure BSY as an output pin when BSY is set
2023-11-13 08:40:03 +01:00
Uwe Seimet 979d25ae76 Add missing time unit (#1329) 2023-11-10 11:45:40 +01:00
Uwe Seimet 5542fa9e7c Re-add CONNECT_TYPE_CONNECT_TYPE_AIBOM and CONNECT_TYPE_GAMERNIUM (#1315) (#1317)
* Re-add CONNECT_TYPE_CONNECT_TYPE_AIBOM and CONNECT_TYPE_GAMERNIUM
2023-11-08 13:27:49 +01:00
Uwe Seimet 0ab2f20a00 Fix MESSAGE OUT handling for initiator mode (#1283) (#1284)
* Fix MESSAGE OUT handling

* Update logging

* Add assertion
2023-11-08 11:25:35 +01:00
Uwe Seimet 43088ab3bc Remove non-working Banana Pi code (#1252)
* Remove non-working Banana Pi code

* Remove SonarQube suppressions which can be resolved by a code update

* Update device detection
2023-10-22 17:29:26 +02:00
Uwe Seimet 41bdcd4aed Issues 1179 and 1182 (#1232)
* Update logging

* Remove duplicate code

* Update unit tests

* Clean up includes

* Merge ProtobufSerializer into protobuf_util namespace

* Precompile regex

* Add const

* Add Split() convenience method, update log level/ID parsing

* Move log.h to legacy folder

* Elimininate gotos

* Fixes for gcc 13

* Update compiler flags

* Update default folder handling

* Use references instead of pointers

* Move code for better encapsulation

* Move code

* Remove unused method argument

* Move device logger

* Remove redundant to_string

* Rename for consistency

* Update handling of protobuf pointers

* Simplify protobuf usage

* Memory handling update

* Add hasher
2023-10-15 08:38:15 +02:00
Daniel Markstedt ee658c359d Clarify docs and error strings for scsimon (#1175)
* Better usage hints in scsimon man page

* In error message, clarify that piscsi needs to be shut down
2023-06-24 13:20:15 -07:00
Uwe Seimet 07e953fa77 Fixed a potential issue with the unit test order (reserved file cleanup was missing) (#1137)
* Fixed a potential issue with the unit test order

* Updated error handling
2023-03-28 10:21:36 +02:00
akukerandTony Kuker 5b3626dcf5 SCSI Dump Usability Enhancements & Cleanup (#1026)
Co-authored-by: Tony Kuker <akuker@gmail.com>
2022-12-09 09:50:45 -06:00
akukerandTony Kuker 09ba19a24f Optimize setting the data gpio bits (#1022)
Co-authored-by: Tony Kuker <akuker@gmail.com>
2022-12-07 11:09:30 -06:00
52c2aa474f Rebrand project to PiSCSI (#1016)
* Rebrand project to PiSCSI
- rascsi ->piscsi
- rasctl -> scsictl
- rasdump -> scsidump
- ras* -> piscsi* (rasutil -> piscsi_util, etc.)

* Refined the formatting and wording of the app startup banner
* Kept some references to rascsi and rasctl where backwards compatibility is concerned
* Point to the new github repo URL

Co-authored-by: nucleogenic <nr@nucleogenic.com>
Co-authored-by: Uwe Seimet <Uwe.Seimet@seimet.de>
2022-12-05 09:58:23 -08:00
akukerandTony Kuker 12068cafb8 Reliability fix for Banana Pi M2+ (#1014) Also incremented version number
Co-authored-by: Tony Kuker <akuker@gmail.com>
2022-12-04 11:55:38 -06:00
akuker eb71c31cf1 Initial merge of (incomplete) Banana Pi updates (#993) 2022-12-02 22:20:27 -06:00
Uwe Seimet 4fa513090a Improve code sharing and dependencies, address code duplication (#976) 2022-11-10 07:44:06 +01:00
Uwe Seimet 1c0179e7e3 rasdump and monitor updates, made rasdump work, improved bus abstraction (#973)
* Moved rasdump and monitor to sub-folders, cleaned up code

* Fixes rasdump issues and added additional features like device type check, LUN support and configurable buffer size
2022-11-09 08:40:26 +01:00
Uwe Seimet 1cae530d42 Added command byte count to SCSI command mapping (#966)
* Extended mapping table with command byte count

* Terminate early if command is unknown
2022-11-06 19:44:44 +01:00
Uwe Seimet 83d1595a35 Improved testability of rascsi/rasctl/scsimon/rasdump, eliminated global fields (#960)
* Moved rascsi/rasctl/scsimon/rasdump.cpp to classes (for better testability)

* Moved bus.* to hal folder

* Removed some global variables

* Fixed code redundancies
2022-11-02 23:41:45 +01:00
Uwe Seimet c41373d9bd Use lambdas for dispatcher, code cleanup, test updates (#958)
* Using lambdas instead of member function pointers simplifies the command dispatching and reduces the code volume

* Removed duplicate error handling

* Fix for issue #956

* Unit test updates

* Resolved SonarQube issues
2022-11-02 15:36:19 +01:00
Uwe Seimet 621cc7d5a2 Code cleanup, especially casts, lambdas, data types, encapsulation (#952)
* Unit test updates

* Lambda syntax cleanup

* Use new-style casts

* Use std::none_of when saving the cache

* Use to_integer instead of casts

* Use accessors for getting CDB data

* Made ctrl_t private

* Improved encapsulation

* Replaced pointers by references

* Removed all remaining occurrences of DWORD and BYTE, making os.h obsolete
2022-11-02 07:36:25 +01:00
Uwe Seimet 6e35577368 Removed wrong inheritance of SCDP and SCBR from Disk class (#948)
* Fixed TODOs, updated SCBR and SCDP

* Introduced ByteWriter interface

* Use accessors instead of directly accessing length/block fields
2022-10-29 18:10:00 +02:00
Daniel Markstedt 08194af424 Move C++ code into cpp/ dir (#941)
- Moved C++ code to cpp/ from src/raspberrypi
- Related updates to Makefile, easyinstall.sh, and the github build rules
- Removed the native X68k C code in src/x68k from the repo
2022-10-25 12:59:30 -07:00