Skip to content
This repository has been archived by the owner on Mar 27, 2023. It is now read-only.

Commit

Permalink
Merge pull request #7 from MuertoGB/test
Browse files Browse the repository at this point in the history
Test
  • Loading branch information
MuertoGB authored Jan 13, 2023
2 parents 090ca62 + e08f374 commit 649d642
Show file tree
Hide file tree
Showing 10 changed files with 3,327 additions and 46 deletions.
13 changes: 13 additions & 0 deletions 820-5509.nsh
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
echo -off

cls

echo "MacMini7,1"
echo "Mac-35C5E08120C7EEAF"
echo "Flashing SMC with 820-5509 v2.24f32 firmware..."

smcutil.efi -force -norestart -LoadUpdate payloads\Mac-35C5E08120C7EEAF\flasher_update.smc
smcutil.efi -force -norestart -LoadBase payloads\Mac-35C5E08120C7EEAF\flasher_base.smc
smcutil.efi -force -norestart -LoadApp payloads\Mac-35C5E08120C7EEAF\Mac-35C5E08120C7EEAF.smc

complete.nsh
6 changes: 6 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
**Version 1.0.5**
```
- Script optimisation
- Moved thanks to complete.nsh to make space in startup.nsh
- Support Board: 820-5509
```
**Version 1.0.4**
```
- GPT issues resolved
Expand Down
13 changes: 11 additions & 2 deletions COMPATIBILITY.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
-
This information is still a work in progress, I only have so many MacBooks at my disposal to verify board-ids and perform a test flash. If a model is marked as verified, this means it was successfully flashed with SMC Tool. If a board is not in the below list, it isn't currently supported.

Some boards carry identicle board-ids but have different logic board models, I have tried to keep them seperate for ease of use.
Some boards carry identical board-ids but have different logic board models, I have tried to keep them separate for ease of use.

If you'd like to verify a board please open an issue. Make sure to include the model, EMC number, board-id, board model, and proof of a successful flash (Just copy the format below if you want). I would really appreciate help here.

Expand Down Expand Up @@ -109,7 +109,7 @@ A1398 (EMC2876, EMC2881)
Flash using 820-3787.nsh
```
**Use the below with precation, I'm unsure they're all 06F11F11946D27C5.**
*Use the below with precation, I'm unsure they're all 06F11F11946D27C5.*
```
A1398 (EMC2909)
Expand Down Expand Up @@ -141,4 +141,13 @@ A1398 (EMC2910)
- Firmware: 2.30f2
Flash using 820-00426.nsh
```
**Mac Mini**
```
- MacMini7,1 (Late 2014-2017)
- Board Model: 820-5509
- Board-ID: Mac-35C5E08120C7EEAF
- Firmware: v2.24f32
Flash using 820-5509.nsh
```
65 changes: 31 additions & 34 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,34 +1,35 @@
**SMC Tool by David R:**
-
Aimed at MacBook logic board technicians, SMC Tool makes flashing a replacement SMC quicker and easier. It not only saves time, but money, as a specific donor SMC isn't necessary to have 'on hand'. Simply take a matching model SMC from another board, replace and flash.
Aimed at Mac logic board technicians, SMCTool makes flashing a replacement SMC quicker and easier. It not only saves time, but money, as a specific donor SMC isn't necessary to have 'on hand'. Simply take a matching donor SMC* from another board, replace and flash.

Currently, a full list of SMC compatibility between boards is unestablished. I recommend you keep the board years as close as possible when taking a donor SMC from a non-matching board.
*Currently, a full list of SMC boot compatibility between boards has not been established. I recommend you keep the board years as close as possible when taking a donor SMC from a non-matching board, otherwise the machine may not power on.

