Hector Martin
7e5b734ae7
kboot: Rework how kboot_prepare_fw() works
...
Now it just builds and returns the firmware portion of the initramfs. It
is up to the caller to prepend it to the user-supplied initramfs, unless
no initramfs was set, in which case kboot_prepare_dt will implicitly
call kboot_prepare_fw.
Then make the payload code and linux.py handle this properly.
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-07-23 02:44:30 +09:00
Hector Martin
63e8d0d48e
m1n1.fw.dcp.ipc: Fix late_init_signal return type
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-07-18 02:28:27 +09:00
Hector Martin
9fae977161
m1n1.fw.dcp.ipc: Add SizedArray/SizedBytes to handle data/len pairs
...
The serialization always uses fixed-length arrays. These wrappers use a
length argument (possibly coming later in the args) to size the fields
so that the arrays are truncated or padded to the right length as
returned to the user.
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-07-18 02:28:26 +09:00
Hector Martin
231aa772fd
m1n1.fw.dcp: Initial DCP log tracing implementation
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-07-15 22:29:01 +09:00
Hector Martin
f635d64429
hv/trace_dcp.py: Update call list for 11.4 (partial?)
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-07-15 22:28:27 +09:00
Hector Martin
0034311ee3
m1n1.utils: Add indent argument to chexdump
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-07-15 22:27:52 +09:00
Hector Martin
4a6fa4b0e1
hv/trace_dcp.py: Redo cmd/ack handling properly, add logging & msg list
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-07-15 16:27:56 +09:00
Sven Peter
856a9dbd1b
usb: don't initialize more than once
...
Signed-off-by: Sven Peter <sven@svenpeter.dev>
2021-07-10 16:29:05 +09:00
Sven Peter
5d2315a865
uartproxy: flush iodev before shutting down
...
Signed-off-by: Sven Peter <sven@svenpeter.dev>
2021-07-10 16:29:05 +09:00
Sven Peter
5b86c1ee8d
proxyclient: sep: add initial code to boot SEPOS
...
Signed-off-by: Sven Peter <sven@svenpeter.dev>
2021-07-09 15:58:00 +09:00
Sven Peter
93ca3fae08
hv: add hardware breakpoint support
...
Signed-off-by: Sven Peter <sven@svenpeter.dev>
2021-07-09 15:52:40 +09:00
Sven Peter
e0d889fac1
hv: add proper single stepping support
...
Signed-off-by: Sven Peter <sven@svenpeter.dev>
2021-07-09 15:52:40 +09:00
Sven Peter
620f1972ce
linux.py: add missing serial import
...
Signed-off-by: Sven Peter <sven@svenpeter.dev>
2021-07-09 15:41:04 +09:00
Sven Peter
6afe9ebaf9
kboot: move SEPFW to initrd before booting
...
Bootstrapping SEPOS requires to setup a scratch buffer and
will have to be handled by the final OS. We pass along
the firmware image by appending it to the initramfs.
Signed-off-by: Sven Peter <sven@svenpeter.dev>
2021-07-09 15:40:11 +09:00
Sven Peter
cd4b563a31
cpio: add functions to create cpio images
...
Signed-off-by: Sven Peter <sven@svenpeter.dev>
2021-07-09 15:40:11 +09:00
Janne Grunau
e74b79dc2a
m1n1/hv: fix irq trace after "Rework MMIO PT handling & tracing"
...
Also removes unused leftover demonstration code which came obsolete by
tracer scripts. See hv/trace_gpio.py for an example.
Signed-off-by: Janne Grunau <j@jannau.net>
2021-07-09 15:31:08 +09:00
Hector Martin
e00e8f178d
hv/trace_dcp.py: Fix stuff
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-06-24 02:12:07 +09:00
Hector Martin
819d2cf6bc
hv/trace_dcp.py: Parsing a bunch of stuff now
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-06-24 01:15:32 +09:00
Hector Martin
3cfe943ec3
m1n1.trace.asc.Syslog: Fix message termination
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-06-24 01:15:15 +09:00
Hector Martin
7687d00f5f
m1n1.trace.asc: Add EP.start() to initialize endpoints
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-06-24 01:14:57 +09:00
Hector Martin
c490f74872
m1n1.trace.asc: Move EP handlers to per-EP objects
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-06-23 20:19:30 +09:00
Hector Martin
b4c2272855
m1n1.hw.dart: Don't cache invalid mappings
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-06-23 20:19:30 +09:00
Hector Martin
b4fef18e12
m1n1.trace.dart: Log invalidates
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-06-23 17:04:30 +09:00
Hector Martin
92c3ad223c
m1n1.proxyutils.RegMonitor: Add ASCII mode, overridable readmem, abbrev
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-06-23 17:02:14 +09:00
Hector Martin
faa37342f9
m1n1.utils.chexdump: Add abbreviation
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-06-23 17:01:17 +09:00
Hector Martin
cf00bedade
m1n1.hv.HV: Upload ADT late to allow user overrides
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-06-22 02:02:06 +09:00
Hector Martin
94f5c29c9f
hv/trace_dcp.py: More things
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-06-22 01:39:38 +09:00
Hector Martin
9a480c656b
m1n1.shell.HistoryConsole: Guard against mon.poll() exceptions
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-06-22 01:39:38 +09:00
Hector Martin
912776372a
m1n1.trace.asc: Support more messages, syslog decoding, associated DART
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-06-22 01:39:38 +09:00
Hector Martin
42b7adad06
m1n1.trace.dart: Add DART tracer/handler
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-06-22 01:39:38 +09:00
Hector Martin
b7147a130a
m1n1.trace.ADTDevTracer: Fix _reloadcls() binding issue
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-06-22 01:39:38 +09:00
Hector Martin
c76489e6dd
m1n1.hw.dart: Move DART support code here, add IOVA resolver
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-06-22 01:39:38 +09:00
Hector Martin
d025574e1d
m1n1.hv.HV: Run passive tracers *before* issuing the MMIO write
...
E.g. this means tracers run *before* an ASC command gets sent, which
might be relevant if the same memory is used for commands and responses.
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-06-22 01:39:38 +09:00
Hector Martin
d255a74271
m1n1.hv: Add HV.run_shell() convenience function, fix messages
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-06-22 01:39:38 +09:00
Hector Martin
83b05e7743
m1n1.utils.RegAccessor: Pass through None when register is unavailable
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-06-22 01:39:38 +09:00
Hector Martin
d942984b72
m1n1.utils.Reloadable: Be verbose about what gets reloaded
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-06-22 01:39:38 +09:00
Hector Martin
026c16c7c2
m1n1.utils.chexdump(): Fix justification
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-06-22 01:39:38 +09:00
Hector Martin
32d03f3ae2
m1n1.utils.RegMap: Fix register access widths
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-06-22 01:39:38 +09:00
Hector Martin
95aeb7bb83
hv: Use hv_write_hcr() for initial configuration
...
This might make things work if GXF is already enabled, maybe.
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-06-22 01:15:00 +09:00
Hector Martin
f7063e6f06
m1n1.trace.Tracer: Multiple bugfixes
...
- Set ident properly before looking up cache
- Off-by-one error in regmap lookups
- Reload regmap classes on reload
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-06-21 16:24:04 +09:00
Hector Martin
035aa486d6
m1n1.hv: Properly update current shell globals after run_script()
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-06-21 16:19:43 +09:00
Hector Martin
a714c74e1a
m1n1.utils.Reloadable: Only reload each module once
...
This avoids confusion with types changing ID when the same module is
repeatedly reloaded. Now we use the file mtime and only reload things
which have changed since last time, and dependent modules.
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-06-21 16:00:00 +09:00
Alyssa Rosenzweig
ba478f2de5
mini.hv.dcp: Decode common messages
...
This accounts for most of the DCP traffic once macOS is booted. I used
a sophisticated side-channel hypervisor timing attack to determine the
message functions [ adding time.sleep(1) ]
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
2021-06-21 14:02:25 +09:00
Alyssa Rosenzweig
6adf0c692c
mini.trace.asc: Don't log handled messages
...
ASC handlers now return a boolean to indicate whether they successfully
handled the message (True if so). In that case, printing the underlying
mailbox traffic is redundant, so let's hide it.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
2021-06-21 14:02:25 +09:00
Hector Martin
86e233931e
m1n1.trace.asc: Add core endpoint numbers
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-06-21 02:51:46 +09:00
Hector Martin
e4a591d81a
m1n1.trace.asc: Fix MSG_EP_MAP.LAST
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-06-21 02:49:55 +09:00
Hector Martin
71cdcb9bef
ASCTracer: Fix subclassing
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-06-21 02:43:01 +09:00
Hector Martin
dbeb174ac9
m1n1.hv: Don't die on ^C in the shell
2021-06-21 02:34:07 +09:00
Hector Martin
03ceed3a97
m1n1.hv: Fix map_hook_idx read/write options
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-06-21 02:06:22 +09:00
Hector Martin
7632a57ff3
m1n1.trace.asc: Implement basic message handling/dispatch
...
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-06-21 02:05:36 +09:00