Commit graph

99 commits

Author SHA1 Message Date
Jack Halpin
4b0c43da8f sd-as3525v2.c Organize construction of MCI_COMMAND so it is more apparent which bits are being set and why.
I have also made the CMD_CHECK_CRC_BIT unused for now since we do not check any response crc values yet.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25343 a1c6a512-1295-4272-9138-f99709370657
2010-03-26 17:00:25 +00:00
Jack Halpin
9d9c090cba sd-as3525v2.c Implement HS timings for those cards that are capable.
The internal card does not appear to be HS capable, at least not in 2GB clip+

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25316 a1c6a512-1295-4272-9138-f99709370657
2010-03-24 05:41:33 +00:00
Jack Halpin
0466a11028 sd-as3525v2.c Don't reset controller on every pass through the transfer loop.
The controller only needs to be reset if we had an error to clean up any leftover trash...

Move comment pertaining to retry variable so it's actually nearby.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25315 a1c6a512-1295-4272-9138-f99709370657
2010-03-24 05:41:25 +00:00
Jack Halpin
66f011e8c1 sd-as3525v2.c Adjust comments for MCI_INT bits to show if they are related to CMD, DATA, or a termination signal.
Adjust the initial MCI_MASK value to also mask the MCI_INT_RXDR and MCI_INT_TXDR bits as it seems we don't use them for dma transfers.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25314 a1c6a512-1295-4272-9138-f99709370657
2010-03-24 02:48:38 +00:00
Jack Halpin
19fc7297ba SansaAMSv2: Give register CGU_BASE + 0x3C the name CGU_SDSLOT.
Move CLKDIV macros into clock-target.h.
Only enable the necessary interfaces for the 3 clock registers used for SD.
Add MEMSTICK and SDSLOT registers to bottom of register display in View HW info debug page.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25309 a1c6a512-1295-4272-9138-f99709370657
2010-03-23 17:00:59 +00:00
Rafaël Carré
1657174561 sd-as3525v2: read cid & csd in the correct order, fix disk info
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25292 a1c6a512-1295-4272-9138-f99709370657
2010-03-22 12:12:09 +00:00
Jack Halpin
beaa292199 sd-as3525v2.c We don't need to disable/enable MCI_CLKENA in send_cmd().
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25286 a1c6a512-1295-4272-9138-f99709370657
2010-03-22 06:09:19 +00:00
Jack Halpin
2a75da37ae sd-as3525v2.c Enable disk access icon.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25285 a1c6a512-1295-4272-9138-f99709370657
2010-03-22 06:09:14 +00:00
Jack Halpin
d2a264e7da sd-as3525v2.c Use MCI_MASK instead of data_transfer flag to determine if data transfer is happening.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25284 a1c6a512-1295-4272-9138-f99709370657
2010-03-22 06:09:08 +00:00
Jack Halpin
3ee301248d sd-as3525v2.c Add macros to distinguish between a CMD error and a DATA error.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25283 a1c6a512-1295-4272-9138-f99709370657
2010-03-22 02:30:00 +00:00
Jack Halpin
48b8080330 sd-as3525v2 Remove post transfer wait for state call and move pre transfer wait for state call inside the transfer loop.
We don't need the post transfer call this way.  We check on TRAN state before each partial transfer.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25282 a1c6a512-1295-4272-9138-f99709370657
2010-03-22 02:29:53 +00:00
Jack Halpin
6357c5a085 sd-as3525v2.c Use SD_DESELECT_CARD instead of SD_SELECT_CARD to make the code easier to understand. There is no functional difference.
Add comment to explain why we need to do this.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25281 a1c6a512-1295-4272-9138-f99709370657
2010-03-22 02:29:40 +00:00
Jack Halpin
da325b6270 sd-as3525v2.c: Correct SD_APP_OP_COND command to send full voltage range for v1 SD cards.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25266 a1c6a512-1295-4272-9138-f99709370657
2010-03-21 06:49:42 +00:00
Jack Halpin
f1d9491e9c sd-as3525v2.c: Only manipulate MCI_CLKENA for drive being used.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25265 a1c6a512-1295-4272-9138-f99709370657
2010-03-21 06:10:44 +00:00
Rafaël Carré
004317a863 sd-as3525v2: correctly check send_cmd return value (which is boolean)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25246 a1c6a512-1295-4272-9138-f99709370657
2010-03-18 16:40:21 +00:00
Jack Halpin
016153a0b9 SansaAMSv2: Add support for uSD cards to sd-as3525v2.c and activate hotswap and multidrive.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25245 a1c6a512-1295-4272-9138-f99709370657
2010-03-18 13:25:13 +00:00
Rafaël Carré
fb6a5431f2 sd-as3525v2: sd_get_info() is already in common SD code
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25243 a1c6a512-1295-4272-9138-f99709370657
2010-03-18 10:29:13 +00:00
Rafaël Carré
ba68f2dedd sd-as3525v2: add card hotswap to sd_thread
Clip+: add (disabled) configuration for µSD slot

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25194 a1c6a512-1295-4272-9138-f99709370657
2010-03-15 02:36:16 +00:00
Rafaël Carré
72e0bf3381 sd-as3525v2: prepare for multidrive builds
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25193 a1c6a512-1295-4272-9138-f99709370657
2010-03-15 01:57:15 +00:00
Rafaël Carré
ade669f0e7 sd-as3525v2: reduce the delay before reading response
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25189 a1c6a512-1295-4272-9138-f99709370657
2010-03-15 00:36:08 +00:00
Rafaël Carré
db7aedf93a sd-as3525v2: do not reverse 2 times long responses, read them directly in the needed order
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25184 a1c6a512-1295-4272-9138-f99709370657
2010-03-14 21:38:36 +00:00
Rafaël Carré
291e2b1ae6 sd-as3525v2: delay a bit before reading the command response
Especially when using caches we might read the response too fast and get
the response for the previous command instead.

