Vendor button working on Dell Latitude E4300

2013-10-03 Thread Christian Cier-Zniewski
Hello,

I would like to report that the vendor button feature is working for my
notebook "Dell Latitude E4300" with the CMOS address 85:3.
Maybe you want to update the help page with this model added.

Cheers,
Christian




smime.p7s
Description: S/MIME Cryptographic Signature
___
Grub-devel mailing list
Grub-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/grub-devel


[RFT] Rewrite timer on arm efi and remove leftover in startup code

2013-10-03 Thread Vladimir 'φ-coder/phcoder' Serbinenko
Current timer code for ARM EFI is horror. Can anyone test this?
=== modified file 'grub-core/kern/arm/efi/init.c'
--- grub-core/kern/arm/efi/init.c	2013-04-07 00:41:07 +
+++ grub-core/kern/arm/efi/init.c	2013-10-03 22:19:23 +
@@ -24,45 +24,47 @@
 #include 
 #include 
 
-/*
- * A bit ugly, but functional - and should be completely portable.
- */
+static grub_uint64_t tmr;
+static grub_efi_event_t tmr_evt;
+
 static grub_uint64_t
-grub_efi_get_time_ms(void)
-{
-  grub_efi_time_t now;
-  grub_uint64_t retval;
-  grub_efi_status_t status;
-
-  status = efi_call_2 (grub_efi_system_table->runtime_services->get_time,
-		   &now, NULL);
-  if (status != GRUB_EFI_SUCCESS)
-{
-  grub_printf("No time!\n");
-  return 0;
-}
-  retval = now.year * 365 * 24 * 60 * 60 * 1000;
-  retval += now.month * 30 * 24 * 60 * 60 * 1000;
-  retval += now.day * 24 * 60 * 60 * 1000;
-  retval += now.hour * 60 * 60 * 1000;
-  retval += now.minute * 60 * 1000;
-  retval += now.second * 1000;
-  retval += now.nanosecond / 1000;
- 
-  grub_dprintf("timer", "timestamp: 0x%llx\n", retval);
-
-  return retval;
+grub_efi_get_time_ms (void)
+{
+  return tmr;
+}
+
+static void 
+increment_timer (grub_efi_event_t event __attribute__ ((unused)),
+		 void *context __attribute__ ((unused)))
+{
+  tmr++;
 }
 
 void
 grub_machine_init (void)
 {
+  grub_efi_boot_services_t *b;
+
   grub_efi_init ();
+
+  b = grub_efi_system_table->boot_services;
+
+  efi_call_5 (b->create_event, GRUB_EFI_EVT_TIMER | GRUB_EFI_EVT_NOTIFY_SIGNAL,
+	  GRUB_EFI_TPL_CALLBACK, increment_timer, NULL, &tmr_evt);
+  efi_call_3 (b->set_timer, tmr_evt, GRUB_EFI_TIMER_PERIODIC, 1);
+
   grub_install_get_time_ms (grub_efi_get_time_ms);
 }
 
 void
 grub_machine_fini (void)
 {
+  grub_efi_boot_services_t *b;
+
+  b = grub_efi_system_table->boot_services;
+
+  efi_call_3 (b->set_timer, tmr_evt, GRUB_EFI_TIMER_PERIODIC, 0);
+  efi_call_1 (b->close_event, tmr_evt);
+
   grub_efi_fini ();
 }

=== modified file 'grub-core/kern/arm/efi/startup.S'
--- grub-core/kern/arm/efi/startup.S	2013-04-07 00:41:07 +
+++ grub-core/kern/arm/efi/startup.S	2013-10-03 22:20:58 +
@@ -33,6 +33,4 @@
 	str	r1, [ip]
 	ldr	ip, =EXT_C(grub_main)
 	bx	ip
-	.thumb		@ For relocation debugging
-	blx	_start
 	.end



signature.asc
Description: OpenPGP digital signature
___
Grub-devel mailing list
Grub-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/grub-devel


trouble (very slow reads -- disk or controller resets?) with Marvell 88SE92xx PCIe card

2013-10-03 Thread Daniel Kahn Gillmor
hi there--

i'm trying to boot a machine with grub-pc 2.00-19 (from debian sid), off
of two SATA disks connected to a PCIe controller.

The PCIe controller is a "​SYBA SI-PEX40064", and upon boot it announces
itself as:

Marvell 88SE92xx Adapter - BIOS Version 1.0.0.1010
PCIe x1 2.5Gbps
Mode: PassThru AHCI
Disks Information:
Port Disk NameSizeSpeed
S0   SATA: WDC WD2003FYYS-02W0B0  2TB 3Gb/s
S1   SATA: ST32000644NS   2TB 3Gb/s

Both of these disks have grub installed on them, and they hang with just
the output "GRUB" on the video console.

If i boot grub 2.00-19 from a USB stick, i can get into a grub rescue
shell just fine.  But when i do "ls" to get a listing of the disks, it
pauses for over a minute after printing:

(hd0) (hd0,msdos1) (hd1) (hd2)

and before giving me back a grub> prompt.

after "insmod part_gpt" and another "ls", i get:

(hd0) (hd0,msdos1) (hd1) (hd1,gpt3) (hd1,gpt2) (hd1,gpt1) (hd2)

and then another long hang.

this makes me think that grub is causing the SATA controller to reset
itself with every disk read or something, and then grub is waiting for
it to come back to life before carrying on.

Is this something i can debug better somehow?  is there a way to tell
grub to be "gentler" with the controller or something to avoid these hangs?

--dkg



signature.asc
Description: OpenPGP digital signature
___
Grub-devel mailing list
Grub-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/grub-devel