Commit graph

936 commits

Author SHA1 Message Date
Asahi Lina
e1e8d05ead m1n1.constructutils: Fix building ConstructValueClass
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-06-02 23:03:21 +09:00
Asahi Lina
a9ae6b81fa m1n1.constructutils: Add a regmap() to make a RegMap out of a Construct
Handy for ringbuf pointer type structures where we need to be able to
read/write individual members using atomic primitives, without going
through Construct.

Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-06-02 23:03:21 +09:00
Asahi Lina
892ee0e76b m1n1.utils: Split RegMap into BaseRegMap (without metaclass)
This allows alternative BaseRegMap subclasses to dynamically build the
map instead of doing the metaclass stuff.

Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-06-02 23:03:19 +09:00
Asahi Lina
28fdcb4284 m1n1.constructutils: Improve str representation, add dump() for Python
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-06-02 23:03:19 +09:00
Asahi Lina
4ad733493b m1n1.constructutils: Add a global struct address tracer
Currently unconditional, kind of hacky. Good for HV use.

Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-06-02 23:03:19 +09:00
Asahi Lina
de4f024ced m1n1.constructutils: Make the Pointer<->addr association two-way
Also add Lazy support

Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-06-02 23:03:17 +09:00
Asahi Lina
570ea8c4b8 m1n1.constructutils: Add .sizeof()
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-06-02 22:57:32 +09:00
Asahi Lina
83dfa1ef70 m1n1.constructutils: Move _off to class, improve addr stuff
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-06-02 22:56:52 +09:00
Asahi Lina
029ba73f44 m1n1.constructutils: Make Dec buildable
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-06-02 22:54:21 +09:00
Asahi Lina
1c35ce60c7 m1n1.constructutils: Better string representations
Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-06-02 22:53:57 +09:00
Asahi Lina
3fe8f3e72f m1n1.constructutils: Improve recursive reload
Reload more things, but also avoid reloading the same class multiple
times.

Signed-off-by: Asahi Lina <lina@asahilina.net>
2022-06-02 22:53:17 +09:00
Hector Martin
714420a694 display: Put DCP to sleep if display is external
This stops DCP from killing our modeset if the connection cycles.

Also force a (potential) configure cycle if the display is external;
this makes sure updated stage2s will have a chance at fixing issues of
old stage1s. Modesetting is fast when it's the same mode as before.

Signed-off-by: Hector Martin <marcan@marcan.st>
2022-06-01 01:54:11 +09:00
Hector Martin
2bd6060f43 experiments/dcp_iboot.py: Fully shut down DCP when done
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-06-01 00:57:17 +09:00
Hector Martin
e9f383aa6b m1n1.fw.dcp.dcpav: Add some DCPAV EPIC stuff
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-06-01 00:57:17 +09:00
Hector Martin
5c69011fc7 m1n1.fw.dcp.iboot: Fix padding
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-06-01 00:57:17 +09:00
Hector Martin
58db65db63 experiments/dcp_iboot.py: Shut down display before doing anything
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-06-01 00:57:17 +09:00
Hector Martin
7282f30527 m1n1.fw.afk: Fix a bunch of brokenness
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-06-01 00:57:17 +09:00
Hector Martin
eb4483f8e1 hv/trace_dcp.py: Log hexdumps to the HV log
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-06-01 00:57:17 +09:00
Hector Martin
06ec66e2a9 proxy: Export pmgr_reset()
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-06-01 00:57:17 +09:00
Hector Martin
0472bc05cd proxy: Export display functions
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-06-01 00:57:17 +09:00
Hector Martin
9548ddd75d fw.asc: Autodetect whether to boot the ASC or wake it up
Technically both can be done unconditionally, but let's be explicit in
the python side to see if we ever find this algorithm doesn't work.

Signed-off-by: Hector Martin <marcan@marcan.st>
2022-06-01 00:57:17 +09:00
Martin Povišer
60254a38ed experiments/ohmmeter.py: Make CS42L84 your ohmmeter
Add script which prints out the (rough) measured impedance of connected
headphones on machines with the CS42L84 jack codec (2021 Macbook Pros).

  $ proxyclient/experiments/ohmmeter.py
  Waiting for plug... measuring... 64.3 ohms... yanked
  Waiting for plug... measuring... 697.1 ohms...

Signed-off-by: Martin Povišer <povik@protonmail.com>
2022-05-31 21:51:53 +09:00
Martin Povišer
4d306bb0d8 m1n1.hw.i2c: Fix & extend register access
Fix reading of registers (there have been STOPs issued between the two
messages which surprisingly went unnoticed until now). Also add support
for multibyte register addresses.

Signed-off-by: Martin Povišer <povik@protonmail.com>
2022-05-31 21:51:53 +09:00
Martin Povišer
e1b50f9ced experiments/aop.py: Bring up AOP
Signed-off-by: Martin Povišer <povik@protonmail.com>
2022-05-30 23:27:04 +09:00
Martin Povišer
d924c97a0c tools/second_proxy.py: Add setup of second proxy stream
Signed-off-by: Martin Povišer <povik@protonmail.com>
2022-05-30 23:26:31 +09:00
Martin Povišer
e78cd14fee experiments/mmio_sweep.py: Add MMIO sweep tool
Tool can do blanket sweep or isolate ranges associated with a power
domain.

Signed-off-by: Martin Povišer <povik@protonmail.com>
2022-05-30 23:26:31 +09:00
Martin Povišer
96d4b5dd07 m1n1.proxyutils: Fortify against non-working disassembler
If not caught it can lead to an ugly crash...

