cachepc-qemu

Fork of AMDESE/qemu with changes for cachepc side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-qemu
Log | Files | Refs | Submodules | LICENSE | sfeed.txt

ppc_prep_40p.py (3019B)


      1# Functional test that boots a PReP/40p machine and checks its serial console.
      2#
      3# Copyright (c) Philippe Mathieu-Daudé <f4bug@amsat.org>
      4#
      5# This work is licensed under the terms of the GNU GPL, version 2 or
      6# later. See the COPYING file in the top-level directory.
      7
      8import os
      9
     10from avocado import skipUnless
     11from avocado_qemu import Test
     12from avocado_qemu import wait_for_console_pattern
     13
     14
     15class IbmPrep40pMachine(Test):
     16
     17    timeout = 60
     18
     19    # 12H0455 PPS Firmware Licensed Materials
     20    # Property of IBM (C) Copyright IBM Corp. 1994.
     21    # All rights reserved.
     22    # U.S. Government Users Restricted Rights - Use, duplication or disclosure
     23    # restricted by GSA ADP Schedule Contract with IBM Corp.
     24    @skipUnless(os.getenv('AVOCADO_ALLOW_UNTRUSTED_CODE'), 'untrusted code')
     25    def test_factory_firmware_and_netbsd(self):
     26        """
     27        :avocado: tags=arch:ppc
     28        :avocado: tags=machine:40p
     29        :avocado: tags=os:netbsd
     30        :avocado: tags=slowness:high
     31        """
     32        bios_url = ('http://ftpmirror.your.org/pub/misc/'
     33                    'ftp.software.ibm.com/rs6000/firmware/'
     34                    '7020-40p/P12H0456.IMG')
     35        bios_hash = '1775face4e6dc27f3a6ed955ef6eb331bf817f03'
     36        bios_path = self.fetch_asset(bios_url, asset_hash=bios_hash)
     37        drive_url = ('https://archive.netbsd.org/pub/NetBSD-archive/'
     38                     'NetBSD-4.0/prep/installation/floppy/generic_com0.fs')
     39        drive_hash = 'dbcfc09912e71bd5f0d82c7c1ee43082fb596ceb'
     40        drive_path = self.fetch_asset(drive_url, asset_hash=drive_hash)
     41
     42        self.vm.set_console()
     43        self.vm.add_args('-bios', bios_path,
     44                         '-fda', drive_path)
     45        self.vm.launch()
     46        os_banner = 'NetBSD 4.0 (GENERIC) #0: Sun Dec 16 00:49:40 PST 2007'
     47        wait_for_console_pattern(self, os_banner)
     48        wait_for_console_pattern(self, 'Model: IBM PPS Model 6015')
     49
     50    def test_openbios_192m(self):
     51        """
     52        :avocado: tags=arch:ppc
     53        :avocado: tags=machine:40p
     54        """
     55        self.vm.set_console()
     56        self.vm.add_args('-m', '192') # test fw_cfg
     57
     58        self.vm.launch()
     59        wait_for_console_pattern(self, '>> OpenBIOS')
     60        wait_for_console_pattern(self, '>> Memory: 192M')
     61        wait_for_console_pattern(self, '>> CPU type PowerPC,604')
     62
     63    def test_openbios_and_netbsd(self):
     64        """
     65        :avocado: tags=arch:ppc
     66        :avocado: tags=machine:40p
     67        :avocado: tags=os:netbsd
     68        """
     69        drive_url = ('https://archive.netbsd.org/pub/NetBSD-archive/'
     70                     'NetBSD-7.1.2/iso/NetBSD-7.1.2-prep.iso')
     71        drive_hash = 'ac6fa2707d888b36d6fa64de6e7fe48e'
     72        drive_path = self.fetch_asset(drive_url, asset_hash=drive_hash,
     73                                      algorithm='md5')
     74        self.vm.set_console()
     75        self.vm.add_args('-cdrom', drive_path,
     76                         '-boot', 'd')
     77
     78        self.vm.launch()
     79        wait_for_console_pattern(self, 'NetBSD/prep BOOT, Revision 1.9')