Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions data/catalogue/goke.yml
Original file line number Diff line number Diff line change
Expand Up @@ -194,6 +194,7 @@ socs:
kernel: ''
uboot_filename: u-boot-gk7205v500-nor.bin
uboot_nand_filename: u-boot-gk7205v500-nand.bin
nor_split: true
linux_filename: openipc.gk7205v500-nor-lite.tgz
notes: ''
urlname: gk7205v500
Expand All @@ -209,8 +210,8 @@ socs:
kernel: ''
uboot_filename: u-boot-gk7205v510-nor.bin
uboot_nand_filename: u-boot-gk7205v510-nand.bin
linux_filename: openipc.gk7205v510-nor-lite.tgz
nand_board: gk7205v500
nor_split: true
linux_filename: openipc.gk7205v500-nor-lite.tgz
notes: ''
urlname: gk7205v510
build_status_url: https://github.com/OpenIPC/firmware/actions/workflows/gk7205v500_images.yml/badge.svg
Expand All @@ -225,6 +226,7 @@ socs:
kernel: ''
uboot_filename: u-boot-gk7205v530-nor.bin
uboot_nand_filename: u-boot-gk7205v530-nand.bin
nor_split: true
linux_filename: openipc.gk7205v500-nor-lite.tgz
notes: ''
urlname: gk7205v530
Expand Down
5 changes: 3 additions & 2 deletions service/internal/catalogue/catalogue.go
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,9 @@ type SoC struct {
// uknand; run urnand` for every SoC that still boots that way.
UBootNANDFilename string `yaml:"uboot_nand_filename"`
// NANDBoard is the build name upstream publishes this SoC's NAND
// firmware under, when that is not the NOR one: GK7205V510 has a NOR
// build of its own, but its NAND firmware is the GK7205V500 build.
// firmware under, when that is not the NOR one. No SoC needs it today:
// GK7205V510, which had a NOR build of its own, now installs the
// GK7205V500 build on both.
NANDBoard string `yaml:"nand_board"`
// NORSplit is a SoC whose firmware ships the split NOR layout,
// openipc.<board>-nor-<edition>-split.tgz: one firmware.bin (a uImage,
Expand Down
4 changes: 2 additions & 2 deletions service/internal/firmware/testdata/boards.json
Original file line number Diff line number Diff line change
Expand Up @@ -305,10 +305,10 @@
"urlname": "gk7205v510",
"vendor": "Goke",
"model": "GK7205V510",
"board": "gk7205v510",
"board": "gk7205v500",
"uboot": "u-boot-gk7205v510-nor.bin",
"uboot_nand": "u-boot-gk7205v510-nand.bin",
"nor_lite": "openipc.gk7205v510-nor-lite.tgz",
"nor_lite": "openipc.gk7205v500-nor-lite.tgz",
"nand_lite": "openipc.gk7205v500-nand-lite.tgz"
},
{
Expand Down
19 changes: 10 additions & 9 deletions service/internal/firmware/testdata/release-index.json
Original file line number Diff line number Diff line change
Expand Up @@ -153,10 +153,16 @@
"updated_at": "2026-09-23T18:31:36Z",
"release": "nightly-20260923-830fa4c"
},
"openipc.gk7205v510-nor-lite.tgz": {
"size": 6443090,
"digest": "sha256:4a40237a61fa5ba607b7c1ce5c8fa7abe6a95b91001137f5be6de4dbfe895eeb",
"updated_at": "2026-09-23T18:31:39Z",
"openipc.gk7205v500-nor-lite-split.tgz": {
"size": 7133113,
"digest": "sha256:115e0a569d30e06374170080962d506cde4c0c4f436ee59b672353eb820082b9",
"updated_at": "2026-09-23T18:31:35Z",
"release": "nightly-20260923-830fa4c"
},
"openipc.gk7205v500-nor-ultimate-split.tgz": {
"size": 8654640,
"digest": "sha256:6ad41b0e4fd158f81458c27d4266c99ce1ccfe34cb0286efe0d7505448e0363c",
"updated_at": "2026-09-23T18:31:37Z",
"release": "nightly-20260923-830fa4c"
},
"openipc.gk7605v100-nor-lite.tgz": {
Expand Down Expand Up @@ -1419,11 +1425,6 @@
"kernel_kb": 1897,
"rootfs_kb": 6980
},
"gk7205v510-lite": {
"flash_mb": 8,
"kernel_kb": 1897,
"rootfs_kb": 4416
},
"gk7605v100-lite": {
"flash_mb": 8,
"kernel_kb": 1856,
Expand Down
8 changes: 4 additions & 4 deletions service/internal/wizard/testdata/documents.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"combinations": 10788,
"combinations": 10800,
"files": {
"ak3916ev300": "95a4bfb1fe638dfe8567b7356fdd20aeccaee9891b7453ad03e351cb70670469",
"ak3916ev301": "264ff93cb0bc8655b2973eb1a4423631d949e1d6b8e24d18ab5c57b9b14665b5",
Expand Down Expand Up @@ -31,9 +31,9 @@
"gk7205v200": "91189f0539d10bf27373645c8cb77f28d89a0ca54892bfc12d547e7daf2f4a7d",
"gk7205v210": "f3dc3584d8a91954114df24083a59d2b0627a95cbc5620eb39479bfb76b1e834",
"gk7205v300": "d839ef7a0752afa630fa9c8303ea38f087f03fcc6b3cb8d8595f942f2595cf75",
"gk7205v500": "c1a561e2d2270d643ccface15233499f931ca735b91b63368e1b298526fa98e6",
"gk7205v510": "1555a335002054e30e2319155eead4fa25469ddadf845d3d418b55634206024a",
"gk7205v530": "73a662d8d94a284159c6bdbb9b28a3ec3ab805d22a47bca059f816d8e72ddba9",
"gk7205v500": "153014abf85ca5d1fc417af1e27c212473c24e79518bdc6fe1ec5002e6adec77",
"gk7205v510": "6e77663649c2dde2a8b6351871906428f450cb4d0e926f27068bcc2fc25d9a3b",
"gk7205v530": "d044e0ff107936c4fa22cf4c223b78316d7ec3641b9e6604df762e0f25a40dc0",
"gk7206v10": "1087f9b56bdf07afaa27685364bbcd2a77c1b63dfb016f28845dbd69e36f1e6a",
"gk7206v10b": "1c9b76d25e405089e630bf14e3ba7ef39a8185f5537bda9beccbb4c8af446494",
"gk7206v11": "7bf2acae0d92d9856e81952e1a15e12c3610a439d3d35a791f8ca7fa2dde7635",
Expand Down
32 changes: 18 additions & 14 deletions service/internal/wizard/wizard_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -322,32 +322,36 @@ func TestUBINandWithoutItsBootloaderIsNotOffered(t *testing.T) {
}
}

// GK7205V510 has a NOR build of its own; its NAND firmware is the GK7205V500
// build (nand_board), and each flash type names its own.
func TestNANDBoardIsUsedForNANDOnly(t *testing.T) {
// GK7205V510 installs the GK7205V500 build on NOR and on NAND alike, as
// defib does: one firmware serves the V500 family. Its bootloaders stay its
// own, and on NOR, where the split package is published, it is the split
// image.
func TestV510InstallsTheV500Build(t *testing.T) {
cat, idx := inputs(t)
d := decode(t, Document(cat.SoC("gk7205v510"), idx))
if d["board"] != "gk7205v510" {
t.Errorf("board %v, want the NOR build gk7205v510", d["board"])
if d["board"] != "gk7205v500" {
t.Errorf("board %v, want the gk7205v500 build", d["board"])
}
pool := d["blocks"].(map[string]any)
sawNand := false
seen := map[string]bool{}
for _, raw := range d["combinations"].([]any) {
c := raw.(map[string]any)
if c["flash_type"] != "nand" {
continue
}
sawNand = true
ft := c["flash_type"].(string)
seen[strings.TrimRight(ft, "0123456789m")] = true
var lines []string
for _, l := range pool[c["blocks"].(map[string]any)["flashing_linux"].(string)].(map[string]any)["lines"].([]any) {
lines = append(lines, l.(string))
}
if all := strings.Join(lines, "\n"); !strings.Contains(all, "rootfs.ubi.gk7205v500") {
t.Errorf("NAND install does not use the gk7205v500 build:\n%s", all)
all := strings.Join(lines, "\n")
if strings.Contains(all, "gk7205v510") || !strings.Contains(all, "gk7205v500") {
t.Errorf("%s install does not use the gk7205v500 build:\n%s", ft, all)
}
if strings.HasPrefix(ft, "nor") && !strings.Contains(all, "firmware.bin.gk7205v500") {
t.Errorf("%s install is not the split image:\n%s", ft, all)
}
}
if !sawNand {
t.Errorf("no NAND combination for gk7205v510")
if !seen["nor"] || !seen["nand"] {
t.Errorf("combinations cover %v, want nor and nand", seen)
}
}

Expand Down
Loading