Subject: Re: bug#37286: Make a faster method to list supported boards.

From: Jesse Gibbons <[email-masked]>
Date: Mon, 02 Sep 2019 20:07:53 -0600

On Mon, 2019-09-02 at 22:49 +0200, Danny Milosavljevic wrote:
> Hi,
> 
> On Mon, 02 Sep 2019 12:52:49 -0600
> Jesse Gibbons <[email-masked]> wrote:
> 
> > guix tries to build an entire system. It doesn't look like it
> > checks if
> > "dne-board" is a valid board until it is building the image. It
> > takes
> > hours to cross-compile the kernel, and even longer if the kernel
> > needs
> > to be deblobbed.
> 
> Yes, that's true.
> 
> For better or for worse, there are a LOT of different ARM boards.
> 
> Back when I implemented that part I thought that when you want to
> find out
> whether your board is supported, there's a good chance that you want
> to
> install Guix anyway--so you need the system image anyway.
If the bootloader build fails, which appears necessary to generate the
list, doesn't the system build fail?
> 
> If it turns out not to be supported you just uselessly built a lot of
> stuff--but the substitute cache should have cached all that stuff
> anyway.
> 
> But for some reason the ARM build farm substitute cache has a very
> bad hit
> rate (I remember waiting MONTHS to finally get a "flash-image"
> substitute
> that I didn't build myself).
It would be good to find out what's going on there. How many concurrent
builds can the build farm handle? 
> 
> If we decided to do so, we could limit ourselves to just a few that
> we
> specially support--but that would make Guix System really a non-
> universal
> operating system.  (with the current state of Guix ARM implementation
> it is
> anyway)
Guix is a libre operating system. The fact that you need to carefully
choose the hardware it can use means universal use is not officially
supported. But if hardware is supported, I think we should be able to
install guix onto it, and the users should be able to look up if it is
supported.
> 
> It would be easy to get the list of supported u-boot targets from the
> derivation.  It might be that Guix Data Service would help with that
> (see "More progress with the Guix Data Service" by Christopher
> Baines).
That sounds like an interesting article, but my search engine of choice
doesn't know where it is. Would you mind providing a link please?
> 
> Or we can maintain a list in the package definition ourselves.
The list would be most accurate if :
- The user keeps the building install up-to-date.
- We keep the list up-to-date.
This solution is good as long as we are diligent to update the list
when a new board is added.
> What do you think?
The behavior described in the manual is implemented in the make-u-boot-
package function in gnu/packages/bootloaders.scm, in the replaced
'configure phase. If it could be moved from that function to a script
(maybe guix system list-boards), that would be the best solution IMHO. 

At this point, the fastest way to get the list would be "guix package
-e '((@ (gnu packages bootloaders) make-u-boot-package) "dneboard"
"arm-linux-gnueabihf")'" and view the end of the resulting log. I
tested this, and it takes a minute at most. It's still needlessly
complicated though -- the boards listed are not limited to the triplet.

