it has no liquid damage at all. when the drive boots it works perfectly but if i leave the machine off for a while it doesn't boot from the drive and i have to keep starting before it does detect the ssd.
Announcement
Collapse
No announcement yet.
820-00875 SSD only boots sometimes
Collapse
X
-
Re: 820-00875 SSD only boots sometimes
I have the exact same issue with the exact same board and I've tried diagnose the problem several times, also swapped U8640 (chip responsible for SSD power enable and boot).
Others have also had the same issue, see:
https://www.badcaps.net/forum/showthread.php?p=1092430
Apple does have an extended service program for these machines, see: https://support.apple.com/13-inch-ma...-drive-service
...but I have the 512GB SSD and this program just covers 128GB and 256GB drives.
Are you 100% sure it's the SSD btw? Have you tried another one and can confirm 100% that it boots every single time, and when you swap back the issue returns?
It's just such a weird problem, because the SSD health is 100% fine and like you write yourself, when it first boots the machine works perfectly fine (until next reboot or in my case, even sleep).
Also on the machine I have this issue escalated, at first it just happened sometimes that drive was not detected, and after a while and now it's most of the time. So I'm thinking a component on the SSD power enable line that started failing and have just deteriorated over time.
Comment
-
Re: 820-00875 SSD only boots sometimes
It's also worth mentioning that there is a tool available in GSX for AASP that can upgrade the SSD firmware for these machines, but it's unavailable to the public.
See: https://www.ifixit.com/Answers/View/...e#answer716308
also see the last comment in that post.
I'd love to get my hands on that though to see if it includes a new firmware for my SSD also. If anyone here has GSX access, please PM.
Comment
-
Re: 820-00875 SSD only boots sometimes
The SSD on the logic board is PCIe based.
In tracing the SSD_BOOT_CONN_L line, there appears to be a RC circuit which may be a factor here.
As an experiment, remove the caps shown in the attachment - keep them in your toolbox, in case they are required.
The premise here is to remove the delay on this line which is present due to these caps and the pull-up @ R8645.
Test again and post your results.
Comment
-
Re: 820-00875 SSD only boots sometimes
Originally posted by mon2 View PostThe premise here is to remove the delay on this line which is present due to these caps and the pull-up @ R8645.
Test again and post your results.
So I will definitely try this, first as you suggested with SSD_BOOT_CONN_L caps and then I'll do the same for the SSD_PWR_EN_CONN_L caps if the first attempt does not make any difference. Not sure when I'll get around to it, but I'll definitely keep you posted. Again, thanks for the input, appreciate it.Cheers.
Edit: Checked the date on the package labels for the caps, purchased 31. aug 2021, damn, you know it's been a loooong year when 4,5 months feels like "a year back or so".
Comment
-
Re: 820-00875 SSD only boots sometimes
The RC circuit is a 'poor man's delay' circuit.
The signal is '_L' suffix = active low. That is, when the line is LOW, the SSD is held in RESET state and unable to communicate back to the PCIe master (host logic board).
Respectively, when this line is released, it is being driven by an open-drain gate which has a LOW state but high impedance otherwise. That is, AFTER the line is released by the driving OD gate, you are at the mercy of the pull-up resistor (100k) and this bank of caps.
Moving forward, this timing could be OFF for the installed SSD or the caps could derate over time. Either way, the RC circuit is NOT accurate. So, if the delay is too long to return to a 'high state' for this line then the SSD remains in RESET state. The host could then assume, the SSD is not present since it did not ping back a response.
I would try to remove the caps, one at a time to reduce the delay in this circuit. Test again. If still flaky, consider to replace the 100k pull-up with a stronger value of say 10k-47k. Stronger the resistor, the faster the RESET# signal line will be released to active state so the SSD can perform its communication.
Either way, update this thread with your results.
Comment
-
Re: 820-00875 SSD only boots sometimes
Originally posted by mon2 View PostEither way, update this thread with your results.
Comment
-
Re: 820-00875 SSD only boots sometimes
Don't bother on the timing review. Honestly, will be pretty sad if this fault led to the mass recall. However, on a positive note, the end users can repair it or have it repaired. Have a strong suspicion this will fix your quirk. After you validate the fix, we can open up our favorite non-alcoholic drink and post the resolution on Repairwiki / Logiwiki.
update - see attached.
If needed, consider to change this 100k pull-up to a stronger one like 10k-47k so that the RESET# line is released to a high, faster for the host to enumerate the SSD.
Will repeat this offer, if you have VAT #, can drop ship these to you from Arrow. They are dirt cheap parts but every country demands to collect their sales tax. Without the VAT #, we cannot drop ship the parts.Last edited by mon2; 01-12-2022, 04:32 PM.
Comment
-
Re: 820-00875 SSD only boots sometimes
Alright, so I got around to do some work on this one today. These are the steps performed:
- removed C8676
- powered up, SSD not detected
- removed C8675
- powered up, SSD not detected
- removed C8677
- powered up, SSD not detected
- at this point soldered the caps back (but new ones that has the same tolerance)
- wanted to change R8637 as you suggested, but this is marked nostuff on schematic and is not present on board
- looked more at schematic and saw the notes for C8671 for SSD_PWR_EN_CONN_L (critical, frequency specific), replaced this with a new one with the same tolerance
- powered up, SSD not detected
- replaced C8670
- powered up, SSD not detected
Did measurements on the lines again, the thing is that:
SSD_BOOT_CONN_L goes high after a second or so after plugging in power and stays high, haven't checked how this signal is when drive is detected though, as I probably need 50 attempts or so to get it booing.
SSD_EN is high as expected
SSD_PWR_EN_CONN_L is low as expected
SSD_RESET_L goes high as expected
SSD_CLKREQ_L also goes high and stays high, but is low at first, assuming that's expected too
All signals were just checked using a multimeter, but I can check them with scope to see the timings later, how long they stay low before going high and vice versa.
Removed the "tape shield" on the back of the SSD connector when I probed the SSD_RESET_L signal, and the holes where the SSD connector pins are soldered are only half filled with solder, that's not really great but it's enough to get good contact anyway. But that makes me a bit curious about the middle row though, as this row is on the other side of the board and must be surface soldered. It's under the shield so difficult to inspect, just hope they did a better job there.
So that's where I'm at. Was thinking of replacing C8673 and C8674 also, but won't bother since SSD_PWR_EN_CONN_L is low as it should be.
BTW: What does (BFH#) mean on the schematic on the SSD_BOOT_CONN_L line?
And thanks for the offer regarding the resistors though, that is very kind of you and I appreciate the offer, but I already have a range of caps and resistors at most sizes, so I'm good.
Comment
-
Re: 820-00875 SSD only boots sometimes
Very good on the attempts.
Sorry if I said the wrong resistor.
See attached. There is a 100k pull-up on this open-drain line and IMO, the return to high state is too long and causing this fault.
Change the noted resistor to something stronger like 10k or even 4k7.
In the end, we want the host to drive this open-drain line to a logic LOW and once the driver tri-states (high impedance); want the rise time to be faster than it is now. You may need to remove the caps but the resistor with a lower resistance will be helpful.
Post your results.
Comment
-
Re: 820-00875 SSD only boots sometimes
My bad, you did point me to the correct resistor, I was just a bit too quick assuming it was the other one.
Alright, so here we go again:
- replaced R8645 with a 10k resistor
- powered up, SSD not detected
- removed C8676
- removed C8675
- removed C8677
- powered up, SSD not detected
- replaced R8645 with a 4k7 resistor
- powered up, SSD not detected
- replaced U8640 again (this time from a donor board, last time it was a new chip)
- powered up, SSD not detected
- replaced C8640
- powered up, SSD not detected
Don't have time to do more on this one today, but perhaps in a couple of days. I think this time around I'll hook up the 8ch logic analyser on some of these lines to see what's up, and possibly pay attention to the notes at the bottom left at that schematic page, could be some reset timing issue?
Comment
Comment