Skip to content

splashasm: Added splashasm to utils for compiling splash files for i2c & spi dumps at boot - #205

Open
SherbertLemon64 wants to merge 1 commit into
raspberrypi:masterfrom
SherbertLemon64:master
Open

splashasm: Added splashasm to utils for compiling splash files for i2c & spi dumps at boot#205
SherbertLemon64 wants to merge 1 commit into
raspberrypi:masterfrom
SherbertLemon64:master

Conversation

@SherbertLemon64

Copy link
Copy Markdown

Small tool to compile .splash files that describe i2c & spi dumps for spitting out during start.elf

Small tool to compile .splash files that describe i2c & spi dumps for spitting out during start.elf
Squished commits
st_disp [DATA_ONLY] 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xDE 0xEF 0x79 0xE6 0xF1 0xDE 0x88 0xDE 0x84 0xDE 0x85 0xDE 0xAA 0xE6 0xF2 0xEF 0x78 0xF7 0xBD 0xFF 0xFE 0xF7 0xDD 0xEF 0x57 0xDE 0xCD 0xDE 0x85 0xD6 0x83 0xDE 0x87 0xE6 0xF1 0xF7 0x9A 0xFF 0xFE 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xF7 0xBE 0xC6 0x18 0x63 0x2C 0x29 0x85 0x2A 0x65 0x44 0xC6 0x45 0x84 0x45 0x82 0x3D 0x82 0x3D 0x82 0x3D 0x62 0x3C 0xC2 0x2B 0x62 0x11 0xE1 0x08 0xC0 0x08 0xE1 0x19 0xA2 0x22 0xC2 0x2B 0xE1 0x3C 0xE3 0x65 0xAB 0x95 0xF1 0x63 0xEC 0x31 0xC6 0x39 0x65 0x69 0xA6 0x8A 0x08 0x91 0xC6 0x79 0x45 0x59 0x44 0x69 0x45 0xA9 0xA6 0xD9 0xC7 0xD9 0x45 0xD9 0x44 0xD9 0x44 0xD9 0x44 0xD9 0x44 0xD9 0x44 0xD9 0x44 0xD9 0x44 0xD9 0x44 0xD9 0x44 0xD9 0x86 0xDB 0x2C 0xA3 0x4D 0x49 0xA6 0x31 0x44 0x49 0x45 0x61 0x45 0x61 0x44 0x59 0x45 0x49 0x65 0x49 0x85 0x59 0xA6 0x59 0xA6 0x59 0x86 0x41 0x65 0x31 0x44 0x21 0x44 0x29 0x44 0x49 0x65 0x7A 0x08 0x9A 0x69 0x9A 0x48 0x8A 0x08 0x61 0xA6 0x39 0x65 0x3A 0x07 0x7B 0xEF 0xC6 0x38 0xEF 0x9D 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
st_disp [DATA_ONLY] 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xF7 0xBB 0xE7 0x14 0xDE 0xAA 0xDE 0x84 0xDE 0x84 0xDE 0xAA 0xE7 0x12 0xEF 0x7A 0xFF 0xDD 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xF7 0xBB 0xE7 0x14 0xDE 0xA9 0xDE 0x84 0xDE 0x84 0xDE 0xAB 0xEF 0x36 0xFF 0xDD 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xF7 0x9E 0xBD 0xD7 0x5A 0xEB 0x29 0x85 0x2A 0x85 0x4C 0xC7 0x4D 0x85 0x45 0x82 0x3D 0x82 0x3D 0x82 0x3D 0x02 0x2B 0xC2 0x1A 0x21 0x08 0xE1 0x08 0x80 0x21 0xA4 0x3B 0x26 0x34 0x43 0x3D 0x21 0x4D 0x85 0x86 0x0F 0x9D 0x92 0x52 0xEA 0x31 0x65 0x59 0x45 0x99 0xC6 0xC2 0x8A 0xCA 0x49 0xB9 0xE7 0x89 0x65 0x51 0x44 0x79 0x65 0xC2 0x07 0xD9 0xE7 0xD9 0x65 0xD9 0x44 0xD9 0x44 0xD9 0x44 0xD9 0x44 0xD9 0x44 0xD9 0x65 0xD9 0x45 0xD9 0x44 0xD9 0x45 0xDA 0x89 0xBB 0x6D 0x59 0xE7 0x21 0x44 0x21 0x44 0x29 0x44 0x41 0x44 0x59 0x65 0x79 0xC6 0x9A 0x69 0xB2 0xCB 0xBB 0x0C 0xB2 0xCB 0x92 0x28 0x69 0x65 0x41 0x44 0x21 0x44 0x21 0x44 0x39 0x45 0x41 0x45 0x49 0x65 0x41 0x65 0x31 0x65 0x39 0xE7 0x73 0xAE 0xB5 0xD6 0xE7 0x5C 0xFF 0xDF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
st_disp [DATA_ONLY] 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xDD 0xEF 0x57 0xDE 0xCD 0xDE 0x85 0xD6 0x84 0xDE 0x87 0xE6 0xF0 0xEF 0x79 0xFF 0xDE 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xDE 0xEF 0x79 0xDE 0xCE 0xDE 0x85 0xD6 0x83 0xDE 0x87 0xE7 0x12 0xF7 0xBC 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xF7 0x9E 0xB5 0xB6 0x5A 0xEB 0x29 0x85 0x2A 0xC5 0x4C 0xE6 0x45 0x84 0x45 0x82 0x45 0x82 0x3D 0x62 0x34 0x81 0x1A 0xC0 0x00 0xE0 0x00 0x60 0x11 0x42 0x43 0x28 0x44 0x67 0x3D 0x42 0x3D 0x82 0x4D 0xA6 0x8E 0x30 0x8D 0x11 0x42 0x28 0x39 0x44 0x79 0x45 0xB9 0xA6 0xD9 0xC7 0xD9 0x85 0xD9 0xE7 0xB9 0xE7 0x79 0x65 0x59 0x65 0x89 0xA6 0xC2 0x8A 0xDA 0x89 0xD9 0xC6 0xD9 0x45 0xD9 0x44 0xD9 0x44 0xD9 0x44 0xD9 0xA6 0xD9 0xA6 0xD9 0x45 0xD9 0x65 0xDA 0x69 0xB2 0xEB 0x59 0xA6 0x21 0x44 0x31 0x44 0x59 0x45 0x89 0x85 0xAA 0x07 0xC2 0x8A 0xD2 0xCB 0xDA 0x89 0xDA 0x89 0xDA 0x89 0xD2 0xCB 0xB2 0x69 0x81 0x85 0x49 0x44 0x21 0x44 0x21 0x44 0x21 0x44 0x21 0x44 0x29 0x85 0x42 0x08 0x73 0xCE 0xB5 0xB6 0xE7 0x3C 0xF7 0xDE 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
st_disp [DATA_ONLY] 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xF7 0x9B 0xE7 0x12 0xDE 0x88 0xD6 0x83 0xDE 0x85 0xDE 0xAD 0xEF 0x57 0xF7 0xDD 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