Here's what it gives me (it's very long):
Invalid board name. Valid board names are:- 10m50
- 3c120
- A10-OLinuXino-Lime
- A10s-OLinuXino-M
- A13-OLinuXino
- A13-OLinuXinoM
- A20-Olimex-SOM-EVB
- A20-Olimex-SOM204-EVB-eMMC
- A20-Olimex-SOM204-EVB
- A20-OLinuXino-Lime2-eMMC
- A20-OLinuXino-Lime2
- A20-OLinuXino-Lime
- A20-OLinuXino_MICRO-eMMC
- A20-OLinuXino_MICRO
- A33-OLinuXino
- a64-olinuxino
- adp-ae3xx
- adp-ag101p
- ae350_rv32
- ae350_rv64
- Ainol_AW1
- alt
- am335x_baltos
- am335x_boneblack_vboot
- am335x_evm
- am335x_hs_evm
- am335x_hs_evm_uart
- am335x_igep003x
- am335x_pdu001
- am335x_shc
- am335x_shc_ict
- am335x_shc_netboot
- am335x_shc_sdboot
- am335x_sl50
- am3517_crane
- am3517_evm
- am43xx_evm
- am43xx_evm_qspiboot
- am43xx_evm_rtconly
- am43xx_evm_usbhost_boot
- am43xx_hs_evm
- am57xx_evm
- am57xx_hs_evm
- am57xx_hs_evm_usb
- am65x_evm_a53
- am65x_evm_r5
- amarula_a64_relic
- amcore
- Ampe_A76
- ap121
- ap143
- ap325rxa
- ap_sh4a_4a
- apalis-tk1
- apalis_imx6
- apalis_imx6_nospl_com
- apalis_imx6_nospl_it
- apalis_t30
- apf27
- apx4devkit
- aristainetos2
- aristainetos2b
- aristainetos
- armadillo-800eva
- arndale
- aspenite
- astro_mcf5373l
- at91rm9200ek
- at91rm9200ek_ram
- at91sam9260ek_dataflash_cs0
- at91sam9260ek_dataflash_cs1
- at91sam9260ek_nandflash
- at91sam9261ek_dataflash_cs0
- at91sam9261ek_dataflash_cs3
- at91sam9261ek_nandflash
- at91sam9263ek_dataflash_cs0
- at91sam9263ek_dataflash
- at91sam9263ek_nandflash
- at91sam9263ek_norflash_boot
- at91sam9263ek_norflash
- at91sam9g10ek_dataflash_cs0
- at91sam9g10ek_dataflash_cs3
- at91sam9g10ek_nandflash
- at91sam9g20ek_2mmc
- at91sam9g20ek_2mmc_nandflash
- at91sam9g20ek_dataflash_cs0
- at91sam9g20ek_dataflash_cs1
- at91sam9g20ek_nandflash
- at91sam9m10g45ek_mmc
- at91sam9m10g45ek_nandflash
- at91sam9n12ek_mmc
- at91sam9n12ek_nandflash
- at91sam9n12ek_spiflash
- at91sam9rlek_dataflash
- at91sam9rlek_mmc
- at91sam9rlek_nandflash
- at91sam9x5ek_dataflash
- at91sam9x5ek_mmc
- at91sam9x5ek_nandflash
- at91sam9x5ek_spiflash
- at91sam9xeek_dataflash_cs0
- at91sam9xeek_dataflash_cs1
- at91sam9xeek_nandflash
- Auxtek-T003
- Auxtek-T004
- avnet_ultra96_rev1
- axm
- axs101
- axs103
- B4420QDS
- B4420QDS_NAND
- B4420QDS_SPIFLASH
- B4860QDS
- B4860QDS_NAND
- B4860QDS_SECURE_BOOT
- B4860QDS_SPIFLASH
- B4860QDS_SRIO_PCIE_BOOT
- ba10_tv_box
- Bananapi
- bananapi_m1_plus
- bananapi_m2_berry
- bananapi_m2_plus_h3
- bananapi_m2_plus_h5
- Bananapi_M2_Ultra
- bananapi_m2_zero
- Bananapi_m2m
- bananapi_m64
- Bananapro
- bayleybay
- bcm11130
- bcm11130_nand
- bcm23550_w1d
- bcm28155_ap
- bcm28155_w1d
- bcm7260
- bcm7445
- bcm911360_entphn-ns
- bcm911360_entphn
- bcm911360k
- bcm958300k-ns
- bcm958300k
- bcm958305k
- bcm958622hr
- bcm958712k
- bcm963158_ram
- bcm968380gerg_ram
- bcm968580xref_ram
- beaver
- bg0900
- birdland_bav335a
- birdland_bav335b
- bitmain_antminer_s9
- bk4r1
- blanche
- boston32r2
- boston32r2el
- boston32r6
- boston32r6el
- boston64r2
- boston64r2el
- boston64r6
- boston64r6el
- brppt1_mmc
- brppt1_nand
- brppt1_spi
- brxre1
- BSC9131RDB_NAND
- BSC9131RDB_NAND_SYSCLK100
- BSC9131RDB_SPIFLASH
- BSC9131RDB_SPIFLASH_SYSCLK100
- BSC9132QDS_NAND_DDRCLK100
- BSC9132QDS_NAND_DDRCLK100_SECURE
- BSC9132QDS_NAND_DDRCLK133
- BSC9132QDS_NAND_DDRCLK133_SECURE
- BSC9132QDS_NOR_DDRCLK100
- BSC9132QDS_NOR_DDRCLK100_SECURE
- BSC9132QDS_NOR_DDRCLK133
- BSC9132QDS_NOR_DDRCLK133_SECURE
- BSC9132QDS_SDCARD_DDRCLK100
- BSC9132QDS_SDCARD_DDRCLK100_SECURE
- BSC9132QDS_SDCARD_DDRCLK133
- BSC9132QDS_SDCARD_DDRCLK133_SECURE
- BSC9132QDS_SPIFLASH_DDRCLK100
- BSC9132QDS_SPIFLASH_DDRCLK100_SECURE
- BSC9132QDS_SPIFLASH_DDRCLK133
- BSC9132QDS_SPIFLASH_DDRCLK133_SECURE
- bubblegum_96
- C29XPCIE
- C29XPCIE_NAND
- C29XPCIE_NOR_SECBOOT
- C29XPCIE_SPIFLASH
- C29XPCIE_SPIFLASH_SECBOOT
- caddy2
- cairo
- calimain
- cardhu
- cei-tk1-som
- cgtqmx6eval
- cherryhill
- chiliboard
- CHIP
- CHIP_pro
- chromebit_mickey
- chromebook_bob
- chromebook_jerry
- chromebook_link64
- chromebook_link
- chromebook_minnie
- chromebook_samus
- chromebook_speedy
- chromebox_panther
- Chuwi_V7_CW0825
- ci20_mmc
- cl-som-am57x
- cl-som-imx7
- clearfog
- clearfog_gt_8k
- cm_fx6
- cm_t335
- cm_t3517
- cm_t35
- cm_t43
- cm_t54
- cobra5272
- colibri-imx6ull
- colibri_imx6
- colibri_imx6_nospl
- colibri_imx7
- colibri_imx7_emmc
- colibri_pxa270
- colibri_t20
- colibri_t30
- colibri_vf
- Colombus
- colorfly_e708_q1
- comtrend_ar5315u_ram
- comtrend_ar5387un_ram
- comtrend_ct5361_ram
- comtrend_vr3032u_ram
- comtrend_wap5813n_ram
- conga-qeval20-qa3-e3845-internal-uart
- conga-qeval20-qa3-e3845
- controlcenterd_36BIT_SDCARD
- controlcenterd_36BIT_SDCARD_DEVELOP
- controlcenterd_TRAILBLAZER
- controlcenterd_TRAILBLAZER_DEVELOP
- controlcenterdc
- coreboot
- corvus
- cougarcanyon2
- crownbay
- CSQ_CS908
- Cubieboard2
- Cubieboard4
- Cubieboard
- Cubietruck
- Cubietruck_plus
- Cyrus_P5020
- Cyrus_P5040
- d2net_v2
- da850_am18xxevm
- da850evm
- da850evm_direct_nor
- da850evm_nand
- dalmore
- db-88f6720
- db-88f6820-amc
- db-88f6820-gp
- db-mv784mp-gp
- devkit3250
- devkit8000
- dfi-bt700-q7x-151
- dh_imx6
- difrnce_dit4350
- display5
- display5_factory
- dms-ba16-1g
- dms-ba16
- dns325
- dockstar
- dra7xx_evm
- dra7xx_hs_evm
- dra7xx_hs_evm_usb
- draco
- dragonboard410c
- dragonboard820c
- dreamplug
- ds109
- ds414
- dserve_dsrv9703c
- duovero
- e2220-1170
- ea20
- eb_cpu5282
- eb_cpu5282_internal
- eco5pk
- ecovec
- edb9315a
- edison
- edminiv2
- efi-x86_app
- efi-x86_payload32
- efi-x86_payload64
- elgin-rv1108
- emlid_neutis_n5_devboard
- Empire_electronix_d709
- Empire_electronix_m712
- emsdp
- espresso7420
- espt
- etamin
- ethernut5
- evb-ast2500
- evb-px5
- evb-rk3036
- evb-rk3128
- evb-rk3229
- evb-rk3288
- evb-rk3328
- evb-rk3399
- evb-rv1108
- fennec-rk3288
- ficus-rk3399
- firefly-rk3288
- firefly-rk3399
- flea3
- ga10h_v1_1
- galileo
- gardena-smart-gateway-mt7688-ram
- gardena-smart-gateway-mt7688
- ge_bx50v3
- geekbox
- goflexhome
- gose
- gplugd
- gt90h_v4
- gurnard
- guruplug
- gwventana_emmc
- gwventana_gw5904
- gwventana_nand
- h2200
- h8_homlet_v2
- harmony
- helios4
- highbank
- hikey
- hrcon
- hrcon_dh
- hsdk
- huawei_hg556a_ram
- Hummingbird_A31
- Hyundai_A7HD
- i12-tvbox
- ib62x0
- icnova-a20-swac
- iconnect
- ids8313
- igep00x0
- imgtec_xilfpga
- imx6dl_icore_nand
- imx6dl_mamoj
- imx6q_icore_nand
- imx6q_logic
- imx6qdl_icore_mipi
- imx6qdl_icore_mmc
- imx6qdl_icore_nand
- imx6qdl_icore_rqs
- imx6ul_geam_mmc
- imx6ul_geam_nand
- imx6ul_isiot_emmc
- imx6ul_isiot_nand
- imx8mq_evk
- imx8qxp_mek
- inet1
- inet86dz
- inet97fv2
- inet98v_rev2
- inet9f_rev03
- iNet_3F
- iNet_3W
- iNet_86VS
- iNet_D978_rev2
- inet_q972
- inetspace_v2
- integratorap_cm720t
- integratorap_cm920t
- integratorap_cm926ejs
- integratorap_cm946es
- integratorcp_cm1136
- integratorcp_cm920t
- integratorcp_cm926ejs
- integratorcp_cm946es
- iot_devkit
- ipam390
- Itead_Ibox_A20
- jesurun_q5
- jetson-tk1
- k2e_evm
- k2e_hs_evm
- k2g_evm
- k2g_hs_evm
- k2hk_evm
- k2hk_hs_evm
- k2l_evm
- k2l_hs_evm
- kc1
- khadas-vim2
- khadas-vim
- km_kirkwood_128m16
- km_kirkwood
- km_kirkwood_pci
- kmcoge4
- kmcoge5ne
- kmcoge5un
- kmeter1
- kmlion1
- kmnusa
- kmopti2
- kmsugp1
- kmsupx5
- kmsuv31
- kmtegr1
- kmtepr2
- kmvect1
- koelsch
- kp_imx53
- kp_imx6q_tpc
- kylin-rk3036
- kzm9g
- lager
- Lamobo_R1
- legoev3
- libretech-cc
- libretech_all_h3_cc_h2_plus
- libretech_all_h3_cc_h3
- libretech_all_h3_cc_h5
- LicheePi_Zero
- linkit-smart-7688-ram
- linkit-smart-7688
- Linksprite_pcDuino3
- Linksprite_pcDuino3_Nano
- Linksprite_pcDuino
- lion-rk3368
- liteboard
- ls1012a2g5rdb_qspi
- ls1012a2g5rdb_tfa
- ls1012afrdm_qspi
- ls1012afrdm_tfa
- ls1012afrwy_qspi
- ls1012afrwy_qspi_SECURE_BOOT
- ls1012afrwy_tfa
- ls1012afrwy_tfa_SECURE_BOOT
- ls1012aqds_qspi
- ls1012aqds_tfa
- ls1012aqds_tfa_SECURE_BOOT
- ls1012ardb_qspi
- ls1012ardb_qspi_SECURE_BOOT
- ls1012ardb_tfa
- ls1012ardb_tfa_SECURE_BOOT
- ls1021aiot_qspi
- ls1021aiot_sdcard
- ls1021aqds_ddr4_nor
- ls1021aqds_ddr4_nor_lpuart
- ls1021aqds_nand
- ls1021aqds_nor
- ls1021aqds_nor_lpuart
- ls1021aqds_nor_SECURE_BOOT
- ls1021aqds_qspi
- ls1021aqds_sdcard_ifc
- ls1021aqds_sdcard_qspi
- ls1021atwr_nor
- ls1021atwr_nor_lpuart
- ls1021atwr_nor_SECURE_BOOT
- ls1021atwr_qspi
- ls1021atwr_sdcard_ifc
- ls1021atwr_sdcard_ifc_SECURE_BOOT
- ls1021atwr_sdcard_qspi
- ls1043aqds
- ls1043aqds_lpuart
- ls1043aqds_nand
- ls1043aqds_nor_ddr3
- ls1043aqds_qspi
- ls1043aqds_sdcard_ifc
- ls1043aqds_sdcard_qspi
- ls1043aqds_tfa
- ls1043aqds_tfa_SECURE_BOOT
- ls1043ardb
- ls1043ardb_nand
- ls1043ardb_nand_SECURE_BOOT
- ls1043ardb_sdcard
- ls1043ardb_sdcard_SECURE_BOOT
- ls1043ardb_SECURE_BOOT
- ls1043ardb_tfa
- ls1043ardb_tfa_SECURE_BOOT
- ls1046aqds
- ls1046aqds_lpuart
- ls1046aqds_nand
- ls1046aqds_qspi
- ls1046aqds_sdcard_ifc
- ls1046aqds_sdcard_qspi
- ls1046aqds_SECURE_BOOT
- ls1046aqds_tfa
- ls1046aqds_tfa_SECURE_BOOT
- ls1046ardb_emmc
- ls1046ardb_qspi
- ls1046ardb_qspi_SECURE_BOOT
- ls1046ardb_qspi_spl
- ls1046ardb_sdcard
- ls1046ardb_sdcard_SECURE_BOOT
- ls1046ardb_tfa
- ls1046ardb_tfa_SECURE_BOOT
- ls1088aqds
- ls1088aqds_qspi
- ls1088aqds_qspi_SECURE_BOOT
- ls1088aqds_sdcard_ifc
- ls1088aqds_sdcard_qspi
- ls1088aqds_tfa
- ls1088ardb_qspi
- ls1088ardb_qspi_SECURE_BOOT
- ls1088ardb_sdcard_qspi
- ls1088ardb_sdcard_qspi_SECURE_BOOT
- ls1088ardb_tfa
- ls1088ardb_tfa_SECURE_BOOT
- ls2080a_emu
- ls2080a_simu
- ls2080aqds
- ls2080aqds_nand
- ls2080aqds_qspi
- ls2080aqds_sdcard
- ls2080aqds_SECURE_BOOT
- ls2080ardb
- ls2080ardb_nand
- ls2080ardb_SECURE_BOOT
- ls2081ardb
- ls2088aqds_tfa
- ls2088ardb_qspi
- ls2088ardb_qspi_SECURE_BOOT
- ls2088ardb_tfa
- ls2088ardb_tfa_SECURE_BOOT
- lschlv2
- lsxhl
- lx2160aqds_tfa
- lx2160aqds_tfa_SECURE_BOOT
- lx2160ardb_tfa
- lx2160ardb_tfa_SECURE_BOOT
- M5208EVBE
- M52277EVB
- M52277EVB_stmicro
- M5235EVB
- M5235EVB_Flash32
- M5249EVB
- M5253DEMO
- M5272C3
- M5275EVB
- M5282EVB
- M53017EVB
- M5329AFEE
- M5329BFEE
- M5373EVB
- m53menlo
- M54418TWR
- M54418TWR_nand_mii
- M54418TWR_nand_rmii
- M54418TWR_nand_rmii_lowfreq
- M54418TWR_serial_mii
- M54418TWR_serial_rmii
- M54451EVB
- M54451EVB_stmicro
- M54455EVB_a66
- M54455EVB
- M54455EVB_i66
- M54455EVB_intel
- M54455EVB_stm33
- M5475AFE
- M5475BFE
- M5475CFE
- M5475DFE
- M5475EFE
- M5475FFE
- M5475GFE
- M5485AFE
- M5485BFE
- M5485CFE
- M5485DFE
- M5485EFE
- M5485FFE
- M5485GFE
- M5485HFE
- malta64
- malta64el
- malta
- maltael
- Marsboard_A10
- marsboard
- maxbcm
- mccmon6_nor
- mccmon6_sd
- MCR3000
- mcx
- medcom-wide
- meesc_dataflash
- meesc
- Mele_A1000
- Mele_A1000G_quad
- Mele_I7
- Mele_M3
- Mele_M5
- Mele_M9
- Merrii_A80_Optimus
- mgcoge3un
- microblaze-generic
- MigoR
- Mini-X
- minnowmax
- miqi-rk3288
- mixtile_loftq
- mk802_a10s
- mk802
- mk802ii
- MK808C
- mpc8308_p1m
- MPC8308RDB
- MPC8313ERDB_33
- MPC8313ERDB_66
- MPC8313ERDB_NAND_33
- MPC8313ERDB_NAND_66
- MPC8315ERDB
- MPC8323ERDB
- MPC832XEMDS_ATM
- MPC832XEMDS
- MPC832XEMDS_HOST_33
- MPC832XEMDS_HOST_66
- MPC832XEMDS_SLAVE
- MPC8349EMDS
- MPC8349ITX
- MPC8349ITX_LOWBOOT
- MPC8349ITXGP
- MPC837XEMDS
- MPC837XEMDS_HOST
- MPC837XERDB
- MPC8536DS_36BIT
- MPC8536DS
- MPC8536DS_SDCARD
- MPC8536DS_SPIFLASH
- MPC8541CDS
- MPC8541CDS_legacy
- MPC8544DS
- MPC8548CDS_36BIT
- MPC8548CDS
- MPC8548CDS_legacy
- MPC8555CDS
- MPC8555CDS_legacy
- MPC8568MDS
- MPC8569MDS_ATM
- MPC8569MDS
- MPC8572DS_36BIT
- MPC8572DS
- MPC8610HPCD
- MPC8641HPCN_36BIT
- MPC8641HPCN
- mpr2
- ms7720se
- ms7722se
- ms7750se
- mscc_jr2
- mscc_luton
- mscc_ocelot
- mscc_serval
- mscc_servalt
- MSI_Primo73
- MSI_Primo81
- mt7623n_bpir2
- mt7629_rfb
- mt_ventoux
- mvebu_db-88f3720
- mvebu_db_armada8k
- mvebu_espressobin-88f3720
- mvebu_mcbin-88f8040
- mx23_olinuxino
- mx23evk
- mx25pdk
- mx28evk_auart_console
- mx28evk
- mx28evk_nand
- mx28evk_spi
- mx31pdk
- mx35pdk
- mx51evk
- mx53ard
- mx53cx9020
- mx53evk
- mx53loco
- mx53ppd
- mx53smd
- mx6cuboxi
- mx6dlarm2
- mx6dlarm2_lpddr2
- mx6memcal
- mx6qarm2
- mx6qarm2_lpddr2
- mx6qsabrelite
- mx6sabreauto
- mx6sabresd
- mx6slevk
- mx6slevk_spinor
- mx6slevk_spl
- mx6sllevk
- mx6sllevk_plugin
- mx6sxsabreauto
- mx6sxsabresd
- mx6sxsabresd_spl
- mx6ul_14x14_evk
- mx6ul_9x9_evk
- mx6ull_14x14_evk
- mx6ull_14x14_evk_plugin
- mx7dsabresd
- mx7dsabresd_qspi
- mx7ulp_evk
- mx7ulp_evk_plugin
- nanopi-k2
- nanopi_a64
- nanopi_m1
- nanopi_m1_plus
- nanopi_neo2
- nanopi_neo_air
- nanopi_neo
- nanopi_neo_plus2
- nas220
- net2big_v2
- netgear_cg3100d_ram
- netgear_dgnd3700v2_ram
- netspace_lite_v2
- netspace_max_v2
- netspace_mini_v2
- netspace_v2
- Nintendo_NES_Classic_Edition
- nitrogen6dl2g
- nitrogen6dl
- nitrogen6q2g
- nitrogen6q
- nitrogen6s1g
- nitrogen6s
- nokia_rx51
- novena
- nsa310s
- nsim_700
- nsim_700be
- nsim_hs38
- nsim_hs38be
- nyan-big
- odroid-c2
- odroid-xu3
- odroid
- omap35_logic
- omap35_logic_somlv
- omap3_beagle
- omap3_evm
- omap3_ha
- omap3_logic
- omap3_logic_somlv
- omap3_overo
- omap3_pandora
- omap3_zoom1
- omap4_panda
- omap4_sdp4430
- omap5_uevm
- omapl138_lcdk
- openrd_base
- openrd_client
- openrd_ultimate
- opos6uldev
- orangepi_2
- Orangepi
- orangepi_lite2
- orangepi_lite
- Orangepi_mini
- orangepi_one
- orangepi_one_plus
- orangepi_pc2
- orangepi_pc
- orangepi_pc_plus
- orangepi_plus2e
- orangepi_plus
- orangepi_prime
- orangepi_r1
- orangepi_win
- orangepi_zero
- orangepi_zero_plus2
- orangepi_zero_plus
- origen
- ot1200
- ot1200_spl
- P1010RDB-PA_36BIT_NAND
- P1010RDB-PA_36BIT_NAND_SECBOOT
- P1010RDB-PA_36BIT_NOR
- P1010RDB-PA_36BIT_NOR_SECBOOT
- P1010RDB-PA_36BIT_SDCARD
- P1010RDB-PA_36BIT_SPIFLASH
- P1010RDB-PA_36BIT_SPIFLASH_SECBOOT
- P1010RDB-PA_NAND
- P1010RDB-PA_NAND_SECBOOT
- P1010RDB-PA_NOR
- P1010RDB-PA_NOR_SECBOOT
- P1010RDB-PA_SDCARD
- P1010RDB-PA_SPIFLASH
- P1010RDB-PA_SPIFLASH_SECBOOT
- P1010RDB-PB_36BIT_NAND
- P1010RDB-PB_36BIT_NAND_SECBOOT
- P1010RDB-PB_36BIT_NOR
- P1010RDB-PB_36BIT_NOR_SECBOOT
- P1010RDB-PB_36BIT_SDCARD
- P1010RDB-PB_36BIT_SPIFLASH
- P1010RDB-PB_36BIT_SPIFLASH_SECBOOT
- P1010RDB-PB_NAND
- P1010RDB-PB_NAND_SECBOOT
- P1010RDB-PB_NOR
- P1010RDB-PB_NOR_SECBOOT
- P1010RDB-PB_SDCARD
- P1010RDB-PB_SPIFLASH
- P1010RDB-PB_SPIFLASH_SECBOOT
- P1020MBG-PC_36BIT
- P1020MBG-PC_36BIT_SDCARD
- P1020MBG-PC
- P1020MBG-PC_SDCARD
- P1020RDB-PC_36BIT
- P1020RDB-PC_36BIT_NAND
- P1020RDB-PC_36BIT_SDCARD
- P1020RDB-PC_36BIT_SPIFLASH
- P1020RDB-PC
- P1020RDB-PC_NAND
- P1020RDB-PC_SDCARD
- P1020RDB-PC_SPIFLASH
- P1020RDB-PD
- P1020RDB-PD_NAND
- P1020RDB-PD_SDCARD
- P1020RDB-PD_SPIFLASH
- P1020UTM-PC_36BIT
- P1020UTM-PC_36BIT_SDCARD
- P1020UTM-PC
- P1020UTM-PC_SDCARD
- P1021RDB-PC_36BIT
- P1021RDB-PC_36BIT_NAND
- P1021RDB-PC_36BIT_SDCARD
- P1021RDB-PC_36BIT_SPIFLASH
- P1021RDB-PC
- P1021RDB-PC_NAND
- P1021RDB-PC_SDCARD
- P1021RDB-PC_SPIFLASH
- P1022DS_36BIT
- P1022DS_36BIT_NAND
- P1022DS_36BIT_SDCARD
- P1022DS_36BIT_SPIFLASH
- P1022DS
- P1022DS_NAND
- P1022DS_SDCARD
- P1022DS_SPIFLASH
- P1023RDB
- P1024RDB_36BIT
- P1024RDB
- P1024RDB_NAND
- P1024RDB_SDCARD
- P1024RDB_SPIFLASH
- P1025RDB_36BIT
- P1025RDB
- P1025RDB_NAND
- P1025RDB_SDCARD
- P1025RDB_SPIFLASH
- P2020RDB-PC_36BIT
- P2020RDB-PC_36BIT_NAND
- P2020RDB-PC_36BIT_SDCARD
- P2020RDB-PC_36BIT_SPIFLASH
- P2020RDB-PC
- P2020RDB-PC_NAND
- P2020RDB-PC_SDCARD
- P2020RDB-PC_SPIFLASH
- P2041RDB
- P2041RDB_NAND
- P2041RDB_SDCARD
- P2041RDB_SECURE_BOOT
- P2041RDB_SPIFLASH
- P2041RDB_SRIO_PCIE_BOOT
- p212
- p2371-0000
- p2371-2180
- p2571
- p2771-0000-000
- p2771-0000-500
- P3041DS
- P3041DS_NAND
- P3041DS_NAND_SECURE_BOOT
- P3041DS_SDCARD
- P3041DS_SECURE_BOOT
- P3041DS_SPIFLASH
- P3041DS_SRIO_PCIE_BOOT
- P4080DS
- P4080DS_SDCARD
- P4080DS_SECURE_BOOT
- P4080DS_SPIFLASH
- P4080DS_SRIO_PCIE_BOOT
- P5020DS
- P5020DS_NAND
- P5020DS_NAND_SECURE_BOOT
- P5020DS_SDCARD
- P5020DS_SECURE_BOOT
- P5020DS_SPIFLASH
- P5020DS_SRIO_PCIE_BOOT
- P5040DS
- P5040DS_NAND
- P5040DS_NAND_SECURE_BOOT
- P5040DS_SDCARD
- P5040DS_SECURE_BOOT
- P5040DS_SPIFLASH
- parrot_r16
- paz00
- pcm051_rev1
- pcm051_rev3
- pcm052
- pcm058
- peach-pi
- peach-pit
- pengwyn
- pepper
- pfla02
- phycore-rk3288
- phycore_pcl063
- pic32mzdask
- pico-hobbit-imx6ul
- pico-hobbit-imx7d
- pico-imx6ul
- pico-imx7d
- pico-pi-imx6ul
- pico-pi-imx7d
- picosam9g45
- pine64-lts
- pine64_plus
- pine_h64
- pinebook
- platinum_picon
- platinum_titanium
- plutux
- pm9261
- pm9263
- pm9g45
- pogo_e02
- polaroid_mid2407pxe03
- polaroid_mid2809pxe04
- poplar
- popmetal-rk3288
- porter
- portl2
- pov_protab2_ips9
- puma-rk3399
- pxm2
- q8_a13_tablet
- q8_a23_tablet_800x480
- q8_a33_tablet_1024x600
- q8_a33_tablet_800x480
- qemu-ppce500
- qemu-riscv32
- qemu-riscv32_smode
- qemu-riscv64
- qemu-riscv64_smode
- qemu-x86_64
- qemu-x86
- qemu_arm64
- qemu_arm
- qemu_mips64
- qemu_mips64el
- qemu_mips
- qemu_mipsel
- r0p7734
- r2dplus
- r7-tv-dongle
- r7780mp
- r8a7795_salvator-x
- r8a7795_ulcb
- r8a77965_salvator-x
- r8a7796_salvator-x
- r8a7796_ulcb
- r8a77970_eagle
- r8a77990_ebisu
- r8a77995_draak
- rastaban
- riotboard
- riotboard_spl
- rock2
- rock960-rk3399
- rock
- rpi_0_w
- rpi_2
- rpi_3_32b
- rpi_3
- rpi
- rsk7203
- rsk7264
- rsk7269
- rut
- s32v234evb
- s400
- s5p_goni
- s5pc210_universal
- sagem_f@st1704_ram
- sama5d27_som1_ek_mmc1
- sama5d27_som1_ek_mmc
- sama5d2_ptc_ek_mmc
- sama5d2_ptc_ek_nandflash
- sama5d2_xplained_emmc
- sama5d2_xplained_mmc
- sama5d2_xplained_spiflash
- sama5d36ek_cmp_mmc
- sama5d36ek_cmp_nandflash
- sama5d36ek_cmp_spiflash
- sama5d3_xplained_mmc
- sama5d3_xplained_nandflash
- sama5d3xek_mmc
- sama5d3xek_nandflash
- sama5d3xek_spiflash
- sama5d4_xplained_mmc
- sama5d4_xplained_nandflash
- sama5d4_xplained_spiflash
- sama5d4ek_mmc
- sama5d4ek_nandflash
- sama5d4ek_spiflash
- sandbox64
- sandbox
- sandbox_flattree
- sandbox_noblk
- sandbox_spl
- sansa_fuze_plus
- sbc8349
- sbc8349_PCI_33
- sbc8349_PCI_66
- sbc8548
- sbc8548_PCI_33
- sbc8548_PCI_33_PCIE
- sbc8548_PCI_66
- sbc8548_PCI_66_PCIE
- sbc8641d
- SBx81LIFKW
- SBx81LIFXCAT
- sc_sps_1
- seaboard
- secomx6quq7
- sfr_nb4-ser_ram
- sh7752evb
- sh7753evb
- sh7757lcr
- sh7763rdp
- sh7785lcr_32bit
- sh7785lcr
- sheep-rk3368
- sheevaplug
- shmin
- sifive_fu540
- silk
- Sinlinx_SinA31s
- Sinlinx_SinA33
- Sinovoip_BPI_M2
- Sinovoip_BPI_M3
- sksimx6
- smartweb
- smdk5250
- smdk5420
- smdkc100
- smdkv310
- snapper9260
- snapper9g20
- sniper
- snow
- socfpga_arria10
- socfpga_arria5
- socfpga_cyclone5
- socfpga_dbm_soc1
- socfpga_de0_nano_soc
- socfpga_de10_nano
- socfpga_de1_soc
- socfpga_is1
- socfpga_sockit
- socfpga_socrates
- socfpga_sr1500
- socfpga_stratix10
- socfpga_vining_fpga
- socrates
- som-db5800-som-6867
- sopine_baseboard
- spear300
- spear300_nand
- spear300_usbtty
- spear300_usbtty_nand
- spear310
- spear310_nand
- spear310_pnor
- spear310_usbtty
- spear310_usbtty_nand
- spear310_usbtty_pnor
- spear320
- spear320_nand
- spear320_pnor
- spear320_usbtty
- spear320_usbtty_nand
- spear320_usbtty_pnor
- spear600
- spear600_nand
- spear600_usbtty
- spear600_usbtty_nand
- spring
- stih410-b2260
- stm32f429-discovery
- stm32f429-evaluation
- stm32f469-discovery
- stm32f746-disco
- stm32h743-disco
- stm32h743-eval
- stm32mp15_basic
- stmark2
- stout
- strider_con
- strider_con_dp
- strider_cpu
- strider_cpu_dp
- stv0991
- sun8i_a23_evb
- Sunchip_CX-A99
- sunxi_Gemei_G9
- suvd3
- syzygy_hub
- T1023RDB
- T1023RDB_NAND
- T1023RDB_SDCARD
- T1023RDB_SECURE_BOOT
- T1023RDB_SPIFLASH
- T1024QDS_DDR4
- T1024QDS_DDR4_SECURE_BOOT
- T1024QDS
- T1024QDS_NAND
- T1024QDS_SDCARD
- T1024QDS_SECURE_BOOT
- T1024QDS_SPIFLASH
- T1024RDB
- T1024RDB_NAND
- T1024RDB_SDCARD
- T1024RDB_SECURE_BOOT
- T1024RDB_SPIFLASH
- T1040D4RDB
- T1040D4RDB_NAND
- T1040D4RDB_SDCARD
- T1040D4RDB_SECURE_BOOT
- T1040D4RDB_SPIFLASH
- T1040QDS_DDR4
- T1040QDS
- T1040QDS_SECURE_BOOT
- T1040RDB
- T1040RDB_NAND
- T1040RDB_SDCARD
- T1040RDB_SECURE_BOOT
- T1040RDB_SPIFLASH
- T1042D4RDB
- T1042D4RDB_NAND
- T1042D4RDB_SDCARD
- T1042D4RDB_SECURE_BOOT
- T1042D4RDB_SPIFLASH
- T1042RDB
- T1042RDB_PI
- T1042RDB_PI_NAND
- T1042RDB_PI_NAND_SECURE_BOOT
- T1042RDB_PI_SDCARD
- T1042RDB_PI_SPIFLASH
- T1042RDB_SECURE_BOOT
- T2080QDS
- T2080QDS_NAND
- T2080QDS_SDCARD
- T2080QDS_SECURE_BOOT
- T2080QDS_SPIFLASH
- T2080QDS_SRIO_PCIE_BOOT
- T2080RDB
- T2080RDB_NAND
- T2080RDB_SDCARD
- T2080RDB_SECURE_BOOT
- T2080RDB_SPIFLASH
- T2080RDB_SRIO_PCIE_BOOT
- T2081QDS
- T2081QDS_NAND
- T2081QDS_SDCARD
- T2081QDS_SPIFLASH
- T2081QDS_SRIO_PCIE_BOOT
- T4160QDS
- T4160QDS_NAND
- T4160QDS_SDCARD
- T4160QDS_SECURE_BOOT
- T4160RDB
- T4240QDS
- T4240QDS_NAND
- T4240QDS_SDCARD
- T4240QDS_SECURE_BOOT
- T4240QDS_SRIO_PCIE_BOOT
- T4240RDB
- T4240RDB_SDCARD
- tao3530
- taurus
- tb100
- tbs2910
- tbs_a711
- tec-ng
- tec
- theadorable-x86-conga-qa3-e3845-pcie-x4
- theadorable-x86-conga-qa3-e3845
- theadorable-x86-dfi-bt700
- theadorable_debug
- thuban
- thunderx_88xx
- ti814x_evm
- ti816x_evm
- tinker-rk3288
- titanium
- tools-only
- topic_miami
- topic_miamilite
- topic_miamiplus
- tplink_wdr4300
- TQM834x
- tqma6dl_mba6_mmc
- tqma6dl_mba6_spi
- tqma6q_mba6_mmc
- tqma6q_mba6_spi
- tqma6s_mba6_mmc
- tqma6s_mba6_spi
- tqma6s_wru4_mmc
- trats2
- trats
- tricorder
- tricorder_flash
- trimslice
- ts4600
- ts4800
- tuge1
- turris_mox
- turris_omnia
- tuxx1
- twister
- TWR-P1025
- UCP1020
- UCP1020_SPIFLASH
- udoo
- udoo_neo
- uDPU
- uniphier_ld4_sld8
- uniphier_v7
- uniphier_v8
- usb_a9263_dataflash
- usbarmory
- UTOO_P66
- vct_platinum
- vct_platinum_onenand
- vct_platinum_onenand_small
- vct_platinum_small
- vct_platinumavc
- vct_platinumavc_onenand
- vct_platinumavc_onenand_small
- vct_platinumavc_small
- vct_premium
- vct_premium_onenand
- vct_premium_onenand_small
- vct_premium_small
- ve8313
- venice2
- ventana
- vexpress_aemv8a_dram
- vexpress_aemv8a_juno
- vexpress_aemv8a_semi
- vexpress_ca15_tc2
- vexpress_ca5x2
- vexpress_ca9x4
- vf610twr
- vf610twr_nand
- vinco
- vining_2000
- vme8349
- vyasa-rk3288
- wandboard
- warp7_bl33
- warp7
- warp
- wb45n
- wb50n
- Wexler_TAB7200
- Wits_Pro_A20_DKT
- Wobo_i5
- woodburn
- woodburn_sd
- work_92105
- x530
- x600
- xfi3
- xilinx_versal_mini
- xilinx_versal_mini_emmc0
- xilinx_versal_mini_emmc1
- xilinx_versal_virt
- xilinx_zynqmp_mini
- xilinx_zynqmp_mini_emmc0
- xilinx_zynqmp_mini_emmc1
- xilinx_zynqmp_mini_nand
- xilinx_zynqmp_mini_qspi
- xilinx_zynqmp_r5
- xilinx_zynqmp_zc1232_revA
- xilinx_zynqmp_zc1254_revA
- xilinx_zynqmp_zc1275_revA
- xilinx_zynqmp_zc1275_revB
- xilinx_zynqmp_zc1751_xm015_dc1
- xilinx_zynqmp_zc1751_xm016_dc2
- xilinx_zynqmp_zc1751_xm017_dc3
- xilinx_zynqmp_zc1751_xm018_dc4
- xilinx_zynqmp_zc1751_xm019_dc5
- xilinx_zynqmp_zcu100_revC
- xilinx_zynqmp_zcu102_rev1_0
- xilinx_zynqmp_zcu102_revA
- xilinx_zynqmp_zcu102_revB
- xilinx_zynqmp_zcu104_revA
- xilinx_zynqmp_zcu104_revC
- xilinx_zynqmp_zcu106_revA
- xilinx_zynqmp_zcu111_revA
- xpedite517x
- xpedite520x
- xpedite537x
- xpedite550x
- xpress
- xpress_spl
- xtfpga
- Yones_Toptech_BD1078
- Yones_Toptech_BS1078_V2
- zc5202
- zc5601
- zipitz2
- zmx25
- zynq_cc108
- zynq_cse_nand
- zynq_cse_nor
- zynq_cse_qspi
- zynq_dlc20_rev1_0
- zynq_microzed
- zynq_minized
- zynq_picozed
- zynq_z_turn
- zynq_zc702
- zynq_zc706
- zynq_zc770_xm010
- zynq_zc770_xm011
- zynq_zc770_xm011_x16
- zynq_zc770_xm012
- zynq_zc770_xm013
- zynq_zed
- zynq_zybo
- zynq_zybo_z7

How many of these can run on fully free software? I see
rpi{,2,3,3_32b,0_w} in the list, but last I checked, it has a blobby
bootloader.

Where does guix get this list? Is it configured or automatically
generated?

Thanks,

-- 
-Jesse