44a45
> import PlatformConfig
209a211,224
> default_dtbs = {
> "RealViewEB": None,
> "RealViewPBX": None,
> "VExpress_EMM": "vexpress.aarch32.ll_20131205.0-gem5.%dcpu.dtb" % num_cpus,
> "VExpress_EMM64": "vexpress.aarch64.20140821.dtb",
> }
>
> default_kernels = {
> "RealViewEB": "vmlinux.arm.smp.fb.2.6.38.8",
> "RealViewPBX": "vmlinux.arm.smp.fb.2.6.38.8",
> "VExpress_EMM": "vmlinux.aarch32.ll_20131205.0-gem5",
> "VExpress_EMM64": "vmlinux.aarch64.20140821",
> }
>
229,238c244,257
< if machine_type == "RealView_PBX":
< self.realview = RealViewPBX()
< elif machine_type == "RealView_EB":
< self.realview = RealViewEB()
< elif machine_type == "VExpress_EMM":
< self.realview = VExpress_EMM()
< if not dtb_filename:
< dtb_filename = 'vexpress.aarch32.ll_20131205.0-gem5.%dcpu.dtb' % num_cpus
< elif machine_type == "VExpress_EMM64":
< self.realview = VExpress_EMM64()
---
> platform_class = PlatformConfig.get(machine_type)
> # Resolve the real platform name, the original machine_type
> # variable might have been an alias.
> machine_type = platform_class.__name__
> self.realview = platform_class()
>
> if not dtb_filename and not bare_metal:
> try:
> dtb_filename = default_dtbs[machine_type]
> except KeyError:
> fatal("No DTB specified and no default DTB known for '%s'" % \
> machine_type)
>
> if isinstance(self.realview, VExpress_EMM64):
242,246d260
< if not dtb_filename:
< dtb_filename = 'vexpress.aarch64.20140821.dtb'
< else:
< print "Unknown Machine Type"
< sys.exit(1)
281,286c295,296
< if machine_type == "VExpress_EMM64":
< self.kernel = binary('vmlinux.aarch64.20140821')
< elif machine_type == "VExpress_EMM":
< self.kernel = binary('vmlinux.aarch32.ll_20131205.0-gem5')
< else:
< self.kernel = binary('vmlinux.arm.smp.fb.2.6.38.8')
---
> if machine_type in default_kernels:
> self.kernel = binary(default_kernels[machine_type])
290c300,303
< self.machine_type = machine_type
---
>
> self.machine_type = machine_type if machine_type in ArmMachineType.map \
> else "DTOnly"
>