https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1470405/dra821u-about-ospi
器件型号:DRA821U工具/软件:
尊敬的团队:
我们 设计了基于 J7200XSOMXEVM 参考设计的定制电路板。
定制板通过 QSPI (MCU_OSPI)连接到 FRAM (MB85RS4MT)。

在上述电路中、我们将器件树编写如下:
&wkup_pmx0 {
fram_pins_default: fram-default-pins {
pinctrl-single,pins = <
J721E_WKUP_IOPAD(0x0, PIN_OUTPUT, 0) /* (B6) MCU_OSPI0_CLK */
J721E_WKUP_IOPAD(0x2c, PIN_OUTPUT, 0) /* (D6) MCU_OSPI0_CSn0 */
J721E_WKUP_IOPAD(0xc, PIN_INPUT, 0) /* (D8) MCU_OSPI0_D0 */
J721E_WKUP_IOPAD(0x10, PIN_INPUT, 0) /* (C7) MCU_OSPI0_D1 */
J721E_WKUP_IOPAD(0x14, PIN_INPUT, 0) /* (C5) MCU_OSPI0_D2 */
J721E_WKUP_IOPAD(0x18, PIN_INPUT, 0) /* (A5) MCU_OSPI0_D3 */
J721E_WKUP_IOPAD(0x8, PIN_INPUT, 0) /* (B7) MCU_OSPI0_DQS */
J721E_WKUP_IOPAD(0x4, PIN_INPUT, 0) /* (C8) MCU_OSPI0_LBCLKO */
>;
};
};
&ospi0 {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&fram_pins_default>;
mb85rs4mt@0 {
status = "okay";
compatible = "jedec,spi-nor", "fujitsu,mb85rs4mt";
reg = <0x0>;
spi-tx-bus-width = <4>;
spi-rx-bus-width = <4>;
spi-max-frequency = <40000000>;
cdns,tshsl-ns = <60>;
cdns,tsd2d-ns = <60>;
cdns,tchsh-ns = <60>;
cdns,tslch-ns = <60>;
cdns,read-delay = <4>;
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
partition@0 {
label = "fram.data";
reg = <0x00000000 0x000080000>;
};
};
};
};
此外、"board-support/ti-linux-kernel-6.6.32+git-ti-RT/Documentation/devicetree/bindings/EEPROM/at25.yaml"中没有关于与 mb85rq4ml 兼容性的信息。 因此、我们能够通过修改"board-support/ti-linux-kernel-6.6.32+git-ti-RT/drivers/MTD/spi-nor/Fujitsu.c"使其兼容、如下所示。
// SPDX-License-Identifier: GPL-2.0
/*
* Copyright (C) 2005, Intec Automation Inc.
* Copyright (C) 2014, Freescale Semiconductor, Inc.
*/
#include <linux/mtd/spi-nor.h>
#include "core.h"
static const struct flash_info fujitsu_nor_parts[] = {
/* Fujitsu */
{ "mb85rs1mt", INFO(0x047f27, 0, 128 * 1024, 1)
FLAGS(SPI_NOR_NO_ERASE) },
+ { "mb85rq4ml", INFO(0x047f29, 0, 512 * 1024, 1)
+ FLAGS(SPI_NOR_NO_ERASE)
+ NO_SFDP_FLAGS(SPI_NOR_QUAD_READ) },
};
const struct spi_nor_manufacturer spi_nor_fujitsu = {
.name = "fujitsu",
.parts = fujitsu_nor_parts,
.nparts = ARRAY_SIZE(fujitsu_nor_parts),
};
当我们进行这些设置并启动程序时、会显示以下消息、并且程序无法识别 FRAM。
~# dmesg | grep spi [ 0.738259] cadence-qspi 47040000.spi: registered master spi0 [ 0.738292] spi spi0.0: setup mode 0, 8 bits/w, 40000000 Hz max --> 0 [ 0.738857] spi-nor spi0.0: unrecognized JEDEC id bytes: 08 fe 53 0b ff ff [ 0.738884] cadence-qspi 47040000.spi: registered child spi0.0
由于获得的 JEDEC id 与 MB85RS4MT 不同、我们使用示波器检查了以下信号线、发现信号没有变化。
MCU_OSPI0_CLK
MCU_OSPI0_CSn0
MCU_OSPI0_D0
MCU_OSPI0_D1
查看源代码、看起来好像 RDID 命令是从 OSPI 端口发送的、但出于某种原因、我们无法获取信号波形。
你知道什么原因吗?
此外、我想在不使用 FRAM 驱动程序的情况下使用 SPI 驱动程序检查信号、但查看以下论坛、好像 spidev_test 无法与 OSPI 一起使用。
您能告诉我如何调查原因吗?
此致、
Mizutani