This adds acpi as bootstrap module whenever it is available. This opens the
path for proper IRQ routing for fully-userland disk drivers.

Signed-off-by: Samuel Thibault <samuel.thiba...@ens-lyon.org>

diff --git a/util/grub.d/10_hurd.in b/util/grub.d/10_hurd.in
index 4294bbe4c..a021d02c2 100644
--- a/util/grub.d/10_hurd.in
+++ b/util/grub.d/10_hurd.in
@@ -68,6 +68,12 @@ for i in /hurd/${hurd_fs}.static /hurd/exec ; do
   fi
 done
 
+if test -e '/hurd/acpi.static' ; then
+  acpi=true
+else
+  acpi=false
+fi
+
 if test -e '/hurd/pci-arbiter.static' ; then
   pci_arbiter=true
 else
@@ -153,6 +159,24 @@ EOF
        echo            '$(echo "$message" | grub_quote)'
 EOF
 
+  if [ "$acpi" = true ] ; then
+    if [ "$pci_arbiter" = true ] ; then
+      next_task='${pci-task}'
+    elif [ "$rumpdisk" = true ] ; then
+      next_task='${disk-task}'
+    else
+      next_task='${fs-task}'
+    fi
+    sed "s/^/$submenu_indentation/" << EOF
+       module          /hurd/acpi.static acpi \\
+                       $host_ports \\
+                       --next-task='$next_task' \\
+                       '\$(acpi-task=task-create)' $resume_task
+EOF
+    host_ports=""
+    resume_task=""
+  fi
+
   if [ "$pci_arbiter" = true ] ; then
     if [ "$rumpdisk" = true ] ; then
       next_task='${disk-task}'

Reply via email to