# This is the open-source version of board-info.txt; it should contain
# version of the radio and bootloader that are available to the
# public.
require board=tuna
require version-bootloader=PRIMELA03|PRIMELC03
require version-baseband=I9250XXLA2|I9250XXLF1