git and github like files to end with a newline - hence the red splodge.

Comment thread splashasm/README.md

## Limitations

- This is incompatible with the Pi 5

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

currently

Comment thread splashasm/README.md
- You can only have a maximum of 4 SPI defines
- You can only have a maximum of 10 I2C defines
- The delays are blocking and therefore a long splash description will slow down a boot
- The only timing garuntee is that if you write a delay command, there will be a wait strictly greater than your delay command. This is not made for timing sensitive applications, there are further delays due to parsing No newline at end of file

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Typo - guarantee

Comment thread splashasm/README.md
- ```delay```
- ```import```

the syntax is as follows

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

"The syntax is as follows:"

Comment thread splashasm/README.md
1. FILE HEADER - 16 bytes

0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

I've just noticed that your network-protocol-style structure diagrams don't work so well in little-endian - the bits are numbered backwards. Would it be cleaner to number the bytes?

Comment thread splashasm/README.md
|S| Reserved |D|
+-+-+-+-+-+-+-+-+

bit 0 (D), DATA_ONLY : If this is 1 then the DC pin always

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

This is where I noticed that the bit numbering is backwards. Whichever way you do choose to number them (and I vote 0 for LSB), either the diagram or the description has to change.

Comment thread splashasm/README.md
## Limitations

- This is incompatible with the Pi 5
- You can only have a maximum of 4 SPI defines

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

You can drop the "only"s here

@@ -0,0 +1,652 @@
#!/usr/bin/env python3
#
# Based on the panel-mipi-dbi langauge by Noralf Trønnes <noralf@tronnes.org>, 2022

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

"language"

# Extended by Thomas Griffiths <thomas.griffiths@raspberrypi.com>
#

from typing import List, Self, Optional, Tuple

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

It's worth commenting somewhere (README?) that this requires a fairly recent Python (3.11?)

Comment thread splashasm/README.md

2. Write a .splash file, or use one of the examples

3. Run ```python3 splash_assembler.py <input>.splash -o output.bin```

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Single backticks are sufficient for in-line code formatting

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.

2 participants