Now Clip+ boots fine with both instruction & data caches enabled, the
delay might need to be lowered though: boot time is a bit longer.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25183 a1c6a512-1295-4272-9138-f99709370657
2010-03-14 21:38:30 +00:00
Jack Halpin
a872587a8d sd-as3525v2: Load CID info to cardinfo.cid[] correctly.
SD_ALL_SEND_CID was using cardinfo.cid to store the response instead of the temp array used for long responses.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24944 a1c6a512-1295-4272-9138-f99709370657
2010-02-27 17:07:54 +00:00
Jack Halpin
d95211a23d sd-as3525v2: Controller and card init much more reliably now.
Remove MCI_HCON read from init_controller() as it now appears unneccesary.
Make sd-init_card() use similar init sequence to the one in sd-as3525.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24903 a1c6a512-1295-4272-9138-f99709370657
2010-02-25 06:46:16 +00:00
Michael Chicoine
b6033c9aa0 Revert r24898 and fix yellow properly so that register is still read
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24899 a1c6a512-1295-4272-9138-f99709370657
2010-02-25 00:02:58 +00:00
Michael Chicoine
abacbbda6c Comment out unused variable (fix yellow)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24898 a1c6a512-1295-4272-9138-f99709370657
2010-02-24 23:22:19 +00:00
Jack Halpin
241abf4bc5 sd-as3525v2.c: Correct some #defines, add comments, attempt to lower sd frequency to 400 khz during init.
I've left in some commented out code for now as this is still a bit experimental.....

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24891 a1c6a512-1295-4272-9138-f99709370657
2010-02-24 20:24:48 +00:00
Jack Halpin
1c09c037f9 sd-as3525v2: Add some register bit descriptions.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24872 a1c6a512-1295-4272-9138-f99709370657
2010-02-23 21:31:54 +00:00
Rafaël Carré
8ca62f32aa sd-as3525v2: correct CGU_MEMSTICK setting, shift divider
Add a note about the unknown clock register

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24869 a1c6a512-1295-4272-9138-f99709370657
2010-02-23 07:08:33 +00:00
Rafaël Carré
0af879c21a sd-as3525v2: unaligned transfers are handled properly (with memcpy)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24866 a1c6a512-1295-4272-9138-f99709370657
2010-02-23 01:00:21 +00:00
Rafaël Carré
355f38d30a sd-as3525v2: use an uncached buffer, disable write for the moment
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24858 a1c6a512-1295-4272-9138-f99709370657
2010-02-22 10:02:20 +00:00
Rafaël Carré
21ac9d23d0 sd-as3525v2: working bootloader
check all error bits
only signal wakeup on data transfers, not on commands
trim down send_cmd

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24851 a1c6a512-1295-4272-9138-f99709370657
2010-02-22 07:31:45 +00:00
Rafaël Carré
31eda59720 as3525v2: build normal firmware properly (Clipv2/+)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24840 a1c6a512-1295-4272-9138-f99709370657
2010-02-22 02:42:58 +00:00
Rafaël Carré
a012b185ac sd-as3525v2: working transfers, still awfully slow
not touching MCI_CTYPE (leaving bus width to 1) gives data transfers
ignore the hardware locked up while error bit for now
remove printf() helper & debug code

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24838 a1c6a512-1295-4272-9138-f99709370657
2010-02-22 02:42:46 +00:00
Rafaël Carré
1ae6307a5a sd-as3525v2: panic in case of error in the isr
Disable errors on response timeout since it can happen on SD_SEND_IF_COND
Disable errors on start bit error : it's ignored by the linux driver