💡This project is based on the work from [logi.wiki](https://logi.wiki/index.php?title=SMC_flashing).\
🎥 SMC Tool tested by Paul L Daniels on [YouTube](https://www.youtube.com/watch?v=q8LEh8C4iYo).
It has come to my attention SMCTool may not like some USB memory sticks, I use SanDisk SDCZ50 USB 2.0 without issue. Possibly an issue with UEFI, I don't know, yet.

Thanks to:\
Paul L Daniels, pbatard, Logi.wiki, EineWildeStehlampe, theSmudge.
💡 This project is based on the work from [logi.wiki](https://logi.wiki/index.php?title=SMC_flashing).\
🎥 SMC Tool tested by Paul L Daniels on [YouTube](https://www.youtube.com/watch?v=q8LEh8C4iYo).

If you would like to make a donation for my work, please see the link below:\
https://www.buymeacoffee.com/Muerto
**Thanks to:-**\
**Paul L Daniels** for development help, and the kick to finish this project.\
**Logi.wiki** for the original work, which I could base this project on.\
**EineWildeStehlampe** for information and help regarding UEFI.\
**theSmudge** for being a great help verifying information.

------------------------------------------------------------------------------------------------------------------------
---
**Before you start:**
-
I'm not responsible if you do something wrong, if you're here I expect you to know what you're doing. Where I do my utmost to verify all information to my best ability, I'm also not responsible for any mistakes my end either. As they say, sometimes shit happens.

I am not responsible if you do something wrong, if you're here I expect you to know what you're doing. Where I do my upmost to verify all information to my best ability, I am not responsible for any mistakes on my end either. As they say, sometimes shit happens.
This is also **not** a magical 'fix my Mac' tool, it has a specific purpose, which is flashing correct payloads to a System Management Controller with incorrect firmware.

This tool cannot be used to program blank LM4F.

------------------------------------------------------------------------------------------------------------------------
---
**Download:**
-
Current Version: `1.0.4` \
Current Version: `1.0.5`\
See the [Changelog](CHANGELOG.md).\
Downloads can be acquired in the [releases](https://github.com/MuertoGB/SMCTool/releases) section.

------------------------------------------------------------------------------------------------------------------------
---
**Creating a USB disk:**
-
To begin, format a USB disk in ExFAT, FAT32, VFAT or HFS+ using a GPT or MBR partition table, then....
Expand All @@ -39,7 +40,7 @@ To begin, format a USB disk in ExFAT, FAT32, VFAT or HFS+ using a GPT or MBR par

Extended instructions [here](BOOTABLEUSB.md).

------------------------------------------------------------------------------------------------------------------------
---
**Flashing the SMC:**
-
1. Plug in your USB disk and power on the Mac whilst holding the `Option ⌥` key.
Expand All @@ -49,58 +50,54 @@ Extended instructions [here](BOOTABLEUSB.md).

Quick video of flashing an SMC [here](https://www.youtube.com/watch?v=nUm30m3zNxI).

------------------------------------------------------------------------------------------------------------------------
---
**Compatible Boards:**
-

See the [compatibility information](COMPATIBILITY.md).

Older, single file payloads for boards such as 820-3115/3332 are currently being worked out. Support may be added in the future.

------------------------------------------------------------------------------------------------------------------------
---

**Compatible SMCs:**
**Compatible SMC:**
-

✅ Texus Instruments LM4 BGA157\
❌ Texus Instruments TM4 BGA168\
❌ Renesas DF2117 BGA145

Only MacBooks are supported. Others platforms are possible in the future.
Currently supporting MacBook. and Mac Mini. Coming soon is iMac.

------------------------------------------------------------------------------------------------------------------------
---
**Why must the firmware be flashed:**
-
Each System Management Controller is specifically programmed for it's counterpart board, and is in charge of managing video, hibernation, battery charging, thermal and power management. Incorrect or mismatched firmware causes erratic behaviour such as broken display resolution, high fan speed, throttling, and crashing.

Each System Management Controller is specifically programmed for it's counterpart board, and is in charge of managing video, hibernation, battery charging, themal and power management. Incorrect or mismatched firmware causes erratic behaviour such as broken display resolution, high fan speed, throttling, and crashing.

------------------------------------------------------------------------------------------------------------------------
---
**If you flash the wrong firmware:**
-
You must immediately flash the correct firmware before powering off the system. In some cases you **might** brick the system if you reboot after flashing the incorrect firmware. After much testing I've never achieved a bricked board by flashing an incorrect firmware, however, others have mentioned 'no power' after loading the wrong SMC firmware for that board after a reboot, or power down.

In most cases you can flash again with the correct firmware. In some cases you **might** brick the system. After much testing I've never achieved a bricked board by flashing an incorrect firmware, however, others have mentioned 'no power' after flashing the wrong SMC firmware for that board after a reboot, or power down.

If a system is somehow rendered 'bricked' and cannot get to the boot menu, you must replace the SMC again. You can always put the incorrectly flashed SMC aside for future use on a board it was programmed for.
If a system is somehow rendered 'bricked' and cannot get to the boot menu, you must replace the SMC again. You can always put the incorrectly flashed SMC aside for future use on a board it was 'accidentally' programmed for.

------------------------------------------------------------------------------------------------------------------------
---
**If you want to flash a different firmware:**
-
You can replace the update, base and app code image in the respective folder, say 820-00165 would be `payloads\Mac-937CB26E2E02BB01`.
You must replace the update, base, code and EPM in the respective folder, say 820-00165 would be `payloads\Mac-937CB26E2E02BB01`.

Alternative SMC payloads can be found in firmwareupdate.pkg inside the MacOS Install.ESD file, or [here](https://github.com/sadponyguerillaboy/SMC-Toolkit/tree/main/SMCPayloads).

------------------------------------------------------------------------------------------------------------------------
---

**EFI Screen resolution:**
**Screen resolution:**
-
Use the `mode` command to display a list of supported screen modes, type the highest mode available e.g. `mode 160 47`, then press return.

The script will automatically switch screen mode when it can.

------------------------------------------------------------------------------------------------------------------------
---
**Licenses and acknowledgements:**
-

Startup manager icon by [KBuHT](https://macosicons.com/#/u/KBuHT) on macOSicons.

*** UEFI Shell v2.0, release 4.632 ***
Expand Down
12 changes: 8 additions & 4 deletions complete.nsh
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
echo ""
echo "SMC Version Check:-"
@echo ""
@echo "SMC Version Check:-"
smcutil.efi -v
echo ""
echo "Type 'exit' to reboot, or power off machine to complete the process."
@echo ""
@echo "Thanks to Paul L Daniels, Logi.wiki,"
@echo "EineWildeStehlampe, theSmudge."
@echo ""
@echo "Process complete:"
@echo "Type 'reset -w' to reboot, 'reset -s' to power off."
Loading

0 comments on commit 649d642

Please sign in to comment.