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

Commit 8256e5e

Browse files
authored
Merge pull request #11 from MuertoGB/V107_testbuild
V107 testbuild
2 parents 393326c + edf963a commit 8256e5e

9 files changed

Lines changed: 117 additions & 157 deletions

File tree

820-00426-DG.nsh

Lines changed: 0 additions & 13 deletions
This file was deleted.

820-00426-IG.nsh

Lines changed: 0 additions & 13 deletions
This file was deleted.

820-00426.nsh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ echo -off
22

33
cls
44

5-
echo "MacBookPro11,5"
5+
echo "MacBookPro11,5, dGPU"
66
echo "Mac-06F11F11946D27C5"
77
echo "Flashing SMC with 820-00426 v2.30f2 firmware..."
88

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
**Version 1.0.7**
2+
```
3+
- bootx64.efi replaced with a more compatible shell
4+
- Removed 00426 (IG) and pertaining information
5+
```
16
**Version 1.0.6**
27
```
38
- Corrected 820-00138 payload

COMPATIBILITY.md

Lines changed: 16 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,19 @@
1-
**Compatibility Information:**
2-
-
3-
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.
1+
## Compatibility Information
42

5-
Some boards carry identical board-ids but have different logic board models, I have tried to keep them separate for ease of use.
3+
This information is still a work in progress, I only have so many machines 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 SMCTool. If a model is not in the below list, it isn't currently supported.
64

7-
If you'd like to verify a board please open an issue. Make sure to include the following information:-
5+
If you'd like to verify a successful flash please open an issue. Make sure to include the following information:
86

9-
* Model Number (e.g. A1502)
10-
* EMC Number (e.g. EMC 2835)
11-
* Board ID `ioreg -l | grep -i board-id`
12-
* Board Model (e.g. 820-4924)
13-
* Graphics Type and Model (e.g. iGPU, Intel HD 6000)
7+
> Model Number (e.g. A1502)\
8+
> EMC Number (e.g. EMC 2835)\
9+
> Board ID `ioreg -l | grep -i board-id`\
10+
> Board Model (e.g. 820-4924)\
11+
> Graphics Type and Model (e.g. iGPU, Intel HD 6000)\
12+
> Proof of a successful flash
1413
1514
---
1615

17-
**MacBook Air**
16+
## MacBook Air
1817
```
1918
A1465 (EMC 2631)
2019
@@ -59,7 +58,7 @@ A1466 (EMC 2925, EMC 3178) - Verified
5958
6059
Flash using 820-00165.nsh
6160
```
62-
**MacBook Pro**
61+
## MacBook Pro
6362
```
6463
A1502 (EMC 2678. EMC 2875) - Verified
6564
@@ -139,17 +138,6 @@ A1398 (EMC 2910)
139138
140139
Flash using 820-00163.nsh
141140
```
142-
**The 820-00426 comes with either an iGPU, or dGPU, make sure you flash the correct version.**
143-
```
144-
A1398 (EMC 2909)
145-
146-
- MacBookPro11,4 (15-inch Mid 2015 with iGPU)
147-
- Board Model: 820-00426
148-
- Board-ID: Mac-06F11FD93F0323C5
149-
- Firmware: 2.29f24
150-
151-
Flash using 820-00426-IG.nsh
152-
```
153141

154142
```
155143
A1398 (EMC 2910)
@@ -159,9 +147,9 @@ A1398 (EMC 2910)
159147
- Board-ID: Mac-06F11F11946D27C5
160148
- Firmware: 2.30f2
161149
162-
Flash using 820-00426-DG.nsh
150+
Flash using 820-00426.nsh
163151
```
164-
**Mac Mini**
152+
## Mac Mini
165153
```
166154
A1347 (EMC 2840)
167155
@@ -171,4 +159,6 @@ A1347 (EMC 2840)
171159
- Firmware: v2.24f32
172160
173161
Flash using 820-5509.nsh
174-
```
162+
```
163+
164+
---

README.md

Lines changed: 81 additions & 89 deletions
Original file line numberDiff line numberDiff line change
@@ -1,123 +1,115 @@
1-
**SMC Tool by David R:**
2-
-
3-
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.
41

5-
*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.
2+
<h1 align="center">
3+
<img width="200" src="resource/img/icon256.png" alt="SMCTool Logo">
4+
<br>
5+
SMCTool
6+
</h1>
67

7-
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. Also, removing the system storage drive is necessary in most cases, otherwise 'startup.nsh' may not run.
8+
<h4 align="center">Making SMC flashing quicker and easier.</h4>
89

