Commit graph

109 commits

Author SHA1 Message Date
Linus Nielsen Feltzing
97955a714b fixed compiling errors
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@4310 a1c6a512-1295-4272-9138-f99709370657
2004-02-17 01:31:50 +00:00
Linus Nielsen Feltzing
867415b3f8 set_features() is now called from ata_power_on()
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@4309 a1c6a512-1295-4272-9138-f99709370657
2004-02-17 01:30:25 +00:00
Linus Nielsen Feltzing
7bd92239ca Silly me, I forgot to remove my debugging code
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@4308 a1c6a512-1295-4272-9138-f99709370657
2004-02-16 23:27:02 +00:00
Linus Nielsen Feltzing
c3b9720ab4 Bug 1: The STANDBY mode is now explicitly disabled, since it could be set to 30s at powerup. Bug 2: set_features() wasn't called in ata_power_on().
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@4307 a1c6a512-1295-4272-9138-f99709370657
2004-02-16 23:25:01 +00:00
Jörg Hohensohn
dee17f7102 Assembly code for copy_read_sectors() disabled: Tests with Trent showed that this is to blame for file system corruptions, even waitstates didn't fix it. No idea why, sorry...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@4304 a1c6a512-1295-4272-9138-f99709370657
2004-02-15 08:44:02 +00:00
Jörg Hohensohn
b646d4f278 Assembly code for copy_read_sectors() reworked: I've spread the ATA reads apart by filling independent instructions inbetween, this is also slightly faster because of no pipeline stall. Hopefully this fixes the problem Kargatron had with it.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@4302 a1c6a512-1295-4272-9138-f99709370657
2004-02-09 08:24:25 +00:00
Jörg Hohensohn
bf4460e477 no code change, I just forgot to take my template disassembly out (a big comment block)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@4282 a1c6a512-1295-4272-9138-f99709370657
2004-01-27 09:38:59 +00:00
Jörg Hohensohn
cb570b9263 Assembler optimized copy_read_sectors() gives another speedup of factor 1.4 for aligned and 1.2 for misaligned. Including my previous change the file reading is now nearly twice as fast compared to when I started this. -> Less disk uptime, longer battery life.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@4281 a1c6a512-1295-4272-9138-f99709370657
2004-01-27 09:12:51 +00:00
Jörg Hohensohn
862d2b5e3a warning + obsolete variable removed
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@4248 a1c6a512-1295-4272-9138-f99709370657
2004-01-16 09:28:39 +00:00
Jörg Hohensohn
88faf38ef7 Optimized the sector read loop as much as C allows. I measured an overall speed improvement for file reading of 12.5% for 16-bit aligned and 35% for misaligned. I took the rest of ata_read_sectors() out of IRAM, it's sufficient if only the copy loop stays there.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@4247 a1c6a512-1295-4272-9138-f99709370657
2004-01-16 09:02:21 +00:00
Björn Stenberg
a53afc0330 Added acoustic management, power management and read look-ahead.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@4230 a1c6a512-1295-4272-9138-f99709370657
2004-01-14 13:15:19 +00:00
Björn Stenberg
1fe97ec54e Improved timing in soft_reset. This hopefully cures spontaneous Red Led freezes.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@4161 a1c6a512-1295-4272-9138-f99709370657
2003-12-17 20:15:12 +00:00
Daniel Stenberg
006b2c1c25 adjustments for Neo
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@4130 a1c6a512-1295-4272-9138-f99709370657
2003-12-12 13:23:33 +00:00
Jörg Hohensohn
44298163ba No more spinning disk while charging flashed FM+V2 (you need the new bootloader to utilize it). ToDo: remove now false voltage reading from charging screen.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@4095 a1c6a512-1295-4272-9138-f99709370657
2003-12-03 01:03:54 +00:00
Linus Nielsen Feltzing
bef7ab0c26 The code police strikes back
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@4024 a1c6a512-1295-4272-9138-f99709370657
2003-11-07 12:15:24 +00:00
Jörg Hohensohn
75bab49a54 set/clear port bits with atomic instructions instead of read-modify-write, saves time+space, allows port usage in ISR
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@4022 a1c6a512-1295-4272-9138-f99709370657
2003-11-06 01:34:50 +00:00
Jörg Hohensohn
118d45eb92 ATA io_address_detect() now doesn't probe any more, but uses the h/w mask. Probing failed for some flash users. I hope this works for everybody, we have to try to find out.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@3946 a1c6a512-1295-4272-9138-f99709370657
2003-09-01 05:48:42 +00:00
Jörg Hohensohn
f4b677eb3c report sleeping disk while not initialized, needed for changing before ata_init()
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@3844 a1c6a512-1295-4272-9138-f99709370657
2003-07-18 21:55:06 +00:00
Björn Stenberg
9cb5e0e9f9 Initalize last_disk_activity
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@3830 a1c6a512-1295-4272-9138-f99709370657
2003-07-11 19:11:06 +00:00
Björn Stenberg
c695f26c9f Fixed spindown bug: last_disk_activity was set 10 seconds into the future, which resulted in too long spindown delays.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@3826 a1c6a512-1295-4272-9138-f99709370657
2003-07-10 13:32:15 +00:00
Björn Stenberg
9f372f1f59 Cold start fixes: master_slave_select() now checks for BSY as well as RDY (since disks are BSY during powerup). Also, wait_for_bsy() looks at ATA_STATUS instead of ATA_ALT_STATUS, since the address of ATA_ALT_STATUS is not determined until later.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@3822 a1c6a512-1295-4272-9138-f99709370657
2003-07-09 22:04:31 +00:00
Björn Stenberg
efd2f356c7 Removed warnings
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@3821 a1c6a512-1295-4272-9138-f99709370657
2003-07-09 16:46:46 +00:00
Jörg Hohensohn
bbfaf26e11 again different coldstart, ata_init() now has non-ambiguous return codes for better diagnostics
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@3820 a1c6a512-1295-4272-9138-f99709370657
2003-07-09 07:18:47 +00:00
Jörg Hohensohn
adef8fb17e better place and method for the spinup wait code, still I'd welcome comments on this
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@3815 a1c6a512-1295-4272-9138-f99709370657
2003-07-08 06:33:30 +00:00
Jörg Hohensohn
d1a3a3e148 When starting from flash, we have to wait for the disk to get ready. (Quite a new situation ;-)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@3803 a1c6a512-1295-4272-9138-f99709370657
2003-07-03 00:02:15 +00:00
Jörg Hohensohn
545efb6c28 port inits for cold start ability
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@3764 a1c6a512-1295-4272-9138-f99709370657
2003-06-26 21:29:13 +00:00
Linus Nielsen Feltzing
159d04d3f9 Experiment: enable ATA STANDBY when switching to USB mode
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@3668 a1c6a512-1295-4272-9138-f99709370657
2003-05-10 01:55:23 +00:00
Björn Stenberg
674b632df8 Corrected wrong write return code.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@3623 a1c6a512-1295-4272-9138-f99709370657
2003-04-28 12:02:14 +00:00
Linus Nielsen Feltzing
b5401749cb ata_write_sectors() didn't handle odd buffer addresses
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@3544 a1c6a512-1295-4272-9138-f99709370657
2003-04-12 23:02:58 +00:00
Björn Stenberg
cf92db153f Don't enter cpu sleep during disk operations
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@3530 a1c6a512-1295-4272-9138-f99709370657
2003-04-11 07:43:04 +00:00
Linus Nielsen Feltzing
4502e982af The newest ATA driver fixes broke the ata_spinup_time information
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@3515 a1c6a512-1295-4272-9138-f99709370657
2003-04-05 22:25:21 +00:00
Björn Stenberg
fd9ce90a4c Better led control. Added status read delay. Fixed potential last_disk_activity race.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@3501 a1c6a512-1295-4272-9138-f99709370657
2003-03-31 14:14:07 +00:00
Björn Stenberg
aa78324fde Another attempt to stop the red led dead.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@3498 a1c6a512-1295-4272-9138-f99709370657
2003-03-24 16:19:54 +00:00
Björn Stenberg
7682d46713 Don't spin down disk while retrying
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@3457 a1c6a512-1295-4272-9138-f99709370657
2003-03-17 13:42:30 +00:00
Björn Stenberg
bb6e51aa0d Moved read code around a bit to more strictly obey the ATA specification.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@3444 a1c6a512-1295-4272-9138-f99709370657
2003-03-14 16:06:09 +00:00
Björn Stenberg
b12401b4d4 Initialize return code at start of loop, not at the end.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@3440 a1c6a512-1295-4272-9138-f99709370657
2003-03-13 15:45:38 +00:00
Björn Stenberg
6a58106e97 An attempt to get rid of the "red freeze" problem: Perform a soft reset on read error.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@3351 a1c6a512-1295-4272-9138-f99709370657
2003-02-27 13:26:09 +00:00
Björn Stenberg
c4d8d970f6 The power-saving SLEEP patch by Simon Elén.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@3259 a1c6a512-1295-4272-9138-f99709370657
2003-02-14 09:44:34 +00:00
Björn Stenberg
efd90770a0 Bug fix: Don't cut the power during spinup...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@2959 a1c6a512-1295-4272-9138-f99709370657
2002-12-06 15:17:30 +00:00
Björn Stenberg
bd0da0e822 Fixed a race condition between sleep thread and spinup code.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@2958 a1c6a512-1295-4272-9138-f99709370657
2002-12-06 13:08:42 +00:00
Björn Stenberg
ba0438e78d Fixed spinup clocking. Also updating last_disk_activity more frequently, to avoid shutdown race condition.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@2935 a1c6a512-1295-4272-9138-f99709370657
2002-12-05 09:35:01 +00:00
Björn Stenberg
b070dd55be Added disk spinup clocking
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@2927 a1c6a512-1295-4272-9138-f99709370657
2002-12-04 14:58:48 +00:00
Björn Stenberg
c032e65034 Bug fix: Master/slave was not always properly selected after powerdown.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@2910 a1c6a512-1295-4272-9138-f99709370657
2002-12-03 13:29:35 +00:00
Björn Stenberg
45d32cec5b Added 'Disk info' to debug menu
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@2908 a1c6a512-1295-4272-9138-f99709370657
2002-12-03 13:12:55 +00:00
Daniel Stenberg
2094d45af0 use the proper #ifdef for a feature
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@2903 a1c6a512-1295-4272-9138-f99709370657
2002-12-03 12:02:26 +00:00
Björn Stenberg
1ea00d1a03 Added a >2ms delay in ata_hard_reset() before reading status, as per ATA specificatione (pedantic mode entered)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@2902 a1c6a512-1295-4272-9138-f99709370657
2002-12-03 11:26:39 +00:00
Björn Stenberg
c2cb6a67c4 Bug fix: A failed read could return OK.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@2899 a1c6a512-1295-4272-9138-f99709370657
2002-12-03 08:53:06 +00:00
Björn Stenberg
7249c8807c Updated power-on procedure
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@2896 a1c6a512-1295-4272-9138-f99709370657
2002-12-02 10:30:40 +00:00
Daniel Stenberg
cf1368145a HAVE_ATA_POWER_OFF is now defined and used if the platform has support for
that control


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@2889 a1c6a512-1295-4272-9138-f99709370657
2002-11-29 07:05:27 +00:00
Björn Stenberg
2b77b4fdd5 Added option to enable/disable disk poweroff (for diagnostic purposes)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@2888 a1c6a512-1295-4272-9138-f99709370657
2002-11-28 22:46:19 +00:00