mirror of
https://github.com/openhwgroup/cvw
synced 2025-02-03 10:15:19 +00:00
moved proposed-sdc
This commit is contained in:
parent
6c0cd5ef20
commit
913a78323c
55
pipelined/src/uncore/sdc/proposed-sdc.txt
Normal file
55
pipelined/src/uncore/sdc/proposed-sdc.txt
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
SD Flash interface
|
||||||
|
|
||||||
|
regsiter map:
|
||||||
|
1. clock divider
|
||||||
|
2. address
|
||||||
|
3. data register
|
||||||
|
4. command register
|
||||||
|
5. size register
|
||||||
|
Number of bytes to read or write.
|
||||||
|
6. status register
|
||||||
|
1. bits 11 to 0: bytes currently in the buffer
|
||||||
|
2. bits 12 to 29: reservered
|
||||||
|
3. bit 30: fault
|
||||||
|
4. bit 31: busy
|
||||||
|
5. bits XLEN-1 to 32: reservered
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
non dma read operation
|
||||||
|
1. write the address regsiter
|
||||||
|
2. write the command register to read
|
||||||
|
3. wait for interrupt or pool on status
|
||||||
|
4. Check status for fault and number of bytes.
|
||||||
|
5. read the data register for 512 bytes. (64 ld, or 128 lw)
|
||||||
|
|
||||||
|
|
||||||
|
non dma write operation
|
||||||
|
1. write address register
|
||||||
|
2. write data register for 512 bytes. (64 sd, or 128 sw)
|
||||||
|
3. write command register to write data to flash
|
||||||
|
4. wait for interrupt or pool on status
|
||||||
|
5. check status for fault and number of bytes written.
|
||||||
|
|
||||||
|
implement dma transfers later
|
||||||
|
|
||||||
|
|
||||||
|
interrupts
|
||||||
|
1. operation done
|
||||||
|
2. bus error (more of an exception)
|
||||||
|
Occurs if attempting to do an operation while the flash controller is busy.
|
||||||
|
ie. if status[31] is set generate an interrupt
|
||||||
|
This is tricky in a multiprocessor environment.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
tasks
|
||||||
|
1. [-] Remove all AFRL identifiers
|
||||||
|
2. [X] get the existing sdc compiled on wally.
|
||||||
|
1. [X] use wally primatives over tcore's
|
||||||
|
3. build abhlite interface with the above registers and necessary fsm.
|
||||||
|
1. [ ] The sd card reader uses a 4 bit data interface. We can change this to be something
|
||||||
|
more pratical.
|
||||||
|
4. write test programs
|
||||||
|
5. [X] Convert VHDL to system verilog
|
Loading…
Reference in New Issue
Block a user