summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--classes/sota.bbclass1
-rw-r--r--classes/sota_freedom-u540.bbclass16
-rw-r--r--conf/include/bblayers/sota_freedom-u540.inc2
-rw-r--r--lib/oeqa/selftest/cases/testutils.py8
-rw-r--r--recipes-core/images/initramfs-ostree-image.bb3
5 files changed, 29 insertions, 1 deletions
diff --git a/classes/sota.bbclass b/classes/sota.bbclass
index 1a9d68b..d2a065c 100644
--- a/classes/sota.bbclass
+++ b/classes/sota.bbclass
@@ -58,6 +58,7 @@ SOTA_MACHINE_m3ulcb = "m3ulcb"
58SOTA_MACHINE_intel-corei7-64 ?= "minnowboard" 58SOTA_MACHINE_intel-corei7-64 ?= "minnowboard"
59SOTA_MACHINE_qemux86-64 ?= "qemux86-64" 59SOTA_MACHINE_qemux86-64 ?= "qemux86-64"
60SOTA_MACHINE_am335x-evm ?= "am335x-evm-wifi" 60SOTA_MACHINE_am335x-evm ?= "am335x-evm-wifi"
61SOTA_MACHINE_freedom-u540 ?= "freedom-u540"
61 62
62SOTA_OVERRIDES_BLACKLIST = "ostree ota" 63SOTA_OVERRIDES_BLACKLIST = "ostree ota"
63SOTA_REQUIRED_VARIABLES = "OSTREE_REPO OSTREE_OSNAME OSTREE_BOOTLOADER OSTREE_BOOT_PARTITION GARAGE_SIGN_REPO" 64SOTA_REQUIRED_VARIABLES = "OSTREE_REPO OSTREE_OSNAME OSTREE_BOOTLOADER OSTREE_BOOT_PARTITION GARAGE_SIGN_REPO"
diff --git a/classes/sota_freedom-u540.bbclass b/classes/sota_freedom-u540.bbclass
new file mode 100644
index 0000000..90d11c2
--- /dev/null
+++ b/classes/sota_freedom-u540.bbclass
@@ -0,0 +1,16 @@
1# Support fitImage by default
2KERNEL_CLASSES_sota = " kernel-fitimage "
3KERNEL_IMAGETYPE_sota = "fitImage"
4KERNEL_IMAGETYPES_remove_sota = "uImage"
5OSTREE_KERNEL = "${KERNEL_IMAGETYPE}-${INITRAMFS_IMAGE}-${MACHINE}-${MACHINE}"
6
7OSTREE_BOOTLOADER ?= "u-boot"
8INITRAMFS_FSTYPES = "cpio.gz"
9PREFERRED_PROVIDER_virtual/bootloader_sota ?= "u-boot"
10
11IMAGE_BOOT_FILES_sota ?= "fw_payload.bin boot.scr uEnv.txt"
12KERNEL_DEVICETREE_sota ?= "sifive/${RISCV_SBI_FDT}"
13
14OSTREE_KERNEL_ARGS_sota ?= "earlycon=sbi console=ttySIF0 ramdisk_size=16384 root=/dev/ram0 rw rootfstype=ext4 rootwait rootdelay=2 ostree_root=/dev/mmcblk0p3"
15
16WKS_FILE_sota = "freedom-u540-opensbi-sota.wks"
diff --git a/conf/include/bblayers/sota_freedom-u540.inc b/conf/include/bblayers/sota_freedom-u540.inc
new file mode 100644
index 0000000..977f96b
--- /dev/null
+++ b/conf/include/bblayers/sota_freedom-u540.inc
@@ -0,0 +1,2 @@
1BBLAYERS += "${METADIR}/meta-riscv"
2BBLAYERS += "${METADIR}/meta-updater-riscv"
diff --git a/lib/oeqa/selftest/cases/testutils.py b/lib/oeqa/selftest/cases/testutils.py
index 8d618a6..28087ca 100644
--- a/lib/oeqa/selftest/cases/testutils.py
+++ b/lib/oeqa/selftest/cases/testutils.py
@@ -121,15 +121,21 @@ def verifyNotProvisioned(testInst, machine):
121 121
122def verifyProvisioned(testInst, machine): 122def verifyProvisioned(testInst, machine):
123 # Verify that device HAS provisioned. 123 # Verify that device HAS provisioned.
124 # First loop while waiting for the device to boot.
124 ran_ok = False 125 ran_ok = False
125 for delay in [5, 5, 5, 5, 10, 10, 10, 10]: 126 for delay in [5, 5, 5, 5, 10, 10, 10, 10]:
126 stdout, stderr, retcode = testInst.qemu_command('aktualizr-info') 127 stdout, stderr, retcode = testInst.qemu_command('aktualizr-info')
127 if retcode == 0 and stderr == b'' and stdout.decode().find('Fetched metadata: yes') >= 0: 128 if retcode == 0 and stderr == b'':
128 ran_ok = True 129 ran_ok = True
129 break 130 break
130 sleep(delay) 131 sleep(delay)
131 testInst.assertTrue(ran_ok, 'aktualizr-info failed: ' + stderr.decode() + stdout.decode()) 132 testInst.assertTrue(ran_ok, 'aktualizr-info failed: ' + stderr.decode() + stdout.decode())
133 # Then wait for aktualizr to provision.
134 if stdout.decode().find('Fetched metadata: yes') < 0:
135 stdout, stderr, retcode = testInst.qemu_command('aktualizr-info --wait-until-provisioned')
132 136
137 testInst.assertFalse(retcode, 'aktualizr-info failed: ' + stderr.decode() + stdout.decode())
138 testInst.assertEqual(stderr, b'', 'aktualizr-info failed: ' + stderr.decode() + stdout.decode())
133 testInst.assertIn(b'Device ID: ', stdout, 'Provisioning failed: ' + stderr.decode() + stdout.decode()) 139 testInst.assertIn(b'Device ID: ', stdout, 'Provisioning failed: ' + stderr.decode() + stdout.decode())
134 testInst.assertIn(b'Primary ecu hardware ID: ' + machine.encode(), stdout, 140 testInst.assertIn(b'Primary ecu hardware ID: ' + machine.encode(), stdout,
135 'Provisioning failed: ' + stderr.decode() + stdout.decode()) 141 'Provisioning failed: ' + stderr.decode() + stdout.decode())
diff --git a/recipes-core/images/initramfs-ostree-image.bb b/recipes-core/images/initramfs-ostree-image.bb
index e77499e..b21be1c 100644
--- a/recipes-core/images/initramfs-ostree-image.bb
+++ b/recipes-core/images/initramfs-ostree-image.bb
@@ -15,6 +15,9 @@ LICENSE = "MIT"
15 15
16IMAGE_FSTYPES = "${INITRAMFS_FSTYPES}" 16IMAGE_FSTYPES = "${INITRAMFS_FSTYPES}"
17 17
18# Avoid circular dependencies
19EXTRA_IMAGEDEPENDS = ""
20
18inherit core-image 21inherit core-image
19 22
20IMAGE_ROOTFS_SIZE = "8192" 23IMAGE_ROOTFS_SIZE = "8192"