linuxboot / linuxboot/fiano

PSP directory may have multiple sub directories

Open
#377 0 comments 0 reactions 1 assignee View on GitHub

@rihter007 is already working on this.

Since Apr 25, 2022.

Dominant language
Go
Stars
373
Forks
59
PR merge metrics
No merged PRs in 30d

Description

From Steam Deck firmware, we can obtain the follow:

- one level 1 PSP directory that points to two further locations
- both locations each point to a PSP recovery directory

The current data structure has thus the following issues:
- only a single level 2 directory is supported for each legacy and modern PSP
- the range (offset + length) is decoupled from the directory itself; it should be part of the directory

## Excerpts

### PSP level 1 directory
```
00021000: 2450 5350 a100 4f07 0200 0000 0000 0000 $PSP..O.........
00021010: 4800 0000 0000 0000 0000 0600 0000 0000 H...............
00021020: 4a00 0000 0000 0000 0000 0700 0000 0000 J...............
```
These point to another location each.

### PSP level 2 recovery directory A:
```
00060000: 0200 0000 0300 0000 ff00 0000 0000 0800 ................
```
### PSP level 2 recovery directory B:
```
00070000: 0100 0000 0300 0000 ff00 0000 0000 8800 ................
```

### Actual level 2 directories

```
00080000: 2450 4c32 36b1 638b 1a00 0000 0206 0040 $PL26.c........@
00080010: 0000 0000 4004 0000 0004 0000 0000 0080 ....@...........
00080020: 0100 0000 0022 0000 0009 0000 0000 0080 ....."..........
00080030: 7300 0000 80f6 0000 002b 0000 0000 0080 s........+......
00080040: 0200 0000 5043 0100 0022 0100 0000 0080 ....PC..."......
00080050: 0400 0000 0000 0200 0020 2600 0000 0080 ......... &.....
00080060: 0800 0000 0002 0400 0066 0200 0000 0080 .........f......
00080070: 0900 0000 4004 0000 0068 0600 0000 0080 ....@....h......
```

```
00880000: 2450 4c32 36b1 638b 1a00 0000 0206 0040 $PL26.c........@
00880010: 0000 0000 4004 0000 0004 0000 0000 0080 ....@...........
00880020: 0100 0000 0022 0000 0009 0000 0000 0080 ....."..........
00880030: 7300 0000 80f6 0000 002b 0000 0000 0080 s........+......
00880040: 0200 0000 5043 0100 0022 0100 0000 0080 ....PC..."......
00880050: 0400 0000 0000 0200 0020 2600 0000 0080 ......... &.....
00880060: 0800 0000 0002 0400 0066 0200 0000 0080 .........f......
00880070: 0900 0000 4004 0000 0068 0600 0000 0080 ....@....h......
00880080: 0b00 0000 ffff ffff 4100 0000 0000 0000 ........A.......
```

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.