diff --git a/.github/workflows/msrv_toolchain.toml b/.github/workflows/msrv_toolchain.toml
index 35936f6ea..f373655e1 100644
--- a/.github/workflows/msrv_toolchain.toml
+++ b/.github/workflows/msrv_toolchain.toml
@@ -1,4 +1,4 @@
 [toolchain]
 # Oldest nightly that currently works with `cargo xtask build`.
-channel = "nightly-2022-08-25"
-components = ["rust-src"]
+channel = "nightly-2022-11-22"
+targets = ["aarch64-unknown-uefi", "i686-unknown-uefi", "x86_64-unknown-uefi"]
diff --git a/README.md b/README.md
index 69172582f..e3173ef28 100644
--- a/README.md
+++ b/README.md
@@ -94,7 +94,7 @@ prerequisites for running the tests.
 For instructions on how to create your own UEFI apps, see the [BUILDING.md](BUILDING.md) file.
 
 The uefi-rs crates currently require some [unstable features].
-The nightly MSRV is currently 2022-08-25.
+The nightly MSRV is currently 2022-11-22.
 
 [unstable features]: https://github.com/rust-osdev/uefi-rs/issues/452
 
diff --git a/uefi/README.md b/uefi/README.md
index fc4eae8d9..c24c8c445 100644
--- a/uefi/README.md
+++ b/uefi/README.md
@@ -52,7 +52,7 @@ For additional information, refer to the [UEFI specification][spec].
 For instructions on how to create your own UEFI apps, see the [tutorial].
 
 The uefi-rs crates currently require some [unstable features].
-The nightly MSRV is currently 2022-08-25.
+The nightly MSRV is currently 2022-11-22.
 
 [unstable features]: https://github.com/rust-osdev/uefi-rs/issues/452
 [tutorial]: https://rust-osdev.github.io/uefi-rs/HEAD/tutorial/introduction.html
diff --git a/xtask/src/cargo.rs b/xtask/src/cargo.rs
index 7f36106e6..9a82fe5e1 100644
--- a/xtask/src/cargo.rs
+++ b/xtask/src/cargo.rs
@@ -212,19 +212,6 @@ pub fn fix_nested_cargo_env(cmd: &mut Command) {
     cmd.env("PATH", sanitized_path(orig_path));
 }
 
-/// Check if the three UEFI targets are installed via rustup (only
-/// supported since nightly-2022-11-10).
-fn is_target_installed(target: &str) -> Result<bool> {
-    let output = Command::new("rustup")
-        .args(["target", "list", "--installed"])
-        .output()?;
-    if !output.status.success() {
-        bail!("failed to get installed targets");
-    }
-    let stdout = String::from_utf8(output.stdout)?;
-    Ok(stdout.lines().any(|x| x == target))
-}
-
 #[derive(Debug)]
 pub struct Cargo {
     pub action: CargoAction,
@@ -290,13 +277,6 @@ impl Cargo {
 
         if let Some(target) = self.target {
             cmd.args(["--target", target.as_triple()]);
-
-            // If the target is not installed, use build-std. Keep this
-            // around until our minimum-supported nightly version is at
-            // least 2022-11-10.
-            if !is_target_installed(target.as_triple())? {
-                cmd.args(["-Zbuild-std=core,alloc"]);
-            }
         }
 
         if self.packages.is_empty() {