* [uml-devel] Kernel idles in loop after loading IPv4
From: Phil Nadeau @ 2004-01-27 20:54 UTC (permalink / raw)
To: user-mode-linux-devel
Hello UML developers,
I'm trying to use UML to set up a simulator for a high-availability
cluster. I encounter the following unexpected behavior -
On any kernel that I compile with IPv4 support, the kernel will stop
intializing drivers after loading IPv4 support. The last message I see
from the kernel is:
NET: Registered protocol family 2
Compiling with debug allows me to single-step through the kernel. I've
traced execution from inet_init(), to synchronize_net(), to
synchronize_kernel(), to a call to wait_for_completion(), to
switch_to_tt(), after which the kernel spends all its time in the idle
loop. This happens whether I'm using SKAS or TT mode.
Host kernel is 2.6.1 with Stephen William's 2.6.1 SKAS patch (thanks
Stephen). Guest kernel is 2.6.1 with the latest patch from Sourceforge
(January 15th), without modules, and with nearly everything disabled at
compile except core functionality and IPv4.
I've tried to find similar cases in the FAQ's and the list archives, but
I'm not seeing anything. It seems like the kernel is waiting for an
event related to IPv4 initialization that it never gets, but I'm not
familiar enough with the kernel proper to know what that might be. Does
anyone have any ideas?
Thanks in advance.
--
Phil Nadeau
Software Services Manager
phil.nadeau@innercite.com
(916)932-3200, (800)921-5513
-------------------------------------------------------
The SF.Net email is sponsored by EclipseCon 2004
Premiere Conference on Open Tools Development and Integration
See the breadth of Eclipse activity. February 3-5 in Anaheim, CA.
http://www.eclipsecon.org/osdn
_______________________________________________
User-mode-linux-devel mailing list
User-mode-linux-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel
^ permalink raw reply
* NetBSD port and a couple of remarks
From: Christian Limpach @ 2004-01-27 20:59 UTC (permalink / raw)
To: xen-devel
Hi!
I have made a NetBSD-current kernel which boots on Xen. It still has some
problems but it's good enough to boot multi-user and allows logins.
While working on this, I noticed a few problems and I'm wondering if these
are corrected in Xen versions >1.1:
- the count for the initial l2 pagetable seems to be wrong: The page is
pin'ed and it's used as a l2 pagetable but it's count is 0x40000000. If
you switch to another table, you can't unpin in and if you unpin it first,
it will stay typed as a l2 pagetable. Additionally, if you unpin it, you
can make it writable then while it's still in use...
- Xen completely locks up if my idle loop doesn't call the yield function,
but consists of:
* clear EVENTS_MASTER_ENABLE_BIT
* check NetBSD runqueues
* set EVENTS_MASTER_ENABLE_BIT
* check for missed events
* loop
Not sure yet, why that is... It only happens occasionally but I never
managed to complete a boot until I added the yield call. I'm using the
hypervisor callback code with critical region fixup from mini-os which I
think is identical to the one used in Linux.
I've implemented a network driver and a console driver (output only).
There's no support for dom0 operations yet and there's no driver for
harddisks yet. Also a couple minor things like cpu speed detection and
setting the clock are missing. Right now there's also still some problems
with pagetables where either hypervisor calls are used to update inactive
pagetables or vice versa to a lesser extent. I think that will be solved
once I use pinning.
I hope to commit this to the NetBSD tree eventually. Or I'll make patches
available after some cleaning up.
Finally, if someone could get me a xen-1.2 and/or xen-unstable tree out of
bitkeeper, that would be much appreciated.
--
Christian Limpach <chris@pin.lu>
[11] text 0xc0100000 data 0xc0276c24 bss 0xc02808c4 end 0xc02c163c esym
0xc02f177c
[11] NetBSD 1.6ZH (XENO) #704: Tue Jan 27 18:52:02 CET 2004
[11] chris@marble:/devel/netbsd/src-current-xen/compile/XENO
[11] start_info: 0xc02bbd80
[11] nr_pages: 4000
[11] shared_inf: 0xc0300000 (was 0xc10a0000)
[11] pt_base: 0xc109f000
[11] mod_start: 0xc0281000
[11] mod_len: 196924
[11] net_rings:
[11] 264000
[11]
[11] blk_ring: 0x258000
[11] dom_id: 11
[11] flags: 0x0
[11] cmd_line:
ip=172.20.4.17:172.20.4.13:172.20.1.1:255.255.128.0::eth0:off
bootdev=xennet0 nfsroot=marble:/netboot/qube
[11] NetBSD Xen console attached.
Loaded initial symtab at 0xc02c1640, strtab at 0xc02db47c, # entries 6576
Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
The NetBSD Foundation, Inc. All rights reserved.
Copyright (c) 1982, 1986, 1989, 1991, 1993
The Regents of the University of California. All rights reserved.
NetBSD 1.6ZH (XENO) #704: Tue Jan 27 18:52:02 CET 2004
chris@marble:/devel/netbsd/src-current-xen/compile/XENO
total memory = 13948 KB
avail memory = 13576 KB
[11] Xen reported: 501.148 MHz processor.
mainbus0 (root)
cpu0 at mainbus0: (uniprocessor)
cpu0: Intel Celeron (Mendocino) (686-class), 20.00 MHz, id 0x665
cpu0: features 183fbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR>
cpu0: features 183fbff<PGE,MCA,CMOV,PAT,PSE36,MMX>
cpu0: features 183fbff<FXSR>
cpu0: I-cache 16 KB 32b/line 4-way, D-cache 16 KB 32b/line 4-way
cpu0: L2 cache 128 KB 32b/line 4-way
cpu0: ITLB 32 4 KB entries 4-way, 2 4 MB entries fully associative
cpu0: DTLB 64 4 KB entries 4-way, 8 4 MB entries 4-way
cpu0: 8 page colors
xenc0 at mainbus0: Xen Virtual Console Driver
xennet0 at mainbus0: Xen Virtual Network Driver
xennet0: MAC address aa:00:00:24:1c:9b
npx0 at mainbus0: using exception 16
IPsec: Initialized Security Association Processing.
boot device: xennet0
root on xennet0
mountroot: trying nfs...
nfs_boot: trying static
nfs_boot: client_addr=172.20.4.17
nfs_boot: gateway=172.20.1.1
nfs_boot: netmask=255.255.128.0
nfs_boot: server=172.20.4.13
nfs_boot: root=marble:/netboot/qube
root on marble:/netboot/qube
root time: 0x4016a704
root file system type: nfs
init: copying out path `/sbin/init' 11
Thu Jan 1 00:01:05 UTC 1970
Starting file system checks:
Setting tty flags.
Setting sysctl variables:
Starting network.
Hostname: qube
IPv6 mode: host
Configuring network interfaces:
..
Building databases...
Starting syslogd.
Mounting all filesystems...
Creating a.out runtime link editor directory cache.
Checking quotas:
done.
/etc/rc: WARNING: No swap space configured!
Starting virecover.
Starting local daemons:
..
Starting sshd.
Starting inetd.
Thu Jan 1 00:01:16 UTC 1970
NetBSD/i386 (qube) (console)
login:
-------------------------------------------------------
The SF.Net email is sponsored by EclipseCon 2004
Premiere Conference on Open Tools Development and Integration
See the breadth of Eclipse activity. February 3-5 in Anaheim, CA.
http://www.eclipsecon.org/osdn
^ permalink raw reply
* Re: 2.6.2-rc1 / ACPI sleep / irqbalance / kirqd / pentium 4 HT problems on Uniwill N258SA0
From: Pavel Machek @ 2004-01-27 20:58 UTC (permalink / raw)
To: Bart Samwel; +Cc: Huw Rogers, linux-kernel, linux-laptop
In-Reply-To: <401685F9.6000904@samwel.tk>
Hi!
> >>Anyway, sleep/suspend/standby functionality (important to most laptop
> >>users, need to close the lid and go): This checkin to
> >>kernel/power/main.c seems to disable suspend with SMP (!?):
> >>
> >>--- 1.3/kernel/power/main.c Sat Jan 24 20:44:47 2004
> >>+++ 1.4/kernel/power/main.c Sat Jan 24 20:44:47 2004
> >>@@ -172,6 +172,12 @@
> >> if (down_trylock(&pm_sem))
> >> return -EBUSY;
> >>
> >>+ /* Suspend is hard to get right on SMP. */
> >>+ if (num_online_cpus() != 1) {
> >>+ error = -EPERM;
> >>+ goto Unlock;
> >>+ }
> >>+
> >> if ((error = suspend_prepare(state)))
> >> goto Unlock;
> >>
> >>... which, given the prevalence of hyperthreaded CPUs on laptops, is
> >>fighting a trend. I backed out the above with a #if 0 then tried echo -n
> >>1>/proc/acpi/sleep again. This time I got:
> >
> >
> > Well, no sleep developers have SMP or HT machines, AFAICT.
> >
> > If you back that out... well you are on your own.
>
> Just a random thought: if I understand it correctly, CPU hotplugging is
> intended to be able to take CPUs online and offline one by one, am I
> right? Well, when that infrastructure's ready, this can probably be made
> to work for SMP by taking all the other CPUs offline first. They're all
> going to go offline because of the suspend anyway, so it shouldn't make
> much difference. :)
That was original plan, but CPU hotplug is unlikely to get into 2.6,
AFAICT. (And Nigel has another solution).
Pavel
--
When do you have a heart between your knees?
[Johanka's followup: and *two* hearts?]
^ permalink raw reply
* Re: [PATCH|RFC] IPv6 netfilter: a module for complete proxy ND support
From: Ville Nuorvala @ 2004-01-27 20:58 UTC (permalink / raw)
To: YOSHIFUJI Hideaki / 吉藤英明
Cc: netfilter-devel, davem, netdev, kuznet
In-Reply-To: <20040116.005443.92504522.yoshfuji@linux-ipv6.org>
Hello,
netdev apparently ate my reply, but let me do a recap:
On Fri, 16 Jan 2004, YOSHIFUJI Hideaki / [iso-2022-jp] µÈÆ£±ÑÌÀ wrote:
> So, all usage of pneigh_XXX() is not for rfc2461 but for proxy arp.
> 1) We need to consider how to implement rfc2461-proxy.
> 2) We need to revisit all usages in net/ipv6.
No, the pneigh_XXX() *is* the way to do RFC2461 proxying :)
I think Thaler's extended "proxy ARP" for IPv6 needs some other framework.
I still haven't had the time to check how proxy ARP really works in IPv4,
so I might have misunderstood this line in arp.c (line 763):
"(arp_fwd_proxy(in_dev, rt) || pneigh_lookup(&arp_tbl, &tip, dev, 0)))) {"
I think the first check is for proxy ARP, and the second for a router
acting as proxy.
In a similar case for IPv6, we would first need to check for the Thaler
IPv6 "proxy ARP", then for the RFC2461 router as a proxy case.
> > In the current implementation the proxying router captures the multicast
> > queries since it has joined the solicited-node multicast group, but it
> > doesn't capture the unicast queries.
>
> It is VERY strange to handle multicast / unicast in different way.
> I really hate such a hetero (or an inconsistent) implementation.
Well, we still need some way to have the router capture some packets (the
unicast NS messages) it would normally forward.>
> > This is what I want to fix.
>
> I understand the issue, but the fix is unappropriate.
How about this fix? I think it's cleaner than the one I proposed
earlier. The down side with it is that all nodes, no matter if they are
acting as proxies or not, will have to do some extra comparisons each time
they receive a packet.
Perhaps this is an acceptable trade off for the architectual cleannes
Regards,
Ville
# This is a BitKeeper generated patch for the following project:
# Project Name: Linux kernel tree
# This patch format is intended for GNU patch command version 2.5 or higher.
# This patch includes the following deltas:
# ChangeSet 1.1520 -> 1.1521
# net/ipv6/ip6_input.c 1.14 -> 1.15
#
# The following is the BitKeeper ChangeSet Log
# --------------------------------------------
# 04/01/27 vnuorval@dsl-hkigw1o3c.dial.inet.fi 1.1521
# A proxy needs to capture and process Neighbor Solicitations on behalf of the proxied node.
# Normal multicast NS messages are already handled by the existing neigbor discovery code,
# but unicast NS messages used for Neighbor Unreachability Detection are not.
#
# To fix this, the proxy has to look through all packets sent to a proxied address in order to
# filter out the NS messages for local processing.
# --------------------------------------------
#
diff -Nru a/net/ipv6/ip6_input.c b/net/ipv6/ip6_input.c
--- a/net/ipv6/ip6_input.c Tue Jan 27 22:07:00 2004
+++ b/net/ipv6/ip6_input.c Tue Jan 27 22:07:00 2004
@@ -46,13 +46,42 @@
#include <net/addrconf.h>
#include <net/xfrm.h>
+static inline int ip6_proxy_chk(struct sk_buff *skb)
+{
+ struct ipv6hdr *hdr = skb->nh.ipv6h;
+ if (ipv6_addr_type(&hdr->daddr)&IPV6_ADDR_UNICAST &&
+ pneigh_lookup(&nd_tbl, &hdr->daddr, skb->dev, 0)) {
+ u8 nexthdr = hdr->nexthdr;
+ int offset;
+ struct icmp6hdr msg;
+
+ if (ipv6_ext_hdr(nexthdr)) {
+ offset = ipv6_skip_exthdr(skb, sizeof(*hdr), &nexthdr,
+ skb->len - sizeof(*hdr));
+ if (offset < 0)
+ return 0;
+ } else
+ offset = sizeof(struct ipv6hdr);
+
+ /* capture unicast NUD probes on behalf of the proxied node */
+
+ if (nexthdr == IPPROTO_ICMPV6 &&
+ !skb_copy_bits(skb, offset, &msg, sizeof(msg)) &&
+ msg.icmp6_type == NDISC_NEIGHBOUR_SOLICITATION) {
+ return 1;
+ }
+ }
+ return 0;
+}
static inline int ip6_rcv_finish( struct sk_buff *skb)
{
- if (skb->dst == NULL)
+ if (skb->dst == NULL) {
+ if (ip6_proxy_chk(skb))
+ return ip6_input(skb);
ip6_route_input(skb);
-
+ }
return dst_input(skb);
}
--
Ville Nuorvala
Research Assistant, Institute of Digital Communications,
Helsinki University of Technology
email: vnuorval@tcs.hut.fi, phone: +358 (0)9 451 5257
^ permalink raw reply
* Re: Re : Alsa create high problems...
From: Eddahbi Karim @ 2004-01-27 20:54 UTC (permalink / raw)
To: Jaroslav Kysela; +Cc: linux-kernel
In-Reply-To: <Pine.LNX.4.58.0401230936130.1875@pnote.perex-int.cz>
Le ven 23/01/2004 à 09:39, Jaroslav Kysela a écrit :
> On Fri, 23 Jan 2004, Eddahbi Karim wrote:
It seems like 2.6.2-rc2 resolves my problem...
I'll confirm it in 2 days...
Best regards,
--
Eddahbi Karim <installation_fault_association@yahoo.fr>
Installation Fault
^ permalink raw reply
* Re: [patch] Re: Kernels > 2.6.1-mm3 do not boot. - SOLVED
From: Andrew Morton @ 2004-01-27 20:54 UTC (permalink / raw)
To: Andi Kleen; +Cc: eric, stoffel, ak, Valdis.Kletnieks, bunk, cova, linux-kernel
In-Reply-To: <20040127162043.GA98702@colin2.muc.de>
Andi Kleen <ak@muc.de> wrote:
>
> > Can you plesae confirm that restoring only -funit-at-a-time again produces
> > a crashy kernel? And that you are using a flavour of gcc-3.3? If so, I
>
> It works just fine on the SuSE 9.0 3.3-hammer gcc.
>
> So far the reports point to some Mandrake gcc 3.3 having problems
> (they used an older version of Hammer branch). It's hard to be sure
> because everybody having any problem with the kernel seems to like
> to report it to this thread :-) But before just disabling
> it I would like to track down the problem and see if it's really a
> compiler issue or something that can be fixed in the kernel.
>
> If you really want to disable it I would prefer to only check for that
> compiler version and keep it for working 3.3-hammers.
I've moved the enabling of -funit-at-a-time out of Makefile and down into
arch/i386/Makefile, and I changed to require gcc-3.4 or higher.
So if you want to use -funit-at-a-time on gcc-3.3/hammer you can do so.
^ permalink raw reply
* Re: [PATCH] kgdb-x86_64-support.patch for 2.6.2-rc1-mm3
From: Andi Kleen @ 2004-01-27 20:54 UTC (permalink / raw)
To: George Anzinger; +Cc: jim.houston, akpm, amitkale, linux-kernel
In-Reply-To: <4016CC1C.8020709@mvista.com>
On Tue, 27 Jan 2004 12:37:48 -0800
George Anzinger <george@mvista.com> wrote:
> If we are going to use DEBUG_INFO could we change the "-g" it produces to
> "-gdwarft-2", especially since you (and I) are using dwarft2 CFI stuff.
On x86-64 dwarf2 is default (and the only supported debug format anyways)
I believe any modern i386 gcc does that same. It would probably only
make a difference to a few people still using ancient compilers.
-Andi
^ permalink raw reply
* NFS: giant filename in readdir
From: Jussi Hamalainen @ 2004-01-27 20:53 UTC (permalink / raw)
To: linux-kernel
I'm getting these errors after about 15d of uptime:
Jan 27 17:43:18 mir kernel: NFS: giant filename in readdir (len 955ae5)!
Jan 27 21:06:14 mir kernel: NFS: giant filename in readdir (len 74000000)!
And doing an ls (ie. readdir()) inside an NFS-mount always produces
an empty directory listing. I can still access files and
subdirectories OK, though.
This seems to be a problem on the client side and only occurs when
using NFSv3. When I unmount and then remount using NFSv3, the problem
persists, but goes away once I remount with nfsvers=2. Also I tried
downgrading the other server's kernel to 2.4.21 and the problem still
persisted until I remounted with NFSv2.
I'll wait and see wether the downgrade helped on the client side, but
that might take a few days.
Both boxes have an almost identical setup of Slackware 9.1 and were
running 2.4.23-pac1+security bugfixes. The boxes are connected to the
same switch and VLAN. They mount filesystems from each other (yeah, I
know cross-mounting with NFS is a bad idea...) and the problem
occurred on both servers simultaineously.
The mounts look like this:
mir:/home on /home type nfs
(rw,rsize=8192,wsize=8192,hard,intr,lock,addr=XXX)
mir:/archive on /archive type nfs
(rw,rsize=8192,wsize=8192,soft,intr,addr=XXX)
sputnik:/var/spool/mail on /var/spool/mail type nfs
(rw,rsize=8192,wsize=8192,hard,intr,lock,nfsvers=2,addr=XXX)
sputnik:/files on /files type nfs
(rw,rsize=8192,wsize=8192,soft,intr,nfsvers=2,addr=XXX)
I tried searching with Google but couldn't find a resolution to this
problem. I did find references of it occurring as far back as 2002.
Any ideas, folks?
--
-=[ Count Zero / TBH - Jussi Hämäläinen - email count@theblah.fi ]=-
^ permalink raw reply
* Re: [Jfs-discussion] md raid + jfs + jfs_fsck
From: Christoph Hellwig @ 2004-01-27 20:53 UTC (permalink / raw)
To: Dave Kleikamp; +Cc: Florian Huber, JFS Discussion, linux-kernel
In-Reply-To: <1075236185.21763.89.camel@shaggy.austin.ibm.com>
On Tue, Jan 27, 2004 at 02:43:05PM -0600, Dave Kleikamp wrote:
> My guess is that software raid is stealing a few blocks from the end of
> the partition,
Yes, it does. But JFS should get the right size from the gendisk anyway.
Or did you create the raid with the filesystem already existant? While that
appears to work for a non-full ext2/ext3 filesystem it's not something you
should do because it makes the filesystem internal bookkeeping wrong and
you'll run into trouble with any filesystem sooner or later.
^ permalink raw reply
* Re: NAT before IPsec with 2.6
From: Harald Welte @ 2004-01-27 20:51 UTC (permalink / raw)
To: Henrik Nordstrom
Cc: Willy Tarreau, Tom Eastep, Michal Ludvig, netfilter-devel
In-Reply-To: <Pine.LNX.4.44.0401271457370.17979-100000@filer.marasystems.com>
[-- Attachment #1: Type: text/plain, Size: 2053 bytes --]
On Tue, Jan 27, 2004 at 03:12:49PM +0100, Henrik Nordstrom wrote:
> On Tue, 27 Jan 2004, Harald Welte wrote:
>
> > > My view of where hooks should be for IPSec:
> > >
> > > (Client) -> Gateway -> (Gateway)
> > >
> > > 1. PREROUTING, original client packet
> > > 2. FORWARD, original client packet. Destination the IPSec SPI
> > > 3. POSTROUTING, original client packet. Destination the IPSec SPI
> > > 4. OUTPUT, ESP packet. Preferably with some preserved information about
> > > the original packet attached.
> > > 5. POSTROUTING, ESP packet.
> >
> > I agree to all but 4. My proposal was PREROUTING, yours OUTPUT.
>
> It is very hard to distinguis the different IPSec cases here. Save of
> adding yet another hook for encapsulated and to be decapsulated packets
> OUTPUT(/INPUT) is the closest match in my opinion.
Please don't confuse hooks with chains. I suggested to add new
netfilter hooks (NF_IP_{PRE,POST}_XFRM), but attach the old INPUT/OUTPUT
(or even PREROUTING/POSTROUTING) chains to those hooks.
Hm. You have a point, but I'm still not really sure. I'll do it the
way you proposed, but I might change my mind again in the future ;)
> If introducing new hooks then we would have
>
> XXXX -> POSTROUTING <-net-> PREROUTING -> YYYY
>
> if XXXX and YYYY can be the same hook name in this case or not I'll leave
> to the core team to ponder upon?
>
> What exacly is the semantical problem of using OUTPUT/INPUT? In my view
> the ESP/AH packet is locally generated, and belongs to a connection with a
> local endpoint.
well, you convinced me (for now). new hooks, old chains.
> Regards
> Henrik
--
- Harald Welte <laforge@netfilter.org> http://www.netfilter.org/
============================================================================
"Fragmentation is like classful addressing -- an interesting early
architectural error that shows how much experimentation was going
on while IP was being designed." -- Paul Vixie
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply
* [ALSA - driver 0000006]: Machine locks up hard on rmmod snd_es1968
From: noreply @ 2004-01-27 20:49 UTC (permalink / raw)
To: alsa-devel
The following NEW bug has been ADDED.
======================================================================
http://bugtrack.alsa-project.org/alsa-bug/bug_view_page.php?bug_id=0000006
======================================================================
Reporter: Hai
Handler:
======================================================================
Project: ALSA - driver
Bug ID: 6
Category: PCI - es1968
Reproducibility: always
Severity: crash
Priority: normal
Status: new
Distribution: SuSE 9.0
Kernel Version: 2.6.1-4-default
======================================================================
Date Submitted: 01-27-2004 21:49 CET
Last Modified: 01-27-2004 21:49 CET
======================================================================
Summary: Machine locks up hard on rmmod snd_es1968
Description:
When my init scripts rmmod snd_es1968 on shutdown, the machine locks up
completely. SysRq-[TPUS] all do not work, only SysRq-[OB] work. This means
I get an hang on every shutdown/reboot
======================================================================
Bug History
Date Modified Username Field Change
======================================================================
01-27-04 21:49 Hai New Bug
======================================================================
-------------------------------------------------------
The SF.Net email is sponsored by EclipseCon 2004
Premiere Conference on Open Tools Development and Integration
See the breadth of Eclipse activity. February 3-5 in Anaheim, CA.
http://www.eclipsecon.org/osdn
^ permalink raw reply
* Re: 2.6.2-rc1 / ACPI sleep / irqbalance / kirqd / pentium 4 HT problems on Uniwill N258SA0
From: count0-tC47gz4GrgtWk0Htik3J/w @ 2004-01-27 20:49 UTC (permalink / raw)
To: ncunningham-Rn4VEauK+AKRv+LV9MX5uipxlwaOVQ5f
Cc: bart-MhNDsYAqC79aa/9Udqfwiw, pavel-+ZI9xUNit7I,
count0-tC47gz4GrgtWk0Htik3J/w,
linux-kernel-u79uwXL29TY76Z2rM5mHXA,
linux-laptop-WlP1pkEOrE5AfugRpC6u6w,
acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f
In-Reply-To: <1075231649.18386.34.camel-udXHSmD1qAy4CTf7w+cZoA@public.gmane.org>
[-- Attachment #1: Type: text/plain, Size: 946 bytes --]
Here's the dsdt.dsl for UniWill N258SA0, courtesy of /proc/acpi/dsdt
and iasl -d (attached).
The dsdt recompiles without any warnings.
Some more suspend/resume
observances (after commenting out the SMP prohibition on sleep,
and booting with noirqbalance to disable kirqd):
S1 - suspends, does not fully resume (USB devices get re-initted,
then hangs). needs power cycle to get back
S3 - suspends if acpi_os_name="Microsoft Windows NT", but resume
disables the display so thoroughly I have to unplug AC and remove
battery before power cycling to get it back!
S4 (pmdisk) - suspends and immediately resumes with spurious wake up
S4b - ('') - ditto
> I have SMP working under 2.4, and am not far away from having it for
> 2.6. There is just one file that needs changing, but I need to learn
> some x86 assembly first. If someone already knows x86 assembly and
> wants to get it going first, I'll happily apply the patch.
Cool!
[-- Attachment #2: dsdt.dsl --]
[-- Type: text/plain, Size: 125229 bytes --]
/*
* Intel ACPI Component Architecture
* AML Disassembler version 20030918
*
* Disassembly of dsdt.dat, Mon Jan 26 21:57:14 2004
*/
DefinitionBlock ("DSDT.aml", "DSDT", 1, "1ABFS", "1ABFS001", 1)
{
OperationRegion (BIOS, SystemMemory, 0x1FFDF064, 0xFF)
Field (BIOS, ByteAcc, NoLock, Preserve)
{
SS1, 1,
SS2, 1,
SS3, 1,
SS4, 1,
Offset (0x01),
IOST, 16,
TOPM, 32,
ROMS, 32,
MG1B, 32,
MG1L, 32,
MG2B, 32,
MG2L, 32
}
Name (IO1B, 0x0480)
Name (IO1L, 0x10)
Name (IOXB, 0x04C0)
Name (IOXL, 0x10)
Name (SPIO, 0x2E)
Name (APCB, 0x00)
Name (APCL, 0x00)
Name (PMBS, 0x0800)
Name (PMLN, 0x80)
Name (GPBS, 0x00)
Name (GPLN, 0x00)
Name (SMBS, 0x0C00)
Name (SMBL, 0x20)
Method (RRIO, 4, NotSerialized)
{
Store ("RRIO", Debug)
}
Method (RDMA, 3, NotSerialized)
{
Store ("rDMA", Debug)
}
Name (PICM, 0x00)
Method (_PIC, 1, NotSerialized)
{
If (Arg0)
{
Store (0xAA, DBG8)
}
Else
{
Store (0xAC, DBG8)
}
Store (Arg0, PICM)
}
Name (OSVR, Ones)
Method (OSFL, 0, NotSerialized)
{
If (LNot (LEqual (OSVR, Ones)))
{
Return (OSVR)
}
If (LEqual (PICM, 0x00))
{
Store (0xAC, DBG8)
}
Store (0x01, OSVR)
If (MCTH (\_OS, "Microsoft Windows NT"))
{
If (LEqual (OSVR, 0x01))
{
If (CondRefOf (_OSI, Local0))
{
If (\_OSI ("Windows 2001"))
{
Store (0x04, OSVR)
}
}
Else
{
Store (0x00, OSVR)
}
}
}
Else
{
If (MCTH (\_OS, "Microsoft WindowsME: Millennium Edition"))
{
Store (0x02, OSVR)
}
}
Return (OSVR)
}
Method (MCTH, 2, NotSerialized)
{
If (LLess (SizeOf (Arg0), SizeOf (Arg1)))
{
Return (Zero)
}
Add (SizeOf (Arg0), 0x01, Local0)
Name (BUF0, Buffer (Local0) {})
Name (BUF1, Buffer (Local0) {})
Store (Arg0, BUF0)
Store (Arg1, BUF1)
While (Local0)
{
Decrement (Local0)
If (LNot (LEqual (DerefOf (Index (BUF0, Local0)), DerefOf (Index (BUF1, Local0)))))
{
Return (Zero)
}
}
Return (One)
}
Method (GPRW, 2, NotSerialized)
{
Name (PRWP, Package (0x02)
{
0x00,
0x00
})
Store (Arg0, Index (PRWP, 0x00))
Store (Arg1, Index (PRWP, 0x01))
Store (0x00, Local0)
Or (Local0, ShiftLeft (SS1, 0x01), Local0)
Or (Local0, ShiftLeft (SS2, 0x02), Local0)
Or (Local0, ShiftLeft (SS3, 0x03), Local0)
Or (Local0, ShiftLeft (SS4, 0x04), Local0)
If (And (ShiftLeft (0x01, Arg1), Local0)) {}
Else
{
ShiftRight (Local0, 0x01, Local0)
If (LOr (LEqual (OSFL (), 0x01), LEqual (OSFL (), 0x02)))
{
FindSetLeftBit (Local0, Index (PRWP, 0x01))
}
Else
{
FindSetRightBit (Local0, Index (PRWP, 0x01))
}
}
Return (PRWP)
}
Name (WAKP, Package (0x02)
{
0x00,
0x00
})
OperationRegion (DEB0, SystemIO, 0x80, 0x01)
Field (DEB0, ByteAcc, NoLock, Preserve)
{
DBG8, 8
}
OperationRegion (DEB1, SystemIO, 0x90, 0x02)
Field (DEB1, WordAcc, NoLock, Preserve)
{
DBG9, 16
}
Scope (\_PR)
{
Processor (CPU1, 0x01, 0x00000810, 0x06) {}
Processor (CPU2, 0x02, 0x00000810, 0x06) {}
}
Scope (\_SB)
{
Name (PR00, Package (0x11)
{
Package (0x04)
{
0x0002FFFF,
0x00,
LNKA,
0x00
},
Package (0x04)
{
0x0002FFFF,
0x01,
LNKB,
0x00
},
Package (0x04)
{
0x0002FFFF,
0x02,
LNKC,
0x00
},
Package (0x04)
{
0x0002FFFF,
0x03,
LNKD,
0x00
},
Package (0x04)
{
0x0003FFFF,
0x03,
LNKH,
0x00
},
Package (0x04)
{
0x0003FFFF,
0x00,
LNKE,
0x00
},
Package (0x04)
{
0x0003FFFF,
0x01,
LNKF,
0x00
},
Package (0x04)
{
0x0003FFFF,
0x02,
LNKG,
0x00
},
Package (0x04)
{
0x0004FFFF,
0x00,
LNKD,
0x00
},
Package (0x04)
{
0x0001FFFF,
0x00,
LNKA,
0x00
},
Package (0x04)
{
0x0001FFFF,
0x01,
LNKB,
0x00
},
Package (0x04)
{
0x0001FFFF,
0x02,
LNKC,
0x00
},
Package (0x04)
{
0x0001FFFF,
0x03,
LNKD,
0x00
},
Package (0x04)
{
0x000BFFFF,
0x00,
LNKC,
0x00
},
Package (0x04)
{
0x000BFFFF,
0x01,
LNKD,
0x00
},
Package (0x04)
{
0x000CFFFF,
0x00,
LNKD,
0x00
},
Package (0x04)
{
0x0009FFFF,
0x00,
LNKB,
0x00
}
})
Name (AR00, Package (0x11)
{
Package (0x04)
{
0x0002FFFF,
0x00,
0x00,
0x10
},
Package (0x04)
{
0x0002FFFF,
0x01,
0x00,
0x11
},
Package (0x04)
{
0x0002FFFF,
0x02,
0x00,
0x12
},
Package (0x04)
{
0x0002FFFF,
0x03,
0x00,
0x13
},
Package (0x04)
{
0x0003FFFF,
0x03,
0x00,
0x17
},
Package (0x04)
{
0x0003FFFF,
0x00,
0x00,
0x14
},
Package (0x04)
{
0x0003FFFF,
0x01,
0x00,
0x15
},
Package (0x04)
{
0x0003FFFF,
0x02,
0x00,
0x16
},
Package (0x04)
{
0x0004FFFF,
0x00,
0x00,
0x13
},
Package (0x04)
{
0x0001FFFF,
0x00,
0x00,
0x10
},
Package (0x04)
{
0x0001FFFF,
0x01,
0x00,
0x11
},
Package (0x04)
{
0x0001FFFF,
0x02,
0x00,
0x12
},
Package (0x04)
{
0x0001FFFF,
0x03,
0x00,
0x13
},
Package (0x04)
{
0x000BFFFF,
0x00,
0x00,
0x12
},
Package (0x04)
{
0x000BFFFF,
0x01,
0x00,
0x13
},
Package (0x04)
{
0x000CFFFF,
0x00,
0x00,
0x13
},
Package (0x04)
{
0x0009FFFF,
0x00,
0x00,
0x11
}
})
Name (PRSA, ResourceTemplate ()
{
IRQ (Level, ActiveLow, Shared) {3,4,5,7,10,11,12,14,15}
})
Alias (PRSA, PRSB)
Alias (PRSA, PRSC)
Alias (PRSA, PRSD)
Alias (PRSA, PRSE)
Alias (PRSA, PRSF)
Alias (PRSA, PRSG)
Alias (PRSA, PRSH)
Device (PCI0)
{
Name (_HID, EisaId ("PNP0A03"))
Name (_ADR, 0x00)
Name (_BBN, 0x00)
Name (_UID, 0x00)
Method (_PRT, 0, NotSerialized)
{
If (PICM)
{
Return (AR00)
}
Return (PR00)
}
Device (SBRG)
{
Name (_ADR, 0x00020000)
Device (PIC)
{
Name (_HID, EisaId ("PNP0000"))
Name (_CRS, ResourceTemplate ()
{
IO (Decode16, 0x0020, 0x0020, 0x00, 0x02)
IO (Decode16, 0x00A0, 0x00A0, 0x00, 0x02)
IRQNoFlags () {2}
})
}
Device (DMAD)
{
Name (_HID, EisaId ("PNP0200"))
Name (_CRS, ResourceTemplate ()
{
DMA (Compatibility, BusMaster, Transfer8) {4}
IO (Decode16, 0x0000, 0x0000, 0x00, 0x10)
IO (Decode16, 0x0081, 0x0081, 0x00, 0x03)
IO (Decode16, 0x0087, 0x0087, 0x00, 0x01)
IO (Decode16, 0x0089, 0x0089, 0x00, 0x03)
IO (Decode16, 0x008F, 0x008F, 0x00, 0x01)
IO (Decode16, 0x00C0, 0x00C0, 0x00, 0x20)
})
}
Device (TMR)
{
Name (_HID, EisaId ("PNP0100"))
Name (_CRS, ResourceTemplate ()
{
IO (Decode16, 0x0040, 0x0040, 0x00, 0x04)
IRQNoFlags () {0}
})
}
Device (RTC0)
{
Name (_HID, EisaId ("PNP0B00"))
Name (_CRS, ResourceTemplate ()
{
IO (Decode16, 0x0070, 0x0070, 0x00, 0x02)
IRQNoFlags () {8}
})
}
Device (PS2K)
{
Name (_HID, EisaId ("PNP030B"))
Name (_CID, 0x0B03D041)
Method (_STA, 0, NotSerialized)
{
ShiftLeft (0x01, 0x0A, Local0)
If (And (IOST, Local0))
{
Return (0x0F)
}
Return (0x00)
}
Name (_CRS, ResourceTemplate ()
{
IO (Decode16, 0x0060, 0x0060, 0x00, 0x01)
IO (Decode16, 0x0064, 0x0064, 0x00, 0x01)
IRQNoFlags () {1}
})
}
Device (PS2M)
{
Name (_HID, EisaId ("SYN0801"))
Name (_CID, Package (0x02)
{
0x00082E4F,
0x130FD041
})
Method (_STA, 0, NotSerialized)
{
ShiftLeft (0x01, 0x0C, Local0)
If (And (IOST, Local0))
{
Return (0x0F)
}
Return (0x00)
}
Name (CRS1, ResourceTemplate ()
{
IRQNoFlags () {12}
})
Name (CRS2, ResourceTemplate ()
{
IO (Decode16, 0x0060, 0x0060, 0x00, 0x01)
IO (Decode16, 0x0064, 0x0064, 0x00, 0x01)
IRQNoFlags () {12}
})
Method (_CRS, 0, NotSerialized)
{
ShiftLeft (0x01, 0x0A, Local0)
If (And (IOST, Local0))
{
Return (CRS1)
}
Else
{
Return (CRS2)
}
}
}
Device (SPKR)
{
Name (_HID, EisaId ("PNP0800"))
Name (_CRS, ResourceTemplate ()
{
IO (Decode16, 0x0061, 0x0061, 0x00, 0x01)
})
}
Device (COPR)
{
Name (_HID, EisaId ("PNP0C04"))
Name (_CRS, ResourceTemplate ()
{
IO (Decode16, 0x00F0, 0x00F0, 0x00, 0x10)
IRQNoFlags () {13}
})
}
Device (UAR1)
{
Name (_UID, 0x01)
Name (_HID, EisaId ("PNP0501"))
Method (_STA, 0, NotSerialized)
{
Return (DSTA (0x00))
}
Method (_DIS, 0, NotSerialized)
{
DCNT (0x00, 0x00)
}
Method (_CRS, 0, NotSerialized)
{
Return (DCRS (0x00))
}
Method (_SRS, 1, NotSerialized)
{
DSRS (Arg0, 0x00)
}
Method (_PRS, 0, NotSerialized)
{
Return (CMPR)
}
Name (CMPR, ResourceTemplate ()
{
IRQNoFlags () {3,4,5,6,7,10,11,12}
StartDependentFnNoPri ()
{
DMA (Compatibility, NotBusMaster, Transfer8) {}
IO (Decode16, 0x03F8, 0x03F8, 0x01, 0x08)
}
StartDependentFnNoPri ()
{
DMA (Compatibility, NotBusMaster, Transfer8) {}
IO (Decode16, 0x02F8, 0x02F8, 0x01, 0x08)
}
StartDependentFnNoPri ()
{
DMA (Compatibility, NotBusMaster, Transfer8) {}
IO (Decode16, 0x03E8, 0x03E8, 0x01, 0x08)
}
StartDependentFnNoPri ()
{
DMA (Compatibility, NotBusMaster, Transfer8) {}
IO (Decode16, 0x02E8, 0x02E8, 0x01, 0x08)
}
EndDependentFn ()
})
}
Device (UAR2)
{
Name (_UID, 0x02)
Method (_HID, 0, NotSerialized)
{
Return (UHID (0x01))
}
Method (_STA, 0, NotSerialized)
{
Return (DSTA (0x01))
}
Method (_DIS, 0, NotSerialized)
{
}
Method (_CRS, 0, NotSerialized)
{
Return (DCRS (0x01))
}
Method (_SRS, 1, NotSerialized)
{
DSRS (Arg0, 0x01)
}
Method (_PRS, 0, NotSerialized)
{
Return (CMPR)
}
Name (CMPR, ResourceTemplate ()
{
IRQNoFlags () {3,4,5,6,7,10,11,12}
StartDependentFnNoPri ()
{
DMA (Compatibility, NotBusMaster, Transfer8) {}
IO (Decode16, 0x03F8, 0x03F8, 0x01, 0x08)
}
StartDependentFnNoPri ()
{
DMA (Compatibility, NotBusMaster, Transfer8) {}
IO (Decode16, 0x02F8, 0x02F8, 0x01, 0x08)
}
StartDependentFnNoPri ()
{
DMA (Compatibility, NotBusMaster, Transfer8) {}
IO (Decode16, 0x03E8, 0x03E8, 0x01, 0x08)
}
StartDependentFnNoPri ()
{
DMA (Compatibility, NotBusMaster, Transfer8) {}
IO (Decode16, 0x02E8, 0x02E8, 0x01, 0x08)
}
StartDependentFnNoPri ()
{
DMA (Compatibility, NotBusMaster, Transfer8) {1,2,3}
IO (Decode16, 0x03F8, 0x03F8, 0x01, 0x08)
}
StartDependentFnNoPri ()
{
DMA (Compatibility, NotBusMaster, Transfer8) {1,2,3}
IO (Decode16, 0x02F8, 0x02F8, 0x01, 0x08)
}
StartDependentFnNoPri ()
{
DMA (Compatibility, NotBusMaster, Transfer8) {1,2,3}
IO (Decode16, 0x03E8, 0x03E8, 0x01, 0x08)
}
StartDependentFnNoPri ()
{
DMA (Compatibility, NotBusMaster, Transfer8) {1,2,3}
IO (Decode16, 0x02E8, 0x02E8, 0x01, 0x08)
}
EndDependentFn ()
})
}
Device (FDC)
{
Name (_HID, EisaId ("PNP0700"))
Name (_FDE, Package (0x05)
{
0x01,
0x00,
0x02,
0x02,
0x02
})
Method (_STA, 0, NotSerialized)
{
Return (DSTA (0x03))
}
Method (_DIS, 0, NotSerialized)
{
DCNT (0x03, 0x00)
}
Method (_CRS, 0, NotSerialized)
{
DCRS (0x03)
Store (IRQM, IRQE)
Store (DMAM, DMAE)
Store (IO11, IO21)
Store (IO12, IO22)
Store (0x06, LEN2)
Add (IO21, 0x07, IO31)
Store (IO31, IO32)
Store (0x01, LEN3)
Return (CRS2)
}
Method (_SRS, 1, NotSerialized)
{
DSRS (Arg0, 0x03)
}
Name (_PRS, ResourceTemplate ()
{
StartDependentFn (0x00, 0x00)
{
IRQNoFlags () {6}
DMA (Compatibility, NotBusMaster, Transfer8) {2}
IO (Decode16, 0x03F0, 0x03F0, 0x01, 0x06)
IO (Decode16, 0x03F7, 0x03F7, 0x01, 0x01)
}
StartDependentFnNoPri ()
{
IRQNoFlags () {3,4,5,6,7,10,11,12}
DMA (Compatibility, NotBusMaster, Transfer8) {1,2,3}
IO (Decode16, 0x03F0, 0x03F0, 0x01, 0x06)
IO (Decode16, 0x03F7, 0x03F7, 0x01, 0x01)
}
StartDependentFnNoPri ()
{
IRQNoFlags () {3,4,5,6,7,10,11,12}
DMA (Compatibility, NotBusMaster, Transfer8) {1,2,3}
IO (Decode16, 0x0370, 0x0370, 0x01, 0x06)
IO (Decode16, 0x0377, 0x0377, 0x01, 0x01)
}
EndDependentFn ()
})
}
Device (LPTE)
{
Method (_HID, 0, NotSerialized)
{
If (LPTM (0x02))
{
Return (0x0104D041)
}
Else
{
Return (0x0004D041)
}
}
Method (_STA, 0, NotSerialized)
{
Return (DSTA (0x02))
}
Method (_DIS, 0, NotSerialized)
{
}
Method (_CRS, 0, NotSerialized)
{
DCRS (0x02)
If (LPTM (0x02))
{
Store (IRQM, IRQE)
Store (DMAM, DMAE)
Store (IO11, IO21)
Store (IO12, IO22)
Store (LEN1, LEN2)
Add (IO21, 0x0400, IO31)
Store (IO31, IO32)
Store (LEN2, LEN3)
Return (CRS2)
}
Else
{
Return (CRS1)
}
}
Method (_SRS, 1, NotSerialized)
{
DSRS (Arg0, 0x02)
}
Method (_PRS, 0, NotSerialized)
{
If (LPTM (0x02))
{
Return (EPPR)
}
Else
{
Return (LPPR)
}
}
Name (LPPR, ResourceTemplate ()
{
StartDependentFnNoPri ()
{
IRQNoFlags () {3,4,5,6,7,10,11,12}
DMA (Compatibility, NotBusMaster, Transfer8) {}
IO (Decode16, 0x0378, 0x0378, 0x01, 0x08)
}
StartDependentFnNoPri ()
{
IRQNoFlags () {3,4,5,6,7,10,11,12}
DMA (Compatibility, NotBusMaster, Transfer8) {}
IO (Decode16, 0x0278, 0x0278, 0x01, 0x08)
}
StartDependentFnNoPri ()
{
IRQNoFlags () {3,4,5,6,7,10,11,12}
DMA (Compatibility, NotBusMaster, Transfer8) {}
IO (Decode16, 0x03BC, 0x03BC, 0x01, 0x04)
}
StartDependentFnNoPri ()
{
IRQNoFlags () {}
DMA (Compatibility, NotBusMaster, Transfer8) {}
IO (Decode16, 0x0378, 0x0378, 0x01, 0x08)
}
StartDependentFnNoPri ()
{
IRQNoFlags () {}
DMA (Compatibility, NotBusMaster, Transfer8) {}
IO (Decode16, 0x0278, 0x0278, 0x01, 0x08)
}
StartDependentFnNoPri ()
{
IRQNoFlags () {}
DMA (Compatibility, NotBusMaster, Transfer8) {}
IO (Decode16, 0x03BC, 0x03BC, 0x01, 0x04)
}
EndDependentFn ()
})
Name (EPPR, ResourceTemplate ()
{
IRQNoFlags () {3,4,5,6,7,10,11,12}
StartDependentFnNoPri ()
{
DMA (Compatibility, NotBusMaster, Transfer8) {1,2,3}
IO (Decode16, 0x0378, 0x0378, 0x01, 0x08)
IO (Decode16, 0x0778, 0x0778, 0x01, 0x08)
}
StartDependentFnNoPri ()
{
DMA (Compatibility, NotBusMaster, Transfer8) {1,2,3}
IO (Decode16, 0x0278, 0x0278, 0x01, 0x08)
IO (Decode16, 0x0678, 0x0678, 0x01, 0x08)
}
StartDependentFnNoPri ()
{
DMA (Compatibility, NotBusMaster, Transfer8) {1,2,3}
IO (Decode16, 0x03BC, 0x03BC, 0x01, 0x04)
IO (Decode16, 0x07BC, 0x07BC, 0x01, 0x04)
}
StartDependentFnNoPri ()
{
DMA (Compatibility, NotBusMaster, Transfer8) {}
IO (Decode16, 0x0378, 0x0378, 0x01, 0x08)
IO (Decode16, 0x0778, 0x0778, 0x01, 0x08)
}
StartDependentFnNoPri ()
{
DMA (Compatibility, NotBusMaster, Transfer8) {}
IO (Decode16, 0x0278, 0x0278, 0x01, 0x08)
IO (Decode16, 0x0678, 0x0678, 0x01, 0x08)
}
StartDependentFnNoPri ()
{
DMA (Compatibility, NotBusMaster, Transfer8) {}
IO (Decode16, 0x03BC, 0x03BC, 0x01, 0x04)
IO (Decode16, 0x07BC, 0x07BC, 0x01, 0x04)
}
EndDependentFn ()
})
}
Name (DCAT, Package (0x15)
{
0x03,
0x02,
0x01,
0x00,
0xFF,
0x0C,
0xFF,
0xFF,
0x0B,
0xFF,
0xFF,
0xFF,
0xFF,
0xFF,
0xFF,
0xFF,
0xFF,
0xFF,
0xFF,
0xFF,
0xFF
})
Mutex (MUT0, 0x00)
Method (ENFG, 1, NotSerialized)
{
Acquire (MUT0, 0x0FFF)
Store (Arg0, LDN)
}
Method (EXFG, 0, NotSerialized)
{
Release (MUT0)
}
Method (LPTM, 1, NotSerialized)
{
ENFG (CGLD (Arg0))
And (OPT1, 0x02, Local0)
EXFG ()
Return (Local0)
}
Method (FIRM, 1, NotSerialized)
{
ENFG (CGLD (Arg0))
Store (DMCH, Local0)
EXFG ()
If (LAnd (LLess (Local0, 0x04), LNot (LEqual (And (Local0, 0x03, Local1), 0x00))))
{
Store (0x01, Local0)
}
Else
{
Store (0x00, Local0)
}
Return (Local0)
}
Method (UHID, 1, NotSerialized)
{
If (LEqual (Arg0, 0x01))
{
ENFG (CGLD (Arg0))
Store (DMCH, Local0)
EXFG ()
If (LAnd (LLess (DMCH, 0x04), LNot (LEqual (And (DMCH, 0x03, Local1), 0x00))))
{
Return (0x0160633A)
}
Else
{
Return (0x1005D041)
}
}
Return (0x0105D041)
}
Method (SIOS, 1, NotSerialized)
{
}
Method (SIOW, 1, NotSerialized)
{
}
Method (SIOH, 0, NotSerialized)
{
}
OperationRegion (IOID, SystemIO, SPIO, 0x02)
Field (IOID, ByteAcc, NoLock, Preserve)
{
INDX, 8,
DATA, 8
}
IndexField (INDX, DATA, ByteAcc, NoLock, Preserve)
{
Offset (0x07),
LDN, 8,
Offset (0x22),
FDCP, 1,
, 2,
LPTP, 1,
URAP, 1,
URBP, 1,
Offset (0x30),
ACTR, 8,
Offset (0x60),
IOAH, 8,
IOAL, 8,
IOH2, 8,
IOL2, 8,
Offset (0x70),
INTR, 8,
Offset (0x74),
DMCH, 8,
Offset (0xF0),
OPT1, 8,
OPT2, 8,
OPT3, 8
}
Method (CGLD, 1, NotSerialized)
{
Return (DerefOf (Index (DCAT, Arg0)))
}
Method (DSTA, 1, NotSerialized)
{
Store (0x00, Local0)
ShiftLeft (0x01, Arg0, Local1)
If (And (IOST, Local1))
{
ENFG (CGLD (Arg0))
If (ACTR)
{
Store (0x0F, Local0)
}
Else
{
Store (0x0D, Local0)
}
EXFG ()
}
Return (Local0)
}
Method (DCNT, 2, NotSerialized)
{
ENFG (CGLD (Arg0))
ShiftLeft (IOAH, 0x08, Local1)
Or (IOAL, Local1, Local1)
RRIO (Arg0, Arg1, Local1, 0x08)
If (LAnd (LLess (DMCH, 0x04), LNot (LEqual (And (DMCH, 0x03, Local1), 0x00))))
{
RDMA (Arg0, Arg1, Increment (Local1))
}
Store (Arg1, ACTR)
EXFG ()
}
Name (CRS1, ResourceTemplate ()
{
IRQNoFlags () {}
DMA (Compatibility, NotBusMaster, Transfer8) {}
IO (Decode16, 0x0000, 0x0000, 0x01, 0x00)
})
CreateWordField (CRS1, 0x01, IRQM)
CreateByteField (CRS1, 0x04, DMAM)
CreateWordField (CRS1, 0x08, IO11)
CreateWordField (CRS1, 0x0A, IO12)
CreateByteField (CRS1, 0x0D, LEN1)
Name (CRS2, ResourceTemplate ()
{
IRQNoFlags () {6}
DMA (Compatibility, NotBusMaster, Transfer8) {2}
IO (Decode16, 0x0000, 0x0000, 0x01, 0x00)
IO (Decode16, 0x0000, 0x0000, 0x01, 0x00)
})
CreateWordField (CRS2, 0x01, IRQE)
CreateByteField (CRS2, 0x04, DMAE)
CreateWordField (CRS2, 0x08, IO21)
CreateWordField (CRS2, 0x0A, IO22)
CreateByteField (CRS2, 0x0D, LEN2)
CreateWordField (CRS2, 0x10, IO31)
CreateWordField (CRS2, 0x12, IO32)
CreateByteField (CRS2, 0x15, LEN3)
Method (DCRS, 1, NotSerialized)
{
ENFG (CGLD (Arg0))
ShiftLeft (IOAH, 0x08, IO11)
Or (IOAL, IO11, IO11)
Store (IO11, IO12)
Subtract (FindSetRightBit (IO11), 0x01, Local0)
ShiftLeft (0x01, Local0, LEN1)
If (INTR)
{
ShiftLeft (0x01, INTR, IRQM)
}
Else
{
Store (0x00, IRQM)
}
If (LAnd (LLess (DMCH, 0x04), LNot (LEqual (And (DMCH, 0x03, Local1), 0x00))))
{
ShiftLeft (0x01, Local1, DMAM)
}
Else
{
Store (0x00, DMAM)
}
EXFG ()
Return (CRS1)
}
Method (DSRS, 2, NotSerialized)
{
CreateWordField (Arg0, 0x01, IRQM)
CreateByteField (Arg0, 0x04, DMAM)
CreateWordField (Arg0, 0x08, IO11)
ENFG (CGLD (Arg1))
And (IO11, 0xFF, IOAL)
ShiftRight (IO11, 0x08, IOAH)
If (IRQM)
{
FindSetRightBit (IRQM, Local0)
Subtract (Local0, 0x01, INTR)
}
Else
{
Store (0x00, INTR)
}
If (DMAM)
{
FindSetRightBit (DMAM, Local0)
Subtract (Local0, 0x01, DMCH)
}
Else
{
Store (0x04, DMCH)
}
EXFG ()
DCNT (Arg1, 0x01)
}
Device (RMSC)
{
Name (_HID, EisaId ("PNP0C02"))
Name (_UID, 0x10)
Name (CRS0, ResourceTemplate ()
{
IO (Decode16, 0x0010, 0x0010, 0x00, 0x10)
IO (Decode16, 0x0022, 0x0022, 0x00, 0x1E)
IO (Decode16, 0x0044, 0x0044, 0x00, 0x1C)
IO (Decode16, 0x0072, 0x0072, 0x00, 0x0E)
IO (Decode16, 0x0080, 0x0080, 0x00, 0x01)
IO (Decode16, 0x0084, 0x0084, 0x00, 0x03)
IO (Decode16, 0x0088, 0x0088, 0x00, 0x01)
IO (Decode16, 0x008C, 0x008C, 0x00, 0x03)
IO (Decode16, 0x0090, 0x0090, 0x00, 0x10)
IO (Decode16, 0x00A2, 0x00A2, 0x00, 0x1E)
IO (Decode16, 0x00E0, 0x00E0, 0x00, 0x10)
IO (Decode16, 0x0480, 0x0480, 0x00, 0x10)
IO (Decode16, 0x04D0, 0x04D0, 0x00, 0x02)
IO (Decode16, 0x0000, 0x0000, 0x00, 0x00)
IO (Decode16, 0x0000, 0x0000, 0x00, 0x00)
IO (Decode16, 0x0000, 0x0000, 0x00, 0x00)
IO (Decode16, 0x0000, 0x0000, 0x00, 0x00)
Memory32 (ReadOnly, 0xFFE80000, 0xFFE80000, 0x00000000, 0x00080000)
Memory32 (ReadOnly, 0xFFF80000, 0xFFF80000, 0x00000000, 0x00080000)
Memory32 (ReadOnly, 0xFEE00400, 0xFEE00400, 0x00000000, 0x00DFFC00)
})
Name (CRS1, ResourceTemplate ()
{
IO (Decode16, 0x0010, 0x0010, 0x00, 0x10)
IO (Decode16, 0x0022, 0x0022, 0x00, 0x1E)
IO (Decode16, 0x0044, 0x0044, 0x00, 0x1C)
IO (Decode16, 0x0072, 0x0072, 0x00, 0x0E)
IO (Decode16, 0x0080, 0x0080, 0x00, 0x01)
IO (Decode16, 0x0084, 0x0084, 0x00, 0x03)
IO (Decode16, 0x0088, 0x0088, 0x00, 0x01)
IO (Decode16, 0x008C, 0x008C, 0x00, 0x03)
IO (Decode16, 0x0090, 0x0090, 0x00, 0x10)
IO (Decode16, 0x00A2, 0x00A2, 0x00, 0x1E)
IO (Decode16, 0x00E0, 0x00E0, 0x00, 0x10)
IO (Decode16, 0x0480, 0x0480, 0x00, 0x10)
IO (Decode16, 0x04D0, 0x04D0, 0x00, 0x02)
IO (Decode16, 0x0000, 0x0000, 0x00, 0x00)
IO (Decode16, 0x0000, 0x0000, 0x00, 0x00)
IO (Decode16, 0x0000, 0x0000, 0x00, 0x00)
IO (Decode16, 0x0000, 0x0000, 0x00, 0x00)
Memory32Fixed (ReadOnly, 0xFFE00000, 0x00200000)
})
Name (CRS2, ResourceTemplate ()
{
IO (Decode16, 0x0010, 0x0010, 0x00, 0x10)
IO (Decode16, 0x0022, 0x0022, 0x00, 0x1E)
IO (Decode16, 0x0044, 0x0044, 0x00, 0x1C)
IO (Decode16, 0x0072, 0x0072, 0x00, 0x0E)
IO (Decode16, 0x0080, 0x0080, 0x00, 0x01)
IO (Decode16, 0x0084, 0x0084, 0x00, 0x03)
IO (Decode16, 0x0088, 0x0088, 0x00, 0x01)
IO (Decode16, 0x008C, 0x008C, 0x00, 0x03)
IO (Decode16, 0x0090, 0x0090, 0x00, 0x10)
IO (Decode16, 0x00A2, 0x00A2, 0x00, 0x1E)
IO (Decode16, 0x00E0, 0x00E0, 0x00, 0x10)
IO (Decode16, 0x04D0, 0x04D0, 0x00, 0x02)
IO (Decode16, 0x0000, 0x0000, 0x00, 0x00)
IO (Decode16, 0x0000, 0x0000, 0x00, 0x00)
IO (Decode16, 0x0000, 0x0000, 0x00, 0x00)
IO (Decode16, 0x0000, 0x0000, 0x00, 0x00)
})
Method (_CRS, 0, NotSerialized)
{
If (LEqual (OSFL (), 0x00))
{
CreateWordField (CRS1, 0x6A, GP00)
CreateWordField (CRS1, 0x6C, GP01)
CreateByteField (CRS1, 0x6F, GP0L)
Store (PMBS, GP00)
Store (PMBS, GP01)
Store (PMLN, GP0L)
}
Else
{
CreateWordField (CRS0, 0x6A, GX00)
CreateWordField (CRS0, 0x6C, GX01)
CreateByteField (CRS0, 0x6F, GX0L)
Store (PMBS, GX00)
Store (PMBS, GX01)
Store (PMLN, GX0L)
}
If (LEqual (OSFL (), 0x00))
{
CreateWordField (CRS1, 0x72, GP30)
CreateWordField (CRS1, 0x74, GP31)
CreateByteField (CRS1, 0x77, GP3L)
Add (0x80, PMBS, Local0)
Store (Local0, GP30)
Store (Local0, GP31)
Store (0x80, GP3L)
}
Else
{
CreateWordField (CRS0, 0x72, GX30)
CreateWordField (CRS0, 0x74, GX31)
CreateByteField (CRS0, 0x77, GX3L)
Add (0x80, PMBS, Local0)
Store (Local0, GX30)
Store (Local0, GX31)
Store (0x80, GX3L)
}
If (SMBS)
{
If (LEqual (OSFL (), 0x00))
{
CreateWordField (CRS1, 0x7A, GP10)
CreateWordField (CRS1, 0x7C, GP11)
CreateByteField (CRS1, 0x7F, GP1L)
Store (SMBS, GP10)
Store (SMBS, GP11)
Store (SMBL, GP1L)
}
Else
{
CreateWordField (CRS0, 0x7A, GX10)
CreateWordField (CRS0, 0x7C, GX11)
CreateByteField (CRS0, 0x7F, GX1L)
Store (SMBS, GX10)
Store (SMBS, GX11)
Store (SMBL, GX1L)
}
}
If (GPBS)
{
If (LEqual (OSFL (), 0x00))
{
CreateWordField (CRS1, 0x82, GP20)
CreateWordField (CRS1, 0x84, GP21)
CreateByteField (CRS1, 0x87, GP2L)
Store (GPBS, GP20)
Store (GPBS, GP21)
Store (GPLN, GP2L)
}
Else
{
CreateWordField (CRS0, 0x82, GX20)
CreateWordField (CRS0, 0x84, GX21)
CreateByteField (CRS0, 0x87, GX2L)
Store (GPBS, GX20)
Store (GPBS, GX21)
Store (GPLN, GX2L)
}
}
If (LEqual (OSFL (), 0x00))
{
Return (CRS1)
}
Else
{
If (LEqual (OSFL (), 0x02))
{
Return (CRS2)
}
Else
{
Return (CRS0)
}
}
}
}
Device (OMSC)
{
Name (_HID, EisaId ("PNP0C02"))
Name (_UID, 0x00)
Name (CRS, ResourceTemplate ()
{
Memory32Fixed (ReadOnly, 0x00000000, 0x00000000)
Memory32Fixed (ReadOnly, 0x00000000, 0x00000000)
})
Method (_CRS, 0, NotSerialized)
{
If (APCB)
{
CreateDWordField (CRS, 0x08, ML01)
CreateDWordField (CRS, 0x04, MB01)
CreateDWordField (CRS, 0x14, ML02)
CreateDWordField (CRS, 0x10, MB02)
Store (APCB, MB01)
Store (APCL, ML01)
Store (0xFEE00000, MB02)
Store (0x1000, ML02)
}
Return (CRS)
}
}
Device (\_SB.RMEM)
{
Name (_HID, EisaId ("PNP0C01"))
Name (_UID, 0x01)
Name (CRS, ResourceTemplate ()
{
Memory32Fixed (ReadWrite, 0x00000000, 0x000A0000)
Memory32Fixed (ReadOnly, 0x00000000, 0x00000000)
Memory32Fixed (ReadOnly, 0x000E0000, 0x00020000)
Memory32Fixed (ReadWrite, 0x00100000, 0x00000000)
Memory32Fixed (ReadOnly, 0x00000000, 0x00000000)
})
Method (_CRS, 0, NotSerialized)
{
CreateDWordField (CRS, 0x10, BAS1)
CreateDWordField (CRS, 0x14, LEN1)
CreateDWordField (CRS, 0x1C, BAS2)
CreateDWordField (CRS, 0x20, LEN2)
CreateDWordField (CRS, 0x2C, LEN3)
CreateDWordField (CRS, 0x34, BAS4)
CreateDWordField (CRS, 0x38, LEN4)
If (OSFL ()) {}
Else
{
If (MG1B)
{
If (LGreater (MG1B, 0x000C0000))
{
Store (0x000C0000, BAS1)
Subtract (MG1B, BAS1, LEN1)
}
}
Else
{
Store (0x000C0000, BAS1)
Store (0x00020000, LEN1)
}
If (Add (MG1B, MG1L, Local0))
{
Store (Local0, BAS2)
Subtract (0x00100000, BAS2, LEN2)
}
}
Subtract (MG2B, 0x00100000, LEN3)
Add (MG2B, MG2L, BAS4)
Subtract (0x00, BAS4, LEN4)
Return (CRS)
}
}
Device (EC0)
{
Name (_HID, EisaId ("PNP0C09"))
Name (_CRS, ResourceTemplate ()
{
IO (Decode16, 0x0062, 0x0062, 0x00, 0x01)
IO (Decode16, 0x0066, 0x0066, 0x00, 0x01)
})
Name (FGEC, 0x00)
Name (OTYP, 0x00)
Method (_REG, 2, NotSerialized)
{
If (LEqual (Arg0, 0x03))
{
Store (Arg1, FGEC)
}
If (LEqual (OSFL (), 0x01))
{
Store (0x01, OSEC)
Store (0x01, OTYP)
}
Else
{
If (LEqual (OSFL (), 0x00))
{
Store (0x02, OSEC)
Store (0x02, OTYP)
}
Else
{
If (LEqual (OSFL (), 0x02))
{
Store (0x03, OSEC)
Store (0x03, OTYP)
}
}
If (LEqual (OSFL (), 0x04))
{
Store (0x04, OSEC)
Store (0x04, OTYP)
}
}
Store (0x98, SSMI)
}
OperationRegion (ECXP, EmbeddedControl, 0x00, 0x0100)
Field (ECXP, ByteAcc, Lock, Preserve)
{
XIF0, 16,
XIF1, 16,
XIF2, 16,
XIF3, 16,
XIF4, 16,
XIF5, 16,
XIF6, 16,
XIF7, 16,
XIF8, 16,
XIF9, 64,
XIFA, 64,
XIFB, 64,
XIFC, 64,
XST0, 16,
XST1, 16,
XST2, 16,
XST3, 16,
XTP0, 16,
XCIN, 1,
, 1,
XTIN, 1,
Offset (0x3D),
Offset (0x3E),
XHPP, 7,
Offset (0x3F),
Offset (0x40),
XSEC, 8,
XLPT, 8,
Offset (0xA3),
ECBL, 8
}
Name (_GPE, 0x0B)
Name (_PRW, Package (0x02)
{
0x0B,
0x04
})
Method (_Q00, 0, NotSerialized)
{
}
Method (_Q18, 0, NotSerialized)
{
Store ("Trip Point Event", Debug)
Notify (\_SB.PCI0.BAT0, 0x80)
}
Method (_Q06, 0, NotSerialized)
{
Store ("Battery Change Event", Debug)
If (LEqual (OSFL (), 0x01))
{
If (BTIN)
{
Notify (\_SB.PCI0.BAT0, 0x01)
}
Else
{
Notify (\_SB.PCI0.BAT0, 0x00)
}
Notify (\_SB.PCI0.BAT0, 0x80)
Notify (\_SB.PCI0, 0x00)
}
If (LEqual (OSFL (), 0x02))
{
Store (0x01, FAKE)
Notify (\_SB.PCI0.AC0, 0x00)
Store (0x00, FAKE)
Notify (\_SB.PCI0.AC0, 0x00)
If (BTIN)
{
Store (0x22, P378)
Notify (\_SB.PCI0.BAT0, 0x00)
}
Else
{
Store (0x23, P378)
Notify (\_SB.PCI0.BAT0, 0x03)
}
Notify (\_SB.PCI0.BAT0, 0x81)
Notify (\_SB.PCI0.BAT0, 0x80)
}
If (LOr (LEqual (OSFL (), 0x00), LEqual (OSFL (), 0x04)))
{
Store (0x22, P378)
Sleep (0x01F4)
If (BTIN)
{
Notify (\_SB.PCI0.BAT0, 0x01)
}
Else
{
Notify (\_SB.PCI0.BAT0, 0x00)
}
Notify (\_SB.PCI0.BAT0, 0x80)
}
}
Method (_Q07, 0, NotSerialized)
{
Store ("AC Change", Debug)
Store (0x07, DBG8)
If (LEqual (OSFL (), 0x01))
{
Store (0x00, FAKE)
Notify (\_SB.PCI0.AC0, 0x00)
}
If (LEqual (OSFL (), 0x02))
{
Store (0x00, FAKE)
Notify (\_SB.PCI0.AC0, 0x00)
}
If (LOr (LEqual (OSFL (), 0x00), LEqual (OSFL (), 0x04)))
{
Notify (\_SB.PCI0.AC0, 0x80)
Notify (\_SB.PCI0.BAT0, 0x80)
}
Store (0x9C, SSMI)
Sleep (0x03E8)
Store (0x9C, SSMI)
}
Method (_Q0A, 0, NotSerialized)
{
Store (0xF1, DBG8)
Store ("FN+F1 Event", Debug)
Notify (\_SB.SLPB, 0x80)
}
Method (_Q0C, 0, NotSerialized)
{
Store ("FN+F3 Event", Debug)
Store (0x82, SSMI)
}
Method (_Q0D, 0, NotSerialized)
{
Store ("FN+F4 Event", Debug)
If (LEqual (\_SB.PCI0.AGP.VGA.SWIT, 0x00))
{
If (LEqual (\_SB.PCI0.AGP.VGA.GDFG, 0x01))
{
Notify (\_SB.PCI0.AGP.VGA, 0x80)
Store (0x00, \_SB.PCI0.AGP.VGA.GDFG)
Sleep (0x07D0)
}
If (LEqual (\_SB.PCI0.AGP.VGA.GDTS, 0x00))
{
If (LEqual (\_SB.PCI0.AGP.VGA.GDGS, 0x01))
{
Store (0x00, \_SB.PCI0.AGP.VGA.LCD._DGS)
Store (0x01, \_SB.PCI0.AGP.VGA.CRT._DGS)
}
If (LEqual (\_SB.PCI0.AGP.VGA.GDGS, 0x02))
{
Store (0x01, \_SB.PCI0.AGP.VGA.LCD._DGS)
Store (0x00, \_SB.PCI0.AGP.VGA.CRT._DGS)
}
If (LEqual (\_SB.PCI0.AGP.VGA.GDGS, 0x03))
{
Store (0x01, \_SB.PCI0.AGP.VGA.LCD._DGS)
Store (0x01, \_SB.PCI0.AGP.VGA.CRT._DGS)
}
Notify (\_SB.PCI0.AGP.VGA, 0x80)
If (LEqual (\_SB.PCI0.AGP.VGA.GDGS, 0x03))
{
Store (0x01, \_SB.PCI0.AGP.VGA.GDGS)
}
Else
{
Add (0x01, \_SB.PCI0.AGP.VGA.GDGS, \_SB.PCI0.AGP.VGA.GDGS)
}
}
}
}
Method (_Q10, 0, NotSerialized)
{
Store ("FN+F7 Event", Debug)
Store (\_SB.PCI0.SBRG.EC0.ECBL, Local0)
Store (Local0, A3BL)
Store (0x86, SSMI)
}
Method (_Q11, 0, NotSerialized)
{
Store ("FN+F8 Event", Debug)
Store (\_SB.PCI0.SBRG.EC0.ECBL, A3BL)
Store (0x87, SSMI)
}
Method (_Q16, 0, NotSerialized)
{
Store (0x16, DBG8)
Store (0x01, LIDS)
Notify (\_SB.PCI0.SBRG.LID, 0x80)
}
Method (_Q19, 0, NotSerialized)
{
Store (0x19, DBG8)
Store (0x00, LIDS)
Notify (\_SB.PCI0.SBRG.LID, 0x80)
}
Method (_Q1E, 0, NotSerialized)
{
Store (0x8E, SSMI)
}
Method (_Q1F, 0, NotSerialized)
{
Store (0x8F, SSMI)
}
Method (_Q20, 0, NotSerialized)
{
Store (0x90, SSMI)
}
Method (_Q21, 0, NotSerialized)
{
Store (0x91, SSMI)
}
Method (_Q22, 0, NotSerialized)
{
Store (0x92, SSMI)
}
Method (_Q23, 0, NotSerialized)
{
Store (0x93, SSMI)
}
Method (_Q24, 0, NotSerialized)
{
Store (0x94, SSMI)
}
Method (_Q25, 0, NotSerialized)
{
Store (0x95, SSMI)
}
Method (_Q26, 0, NotSerialized)
{
Store (0x96, SSMI)
}
Method (_Q27, 0, NotSerialized)
{
Store (0x69, THPP)
Notify (\_TZ.THRM, 0x80)
}
Method (_Q38, 0, NotSerialized)
{
Store (0x9B, SSMI)
}
}
Device (\_SB.PCI0.BAT0)
{
Name (_HID, EisaId ("PNP0C0A"))
Name (_UID, 0x00)
Name (_PCL, Package (0x01)
{
\_SB.PCI0.SBRG.EC0
})
Name (PAK1, Package (0x0D)
{
0x00,
0x0C56,
0x0C56,
0x00,
0x2A30,
0x013B,
0x9D,
0x10,
0x08,
"258SA0",
"00002",
"LiIon",
"OEM"
})
Method (_BIF, 0, NotSerialized)
{
Store ("BIf", Debug)
If (LOr (LEqual (OSFL (), 0x00), LEqual (OSFL (), 0x04)))
{
Store (\_SB.PCI0.SBRG.EC0.XIF0, Index (PAK1, 0x00))
Store (\_SB.PCI0.SBRG.EC0.XIF1, Index (PAK1, 0x01))
Store (\_SB.PCI0.SBRG.EC0.XIF2, Local0)
Store (Local0, Index (PAK1, 0x02))
Store (\_SB.PCI0.SBRG.EC0.XIF3, Index (PAK1, 0x03))
Store (\_SB.PCI0.SBRG.EC0.XIF4, Index (PAK1, 0x04))
Store (Divide (Local0, 0x0A, ), Index (PAK1, 0x05))
Store (Divide (Local0, 0x14, ), Index (PAK1, 0x06))
Store (\_SB.PCI0.SBRG.EC0.XIF7, Index (PAK1, 0x07))
}
Else
{
Store (0x99, SSMI)
Store (BIF0, Index (PAK1, 0x00))
Store (BIF1, Index (PAK1, 0x01))
Store (BIF2, Local0)
Store (Local0, Index (PAK1, 0x02))
Store (BIF3, Index (PAK1, 0x03))
Store (BIF4, Index (PAK1, 0x04))
Store (Divide (Local0, 0x0A, ), Index (PAK1, 0x05))
Store (Divide (Local0, 0x14, ), Index (PAK1, 0x06))
Store (BIF7, Index (PAK1, 0x07))
}
Return (PAK1)
}
Name (BFB0, Package (0x04)
{
0x00,
0x00,
0x1034,
0x2A30
})
Method (_BST, 0, NotSerialized)
{
Store ("BST Start", Debug)
If (LOr (LEqual (OSFL (), 0x00), LEqual (OSFL (), 0x04)))
{
Store (\_SB.PCI0.SBRG.EC0.XST0, Index (BFB0, 0x00))
Store (\_SB.PCI0.SBRG.EC0.XST2, Index (BFB0, 0x02))
Store (\_SB.PCI0.SBRG.EC0.XST3, Index (BFB0, 0x03))
}
Else
{
Store (0x9A, SSMI)
Store (BST0, Index (BFB0, 0x00))
Store (BST2, Index (BFB0, 0x02))
Store (BST3, Index (BFB0, 0x03))
}
Store ("BST End", Debug)
Return (BFB0)
}
Method (_STA, 0, NotSerialized)
{
Store ("BAT_STA Start", Debug)
If (LOr (LEqual (OSFL (), 0x00), LEqual (OSFL (), 0x04)))
{
If (LEqual (\_SB.PCI0.SBRG.EC0.FGEC, 0x00))
{
Store (0x98, SSMI)
Store (BTIN, Local0)
}
Else
{
Store (\_SB.PCI0.SBRG.EC0.XTIN, Local0)
}
If (Local0)
{
Return (0x1F)
}
Else
{
Return (0x0F)
}
}
Else
{
Store (0x98, SSMI)
Store (BTIN, Local0)
If (Local0)
{
Return (0x1F)
}
Else
{
Return (0x0F)
}
Store ("BAT_STA END", Debug)
}
}
}
Device (\_SB.PCI0.AC0)
{
Name (_HID, "ACPI0003")
Name (_PCL, Package (0x01)
{
\_SB.PCI0.SBRG.EC0
})
Method (_PSR, 0, NotSerialized)
{
If (LNot (LEqual (FAKE, 0x00)))
{
Return (0x00)
}
Else
{
If (LOr (LEqual (OSFL (), 0x00), LEqual (OSFL (), 0x04)))
{
Store (\_SB.PCI0.SBRG.EC0.XCIN, Local0)
}
Else
{
Store (ACIN, Local0)
}
Return (Local0)
}
}
}
Scope (\_TZ)
{
ThermalZone (THRM)
{
Method (KELV, 1, NotSerialized)
{
If (LGreater (Arg0, 0x7F))
{
XOr (Arg0, 0xFF, Local0)
Add (Local0, 0x01, Local0)
Multiply (Local0, 0x0A, Local0)
Subtract (0x0AAC, Local0, Local1)
}
Else
{
Multiply (Arg0, 0x0A, Local0)
Add (Local0, 0x0AAC, Local1)
}
Return (Local1)
}
Method (_TMP, 0, NotSerialized)
{
Return (KELV (THPP))
}
Method (_CRT, 0, NotSerialized)
{
Return (KELV (0x55))
}
}
}
Scope (\_GPE)
{
Method (_L0B, 0, NotSerialized)
{
Notify (\_SB.PCI0, 0x02)
}
}
Name (LIDS, 0x01)
Device (\_SB.PCI0.SBRG.LID)
{
Name (_HID, EisaId ("PNP0C0D"))
Name (_PRW, Package (0x02)
{
0x0B,
0x04
})
Method (_LID, 0, NotSerialized)
{
Return (LIDS)
}
}
Device (\_SB.SLPB)
{
Name (_HID, EisaId ("PNP0C0E"))
Method (_STA, 0, NotSerialized)
{
Return (0x0B)
}
Method (SBEV, 0, NotSerialized)
{
If (SLPS)
{
Store (0x00, SLPS)
Notify (SLPB, 0x02)
}
Else
{
Store (0x01, SLPS)
Notify (SLPB, 0x80)
}
}
Name (_PRW, Package (0x02)
{
0x0F,
0x04
})
}
Scope (\)
{
OperationRegion (PMRG, SystemIO, 0x0800, 0x80)
Field (PMRG, ByteAcc, NoLock, Preserve)
{
Offset (0x01),
WWAK, 8,
Offset (0x04),
SCIF, 1,
Offset (0x06),
RTCS, 8,
Offset (0x10),
THRT, 8,
Offset (0x48),
SSMI, 8
}
OperationRegion (OPR2, SystemIO, 0x0378, 0x02)
Field (OPR2, ByteAcc, NoLock, Preserve)
{
P378, 8
}
Mutex (ECKP, 0x00)
Name (FGEC, 0x00)
Name (TEM1, 0x00)
Name (THPP, 0x4B)
Name (FAKE, 0x00)
Name (SLPS, 0x00)
Field (BIOS, ByteAcc, NoLock, Preserve)
{
Offset (0x50),
BIF0, 16,
BIF1, 16,
BIF2, 16,
BIF3, 16,
BIF4, 16,
BIF5, 16,
BIF6, 16,
BIF7, 16,
BIF8, 16,
BIF9, 64,
BIFA, 64,
BIFB, 64,
BIFC, 64,
BST0, 16,
BST1, 16,
BST2, 16,
BST3, 16,
BTP0, 16,
ACIN, 1,
, 1,
BTIN, 1,
Offset (0x90),
OSEC, 8,
SLPT, 8,
Offset (0xA3),
A3BL, 8
}
}
}
Device (IDEC)
{
Name (_ADR, 0x00020005)
Name (IO5T, Package (0x03)
{
Package (0x07)
{
0x78,
0xB4,
0x014A,
0x0186,
0x0258,
0x78,
0x96
},
Package (0x07)
{
0x06,
0x07,
0x1C,
0x1C,
0x1C,
0x06,
0x07
},
Package (0x07)
{
0x04,
0x09,
0x03,
0x09,
0x1E,
0x04,
0x06
}
})
Name (IO6T, Package (0x03)
{
Package (0x07)
{
0x78,
0xB4,
0x014A,
0x0186,
0x0258,
0x78,
0xB4
},
Package (0x07)
{
0x09,
0x0A,
0x26,
0x26,
0x26,
0x09,
0x0A
},
Package (0x07)
{
0x05,
0x0C,
0x04,
0x0C,
0x28,
0x05,
0x0C
}
})
Name (UM5T, Package (0x06)
{
0x0B,
0x07,
0x05,
0x04,
0x02,
0x01
})
Name (UM6T, Package (0x07)
{
0x0F,
0x0A,
0x07,
0x05,
0x03,
0x02,
0x01
})
Name (PIO5, Package (0x05)
{
0x3A,
0x25,
0x1F,
0x10,
0x0A
})
Name (PIO6, Package (0x05)
{
0x4E,
0x32,
0x2A,
0x16,
0x0E
})
Name (CRCT, Package (0x07)
{
0x06,
0x04,
0x03,
0x01,
0x01,
0x01,
0x01
})
Name (INTT, Package (0x05)
{
0x02,
0x02,
0x02,
0x04,
0x06
})
Name (DMAT, Package (0x05)
{
0x00,
0x01,
0x01,
0x01,
0x02
})
Name (RMFL, 0x01)
OperationRegion (CF40, PCI_Config, 0x40, 0x18)
Field (CF40, WordAcc, NoLock, Preserve)
{
, 1,
IOR0, 1,
UDM0, 1,
UM60, 1,
UCT0, 4,
CRC0, 4,
INI0, 4,
ATT0, 6,
Offset (0x03),
RCT0, 6,
Offset (0x04),
, 1,
IOR1, 1,
UDM1, 1,
UM61, 1,
UCT1, 4,
CRC1, 4,
INI1, 4,
ATT1, 6,
Offset (0x07),
RCT1, 6,
Offset (0x08),
, 1,
IOR2, 1,
UDM2, 1,
UM62, 1,
UCT2, 4,
CRC2, 4,
INI2, 4,
ATT2, 6,
Offset (0x0B),
RCT2, 6,
Offset (0x0C),
, 1,
IOR3, 1,
UDM3, 1,
UM63, 1,
UCT3, 4,
CRC3, 4,
INI3, 4,
ATT3, 6,
Offset (0x0F),
RCT3, 6,
Offset (0x10),
, 1,
CHE0, 1,
Offset (0x12),
, 1,
CHE1, 1,
Offset (0x14),
, 30,
REMP, 1,
Offset (0x18)
}
Name (IDEP, Buffer (0x14) {})
CreateDWordField (IDEP, 0x00, GTM0)
CreateDWordField (IDEP, 0x04, GTM1)
CreateDWordField (IDEP, 0x08, GTM2)
CreateDWordField (IDEP, 0x0C, GTM3)
CreateDWordField (IDEP, 0x10, GTM4)
Device (IDE0)
{
Name (_ADR, 0x00)
Method (_GTM, 0, NotSerialized)
{
Store (0xFFFFFFFF, Local0)
Store (0xFFFFFFFF, Local1)
Store (0xFFFFFFFF, Local2)
Store (0xFFFFFFFF, Local3)
Store (0x10, Local4)
Store (REMP, RMFL)
Store (0x00, REMP)
If (CHE0)
{
If (LNot (LEqual (ATT0, 0x00)))
{
Add (RCT0, 0x01, Local5)
Add (ATT0, 0x01, Local6)
Add (Local5, Local6, Local5)
Multiply (UM60, 0x05, Local6)
Subtract (0x14, Local6, Local7)
Multiply (Local5, Local7, Local0)
ShiftRight (Local0, 0x01, Local0)
If (LNot (LGreater (Local0, 0xB4)))
{
Store (Local0, Local1)
}
If (IOR0)
{
Or (Local4, 0x02, Local4)
}
If (UDM0)
{
Add (UCT0, 0x01, Local5)
Multiply (Local5, Local7, Local6)
ShiftRight (Local6, 0x01, Local1)
Or (Local4, 0x01, Local4)
}
}
If (LNot (LEqual (ATT1, 0x00)))
{
Add (RCT1, 0x01, Local5)
Add (ATT1, 0x01, Local6)
Add (Local5, Local6, Local5)
Multiply (UM61, 0x05, Local6)
Subtract (0x14, Local6, Local7)
Multiply (Local5, Local7, Local2)
ShiftRight (Local2, 0x01, Local2)
If (LNot (LGreater (Local2, 0xB4)))
{
Store (Local2, Local3)
}
If (IOR1)
{
Or (Local4, 0x08, Local4)
}
If (UDM1)
{
Add (UCT1, 0x01, Local5)
Multiply (Local5, Local7, Local6)
ShiftRight (Local6, 0x01, Local3)
Or (Local4, 0x04, Local4)
}
}
}
Store (RMFL, REMP)
Store (Local0, GTM0)
Store (Local1, GTM1)
Store (Local2, GTM2)
Store (Local3, GTM3)
Store (Local4, GTM4)
Return (IDEP)
}
Method (_STM, 3, NotSerialized)
{
Store (Arg0, IDEP)
Store (GTM0, Local0)
Store (GTM1, Local1)
Store (GTM2, Local2)
Store (GTM3, Local3)
Store (GTM4, Local4)
Store (REMP, RMFL)
Store (0x00, REMP)
If (LAnd (LNot (LEqual (Local1, 0xFFFFFFFF)), LNot (LEqual (Local1, 0x00))))
{
If (And (Local4, 0x01))
{
Store (0x01, UDM0)
If (LLess (Local1, 0x14))
{
Store (0x01, UM60)
Store (0x01, UCT0)
}
Else
{
Store (0x00, UM60)
Divide (Local1, 0x0A, Local6, Local5)
Decrement (Local5)
Store (Local5, UCT0)
Store (Match (UM5T, MEQ, Local5, MTR, 0x00, 0x00), Local5)
Store (DerefOf (Index (CRCT, Local5)), CRC0)
}
}
}
If (LAnd (LNot (LEqual (Local0, 0xFFFFFFFF)), LNot (LEqual (Local0, 0x00))))
{
If (UM60)
{
Store (Match (DerefOf (Index (IO6T, 0x00)), MEQ, Local0, MTR, 0x00, 0x00), Local6)
Store (DerefOf (Index (DerefOf (Index (IO6T, 0x01)), Local6)), ATT0)
Store (DerefOf (Index (DerefOf (Index (IO6T, 0x02)), Local6)), RCT0)
}
Else
{
Store (Match (DerefOf (Index (IO5T, 0x00)), MEQ, Local0, MTR, 0x00, 0x00), Local6)
Store (DerefOf (Index (DerefOf (Index (IO5T, 0x01)), Local6)), ATT0)
Store (DerefOf (Index (DerefOf (Index (IO5T, 0x02)), Local6)), RCT0)
Store (DerefOf (Index (INTT, Local6)), INI0)
}
}
If (LAnd (LNot (LEqual (Local3, 0xFFFFFFFF)), LNot (LEqual (Local3, 0x00))))
{
If (And (Local4, 0x04))
{
Store (0x01, UDM1)
If (LLess (Local3, 0x14))
{
Store (0x01, UM61)
Store (0x01, UCT1)
}
Else
{
Store (0x00, UM61)
Divide (Local3, 0x0A, Local6, Local5)
Decrement (Local5)
Store (Local5, UCT1)
Store (Match (UM5T, MEQ, Local5, MTR, 0x00, 0x00), Local5)
Store (DerefOf (Index (CRCT, Local5)), CRC1)
}
}
}
If (LAnd (LNot (LEqual (Local2, 0xFFFFFFFF)), LNot (LEqual (Local2, 0x00))))
{
If (UM61)
{
Store (Match (DerefOf (Index (IO6T, 0x00)), MEQ, Local2, MTR, 0x00, 0x00), Local6)
Store (DerefOf (Index (DerefOf (Index (IO6T, 0x01)), Local6)), ATT1)
Store (DerefOf (Index (DerefOf (Index (IO6T, 0x02)), Local6)), RCT1)
}
Else
{
Store (Match (DerefOf (Index (IO5T, 0x00)), MEQ, Local2, MTR, 0x00, 0x00), Local6)
Store (DerefOf (Index (DerefOf (Index (IO5T, 0x01)), Local6)), ATT1)
Store (DerefOf (Index (DerefOf (Index (IO5T, 0x02)), Local6)), RCT1)
Store (DerefOf (Index (INTT, Local6)), INI1)
}
}
Store (RMFL, REMP)
}
Device (DRV0)
{
Name (_ADR, 0x00)
Method (_GTF, 0, NotSerialized)
{
Store (Buffer (0x07)
{
0x03, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF
}, Local6)
Store (Buffer (0x07)
{
0x03, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF
}, Local7)
CreateByteField (Local6, 0x01, MODE)
CreateByteField (Local7, 0x01, UMOD)
Store (REMP, RMFL)
Store (0x00, REMP)
If (LNot (LEqual (ATT0, 0x00)))
{
Add (ATT0, RCT0, Local5)
If (UM60)
{
Store (Match (PIO6, MEQ, Local5, MTR, 0x00, 0x00), MODE)
}
Else
{
Store (Match (PIO5, MEQ, Local5, MTR, 0x00, 0x00), MODE)
}
If (UDM0)
{
If (UM60)
{
Store (Match (UM6T, MEQ, UCT0, MTR, 0x00, 0x00), UMOD)
}
Else
{
Store (Match (UM5T, MEQ, UCT0, MTR, 0x00, 0x00), UMOD)
}
Or (UMOD, 0x40, UMOD)
}
Else
{
Store (DerefOf (Index (DMAT, MODE)), UMOD)
Or (UMOD, 0x20, UMOD)
}
Or (MODE, 0x08, MODE)
}
Store (RMFL, REMP)
Concatenate (Local6, Local7, Local5)
Return (Local5)
}
}
Device (DRV1)
{
Name (_ADR, 0x01)
Method (_GTF, 0, NotSerialized)
{
Store (Buffer (0x07)
{
0x03, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xEF
}, Local6)
Store (Buffer (0x07)
{
0x03, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xEF
}, Local7)
CreateByteField (Local6, 0x01, MODE)
CreateByteField (Local7, 0x01, UMOD)
Store (REMP, RMFL)
Store (0x00, REMP)
If (LNot (LEqual (ATT1, 0x00)))
{
Add (ATT1, RCT1, Local5)
If (UM61)
{
Store (Match (PIO6, MEQ, Local5, MTR, 0x00, 0x00), MODE)
}
Else
{
Store (Match (PIO5, MEQ, Local5, MTR, 0x00, 0x00), MODE)
}
If (UDM1)
{
If (UM61)
{
Store (Match (UM6T, MEQ, UCT1, MTR, 0x00, 0x00), UMOD)
}
Else
{
Store (Match (UM5T, MEQ, UCT1, MTR, 0x00, 0x00), UMOD)
}
Or (UMOD, 0x40, UMOD)
}
Else
{
Store (DerefOf (Index (DMAT, MODE)), UMOD)
Or (UMOD, 0x20, UMOD)
}
Or (MODE, 0x08, MODE)
}
Store (RMFL, REMP)
Concatenate (Local6, Local7, Local5)
Return (Local5)
}
}
}
Device (IDE1)
{
Name (_ADR, 0x01)
Method (_GTM, 0, NotSerialized)
{
Store (0xFFFFFFFF, Local0)
Store (0xFFFFFFFF, Local1)
Store (0xFFFFFFFF, Local2)
Store (0xFFFFFFFF, Local3)
Store (0x10, Local4)
Store (REMP, RMFL)
Store (0x00, REMP)
If (CHE1)
{
If (LNot (LEqual (ATT2, 0x00)))
{
Add (RCT2, 0x01, Local5)
Add (ATT2, 0x01, Local6)
Add (Local5, Local6, Local5)
Multiply (UM62, 0x05, Local6)
Subtract (0x14, Local6, Local7)
Multiply (Local5, Local7, Local0)
ShiftRight (Local0, 0x01, Local0)
If (LNot (LGreater (Local0, 0xB4)))
{
Store (Local0, Local1)
}
If (IOR2)
{
Or (Local4, 0x02, Local4)
}
If (UDM2)
{
Add (UCT2, 0x01, Local5)
Multiply (Local5, Local7, Local6)
ShiftRight (Local6, 0x01, Local1)
Or (Local4, 0x01, Local4)
}
}
If (LNot (LEqual (ATT3, 0x00)))
{
Add (RCT3, 0x01, Local5)
Add (ATT3, 0x01, Local6)
Add (Local5, Local6, Local5)
Multiply (UM63, 0x05, Local6)
Subtract (0x14, Local6, Local7)
Multiply (Local5, Local7, Local2)
ShiftRight (Local2, 0x01, Local2)
If (LNot (LGreater (Local2, 0xB4)))
{
Store (Local2, Local3)
}
If (IOR3)
{
Or (Local4, 0x08, Local4)
}
If (UDM3)
{
Add (UCT3, 0x01, Local5)
Multiply (Local5, Local7, Local6)
ShiftRight (Local6, 0x01, Local3)
Or (Local4, 0x04, Local4)
}
}
}
Store (RMFL, REMP)
Store (Local0, GTM0)
Store (Local1, GTM1)
Store (Local2, GTM2)
Store (Local3, GTM3)
Store (Local4, GTM4)
Return (IDEP)
}
Method (_STM, 3, NotSerialized)
{
Store (Arg0, IDEP)
Store (GTM0, Local0)
Store (GTM1, Local1)
Store (GTM2, Local2)
Store (GTM3, Local3)
Store (GTM4, Local4)
Store (REMP, RMFL)
Store (0x00, REMP)
If (LAnd (LNot (LEqual (Local1, 0xFFFFFFFF)), LNot (LEqual (Local1, 0x00))))
{
If (And (Local4, 0x01))
{
Store (0x01, UDM2)
If (LLess (Local1, 0x14))
{
Store (0x01, UM62)
Store (0x01, UCT2)
}
Else
{
Store (0x00, UM62)
Divide (Local1, 0x0A, Local6, Local5)
Decrement (Local5)
Store (Local5, UCT2)
Store (Match (UM5T, MEQ, Local5, MTR, 0x00, 0x00), Local5)
Store (DerefOf (Index (CRCT, Local5)), CRC2)
}
}
}
If (LAnd (LNot (LEqual (Local0, 0xFFFFFFFF)), LNot (LEqual (Local0, 0x00))))
{
If (UM62)
{
Store (Match (DerefOf (Index (IO6T, 0x00)), MEQ, Local0, MTR, 0x00, 0x00), Local6)
Store (DerefOf (Index (DerefOf (Index (IO6T, 0x01)), Local6)), ATT2)
Store (DerefOf (Index (DerefOf (Index (IO6T, 0x02)), Local6)), RCT2)
}
Else
{
Store (Match (DerefOf (Index (IO5T, 0x00)), MEQ, Local0, MTR, 0x00, 0x00), Local6)
Store (DerefOf (Index (DerefOf (Index (IO5T, 0x01)), Local6)), ATT2)
Store (DerefOf (Index (DerefOf (Index (IO5T, 0x02)), Local6)), RCT2)
Store (DerefOf (Index (INTT, Local6)), INI2)
}
}
If (LAnd (LNot (LEqual (Local3, 0xFFFFFFFF)), LNot (LEqual (Local3, 0x00))))
{
If (And (Local4, 0x04))
{
Store (0x01, UDM3)
If (LLess (Local3, 0x14))
{
Store (0x01, UM63)
Store (0x01, UCT3)
}
Else
{
Store (0x00, UM63)
Divide (Local3, 0x0A, Local6, Local5)
Decrement (Local5)
Store (Local5, UCT3)
Store (Match (UM5T, MEQ, Local5, MTR, 0x00, 0x00), Local5)
Store (DerefOf (Index (CRCT, Local5)), CRC3)
}
}
}
If (LAnd (LNot (LEqual (Local2, 0xFFFFFFFF)), LNot (LEqual (Local2, 0x00))))
{
If (UM63)
{
Store (Match (DerefOf (Index (IO6T, 0x00)), MEQ, Local2, MTR, 0x00, 0x00), Local6)
Store (DerefOf (Index (DerefOf (Index (IO6T, 0x01)), Local6)), ATT3)
Store (DerefOf (Index (DerefOf (Index (IO6T, 0x02)), Local6)), RCT3)
}
Else
{
Store (Match (DerefOf (Index (IO5T, 0x00)), MEQ, Local2, MTR, 0x00, 0x00), Local6)
Store (DerefOf (Index (DerefOf (Index (IO5T, 0x01)), Local6)), ATT3)
Store (DerefOf (Index (DerefOf (Index (IO5T, 0x02)), Local6)), RCT3)
Store (DerefOf (Index (INTT, Local6)), INI3)
}
}
Store (RMFL, REMP)
}
Device (DRV0)
{
Name (_ADR, 0x00)
Method (_GTF, 0, NotSerialized)
{
Store (Buffer (0x07)
{
0x03, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF
}, Local6)
Store (Buffer (0x07)
{
0x03, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF
}, Local7)
CreateByteField (Local6, 0x01, MODE)
CreateByteField (Local7, 0x01, UMOD)
Store (REMP, RMFL)
Store (0x00, REMP)
If (LNot (LEqual (ATT2, 0x00)))
{
Add (ATT2, RCT2, Local5)
If (UM62)
{
Store (Match (PIO6, MEQ, Local5, MTR, 0x00, 0x00), MODE)
}
Else
{
Store (Match (PIO5, MEQ, Local5, MTR, 0x00, 0x00), MODE)
}
If (UDM2)
{
If (UM62)
{
Store (Match (UM6T, MEQ, UCT2, MTR, 0x00, 0x00), UMOD)
}
Else
{
Store (Match (UM5T, MEQ, UCT2, MTR, 0x00, 0x00), UMOD)
}
Or (UMOD, 0x40, UMOD)
}
Else
{
Store (DerefOf (Index (DMAT, MODE)), UMOD)
Or (UMOD, 0x20, UMOD)
}
Or (MODE, 0x08, MODE)
}
Store (RMFL, REMP)
Concatenate (Local6, Local7, Local5)
Return (Local5)
}
}
Device (DRV1)
{
Name (_ADR, 0x01)
Method (_GTF, 0, NotSerialized)
{
Store (Buffer (0x07)
{
0x03, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xEF
}, Local6)
Store (Buffer (0x07)
{
0x03, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xEF
}, Local7)
CreateByteField (Local6, 0x01, MODE)
CreateByteField (Local7, 0x01, UMOD)
Store (REMP, RMFL)
Store (0x00, REMP)
If (LNot (LEqual (ATT3, 0x00)))
{
Add (ATT3, RCT3, Local5)
If (UM63)
{
Store (Match (PIO6, MEQ, Local5, MTR, 0x00, 0x00), MODE)
}
Else
{
Store (Match (PIO5, MEQ, Local5, MTR, 0x00, 0x00), MODE)
}
If (UDM3)
{
If (UM63)
{
Store (Match (UM6T, MEQ, UCT3, MTR, 0x00, 0x00), UMOD)
}
Else
{
Store (Match (UM5T, MEQ, UCT3, MTR, 0x00, 0x00), UMOD)
}
Or (UMOD, 0x40, UMOD)
}
Else
{
Store (DerefOf (Index (DMAT, MODE)), UMOD)
Or (UMOD, 0x20, UMOD)
}
Or (MODE, 0x08, MODE)
}
Store (RMFL, REMP)
Concatenate (Local6, Local7, Local5)
Return (Local5)
}
}
}
}
Device (EUSB)
{
Name (_ADR, 0x00030003)
}
Device (USB)
{
Name (_ADR, 0x00030000)
}
Device (USB2)
{
Name (_ADR, 0x00030001)
}
Device (USB3)
{
Name (_ADR, 0x00030002)
}
Device (MAC)
{
Name (_ADR, 0x00040000)
Method (_PRW, 0, NotSerialized)
{
Return (GPRW (0x0C, 0x04))
}
}
Device (S139)
{
Name (_ADR, 0x00020003)
Method (_PRW, 0, NotSerialized)
{
Return (GPRW (0x03, 0x04))
}
}
Device (AC97)
{
Name (_ADR, 0x00020007)
Method (_PRW, 0, NotSerialized)
{
Return (GPRW (0x0A, 0x04))
}
}
Device (MC97)
{
Name (_ADR, 0x00020006)
Method (_PRW, 0, NotSerialized)
{
Return (GPRW (0x05, 0x04))
}
}
Device (AGP)
{
Name (_ADR, 0x00010000)
Device (VGA)
{
Name (_ADR, 0x00)
Method (_DOS, 1, NotSerialized)
{
Store (Arg0, SWIT)
}
Name (_DOD, Package (0x02)
{
0x00010100,
0x00010110
})
Device (CRT)
{
Name (_ADR, 0x0100)
Name (_DCS, 0x1F)
Name (_DGS, 0x01)
Method (_DSS, 1, NotSerialized)
{
}
}
Device (LCD)
{
Name (_ADR, 0x0110)
Name (_DCS, 0x1F)
Name (_DGS, 0x01)
Method (_DSS, 1, NotSerialized)
{
}
Method (_BCM, 1, NotSerialized)
{
}
Name (PBCL, Package (0x07)
{
0x50,
0x32,
0x14,
0x28,
0x3C,
0x50,
0x64
})
Method (_BCL, 0, NotSerialized)
{
Return (PBCL)
}
}
Name (SWIT, 0x00)
Name (GDCS, 0x02)
Name (GDGS, 0x01)
Name (GDTS, 0x00)
Name (GDFG, 0x01)
}
}
}
Scope (\_GPE)
{
Method (_L0C, 0, NotSerialized)
{
Notify (\_SB.PCI0.MAC, 0x02)
Notify (\_SB.PWRB, 0x02)
}
Method (_L03, 0, NotSerialized)
{
Notify (\_SB.PCI0.S139, 0x02)
Notify (\_SB.PWRB, 0x02)
}
Method (_L0A, 0, NotSerialized)
{
Notify (\_SB.PCI0.AC97, 0x02)
Notify (\_SB.PWRB, 0x02)
}
Method (_L05, 0, NotSerialized)
{
Notify (\_SB.PCI0.MC97, 0x02)
Notify (\_SB.PWRB, 0x02)
}
}
Device (PWRB)
{
Name (_HID, EisaId ("PNP0C0C"))
Name (_UID, 0x05)
Name (_STA, 0x0B)
Method (_PRW, 0, NotSerialized)
{
Return (GPRW (0x05, 0x04))
}
}
}
Scope (\_SB)
{
OperationRegion (\_SB.PCI0.SBRG.PIX0, PCI_Config, 0x41, 0x04)
OperationRegion (\_SB.PCI0.SBRG.PIX1, PCI_Config, 0x60, 0x04)
Field (\_SB.PCI0.SBRG.PIX0, ByteAcc, NoLock, Preserve)
{
PIRA, 8,
PIRB, 8,
PIRC, 8,
PIRD, 8
}
Field (\_SB.PCI0.SBRG.PIX1, ByteAcc, NoLock, Preserve)
{
PIRE, 8,
PIRF, 8,
PIRG, 8,
PIRH, 8
}
Name (BUFA, ResourceTemplate ()
{
IRQ (Level, ActiveLow, Shared) {15}
})
Device (LNKA)
{
Name (_HID, EisaId ("PNP0C0F"))
Name (_UID, 0x01)
Method (_STA, 0, NotSerialized)
{
And (PIRA, 0x80, Local0)
If (Local0)
{
Return (0x09)
}
Else
{
Return (0x0B)
}
}
Method (_PRS, 0, NotSerialized)
{
Return (PRSA)
}
Method (_DIS, 0, NotSerialized)
{
Or (PIRA, 0x80, PIRA)
}
Method (_CRS, 0, NotSerialized)
{
CreateWordField (BUFA, 0x01, IRA0)
And (PIRA, 0x0F, Local0)
Store (One, Local1)
ShiftLeft (Local1, Local0, IRA0)
Return (BUFA)
}
Method (_SRS, 1, NotSerialized)
{
CreateWordField (Arg0, 0x01, IRA)
FindSetRightBit (IRA, Local0)
Decrement (Local0)
Store (Local0, PIRA)
}
}
Device (LNKB)
{
Name (_HID, EisaId ("PNP0C0F"))
Name (_UID, 0x02)
Method (_STA, 0, NotSerialized)
{
And (PIRB, 0x80, Local0)
If (Local0)
{
Return (0x09)
}
Else
{
Return (0x0B)
}
}
Method (_PRS, 0, NotSerialized)
{
Return (PRSB)
}
Method (_DIS, 0, NotSerialized)
{
Or (PIRB, 0x80, PIRB)
}
Method (_CRS, 0, NotSerialized)
{
CreateWordField (BUFA, 0x01, IRA0)
And (PIRB, 0x0F, Local0)
Store (One, Local1)
ShiftLeft (Local1, Local0, IRA0)
Return (BUFA)
}
Method (_SRS, 1, NotSerialized)
{
CreateWordField (Arg0, 0x01, IRA)
FindSetRightBit (IRA, Local0)
Decrement (Local0)
Store (Local0, PIRB)
}
}
Device (LNKC)
{
Name (_HID, EisaId ("PNP0C0F"))
Name (_UID, 0x03)
Method (_STA, 0, NotSerialized)
{
And (PIRC, 0x80, Local0)
If (Local0)
{
Return (0x09)
}
Else
{
Return (0x0B)
}
}
Method (_PRS, 0, NotSerialized)
{
Return (PRSC)
}
Method (_DIS, 0, NotSerialized)
{
Or (PIRC, 0x80, PIRC)
}
Method (_CRS, 0, NotSerialized)
{
CreateWordField (BUFA, 0x01, IRA0)
And (PIRC, 0x0F, Local0)
Store (One, Local1)
ShiftLeft (Local1, Local0, IRA0)
Return (BUFA)
}
Method (_SRS, 1, NotSerialized)
{
CreateWordField (Arg0, 0x01, IRA)
FindSetRightBit (IRA, Local0)
Decrement (Local0)
Store (Local0, PIRC)
}
}
Device (LNKD)
{
Name (_HID, EisaId ("PNP0C0F"))
Name (_UID, 0x04)
Method (_STA, 0, NotSerialized)
{
And (PIRD, 0x80, Local0)
If (Local0)
{
Return (0x09)
}
Else
{
Return (0x0B)
}
}
Method (_PRS, 0, NotSerialized)
{
Return (PRSD)
}
Method (_DIS, 0, NotSerialized)
{
Or (PIRD, 0x80, PIRD)
}
Method (_CRS, 0, NotSerialized)
{
CreateWordField (BUFA, 0x01, IRA0)
And (PIRD, 0x0F, Local0)
Store (One, Local1)
ShiftLeft (Local1, Local0, IRA0)
Return (BUFA)
}
Method (_SRS, 1, NotSerialized)
{
CreateWordField (Arg0, 0x01, IRA)
FindSetRightBit (IRA, Local0)
Decrement (Local0)
Store (Local0, PIRD)
}
}
Device (LNKE)
{
Name (_HID, EisaId ("PNP0C0F"))
Name (_UID, 0x05)
Method (_STA, 0, NotSerialized)
{
And (PIRE, 0x80, Local0)
If (Local0)
{
Return (0x09)
}
Else
{
Return (0x0B)
}
}
Method (_PRS, 0, NotSerialized)
{
Return (PRSE)
}
Method (_DIS, 0, NotSerialized)
{
Or (PIRE, 0x80, PIRE)
}
Method (_CRS, 0, NotSerialized)
{
CreateWordField (BUFA, 0x01, IRA0)
And (PIRE, 0x0F, Local0)
Store (One, Local1)
ShiftLeft (Local1, Local0, IRA0)
Return (BUFA)
}
Method (_SRS, 1, NotSerialized)
{
CreateWordField (Arg0, 0x01, IRA)
FindSetRightBit (IRA, Local0)
Decrement (Local0)
Store (Local0, PIRE)
}
}
Device (LNKF)
{
Name (_HID, EisaId ("PNP0C0F"))
Name (_UID, 0x06)
Method (_STA, 0, NotSerialized)
{
And (PIRF, 0x80, Local0)
If (Local0)
{
Return (0x09)
}
Else
{
Return (0x0B)
}
}
Method (_PRS, 0, NotSerialized)
{
Return (PRSF)
}
Method (_DIS, 0, NotSerialized)
{
Or (PIRF, 0x80, PIRF)
}
Method (_CRS, 0, NotSerialized)
{
CreateWordField (BUFA, 0x01, IRA0)
And (PIRF, 0x0F, Local0)
Store (One, Local1)
ShiftLeft (Local1, Local0, IRA0)
Return (BUFA)
}
Method (_SRS, 1, NotSerialized)
{
CreateWordField (Arg0, 0x01, IRA)
FindSetRightBit (IRA, Local0)
Decrement (Local0)
Store (Local0, PIRF)
}
}
Device (LNKG)
{
Name (_HID, EisaId ("PNP0C0F"))
Name (_UID, 0x07)
Method (_STA, 0, NotSerialized)
{
And (PIRG, 0x80, Local0)
If (Local0)
{
Return (0x09)
}
Else
{
Return (0x0B)
}
}
Method (_PRS, 0, NotSerialized)
{
Return (PRSG)
}
Method (_DIS, 0, NotSerialized)
{
Or (PIRG, 0x80, PIRG)
}
Method (_CRS, 0, NotSerialized)
{
CreateWordField (BUFA, 0x01, IRA0)
And (PIRG, 0x0F, Local0)
Store (One, Local1)
ShiftLeft (Local1, Local0, IRA0)
Return (BUFA)
}
Method (_SRS, 1, NotSerialized)
{
CreateWordField (Arg0, 0x01, IRA)
FindSetRightBit (IRA, Local0)
Decrement (Local0)
Store (Local0, PIRG)
}
}
Device (LNKH)
{
Name (_HID, EisaId ("PNP0C0F"))
Name (_UID, 0x08)
Method (_STA, 0, NotSerialized)
{
And (PIRH, 0x80, Local0)
If (Local0)
{
Return (0x09)
}
Else
{
Return (0x0B)
}
}
Method (_PRS, 0, NotSerialized)
{
Return (PRSH)
}
Method (_DIS, 0, NotSerialized)
{
Or (PIRH, 0x80, PIRH)
}
Method (_CRS, 0, NotSerialized)
{
CreateWordField (BUFA, 0x01, IRA0)
And (PIRH, 0x0F, Local0)
Store (One, Local1)
ShiftLeft (Local1, Local0, IRA0)
Return (BUFA)
}
Method (_SRS, 1, NotSerialized)
{
CreateWordField (Arg0, 0x01, IRA)
FindSetRightBit (IRA, Local0)
Decrement (Local0)
Store (Local0, PIRH)
}
}
}
Scope (\_SB)
{
Scope (PCI0)
{
Name (CRS, ResourceTemplate ()
{
WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
0x0000,
0x0000,
0x00FF,
0x0000,
0x0100)
IO (Decode16, 0x0CF8, 0x0CF8, 0x01, 0x08)
WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
0x0000,
0x0000,
0x0CF7,
0x0000,
0x0CF8)
WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
0x0000,
0x0D00,
0xFFFF,
0x0000,
0xF300)
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
0x00000000,
0x000A0000,
0x000BFFFF,
0x00000000,
0x00020000)
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
0x00000000,
0x000D0000,
0x000D3FFF,
0x00000000,
0x00004000)
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
0x00000000,
0x000D4000,
0x000D7FFF,
0x00000000,
0x00004000)
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
0x00000000,
0x000DE000,
0x000DFFFF,
0x00000000,
0x00002000)
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000)
})
CreateDWordField (CRS, 0xAA, MIN6)
CreateDWordField (CRS, 0xAE, MAX6)
CreateDWordField (CRS, 0xB6, LEN6)
Method (_CRS, 0, NotSerialized)
{
Store (MG2B, MIN6)
Store (MG2L, LEN6)
Store (MG2L, Local0)
Add (MIN6, Decrement (Local0), MAX6)
Return (CRS)
}
Method (_S3D, 0, NotSerialized)
{
If (LOr (LEqual (OSFL (), 0x01), LEqual (OSFL (), 0x02)))
{
Return (0x02)
}
Else
{
Return (0x03)
}
}
Scope (EUSB)
{
Method (_S3D, 0, NotSerialized)
{
If (LOr (LEqual (OSFL (), 0x01), LEqual (OSFL (), 0x02)))
{
Return (0x02)
}
Else
{
Return (0x03)
}
}
}
Scope (USB)
{
Method (_S3D, 0, NotSerialized)
{
If (LOr (LEqual (OSFL (), 0x01), LEqual (OSFL (), 0x02)))
{
Return (0x02)
}
Else
{
Return (0x03)
}
}
}
Scope (USB2)
{
Method (_S3D, 0, NotSerialized)
{
If (LOr (LEqual (OSFL (), 0x01), LEqual (OSFL (), 0x02)))
{
Return (0x02)
}
Else
{
Return (0x03)
}
}
}
Scope (USB3)
{
Method (_S3D, 0, NotSerialized)
{
If (LOr (LEqual (OSFL (), 0x01), LEqual (OSFL (), 0x02)))
{
Return (0x02)
}
Else
{
Return (0x03)
}
}
}
OperationRegion (NBR0, PCI_Config, 0x00, 0xFF)
Field (NBR0, DWordAcc, NoLock, Preserve)
{
Offset (0xD1),
NRD1, 1,
Offset (0xD8),
NRD8, 32
}
}
}
Name (SD0, 0x00)
Name (SD1, 0x00)
Method (_PTS, 1, NotSerialized)
{
Store (Arg0, DBG8)
PTS (Arg0)
Store (\_SB.PCI0.NRD1, SD0)
Store (\_SB.PCI0.NRD8, SD1)
Or (P42, 0x40, P42)
Store (OSFL (), P49)
Or (Arg0, 0xA0, Local0)
Add (Local0, 0x06, Local0)
Store (Local0, P48)
If (LAnd (LEqual (Arg0, 0x04), LEqual (OSFL (), 0x02)))
{
Sleep (0x0BB8)
}
Store (0x00, Index (WAKP, 0x00))
Store (0x00, Index (WAKP, 0x01))
}
Method (_WAK, 1, NotSerialized)
{
Store (SD1, \_SB.PCI0.NRD8)
Store (SD0, \_SB.PCI0.NRD1)
ShiftLeft (Arg0, 0x04, DBG8)
ShiftLeft (Arg0, 0x04, P378)
If (LEqual (Arg0, 0x03))
{
If (RTC3)
{
Store (0xC3, P378)
}
Else
{
Notify (\_SB.PWRB, 0x02)
Sleep (0x64)
}
}
Else
{
Notify (\_SB.PWRB, 0x02)
Sleep (0x64)
Store (\_SB.PCI0.SBRG.EC0.OTYP, OSEC)
Store (0x98, SSMI)
}
Or (Arg0, 0xA0, Local0)
Store (Local0, P48)
WAK (Arg0)
If (DerefOf (Index (WAKP, 0x00)))
{
Store (0x00, Index (WAKP, 0x01))
}
Else
{
Store (Arg0, Index (WAKP, 0x01))
}
Return (WAKP)
}
OperationRegion (PR48, SystemIO, 0x0848, 0x01)
Field (PR48, ByteAcc, NoLock, Preserve)
{
P48, 8
}
OperationRegion (S3WK, SystemIO, 0x0860, 0x02)
Field (S3WK, ByteAcc, NoLock, Preserve)
{
, 14,
RTC3, 1
}
OperationRegion (PR42, SystemIO, 0x0842, 0x01)
Field (PR42, ByteAcc, NoLock, Preserve)
{
P42, 8
}
OperationRegion (PR49, SystemIO, 0x0849, 0x01)
Field (PR49, ByteAcc, NoLock, Preserve)
{
P49, 8
}
Name (\_S0, Package (0x04)
{
0x00,
0x00,
0x00,
0x00
})
Name (\_S1, Package (0x04)
{
0x01,
0x00,
0x00,
0x00
})
Name (\_S3, Package (0x04)
{
0x03,
0x00,
0x00,
0x00
})
Name (\_S4, Package (0x04)
{
0x04,
0x00,
0x00,
0x00
})
Name (\_S5, Package (0x04)
{
0x05,
0x00,
0x00,
0x00
})
Method (PTS, 1, NotSerialized)
{
If (Arg0) {}
}
Method (WAK, 1, NotSerialized)
{
}
}
^ permalink raw reply
* Re: NAT before IPsec with 2.6
From: Harald Welte @ 2004-01-27 20:45 UTC (permalink / raw)
To: Tom Eastep
Cc: Willy Tarreau, Henrik Nordstrom, Michal Ludvig, netfilter-devel
In-Reply-To: <200401270811.36973.teastep@shorewall.net>
[-- Attachment #1: Type: text/plain, Size: 1904 bytes --]
> > To do this, somewhen between esp_output() is called and the beginning of
> > the modification of the packet payload, we need to call
> > nf_hook(POST_ROUTING). This way, conntrack would be able to put the
> > connection in the hash, and people can do SNAT-like operations in
> > nat->POSTROUTING. We could even pass a dummy output device structure
> > with an interface name "esp" so people can SNAT everything heading for
> > esp encapsulation.
>
> I like this proposal.
Great :)
> I assume that on input, payload packets would also have this dummy
> device as their input device?
sure, makes sense.
> And on output that payload packets would have "esp" as their output
> device in the FORWARD and OUTPUT hooks as well?
no, that's way more difficult. I'm not sure whether it can be done at
all (without adding rediculous kludges to the code).
> I would also like to register my vote for having the AH/ESP packets go
> through INPUT and OUTPUT. This would allow Shorewall to treat IPSEC in
> the same way as it does all other tunnel types:
Mh. Let's say we stick with the INPUT/OUTPUT chains for now.
However, I would like to introduce new netfilter hooks. At least for
the beginning (due to lack of better ideas), I'm going to register the
INPUT/OUTPUT chains with those new hooks.
the idea of the new hooks is, that in reality they are at different
locations in the stack. And at some point we might have some module
that is only interested in xfrm'ed packets.
> -Tom
--
- Harald Welte <laforge@netfilter.org> http://www.netfilter.org/
============================================================================
"Fragmentation is like classful addressing -- an interesting early
architectural error that shows how much experimentation was going
on while IP was being designed." -- Paul Vixie
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply
* Re: [Jfs-discussion] md raid + jfs + jfs_fsck
From: Dave Kleikamp @ 2004-01-27 20:43 UTC (permalink / raw)
To: Florian Huber; +Cc: JFS Discussion, linux-kernel
In-Reply-To: <1075232395.11203.94.camel@suprafluid>
On Tue, 2004-01-27 at 13:39, Florian Huber wrote:
> On Tue, 2004-01-27 at 20:28, Dave Kleikamp wrote:
> > I wonder if JFS is having trouble getting the partition size. Can you
> > run jfs_fsck with the -v flag to see what part of the superblock it
> > doesn't like?
>
> The current device is: /dev/md2
> Open(...READ/WRITE EXCLUSIVE...) returned rc = 0
> Incorrect jlog length detected in the superblock (P).
> Incorrect jlog length detected in the superblock (S).
> Superblock is corrupt and cannot be repaired
> since both primary and secondary copies are corrupt.
My guess is that software raid is stealing a few blocks from the end of
the partition, and JFS doesn't like that, since it's journal goes all
the way to the end. I've created a patch that will shorten the journal
if it can safely be done. It was built against the latest jfsutils cvs
tree, but applies to version 1.1.4:
http://www10.software.ibm.com/developer/opensource/jfs/project/pub/jfsutils-1.1.4.tar.gz
Please let me know if this fixes it. (lkml: Yeah, I know the code is
indented too far. It's outside the kernel, so give me a break.)
Index: jfsutils/fsck/fsckmeta.c
===================================================================
RCS file: /usr/cvs/jfs/jfsutils/fsck/fsckmeta.c,v
retrieving revision 1.18
diff -u -p -r1.18 fsckmeta.c
--- jfsutils/fsck/fsckmeta.c 17 Dec 2003 20:28:47 -0000 1.18
+++ jfsutils/fsck/fsckmeta.c 27 Jan 2004 20:27:56 -0000
@@ -2124,9 +2124,34 @@ int validate_super(int which_super)
}
agg_blks_in_aggreg += jlog_length_from_pxd;
if (agg_blks_in_aggreg > agg_blks_on_device) {
+ int64_t short_blocks;
+ uint32_t new_jlog_size;
/* log length is bad */
vs_rc = FSCK_BADSBFJLL;
- fsck_send_msg(fsck_BADSBFJLL, fsck_ref_msg(which_super));
+ /* Let's try to fix it. :^) */
+ short_blocks = agg_blks_in_aggreg -
+ agg_blks_on_device;
+ new_jlog_size = (jlog_length_from_pxd -
+ short_blocks) *
+ sb_ptr->s_bsize;
+ /* logform likes multiples of 16K */
+ new_jlog_size &= 0xfffffC000;
+ /* Don't let it go below 1/2 MB */
+ if (new_jlog_size > (1 << 19)) {
+ printf("The volume seems to have shrunk by %Ld blocks.\n"
+ "Will attempt to fix.\n",
+ short_blocks);
+ jlog_length_from_pxd =
+ new_jlog_size /
+ sb_ptr->s_bsize;
+ PXDlength(&(sb_ptr->s_logpxd),
+ jlog_length_from_pxd);
+ vs_rc = ujfs_put_superblk(
+ Dev_IOPort, sb_ptr, 1);
+ }
+ if (vs_rc)
+ fsck_send_msg(fsck_BADSBFJLL,
+ fsck_ref_msg(which_super));
}
}
}
--
David Kleikamp
IBM Linux Technology Center
^ permalink raw reply
* Best aic79xx driver?
From: Tom Szybist @ 2004-01-27 20:47 UTC (permalink / raw)
To: linux-scsi
Hi,
We are trying to settling in on using the Adaptec 29320 HBAs.
We are constrained to use Red Hat AS 2.1, with 2.4.9-e.24. The
driver included with that is 1.3.4.
This seems to not work that well. Under I/O with many drives,
the processes go into disk wait, and never return. No console
messages or anything. (The machine is still up and running though).
I've been testing with 2.0.5 from Justin, and that seems to
work well. However, I noticed that only 2.0.2 is listed
on Adaptec's web page.
All things being equal, what should we go with? 2.0.5? 2.0.2?
or something else?
Thanks,
Tom
^ permalink raw reply
* Debian libc6 upgrade
From: Michael Scondo @ 2004-01-27 20:40 UTC (permalink / raw)
To: linux-newbie
Hi to all,
I'm running a mixed Debian Woody, with a few backports and libc6 2.3.1-16.
Now I would like to upgrade to libc6 2.3.2.ds1-10.
Anything runs fine - until I try to compile a program :
e.g.
____
#include <stdio.h>
int main()
{
printf("Hallo !\n");
}
____
cpp -o hallo hallo.cpp
micha@betageuze:~/prog/test/t2$ ./hallo
bash: ./hallo: Permission denied
micha@betageuze:~/prog/test/t2$ chmod a+x ./hallo
micha@betageuze:~/prog/test/t2$ ./hallo
./hallo: extern: command not found
./hallo: typedef: command not found
./hallo: typedef: command not found
./hallo: typedef: command not found
./hallo: typedef: command not found
./hallo: typedef: command not found
./hallo: typedef: command not found
./hallo: typedef: command not found
./hallo: typedef: command not found
./hallo: typedef: command not found
./hallo: typedef: command not found
./hallo: typedef: command not found
./hallo: typedef: command not found
./hallo: line 972: syntax error near unexpected token `;'
./hallo: line 972: `} __quad_t;'
micha@betageuze:~/prog/test/t2$
?:-(
gcc -o hallo hallo.cpp
/usr/lib/crt1.o: In function `_start':
../sysdeps/i386/elf/start.S:92: undefined reference to `__libc_csu_fini'
../sysdeps/i386/elf/start.S:93: undefined reference to `__libc_csu_init'
collect2: ld returned 1 exit status
I don't have any idea, what is going wrong.
Maybe I should say, before the upgrade this example program compiled fine.
Thanks for any help..
Micha
-
To unsubscribe from this list: send the line "unsubscribe linux-newbie" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.linux-learn.org/faqs
^ permalink raw reply
* Re: [Kernel-janitors] reviewing KJ patches
From: maximilian attems @ 2004-01-27 20:40 UTC (permalink / raw)
To: kernel-janitors
In-Reply-To: <20040126163021.45208acc.rddunlap@osdl.org>
[-- Attachment #1.1: Type: text/plain, Size: 366 bytes --]
hello randy!
On Mon, 26 Jan 2004, Randy.Dunlap wrote:
> It sure would help if someone other than me was reviewing some
> kernel-janitors patches .... :(
i am doing a lot of physics exams these days ..
i promised to look through the 2003 kj mailbox,
until now just came up for january and february,
will do better next weeks.
regards
maks
[-- Attachment #1.2: Type: application/pgp-signature, Size: 232 bytes --]
[-- Attachment #2: Type: text/plain, Size: 163 bytes --]
_______________________________________________
Kernel-janitors mailing list
Kernel-janitors@lists.osdl.org
http://lists.osdl.org/mailman/listinfo/kernel-janitors
^ permalink raw reply
* Re: [PATCH] kgdb-x86_64-support.patch for 2.6.2-rc1-mm3
From: George Anzinger @ 2004-01-27 20:37 UTC (permalink / raw)
To: jim.houston; +Cc: Andi Kleen, akpm, amitkale, linux-kernel
In-Reply-To: <1075232116.1020.326.camel@new.localdomain>
Jim Houston wrote:
> On Tue, 2004-01-27 at 13:02, Andi Kleen wrote:
>
>>On 27 Jan 2004 12:43:20 -0500
>>Jim Houston <jim.houston@comcast.net> wrote:
>
>
>>>arch/x86_64/Kconfig
>>>arch/x86_64/Kconfig.kgdb
>>> We used a different approach to selecting DEBUG_INFO.
>>> I was not really happy with the way select DEBUG_INFO worked.
>>
>>You reverted it back?
>>
>>What I did was to change all not really kgdb specific CONFIG_KGDB uses in
>>the main kernel with CONFIG_DEBUG_INFO (mostly CFI support). I don't feel
>>strongly about it, but this way there is no reference to an unknown
>>config symbol in mainline. Also DEBUG_INFO including CFI makes sense I think.
If we are going to use DEBUG_INFO could we change the "-g" it produces to
"-gdwarft-2", especially since you (and I) are using dwarft2 CFI stuff.
-g
>
>
> Hi Andi,
>
> I'm using CONFIG_DEBUG_INFO, but I used a different mechanism to
> select it when KGDB is selected. I'm still learning to speak Kconfig.
>
> My patch:
>
> config KGDB
> bool "Include kgdb kernel debugger"
> depends on DEBUG_KERNEL
> select DEBUG_INFO
> help
> If you say Y here, the system will be compiled with the debug
>
> Your patch:
>
> config DEBUG_INFO
> bool "Compile kernel with debug information" if !KGDB
> default y
>
> Using "select DEBUG_INFO" selects the option and makes the input box
> on xconfig disappear. The line describing the option remains, perhaps
> leaving a user wondering why this line doesn't have an input box.
>
> With your version, the DEBUG_INFO option disappears when KGDB forces
> it on.
>
> I was looking for a way to get the old behavior where the
> the effect was controlled by an OR of the two options.
>
> Jim Houston - Concurrent Computer Corp.
>
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
>
--
George Anzinger george@mvista.com
High-res-timers: http://sourceforge.net/projects/high-res-timers/
Preemption patch: http://www.kernel.org/pub/linux/kernel/people/rml
^ permalink raw reply
* Re: PROBLEM: ISDN CAPI (avm b1pci) doesn't work, occasionally freezes Kernel (2.6.1)
From: Karsten Keil @ 2004-01-27 20:28 UTC (permalink / raw)
To: linux-kernel
In-Reply-To: <m3oet0dkti.fsf@reason.gnu-hamburg>
On Mon, Jan 19, 2004 at 04:23:05PM +0100, Georg C. F. Greve wrote:
> || On Mon, 19 Jan 2004 14:59:48 -0200
> || fcp <fcp@pop.co.za> wrote:
>
> f> He advised me this morning that the latest i4l cvs branch kernel26
> f> version (old isdn system) fixes the problems we are having with
> f> the 2.6.1 kernel. Haven't had a chance to test this yet.
>
> Ah, so 2.6.2 should fix the problem? Good.
>
I sent a big patch to Linus (against 2.6.2-rc2), you will find the patch at
ftp://ftp.isdn4linux.de/pub/isdn4linux/kernel/v2.6.
It fix some small problems with the CAPI2.0 implementation/AVM active cards
and is a new I4L/HiSax implementation based on the stable 2.4 code base.
It's successfull tested by a handfull people and I run it with all cards
I own (~40 different types) without outstanding problems so far.
Currently untested:
Teles PCMCIA
Elsa PCMCIA
some old ISA cards
--
Karsten Keil
SuSE Labs
ISDN development
^ permalink raw reply
* Re: [PATCH] Incorrect value for SIGRTMAX, MIPS nonsense removed, timer_gettime fix
From: George Anzinger @ 2004-01-27 20:32 UTC (permalink / raw)
To: Andrew Morton; +Cc: eric.piel, minyard, linux-kernel
In-Reply-To: <20040127104648.1e749f5d.akpm@osdl.org>
Andrew Morton wrote:
> George Anzinger <george@mvista.com> wrote:
>
>>The attached patch does the following:
>>
>>Removes C++ comment in favor of C style.
>>
>>Removes the special treatment for MIPS SIGEV values. We only require (and error
>>if this fails) that the SIGEV_THREAD_ID value not share bits with the other
>>SIGEV values. Note that mips has yet to define this value so when they do...
>>
>>Corrects the check for the signal range to be from 1 to SIGRTMAX inclusive.
>>
>>Adds a check to verify that kmem_cache_alloc() actually returned a timer, error
>>if not.
>>
>>Fixes a bug in timer_gettime() where the incorrect value was returned if a
>>signal was pending on the timer OR the timer was a SIGEV_NONE timer.
>
>
>>- if ((event->sigev_notify & ~SIGEV_NONE & MIPS_SIGEV) &&
>>- event->sigev_signo &&
>>- ((unsigned) (event->sigev_signo > SIGRTMAX)))
>>+ if (((event->sigev_notify & ~SIGEV_THREAD_ID) != SIGEV_NONE) &&
>>+ ((unsigned int) (event->sigev_signo - 1) >= SIGRTMAX))
>> return NULL;
>
>
> I was wondering if someone would try this one :( Really, this is just over
> the top. Take pity upon your readers, and do:
I was rather thinking of educating them :) It does produce better code...
>
> if (((event->sigev_notify & ~SIGEV_THREAD_ID) != SIGEV_NONE) &&
> (event->sigev_signo <= 0 || event->sigev_signo > SIGRTMAX))
>
>
>>@@ -804,7 +826,7 @@
>> * equal to jiffies, so the timer notify function is called directly.
>> * We do not even queue SIGEV_NONE timers!
>> */
>>- if (!(timr->it_sigev_notify & SIGEV_NONE)) {
>>+ if (!((timr->it_sigev_notify & ~SIGEV_THREAD_ID) == SIGEV_NONE)) {
>> if (timr->it_timer.expires == jiffies)
>> timer_notify_task(timr);
>> else
>
>
> Are you sure this is correct? If so, using != would be clearer.
Yes, if he said SIGEV_NONE we don't want to deliver a signal. The restatement
is OK with me.
Shall I resubmit?
>
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
>
--
George Anzinger george@mvista.com
High-res-timers: http://sourceforge.net/projects/high-res-timers/
Preemption patch: http://www.kernel.org/pub/linux/kernel/people/rml
^ permalink raw reply
* [ALSA - driver 0000005]: alsa-driver-1.0.2: unresolved symbols in snd.o
From: noreply @ 2004-01-27 20:31 UTC (permalink / raw)
To: alsa-devel
The following NEW bug has been ADDED.
======================================================================
http://bugtrack.alsa-project.org/alsa-bug/bug_view_page.php?bug_id=0000005
======================================================================
Reporter: ZlatkO
Handler:
======================================================================
Project: ALSA - driver
Bug ID: 5
Category: CORE - control
Reproducibility: always
Severity: block
Priority: normal
Status: new
Distribution: Slackware 8.1
Kernel Version: 2.4.24
======================================================================
Date Submitted: 01-27-2004 21:31 CET
Last Modified: 01-27-2004 21:31 CET
======================================================================
Summary: alsa-driver-1.0.2: unresolved symbols in snd.o
Description:
snd.o fails to load due to an unresolved symbol ("sound_class") on a
Slackware 8.1 system, kernel 2.4.24 (plain vanilla from kernel.org),
modutils-2.4.16.
There is no "sound_class" in the kernel's own
/usr/src/linux-2.4.24/drivers/sound/sound_core.c - am I supposed to
replace it with alsa-kernel/sound_core.c? This was not necessary in
previous ALSA versions.
======================================================================
Bug History
Date Modified Username Field Change
======================================================================
01-27-04 21:31 ZlatkO New Bug
======================================================================
-------------------------------------------------------
The SF.Net email is sponsored by EclipseCon 2004
Premiere Conference on Open Tools Development and Integration
See the breadth of Eclipse activity. February 3-5 in Anaheim, CA.
http://www.eclipsecon.org/osdn
^ permalink raw reply
* Re: PATCH: (as177) Add class_device_unregister_wait() and platform_device_unregister_wait() to the driver model core
From: Greg KH @ 2004-01-27 20:29 UTC (permalink / raw)
To: Roman Zippel
Cc: Linus Torvalds, Alan Stern, Kernel development list,
Patrick Mochel
In-Reply-To: <Pine.LNX.4.58.0401261435160.7855@serv>
On Mon, Jan 26, 2004 at 05:22:41PM +0100, Roman Zippel wrote:
>
> All this is done without a module count, this means that
> pci_unregister_driver() cannot return before the last reference is gone.
> For network devices this is not that much of a problem, as they can be
> rather easily deconfigured automatically, but that's not that easy for
> mounted block devices, so one has to be damned careful when to call the
> exit function.
Um, not anymore. I can yank out a mounted block device and watch the
scsi core recover just fine. The need to make everything hotpluggable
has fixed up a lot of issues like this (as well as made more
problems...)
thanks,
greg k-h
^ permalink raw reply
* Re: PATCH: (as177) Add class_device_unregister_wait() and platform_device_unregister_wait() to the driver model core
From: Greg KH @ 2004-01-27 20:28 UTC (permalink / raw)
To: Roman Zippel, Linus Torvalds, Alan Stern, Kernel development list,
Patrick Mochel
In-Reply-To: <20040127193227.A30224@flint.arm.linux.org.uk>
On Tue, Jan 27, 2004 at 07:32:28PM +0000, Russell King wrote:
>
> (and yes, pci_module_init() is buggy as it currently stands, and I
> believe GregKH has a patch in his queue from the stability freeze
> from yours truely to fix it.)
Yes I still have it, I need to dig that out and send it onward... Sorry
about the delay.
greg k-h
^ permalink raw reply
* Re: [OT] Sco
From: Mark Mielke @ 2004-01-27 20:26 UTC (permalink / raw)
To: Wakko Warner; +Cc: Timothy Miller, walt, Linux Kernel
In-Reply-To: <20040127122545.A4752@animx.eu.org>
On Tue, Jan 27, 2004 at 12:25:45PM -0500, Wakko Warner wrote:
> > Besides, DoS attacks against SCO will only be blamed on the Linux
> > community. So the developer of that virus is either a complete idiot or
> > is acting to intentionally hurt our image.
> If the former, then this is probably a windows person. After all, the virus
> is for *windows* and not linux.
Haha... you guys are thinking like sophisticated intellectuals.
Most likely, it is some teenage wannabe who is just trying to convince
themselves that they play a part in this drama called life. "Look how
cool I am!" (Of course - in the less socially ept circles, teenagers
can take the form of 40-year old geeks... hopefully nobody here... :-) )
Cheers,
mark
--
mark@mielke.cc/markm@ncf.ca/markm@nortelnetworks.com __________________________
. . _ ._ . . .__ . . ._. .__ . . . .__ | Neighbourhood Coder
|\/| |_| |_| |/ |_ |\/| | |_ | |/ |_ |
| | | | | \ | \ |__ . | | .|. |__ |__ | \ |__ | Ottawa, Ontario, Canada
One ring to rule them all, one ring to find them, one ring to bring them all
and in the darkness bind them...
http://mark.mielke.cc/
^ permalink raw reply
* Re: [PATCH] crypto/sha256.c crypto/sha512.c
From: Jean-Luc Cooke @ 2004-01-27 20:22 UTC (permalink / raw)
To: linux-kernel
In-Reply-To: <Xine.LNX.4.44.0401271514150.4185-100000@thoron.boston.redhat.com>
If you take a peek in your/Plumb's crypto/md5.c you've reduced the F1() macro
to the identical operation as the new Ch() inline function.
It reduces gcc's tenancy to re-load values in functions such like:
(x & y) ^ (~x & z)
(x & y) ^ (x & z) ^ (y & z)
This works out much nicer:
z ^ (x & (y ^ z))
(x & y) | (z & (x | y))
I've seen this in a few .c files (gcc -S blah.c; vim blah.s)
The Ch() and Maj() operations are used a lot in sha256/512.
JLC
On Tue, Jan 27, 2004 at 03:14:53PM -0500, James Morris wrote:
> On Tue, 27 Jan 2004, Jean-Luc Cooke wrote:
>
> > Optimized the choice and majority fuctions a bit.
> >
> > Patch:
> > http://jlcooke.ca/lkml/faster_sha2.patch
> >
> > Test suite:
> > http://jlcooke.ca/lkml/faster_sha2.c
> > build with:
> > gcc -O3 -s faster_sha2.c -o faster_sha2
> >
>
> What kind of performance improvement does this provide?
--
http://www.certainkey.com
Suite 4560 CTTC
1125 Colonel By Dr.
Ottawa ON, K1S 5B6
^ permalink raw reply
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.