How to update the ODROID-H3's BIOS
- H3 BIOS files can only be used on the ODROID-H3 and H3+.
- Do NOT use these BIOS files on the ODROID-H2 and H2+.
- Conversely do NOT use the H2 BIOS files on the ODROID-H3 and H3+.
Introduction
The reasons you will want to flash the ODROID-H3 BIOS are:
- Hardkernel has released a new version that brings new or enhanced features and/or bug fixes.
- A Hardkernel support engineer told you on the forum to flash a specific BIOS version.
- You want to switch between the 1 X x4 lanes and 4 X x1 lanes PCIe bifurcation of the NVMe slot. The former is for using a PCIe Gen 3 x4 NVMe SSD. The latter is for using the ODROID H-series Net card.
Requirements
- a USB key drive
Checking your current BIOS firmware version
Accessing the BIOS
- Power off your ODROID-H3.
- Press the Power button on your ODROID-H3, then Press “DEL” key while booting. You will get access to the BIOS screen shown below.
- Check the Project Version and Build Date.
Preparing the USB key drive for updating BIOS
Formatting the USB key drive using the FAT32 filesystem
On Windows
1. Plug the USB key drive into your PC.
2. Right click on the USB key drive icon and then select Format… from the contextual menu.
3. Set the parameters as they appear in screenshot shown below and then click on Start.
On Linux Ubuntu
1. Plug the USB key drive into your PC.
2. Run the Disks utility (see screenshot shown below).
3. Format the partition as FAT (see screenshots shown below).
Copying the BIOS update tool and the latest BIOS firmware to the USB key drive
You can download the BIOS update tool and firmware using this link: https://dn.odroid.com/ODROID-H3/bios/
1. Download bios zip and related sha256sum hash file.
2. Verify the bios zip file with SHA256sum hash value whether is OK or not.
- host
C:\Users\neal.DESKTOP-NEAL\Downloads>ls JSL-H3_B1.06.zip* JSL-H3_B1.06.zip JSL-H3_B1.06.zip.sha256 C:\Users\neal.DESKTOP-NEAL\Downloads>sha256sum -c JSL-H3_B1.06.zip.sha256 JSL-H3_B1.06.zip: OK
3. unzip the .zip archive file you just downloaded.
4. Copy the extracted files to the USB key drive.
5. Make sure the USB key drive now contains the files as they appear in the screenshot shown below.
Update to the latest BIOS
Pull the power cable off and at the same time pull off the backup battery on your machine and plug them back in after a few seconds.
The reason why it has the process is to make clear the current bios settings and then load the new bios settings correctly after the new bios update is done.
Enter the BIOS
- Power off your ODROID-H3 and pull off the backup battery.
- Press the Power button on your ODROID-H3, then Press “DEL” key while booting.
- Move to “Save & Exit” tab.
Enter an EFI shell and Run a fb.nsh
Go to the Save & Exit page. In the Boot Override section, select the USB key + Enter.
You will boot directly from the USB Key.
OR
Go to the Boot page. In the Boot Priorities section, change Boot option #1 to a USB key.
From the next booting, you will boot directly from the USB key.
Find the fs node of your memory stick
Enter fs0: or fs1: etc… which is marked as Removable HardDisk.
To ensure that you select a proper disk, enter ls and see the files on the root directory of the disk.
- Do not use blk0, blk1, …. It showed like aliased with corresponding fs locations, but the update binary won't work under the blk location.
Run the nsh batch file
- fb.nsh : H3/H3+ regular bios update
- fbnet.nsh : H3/H3+ for Net Card
fb.nsh file is just execute this command Fpt.efi -f JSL-H3_B1.04.bin.
If you want to update the specific bios version - In this example shows the bios for Net card ( JSL-H3_B1.04-netcard.bin ), write down and execute like this Fpt.efi -f JSL-H3_B1.04-netcard.bin
Do not turn off your ODROID-H3 while the BIOS is updating.
You can see the results like the screenshot below when the update is finished.
Reboot and Check the updated BIOS version
Then pull out the power code ( UPS also pulls out, if it connected ), and after a couple of seconds, plug the power code back into the ODROID-H3.
The BIOS will be loaded with the new settings on the ODROID-H3. After that, you can put the backup battery on it.
To enter the bios mode, press “DEL” key while booting.
BIOS Release
- Please do cold-boot after updating BIOS. Pull the cord out from the board and reconnect that.
- GLK-ESF BIOS is designed for our Net Card product. You can see the detailed information of the ESF BIOSes here.
JSL-H3 1.15
- Project Version: JSL-H3 1.15 x64
- Build Date and Time: 07/19/2023 10:44:14
Changes
- Open “Above 4G Pci Decode” option.
- Open “New Boot Option Policy” option. More detailed explaination
- Update PXE firmware for REALTEK Netcard.
- Adjust some security settings to solve the PXE Boot error.
JSL-H3 1.14
- Project Version: JSL-H3 1.14 x64
- Build Date and Time: 02/27/2023 19:37:12
Changes
- Support generating UUID through MAC address.
JSL-H3 1.13
- Project Version: JSL-H3 1.13 x64
- Build Date and Time: 02/14/2023 14:05:41
Changes
JSL-H3 1.12
- Project Version: JSL-H3 1.12 x64
- Build Date and Time: 01/18/2023 16:59:58
Changes
- Fixed the flooding IRQ16 interrupts issue caused by floating SMB_ALERT# signal.
JSL-H3 1.11
- Project Version: JSL-H3 1.11 x64
- Build Date and Time: 01/07/2023 15:56:29
Changes
- Fix the missing C-State problem in B1.09.
- Fix the flooding ACPI alerts in Linux kernel messages. We've tested with NVMe, SATA, eMMC and USB boot media.
JSL-H3 1.09
- Project Version: JSL-H3 1.09 x64
- Build Date and Time: 11/28/2022 11:58:01
Changes
- Improve the DDR4 memory module speed detection.
- Fix the ACPI ERROR message while boot from eMMC/SATA/USB storage devices.
- Add a menu to manually configure the memory module timingp. ( Chipset –> System Agent (SA) Configuration –> Memory Configuration )
JSL-H3 1.08
- Project Version: JSL-H3 1.08 x64
- Build Date and Time: 11/10/2022 16:58:12
Changes
- Fix the compatibility issue a couple of XMP capable DDR4 DRAM modules.
- Reduce the very first booting time from ~90 seconds to ~35 seconds.
- Add up(K)-down(M) keys to scroll the description in Setup page.
- Set the ASPM settings to 'Auto' as default in NetCard version and 'Disabled' as default in Normal version.
Note that you have to manually change the ASPM value of the PCIe Lane #1 and #2 to 'Auto' to reduce the power consumption about 1.5Watt.
- Reduce the ACPI BIOS warning texts in the Linux kernel message.
- Add a menu to setup the VT-d function like below the picture.
JSL-H3 1.06
- Project Version: JSL-H3 1.06 x64
- Build Date and Time: 10/25/2022 18:25:19
Changes
- Change the default value of the PCIe ASPM option to 'Disabled' from 'Auto' for better compatibility with M.2 NVMe storage devices. According to our measurements, the power consumption difference was negligible.
- Support the PCIe-to-SATA host controller JMB585 by adding a JMicron BIOS extension code : 5 SATA-III Ports
- Improved the description of the PL4 configuration menu
JSL-H3 1.04
- Project Version: JSL-H3 1.04 x64
- Build Date and Time: 10/12/2022 09:31:07
Changes
- Added I2C clock speed selection among 100Khz, 400Khz, 1Mhz and 3.4Mhz.
- Fixed the wrong explanation about Unlimited Performance Mode.
JSL-H3 1.02
- Project Version: JSL-H3 1.02 x64
- Build Date and Time: 08/23/2022 10:00:27
Changes
- The first production BIOS
Troubleshooting
If you have a memory module which is not recognized, you can try this BIOS.
But you need a compatible module to run the BIOS update process ironically.