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