Skip to content

Commit c2be84c

Browse files
committed
docs/variants/hardkernel-odroid-h4: Add
Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com> mkdocs.yml: Add hardkernel odroid h4 pages Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com> hardkernel_odroid_h4_plus/releases.md: Add Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com> hardkernel_odroid_h4/releases.md: Add newsletter subscribe url Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com> hardkernel_odroid_h4/releases.md: Add note "Coming soon." Co-authored-by: Michał Żygowski <michal.zygowski@3mdeb.com> hardkernel_odroid_h4/releases.md: Dasharo Pro Package Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com> unified/hardkernel/overview.md: Add Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com> hardkernel_odroid_h4/overview.md: Add missing links Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com> odroid_h4 overview.md: Add a short description Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com> odroid_h4 overview.md: Add an image of the device Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com> odroid_h4 overview.md: Add link to device's blogpost Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com> odroid_h4 overview: Remove the term "open source hardware" Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com> unified/hardkernel/building-manual.md: Add Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com> Update docs/variants/hardkernel_odroid_h4/building-manual.md Co-authored-by: Michał Żygowski <michal.zygowski@3mdeb.com> hardkernel_odroid_h4/building-manual.md: Remove tab Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com> unified/hardkernel/initial-deployment.md: Add Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com> hardkernel_odroid_h4/initial_deployment.md: Mention DTS Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com> odroid_h4 initial-deployment.md: Add G3&CMOS reset if fails to boot Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com> odroid_h4/initial-deployment.md: Update link to DTS zero touch Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com> unified/hardkernel/firmware-update.md: Add Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com> hardkernel_odroid_h4/firmware_update.md: update flash command Co-authored-by: Michał Żygowski <michal.zygowski@3mdeb.com> Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com> hardkernel_odroid_h4/firmware_update.md: Mention DTS Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com> hardkernel_odroid_h4/firmware-update.md: Update section name Co-authored-by: Michał Żygowski <michal.zygowski@3mdeb.com> unified/hardkernel/recovery.md: Add Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com> hardkernel_odroid_h4/recovery.md: Describe using flash jumper Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com> docs hardkernel: pre-commit Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com> hardkernel_odroid_h4/recovery.md: Reword dual bios recovery Co-authored-by: Michał Żygowski <michal.zygowski@3mdeb.com> hardkernel_odroid_h4/recovery.md: Remove tab Co-authored-by: Michał Żygowski <michal.zygowski@3mdeb.com> hardkernel_odroid_h4/recovery.md: Fix redirect to other section Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com> hardkernel_odroid_h4/recovery.md: URL to ODROID wiki recovery Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com> hardkernel_odroid_h4/recovery.md: Suggest hard reset after flashing Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com> odroid_h4 recovery.md: Link dual bios recovery instructions from WIKI Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com> hardkernel_odroid_h4_plus/hardware-matrix.md: Add Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com> hardkernel_odroid_h4/hardware-matrix.md: Fix PSU Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com> hardkernel_odroid_h4/hardware-matrix.md: Add RAM model from dmidecode Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com> unified/hardkernel/test-matrix.md: Add only Dasharo Compatibility Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com> unified/hardkernel/test-matrix.md: Add reference from script Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com> hardkernel_odroid_h4/test-matrix.md: Add compatibility links hardkernel_odroid_h4/test-matrix.md: Add performance tests Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com> hardkernel_odroid_h4/test-matrix.md: Add stability Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com> hardkernel_odroid_h4/test-matrix.md: Add performance Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com> hard\/test-matrix.md: Align table columns Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com> odroid_h4 hardware/test matrices: remove SATA Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>
1 parent ea47e6f commit c2be84c

File tree

11 files changed

+466
-0
lines changed

11 files changed

+466
-0
lines changed
173 KB
Loading

docs/images/odroid_h4.jpg

