Switch to Google's arm-gic crate

Change the arm-gic dependency to use the Google's arm-gic crate from
crates.io. Also adding the GIC redistributor to the Peripherals.

Signed-off-by: Imre Kis <imre.kis@arm.com>
Change-Id: I63ec82f735e0b25c24eeebd2fc7ba48a39c866a5
diff --git a/Cargo.lock b/Cargo.lock
index 1aa19bb..da93a08 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -17,11 +17,13 @@
 
 [[package]]
 name = "arm-gic"
-version = "0.1.0"
-source = "git+https://git.trustedfirmware.org/rust-spmc/arm-gic.git#3e1263014caabe1ba6189b7693ac4f0466d6e19f"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "527b6e1c87b792f272e4964bef31a852077c35a395085833c8b51dc0ef3b4e13"
 dependencies = [
  "bitflags",
  "safe-mmio",
+ "thiserror",
  "zerocopy",
 ]
 
@@ -52,9 +54,9 @@
 
 [[package]]
 name = "bitflags"
-version = "2.9.0"
+version = "2.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd"
+checksum = "1b8e56985ec62d17e9c1001dc89c88ecd7dc08e47eba5ec7c29c7b5eeecde967"
 
 [[package]]
 name = "embedded-hal"
@@ -86,9 +88,9 @@
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.94"
+version = "1.0.95"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a31971752e70b8b2686d7e46ec17fb38dad4051d94024c88df49b667caea9c84"
+checksum = "02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778"
 dependencies = [
  "unicode-ident",
 ]
@@ -104,9 +106,9 @@
 
 [[package]]
 name = "safe-mmio"
-version = "0.2.2"
+version = "0.2.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f96d86dc25e8f742cf117e00b58db99e0c3505208babc33f124f0067f6c22024"
+checksum = "db02a82ad13df46afeba34a4e54065fa912308b9101b060e4422898eac0e06f6"
 dependencies = [
  "zerocopy",
 ]
@@ -119,9 +121,9 @@
 
 [[package]]
 name = "syn"
-version = "2.0.100"
+version = "2.0.104"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b09a44accad81e1ba1cd74a32461ba89dee89095ba17b32f5d03683b1b1fc2a0"
+checksum = "17b6f705963418cdb9927482fa304bc562ece2fdd4f616084c50b7023b435a40"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -156,18 +158,18 @@
 
 [[package]]
 name = "zerocopy"
-version = "0.8.24"
+version = "0.8.26"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2586fea28e186957ef732a5f8b3be2da217d65c5969d4b1e17f973ebbe876879"
+checksum = "1039dd0d3c310cf05de012d8a39ff557cb0d23087fd44cad61df08fc31907a2f"
 dependencies = [
  "zerocopy-derive",
 ]
 
 [[package]]
 name = "zerocopy-derive"
-version = "0.8.24"
+version = "0.8.26"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a996a8f63c5c4448cd959ac1bab0aaa3306ccfd060472f85943ee0750f0169be"
+checksum = "9ecf5b4cc5364572d7f4c329661bcc82724222973f2cab6f050a4e5c22f75181"
 dependencies = [
  "proc-macro2",
  "quote",
diff --git a/Cargo.toml b/Cargo.toml
index 0ef1f9b..531212f 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -15,7 +15,7 @@
 keywords = ["arm", "fvp", "pac", "virtual", "platform"]
 
 [dependencies]
-arm-gic = { git = "https://git.trustedfirmware.org/rust-spmc/arm-gic.git" }
+arm-gic = "0.5.0"
 arm-pl011-uart = { version = "0.3", default-features = false }
 arm-sp805 = "0.1"
 bitflags = "2.9"
diff --git a/README.md b/README.md
index 48659ec..796c2aa 100644
--- a/README.md
+++ b/README.md
@@ -40,7 +40,7 @@
 
 Please follow the directions of the [Trusted Firmware Processes](https://trusted-firmware-docs.readthedocs.io/en/latest/generic_processes/index.html).
 
-Contributions are handled through [review.trustedfirmware.org](https://review.trustedfirmware.org/q/project:rust-spmc/arm-psci).
+Contributions are handled through [review.trustedfirmware.org](https://review.trustedfirmware.org/q/project:rust-spmc/arm-fvp-base-pac).
 
 ## Arm trademark notice
 
diff --git a/src/lib.rs b/src/lib.rs
index c2e94fb..2da6744 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -14,7 +14,7 @@
 pub use arm_sp805;
 pub use safe_mmio::{PhysicalInstance, UniqueMmioPointer};
 
-use arm_gic::GICDRegisters;
+use arm_gic::gicv3::registers::{Gicd, GicrSgi};
 use arm_pl011_uart::PL011Registers;
 use arm_sp805::SP805Registers;
 use core::{fmt::Debug, ops::RangeInclusive};
@@ -114,7 +114,8 @@
     pub watchdog: PhysicalInstance<SP805Registers>,
     pub power_controller: PhysicalInstance<FvpPowerControllerRegisters>,
     pub trusted_watchdog: PhysicalInstance<SP805Registers>,
-    pub gicd: PhysicalInstance<GICDRegisters>,
+    pub gicd: PhysicalInstance<Gicd>,
+    pub gicr: PhysicalInstance<GicrSgi>,
 }
 
 impl Peripherals {
@@ -146,6 +147,7 @@
             power_controller: PhysicalInstance::new(*MemoryMap::POWER_CONTROLLER.start()),
             trusted_watchdog: PhysicalInstance::new(*MemoryMap::TRUSTED_WATCHDOG.start()),
             gicd: PhysicalInstance::new(*MemoryMap::GICD.start()),
+            gicr: PhysicalInstance::new(*MemoryMap::GICR.start()),
         }
     }
 }