diff --git a/sys/x86/x86/ucode.c b/sys/x86/x86/ucode.c
index 5b039491345a..c0810ae7eb21 100644
--- a/sys/x86/x86/ucode.c
+++ b/sys/x86/x86/ucode.c
@@ -355,8 +355,7 @@ ucode_load_bsp(uintptr_t free)
 		if (match != NULL) {
 			addr = map_ucode(free, len);
 			/* We can't use memcpy() before ifunc resolution. */
-			for (i = 0; i < len; i++)
-				addr[i] = ((volatile uint8_t *)match)[i];
+			memcpy_early(addr, match, len);
 			match = addr;
 
 			error = ucode_loader->load(match, false, &nrev, &orev);
diff --git a/sys/x86/xen/pv.c b/sys/x86/xen/pv.c
index 4505907172c0..e86efde1fe39 100644
--- a/sys/x86/xen/pv.c
+++ b/sys/x86/xen/pv.c
@@ -259,7 +259,7 @@ hammer_time_xen_legacy(start_info_t *si, uint64_t xenstack)
 	 */
 	kenv = (void *)(physfree + KERNBASE);
 	physfree += PAGE_SIZE;
-	bzero(kenv, PAGE_SIZE);
+	bzero_early(kenv, PAGE_SIZE);
 	init_static_kenv(kenv, PAGE_SIZE);
 
 	/* Set the hooks for early functions that diverge from bare metal */
@@ -320,7 +320,7 @@ hammer_time_xen(vm_paddr_t start_info_paddr)
 	 */
 	kenv = (void *)(physfree + KERNBASE);
 	physfree += PAGE_SIZE;
-	bzero(kenv, PAGE_SIZE);
+	bzero_early(kenv, PAGE_SIZE);
 	init_static_kenv(kenv, PAGE_SIZE);
 
 	if (start_info->modlist_paddr != 0) {
