315 lines
22 KiB
HTML
315 lines
22 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="en" dir="auto">
|
||
|
||
<head><meta charset="utf-8">
|
||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||
<meta name="robots" content="index, follow">
|
||
<title>Upgrading a motherboard’s BIOS, without flashback or a CPU | Mihit Mittal</title>
|
||
<meta name="keywords" content="">
|
||
<meta name="description" content="After running a homelab on an old laptop for many years, I finally decided to bite the bullet and finally part out a PC to use as my home server, to run my websites, cloud storage, home automation using Home Assistant, and local DNS resolution on my network. The specs of the final build were as follows:
|
||
|
||
AMD Ryzen 4600G
|
||
4x8 GB DDR4 3200 by Crucial
|
||
Gigabyte Gaming X B450 Motherboard
|
||
1TB SSD storage
|
||
12TB HDD storage
|
||
Cooler Master MWE 450 Bronze V2 450W PSU
|
||
|
||
Despite the current silicon shortages, acquiring the parts was surprisingly quick and painless. After collecting all the components that were ordered, I begun the simple process of assembling it all together only to discover that I got no sign of life upon pressing the power button. Now, it was my first time building a PC but it wasn’t my first time taking on a project like this, which made it all the more confusing as to why there was a problem. I was reading the motherboard’s manual and scratching my head when suddenly it hit me. The motherboard was manufactured in October 2020, which meant that the BIOS revision on the motherboard was much older than what was required in order for it to support my CPU. This was quite a big problem. I had no older CPU which I could use to update the motherboard, and without this, the build was completely halted. I tried looking around local shops in order to find anyone who would update the BIOS but could not find anyone willing to take the project on, leaving my only option being taking the 45 minute drive to the closest service center in order to get it updated.">
|
||
<meta name="author" content="Me">
|
||
<link rel="canonical" href="https://mihitmittal.com/posts/1/">
|
||
<link crossorigin="anonymous" href="/assets/css/stylesheet.45e028aa8ce0961349adf411b013ee39406be2c0bc80d4ea3fc04555f7f4611a.css" integrity="sha256-ReAoqozglhNJrfQRsBPuOUBr4sC8gNTqP8BFVff0YRo=" rel="preload stylesheet" as="style">
|
||
<link rel="icon" href="https://mihitmittal.com/favicon.ico">
|
||
<link rel="icon" type="image/png" sizes="16x16" href="https://mihitmittal.com/favicon-16x16.png">
|
||
<link rel="icon" type="image/png" sizes="32x32" href="https://mihitmittal.com/favicon-32x32.png">
|
||
<link rel="apple-touch-icon" href="https://mihitmittal.com/apple-touch-icon.png">
|
||
<link rel="mask-icon" href="https://mihitmittal.com/safari-pinned-tab.svg">
|
||
<meta name="theme-color" content="#2e2e33">
|
||
<meta name="msapplication-TileColor" content="#2e2e33">
|
||
<link rel="alternate" hreflang="en" href="https://mihitmittal.com/posts/1/">
|
||
<noscript>
|
||
<style>
|
||
#theme-toggle,
|
||
.top-link {
|
||
display: none;
|
||
}
|
||
|
||
</style>
|
||
<style>
|
||
@media (prefers-color-scheme: dark) {
|
||
:root {
|
||
--theme: rgb(29, 30, 32);
|
||
--entry: rgb(46, 46, 51);
|
||
--primary: rgb(218, 218, 219);
|
||
--secondary: rgb(155, 156, 157);
|
||
--tertiary: rgb(65, 66, 68);
|
||
--content: rgb(196, 196, 197);
|
||
--code-block-bg: rgb(46, 46, 51);
|
||
--code-bg: rgb(55, 56, 62);
|
||
--border: rgb(51, 51, 51);
|
||
}
|
||
|
||
.list {
|
||
background: var(--theme);
|
||
}
|
||
|
||
.list:not(.dark)::-webkit-scrollbar-track {
|
||
background: 0 0;
|
||
}
|
||
|
||
.list:not(.dark)::-webkit-scrollbar-thumb {
|
||
border-color: var(--theme);
|
||
}
|
||
}
|
||
|
||
</style>
|
||
</noscript><meta property="og:url" content="https://mihitmittal.com/posts/1/">
|
||
<meta property="og:site_name" content="Mihit Mittal">
|
||
<meta property="og:title" content="Upgrading a motherboard’s BIOS, without flashback or a CPU">
|
||
<meta property="og:description" content="After running a homelab on an old laptop for many years, I finally decided to bite the bullet and finally part out a PC to use as my home server, to run my websites, cloud storage, home automation using Home Assistant, and local DNS resolution on my network. The specs of the final build were as follows:
|
||
AMD Ryzen 4600G 4x8 GB DDR4 3200 by Crucial Gigabyte Gaming X B450 Motherboard 1TB SSD storage 12TB HDD storage Cooler Master MWE 450 Bronze V2 450W PSU Despite the current silicon shortages, acquiring the parts was surprisingly quick and painless. After collecting all the components that were ordered, I begun the simple process of assembling it all together only to discover that I got no sign of life upon pressing the power button. Now, it was my first time building a PC but it wasn’t my first time taking on a project like this, which made it all the more confusing as to why there was a problem. I was reading the motherboard’s manual and scratching my head when suddenly it hit me. The motherboard was manufactured in October 2020, which meant that the BIOS revision on the motherboard was much older than what was required in order for it to support my CPU. This was quite a big problem. I had no older CPU which I could use to update the motherboard, and without this, the build was completely halted. I tried looking around local shops in order to find anyone who would update the BIOS but could not find anyone willing to take the project on, leaving my only option being taking the 45 minute drive to the closest service center in order to get it updated.">
|
||
<meta property="og:locale" content="en-us">
|
||
<meta property="og:type" content="article">
|
||
<meta property="article:section" content="posts">
|
||
<meta property="article:published_time" content="2022-12-27T00:00:00+05:30">
|
||
<meta property="article:modified_time" content="2022-12-27T00:00:00+05:30">
|
||
<meta name="twitter:card" content="summary">
|
||
<meta name="twitter:title" content="Upgrading a motherboard’s BIOS, without flashback or a CPU">
|
||
<meta name="twitter:description" content="After running a homelab on an old laptop for many years, I finally decided to bite the bullet and finally part out a PC to use as my home server, to run my websites, cloud storage, home automation using Home Assistant, and local DNS resolution on my network. The specs of the final build were as follows:
|
||
|
||
AMD Ryzen 4600G
|
||
4x8 GB DDR4 3200 by Crucial
|
||
Gigabyte Gaming X B450 Motherboard
|
||
1TB SSD storage
|
||
12TB HDD storage
|
||
Cooler Master MWE 450 Bronze V2 450W PSU
|
||
|
||
Despite the current silicon shortages, acquiring the parts was surprisingly quick and painless. After collecting all the components that were ordered, I begun the simple process of assembling it all together only to discover that I got no sign of life upon pressing the power button. Now, it was my first time building a PC but it wasn’t my first time taking on a project like this, which made it all the more confusing as to why there was a problem. I was reading the motherboard’s manual and scratching my head when suddenly it hit me. The motherboard was manufactured in October 2020, which meant that the BIOS revision on the motherboard was much older than what was required in order for it to support my CPU. This was quite a big problem. I had no older CPU which I could use to update the motherboard, and without this, the build was completely halted. I tried looking around local shops in order to find anyone who would update the BIOS but could not find anyone willing to take the project on, leaving my only option being taking the 45 minute drive to the closest service center in order to get it updated.">
|
||
|
||
|
||
<script type="application/ld+json">
|
||
{
|
||
"@context": "https://schema.org",
|
||
"@type": "BreadcrumbList",
|
||
"itemListElement": [
|
||
{
|
||
"@type": "ListItem",
|
||
"position": 1 ,
|
||
"name": "Posts",
|
||
"item": "https://mihitmittal.com/posts/"
|
||
},
|
||
{
|
||
"@type": "ListItem",
|
||
"position": 2 ,
|
||
"name": "Upgrading a motherboard’s BIOS, without flashback or a CPU",
|
||
"item": "https://mihitmittal.com/posts/1/"
|
||
}
|
||
]
|
||
}
|
||
</script>
|
||
<script type="application/ld+json">
|
||
{
|
||
"@context": "https://schema.org",
|
||
"@type": "BlogPosting",
|
||
"headline": "Upgrading a motherboard’s BIOS, without flashback or a CPU",
|
||
"name": "Upgrading a motherboard’s BIOS, without flashback or a CPU",
|
||
"description": "After running a homelab on an old laptop for many years, I finally decided to bite the bullet and finally part out a PC to use as my home server, to run my websites, cloud storage, home automation using Home Assistant, and local DNS resolution on my network. The specs of the final build were as follows:\nAMD Ryzen 4600G 4x8 GB DDR4 3200 by Crucial Gigabyte Gaming X B450 Motherboard 1TB SSD storage 12TB HDD storage Cooler Master MWE 450 Bronze V2 450W PSU Despite the current silicon shortages, acquiring the parts was surprisingly quick and painless. After collecting all the components that were ordered, I begun the simple process of assembling it all together only to discover that I got no sign of life upon pressing the power button. Now, it was my first time building a PC but it wasn\u0026rsquo;t my first time taking on a project like this, which made it all the more confusing as to why there was a problem. I was reading the motherboard\u0026rsquo;s manual and scratching my head when suddenly it hit me. The motherboard was manufactured in October 2020, which meant that the BIOS revision on the motherboard was much older than what was required in order for it to support my CPU. This was quite a big problem. I had no older CPU which I could use to update the motherboard, and without this, the build was completely halted. I tried looking around local shops in order to find anyone who would update the BIOS but could not find anyone willing to take the project on, leaving my only option being taking the 45 minute drive to the closest service center in order to get it updated.\n",
|
||
"keywords": [
|
||
|
||
],
|
||
"articleBody": "After running a homelab on an old laptop for many years, I finally decided to bite the bullet and finally part out a PC to use as my home server, to run my websites, cloud storage, home automation using Home Assistant, and local DNS resolution on my network. The specs of the final build were as follows:\nAMD Ryzen 4600G 4x8 GB DDR4 3200 by Crucial Gigabyte Gaming X B450 Motherboard 1TB SSD storage 12TB HDD storage Cooler Master MWE 450 Bronze V2 450W PSU Despite the current silicon shortages, acquiring the parts was surprisingly quick and painless. After collecting all the components that were ordered, I begun the simple process of assembling it all together only to discover that I got no sign of life upon pressing the power button. Now, it was my first time building a PC but it wasn’t my first time taking on a project like this, which made it all the more confusing as to why there was a problem. I was reading the motherboard’s manual and scratching my head when suddenly it hit me. The motherboard was manufactured in October 2020, which meant that the BIOS revision on the motherboard was much older than what was required in order for it to support my CPU. This was quite a big problem. I had no older CPU which I could use to update the motherboard, and without this, the build was completely halted. I tried looking around local shops in order to find anyone who would update the BIOS but could not find anyone willing to take the project on, leaving my only option being taking the 45 minute drive to the closest service center in order to get it updated.\nSince this project had to be halted while I could figure out what I could do about this situation, I continued undertaking smaller projects in order to keep busy. While looking around my drawer for DuPont leads for something else, I found my saving grace, a CH341A programmer and an EEPROM clip. I had completely forgotten that I had these in my possession, and immediately realized that they are what going to save this project.\nI removed the CPU from it’s socket in order to protect it from reverse voltage from the programmer and hooked the clip directly onto the motherboard’s EEPROM chip\nUpon running flashrom, surprisingly the chip was detected on the first try, and I was able to read the data off the EEPROM without any hiccups\n~ flashrom -p ch341a_spi -r output1.bin flashrom v1.2-552-gea0ae15 on Linux 6.0.12.rog.fc37 (x86_64) flashrom is free software, get the source code at https://flashrom.org Using clock_gettime for delay loops (clk_id: 1, resolution: 1ns). Found Winbond flash chip \"W25Q128.W\" (16384 kB, SPI) on ch341a_spi. Reading flash... I then repeated the same command again, outputting to output2.bin. After comparing the MD5sum of both output1.bin and output2.bin and checking that they are the same file, hence ensuring that the connection on the chip is stable, I then sent the command to write the new firmware file onto the EEPROM\n~ flashrom -p ch341a_spi -w B450GX.63e After waiting for the flash to finish, I was finally greeted with the gigabyte BIOS menu, finally marking this project as finished\n",
|
||
"wordCount" : "538",
|
||
"inLanguage": "en",
|
||
"datePublished": "2022-12-27T00:00:00+05:30",
|
||
"dateModified": "2022-12-27T00:00:00+05:30",
|
||
"author":{
|
||
"@type": "Person",
|
||
"name": "Me"
|
||
},
|
||
"mainEntityOfPage": {
|
||
"@type": "WebPage",
|
||
"@id": "https://mihitmittal.com/posts/1/"
|
||
},
|
||
"publisher": {
|
||
"@type": "Organization",
|
||
"name": "Mihit Mittal",
|
||
"logo": {
|
||
"@type": "ImageObject",
|
||
"url": "https://mihitmittal.com/favicon.ico"
|
||
}
|
||
}
|
||
}
|
||
</script>
|
||
</head>
|
||
|
||
<body class="" id="top">
|
||
<script>
|
||
if (localStorage.getItem("pref-theme") === "dark") {
|
||
document.body.classList.add('dark');
|
||
} else if (localStorage.getItem("pref-theme") === "light") {
|
||
document.body.classList.remove('dark')
|
||
} else if (window.matchMedia('(prefers-color-scheme: dark)').matches) {
|
||
document.body.classList.add('dark');
|
||
}
|
||
|
||
</script>
|
||
|
||
<header class="header">
|
||
<nav class="nav">
|
||
<div class="logo">
|
||
<a href="https://mihitmittal.com/" accesskey="h" title="Mihit Mittal (Alt + H)">Mihit Mittal</a>
|
||
<div class="logo-switches">
|
||
<button id="theme-toggle" accesskey="t" title="(Alt + T)">
|
||
<svg id="moon" xmlns="http://www.w3.org/2000/svg" width="24" height="18" viewBox="0 0 24 24"
|
||
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
|
||
stroke-linejoin="round">
|
||
<path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"></path>
|
||
</svg>
|
||
<svg id="sun" xmlns="http://www.w3.org/2000/svg" width="24" height="18" viewBox="0 0 24 24"
|
||
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
|
||
stroke-linejoin="round">
|
||
<circle cx="12" cy="12" r="5"></circle>
|
||
<line x1="12" y1="1" x2="12" y2="3"></line>
|
||
<line x1="12" y1="21" x2="12" y2="23"></line>
|
||
<line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line>
|
||
<line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line>
|
||
<line x1="1" y1="12" x2="3" y2="12"></line>
|
||
<line x1="21" y1="12" x2="23" y2="12"></line>
|
||
<line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line>
|
||
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
|
||
</svg>
|
||
</button>
|
||
</div>
|
||
</div>
|
||
<ul id="menu">
|
||
<li>
|
||
<a href="https://mihitmittal.com/posts" title="Posts">
|
||
<span>Posts</span>
|
||
</a>
|
||
</li>
|
||
</ul>
|
||
</nav>
|
||
</header>
|
||
<main class="main">
|
||
|
||
<article class="post-single">
|
||
<header class="post-header">
|
||
<div class="breadcrumbs"><a href="https://mihitmittal.com/">Home</a> » <a href="https://mihitmittal.com/posts/">Posts</a></div>
|
||
<h1 class="post-title entry-hint-parent">
|
||
Upgrading a motherboard’s BIOS, without flashback or a CPU
|
||
</h1>
|
||
<div class="post-meta"><span title='2022-12-27 00:00:00 +0530 +0530'>December 27, 2022</span> · 3 min · 538 words · Me
|
||
|
||
</div>
|
||
</header>
|
||
<div class="post-content"><p>After running a homelab on an old laptop for many years, I finally decided to bite the bullet and finally part out a PC to use as my home server, to run my websites, cloud storage, home automation using Home Assistant, and local DNS resolution on my network. The specs of the final build were as follows:</p>
|
||
<ul>
|
||
<li>AMD Ryzen 4600G</li>
|
||
<li>4x8 GB DDR4 3200 by Crucial</li>
|
||
<li>Gigabyte Gaming X B450 Motherboard</li>
|
||
<li>1TB SSD storage</li>
|
||
<li>12TB HDD storage</li>
|
||
<li>Cooler Master MWE 450 Bronze V2 450W PSU</li>
|
||
</ul>
|
||
<p>Despite the current silicon shortages, acquiring the parts was surprisingly quick and painless. After collecting all the components that were ordered, I begun the simple process of assembling it all together only to discover that I got no sign of life upon pressing the power button. Now, it was my first time building a PC but it wasn’t my first time taking on a project like this, which made it all the more confusing as to why there was a problem. I was reading the motherboard’s manual and scratching my head when suddenly it hit me. The motherboard was manufactured in October 2020, which meant that the BIOS revision on the motherboard was much older than what was required in order for it to support my CPU. This was quite a big problem. I had no older CPU which I could use to update the motherboard, and without this, the build was completely halted. I tried looking around local shops in order to find anyone who would update the BIOS but could not find anyone willing to take the project on, leaving my only option being taking the 45 minute drive to the closest service center in order to get it updated.</p>
|
||
<p>Since this project had to be halted while I could figure out what I could do about this situation, I continued undertaking smaller projects in order to keep busy. While looking around my drawer for DuPont leads for something else, I found my saving grace, a CH341A programmer and an EEPROM clip. I had completely forgotten that I had these in my possession, and immediately realized that they are what going to save this project.</p>
|
||
<p>I removed the CPU from it’s socket in order to protect it from reverse voltage from the programmer and hooked the clip directly onto the motherboard’s EEPROM chip</p>
|
||
<p><img alt="Image" loading="lazy" src="/1/mobo.png"></p>
|
||
<p>Upon running flashrom, surprisingly the chip was detected on the first try, and I was able to read the data off the EEPROM without any hiccups</p>
|
||
<pre><code>~ flashrom -p ch341a_spi -r output1.bin
|
||
flashrom v1.2-552-gea0ae15 on Linux 6.0.12.rog.fc37 (x86_64)
|
||
flashrom is free software, get the source code at https://flashrom.org
|
||
|
||
Using clock_gettime for delay loops (clk_id: 1, resolution: 1ns).
|
||
Found Winbond flash chip "W25Q128.W" (16384 kB, SPI) on ch341a_spi.
|
||
Reading flash...
|
||
</code></pre>
|
||
<p>I then repeated the same command again, outputting to output2.bin. After comparing the MD5sum of both output1.bin and output2.bin and checking that they are the same file, hence ensuring that the connection on the chip is stable, I then sent the command to write the new firmware file onto the EEPROM</p>
|
||
<pre><code>~ flashrom -p ch341a_spi -w B450GX.63e
|
||
</code></pre>
|
||
<p>After waiting for the flash to finish, I was finally greeted with the gigabyte BIOS menu, finally marking this project as finished</p>
|
||
|
||
|
||
</div>
|
||
|
||
<footer class="post-footer">
|
||
<ul class="post-tags">
|
||
</ul>
|
||
</footer>
|
||
</article>
|
||
</main>
|
||
|
||
<footer class="footer">
|
||
<span>© 2025 <a href="https://mihitmittal.com/">Mihit Mittal</a></span> ·
|
||
|
||
<span>
|
||
Powered by
|
||
<a href="https://gohugo.io/" rel="noopener noreferrer" target="_blank">Hugo</a> &
|
||
<a href="https://github.com/adityatelange/hugo-PaperMod/" rel="noopener" target="_blank">PaperMod</a>
|
||
</span>
|
||
</footer>
|
||
<a href="#top" aria-label="go to top" title="Go to Top (Alt + G)" class="top-link" id="top-link" accesskey="g">
|
||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 6" fill="currentColor">
|
||
<path d="M12 6H0l6-6z" />
|
||
</svg>
|
||
</a>
|
||
|
||
<script>
|
||
let menu = document.getElementById('menu')
|
||
if (menu) {
|
||
menu.scrollLeft = localStorage.getItem("menu-scroll-position");
|
||
menu.onscroll = function () {
|
||
localStorage.setItem("menu-scroll-position", menu.scrollLeft);
|
||
}
|
||
}
|
||
|
||
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
|
||
anchor.addEventListener("click", function (e) {
|
||
e.preventDefault();
|
||
var id = this.getAttribute("href").substr(1);
|
||
if (!window.matchMedia('(prefers-reduced-motion: reduce)').matches) {
|
||
document.querySelector(`[id='${decodeURIComponent(id)}']`).scrollIntoView({
|
||
behavior: "smooth"
|
||
});
|
||
} else {
|
||
document.querySelector(`[id='${decodeURIComponent(id)}']`).scrollIntoView();
|
||
}
|
||
if (id === "top") {
|
||
history.replaceState(null, null, " ");
|
||
} else {
|
||
history.pushState(null, null, `#${id}`);
|
||
}
|
||
});
|
||
});
|
||
|
||
</script>
|
||
<script>
|
||
var mybutton = document.getElementById("top-link");
|
||
window.onscroll = function () {
|
||
if (document.body.scrollTop > 800 || document.documentElement.scrollTop > 800) {
|
||
mybutton.style.visibility = "visible";
|
||
mybutton.style.opacity = "1";
|
||
} else {
|
||
mybutton.style.visibility = "hidden";
|
||
mybutton.style.opacity = "0";
|
||
}
|
||
};
|
||
|
||
</script>
|
||
<script>
|
||
document.getElementById("theme-toggle").addEventListener("click", () => {
|
||
if (document.body.className.includes("dark")) {
|
||
document.body.classList.remove('dark');
|
||
localStorage.setItem("pref-theme", 'light');
|
||
} else {
|
||
document.body.classList.add('dark');
|
||
localStorage.setItem("pref-theme", 'dark');
|
||
}
|
||
})
|
||
|
||
</script>
|
||
</body>
|
||
|
||
</html>
|