# TH1520 coreboot + OpenSBI + EDK2 firmware

> **Warning: A cooling fan or heat dissipation device is required.**
> Default frequency is 1.84 GHz.
> Risk of hardware damage; proceed with caution.

All four images use coreboot, OpenSBI and EDK2. DDR initialization is
native coreboot code. There is no U-Boot SPL or runtime in these images.

| Board | RAM recovery | Normal firmware |
| --- | --- | --- |
| Milk-V Meles | meles-ram-recovery.bin | meles-spi.bin |

Recovery images are 1 MiB; normal images are 2 MiB. Use the matching
board image. These builds support the dual-rank 8/16 GiB DDR profiles.
Capacity comes from physical address probes, not the DTB memory size.
Both profiles start AON and verify CPU rail voltage before 1848 MHz.

## Install

Verify the files with `sha256sum -c SHA256SUMS`.

Connect USB-C. Hold BOOT, tap RESET, then release BOOT. BootROM should
appear as USB `2345:7654` and be listed by `fastboot devices`.

For Meles:

```sh
fastboot -S 0 flash ram meles-ram-recovery.bin
fastboot reboot
fastboot -s meles-recovery getvar product
fastboot -s meles-recovery -S 0 flash spi meles-spi.bin
fastboot -s meles-recovery reboot
```

Wait for the recovery device to reconnect and confirm its product
before flashing. BootROM `flash ram` does not write persistent media.
The storage write reads back the image for verification. Meles keeps
the final 256 KiB of SPI for variables.

Normal firmware has a 10-second countdown: Enter continues boot,
F2 opens setup, F9 opens USB Fastboot and F12 opens the boot menu.
The raw `spi` update commands above run in RAM Recovery.