182 KB
Loading
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
# Dasharo firmware building guide
2+
3+
## Intro
4+
5+
This guide shows how to build Dasharo firmware for Hardkernel devices.
6+
7+
## Requirements
8+
9+
- Docker
10+
+ follow [Install Docker Engine on Ubuntu](https://docs.docker.com/engine/install/ubuntu/)
11+
+ follow [Post-installation steps for Linux](https://docs.docker.com/engine/install/linux-postinstall/)
12+
- Git
13+
+ `sudo apt-get install git`
14+
15+
## Building
16+
17+
To build Dasharo firmware image, first clone the coreboot repository:
18+
19+
```bash
20+
git clone https://github.com/Dasharo/coreboot.git
21+
```
22+
23+
then follow the steps below:
24+
25+
1. To build a specific version checkout to the version's tag.
26+
Skip this step otherwise.
27+
28+
```bash
29+
cd coreboot
30+
git checkout hardkernel_odroid_h4_<version>
31+
```
32+
33+
For example
34+
35+
```bash
36+
git checkout hardkernel_odroid_h4_v0.9.0
37+
```
38+
39+
2. Checkout submodules:
40+
41+
```bash
42+
git submodule update --init --checkout
43+
```
44+
45+
3. Build the firmware:
46+
47+
```bash
48+
./build.sh odroid_h4
49+
```
50+
51+
The resulting coreboot image will be placed in the coreboot directory as
52+
`hardkernel_odroid_h4_<version>.rom`.
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
# Firmware update
2+
3+
The following documentation describes the process of Dasharo open-source
4+
firmware update. If your device is currently flashed with the proprietary
5+
firmware please refer to the [Initial deployment](initial-deployment.md)
6+
documentation.
7+
8+
The update process may be different, depending on the currently installed
9+
Dasharo firmware version.
10+
11+
For simplicity of the process we recommend using
12+
[Dasharo Tools Suite](../../dasharo-tools-suite/overview.md).
13+
14+
Before starting the update procedure be sure to disable Dasharo BIOS Boot
15+
medium lock and Secure Boot:
16+
17+
1. Power on the device.
18+
2. While the device is booting, hold the `DELETE` key to enter the UEFI Setup
19+
Menu.
20+
3. Enter the `Dasharo System Features` menu using the arrow keys and Enter.
21+
4. Enter the [Dasharo Security Options](https://docs.dasharo.com/dasharo-menu-docs/dasharo-system-features/#dasharo-security-options)
22+
submenu.
23+
5. Verify the state of the `Lock the BIOS boot medium` option - if the option
24+
is chosen, press `Space` and then `F10` to save the changes.
25+
6. Go back to the main menu using the `ESC` key.
26+
7. Enter the `Device Manager` menu.
27+
8. Enter the [Secure Boot Configuration](https://docs.dasharo.com/dasharo-menu-docs/device-manager/#secure-boot-configuration)
28+
submenu.
29+
9. Verify that the `Current Secure Boot State` field says Disabled - if not,
30+
unselect the `Attempt Secure Boot` option below then press `F10` to save
31+
the changes.
32+
10. Reboot the device to properly apply the changes.
33+
34+
The settings of all the above options can be restored after a firmware
35+
update.
36+
37+
## Updating Dasharo manually
38+
39+
```bash
40+
flashrom -p internal -w hardkernel_odroid_h4_v<version>.rom --fmap -i WP_RO -i RW_SECTION_A
41+
```
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# Hardware configuration matrix
2+
3+
## Introduction
4+
5+
This document describes the hardware configuration used for validation of
6+
Dasharo on the Hardkernel ODROID H4.
7+
8+
## Hardkernel ODROID H4+
9+
10+
| Component | Description |
11+
|--------------------------------|---------------------------------------------|
12+
| **CPU** | Intel(R) Processor N97 |
13+
| **RAM** | Samsung M425R1GB4BB0-CWMOD |
14+
| **SSD** | Samsung SSD PRO 900 1TB |
15+
| **eMMC** | MMC PJ3032 |
16+
| **Flash memory** | Winbond W25Q128JV |
17+
| **USB Keyboard** | DELL KB216 |
18+
| **USB Mouse** | None |
19+
| **USB pendrives** | 1. SanDisk Ultra Flair USB 3.0 16 GB |
20+
| **Display** | HDMI 1920x1080p |
21+
| **Ethernet controller** | Intel i210 (on-board) |
22+
| **Network** | Local network wired connection |
23+
| **Remote Testing Environment** | RTE v1.1.0 |
24+
| **Power Control** | RTE v1.1.0 |
25+
| **Power supply** | ULLPOWER ICP65-150-4000 15V 5A |
26+
| **KVM** | PiKVM based on Raspberry Pi Zero 2w |
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
# Initial deployment
2+
3+
Initial flashing of Dasharo firmware can be done from Linux using flashrom with
4+
the internal programmer or using the Dasharo Tools Suite included in the Dasharo
5+
Pro Package subscription (formerly Dasharo Entry Subscription). An instruction
6+
on how to use the DTS can be found in the [DTS documentation](../../dasharo-tools-suite/documentation/features.md#dasharo-zero-touch-initial-deployment)
7+
8+
This document describes the process of building, installing and running
9+
flashrom on Ubuntu 24.04.
10+
11+
## Build flashrom
12+
13+
Please follow generic guide for [Dasharo flashrom fork](../../osf-trivia-list/deployment.md#how-to-install-dasharo-flashrom-fork).
14+
15+
## Reading flash contents
16+
17+
Always prepare a backup of the current firmware image. To read from the flash
18+
and save it to a file (`dump.rom`), execute the following command:
19+
20+
```bash
21+
flashrom -p internal -r dump.rom
22+
```
23+
24+
If you forgot to do this, you can get the original, proprietary
25+
firmware from the [ODROID wiki website](https://wiki.odroid.com/odroid-h4/hardware/h4_bios_update#bios_release)
26+
to restore it in case it is bricked. Using the firmware other than
27+
your own backup should be the last resort.
28+
29+
## Flashing Dasharo
30+
31+
To flash Dasharo on the platform, execute the following command - replace `[path]`
32+
with the path to the Dasharo image you want to flash, e.g. `hardkernel_odroid_h4_v0.9.0.rom`.
33+
34+
```bash
35+
sudo flashrom -p internal -w [path] --ifd -i bios
36+
```
37+
38+
After successful operation reboot the platform.
39+
40+
If the platforms fails to boot, try performing a CMOS reset:
41+
42+
1. Disconnect the power supply and the CMOS battery.
43+
1. Wait for 10 seconds
44+
1. Reconnect the power supply and the CMOS battery
45+
1. Press the power button
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
# Overview
2+
3+
## Hardkernel ODROID-H4 PLUS
4+
5+
<center>
6+
![](../../images/odroid_h4.jpg)
7+
</center>
8+
9+
Hardkernel ODROID-H4 PLUS is a small single-board computer with publicly
10+
available schematics and documentation. One of it's most noteworthy features is the
11+
use of two distinct switchable BIOS flash memory chips. This makes it a perfect
12+
device for experimenting with firmware by making the recovery process after
13+
bricking the device a breeze.
14+
15+
The device is described in detail on [blog.3mdeb.com](https://blog.3mdeb.com/2024/2024-07-25-odroid-h4-getting-started/)
16+
17+
## Documentation
18+
19+
- [Releases](./releases.md) - Groups information about all releases.
20+
- [Building Manual](./building-manual.md) - Describes how to build Dasharo
21+
compatible with the ODROID-H4 PLUS.
22+
- [Initial Deployment](./initial-deployment.md) - Describes initial Dasharo
23+
deployment methods (i. e. flashing new firmware) compatible with ODROID-H4
24+
PLUS.
25+
- [Firmware Update](./firmware-update.md) - Explains supported Dasharo
26+
open-source firmware update methods.
27+
- [Recovery](./recovery.md) - Gathers information on how to recover the platform
28+
from potential failure.
29+
- [Hardware Configuration Matrix](./hardware-matrix.md) - Describes the
30+
platform's hardware configuration used during the Dasharo firmware
31+
validation procedure.
32+
- [Test Matrix](./test-matrix.md) - Describes validation scope used during
33+
Dasharo firmware validation procedure.
Lines changed: 112 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,112 @@
1+
# Recovery
2+
3+
## Intro
4+
5+
The following documentation describes the process of recovering hardware from
6+
the brick state using an [RTE](../../transparent-validation/rte/introduction.md)
7+
and Dasharo open-source firmware.
8+
9+
## Dual BIOS
10+
11+
The **ODROID H4+ and ODROID-H4 Ultra** devices both have the Dual BIOS
12+
feature. If the device does not boot properly, the backup flash chip can be
13+
selected using the flash selector jumper.
14+
15+
![](../../images/odroid_flash_switch.jpg)
16+
*First bios chip selected using the flash selector*
17+
18+
1. Move the flash selector jumper to select the backup flash chip. If the
19+
device does not boot from any of the flash chips, an external flashing
20+
needs to be performed. In that case continue with the
21+
[External flashing](#external-flashing) section.
22+
2. If the device boots, boot to an OS.
23+
3. Move the flash selector jumper back to it's original position selecting the
24+
previous flash chip, from which the device does not boot.
25+
4. With the device working, an OS booted and the flash chip selector moved
26+
back, the firmware can be flashed using the command:
27+
28+
```bash
29+
flashrom -p internal -w [path_to_binary]
30+
```
31+
32+
5. After the flashing finishes reboot the device. If the platform does not boot
33+
a CMOS reset and boot from G3 state may be needed:
34+
35+
1. Unplug the CMOS battery and the power supply
36+
2. Wait for 10 seconds
37+
3. Plug the CMOS battery and power supply back in
38+
4. Press the power button
39+
40+
### Additional methods
41+
42+
Additional methods for flashing the firmware on Windows and using the UEFI Shell
43+
can be found on the [ODROID Wiki](https://wiki.odroid.com/odroid-h4/hardware/restore_h4_bios).
44+
45+
## External flashing
46+
47+
=== "RTE"
48+
### Prerequisites
49+
50+
* [Prepared RTE](../../transparent-validation/rte/v1.1.0/quick-start-guide.md)
51+
* 6x female-female wire cables
52+
53+
### Connections
54+
55+
To prepare the stand for flashing follow the steps described in
56+
the [Generic test stand setup](../../unified-test-documentation/generic-testing-stand-setup.md#detailed-description-of-the-process)
57+
58+
### Firmware flashing
59+
60+
To flash firmware follow the steps described below:
61+
62+
1. Login to RTE via `ssh` or `minicom`.
63+
2. Turn on the platform by connecting the power supply.
64+
3. Wait at least 5 seconds.
65+
4. Turn off the platform by using the power button.
66+
5. Wait at least 3 seconds.
67+
6. Set the proper state of the SPI by using the following commands on RTE:
68+
69+
```bash
70+
# set SPI Vcc to 3.3V
71+
echo 1 > /sys/class/gpio/gpio405/value
72+
# SPI Vcc on
73+
echo 1 > /sys/class/gpio/gpio406/value
74+
# SPI lines ON
75+
echo 1 > /sys/class/gpio/gpio404/value
76+
```
77+
78+
7. Wait at least 2 seconds.
79+
8. Disconnect the power supply from the platform.
80+
9. Wait at least 2 seconds.
81+
10. Check if the flash chip is connected properly
82+
83+
```bash
84+
flashrom -p linux_spi:dev=/dev/spidev1.0,spispeed=16000
85+
```
86+
87+
11. Flash the platform by using the following command:
88+
89+
```bash
90+
flashrom -p linux_spi:dev=/dev/spidev1.0,spispeed=16000 -w [path_to_binary]
91+
```
92+
93+
> Flashing with flashrom takes about 1 minute.
94+
95+
12. Change back the state of the SPI by using the following commands:
96+
97+
```bash
98+
echo 0 > /sys/class/gpio/gpio404/value
99+
echo 0 > /sys/class/gpio/gpio405/value
100+
echo 0 > /sys/class/gpio/gpio406/value
101+
```
102+
103+
13. Turn on the platform by connecting the power supply.
104+
105+
The first boot of the platform after proceeding with the above procedure can
106+
take much longer than normal.
107+
108+
=== "CH341A"
109+
For instructions on how to perform a recovery
110+
using the CH341A external programmer refer to
111+
the [ODROID Wiki](https://wiki.odroid.com/odroid-h4/hardware/restore_h4_bios#using_tool_and_soldering_skills)
112+
.
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# Dasharo compatible with Hardkernel ODROID H4+
2+
3+
Following Release Notes describe status of Open Source Firmware development for
4+
Hardkernel ODROID H4
5+
6+
For details about our release process please read
7+
[Dasharo Standard Release Process](../../dev-proc/standard-release-process.md).
8+
9+
<center>
10+
11+
[Subscribe to Hardkernel ODROID H4 Dasharo Release Newsletter]
12+
[newsletter]{ .md-button .md-button--primary .center }
13+
14+
</center>
15+
16+
Coming soon in the [Dasharo Pro Package for Network Appliance](https://shop.3mdeb.com/shop/dasharo-pro-package/1-year-dasharo-entry-subscription-for-network-appliance/).
17+
18+
<!-- TODO -->
19+
[newsletter]: https://newsletter.3mdeb.com/subscription/pULA4K0Eo

0 commit comments

Comments
 (0)