1*4882a593Smuzhiyunimport os 2*4882a593Smuzhiyun 3*4882a593Smuzhiyunimport infra.basetest 4*4882a593Smuzhiyun 5*4882a593Smuzhiyun 6*4882a593Smuzhiyunclass TestDtbocfg(infra.basetest.BRTest): 7*4882a593Smuzhiyun config = infra.basetest.BASIC_TOOLCHAIN_CONFIG + \ 8*4882a593Smuzhiyun """ 9*4882a593Smuzhiyun BR2_LINUX_KERNEL=y 10*4882a593Smuzhiyun BR2_LINUX_KERNEL_CUSTOM_VERSION=y 11*4882a593Smuzhiyun BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.10.7" 12*4882a593Smuzhiyun BR2_LINUX_KERNEL_USE_DEFCONFIG=y 13*4882a593Smuzhiyun BR2_LINUX_KERNEL_DEFCONFIG="vexpress" 14*4882a593Smuzhiyun BR2_PACKAGE_DTBOCFG=y 15*4882a593Smuzhiyun BR2_TARGET_ROOTFS_CPIO=y 16*4882a593Smuzhiyun # BR2_TARGET_ROOTFS_TAR is not set 17*4882a593Smuzhiyun """ 18*4882a593Smuzhiyun 19*4882a593Smuzhiyun def test_run(self): 20*4882a593Smuzhiyun img = os.path.join(self.builddir, "images", "rootfs.cpio") 21*4882a593Smuzhiyun kernel = os.path.join(self.builddir, "images", "zImage") 22*4882a593Smuzhiyun kernel_cmdline = ["console=ttyAMA0"] 23*4882a593Smuzhiyun dtb = infra.download(self.downloaddir, "vexpress-v2p-ca9.dtb") 24*4882a593Smuzhiyun options = ["-M", "vexpress-a9", "-dtb", dtb, "-initrd", img] 25*4882a593Smuzhiyun 26*4882a593Smuzhiyun self.emulator.boot(arch="armv7", kernel=kernel, 27*4882a593Smuzhiyun kernel_cmdline=kernel_cmdline, 28*4882a593Smuzhiyun options=options) 29*4882a593Smuzhiyun self.emulator.login() 30*4882a593Smuzhiyun self.assertRunOk("modprobe dtbocfg.ko") 31*4882a593Smuzhiyun self.assertRunOk("mkdir /tmp/config && mount -t configfs none /tmp/config") 32*4882a593Smuzhiyun 33*4882a593Smuzhiyun # Check that overlays directory is present. 34*4882a593Smuzhiyun # From dtbocfg site (https://github.com/ikwzm/dtbocfg): 35*4882a593Smuzhiyun # If /config/device-tree/overlays is created, it is ready to use 36*4882a593Smuzhiyun # dtbocfg 37*4882a593Smuzhiyun self.assertRunOk("ls /tmp/config/device-tree/overlays/") 38