Skip to content

wide/sca: Support upper bits + minor bug fixes#391

Draft
erichelgeson wants to merge 3 commits into
mainfrom
eric/wide-ids
Draft

wide/sca: Support upper bits + minor bug fixes#391
erichelgeson wants to merge 3 commits into
mainfrom
eric/wide-ids

Conversation

@erichelgeson

Copy link
Copy Markdown
Contributor

Draft till test a few more machines, land on BlueSCSI Toolbox approach.

Two bugs on the SCA:

- With no images found, the RAW fallback resolved the strapped SCA ID
  into fallback_id for initDevice() but then opened the raw disk on the
  hard-coded RAW_FALLBACK_SCSI_ID, so the drive appeared on the wrong ID
  with another ID's settings. Open on the resolved fallback_id.

- check_is_sca_model() latched is_sca_proto as soon as the write to the
  prototype I2C address succeeded, even when the following read failed
  and the probe returned false. Later flag reads would then address the
  prototype chip on a board that never answered as one. Latch only after
  the chip actually responds.
@erichelgeson erichelgeson requested a review from androda July 15, 2026 02:19
@github-actions

Copy link
Copy Markdown

BlueSCSI Memory Report

Compared against release v2026.04.27

Memory Usage

Target FLASH RAM SCRATCH_X SCRATCH_Y
Pico_2_Audio_SPDIF 678.6 KB (+3.9 KB) [33%] 511.7 KB [100%] 3.5 KB [88%] 3.8 KB [94%]
Pico_2_DaynaPORT 671.0 KB (+3.9 KB) [33%] 511.7 KB [100%] 3.5 KB [88%] 3.0 KB [75%]
Pico_Audio_SPDIF 700.7 KB (+4.3 KB) [34%] 252.4 KB [99%] 1.5 KB [38%] 768 B [19%]
Pico_DaynaPORT 692.5 KB (+4.3 KB) [34%] 246.1 KB [96%] 1.5 KB [38%]
Ultra 688.0 KB (+3.9 KB) [34%] 511.7 KB [100%] 3.5 KB [88%] 3.0 KB [75%]
Ultra_Wide 448.1 KB (+4.1 KB) [22%] 511.7 KB [100%] 2.0 KB [50%] 3.0 KB [75%]

Symbol Region Changes

Pico_Audio_SPDIF: 1 symbols moved RAM → FLASH (-96 B RAM)
Symbol Size
scsiDiskFolderIsTapeFolder(FsFile*) 96 B
Pico_DaynaPORT: 1 symbols moved RAM → FLASH (-96 B RAM)
Symbol Size
scsiDiskFolderIsTapeFolder(FsFile*) 96 B

status = i2c_write_timeout_us(I2C_PORT, SCA_I2C_ADDR_PROTO, cmd, 1, true, 25000);
if (status > 0) {
status = i2c_read_timeout_us(I2C_PORT, SCA_I2C_ADDR_PROTO, &response, 1, false, 25000);
is_sca_proto = true;

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Via chat with @androda - we dont need to support sca proto types.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant