public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* x86-64 with nvidia MCP51 chipset: kernel does not find HPET
@ 2006-10-27 22:15 Lee Revell
  2006-10-30 17:07 ` Langsdorf, Mark
  0 siblings, 1 reply; 5+ messages in thread
From: Lee Revell @ 2006-10-27 22:15 UTC (permalink / raw)
  To: linux-kernel; +Cc: Clemens Ladisch

I have a 6 month old x86-64 machine with nvidia MCP51 chipset on which
the kernel does not detect the HPET.  According to HPET maintainer
Clemens Ladisch, this machine certainly has one, but it cannot be
enabled for lack of hardware documentation.

Is there anything I can do to help debug this?

Lee


^ permalink raw reply	[flat|nested] 5+ messages in thread

* RE: x86-64 with nvidia MCP51 chipset: kernel does not find HPET
  2006-10-27 22:15 x86-64 with nvidia MCP51 chipset: kernel does not find HPET Lee Revell
@ 2006-10-30 17:07 ` Langsdorf, Mark
  2006-10-30 19:00   ` Lee Revell
  0 siblings, 1 reply; 5+ messages in thread
From: Langsdorf, Mark @ 2006-10-30 17:07 UTC (permalink / raw)
  To: Lee Revell, linux-kernel; +Cc: Clemens Ladisch

> I have a 6 month old x86-64 machine with nvidia MCP51 chipset on which
> the kernel does not detect the HPET.  According to HPET maintainer
> Clemens Ladisch, this machine certainly has one, but it cannot be
> enabled for lack of hardware documentation.
> 
> Is there anything I can do to help debug this?

If the hardware is not providing the HPET description in ACPI,
there's little you can do, and most vendors do not provide
the HPET description.

Do you know if there's an entry for HPET in the ACPI?

-Mark Langsdorf
AMD, Inc.



^ permalink raw reply	[flat|nested] 5+ messages in thread

* RE: x86-64 with nvidia MCP51 chipset: kernel does not find HPET
  2006-10-30 17:07 ` Langsdorf, Mark
@ 2006-10-30 19:00   ` Lee Revell
  2006-10-31 17:24     ` Langsdorf, Mark
  2006-11-15 20:55     ` Prakash Punnoor
  0 siblings, 2 replies; 5+ messages in thread
From: Lee Revell @ 2006-10-30 19:00 UTC (permalink / raw)
  To: Langsdorf, Mark; +Cc: linux-kernel, Clemens Ladisch

On Mon, 2006-10-30 at 11:07 -0600, Langsdorf, Mark wrote:
> > I have a 6 month old x86-64 machine with nvidia MCP51 chipset on which
> > the kernel does not detect the HPET.  According to HPET maintainer
> > Clemens Ladisch, this machine certainly has one, but it cannot be
> > enabled for lack of hardware documentation.
> > 
> > Is there anything I can do to help debug this?
> 
> If the hardware is not providing the HPET description in ACPI,
> there's little you can do, and most vendors do not provide
> the HPET description.
> 
> Do you know if there's an entry for HPET in the ACPI?

I'm not exactly an ACPI expert, but I do not think there is an entry for
HPET in the ACPI, as the check in arch/x86_64/kernel/io_apic.c fails:

 358                         /*
 359                          * All timer overrides on Nvidia are
 360                          * wrong unless HPET is enabled.
 361                          */
 362                         nvidia_hpet_detected = 0;
 363                         acpi_table_parse(ACPI_HPET,
 364                                         nvidia_hpet_check);
 365                         if (nvidia_hpet_detected == 0) {
 366                                 acpi_skip_timer_override = 1;
 367                                 printk(KERN_INFO "Nvidia board "
 368                                     "detected. Ignoring ACPI "
 369                                     "timer override.\n");
 370                         }

But, with some help from anonymous sources, I have been able to find the
HPET and make it work using a userspace driver that pokes registers by
mmap'ing /dev/mem.  So we just need a way to tell the kernel it's there.
Presumably this would require a PCI quirk.

Is this likely to be worth the trouble?

Lee



^ permalink raw reply	[flat|nested] 5+ messages in thread

* RE: x86-64 with nvidia MCP51 chipset: kernel does not find HPET
  2006-10-30 19:00   ` Lee Revell
@ 2006-10-31 17:24     ` Langsdorf, Mark
  2006-11-15 20:55     ` Prakash Punnoor
  1 sibling, 0 replies; 5+ messages in thread
From: Langsdorf, Mark @ 2006-10-31 17:24 UTC (permalink / raw)
  To: Lee Revell; +Cc: linux-kernel, Clemens Ladisch


 > > If the hardware is not providing the HPET description in ACPI,
> > there's little you can do, and most vendors do not provide
> > the HPET description.
> > 
> > Do you know if there's an entry for HPET in the ACPI?
> 
> I'm not exactly an ACPI expert, but I do not think there is 
> an entry for HPET in the ACPI, as the check in
> arch/x86_64/kernel/io_apic.c fails:
>
> But, with some help from anonymous sources, I have been able 
> to find the HPET and make it work using a userspace driver
> that pokes registers by mmap'ing /dev/mem.  So we just need
> a way to tell the kernel it's there.
> Presumably this would require a PCI quirk.
> 
> Is this likely to be worth the trouble?

It's not a general purpose solution, but if you can write
up the quirk, Andi might be willing to white list the 
machine in question.

-Mark Langsdorf
AMD, Inc.



^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: x86-64 with nvidia MCP51 chipset: kernel does not find HPET
  2006-10-30 19:00   ` Lee Revell
  2006-10-31 17:24     ` Langsdorf, Mark
@ 2006-11-15 20:55     ` Prakash Punnoor
  1 sibling, 0 replies; 5+ messages in thread
From: Prakash Punnoor @ 2006-11-15 20:55 UTC (permalink / raw)
  To: Lee Revell; +Cc: Langsdorf, Mark, linux-kernel, Clemens Ladisch

[-- Attachment #1: Type: text/plain, Size: 7406 bytes --]

Am Montag 30 Oktober 2006 20:00 schrieb Lee Revell:
> On Mon, 2006-10-30 at 11:07 -0600, Langsdorf, Mark wrote:
> > > I have a 6 month old x86-64 machine with nvidia MCP51 chipset on which
> > > the kernel does not detect the HPET.  According to HPET maintainer
> > > Clemens Ladisch, this machine certainly has one, but it cannot be
> > > enabled for lack of hardware documentation.
> > >
> > > Is there anything I can do to help debug this?
> >
[...]
> But, with some help from anonymous sources, I have been able to find the
> HPET and make it work using a userspace driver that pokes registers by
> mmap'ing /dev/mem.  So we just need a way to tell the kernel it's there.
> Presumably this would require a PCI quirk.
>
> Is this likely to be worth the trouble?

The new bios 0504 for my Asus M2NPV-VM has an bios option to enable HPET. Now 
Linux finds it (sorry for kmail line mangling):

diff -u 0405.txt 0504.txt
--- 0405.txt    2006-11-15 21:38:40.000000000 +0100
+++ 0504.txt    2006-11-15 21:48:27.000000000 +0100
@@ -8,19 +8,20 @@
  BIOS-e820: 000000007bef0000 - 000000007bef3000 (ACPI NVS)
  BIOS-e820: 000000007bef3000 - 000000007bf00000 (ACPI data)
  BIOS-e820: 000000007c000000 - 0000000080000000 (reserved)
- BIOS-e820: 00000000f0000000 - 00000000f4000000 (reserved)
+ BIOS-e820: 00000000e0000000 - 00000000f0000000 (reserved)
  BIOS-e820: 00000000fec00000 - 0000000100000000 (reserved)
 Entering add_active_range(0, 0, 159) 0 entries of 256 used
 Entering add_active_range(0, 256, 507632) 1 entries of 256 used
 end_pfn_map = 1048576
-DMI 2.3 present.
-ACPI: RSDP (v000 Nvidia                                ) @ 0x00000000000f75e0
-ACPI: RSDT (v001 Nvidia AWRDACPI 0x42302e31 AWRD 0x00000000) @ 
0x000000007bef3040
-ACPI: FADT (v001 Nvidia AWRDACPI 0x42302e31 AWRD 0x00000000) @ 
0x000000007bef30c0
-ACPI: SSDT (v001 PTLTD  POWERNOW 0x00000001  LTP 0x00000001) @ 
0x000000007befb280
-ACPI: MCFG (v001 Nvidia AWRDACPI 0x42302e31 AWRD 0x00000000) @ 
0x000000007befb4c0
-ACPI: MADT (v001 Nvidia AWRDACPI 0x42302e31 AWRD 0x00000000) @ 
0x000000007befb1c0
-ACPI: DSDT (v001 NVIDIA AWRDACPI 0x00001000 MSFT 0x0100000e) @ 
0x0000000000000000
+DMI 2.4 present.
+ACPI: RSDP (v002 Nvidia                                ) @ 0x00000000000f7560
+ACPI: XSDT (v001 Nvidia ASUSACPI 0x42302e31 AWRD 0x00000000) @ 
0x000000007bef30c0
+ACPI: FADT (v003 Nvidia ASUSACPI 0x42302e31 AWRD 0x00000000) @ 
0x000000007befb3c0
+ACPI: SSDT (v001 PTLTD  POWERNOW 0x00000001  LTP 0x00000001) @ 
0x000000007befb5c0
+ACPI: HPET (v001 Nvidia ASUSACPI 0x42302e31 AWRD 0x00000098) @ 
0x000000007befb800
+ACPI: MCFG (v001 Nvidia ASUSACPI 0x42302e31 AWRD 0x00000000) @ 
0x000000007befb880
+ACPI: MADT (v001 Nvidia ASUSACPI 0x42302e31 AWRD 0x00000000) @ 
0x000000007befb500
+ACPI: DSDT (v001 NVIDIA ASUSACPI 0x00001000 MSFT 0x0100000e) @ 
0x0000000000000000
 Entering add_active_range(0, 0, 159) 0 entries of 256 used
 Entering add_active_range(0, 256, 507632) 1 entries of 256 used
 Zone PFN ranges:
@@ -57,11 +58,12 @@
 ACPI: IRQ14 used by override.
 ACPI: IRQ15 used by override.
 Setting APIC routing to flat
+ACPI: HPET id: 0x10de8201 base: 0xfefff000
 Using ACPI (MADT) for SMP configuration information
 Nosave address range: 000000000009f000 - 00000000000a0000
 Nosave address range: 00000000000a0000 - 00000000000f0000
 Nosave address range: 00000000000f0000 - 0000000000100000
-Allocating PCI resources starting at 88000000 (gap: 80000000:70000000)
+Allocating PCI resources starting at 88000000 (gap: 80000000:60000000)
 PERCPU: Allocating 32128 bytes of per cpu data
 Built 1 zonelists.  Total pages: 499166
 Kernel command line: root=/dev/sda5 init=/sbin/initng enable_8254_timer lapic
@@ -70,8 +72,8 @@
 Console: colour VGA+ 80x25
 Dentry cache hash table entries: 262144 (order: 9, 2097152 bytes)
 Inode-cache hash table entries: 131072 (order: 8, 1048576 bytes)
-Memory: 1993004k/2030528k available (3612k kernel code, 36784k reserved, 
1435k data, 236k init)
-Calibrating delay using timer specific routine.. 4010.44 BogoMIPS 
(lpj=2005221)
+Memory: 1993004k/2030528k available (3612k kernel code, 36788k reserved, 
1435k data, 236k init)
+Calibrating delay using timer specific routine.. 4012.35 BogoMIPS 
(lpj=2006178)
 Mount-cache hash table entries: 256
 CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line)
 CPU: L2 Cache: 512K (64 bytes/line)
@@ -80,11 +82,11 @@
 Freeing SMP alternatives: 28k freed
 ACPI: Core revision 20060707
 Using local APIC timer interrupts.
-result 12526481
-Detected 12.526 MHz APIC timer.
+result 12528046
+Detected 12.528 MHz APIC timer.
 Booting processor 1/2 APIC 0x1
 Initializing CPU#1
-Calibrating delay using timer specific routine.. 4007.76 BogoMIPS 
(lpj=2003881)
+Calibrating delay using timer specific routine.. 4008.33 BogoMIPS 
(lpj=2004167)
 CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line)
 CPU: L2 Cache: 512K (64 bytes/line)
 CPU: Physical Processor ID: 0
@@ -94,13 +96,12 @@
 CPU 1: synchronized TSC with CPU 0 (last diff 0 cycles, maxerr 507 cycles)
 Brought up 2 CPUs
 testing NMI watchdog ... OK.
-Disabling vsyscall due to use of PM timer
-time.c: Using 3.579545 MHz WALL PM GTOD PM timer.
-time.c: Detected 2004.237 MHz processor.
-migration_cost=215
+time.c: Using 25.000000 MHz WALL HPET GTOD HPET timer.
+time.c: Detected 2004.485 MHz processor.
+migration_cost=193
 NET: Registered protocol family 16
 ACPI: bus type pci registered
-PCI: Using MMCONFIG at f0000000
+PCI: Using MMCONFIG at e0000000
 PCI: No mmconfig possible on device 00:18
 ACPI: Interpreter enabled
 ACPI: Using IOAPIC for interrupt routing
@@ -153,13 +154,15 @@
 ACPI: PCI Interrupt Link [APSJ] (IRQs 20 21 22 23) *0, disabled.
 Linux Plug and Play Support v0.97 (c) Adam Belay
 pnp: PnP ACPI init
-pnp: PnP ACPI: found 16 devices
+pnp: PnP ACPI: found 17 devices
 SCSI subsystem initialized
 usbcore: registered new interface driver usbfs
 usbcore: registered new interface driver hub
 usbcore: registered new device driver usb
 PCI: Using ACPI for IRQ routing
 PCI: If a device doesn't work, try "pci=routeirq".  If it helps, post a 
report
+hpet0: at MMIO 0xfefff000, IRQs 2, 8, 31
+hpet0: 3 32-bit timers, 25000000 Hz
 pnp: 00:01: ioport range 0x4000-0x407f could not be reserved
 pnp: 00:01: ioport range 0x4080-0x40ff has been reserved
 pnp: 00:01: ioport range 0x4400-0x447f has been reserved
@@ -228,13 +231,14 @@
 ACPI: Thermal Zone [THRM] (40 C)
 lp: driver loaded but no devices found
 Real Time Clock Driver v1.12ac
+hpet_resources: 0xfefff000 is busy
 Non-volatile memory driver v1.2
 Software Watchdog Timer: 0.07 initialized. soft_noboot=0 soft_margin=60 sec 
(nowayout= 0)
 Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing disabled
 serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
 serial8250: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A
-00:07: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
-00:08: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A
+00:08: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
+00:09: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A
 parport: PnPBIOS parport detected.
 parport0: PC-style at 0x378, irq 7 [PCSPP,TRISTATE,EPP]
 lp0: using parport0 (interrupt-driven).

-- 
(°=                 =°)
//\ Prakash Punnoor /\\
V_/                 \_V

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2006-11-15 20:54 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-10-27 22:15 x86-64 with nvidia MCP51 chipset: kernel does not find HPET Lee Revell
2006-10-30 17:07 ` Langsdorf, Mark
2006-10-30 19:00   ` Lee Revell
2006-10-31 17:24     ` Langsdorf, Mark
2006-11-15 20:55     ` Prakash Punnoor

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox