我正在 PCIe 64位寻址模式下启动 C6678。 DEVSTAT 寄存器配置为:
PACLKSEL: 0b0
PCIESSEN: 0b1 (启用 PCIe)
PCIESSMODE[1:0]:0b00 (PCIe 端点)
BOOTMODE[12:0]: 0x11E4 (指示条2和4为2GB、PCIe 引导模式)
LENDIAN: 0b1 (小端字节序)
正如预期的那样、BAR0为4KB、而条2和4配置为2GB 孔径。 我 能够访问 DSP 上的各种寄存器和存储器、并将 Linux PCIe 引导加载程序示例移植到 Windows OS、并对其进行了调整、使其适用于64位(而不是32位)条形图。
使用 Blackhawk 调试器、我已确认我正在将代码写入 core0的 L2SRAM、并且还在0x0087FFFC 写入 mago_ADDR。 我已经尝试发出传统中断以及 MSI 中断来唤醒 ROM 引导加载程序、但 PC 似乎位于0x20b01290处的 IDLE 指令:
#拆卸
20b01290:0001E000空闲
20b01294:0187E828 MVK.S1 0x0fd0、A3
20b01298:01905868 MVKH.S1 0x20b00000、A3
20b0129c:E1200001 .fphead n、l、W、BU、nobr>、 Nosat、0001001b
20b012a0:02181FDA MV.L2X A6、B4
20b012a4:000C1362 B.S2X A3
20b012a8:0200A358 MVK.L1 0、A4
20b012ac:01846162 ADDBO.S2 0x20b012b0、B3、3
20b012b0:000403E2 MVC.S2 CSR、B0
20b012b4:000000CA CLR.S2、B0、0、B0
20b012b8:008003A2 MVC.S2 B0、CSR
20b012bc:00000000 NOP
20b012c0:029403A2 MVC.S2 B5、ISTP
20b012c4:053C22E4 LDW/D2T1 *+ B15[1]、A10
20b012c8:71F7 LDW/D2T2 *+ B15[2]、B3
20b012ca:6C6E NOP 4.
20b012cc:008CA362 BNOP.S2 B3、5
20b012d0:01BC54F6 STW/D2T2 B3、* B15-[2]
20b012d4:026E1A2A MVK.S2 0xFFdc34、B4
20b012d8:0210586A MVKH.S2 0x20b00000、B4
20b012dc:E0800000 .fphead n、l、W、BU、nobr>、 Nosat、0000100b
20b012e0:00100362 B.S2 B4
20b012e4:026EA028 MVK.S1 0xffdd40、A4
引导日志为:
0x00873200 00000000 0000000A 00000001 5CA8ADFE 95BF81F1 43C5BB6F DDC431 DCDD7559
0x00873220 78EDFFEF EFF8BF7D 7975FBD5 B68DA98E 66CEC969 E9FBA8AC 7DDFD56C C5AB3342
0x00873240 DE7D985F 7317D62B 9CB2F7C0 297AF3FF 20755B7F 5D572A7B DF2DC98A DBB2EAC7
0x00873260 AEEAF646 8CA128F9 DF3EEFB8 1AEC9D9F 7277AC53 EE4F9A0F 52EFD435 5F833A79
0x00873280 2A3C6843 C982ACC4 11600A71 04AA8362 F2654E44 09457462 0117D4A0 F21F5A0C
0x008732A0 B52260D4 21358D09 784D965A 0062DE26 94900A81 094065D1 33B34162 E15CB645
0x008732C0 C3241CA2 3A011A7A 20814804 76195CE0 067049C1 93D10A2A 6B06B0E9 967B6C85
引导进程寄存器堆栈为:
0x008732E0 00000001 00000004 0000000A 67EA5572 C53DF566 055EB6CD 04370E04 0C819EB0
Boot Internal (引导内部)状态为:
0x00873300 20000000 6AAF37FF 0CDFD7D2 3B3FFD4F 00000000 00000000 00000000 00000000
0x00873320 00000001 00000000 00000000 00000000 00000000 00000000 00000000 00000000
0x00873340 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
0x00873360 00000000 00000000 00000000 00000000 B588EA1D 1B96BCCC BE3AEB5B D139C6F5
0x00873380 27121466 2C847D0B 4829A026 600E189A AA6F0EBC 5E0083E0 0E01A842 30AC859A
0x008733a0 744B0EC8 92F4108A 8DB3AA98 E457A68E D1474CE7 564083F1 CB41A51C 0C04B26A
0x008733c0 21C8281E D1B94082 D69A2C30 210808CA 1CEC0C10 4290241B 5D1C5285 32EC0820
0x008733e0 D2910D7B DB4C0CA9 D84F0E4D 58142A21 749401F0 44004668 76AB450C 09009992
Boot Table 参数为:
0x00873400 5171EFA7 D3DEFE7E 2F79DECE 0C05CFE FC28CF67 BD7FF21A 679B7EFB 019E59E1
Boot 参数表为:
0x00873680 00000030 0000001E 05024040 00400000 271009C4 08000800 00000000 B005104C
0x008736A0 00010480 01C90000 23200006 23200002 00000000 00000000 00000000 00000000 00000000
0x008736C0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
0x008736E0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
有人可以帮助我了解 PCIe 引导为何无法正常工作吗?
例如、
1) 1)如何对引导日志进行解码?
2) 2) PC 位于0x20b01290。
a) ROM 引导加载程序中对应的源位置是什么?
b)内核等待什么?
非常感谢您的帮助!
谢谢、
Brad