diff --git a/Cargo.lock b/Cargo.lock index 182d3257..72063c67 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -20,7 +20,6 @@ dependencies = [ "cpp_demangle", "gimli", "rustc-demangle", - "rustc-std-workspace-alloc", ] [[package]] @@ -190,9 +189,9 @@ dependencies = [ [[package]] name = "axbacktrace" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac82d77c48f98335e4f9b546ef69356d429ee7e9933560bb55696f498a1a26dc" +checksum = "bf9566516f5d799b2f791a6ec5af57eec87d17624346f7c876fa006b922c99e6" dependencies = [ "addr2line", "cfg-if", @@ -234,7 +233,7 @@ dependencies = [ [[package]] name = "axcpu" version = "0.3.0" -source = "git+https://github.com/arceos-org/axcpu.git?tag=dev-v03#1dc46de5d5a0b6befba9fa25a560386e5d9e19c6" +source = "git+https://github.com/arceos-org/axcpu.git?tag=dev-v03#72ef3859952b7340bae261c9a50c32705e602017" dependencies = [ "aarch64-cpu", "axbacktrace", @@ -288,22 +287,23 @@ dependencies = [ [[package]] name = "axdriver_base" version = "0.1.2" -source = "git+https://github.com/arceos-org/axdriver_crates.git?tag=dev-v01#498df4ecde85b8acc2553d93102ad32d76339110" +source = "git+https://github.com/arceos-org/axdriver_crates.git?tag=dev-v01#16f1ae864e1317f67d4e22a645fcb7399ae86596" [[package]] name = "axdriver_block" version = "0.1.2" -source = "git+https://github.com/arceos-org/axdriver_crates.git?tag=dev-v01#498df4ecde85b8acc2553d93102ad32d76339110" +source = "git+https://github.com/arceos-org/axdriver_crates.git?tag=dev-v01#16f1ae864e1317f67d4e22a645fcb7399ae86596" dependencies = [ "axdriver_base", "log", + "simple-ahci", "simple-sdmmc", ] [[package]] name = "axdriver_display" version = "0.1.2" -source = "git+https://github.com/arceos-org/axdriver_crates.git?tag=dev-v01#498df4ecde85b8acc2553d93102ad32d76339110" +source = "git+https://github.com/arceos-org/axdriver_crates.git?tag=dev-v01#16f1ae864e1317f67d4e22a645fcb7399ae86596" dependencies = [ "axdriver_base", ] @@ -311,7 +311,7 @@ dependencies = [ [[package]] name = "axdriver_input" version = "0.1.2" -source = "git+https://github.com/arceos-org/axdriver_crates.git?tag=dev-v01#498df4ecde85b8acc2553d93102ad32d76339110" +source = "git+https://github.com/arceos-org/axdriver_crates.git?tag=dev-v01#16f1ae864e1317f67d4e22a645fcb7399ae86596" dependencies = [ "axdriver_base", "strum", @@ -320,7 +320,7 @@ dependencies = [ [[package]] name = "axdriver_net" version = "0.1.2" -source = "git+https://github.com/arceos-org/axdriver_crates.git?tag=dev-v01#498df4ecde85b8acc2553d93102ad32d76339110" +source = "git+https://github.com/arceos-org/axdriver_crates.git?tag=dev-v01#16f1ae864e1317f67d4e22a645fcb7399ae86596" dependencies = [ "axdriver_base", "log", @@ -330,7 +330,7 @@ dependencies = [ [[package]] name = "axdriver_pci" version = "0.1.2" -source = "git+https://github.com/arceos-org/axdriver_crates.git?tag=dev-v01#498df4ecde85b8acc2553d93102ad32d76339110" +source = "git+https://github.com/arceos-org/axdriver_crates.git?tag=dev-v01#16f1ae864e1317f67d4e22a645fcb7399ae86596" dependencies = [ "virtio-drivers", ] @@ -338,7 +338,7 @@ dependencies = [ [[package]] name = "axdriver_virtio" version = "0.1.2" -source = "git+https://github.com/arceos-org/axdriver_crates.git?tag=dev-v01#498df4ecde85b8acc2553d93102ad32d76339110" +source = "git+https://github.com/arceos-org/axdriver_crates.git?tag=dev-v01#16f1ae864e1317f67d4e22a645fcb7399ae86596" dependencies = [ "axdriver_base", "axdriver_block", @@ -353,7 +353,7 @@ dependencies = [ [[package]] name = "axdriver_vsock" version = "0.1.2" -source = "git+https://github.com/arceos-org/axdriver_crates.git?tag=dev-v01#498df4ecde85b8acc2553d93102ad32d76339110" +source = "git+https://github.com/arceos-org/axdriver_crates.git?tag=dev-v01#16f1ae864e1317f67d4e22a645fcb7399ae86596" dependencies = [ "axdriver_base", "log", @@ -544,7 +544,7 @@ dependencies = [ [[package]] name = "axplat" version = "0.3.0" -source = "git+https://github.com/arceos-org/axplat_crates.git?tag=dev-v03#72b148262f4f58a3a6c64c23d0f377e6469b662a" +source = "git+https://github.com/arceos-org/axplat_crates.git?tag=dev-v03#0df0713b1c20eafaeebdc6b0e194b2985e857949" dependencies = [ "axplat-macros", "bitflags 2.10.0", @@ -559,7 +559,7 @@ dependencies = [ [[package]] name = "axplat-aarch64-peripherals" version = "0.3.0" -source = "git+https://github.com/arceos-org/axplat_crates.git?tag=dev-v03#72b148262f4f58a3a6c64c23d0f377e6469b662a" +source = "git+https://github.com/arceos-org/axplat_crates.git?tag=dev-v03#0df0713b1c20eafaeebdc6b0e194b2985e857949" dependencies = [ "aarch64-cpu", "arm-gic-driver", @@ -578,7 +578,7 @@ dependencies = [ [[package]] name = "axplat-aarch64-qemu-virt" version = "0.3.0" -source = "git+https://github.com/arceos-org/axplat_crates.git?tag=dev-v03#72b148262f4f58a3a6c64c23d0f377e6469b662a" +source = "git+https://github.com/arceos-org/axplat_crates.git?tag=dev-v03#0df0713b1c20eafaeebdc6b0e194b2985e857949" dependencies = [ "axconfig-macros", "axcpu", @@ -588,10 +588,27 @@ dependencies = [ "page_table_entry", ] +[[package]] +name = "axplat-loongarch64-2k1000la" +version = "0.3.0" +source = "git+https://github.com/Starry-OS/axplat-loongarch64-2k1000la.git?tag=dev-v03#1e825df2b88b6f79885d7a0a314b183a07aee7b8" +dependencies = [ + "axconfig-macros", + "axcpu", + "axplat", + "chrono", + "kspin", + "lazyinit", + "log", + "loongArch64", + "page_table_entry", + "uart_16550", +] + [[package]] name = "axplat-loongarch64-qemu-virt" version = "0.3.0" -source = "git+https://github.com/arceos-org/axplat_crates.git?tag=dev-v03#72b148262f4f58a3a6c64c23d0f377e6469b662a" +source = "git+https://github.com/arceos-org/axplat_crates.git?tag=dev-v03#0df0713b1c20eafaeebdc6b0e194b2985e857949" dependencies = [ "axconfig-macros", "axcpu", @@ -608,7 +625,7 @@ dependencies = [ [[package]] name = "axplat-macros" version = "0.1.0" -source = "git+https://github.com/arceos-org/axplat_crates.git?tag=dev-v03#72b148262f4f58a3a6c64c23d0f377e6469b662a" +source = "git+https://github.com/arceos-org/axplat_crates.git?tag=dev-v03#0df0713b1c20eafaeebdc6b0e194b2985e857949" dependencies = [ "proc-macro2", "quote", @@ -618,7 +635,7 @@ dependencies = [ [[package]] name = "axplat-riscv64-qemu-virt" version = "0.3.0" -source = "git+https://github.com/arceos-org/axplat_crates.git?tag=dev-v03#72b148262f4f58a3a6c64c23d0f377e6469b662a" +source = "git+https://github.com/arceos-org/axplat_crates.git?tag=dev-v03#0df0713b1c20eafaeebdc6b0e194b2985e857949" dependencies = [ "axconfig-macros", "axcpu", @@ -628,7 +645,7 @@ dependencies = [ "log", "riscv", "riscv_goldfish", - "riscv_plic", + "riscv_plic 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "sbi-rt", "uart_16550", ] @@ -646,7 +663,7 @@ dependencies = [ "log", "riscv", "riscv_goldfish", - "riscv_plic", + "riscv_plic 0.2.0 (git+https://github.com/arceos-org/riscv_plic.git?tag=dev-v02)", "sbi-rt", "uart_16550", ] @@ -654,7 +671,7 @@ dependencies = [ [[package]] name = "axplat-x86-pc" version = "0.3.0" -source = "git+https://github.com/arceos-org/axplat_crates.git?tag=dev-v03#72b148262f4f58a3a6c64c23d0f377e6469b662a" +source = "git+https://github.com/arceos-org/axplat_crates.git?tag=dev-v03#0df0713b1c20eafaeebdc6b0e194b2985e857949" dependencies = [ "axconfig-macros", "axcpu", @@ -970,9 +987,9 @@ checksum = "2f8a2ca5ac02d09563609681103aada9e1777d54fc57a5acd7a41404f9c93b6e" [[package]] name = "convert_case" -version = "0.7.1" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb402b8d4c85569410425650ce3eddc7d698ed96d39a73f941b08fb63082f1e7" +checksum = "633458d4ef8c78b72454de2d54fd6ab2e60f9e02be22f3c6104cdc8a4e0fceb9" dependencies = [ "unicode-segmentation", ] @@ -1116,22 +1133,23 @@ dependencies = [ [[package]] name = "derive_more" -version = "2.0.1" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "093242cf7570c207c83073cf82f79706fe7b8317e98620a47d5be7c3d8497678" +checksum = "10b768e943bed7bf2cab53df09f4bc34bfd217cdb57d971e769874c9a6710618" dependencies = [ "derive_more-impl", ] [[package]] name = "derive_more-impl" -version = "2.0.1" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bda628edc44c4bb645fbe0f758797143e4e07926f7ebf4e9bdfbd3d2ce621df3" +checksum = "6d286bfdaf75e988b4a78e013ecd79c581e06399ab53fbacd2d916c2f904f30b" dependencies = [ "convert_case", "proc-macro2", "quote", + "rustc_version", "syn 2.0.111", "unicode-xid", ] @@ -1429,14 +1447,14 @@ source = "git+https://github.com/Starry-OS/kernel_elf_parser.git?rev=fdcce74#fdc dependencies = [ "xmas-elf", "zero", - "zerocopy 0.8.30", + "zerocopy 0.8.31", ] [[package]] name = "kernel_guard" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "307e6be468f3d6b6d895e191f63c11602e4e76575ecca68325d8c8dbebe2870e" +checksum = "d10c55bedf6789bc3748e0d8756ee639df1ae25144fd3525ed311044bd9a739f" dependencies = [ "cfg-if", "crate_interface", @@ -1469,9 +1487,9 @@ checksum = "17f03abfebdaaf0fad16790237a0348baf84886d3ade460db13bae59e614a180" [[package]] name = "libc" -version = "0.2.177" +version = "0.2.178" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2874a2af47a2325c2001a6e6fad9b16a53b802102b528163885171cf92b15976" +checksum = "37c93d8daa9d8a012fd8ab92f088405fb202ea0b6ab73ee2482ae66af4f42091" [[package]] name = "libloading" @@ -1526,9 +1544,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.28" +version = "0.4.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432" +checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" [[package]] name = "loongArch64" @@ -1954,6 +1972,15 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "07aac72f95e774476db82916d79f2d303191310393830573c1ab5c821b21660a" +[[package]] +name = "riscv_plic" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e701d1c6ea06c35a19cb80d213fab87d264798f9bac0aed2730c0e86d297394a" +dependencies = [ + "tock-registers 0.10.1", +] + [[package]] name = "riscv_plic" version = "0.2.0" @@ -1987,10 +2014,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" [[package]] -name = "rustc-std-workspace-alloc" -version = "1.0.1" +name = "rustc_version" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9d441c3b2ebf55cebf796bfdc265d67fa09db17b7bb6bd4be75c509e1e8fec3" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" +dependencies = [ + "semver", +] [[package]] name = "rustversion" @@ -2029,12 +2059,29 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" +[[package]] +name = "semver" +version = "1.0.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2" + [[package]] name = "shlex" version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" +[[package]] +name = "simple-ahci" +version = "0.1.0" +source = "git+https://github.com/Starry-OS/simple-ahci.git?rev=36d0979#36d0979fedb17c7846b78d1a63f944da31f96186" +dependencies = [ + "bitfield-struct", + "log", + "thiserror", + "volatile 0.6.1", +] + [[package]] name = "simple-sdmmc" version = "0.1.0" @@ -2113,6 +2160,7 @@ dependencies = [ "axfs", "axhal", "axlog", + "axplat-loongarch64-2k1000la", "axplat-riscv64-visionfive2", "axruntime", "axsync", @@ -2177,7 +2225,7 @@ dependencies = [ "starry-vm", "syscalls", "x86", - "zerocopy 0.8.30", + "zerocopy 0.8.31", ] [[package]] @@ -2523,9 +2571,9 @@ dependencies = [ [[package]] name = "winnow" -version = "0.7.13" +version = "0.7.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21a0236b59786fed61e2a80582dd500fe61f18b5dca67a4a067d0bc9039339cf" +checksum = "5a5364e9d77fcdeeaa6062ced926ee3381faa2ee02d3eb83a5c27a8825540829" dependencies = [ "memchr", ] @@ -2610,11 +2658,11 @@ dependencies = [ [[package]] name = "zerocopy" -version = "0.8.30" +version = "0.8.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ea879c944afe8a2b25fef16bb4ba234f47c694565e97383b36f3a878219065c" +checksum = "fd74ec98b9250adb3ca554bdde269adf631549f51d8a8f8f0a10b50f1cb298c3" dependencies = [ - "zerocopy-derive 0.8.30", + "zerocopy-derive 0.8.31", ] [[package]] @@ -2630,9 +2678,9 @@ dependencies = [ [[package]] name = "zerocopy-derive" -version = "0.8.30" +version = "0.8.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf955aa904d6040f70dc8e9384444cb1030aed272ba3cb09bbc4ab9e7c1f34f5" +checksum = "d8a8d209fdf45cf5138cbb5a506f6b52522a25afccc534d1475dad8e31105c6a" dependencies = [ "proc-macro2", "quote", diff --git a/Cargo.toml b/Cargo.toml index 260506aa..0fbc76d0 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -105,9 +105,14 @@ qemu = [ "axfeat/fs-times", "starry-api/dev-log", ] -smp = ["axfeat/smp", "axplat-riscv64-visionfive2?/smp"] +smp = [ + "axfeat/smp", + "axplat-riscv64-visionfive2?/smp", + "axplat-loongarch64-2k1000la?/smp", +] vf2 = ["dep:axplat-riscv64-visionfive2", "axfeat/driver-sdmmc"] +2k1000la = ["dep:axplat-loongarch64-2k1000la", "axfeat/driver-ahci"] [dependencies] axdriver.workspace = true @@ -129,12 +134,17 @@ starry-core.workspace = true starry-api.workspace = true [dependencies.axplat-riscv64-visionfive2] -version = "0.3" git = "https://github.com/Starry-OS/axplat-riscv64-visionfive2.git" tag = "dev-v03" features = ["fp-simd", "irq", "rtc"] optional = true +[dependencies.axplat-loongarch64-2k1000la] +git = "https://github.com/Starry-OS/axplat-loongarch64-2k1000la.git" +tag = "dev-v03" +features = ["fp-simd", "irq", "rtc"] +optional = true + [package.metadata.vendor-filter] platforms = ["riscv64gc-unknown-none-elf", "loongarch64-unknown-none-softfloat"] all-features = true diff --git a/Makefile b/Makefile index d214ce03..81ad89a3 100644 --- a/Makefile +++ b/Makefile @@ -54,4 +54,7 @@ la: vf2: $(MAKE) ARCH=riscv64 APP_FEATURES=vf2 MYPLAT=axplat-riscv64-visionfive2 BUS=mmio build +2k1000la: + RUSTFLAGS="-C target-feature=-ual" $(MAKE) ARCH=loongarch64 APP_FEATURES=2k1000la MYPLAT=axplat-loongarch64-2k1000la BUS=mmio build + .PHONY: build run justrun debug disasm clean diff --git a/arceos b/arceos index 9253879c..8195846e 160000 --- a/arceos +++ b/arceos @@ -1 +1 @@ -Subproject commit 9253879cb8206444d0334552a7099f0a44a558db +Subproject commit 8195846ed07d725bdeb6e20b73b2c9b263f71dfa diff --git a/src/main.rs b/src/main.rs index b88237cc..6fc169f0 100644 --- a/src/main.rs +++ b/src/main.rs @@ -41,3 +41,6 @@ fn main() { #[cfg(feature = "vf2")] extern crate axplat_riscv64_visionfive2; + +#[cfg(feature = "2k1000la")] +extern crate axplat_loongarch64_2k1000la;