Page 1 of 4
PCXT Core Access to Secondary SD Card
Posted: Sat Feb 25, 2023 4:21 pm
by kitune-san
I created a test branch to access a secondary SD card from the PCXT core.
The SD card can be used by setting the "MMC" option in the OSD menu to "Enable" and performing a reset.
SD card works as a secondary IDE(KFMMCIDE00000).
Note that this is a test branch.
I am testing with a 2GB SDSC and do not know if other devices will work properly.
I would recommend making a backup before testing.
https://github.com/kitune-san/PCXT_MiST ... mmc_access
- 2023-02-26 011723.png (34.49 KiB) Viewed 17570 times
- 2023-02-26 011457.png (106.22 KiB) Viewed 17570 times
Re: PCXT Core Access to Secondary SD Card
Posted: Sat Feb 25, 2023 7:04 pm
by spark2k06
kitune-san wrote: ↑Sat Feb 25, 2023 4:21 pm
I created a test branch to access a secondary SD card from the PCXT core.
The SD card can be used by setting the "MMC" option in the OSD menu to "Enable" and performing a reset.
SD card works as a secondary IDE(KFMMCIDE00000).
Note that this is a test branch.
I am testing with a 2GB SDSC and do not know if other devices will work properly.
I would recommend making a backup before testing.
https://github.com/kitune-san/PCXT_MiST ... mmc_access
PCXT_MMC_TEST.zip
2023-02-26 011723.png
2023-02-26 011457.png
Thank you! I'll definitely try it out as soon as I have some time.
Re: PCXT Core Access to Secondary SD Card
Posted: Sat Feb 25, 2023 9:35 pm
by Mills
kitune-san wrote: ↑Sat Feb 25, 2023 4:21 pm
I created a test branch to access a secondary SD card from the PCXT core.
The SD card can be used by setting the "MMC" option in the OSD menu to "Enable" and performing a reset.
SD card works as a secondary IDE(KFMMCIDE00000).
Note that this is a test branch.
I am testing with a 2GB SDSC and do not know if other devices will work properly.
I would recommend making a backup before testing.
https://github.com/kitune-san/PCXT_MiST ... mmc_access
PCXT_MMC_TEST.zip
2023-02-26 011723.png
2023-02-26 011457.png
Thanks, great job.
Re: PCXT Core Access to Secondary SD Card
Posted: Sun Feb 26, 2023 1:38 am
by kitune-san
The secondary SD port of the MiSTer does not have a pull-up resistor, so the FPGA's internal pull-up resistor is enabled.
The clock of the SD card is running at 0.5 MHz because of the high resistance of the internal pull-up resistor.
- 2023-02-25 014352.png (35.1 KiB) Viewed 17308 times
If we could connect a pull-up resistor of about 10kΩ, similar to the primary SD card, secandary sd could run it a bit faster.
- de0-nano-sd-socket.png (109.18 KiB) Viewed 17308 times
Re: PCXT Core Access to Secondary SD Card
Posted: Sun Feb 26, 2023 8:08 am
by spark2k06
I've been testing it... generally speaking it works well. But I think there is some problem in the write, in relation to performance or some kind of command.
For example, I have a 16Gb card with a 512Mb partition and various content. I have observed slowness when writing or deleting a file... then I have tried with another 2Gb card, also with 512Mb partition and it works fine, apparently... because entering the FDISK and trying to do some operation from there, it has been hung in the section of creating a partition.
You will tell us something about it, at the moment, I will be doing the port of this development to the ZXUno, so that it works directly with the SD, instead of serdrive... I will tell you the results.
Re: PCXT Core Access to Secondary SD Card
Posted: Sun Feb 26, 2023 8:15 am
by Bas
512 MB is cutting it quite close to being an astronomically humongous hard drive for an XT. Are you sure the BIOS handles its geometry correctly? That said, FDISK hardly does anything at all I/O wise so that should be fast to complete.
Re: PCXT Core Access to Secondary SD Card
Posted: Sun Feb 26, 2023 9:56 am
by kitune-san
I will investigate the cause of the problem. It will take time to resolve the issue.
Re: PCXT Core Access to Secondary SD Card
Posted: Sun Feb 26, 2023 10:01 am
by kitune-san
spark2k06 wrote: ↑Sun Feb 26, 2023 8:08 am
I will be doing the port of this development to the ZXUno, so that it works directly with the SD, instead of serdrive... I will tell you the results.
If pull-up is connected to the SD ports of the ZXUno, try the following changes.
It may improve the access speed.
- 2023-02-26 185822.png (30.73 KiB) Viewed 17179 times
Re: PCXT Core Access to Secondary SD Card
Posted: Sun Feb 26, 2023 11:14 am
by spark2k06
kitune-san wrote: ↑Sun Feb 26, 2023 10:01 am
spark2k06 wrote: ↑Sun Feb 26, 2023 8:08 am
I will be doing the port of this development to the ZXUno, so that it works directly with the SD, instead of serdrive... I will tell you the results.
If pull-up is connected to the SD ports of the ZXUno, try the following changes.
It may improve the access speed.
2023-02-26 185822.png
When I get to the TOP file, I have seen that in ZXUno we only have the following signals available:
Code: Select all
# SD/MMC
NET "sd_cs_n" LOC="P59" | IOSTANDARD = LVCMOS33;
NET "sd_clk" LOC="P75" | IOSTANDARD = LVCMOS33;
NET "sd_mosi" LOC="P74" | IOSTANDARD = LVCMOS33;
NET "sd_miso" LOC="P78" | IOSTANDARD = LVCMOS33;
- SDCard ZXUno.png (12.14 KiB) Viewed 17137 times
Would it be necessary to make an intermediate module for SPI usage?
Re: PCXT Core Access to Secondary SD Card
Posted: Sun Feb 26, 2023 11:17 am
by spark2k06
Okay, I see that I have to use this module:
- SPI.png (18.35 KiB) Viewed 17134 times
Let me see if I understand how to hook the signals to it, because the module has others as well.
Re: PCXT Core Access to Secondary SD Card
Posted: Sun Feb 26, 2023 11:24 am
by kitune-san
sd_clk=SDIO_CLK
sd_mosi=SDIO_CMD
sd_miso=SDIO_DATA0
DAT1-3=HIGH
Re: PCXT Core Access to Secondary SD Card
Posted: Sun Feb 26, 2023 11:27 am
by kitune-san
Sorry, I do not maintain the SPI module, so I cannot give you proper advice at this time.
Re: PCXT Core Access to Secondary SD Card
Posted: Sun Feb 26, 2023 11:30 am
by spark2k06
kitune-san wrote: ↑Sun Feb 26, 2023 11:27 am
Sorry, I do not maintain the SPI module, so I cannot give you proper advice at this time.
All right, don't worry. Thanks
Re: PCXT Core Access to Secondary SD Card
Posted: Sun Feb 26, 2023 11:39 am
by kitune-san
If this point is 3.3V, then the same module as the MiSTer should be available.
- 2023-02-26 203820.png (135.8 KiB) Viewed 17087 times
Re: PCXT Core Access to Secondary SD Card
Posted: Sun Feb 26, 2023 11:51 am
by spark2k06
kitune-san wrote: ↑Sun Feb 26, 2023 11:39 am
If this point is 3.3V, then the same module as the MiSTer should be available.
2023-02-26 203820.png
In the original ZXUno project it is as you see it... in other projects I have seen, they are not connected to anything... not even to resistors.
I don't really know why.
https://zxuno.speccy.org/ficheros/zxuno_v41_sch.pdf
By the way, this synthesized fine... but now I don't have time to test if it works, I'll let you know:
Code: Select all
... output reg SD_n_CS = 1,
//
/////////////////////// MMC ///////////////////////
//
wire mmc_clk;
wire mmc_cmd_in;
wire mmc_cmd_out;
wire mmc_cmd_io;
wire mmc_dat_in;
wire mmc_dat_out;
wire mmc_dat_io;
assign SD_CK = mmc_clk;
assign SD_DI = (~mmc_cmd_io & ~mmc_cmd_out) ? 1'b0 : 1'bz;
assign mmc_cmd_in = SD_DI;
assign mmc_dat_in = (~mmc_dat_io & ~mmc_dat_out) ? 1'b0 : 1'bz;
assign SD_DO = mmc_dat_in;
Re: PCXT Core Access to Secondary SD Card
Posted: Sun Feb 26, 2023 11:57 am
by kitune-san
spark2k06 wrote: ↑Sun Feb 26, 2023 11:51 am
kitune-san wrote: ↑Sun Feb 26, 2023 11:39 am
If this point is 3.3V, then the same module as the MiSTer should be available.
2023-02-26 203820.png
In the original ZXUno project it is as you see it... in other projects I have seen, they are not connected to anything... not even to resistors.
I don't really know why.
https://zxuno.speccy.org/ficheros/zxuno_v41_sch.pdf
I saw the artwork.
https://zxuno.speccy.org/ficheros/zxuno_v41_pcb.pdf
It seems to be connected to 3.3V, so I don't see a problem.
- 2023-02-26 205418.png (88.25 KiB) Viewed 17044 times
Re: PCXT Core Access to Secondary SD Card
Posted: Sun Feb 26, 2023 11:59 am
by kitune-san
Re: PCXT Core Access to Secondary SD Card
Posted: Sun Feb 26, 2023 12:00 pm
by spark2k06
ZXUno+:
- ZXUno+.png (9.63 KiB) Viewed 17035 times
Re: PCXT Core Access to Secondary SD Card
Posted: Mon Feb 27, 2023 11:22 am
by kitune-san
Apparently, according to my research, MMC's DAT1-7 is pulled up inside the card.
Probably the same for SD cards.
Re: PCXT Core Access to Secondary SD Card
Posted: Mon Feb 27, 2023 12:17 pm
by kitune-san
spark2k06 wrote: ↑Sun Feb 26, 2023 8:08 am
... because entering the FDISK and trying to do some operation from there, it has been hung in the section of creating a partition.
ATA Command 0x40 was incorrectly implemented.
This is probably why fdisk stops.
Re: PCXT Core Access to Secondary SD Card
Posted: Mon Feb 27, 2023 1:10 pm
by spark2k06
Ok, when it's fixed I'll try it... no hurry. I have not yet been able to test in conditions the implementation of the SPI signals, it is not working for me but I have not been able to debug it yet... to make things easier, I have created a branch that starts from yours for its implementation in MiSTer:
https://github.com/MiSTer-devel/PCXT_Mi ... access_spi
To make use of the SPI signals as it is done for example in the OndraSPO186 core:
https://github.com/MiSTer-devel/OndraSPO186_MiSTer
Code: Select all
//SD-SPI
output SD_SCK,
output SD_MOSI,
input SD_MISO,
output SD_CS,
input SD_CD,
Here you can see that similar signals are used regarding to ZXUno. But I have not yet been able to check how the PULLUP, clocks and other related issues are set. If I can, I'll prepare it in a moment, and if it doesn't work I'll let you know and see if you can keep an eye on it.
Re: PCXT Core Access to Secondary SD Card
Posted: Mon Feb 27, 2023 3:05 pm
by kitune-san
I upload modified version of the Verify command.
The write speed took 17ms per 512bytes on my chip (SDSC 2GB).
512/17ms = 30kByte/s.
If clock speed could be increased, I think it could be improved a little more.
- 20230227-0002_01.png (91.72 KiB) Viewed 16646 times
Re: PCXT Core Access to Secondary SD Card
Posted: Mon Feb 27, 2023 3:13 pm
by kitune-san
I believe that native mode (same implementation as MiSTer) can be used with ZXUno without the need to implement SPI.
I will look for ZXUno to see if I can buy it (and deliver it to Japan).
Re: PCXT Core Access to Secondary SD Card
Posted: Mon Feb 27, 2023 3:21 pm
by spark2k06
During the week I will have very little time, but later I will share the ZXUno project (well, actually I am testing with a clone of it, the UnoXT), to see if, despite being a xilinx project, I can... you see something that I don't see regarding the allocation of the SD signals nothing else....
Re: PCXT Core Access to Secondary SD Card
Posted: Mon Feb 27, 2023 4:54 pm
by spark2k06
kitune-san wrote: ↑Mon Feb 27, 2023 3:13 pm
I believe that native mode (same implementation as MiSTer) can be used with ZXUno without the need to implement SPI.
I will look for ZXUno to see if I can buy it (and deliver it to Japan).
Here would be the commit of changes related to the KFMMC implementation, so you can look only at the changes, and nothing else, to focus on them. It synthesizes, but the unit is not recognized by XTIDE, it remains to debug in depth... but maybe you can provide me some clue:
https://github.com/spark2k06/PCXT_ZXUno ... 758fa4f151
The technical features of this improved but compatible ZXUno clone:
https://gitlab.com/emax73g/unoxt-hardwa ... ain/scheme
Originally, the signals in the UCF file are defined as follows:
Code: Select all
NET 'sd_cs0_n_o' LOC='E16' |IOSTANDARD = LVTTL;
NET 'sd_sclk_o' LOC='F16' |IOSTANDARD = LVTTL;
NET 'sd_mosi_o' LOC='F15' |IOSTANDARD = LVTTL;
NET 'sd_miso_i' LOC='G14' |IOSTANDARD = LVTTL |PULLUP;
I have also tried assigning PULLUP to the sd_mosi_o signal, but with the same result.
Re: PCXT Core Access to Secondary SD Card
Posted: Mon Feb 27, 2023 11:58 pm
by kitune-san
Thanks for the information.
The port input/output settings need to be reviewed.
In native mode change some ports to inout.
I will write down the specific changes after I finish today's work.
Re: PCXT Core Access to Secondary SD Card
Posted: Tue Feb 28, 2023 4:45 am
by spark2k06
kitune-san wrote: ↑Mon Feb 27, 2023 11:58 pm
Thanks for the information.
The port input/output settings need to be reviewed.
In native mode change some ports to inout.
I will write down the specific changes after I finish today's work.
Okay, thank you. However, even if the SD reading does not work. XTIDE should not show at least the KFMMCIDE identifier? This is provided by the IDE module...but even that is not shown. Which leads me to think that in addition, something else I have not taken into account in the port.
By the way, I had to convert the KFMMC implementation from SystemVerilog to Verilog with an application, for compatibility with ISE Xilinx... just in case something has been converted incorrectly.
Re: PCXT Core Access to Secondary SD Card
Posted: Tue Feb 28, 2023 4:51 am
by kitune-san
At this time, if the SD card is not recognized, the KFMMCIDE identifier will not be displayed.
I'm busy and will continue later.
Re: PCXT Core Access to Secondary SD Card
Posted: Tue Feb 28, 2023 4:57 am
by spark2k06
kitune-san wrote: ↑Tue Feb 28, 2023 4:51 am
At this time, if the SD card is not recognized, the KFMMCIDE identifier will not be displayed.
I'm busy and will continue later.
Understood, thanks for the information.
Re: PCXT Core Access to Secondary SD Card
Posted: Tue Feb 28, 2023 7:06 am
by spark2k06
kitune-san wrote: ↑Mon Feb 27, 2023 3:05 pm
I upload modified version of the Verify command.
PCXT_MMC_TEST_2.zip
The write speed took 17ms per 512bytes on my chip (SDSC 2GB).
512/17ms = 30kByte/s.
If clock speed could be increased, I think it could be improved a little more.
20230227-0002_01.png
Despite that performance during writing, it seems that at least there are no more problems in writing on my 16Gb card with 512Mb partition. However, in addition to continuing the hang problem in FDISK, it also seems to hang during a performance test with CheckIT3 (at 4.77MHz):
- KFMMC-IDE_01.png (46.11 KiB) Viewed 17081 times
After waiting a long time, this is the result:
- KFMMC-IDE_02.png (77.04 KiB) Viewed 17081 times
And now let's compare it with the IDE integrated in the Main of MiSTer:
- MiSter-IDE.png (78.67 KiB) Viewed 17081 times
In any case, for other FPGAs, I still think that in the current state this is already much better than dealing with serdrive, especially at the basic user level .