ada/dynamic_mmio: Drop unnecessary Volatile aspect

The access variable `Range_A` was accidentally declared `Volatile` which
led to the following complaint by GCC 7.1:

    volatile object cannot appear in this context (SPARK RM 7.1.3(11))

This happened probably to make `Range_A` compatible with our state
abstraction, but we can just use the correct abstraction instead.

TEST=Compiled a coreboot target with libgfxinit and checked the
     emitted assembly: Only minor reordering regarding the pointer
     but not the dereference.
     Booted ThinkPad T420 with libgfxinit enabled.

Change-Id: I56a3fcadce59713fb03a089d192d2022bfb1d378
Signed-off-by: Nico Huber <nico.huber@secunet.com>
Reviewed-on: https://review.coreboot.org/19624
Tested-by: Nico Huber <nico.h@gmx.de>
Reviewed-by: Patrick Georgi <pgeorgi@google.com>
Reviewed-by: Philippe Mathieu-Daudé <philippe.mathieu.daude@gmail.com>
diff --git a/ada/dynamic_mmio/hw-mmio_range.adb b/ada/dynamic_mmio/hw-mmio_range.adb
index 6a1f1f9..86c8d1b 100644
--- a/ada/dynamic_mmio/hw-mmio_range.adb
+++ b/ada/dynamic_mmio/hw-mmio_range.adb
@@ -20,8 +20,8 @@
 package body HW.MMIO_Range
 with
    Refined_State =>
-     (State => Range_A,       -- the contents accessed
-      Base_Address => null)   -- the address, so actually Range_A too
+     (State => null,             -- the contents accessed, Range_A points to it
+      Base_Address => Range_A)   -- the address, stored in Range_A
 is
    pragma Warnings (Off, "implicit dereference",
                     Reason => "This is what this package is about.");
@@ -33,8 +33,7 @@
    package Conv_Range is new System.Address_To_Access_Conversions (Array_T);
 
    Range_A : Range_Access :=
-      Range_Access (Conv_Range.To_Pointer (System'To_Address (Base_Addr)))
-   with Volatile;
+      Range_Access (Conv_Range.To_Pointer (System'To_Address (Base_Addr)));
 
    procedure Read (Value : out Element_T; Index : in Index_T)
    is