summaryrefslogtreecommitdiffstats
path: root/docs/future/fastboot/grub.cfg.memdisk
diff options
context:
space:
mode:
Diffstat (limited to 'docs/future/fastboot/grub.cfg.memdisk')
-rw-r--r--docs/future/fastboot/grub.cfg.memdisk106
1 files changed, 106 insertions, 0 deletions
diff --git a/docs/future/fastboot/grub.cfg.memdisk b/docs/future/fastboot/grub.cfg.memdisk
new file mode 100644
index 0000000..fb3a652
--- /dev/null
+++ b/docs/future/fastboot/grub.cfg.memdisk
@@ -0,0 +1,106 @@
+#### This goes into the memdisk (3rd alternative: hard drive not found and no config file in the cbfs)
+
+### Add regular keyboard support
+terminal_input --append at_keyboard
+
+### We are standalone
+set prefix=(memdisk)/boot/grub
+
+### If grub.cfg is on the disk or the cbfs, try to load it
+if [ -f "(ahci0,1)/grub.cfg" ] ; then
+ source (ahci0,1)/grub.cfg
+else
+ if [ -f "(ahci0,2)/grub.cfg" ] ; then
+ source (ahci0,2)/grub.cfg
+ else
+ if [ -f "(ahci0,3)/grub.cfg" ] ; then
+ source (ahci0,3)/grub.cfg
+ else
+ if [ -f "(ahci0,4)/grub.cfg" ] ; then
+ source (ahci0,4)/grub.cfg
+ else
+ if [ -f "(cbfsdisk)/etc/grub.cfg" ] ; then
+ # play 1 beep to say something is wrong
+ play 480 440 1
+ source (cbfsdisk)/etc/grub.cfg
+ else
+ # play 2 beeps to say something is quite wrong
+ play 480 440 1
+ play 480 440 1
+ # add integrated serial port:
+ serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1
+ terminal_input --append serial
+ terminal_output --append serial
+ # add usb serial:
+ insmod nativedisk
+ insmod ehci
+ insmod ohci
+ insmod uhci
+ insmod usb
+ insmod usbserial_pl2303
+ insmod usbserial_ftdi
+ insmod usbserial_usbdebug
+ serial --speed=115200 --word=8 --parity=no --stop=1 usb1
+ terminal_input --append serial_usb1
+ terminal_output --append serial_usb1
+
+ # Default to the first entry after 10 seconds to try and type blindly if needed
+ set default=1
+ set timeout=10
+ # Here are the entries
+ menuentry 'MEMDISK: SeaBIOS' {
+ chainloader (cbfsdisk)/elf/seabios.elf
+ }
+ menuentry 'MEMDISK: a kernel with root on /dev/sda1' {
+ linux (ahci0,1)/bzImage root=/dev/sda1 ro quiet
+ }
+ menuentry 'MEMDISK: Indicate normal coreboot success' {
+ cmosclean 0x30:0
+ cmosclean 0x30:1
+ cmosclean 0x30:2
+ cmosclean 0x30:3
+ cmosclean 0x30:4
+ cmosclean 0x30:5
+ }
+ menuentry 'MEMDISK: to show coreboot CBMEM logs, type' {
+ set pager=1
+ cbmemc
+ set pager=0
+ }
+ menuentry 'MEMDISK: to show coreboot CBFS content, type' {
+ lscoreboot
+ error
+ }
+ menuentry 'MEMDISK: to show coreboot TIMESTAMPS, type' {
+ coreboot_boottime
+ error
+ }
+ menuentry 'MEMDISK: reboot' {
+ # reset to normal
+ cmosclean 48:0
+ cmosclean 48:1
+ # reset boot count
+ cmosclean 48:4
+ cmosclean 48:5
+ cmosclean 48:6
+ cmosclean 48:7
+ # rebooting makes it impossible to shut down with normal.
+ reboot
+ }
+ menuentry 'MEMDISK: halt' {
+ # reset to normal
+ cmosclean 48:0
+ cmosclean 48:1
+ # reset boot count
+ cmosclean 48:4
+ cmosclean 48:5
+ cmosclean 48:6
+ cmosclean 48:7
+ # rebooting makes it impossible to shut down with normal.
+ halt
+ }
+ fi
+ fi
+ fi
+ fi
+fi