<font face="Arial, Verdana">I managed to trace the problem to 2 locations. I first discovered that you had changed the following function in HAL.h:</font>
static inline void delayMicroseconds(unsigned int delayUs);
<font face="Arial, Verdana">{</font>
<font face="Arial, Verdana"> microsecondsWait(delayUs);</font>
<font face="Arial, Verdana">}</font>
This had changed from an earlier version of 0.91 (where the SD card works perfectly) to a newer function which uses inline assembler. It seems the newer function is probably faster and is affecting the overall timing of the system (loops / waits / inits probably run faster than they should).
<font face="Arial, Verdana">
If I replace the newer delay function (which has assembler) with the older delay function, then the latest version of 0.91 works fine with the SD Card.
I decided to dig further and leave the newer delay function in place and found that I can resolve the SD init issue in SDFat.cpp in the function bool Sd2Card::init(uint8_t sckRateID, uint8_t chipSelectPin).
</font>
In Repetier 0.91 (the latest code), I can get the SD card to init by changing the loop:
<font face="Arial, Verdana"> // must supply min of 74 clock cycles with CS high.</font>
<font face="Arial, Verdana"> for (uint8_t i = 0; i < 10; i++) spiSend(0XFF);</font>
If I change this loop to be 20 iterations, then the SD init seems to work. However, I did run into a problem when it was printing from SD card where it complained it couldn't read from the card about 1/4 of the way into the print. I am not sure if that was related to this overall timing problem, or there was an actual issue reading from the card.
However, the same SDFat fix does not work for 0.92.
It does seem like there some overall timing init issue related to the HAL and SD stuff.
Another problem that surfaces in 0.92 with the SD init is that if you have an SD card in the RADDS slot, the LCD rotary slows down to a crawl and mostly does not respond since it's constantly trying to init the SD card (which is always failing).
The system should probably have a global SD fail after N tries until a new SD card is inserted. This will prevent the SD init loop from killing the UI / response.
It may be that the newer delay function is actually too fast and is preventing proper initialization of the SPI or something else.
Hopefully someone else with more knowledge of this stuff can figure out what the exact issue is since I don't know this stuff well enough to resolve the issue myself.