Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Figure out storage (probably SPI mode sdcard is best option?) #6

Open
mithro opened this issue Apr 12, 2017 · 2 comments
Open

Figure out storage (probably SPI mode sdcard is best option?) #6

mithro opened this issue Apr 12, 2017 · 2 comments

Comments

@mithro
Copy link
Member

mithro commented Apr 12, 2017

As Linux really needs storage, so we need to figure out the storages stuff.

Most of the boards have microsd card slots. However, we don't have any gateware which works with the sdcard slot yet.

However, we don't have any gateware on the FPGA side at the moment. There is a SPI master core in MiSoC -- maybe that could be used? There was the sdcard test stuff @enjoy-digital published at https://github.com/enjoy-digital/sdcard_test

@mithro
Copy link
Member Author

mithro commented Apr 12, 2017

See also the QEMU issue at timvideos/qemu-litex#17

@mithro
Copy link
Member Author

mithro commented Apr 15, 2017

Bit Banging SPI SD Card support


	mmcflash_bitbang_out: gpio-controller@e0015000 {
		compatible = "basic-mmio-gpio", "wd,mbl-gpio";
		reg = <0xe0015000 0x4>;
		#gpio-cells = <2>;
		ngpios = <3>;
		gpio-line-names = "SPI MOSI", "SPI SCLK", "SPI CS_N";
		gpio-controller;
		reg-names = "dat";
		big-endian;
	};
	mmcflash_bitbang_in: gpio-controller@e0015004 {
		compatible = "basic-mmio-gpio", "wd,mbl-gpio";
		reg = <0xe0015004 0x4>;
		#gpio-cells = <2>;
		ngpios = <1>;
		gpio-line-names = "SPI MISO";
		gpio-controller;
		reg-names = "dat";
		no-output;
		big-endian;
	};
	mmcflash_bitbang_en: gpio-controller@e0015008 {
		compatible = "basic-mmio-gpio", "wd,mbl-gpio";
		reg = <0xe0015008 0x4>;
		#gpio-cells = <2>;
		ngpios = <1>;
		gpio-line-names = "SPI BitBang EN";
		gpio-controller;
		reg-names = "dat";
		big-endian;

		mmc_bitbang_en {
			gpio-hog;
			gpios = <0 0>;
			output-high;
		};
	};

        mmc-spi {
                compatible = "spi-gpio";
                #address-cells = <0x1>;
                ranges;

                gpio-mosi =	<&mmcflash_bitbang_out 0 0>;	// 0x01 on reg0
                gpio-sck =	<&mmcflash_bitbang_out 1 0>;	// 0x02 on reg0
                cs-gpios = 	<&mmcflash_bitbang_out 2 0>;	// 0x03 on reg0
                gpio-miso = 	<&mmcflash_bitbang_in  0 0>;	// 0x01 on reg1
                num-chipselects = <1>;

                /* clients */
		mmc-slot@0 {
			compatible = "fsl,mpc8323rdb-mmc-slot",
				     "mmc-spi-slot";
			reg = <0>;
			//gpios = <&qe_pio_d 14 1
			//	 &qe_pio_d 15 0>;	// card detect, write protect
			voltage-ranges = <3300 3300>;
			spi-max-frequency = <50000000>;
			no-sdio;
			no-sd;
			//interrupts = <42>;
			//interrupt-parent = <&PIC>;
			mmccard: mmccard@0 {
				reg = <0>;
				compatible = "mmc-card";
			};
		};
        };
mmc_spi spi32765.0: spi_bitbang_setup, 2500 nsec/bit
mmc_spi spi32765.0: setup mode 0, 8 bits/w, 400000 Hz max --> 0
mmc0: req done (CMD9): 0: 00000000 00000000 00000000 00000000
mmc0:     16 bytes transferred: 0
mmc0: clock 50000000Hz busmode 2 powermode 2 cs 1 Vdd 21 width 1 timing 0
mmc_spi spi32765.0: spi_bitbang_setup, 20 nsec/bit
mmc_spi spi32765.0: setup mode 0, 8 bits/w, 50000000 Hz max --> 0
mmc_spi spi32765.0: mmc_spi:  clock to 50000000 Hz, 0
mmc0: new MMC card on SPI
mmcblk0: mmc0:0001 QEMU!32.0 MiB 
drivers/tty/serial/uart-litex.c litex_uart_start_tx
mmc0: starting CMD13 arg 00000000 flags 00000195
mmc_spi spi32765.0:   mmc_spi: CMD13, resp R2/R5
ssi_sd: NULL command
bitbang_ssi: transfer(ff) -> ff
bitbang_ssi: transfer(4d) -> ff

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant