aboutsummaryrefslogtreecommitdiff
path: root/src/drivers/intel/gma/gma.ads
diff options
context:
space:
mode:
authorNico Huber <nico.huber@secunet.com>2016-10-05 17:47:32 +0200
committerNico Huber <nico.h@gmx.de>2016-11-29 23:46:05 +0100
commit542e9488bd3f084c373e89e869aeca84aaa8c66c (patch)
tree08a4ecce3ff674e6040a43041bd07b50ce454cbe /src/drivers/intel/gma/gma.ads
parentc83239eabc3b09273294a013c4dcb84f09ab0241 (diff)
drivers/intel/gma: Hook up libgfxinit
Add `libgfxinit` as another option for native graphics initialization. For that, the function gma_gfxinit() (see drivers/intel/gma/i915.h) has to be called by the respective northbridge/soc code. A mainboard port needs to select `CONFIG_MAINBOARD_HAS_LIBGFXINIT` and implement the Ada package `GMA.Mainboard` with a single function `ports` that returns a list of ports to be probed for displays. v2: Update 3rdparty/libgfxinit to its latest master commit to make things buildable within coreboot. v3: Another update to 3rdparty/libgfxinit. Including support to select the I2C port for VGA. Change-Id: I4c7be3745f32853797d3f3689396dde07d4ca950 Signed-off-by: Nico Huber <nico.huber@secunet.com> Reviewed-on: https://review.coreboot.org/16952 Tested-by: build bot (Jenkins) Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net> Reviewed-by: Ronald G. Minnich <rminnich@gmail.com>
Diffstat (limited to 'src/drivers/intel/gma/gma.ads')
-rw-r--r--src/drivers/intel/gma/gma.ads43
1 files changed, 43 insertions, 0 deletions
diff --git a/src/drivers/intel/gma/gma.ads b/src/drivers/intel/gma/gma.ads
new file mode 100644
index 0000000000..d912df1635
--- /dev/null
+++ b/src/drivers/intel/gma/gma.ads
@@ -0,0 +1,43 @@
+with Interfaces.C;
+
+with HW;
+use HW;
+
+package GMA
+is
+
+ procedure gfxinit
+ (mmio_base : in word64;
+ linear_fb : in word64;
+ phys_fb : in word32;
+ lightup_ok : out Interfaces.C.int);
+ pragma Export (C, gfxinit, "gma_gfxinit");
+
+ ----------------------------------------------------------------------------
+
+ function vbe_mode_info_valid return Interfaces.C.int;
+ pragma Export (C, vbe_mode_info_valid, "vbe_mode_info_valid");
+
+ type lb_framebuffer is record
+ tag : word32;
+ size : word32;
+
+ physical_address : word64;
+ x_resolution : word32;
+ y_resolution : word32;
+ bytes_per_line : word32;
+ bits_per_pixel : word8;
+ red_mask_pos : word8;
+ red_mask_size : word8;
+ green_mask_pos : word8;
+ green_mask_size : word8;
+ blue_mask_pos : word8;
+ blue_mask_size : word8;
+ reserved_mask_pos : word8;
+ reserved_mask_size : word8;
+ end record;
+
+ procedure fill_lb_framebuffer (framebuffer : out lb_framebuffer);
+ pragma Export (C, fill_lb_framebuffer, "fill_lb_framebuffer");
+
+end GMA;