Thread 中讨论的其他器件: UNIFLASH
工具/软件:
尊敬的 TI-Team:
一段时间前、我们使用 AM243x 芯片(电路板 A)构建了定制电路板。 我们使用 AM6442芯片(电路板 B)对该电路板进行了新版本。
板载 B 上的 OSPI 引导现在无法运行。 在新电路板上使用了完全相同的闪存、它与 AM243x 配合在电路板 A 上成功测试/使用。 组装好的闪存是一个 Micron MT35XU512ABA1G12-0AAT。
OSPI 闪存通常正常工作。 这意味着在 DEV-Boot 模式下引导并执行基本 SOC 初始化后、我可以使用 OSPI 闪存(如 OSPI 闪存 IO 或 OSPI 闪存诊断)成功执行程序。 我还能够通过修改后的 JTAG uniflash 程序来刷写引导加载程序。
以下是读取的 JEDEC 信息:
{
"flashSize": 67108864,
"flashPageSize": 256,
"flashManfId": "0x2C",
"flashDeviceId": "0x5B1A",
"flashBlockSize": 131072,
"flashSectorSize": 4096,
"cmdBlockErase3B": "0xD8",
"cmdBlockErase4B": "0xDC",
"cmdSectorErase3B": "0x20",
"cmdSectorErase4B": "0x21",
"protos": {
"p111": {
"isDtr": false,
"cmdRd": "0x03",
"cmdWr": "0x02",
"modeClksCmd": 0,
"modeClksRd": 0,
"dummyClksCmd": 0,
"dummyClksRd": 0,
"enableType": "0",
"enableSeq": "0x00",
"dummyCfg": null,
"protoCfg": null,
"strDtrCfg": null
},
"p112": null,
"p114": null,
"p118": {
"isDtr": false,
"cmdRd": "0x7C",
"cmdWr": "0x84",
"modeClksCmd": 0,
"modeClksRd": 1,
"dummyClksCmd": 0,
"dummyClksRd": 7,
"enableType": "0",
"enableSeq": "0x00",
"dummyCfg": null,
"protoCfg": null,
"strDtrCfg": null
},
"p444s": null,
"p444d": null,
"p888s": null,
"p888d": {
"isDtr": false,
"cmdRd": "0x0B",
"cmdWr": "0x12",
"modeClksCmd": 0,
"modeClksRd": 0,
"dummyClksCmd": 8,
"dummyClksRd": 20,
"enableType": "0",
"enableSeq": "0x00",
"dummyCfg": {
"isAddrReg": false,
"cmdRegRd":"0x00",
"cmdRegWr":"0x00",
"cfgReg":"0x00000000",
"shift":0,
"mask":"0x00",
"bitP":0
},
"protoCfg": {
"isAddrReg": false,
"cmdRegRd": "0x00",
"cmdRegWr": "0x00",
"cfgReg": "0x00000000",
"shift": 0,
"mask": "0x00",
"bitP": 0
},
"strDtrCfg": {
"isAddrReg": false,
"cmdRegRd": "0x00",
"cmdRegWr": "0x00",
"cfgReg": "0x00000000",
"shift": 0,
"mask": "0x00",
"bitP": 0
}
},
"pCustom": {
"fxn": null
}
},
"addrByteSupport": "1",
"fourByteAddrEnSeq": "0xA1",
"cmdExtType": "REPEAT",
"resetType": "0x10",
"deviceBusyType": "0",
"cmdWren": "0x06",
"cmdRdsr": "0x05",
"srWip": 0,
"srWel": 0,
"cmdChipErase": "0xC7",
"rdIdSettings": {
"cmd": "0x9F",
"numBytes": 5,
"dummy4": 0,
"dummy8": 0
},
"xspiWipRdCmd": "0x00",
"xspiWipReg": "0x00000000",
"xspiWipBit": 0,
"flashDeviceBusyTimeout": 64000000,
"flashPageProgTimeout": 120
}
但是、引导后、我不会进入 SBL NULL 引导加载程序、也无法在调试 UART 上看到任何消息打印。
我尝试通过直接在 main 中添加`loop_forever ()`来调试 SBL NULL。 但是、我将无法进入循环。 相反,我看到我被困在"奇怪"的地址。


因此、对我来说、芯片的 ROM 代码似乎无法在引导时成功访问 OSPI 闪存。
我是否还有其他调试功能?
是否有任何寄存器等、我可以在哪里找到问题所在?
提前感谢您的帮助或提示!
此致、
Dominik