9-
💡 This project is based on the work from [logi.wiki](https://logi.wiki/index.php?title=SMC_flashing).\
10-
🎥 SMC Tool tested by Paul L Daniels on [YouTube](https://www.youtube.com/watch?v=q8LEh8C4iYo).
10+
<p align="center">
11+
<a href="#about">About</a> •
12+
<a href="#download">Download</a> •
13+
<a href="#bootable-usb">Bootable USB</a> •
14+
<a href="#flashing-an-smc">Flashing An SMC</a> •
15+
<a href="#compatibility">Compatibility</a> •
16+
<a href="#disclaimers">Disclaimers</a> •
17+
<a href="#acknowledgements">Acknowledgements</a> •
18+
<a href="#donate">Donate</a>
19+
</p>
1120

12-
**Thanks to:-**\
13-
**Paul L Daniels** for development help, and the kick to finish this project.\
14-
**Logi.wiki** for the original work, which I could base this project on.\
15-
**EineWildeStehlampe** for information and help regarding UEFI.\
16-
**theSmudge** for being a great help verifying information.\
17-
**Nobluesky** for gathering Board-IDs.
21+
## About
1822

19-
☕ If you'd like to make a donation for my work, please [see here](https://www.buymeacoffee.com/Muerto). Cheers. ☕
23+
This bootable shell is used to program a Mac LM4F (Stellaris) System Management Controller (SMC) in EFI mode with the correct stock firmware, this enables a technician to replace a faulty SMC with a donor from a non-matching machine. This not only saves time, but money, as a specific donor SMC isn't necessary to have 'on hand'; simply take a donor SMC* from another board, replace it, and flash with this handy bootable software.
2024

21-
---
22-
**Before you start:**
23-
-
24-
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.
25+
> *Currently, a full list of SMC boot compatibility between boards has not been established, I recommend you keep the platform and GPU type the same (MacBook, iMac, Mac Mini), (iGPU, dGPU).
2526
26-
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.
27+
## Download
2728

28-
---
29-
**Download:**
30-
-
31-
Current Version: `1.0.6` - (31.01.2023)\
32-
See the [Changelog](CHANGELOG.md).\
33-
Downloads can be acquired in the [releases](https://github.com/MuertoGB/SMCTool/releases) section.
29+
| Version| Release Date| Latest|
30+
|--------|-------------|--------|
31+
| [V1.0.7](https://github.com/MuertoGB/SMCTool/releases/tag/v1.0.7)| 18th Feb 2023 | `Yes` |
32+
| [V1.0.6](https://github.com/MuertoGB/SMCTool/releases/tag/v1.0.6)| 31st Jan 2022 | `No` |
3433

35-
---
36-
**Creating a USB disk:**
37-
-
38-
To begin, format a USB disk in ExFAT, FAT32, VFAT or HFS+ using a GPT or MBR partition table, then....
34+
> 📔 See the full [Changelog](CHANGELOG.md).
3935
40-
- Option A: Manually copy all SMC_Tool.iso files to the formatted USB disk.
41-
- Option B: Write the SMC_Tool.img to disk with ddrescue, Passmark imageUSB, or similar.
42-
- Option C: Use a bootable USB creation tool and select SMC_Tool.iso as the source file.
36+
## Bootable USB
4337

44-
Extended instructions [here](BOOTABLEUSB.md).
38+
To begin, format a USB disk in ExFAT, FAT32, VFAT or HFS+ for use with SMCTool.
39+
> ⚠ FAT32 using a GPT partition table is recommended.
4540
46-
---
47-
**Flashing the SMC:**
48-
-
49-
1. Plug in your USB disk and power on the Mac whilst holding the `Option ⌥` key.
50-
2. Load into `SMC Tool` from the boot menu and let startup.nsh run.
51-
3. Type the boardnumber.nsh you want to flash, e.g: `820-00165.nsh`, then press return, the script will then flash the SMC.
52-
4. Type 'exit' to reboot, or power off machine to complete the process.
41+
Once the memory stick is ready, you can do any of the following:
42+
- Option A: Manually copy all files from the ISO to the formatted memory stick.
43+
- Option B: Write the image to the memory stick with ddrescue, Passmark imageUSB, or similar.
44+
- Option C: Use a bootable USB creation tool and select the ISO, or image as the source file, and the memory stick as the destination.
5345

54-
Quick video of flashing an SMC [here](https://www.youtube.com/watch?v=nUm30m3zNxI).
46+
> ❕ Extended instructions [here](BOOTABLEUSB.md).
5547
56-
---
57-
**Compatible Boards:**
58-
-
59-
See the [compatibility information](COMPATIBILITY.md).
48+
## Flashing An SMC
6049

61-
Older, single file payloads for boards such as 820-3115/3332 are currently being worked out. Support may be added in the future.
50+
1. Remove the internal storage drive.
51+
2. If you have a portable device, plug in the power adapter.
52+
3. Insert your USB stick, then power on the device whilst holding `Option ⌥`.
53+
4. Load into SMCTool from the boot menu and let 'startup.nsh' run.
54+
5. Type the 'boardnumber.nsh' you want to flash, e.g: `820-00165.nsh`, then press return; the script will then flash the SMC.
55+
6. Type `exit` to reboot, or power off machine to complete the process.
6256

63-
---
57+
> ⚠ You may need to perform an [NVRAM reset](https://support.apple.com/en-mide/HT201255) after flashing an SMC.
6458
65-
**Compatible SMC:**
66-
-
59+
**Why must the SMC be flashed?:**\
60+
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.
6761

68-
✅ Texus Instruments LM4 BGA157\
69-
❌ Texus Instruments TM4 BGA168\
70-
❌ Renesas DF2117 BGA145
62+
**I flashed an incorrect firmware:**\
63+
No problem, just type the correct board number and the correct payload will be flashed. If you restart, or power off after an incorrect payload flash you may brick the device. 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.
7164

72-
Currently supporting MacBook, and Mac Mini. iMac support is in development.
65+
> 💻 Quick video of flashing an SMC [here](https://www.youtube.com/watch?v=nUm30m3zNxI).
7366
74-
---
75-
**Why must the firmware be flashed:**
76-
-
77-
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.
67+
## Compatibility
68+
69+
**Devices:**
7870

79-
---
80-
**If you flash the wrong firmware:**
81-
-
82-
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.
71+
| Platform | Supported? | Planned?|
72+
|----------|-------------|--------|
73+
| MacBook || `N/A` |
74+
| Mac Mini || `N/A` |
75+
| iMac || `In development`|
76+
| Mac Pro || `Researching` |
8377

84-
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.
78+
> ℹ See the [compatibility information](COMPATIBILITY.md) for a full list of supported models.
8579
86-
---
87-
**If you want to flash a different firmware:**
88-
-
89-
You must replace the update, base, code and EPM in the respective folder, say 820-00165 would be `payloads\Mac-937CB26E2E02BB01`.
80+
**System Management Controllers:**
9081

91-
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).
82+
| SMC | Supported? | Planned?|
83+
|----------------|-------------|---------|
84+
| LM4F BGA157 || `N/A` |
85+
| TM4C BGA168 || `Researching` |
86+
| F2117LP BGA145 || `No` |
9287

93-
---
88+
> ℹ Older single file payloads for boards such as 820-3115, 3332, and 3462 are currently being worked out. Support *may* be added in the future.
9489
95-
**Screen resolution:**
96-
-
97-
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.
90+
## Disclaimers
9891

99-
The script will automatically switch screen mode when it can.
92+
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 not responsible for any mistakes my end either.
10093

101-
---
102-
**Licenses and acknowledgements:**
103-
-
104-
Startup manager icon by [KBuHT](https://macosicons.com/#/u/KBuHT) on macOSicons.
94+
This is **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. **Do not** flash your SMC if you have no reason to.
10595

106-
*** UEFI Shell v2.0, release 4.632 ***
96+
## Acknowledgements
10797

108-
This bootable image contains builds of the 2.0 UEFI Shell, as provided by the
109-
Open Source 'EDK' project (https://github.com/tianocore/edk).
98+
> 🖼 Project icon by [KBuHT](https://macosicons.com/#/u/KBuHT) on macOSicons.\
99+
> 💡 This tool is based on the work from [logi.wiki](https://logi.wiki/index.php?title=SMC_flashing).\
100+
>🎥 SMC Tool tested by Paul L Daniels on [YouTube](https://www.youtube.com/watch?v=q8LEh8C4iYo).
110101
111-
More specifically, this release, which we call '4.632', was produced using the
112-
Shell executables, built on 2010.05.07, and published at:
113-
https://github.com/tianocore/edk/tree/master/Other/Maintained/Application/UefiShell/bin
102+
**⭐ Many Thanks To ⭐**
103+
* Paul L Daniels for development help, and the kick to finish this project.
104+
* Logi.wiki for the original work, which I could base this project on.
105+
* EineWildeStehlampe for information and help regarding UEFI.
106+
* theSmudge for being a great help verifying information.
107+
* Nobluesky for verifying iMac board-id's.
114108

115-
This image supports the following UEFI platform architectures:
116-
* X64
117-
* IA32
109+
## Donate
118110

119-
You are invited to validate that the binaries provided on this ISO are 100%
120-
identical to the ones from the official EDK project.
111+
<a href="https://www.buymeacoffee.com/Muerto">
112+
<img width="160" src="https://uc80e5ba3058c2d15b2a77972a8b.previews.dropboxusercontent.com/p/thumb/AB18JbfsN4REmFgvOrzwO3ooBl2K1VkxckN-h1H0qKcNhQDfIIROLC57mhfRHlNPZXBDEK7S3gHEnx6Uc35udaYsS-Mx66J6llYd_lSwfaIAntk3eynVXJNhd5nRHFDI1ncBuDVpVbrtKeQZlP2WPhejwCDH99YAFH8xcPef9q2d37EBjVV9-cK4cGUd7KmXCfa81wP6tXXV8r7-f_5L1c6tgs9HxLgqaDlAPXG8BcM9B6NRFdxlOsLGvYh9ESFE7fMb7dTrOu7PgsBsVrrIfTOxL8akUj2QiSGMJiZNXJrYrsW7mjKu_qQ-7Z-mhlZ2ZtY-FApmMFhfQrWj17D7hiXCemMdb_SaZCbaHBucMaJZ5Y1OPY3a6XlAxUCNJXSrFoI/p.png" alt="Buy Me A Coffee Logo">
113+
</a>
121114

122-
For more information on this release, you are invited to visit our official
123-
project page at https://github.com/pbatard/UEFI-Shell.
115+
---

efi/boot/bootx64.efi

1.15 MB
Binary file not shown.

resource/img/icon256.png

101 KB
Loading

startup.nsh

Lines changed: 14 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,21 @@
11
@echo ""
2-
@echo "SMCTool V1.0.6 by David R (Muerto)"
2+
@echo "SMCTool V1.0.7 by David R (Muerto)"
33
@echo ""
44
@echo " Supported Boards:-"
55
@echo ""
6-
@echo "A1465 820-3435 - FW: 2.12f143 - Type: 820-3435.nsh"
7-
@echo "A1466 820-3437 - FW: 2.13f15 - Type: 820-3437.nsh"
8-
@echo "A1465 820-00164 - FW: 2.26f2 - Type: 820-00164.nsh"
9-
@echo "A1466 820-00165 - FW: 2.27f2 - Type: 820-00165.nsh"
10-
@echo "A1502 820-3476 - FW: 2.16f68 - Type: 820-3476.nsh"
11-
@echo "A1502 820-3536 - FW: 2.16f68 - Type: 820-3536.nsh"
12-
@echo "A1502 820-4924 - FW: 2.28f7 - Type: 820-4924.nsh"
13-
@echo "A1398 820-3662 - FW: 2.18f15 - Type: 820-3662.nsh"
14-
@echo "A1398 820-3787 - FW: 2.19f12 - Type: 820-3787.nsh"
15-
@echo "A1398 820-00138 - FW: 2.29f24 - Type: 820-00138.nsh"
16-
@echo "A1398 820-00163 - FW: 2.30f2 - Type: 820-00163.nsh"
17-
@echo "A1398 820-00426(IG) - FW: 2.29f24 - Type: 820-00426-IG.nsh"
18-
@echo "A1398 820-00426(DG) - FW: 2.30f2 - Type: 820-00426-DG.nsh"
19-
@echo "A1347 820-5509 - FW: 2.24f32 - Type: 820-5509.nsh"
6+
@echo " A1465 820-3435 - FW: 2.12f143 - Type: 820-3435.nsh"
7+
@echo " A1466 820-3437 - FW: 2.13f15 - Type: 820-3437.nsh"
8+
@echo " A1465 820-00164 - FW: 2.26f2 - Type: 820-00164.nsh"
9+
@echo " A1466 820-00165 - FW: 2.27f2 - Type: 820-00165.nsh"
10+
@echo " A1502 820-3476 - FW: 2.16f68 - Type: 820-3476.nsh"
11+
@echo " A1502 820-3536 - FW: 2.16f68 - Type: 820-3536.nsh"
12+
@echo " A1502 820-4924 - FW: 2.28f7 - Type: 820-4924.nsh"
13+
@echo " A1398 820-3662 - FW: 2.18f15 - Type: 820-3662.nsh"
14+
@echo " A1398 820-3787 - FW: 2.19f12 - Type: 820-3787.nsh"
15+
@echo " A1398 820-00138 - FW: 2.29f24 - Type: 820-00138.nsh"
16+
@echo " A1398 820-00163 - FW: 2.30f2 - Type: 820-00163.nsh"
17+
@echo " A1398 820-00426 - FW: 2.30f2 - Type: 820-00426.nsh"
18+
@echo " A1347 820-5509 - FW: 2.24f32 - Type: 820-5509.nsh"
2019
@echo "NOTE: Script will run immediately, so be sure"
2120
@echo " when you choose to run the script."
2221
@echo ""

0 commit comments

Comments
 (0)