diff --git a/platforms/targets/_overrides.yml b/platforms/targets/_overrides.yml index d1bba8ab..5024afba 100644 --- a/platforms/targets/_overrides.yml +++ b/platforms/targets/_overrides.yml @@ -42,6 +42,18 @@ batocera: - gliden64 - glide64mk2 - rice + # Boards are named by SoC; the Raspberry Pi models a user knows map here + # (Batocera's Config.in comments: "rpi2/rpi3", "rpi4 only", "rpi5 only"). + bcm2835: + aliases: [rpi1, rpi-zero] + bcm2836: + aliases: [rpi2] + bcm2837: + aliases: [rpi3, rpi-zero2] + bcm2711: + aliases: [rpi4, rpi400, cm4] + bcm2712: + aliases: [rpi5, rpi500, cm5] x86_64: add_cores: [citron, demul, model2, xenia] zen3: diff --git a/tests/test_target_names.py b/tests/test_target_names.py index a0721946..e77ac46b 100644 --- a/tests/test_target_names.py +++ b/tests/test_target_names.py @@ -29,6 +29,15 @@ class AliasesResolveToOneName(unittest.TestCase): "nintendo-switch", ) + def test_raspberry_pi_models_reach_batocera_boards(self): + """`--target rpi4`, the example every --help gives, was refused on + Batocera: its boards are named by SoC and no alias pointed there.""" + platforms = str(REPO_ROOT / "platforms") + for typed, board in (("rpi4", "bcm2711"), ("rpi5", "bcm2712"), + ("rpi3", "bcm2837"), ("rpi-zero", "bcm2835")): + with self.subTest(typed=typed): + self.assertEqual(canonical_target_name(["batocera"], typed, platforms), board) + def test_an_unknown_name_is_left_for_the_target_check(self): self.assertEqual( canonical_target_name(["retroarch"], "bogus", str(REPO_ROOT / "platforms")),