工具/软件:
尊敬的专家:
客户当前将 64MB 的 NOR 闪存连接到 AM4378 的 QSPI、并在其中运行 Uboot、内核和根文件系统。
问:QSPI 的闪存容量可以有多大?
是否不能支持超过 64MB 的内存? 如果有方法、请告诉我。
检查存储器映射时、QSPI CS0 的大小为 64MB。
此致、
正常
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
您好、哦、
是的、感谢您在此处提交、您应该能够将大于 64MB 的器件与 SDK v9.x 的 Linux 内核部分搭配使用:
$ git log -1 e97f491450805fe6cbfd482b97b5427b21dec575 commit e97f491450805fe6cbfd482b97b5427b21dec575 Author: Jean Pihet <jean.pihet@newoldbits.com> Date: Tue Jan 14 13:41:24 2020 +0100 spi: spi-ti-qspi: support large flash devices The TI QSPI IP has limitations: - the MMIO region is 64MB in size - in non-MMIO mode, the transfer can handle 4096 words max. Add support for bigger devices. Use MMIO and DMA transfers below the 64MB boundary, use software generated transfers above. Signed-off-by: Jean Pihet <jean.pihet@newoldbits.com> Cc: Ryan Barnett <ryan.barnett@rockwellcollins.com> Cc: Conrad Ratschan <conrad.ratschan@rockwellcollins.com> Cc: Arnout Vandecappelle <arnout.vandecappelle@essensium.com> Link: lore.kernel.org/.../20200114124125.361429-2-jean.pihet@newoldbits.com Signed-off-by: Mark Brown <broonie@kernel.org>
此致、Andreas
尊敬的 Andreas:
感谢您的答复。
我还有一个问题。
问:该链接显示 2020 年、但它是否仍适用于 Linux SDK v06.03.00.106?
例如、我们能否通过 将下面 Kernel6.1.y 的附加部分 (ti_QSPI_ADJUST_OP_SIZE) 添加到 Kernel4.19.y 来解决该问题 ?
static int ti_qspi_adjust_op_size(struct spi_mem *mem, struct spi_mem_op *op) { struct ti_qspi *qspi = spi_controller_get_devdata(mem->spi->master); size_t max_len; if (op->data.dir == SPI_MEM_DATA_IN) { if (op->addr.val < qspi->mmap_size) { /* Limit MMIO to the mmaped region */ if (op->addr.val + op->data.nbytes > qspi->mmap_size) { max_len = qspi->mmap_size - op->addr.val; op->data.nbytes = min((size_t) op->data.nbytes, max_len); } } else { /* * Use fallback mode (SW generated transfers) above the * mmaped region. * Adjust size to comply with the QSPI max frame length. */ max_len = QSPI_FRAME; max_len -= 1 + op->addr.nbytes + op->dummy.nbytes; op->data.nbytes = min((size_t) op->data.nbytes, max_len); } }
他们不确定这将如何影响 QSPI 引导和速度、因此他们确实计划在实际器件上进行检查。
此致、
正常
嗨、O.H
[引述 userid=“402494" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1519750/am4378-maximum-capacity-that-can-be-connected-to-qspi/5870509 #5870509“] 问:该链接显示 2020 年、但它是否仍适用于 Linux SDK v06.03.00.106?内核 v4.19 相当旧、我们不能通过 E2E 随时支持它。 但如果我看一下 git 历史记录, 前面讨论过的最旧的内核是内核 v5.10。 所以似乎不会太难将从内核 v5.10 到内核 v4.19 的更改反向移植,因为内核的这个子系统中的总体增量很可能很小。 我认为最好的方法就是试一试。 如果您遇到任何问题、请告诉我。
他们不确定这将如何影响 QSPI 引导和速度、因此他们确实计划在实际器件上进行检查。
是的、访问大于 64MB 边界的 SPI 内容似乎会有一些影响。 请尝试获取这些反馈并分享它、我很好奇地想看看自己会有什么现实世界的影响、而这不是因为缺少硬件而可以自行测试的结果。
此致、Andreas