No panic on my side with those 2 bits unchecked, but no transfer
completion either.
Note: the Linux driver doesn't implement DMA

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24837 a1c6a512-1295-4272-9138-f99709370657
2010-02-21 22:49:57 +00:00
Rafaël Carré
c6af5c962d sd-as3525v2: describe interrupt mask bits
Reset DMA before transfers and check data transfer over bit in isr
Still no error or data transfer over conditions

Read the correct status register in isr : there is a masked interrupt
status register and a general status register

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24836 a1c6a512-1295-4272-9138-f99709370657
2010-02-21 22:49:53 +00:00
Rafaël Carré
e9cd0f1c7a sd-as3525v2: no limits on the amount of sectors to transfer
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24832 a1c6a512-1295-4272-9138-f99709370657
2010-02-21 22:01:37 +00:00
Rafaël Carré
f857fe1450 sd-as3525v2: MCI_HCON bits
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24831 a1c6a512-1295-4272-9138-f99709370657
2010-02-21 22:01:33 +00:00
Rafaël Carré
95f063cc6f sd-as3525v2: MCI_FIFOTH bits
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24830 a1c6a512-1295-4272-9138-f99709370657
2010-02-21 22:01:29 +00:00
Rafaël Carré
ad7d84d315 sd-as3525v2: command register bits
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24829 a1c6a512-1295-4272-9138-f99709370657
2010-02-21 22:01:23 +00:00
Rafaël Carré
d19705f7fc sd-as3525v2: name interrupt bits (no description yet)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24828 a1c6a512-1295-4272-9138-f99709370657
2010-02-21 22:01:18 +00:00
Rafaël Carré
ceae8748b8 sd-as3525v2: describe CTYPE bit
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24827 a1c6a512-1295-4272-9138-f99709370657
2010-02-21 22:01:13 +00:00
Rafaël Carré
4be56226c1 sd-as3525v2: detail MCI_CTRL bits
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24826 a1c6a512-1295-4272-9138-f99709370657
2010-02-21 22:01:09 +00:00
Rafaël Carré
48ed5ad66e as3525v2: full list of registers + description
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24825 a1c6a512-1295-4272-9138-f99709370657
2010-02-21 22:01:05 +00:00
Rafaël Carré
9f228d7662 as3525v2: use CGU_BASE instead of hardcoded address for unknown register
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24737 a1c6a512-1295-4272-9138-f99709370657
2010-02-17 23:27:31 +00:00
Rafaël Carré
04fef58210 as3525v2: make clear the SD code is debug only and display a message
comment out printing of registers in the isr

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24736 a1c6a512-1295-4272-9138-f99709370657
2010-02-17 23:09:56 +00:00
Rafaël Carré
1e6847db75 Sansa AMS AS3525v2 SD: remove a case which is never run
Reindent

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24552 a1c6a512-1295-4272-9138-f99709370657
2010-02-07 19:09:59 +00:00
Rafaël Carré
dc3cc55b65 sd as3535v2 : remove functions already present in sd.c
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24364 a1c6a512-1295-4272-9138-f99709370657
2010-01-28 12:04:17 +00:00
Rafaël Carré
6c93570b90 Sansa AMS: remove "ata" from SD drivers filenames
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24237 a1c6a512-1295-4272-9138-f99709370657
2010-01-15 14:03:41 +00:00
Renamed from firmware/target/arm/as3525/ata_sd-as3535v2.c (Browse further)