Signed-off-by: Martin Povišer <povik@protonmail.com>
2022-05-30 23:26:31 +09:00
Martin Povišer
d040e61aa8 m1n1.hw.admac: Add UNK4 report flag
Signed-off-by: Martin Povišer <povik@protonmail.com>
2022-05-30 23:26:31 +09:00
Martin Povišer
f0ff2e9eaf m1n1.hw.admac: Do without an ADT node
Signed-off-by: Martin Povišer <povik@protonmail.com>
2022-05-30 23:26:31 +09:00
Martin Povišer
38ca45816f m1n1.hw.admac: Support early poll() exit
Signed-off-by: Martin Povišer <povik@protonmail.com>
2022-05-30 23:26:31 +09:00
Martin Povišer
f353017ac6 m1n1.hw.loadobjs: Accept queer call methods
Let user specify a call method to use on symbols.

Signed-off-by: Martin Povišer <povik@protonmail.com>
2022-05-30 23:26:31 +09:00
Martin Povišer
dcc75ab4f1 m1n1.hw.mca: Document the feedback disable
Signed-off-by: Martin Povišer <povik@protonmail.com>
2022-05-30 23:26:31 +09:00
Martin Povišer
9e32a75bc6 experiments/speaker_amp.py: Remove dead power-domain call
/arm-io/mca0 doesn't have a PD (instead /arm-io/mca-switch has the MCA0
domain).

Signed-off-by: Martin Povišer <povik@protonmail.com>
2022-05-30 23:26:31 +09:00
Martin Povišer
2579a97fde m1n1.loadobjs: Avoid pasting paths into cmdline strings
Do not go through a formatted cmdline string when invoking tools. There
are user-controlled paths involved which can contain spaces (and other
foul characters).

Signed-off-by: Martin Povišer <povik@protonmail.com>
2022-05-30 23:26:31 +09:00
Martin Povišer
72c6170ee8 m1n1.loadobjs: Support loading of inline C snippets
Signed-off-by: Martin Povišer <povik@protonmail.com>
2022-05-30 23:26:31 +09:00
Hector Martin
9212ac2036 m1n1.hw.asc: Add more mailbox control fields
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-05-30 23:23:37 +09:00
Janne Grunau
12db5c3910 tools/reset_panic_counter.py: Use ADT to support t600x
In addition make it executable and add python shebang as for the other
tools.

Signed-off-by: Janne Grunau <j@jannau.net>
2022-05-30 22:56:43 +09:00
Janne Grunau
8a90ced4b4 tools/reset_panic_counter.py: minor fixes
- add SPDX-License-Identifier
 - make it executable
 - add python shebang
 - remove unused import

Signed-off-by: Janne Grunau <j@jannau.net>
2022-05-30 22:56:43 +09:00
Sven Peter
afe9c9bb16 proxyclient: add AES experiment
Signed-off-by: Sven Peter <sven@svenpeter.dev>
2022-05-30 22:54:50 +09:00
Sven Peter
ee045af977 proxyclient: add AES registers
Signed-off-by: Sven Peter <sven@svenpeter.dev>
2022-05-30 22:54:50 +09:00
Janne Grunau
8c82a7cb92 m1n1.fw.dcp.ipc: Add Call/Callbacks observed while tracing macos 12.3
Signed-off-by: Janne Grunau <j@jannau.net>
2022-05-30 22:49:00 +09:00
Janne Grunau
5ef9197edc m1n1.fw.dcp.ipc: Annotate 'swap_complete_ap_gated' arguments
Signed-off-by: Janne Grunau <j@jannau.net>
2022-05-30 22:49:00 +09:00
Janne Grunau
8119130e88 hv/trace_dcp.py: update to mac OS 12.3 API
Verified calls A000 through A358 due to inconsistencies in the trace
log for A104 and A105.

Signed-off-by: Janne Grunau <j@jannau.net>
2022-05-30 22:49:00 +09:00
Janne Grunau
8366bcd859 m1n1.fw.dcp.ipc: Update struct sizes to macos 12.3 firmware
Signed-off-by: Janne Grunau <j@jannau.net>
2022-05-30 22:49:00 +09:00
Akihiko Odaki
4a67fbe10e m1n1.shell: Don't save history if init failed
Signed-off-by: Akihiko Odaki <akihiko.odaki@gmail.com>
2022-05-30 22:48:40 +09:00
Akihiko Odaki
3440aadc3c proxy: Specify coordinates in fb_fill method
Signed-off-by: Akihiko Odaki <akihiko.odaki@gmail.com>
2022-05-30 22:47:26 +09:00
Hector Martin
45ac8633bd m1n1.shell: Don't print bools as hex
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-05-30 22:38:30 +09:00
Hector Martin
e9080b8139 hv: Don't allow lower() on non-fault states
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-05-30 22:38:11 +09:00
Hector Martin
984b22cd51 m1n1.hv,proxyutils: Refactor how faults are printed re: context
Instead of directly taking a proxy entry code to determine what to
decode, just take an is_fault argument and only show and decode ESR/FAR
if true.

Signed-off-by: Hector Martin <marcan@marcan.st>
2022-05-30 22:36:37 +09:00
Hector Martin
7c5d47ff85 m1n1.hv: Use hv.run_shell() everywhere
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-05-30 22:35:49 +09:00