Skip to content

Commit ad53766

Browse files
committed
m1n1.fw.asc.{crash, ioreporting}: Do not align prealloc buffer sizes
On SMC on t602x, this is a small SRAM and we can run off the edge. Signed-off-by: Hector Martin <[email protected]>
1 parent aaeb300 commit ad53766

2 files changed

Lines changed: 5 additions & 3 deletions

File tree

proxyclient/m1n1/fw/asc/crash.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -210,12 +210,13 @@ def Handle(self, msg):
210210
return self.handle_getbuf(msg)
211211

212212
def handle_getbuf(self, msg):
213-
size = align(0x1000 * msg.SIZE, 0x4000)
214213

215214
if msg.DVA:
215+
size = 0x1000 * msg.SIZE
216216
self.iobuffer_dva = msg.DVA
217217
self.log(f"buf prealloc at dva {self.iobuffer_dva:#x}")
218218
else:
219+
size = align(0x1000 * msg.SIZE, 0x4000)
219220
self.iobuffer, self.iobuffer_dva = self.asc.ioalloc(size)
220221
self.log(f"buf {self.iobuffer:#x} / {self.iobuffer_dva:#x}")
221222
self.send(CrashLogMessage(TYPE=1, SIZE=size // 0x1000, DVA=self.iobuffer_dva))

proxyclient/m1n1/fw/asc/ioreporting.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,13 @@ def GetBuf(self, msg):
3030
if self.iobuffer:
3131
self.log("WARNING: trying to reset iobuffer!")
3232

33-
self.bufsize = align(0x1000 * msg.SIZE, 0x4000)
3433

3534
if msg.DVA != 0:
35+
self.bufsize = 0x1000 * msg.SIZE
3636
self.iobuffer = self.iobuffer_dva = msg.DVA
37-
self.log(f"buf {self.iobuffer:#x} / {self.iobuffer_dva:#x}")
37+
self.log(f"buf prealloc {self.iobuffer:#x} / {self.iobuffer_dva:#x}")
3838
else:
39+
self.bufsize = align(0x1000 * msg.SIZE, 0x4000)
3940
self.iobuffer, self.iobuffer_dva = self.asc.ioalloc(self.bufsize)
4041
self.log(f"buf {self.iobuffer:#x} / {self.iobuffer_dva:#x}")
4142
self.send(IOReporting_GetBuf(DVA=self.iobuffer_dva, SIZE=self.bufsize // 0x1000))

0 commit comments

Comments
 (0)