Does anyone have experience using the ‘spim’ command ?
In my operation, the auto-detection command is failed.
grmon3> spim flash detect
Got manufacturer ID 0x00 and device ID 0x0000
Could not find matching device!
grmon3> info reg spim0
SPI Memory Controller
0xfff00000 Configuration register 0x02000003
0xfff00004 Control register 0x00000008
0xfff00008 Status register 0x000000c4
0xfff0000c Receive register 0x00000000
0xfff00010 Transmit register 0x00000000
In addition, other commands also failed, such as
grmon3> info reg spim0
SPI Memory Controller
0xfff00000 Configuration register 0x02000003
0xfff00004 Control register 0x00000001
0xfff00008 Status register 0x000000c4
0xfff0000c Receive register 0x00000000
0xfff00010 Transmit register 0x00000000
grmon3> spim tx 0x9F
Core not initialized!
But I can successfully read the device ID value through direct I/O register operations.
grmon3> spim reset
SPIM memory controller has been reset
grmon3> info reg spim0
SPI Memory Controller
0xfff00000 Configuration register 0x02000003
0xfff00004 Control register 0x00000008
0xfff00008 Status register 0x000000c4
0xfff0000c Receive register 0x00000018
0xfff00010 Transmit register 0x00000000
grmon3> wmem 0xfff00004 0x1
grmon3> info reg spim0
SPI Memory Controller
0xfff00000 Configuration register 0x02000003
0xfff00004 Control register 0x00000001 --> enable Chip select (CSN) and User control (USRC)
0xfff00008 Status register 0x000000c4
0xfff0000c Receive register 0x00000018
0xfff00010 Transmit register 0x00000000
grmon3> wmem 0xfff00010 0x9F --> issue read ID command (RDID)
grmon3> info reg spim0
SPI Memory Controller
0xfff00000 Configuration register 0x02000003
0xfff00004 Control register 0x00000001
0xfff00008 Status register 0x000000c5
0xfff0000c Receive register 0x00000000
0xfff00010 Transmit register 0x00000000
grmon3> wmem 0xfff00010 0x00 --> issue dummy byte
grmon3> info reg spim0
SPI Memory Controller
0xfff00000 Configuration register 0x02000003
0xfff00004 Control register 0x00000001
0xfff00008 Status register 0x000000c5
0xfff0000c Receive register 0x00000020 --> 1st Byte, Manufacturer Identification
0xfff00010 Transmit register 0x00000000
grmon3> wmem 0xfff00010 0x00
grmon3> info reg spim0
SPI Memory Controller
0xfff00000 Configuration register 0x02000003
0xfff00004 Control register 0x00000001
0xfff00008 Status register 0x000000c5
0xfff0000c Receive register 0x00000020 --> 2nd Byte, Device Identification: Memory Type
0xfff00010 Transmit register 0x00000000
grmon3> wmem 0xfff00010 0x00
grmon3> info reg spim0
SPI Memory Controller
0xfff00000 Configuration register 0x02000003
0xfff00004 Control register 0x00000001
0xfff00008 Status register 0x000000c5
0xfff0000c Receive register 0x00000018 --> 3rd Byte, Device Identification: Memory Capacity
0xfff00010 Transmit register 0x00000000
grmon3>