99 lines
3.7 KiB
Markdown
99 lines
3.7 KiB
Markdown
# BC-250 Console — BIOS Flash Guide
|
|
|
|
Why this is needed: stock firmware locks the RAM split at 8/8 or 4/12
|
|
(CPU/GPU) and hides the menu that changes it. The console needs
|
|
**512 MB VRAM** (the GPU then shares the rest dynamically), and that setting
|
|
only exists in Segfault's modded firmware.
|
|
|
|
Files (local `firmware/` folder, NOT in this repo):
|
|
|
|
| File | Purpose |
|
|
|---|---|
|
|
| `BC250_3.00_CHIPSETMENU.ROM` | **Flash this** — P3.00 with the chipset menu exposed |
|
|
| `BC250_3.00.ROM` | Segfault's stock P3.00 dump — reference/recovery only |
|
|
| `SHA256SUMS` | Verify both before flashing |
|
|
|
|
> ⚠️ A bad flash without a backup = brick. The rules: **dump your own
|
|
> board's firmware first**, verify the dump twice, and never flash with the
|
|
> board powered.
|
|
|
|
## 0. What you need
|
|
|
|
- CH347 programmer (or Raspberry Pi Pico running serprog firmware)
|
|
- 6 female-female DuPont jumper wires (short ones — SPI hates long wires)
|
|
- `flashrom` on the PC driving the programmer: `sudo apt install flashrom`
|
|
- The board **completely disconnected from the PSU** (not just "off")
|
|
|
|
The BIOS chip is a Winbond 16 MiB SPI flash (`BIOS_A1`), but you don't touch
|
|
the chip itself — the board exposes it on the **J4004** 2.54 mm header:
|
|
|
|
```
|
|
[ GND SCLK MOSI UNK ] UNK: leave unconnected
|
|
[ VCC CS MISO ] VCC is 3.3 V — NEVER connect a 5 V programmer line
|
|
^ (pin-1 triangle)
|
|
```
|
|
|
|
Wire GND, SCLK, MOSI, VCC, CS, MISO to the matching pins on the programmer
|
|
(CH347: use its 3.3 V setting/jumper). The programmer's 3.3 V powers just
|
|
the flash chip while the board itself stays dead.
|
|
|
|
## 1. Backup (do not skip, do not rush)
|
|
|
|
```bash
|
|
flashrom -p ch347_spi # should detect a W25Q128-series chip
|
|
flashrom -p ch347_spi -r stock-A.rom
|
|
flashrom -p ch347_spi -r stock-B.rom
|
|
cmp stock-A.rom stock-B.rom && echo "backup consistent"
|
|
```
|
|
|
|
(Pi Pico instead: `-p serprog:dev=/dev/ttyACM0:115200`.)
|
|
|
|
- Two identical reads = wiring is solid. If they differ, fix wiring/wire
|
|
length before going further — a flaky read means a flaky write.
|
|
- Copy `stock-A.rom` somewhere safe (this folder + another machine). This is
|
|
YOUR board's firmware, including any board-specific data — Segfault's
|
|
stock dump is not a substitute.
|
|
|
|
## 2. Flash
|
|
|
|
```bash
|
|
sha256sum -c SHA256SUMS # verify the modded ROM first
|
|
flashrom -p ch347_spi -w BC250_3.00_CHIPSETMENU.ROM
|
|
```
|
|
|
|
flashrom verifies after writing and prints `VERIFIED`. If the write or
|
|
verify fails: do not power the board — re-check wiring and re-flash. The
|
|
board is only bricked if you power it up with a half-written chip and give
|
|
up; the same header always lets you write again.
|
|
|
|
Disconnect the programmer completely before connecting the PSU.
|
|
|
|
## 3. BIOS settings (first boot after the flash)
|
|
|
|
Connect DisplayPort + keyboard, power on, mash `Del` to enter setup.
|
|
|
|
1. `Chipset → GFX Configuration → GFX Configuration`:
|
|
- `Integrated Graphics Controller` = **Forced**
|
|
- `UMA Mode` = **UMA_SPECIFIED**
|
|
- `UMA Frame Buffer Size` = **512M**
|
|
2. **Disable IOMMU** (in the newly exposed chipset/NBIO menus).
|
|
3. Confirm the `AUTO_PWRON1` jumper is on pins 1-2 (factory default) so the
|
|
board boots when the PSU switches on — this is the console's power-switch
|
|
design (see WIRING.md §5).
|
|
4. Save & exit.
|
|
|
|
Note: if your board shipped on firmware P4.00G, the memory split can get
|
|
"stuck" — pull the CR2032 coin cell and use the `CLRCMOS1` jumper (pins 2-3
|
|
momentarily, then back to 1-2), then redo the settings.
|
|
|
|
## 4. Sanity check
|
|
|
|
Boot the Bazzite installer USB (or the installed console). Once in Linux:
|
|
|
|
```bash
|
|
free -h # total RAM should be ~15 GB (16 GB minus 512 MB VRAM)
|
|
```
|
|
|
|
If you see ~8 GB or ~4 GB, the UMA setting didn't take — revisit §3/§4.
|
|
Then proceed with the install per BUILD-CONSOLE.md.
|