def METHOD_NAME(self, *args, **kwargs):
    super(BaseSoC, self).METHOD_NAME(*args, **kwargs)
    if self.cpu_type != "zynq7000":
        return
    libxil_path = os.path.join(self.builder.software_dir, 'libxil')
    os.makedirs(os.path.realpath(libxil_path), exist_ok=True)
    lib = os.path.join(libxil_path, 'embeddedsw')
    if not os.path.exists(lib):
        os.system("git clone --depth 1 https://github.com/Xilinx/embeddedsw {}".format(lib))
    os.makedirs(os.path.realpath(self.builder.include_dir), exist_ok=True)
    for header in [
        'XilinxProcessorIPLib/drivers/uartps/src/xuartps_hw.h',
        'lib/bsp/standalone/src/common/xil_types.h',
        'lib/bsp/standalone/src/common/xil_assert.h',
        'lib/bsp/standalone/src/common/xil_io.h',
        'lib/bsp/standalone/src/common/xil_printf.h',
        'lib/bsp/standalone/src/common/xstatus.h',
        'lib/bsp/standalone/src/common/xdebug.h',
        'lib/bsp/standalone/src/arm/cortexa9/xpseudo_asm.h',
        'lib/bsp/standalone/src/arm/cortexa9/xreg_cortexa9.h',
        'lib/bsp/standalone/src/arm/cortexa9/xil_cache.h',
        'lib/bsp/standalone/src/arm/cortexa9/xparameters_ps.h',
        'lib/bsp/standalone/src/arm/cortexa9/xil_errata.h',
        'lib/bsp/standalone/src/arm/cortexa9/xtime_l.h',
        'lib/bsp/standalone/src/arm/common/xil_exception.h',
        'lib/bsp/standalone/src/arm/common/gcc/xpseudo_asm_gcc.h',
    ]:
        shutil.copy(os.path.join(lib, header), self.builder.include_dir)
    write_to_file(os.path.join(self.builder.include_dir, 'bspconfig.h'),
                  '#define FPU_HARD_FLOAT_ABI_ENABLED 1')
    write_to_file(os.path.join(self.builder.include_dir, 'xparameters.h'), '''