Re: OpenBSD joining worldwide software patent non-agression community
On Fri, Feb 14, 2014 at 08:37:32PM +0100, Valer Mischenko wrote: > Hi the OpenBSD team, > > Ken Westerback advised me to appeal to you as a collective. > > My name is Valer and I am writing to you on behalf of the Open Invention > Network (OIN). Our mission is to support projects developing or using Open > Source and Linux-related technology by deterring patent aggression. We do > this through a community that pledges not to assert patents against each > other over this technology. This pledge covers over 2,100 Open Source > packages. It is structured to reduce risk on core operating system and > middleware technologies. Almost 750 projects and companies from all areas > of technology creation, deployment and use have joined our community so far > (see not very up to date list: > http://www.openinventionnetwork.com/licensees.php) > > We wanted to invite OpenBSD Foundation to our community. > > We understand that there is no organization that owns or controls OpenBSD, > but that is valid for lots of projects / distress who joined the > non-aggression pact. Most of them are also autonomous collectives of > individual contributors, each of various degrees of current influence over > the source code. Mostly the team decides by consensus who may sign the > pledge (can be done digitally). > > You may be interested in our community credentials and to get some more > context about our work. Here is an endorsement from Eben Moglen, Chairman > of the Software Freedom Law Center: > http://emoglen.law.columbia.edu/now/organizations/OIN > > Here is an endorsement from Jim Zemlin, Executive Director of the Linux > Foundation: > http://www.linux-foundation.org/weblogs/jzemlin/2009/09/09/protecting-linux-from-microsoft-yesmicrosoft-got-caught/ > > Our community is free to join. The only thing we want is a pledge that > OpenBSD would never use patents aggressively against the broader Linux > System. Of course it never will, and that's a symbolic gesture, but it > remains very important for our work. When we bind bigger companies with > this pledge we are sure they will not attack the users of OpenBSD for > example. But their participation in OIN is also very important in various > other aspects. > > And these companies are numerous. For example Valve Software and Dropbox > are on of the latest bigger companies joined in. UnitedStack from China > joined just a weeks hours before. Pretty much everyone else is in there > too, from Red Hat to GNOME, Fujitsu to CentOS, Google to KDE to OpenStack > Foundation. This is the largest community to address software patent > challenges in the world. The idea is: when everybody pledges freedom, there > will be no wars. > > We are passionate supporters of open innovation and the Linux System in a > very broad sense. I hope we can work together by welcoming OpenBSD as a > project to our non-aggression community. (And may be also OpenSSH, > OpenBGPD, OpenNTPD, and OpenCVS as separate projects.) Yes, we need mass to > shift the current state of affairs to the better. Every single voice helps > us face current market challenges while investing in a more collaborative > future. > > Attached is a very short overview of OIN + FAQs, but I am happy to answer > any questions and to explain in more detail why the pledge of patent > non-aggression is so important for open innovation. > > May you decide positively there is a possibility to sign online: > http://licenses.openinventionnetwork.com > > Please let me know what you think guys. > > > Faithfully, > Valer Mischenko, > Open Invention Network > > www.openinventionnetwork.com OpenBSD is what part of the 'Linux System' exactly? :-)
document 'machine boot' on i386/amd64
It seems boot(8) on i386/amd64 has an undocumented feature that is occasionally handy. This adds a small blurb to the man pages for both so that people can find it. -Bryan. Index: i386/stand/boot/boot.8 === RCS file: /cvs/src/sys/arch/i386/stand/boot/boot.8,v retrieving revision 1.58 diff -u -p -u -r1.58 boot.8 --- i386/stand/boot/boot.8 28 Oct 2013 15:15:08 - 1.58 +++ i386/stand/boot/boot.8 6 Nov 2013 16:54:05 - @@ -204,6 +204,18 @@ commands, if any. Issues machine-dependent commands. These are defined for i386 architecture: .Bl -tag -width diskinfo +.It Nm boot +Boots the specified partition boot block in place of the original (MBR) boot +block: +.Bd -unfilled -offset indent +machine boot hd0a +.Ed +.Pp +Where +.Ar a +is the first MBR partition table entry, and +.Ar d +the last. .It Nm comaddr Set the I/O base address for the serial port to be used as serial console. .It Nm diskinfo Index: amd64/stand/boot/boot.8 === RCS file: /cvs/src/sys/arch/amd64/stand/boot/boot.8,v retrieving revision 1.21 diff -u -p -u -r1.21 boot.8 --- amd64/stand/boot/boot.8 28 Oct 2013 15:15:08 - 1.21 +++ amd64/stand/boot/boot.8 6 Nov 2013 16:54:19 - @@ -204,6 +204,18 @@ commands, if any. Issues machine-dependent commands. These are defined for amd64 architecture: .Bl -tag -width diskinfo +.It Nm boot +Boots the specified partition boot block in place of the original (MBR) boot +block: +.Bd -unfilled -offset indent +machine boot hd0a +.Ed +.Pp +Where +.Ar a +is the first MBR partition table entry, and +.Ar d +the last. .It Nm comaddr Set the I/O base address for the serial port to be used as serial console. .It Nm diskinfo
Re: Iso image integrity verification
On Wed, Sep 11, 2013 at 01:57:22PM -0400, Brandon Mercer wrote: > There's literally the same thing on the mirror? > http://ftp.openbsd.org/pub/OpenBSD/snapshots/amd64/SHA256 This discussion is probably more suited for misc@, but as Brandon wrote, SHA256 checksums are on all the mirrors. If you don't trust your local ftp.openbsdmirror.ccTLD, it might be worth fetching the sets and then grabbing the SHA256 file directly from ftp.openbsd.org. -Bryan.
Re: OpenBSD on a Nokia IP380
On Sat, Aug 24, 2013 at 11:37:25AM -0400, s_gamm...@charter.net wrote: > Bryan, removing both gives this > > warning: too little memory available;running in degraded mode > press a key to confirm > > [ using 749064 bytes of bsd ELF symbol table ] > Copyright (c) 1982, 1986, 1989, 1991, 1993 > The Regents of the University of California. All rights reserved. > Copyright (c) 1995-2013 OpenBSD. All rights reserved. > http://www.OpenBSD.org > > OpenBSD 5.3 (GENERIC) #50: Tue Mar 12 18:35:23 MDT 2013 > dera...@i386.openbsd.org:/usr/src/sys/arch/i386/compile/GENERIC > cpu0: Intel Pentium III ("GenuineIntel" 686-class) 867 MHz > cpu0: > FPU,V86,DE,PSE,TSC,MSR,PAE,MCE,CX8,SEP,MTRR,PGE,MCA,CMOV,PSE36,PSN,MMX,FXSR,SSE > real mem = 585728 (0MB) > avail mem = 790528 (0MB) > panic: procinit: malloc > Stopped at Debugger+0x4: popl%ebp > Debugger(d08fdcbc,d0bc9f04,d08d9e90,d0bc9f04,bc8000) at Debugger+0x4 > panic(d08d9e90,29,2,d0a548c8,0) at panic+0x5d > procinit(d08d6b00,d08d8f40,c0,d0bc9f4c,1) at procinit+0x29c > main(d02004f6,d02004fe,0,0,0) at main+0x75 > RUN AT LEAST 'trace' AND 'ps' AND INCLUDE OUTPUT WHEN REPORTING THIS > PANIC! I meant removing both mappings and then adding a single 1023M mapping, I didn't expect it to work with <1M of RAM. ;-) > > Removing only one, I get this. As you can see, all the NICs have FF > and 00 as the MAC address. So, it's a bit farther, but still not > quite there... > > > Stan > > > [ using 749064 bytes of bsd ELF symbol table ] > Copyright (c) 1982, 1986, 1989, 1991, 1993 > The Regents of the University of California. All rights reserved. > Copyright (c) 1995-2013 OpenBSD. All rights reserved. > http://www.OpenBSD.org > > OpenBSD 5.3 (GENERIC) #50: Tue Mar 12 18:35:23 MDT 2013 > dera...@i386.openbsd.org:/usr/src/sys/arch/i386/compile/GENERIC > cpu0: Intel Pentium III ("GenuineIntel" 686-class) 867 MHz > cpu0: > FPU,V86,DE,PSE,TSC,MSR,PAE,MCE,CX8,SEP,MTRR,PGE,MCA,CMOV,PSE36,PSN,MMX,FXSR,SSE > real mem = 1073278976 (1023MB) > avail mem = 1044758528 (996MB) > mainbus0 at root > bios0 at mainbus0: AT/286+ BIOS, date 04/30/04, BIOS32 rev. 0 @ 0xe7650 > pcibios0 at bios0: rev 2.1 @ 0xe76c0/0x600 > pcibios0: PCI BIOS has 9 Interrupt Routing table entries > pcibios0: PCI Exclusive IRQs: 5 7 9 10 11 > pcibios0: PCI Interrupt Router at 000:15:0 ("ServerWorks OSB4" rev 0x00) > pcibios0: PCI bus #4 is the last bus > cpu0 at mainbus0: (uniprocessor) > pci0 at mainbus0 bus 0: configuration mode 1 (bios) > pchb0 at pci0 dev 0 function 0 "ServerWorks CNB20LE Host" rev 0x06 > pchb1 at pci0 dev 0 function 1 "ServerWorks CNB20LE Host" rev 0x06 > pci1 at pchb1 bus 1 > ppb0 at pci1 dev 0 function 0 "Intel 21154AE/BE PCI-PCI" rev 0x00 > pci2 at ppb0 bus 2 > fxp0 at pci2 dev 3 function 0 "Intel 82559ER" rev 0x10, i82551: irq > 11, address ff:ff:ff:ff:ff:ff > inphy0 at fxp0 phy 1: i82555 10/100 PHY, rev. 4 > fxp1 at pci2 dev 4 function 0 "Intel 82559ER" rev 0x10, i82551: irq > 11, address ff:ff:ff:ff:ff:ff > inphy1 at fxp1 phy 1: i82555 10/100 PHY, rev. 4 > fxp2 at pci2 dev 5 function 0 "Intel 82559ER" rev 0x10, i82551: irq > 11, address ff:ff:ff:ff:ff:ff > inphy2 at fxp2 phy 1: i82555 10/100 PHY, rev. 4 > fxp3 at pci2 dev 6 function 0 "Intel 82559ER" rev 0x10, i82551: irq > 11, address ff:ff:ff:ff:ff:ff > inphy3 at fxp3 phy 1: i82555 10/100 PHY, rev. 4 > ppb1 at pci1 dev 2 function 0 "Intel 21154AE/BE PCI-PCI" rev 0x00 > pci3 at ppb1 bus 3 > dc0 at pci3 dev 5 function 0 "DEC 21142/3" rev 0x41: irq 10, address > 00:00:00:00:00:00 > bmtphy0 at dc0 phy 1: BCM5221 100baseTX PHY, rev. 4 > dc1 at pci3 dev 6 function 0 "DEC 21142/3" rev 0x41: irq 10, address > 00:00:00:00:00:00 > bmtphy1 at dc1 phy 1: BCM5221 100baseTX PHY, rev. 4 > cbb0 at pci0 dev 9 function 0 "TI PCI1420 CardBus" rev 0x00: > couldn't map interrupt > cbb1 at pci0 dev 9 function 1 "TI PCI1420 CardBus" rev 0x00: > couldn't map interrupt > ubsec0 at pci0 dev 10 function 0 "Broadcom 5802" rev 0x01: 3DES MD5 > SHA1 RNG PK, irq 11 > piixpm0 at pci0 dev 15 function 0 "ServerWorks OSB4" rev 0x51: polling > iic0 at piixpm0 > lmenv0 at iic0 addr 0x2d: lm87 rev 6, starting scan > lmenv1 at iic0 addr 0x2e: lm87 rev 6, starting scan > spdmem0 at iic0 addr 0x50: 512MB SDRAM registered ECC PC133CL2 > spdmem1 at iic0 addr 0x51: 512MB SDRAM registered ECC PC133CL2 > pciide0 at pci0 dev 15 function 1 "ServerWorks OSB4 IDE" rev 0x00: DMA > wd0 at pciide0 channel 0 drive 0: > wd0: 16-sector PIO, LBA, 38154MB, 78140160 sectors > wd0(pciide0:0:0): using PIO mode 4, DMA mode 2, Ultra-DMA mode 2 > ohci0 at pci0 dev 15 function 2 "ServerWorks OSB4/CSB5 USB" rev > 0x04: irq 11, version 1.0, legacy support > DO NOT EVEN BOTHER REPORTING THIS WITHOUT INCLUDING THAT INFORMATION! What is the new panic message? Does it enter ddb>? The bogus MAC addresses could indicate a problem, but it's possible there is no EPROM defaults.. once you boot successfully you can configure your it manually with ifconfig int lladdr xx:xx:xx
Re: OpenBSD on a Nokia IP380
On Sat, Aug 24, 2013 at 06:39:11AM -0400, s_gamm...@charter.net wrote: > On Fri, Aug 23, 2013 at 11:06 PM, Mike Larkin wrote: > > > >At the boot> prompt, what does "mach mem" show? > > > >-ml > > > > Hi Mike, here's the output from mach mem. It only has 1GB of memory. > Not sure why it's saying the total is 2GB. > > > Stan > > > Using drive 0, partition 3. > Loading. > probing: pc0 com0 com1 pci mem[637K 1023M 1023M a20=on] > disk: hd0+ > >>OpenBSD/i386 BOOT 3.21 > switching console to com0 > >> OpenBSD/i386 BOOT 3.21 > boot: illegal argument acpi > boot> mach mem > Region 0: type 1 at 0x0 for 637KB > Region 1: type 2 at 0x9f400 for 3KB > Region 2: type 1 at 0x10 for 1047552KB > Region 3: type 1 at 0x10 for 1047552KB > Region 4: type 2 at 0xfff0 for 1024KB > Low ram: 637KB High ram: 2095104KB > Total free memory: 2095741KB > boot> $ This is likely a problem with the BIOS on the system, the memory map has duplicate entries.. You can attempt to manually fix this at boot> using a variation of the same command used to retreive the mappings: boot> mach mem =1023M You can play around with it, maybe try removing both of the duplicates first: boot> mach mem -0x3ff0@0x10 boot> mach mem -0x3ff0@0x10 -Bryan.
Add ITE 8728 device to it(4)
It seems there's an ITE 8728 chip on my motherboard, and, it's showing some sensible information! :-) ok? it0 at isa0 port 0x2e/2: IT8728F rev 1, EC port 0x228 hw.sensors.it0.temp0=37.00 degC hw.sensors.it0.temp1=34.00 degC hw.sensors.it0.temp2=27.00 degC hw.sensors.it0.fan0=2020 RPM hw.sensors.it0.fan1=0 RPM hw.sensors.it0.fan2=0 RPM hw.sensors.it0.volt0=1.87 VDC (VCORE_A) hw.sensors.it0.volt1=1.95 VDC (VCORE_B) hw.sensors.it0.volt2=2.69 VDC (+3.3V) hw.sensors.it0.volt3=3.79 VDC (+5V) hw.sensors.it0.volt4=10.82 VDC (+12V) hw.sensors.it0.volt5=-1.75 VDC (-12V) hw.sensors.it0.volt6=0.62 VDC (-5V) hw.sensors.it0.volt7=3.76 VDC (+5VSB) hw.sensors.it0.volt8=2.05 VDC (VBAT) Index: dev/isa/it.c === RCS file: /cvs/src/sys/dev/isa/it.c,v retrieving revision 1.42 diff -u -p -r1.42 it.c --- dev/isa/it.c14 Dec 2012 13:17:29 - 1.42 +++ dev/isa/it.c21 Mar 2013 17:59:54 - @@ -168,6 +168,7 @@ it_match(struct device *parent, void *ma case IT_ID_8720: case IT_ID_8721: case IT_ID_8726: + case IT_ID_8728: case IT_ID_8772: /* get environment controller base address */ it_writereg(ia->ia_iot, ioh, IT_LDN, IT_EC_LDN); Index: dev/isa/itvar.h === RCS file: /cvs/src/sys/dev/isa/itvar.h,v retrieving revision 1.14 diff -u -p -r1.14 itvar.h --- dev/isa/itvar.h 14 Dec 2012 13:17:29 - 1.14 +++ dev/isa/itvar.h 21 Mar 2013 17:59:54 - @@ -47,6 +47,7 @@ #define IT_ID_8720 0x8720 #define IT_ID_8721 0x8721 #define IT_ID_8726 0x8726 +#define IT_ID_8728 0x8728 #define IT_ID_8772 0x8772 #define IT_CCR 0x02
Re: tedu
On Fri, Mar 15, 2013 at 12:20:16PM -0400, Okan Demirmen wrote: > Index: bin/rm/Makefile > === > RCS file: /home/open/anoncvs/cvs/src/bin/rm/Makefile,v > retrieving revision 1.3 > diff -u -p -r1.3 Makefile > --- bin/rm/Makefile 21 Sep 1997 11:35:40 - 1.3 > +++ bin/rm/Makefile 15 Mar 2013 16:13:45 - > @@ -2,4 +2,6 @@ > > PROG=rm > > +LINKS= ${BINDIR}/rm ${BINDIR}/tedu > + > .include > Index: gnu/usr.bin/cvs/src/main.c > === > RCS file: /home/open/anoncvs/cvs/src/gnu/usr.bin/cvs/src/main.c,v > retrieving revision 1.39 > diff -u -p -r1.39 main.c > --- gnu/usr.bin/cvs/src/main.c22 Jul 2010 10:31:10 - 1.39 > +++ gnu/usr.bin/cvs/src/main.c15 Mar 2013 16:13:13 - > @@ -141,6 +141,7 @@ static const struct cmd > #endif > { "status", "st", "stat", cvsstatus, CVS_CMD_USES_WORK_DIR > }, > { "tag", "ta", "freeze",cvstag, > CVS_CMD_MODIFIES_REPOSITORY | CVS_CMD_USES_WORK_DIR }, > +{ "tedu", "tedu", "tedu", cvsremove, > CVS_CMD_MODIFIES_REPOSITORY | CVS_CMD_USES_WORK_DIR }, > { "unedit", NULL, NULL,unedit, > CVS_CMD_MODIFIES_REPOSITORY | CVS_CMD_USES_WORK_DIR }, > { "update", "up", "upd", update,CVS_CMD_USES_WORK_DIR > }, > { "version", "ve", "ver", version, 0 }, Just don't forget to tedu opencvs.. uhh, I mean, add tedu to opencvs.
Add family 15h devices, km(4) sensor.
So someone sent me a new toy, this adds the k15 PCIe devices. Names are copied from the equivalent k14.. because I'm not sure wherefrom they were originally sourced. For km(4), it seems the temperature calculations are off.. according to the BKDG curtmp doesn't seem to actually reflect the real temperature, but some sort of value in relation to the max temperature. On my system is shows around <10degC when idle, reaching 40degC when all cores are under load. So.. the value increases! :P The FreeBSD driver has all sorts of workarounds I'm not sure we want, but it shows similar temperatures values. ok? -Bryan. Index: dev/pci/km.c === RCS file: /cvs/src/sys/dev/pci/km.c,v retrieving revision 1.5 diff -u -p -u -r1.5 km.c --- dev/pci/km.c31 May 2011 00:19:55 - 1.5 +++ dev/pci/km.c12 Mar 2013 22:19:16 - @@ -70,7 +70,8 @@ struct cfdriver km_cd = { static const struct pci_matchid km_devices[] = { { PCI_VENDOR_AMD, PCI_PRODUCT_AMD_AMD64_10_MISC }, { PCI_VENDOR_AMD, PCI_PRODUCT_AMD_AMD64_11_MISC }, - { PCI_VENDOR_AMD, PCI_PRODUCT_AMD_AMD64_14_MISC } + { PCI_VENDOR_AMD, PCI_PRODUCT_AMD_AMD64_14_MISC }, + { PCI_VENDOR_AMD, PCI_PRODUCT_AMD_AMD64_15_MISC } }; Index: dev/pci/pcidevs === RCS file: /cvs/src/sys/dev/pci/pcidevs,v retrieving revision 1.1669 diff -u -p -u -r1.1669 pcidevs --- dev/pci/pcidevs 8 Feb 2013 07:58:18 - 1.1669 +++ dev/pci/pcidevs 12 Mar 2013 22:19:16 - @@ -693,6 +693,12 @@ product AMD AMD64_14_PCIE_20x1513 AMD64 product AMD AMD64_14_PCIE_30x1514 AMD64 14h PCIE product AMD AMD64_14_PCIE_40x1515 AMD64 14h PCIE product AMD AMD64_14_PCIE_50x1516 AMD64 14h PCIE +product AMD AMD64_15_LINK 0x1600 AMD64 15h Link Cfg +product AMD AMD64_15_ADDR 0x1601 AMD64 15h Address Map +product AMD AMD64_15_DRAM 0x1602 AMD64 15h DRAM Cfg +product AMD AMD64_15_MISC 0x1603 AMD64 15h Misc Cfg +product AMD AMD64_15_CPU_PM0x1604 AMD64 15h CPU Power +product AMD AMD64_15_HB0x1605 AMD64 15h Host product AMD AMD64_14_LINK 0x1700 AMD64 14h Link Cfg product AMD AMD64_14_ADDR 0x1701 AMD64 14h Address Map product AMD AMD64_14_DRAM 0x1702 AMD64 14h DRAM Cfg
Re: add /etc/drirc to xetc set
On Thu, Jan 10, 2013 at 01:18:21AM +0100, Stefan Sperling wrote: > radeon/r600 acceleration currently only works properly with > the following drirc snippet: > > > > > > > > > > > See http://marc.info/?l=openbsd-cvs&m=130679235018645&w=2 > > Until this is fixed, I think we should include a /etc/drirc file as > part of the xetc set. Else, cards supported by this driver do not > properly support 3d and xvideo out of the box. Now that radeondrm(4) is attaching to more devices thanks to jsg@, this definitely makes sense.. :-) -Bryan.
Re: dhclient ignore
On Thu, Jul 26, 2012 at 10:09:28PM -0400, Ted Unangst wrote: > I have a system with two network interfaces (em0 and em1), running dhcp > on both. Both dhcp servers provide me with a nameserver, but only one > of them works (I can't fix this). There is a config file for dhclient > I can use, but it only supports the supersede keyword. I don't want > to statically configure a nameserver override for em1, because the > whole point is that the good nameserver on em0 can change. I just > want to say "pretend this option did not arrive." > > Diff below adds a little support for an ignore keyword. Like > supersede, except don't actually use the supplied value. Not commenting on the diff or the feature, which could indeed be the corect solution, if maybe only to work around some strict/broken servers. I was under the impression that if you added an "request" statement excluding the 'domain-name-servers' option the server would honour that and only offer the options you've explictly requested.. Does something like this work for you? interface "em0" { request subnet-mask, broadcast-address, routers, domain-name-servers; } interface "em1" { request subnet-mask, broadcast-address, routers; } -Bryan.
Re: Hide user in top(1).
On Sat, Jun 02, 2012 at 03:09:54PM -0400, Brynet wrote: > I wasn't sure about the interactions between getopt(3) and having an > '-' as an optarg. > > Seems there isn't anything obvious, so this allows users to be hidden > using: top -U -user > > Any comments? > -Bryan. Hopefully this is the final diff. Showing a single user and then hiding them will now work as one would expect. I also forgot to update usage(). -Bryan. Index: display.c === RCS file: /cvs/src/usr.bin/top/display.c,v retrieving revision 1.42 diff -u -p -u -r1.42 display.c --- display.c 15 Apr 2012 19:52:16 - 1.42 +++ display.c 3 Jun 2012 17:27:17 - @@ -782,7 +782,7 @@ show_help(void) "r count pid - renice process `pid' to nice value `count'\n" "S- toggle the display of system processes\n" "s time - change delay between displays to `time' seconds\n" - "u user - display processes for `user' (u+ selects all users)\n" + "u [-]user- show processes for `user' (u+ shows all, u -user hides user)\n" "\n"); if (smart_terminal) { Index: machine.c === RCS file: /cvs/src/usr.bin/top/machine.c,v retrieving revision 1.72 diff -u -p -u -r1.72 machine.c --- machine.c 21 Apr 2012 03:14:50 - 1.72 +++ machine.c 3 Jun 2012 17:27:18 - @@ -330,6 +330,7 @@ get_process_info(struct system_info *si, int (*compare) (const void *, const void *)) { int show_idle, show_system, show_threads, show_uid, show_pid, show_cmd; + int hide_uid; int total_procs, active_procs; struct kinfo_proc **prefp, *pp; int what = KERN_PROC_KTHREAD; @@ -356,6 +357,7 @@ get_process_info(struct system_info *si, show_system = sel->system; show_threads = sel->threads; show_uid = sel->uid != (uid_t)-1; + hide_uid = sel->huid != (uid_t)-1; show_pid = sel->pid != (pid_t)-1; show_cmd = sel->command != NULL; @@ -381,6 +383,7 @@ get_process_info(struct system_info *si, if (pp->p_stat != SZOMB && (show_idle || pp->p_pctcpu != 0 || pp->p_stat == SRUN) && + (!hide_uid || pp->p_ruid != sel->huid) && (!show_uid || pp->p_ruid == sel->uid) && (!show_pid || pp->p_pid == sel->pid) && (!show_cmd || strstr(pp->p_comm, Index: machine.h === RCS file: /cvs/src/usr.bin/top/machine.h,v retrieving revision 1.16 diff -u -p -u -r1.16 machine.h --- machine.h 10 Apr 2011 03:20:59 - 1.16 +++ machine.h 3 Jun 2012 17:27:18 - @@ -74,6 +74,7 @@ struct process_select { int system; /* show system processes */ int threads;/* show threads */ uid_t uid;/* only this uid (unless uid == -1) */ + uid_t huid; /* hide this uid (unless huid == -1) */ pid_t pid;/* only this pid (unless pid == -1) */ char *command;/* only this command (unless == NULL) */ }; Index: top.1 === RCS file: /cvs/src/usr.bin/top/top.1,v retrieving revision 1.59 diff -u -p -u -r1.59 top.1 --- top.1 16 Dec 2011 14:50:24 - 1.59 +++ top.1 3 Jun 2012 17:27:18 - @@ -38,7 +38,7 @@ .Op Fl o Ar field .Op Fl p Ar pid .Op Fl s Ar time -.Op Fl U Ar user +.Oo Fl U Op Ar - Oc Ns Ar user .Op Ar number .Ek .Sh DESCRIPTION @@ -173,9 +173,14 @@ Set the delay between screen updates to seconds. The value may be fractional, to permit delays of less than 1 second. The default delay between updates is 5 seconds. -.It Fl U Ar user +.It Fl U Oo Ar - Oc Ns Ar user Show only those processes owned by .Ar user . +Prefix +.Ar - +with +.Ar user +to hide processes owned by that user. This option currently only accepts usernames and will not understand UID numbers. .It Fl u @@ -354,11 +359,15 @@ Toggle the display of system processes. Set the delay between screen updates to .Ar time seconds. -.It u Ar user +.It u Oo Ar - Oc Ns Ar user Show only those processes owned by .Ar user . .Sq u+ shows processes belonging to all users. +The +.Ar - +prefix hides processes belonging to a single +.Ar user . .El .Sh THE DISPLAY .\" The actual display varies depending on the specific variant of Unix Index: top.c === RCS file: /cvs/src/usr.bin/top/top.c,v retri
Re: Hide user in top(1).
I wasn't sure about the interactions between getopt(3) and having an '-' as an optarg. Seems there isn't anything obvious, so this allows users to be hidden using: top -U -user Any comments? -Bryan. Index: display.c === RCS file: /cvs/src/usr.bin/top/display.c,v retrieving revision 1.42 diff -u -p -u -r1.42 display.c --- display.c 15 Apr 2012 19:52:16 - 1.42 +++ display.c 2 Jun 2012 19:00:02 - @@ -782,7 +782,7 @@ show_help(void) "r count pid - renice process `pid' to nice value `count'\n" "S- toggle the display of system processes\n" "s time - change delay between displays to `time' seconds\n" - "u user - display processes for `user' (u+ selects all users)\n" + "u [-]user- show processes for `user' (u+ shows all, u -user hides user)\n" "\n"); if (smart_terminal) { Index: machine.c === RCS file: /cvs/src/usr.bin/top/machine.c,v retrieving revision 1.72 diff -u -p -u -r1.72 machine.c --- machine.c 21 Apr 2012 03:14:50 - 1.72 +++ machine.c 2 Jun 2012 19:00:02 - @@ -330,6 +330,7 @@ get_process_info(struct system_info *si, int (*compare) (const void *, const void *)) { int show_idle, show_system, show_threads, show_uid, show_pid, show_cmd; + int hide_uid; int total_procs, active_procs; struct kinfo_proc **prefp, *pp; int what = KERN_PROC_KTHREAD; @@ -356,6 +357,7 @@ get_process_info(struct system_info *si, show_system = sel->system; show_threads = sel->threads; show_uid = sel->uid != (uid_t)-1; + hide_uid = sel->huid != (uid_t)-1; show_pid = sel->pid != (pid_t)-1; show_cmd = sel->command != NULL; @@ -381,6 +383,7 @@ get_process_info(struct system_info *si, if (pp->p_stat != SZOMB && (show_idle || pp->p_pctcpu != 0 || pp->p_stat == SRUN) && + (!hide_uid || pp->p_ruid != sel->huid) && (!show_uid || pp->p_ruid == sel->uid) && (!show_pid || pp->p_pid == sel->pid) && (!show_cmd || strstr(pp->p_comm, Index: machine.h === RCS file: /cvs/src/usr.bin/top/machine.h,v retrieving revision 1.16 diff -u -p -u -r1.16 machine.h --- machine.h 10 Apr 2011 03:20:59 - 1.16 +++ machine.h 2 Jun 2012 19:00:02 - @@ -74,6 +74,7 @@ struct process_select { int system; /* show system processes */ int threads;/* show threads */ uid_t uid;/* only this uid (unless uid == -1) */ + uid_t huid; /* hide this uid (unless huid == -1) */ pid_t pid;/* only this pid (unless pid == -1) */ char *command;/* only this command (unless == NULL) */ }; Index: top.1 === RCS file: /cvs/src/usr.bin/top/top.1,v retrieving revision 1.59 diff -u -p -u -r1.59 top.1 --- top.1 16 Dec 2011 14:50:24 - 1.59 +++ top.1 2 Jun 2012 19:00:02 - @@ -38,7 +38,7 @@ .Op Fl o Ar field .Op Fl p Ar pid .Op Fl s Ar time -.Op Fl U Ar user +.Oo Fl U Op Ar - Oc Ns Ar user .Op Ar number .Ek .Sh DESCRIPTION @@ -173,9 +173,14 @@ Set the delay between screen updates to seconds. The value may be fractional, to permit delays of less than 1 second. The default delay between updates is 5 seconds. -.It Fl U Ar user +.It Fl U Oo Ar - Oc Ns Ar user Show only those processes owned by .Ar user . +Prefix +.Ar - +with +.Ar user +to hide processes owned by that user. This option currently only accepts usernames and will not understand UID numbers. .It Fl u @@ -354,11 +359,15 @@ Toggle the display of system processes. Set the delay between screen updates to .Ar time seconds. -.It u Ar user +.It u Oo Ar - Oc Ns Ar user Show only those processes owned by .Ar user . .Sq u+ shows processes belonging to all users. +The +.Ar - +prefix hides processes belonging to a single +.Ar user . .El .Sh THE DISPLAY .\" The actual display varies depending on the specific variant of Unix Index: top.c === RCS file: /cvs/src/usr.bin/top/top.c,v retrieving revision 1.77 diff -u -p -u -r1.77 top.c --- top.c 20 Apr 2012 16:36:11 - 1.77 +++ top.c 2 Jun 2012 19:00:02 - @@ -149,7 +149,11 @@ parseargs(int ac, char **av) break; case 'U': /* display only username's processes */ - if ((ps.uid = userid(optarg)) == (uid_t)-1) + if (optarg[0] == '-') { + if ((ps.huid =
Re: Hide user in top(1).
On Fri, Jun 01, 2012 at 04:02:11PM -0400, Brynet wrote: > Hi, > > Sometimes it's handy to hide a user from top(1) output, on a desktop > system for example you might want to quickly hide yourself and see what > else is running. > > The syntax for interactive mode is u -user, passwd(5) entries shouldn't > begin with that character. > > '-', like '+', will clear all filters when used without an argument. > > Non-interactive mode is unchanged. > > Anyone like this? > -Bryan. Ugh, wrong diff. -Bryan. Index: display.c === RCS file: /cvs/src/usr.bin/top/display.c,v retrieving revision 1.42 diff -u -p -u -r1.42 display.c --- display.c 15 Apr 2012 19:52:16 - 1.42 +++ display.c 1 Jun 2012 19:29:08 - @@ -782,7 +782,7 @@ show_help(void) "r count pid - renice process `pid' to nice value `count'\n" "S- toggle the display of system processes\n" "s time - change delay between displays to `time' seconds\n" - "u user - display processes for `user' (u+ selects all users)\n" + "u [-]user- show processes for `user' (u+ shows all, u -user hides user)\n" "\n"); if (smart_terminal) { Index: machine.c === RCS file: /cvs/src/usr.bin/top/machine.c,v retrieving revision 1.72 diff -u -p -u -r1.72 machine.c --- machine.c 21 Apr 2012 03:14:50 - 1.72 +++ machine.c 1 Jun 2012 19:29:08 - @@ -330,6 +330,7 @@ get_process_info(struct system_info *si, int (*compare) (const void *, const void *)) { int show_idle, show_system, show_threads, show_uid, show_pid, show_cmd; + int hide_uid; int total_procs, active_procs; struct kinfo_proc **prefp, *pp; int what = KERN_PROC_KTHREAD; @@ -356,6 +357,7 @@ get_process_info(struct system_info *si, show_system = sel->system; show_threads = sel->threads; show_uid = sel->uid != (uid_t)-1; + hide_uid = sel->huid != (uid_t)-1; show_pid = sel->pid != (pid_t)-1; show_cmd = sel->command != NULL; @@ -381,6 +383,7 @@ get_process_info(struct system_info *si, if (pp->p_stat != SZOMB && (show_idle || pp->p_pctcpu != 0 || pp->p_stat == SRUN) && + (!hide_uid || pp->p_ruid != sel->huid) && (!show_uid || pp->p_ruid == sel->uid) && (!show_pid || pp->p_pid == sel->pid) && (!show_cmd || strstr(pp->p_comm, Index: machine.h === RCS file: /cvs/src/usr.bin/top/machine.h,v retrieving revision 1.16 diff -u -p -u -r1.16 machine.h --- machine.h 10 Apr 2011 03:20:59 - 1.16 +++ machine.h 1 Jun 2012 19:29:08 - @@ -74,6 +74,7 @@ struct process_select { int system; /* show system processes */ int threads;/* show threads */ uid_t uid;/* only this uid (unless uid == -1) */ + uid_t huid; /* hide this uid (unless huid == -1) */ pid_t pid;/* only this pid (unless pid == -1) */ char *command;/* only this command (unless == NULL) */ }; Index: top.1 === RCS file: /cvs/src/usr.bin/top/top.1,v retrieving revision 1.59 diff -u -p -u -r1.59 top.1 --- top.1 16 Dec 2011 14:50:24 - 1.59 +++ top.1 1 Jun 2012 19:29:08 - @@ -354,11 +354,16 @@ Toggle the display of system processes. Set the delay between screen updates to .Ar time seconds. -.It u Ar user +.It Xo +.Ic u +.Oo - Oc Ns Ar user +.Xc Show only those processes owned by .Ar user . .Sq u+ shows processes belonging to all users. +.Sq u -user +hides processes belonging to a single user. .El .Sh THE DISPLAY .\" The actual display varies depending on the specific variant of Unix Index: top.c === RCS file: /cvs/src/usr.bin/top/top.c,v retrieving revision 1.77 diff -u -p -u -r1.77 top.c --- top.c 20 Apr 2012 16:36:11 - 1.77 +++ top.c 1 Jun 2012 19:29:08 - @@ -282,6 +282,7 @@ main(int argc, char *argv[]) ps.idle = Yes; ps.system = No; ps.uid = (uid_t)-1; + ps.huid = (uid_t)-1; ps.pid = (pid_t)-1; ps.command = NULL; @@ -540,7 +541,6 @@ rundisplay(void) char ch, *iptr; int change, i; struct pollfd pfd[1]; - uid_t uid; static cha
Hide user in top(1).
Hi, Sometimes it's handy to hide a user from top(1) output, on a desktop system for example you might want to quickly hide yourself and see what else is running. The syntax for interactive mode is u -user, passwd(5) entries shouldn't begin with that character. '-', like '+', will clear all filters when used without an argument. Non-interactive mode is unchanged. Anyone like this? -Bryan. Index: display.c === RCS file: /cvs/src/usr.bin/top/display.c,v retrieving revision 1.42 diff -u -p -u -r1.42 display.c --- display.c 15 Apr 2012 19:52:16 - 1.42 +++ display.c 1 Jun 2012 19:29:08 - @@ -782,7 +782,7 @@ show_help(void) "r count pid - renice process `pid' to nice value `count'\n" "S- toggle the display of system processes\n" "s time - change delay between displays to `time' seconds\n" - "u user - display processes for `user' (u+ selects all users)\n" + "u [-]user- show processes for `user' (u+ shows all, u -user hides one)\n" "\n"); if (smart_terminal) { Index: machine.c === RCS file: /cvs/src/usr.bin/top/machine.c,v retrieving revision 1.72 diff -u -p -u -r1.72 machine.c --- machine.c 21 Apr 2012 03:14:50 - 1.72 +++ machine.c 1 Jun 2012 19:29:08 - @@ -330,6 +330,7 @@ get_process_info(struct system_info *si, int (*compare) (const void *, const void *)) { int show_idle, show_system, show_threads, show_uid, show_pid, show_cmd; + int hide_uid; int total_procs, active_procs; struct kinfo_proc **prefp, *pp; int what = KERN_PROC_KTHREAD; @@ -356,6 +357,7 @@ get_process_info(struct system_info *si, show_system = sel->system; show_threads = sel->threads; show_uid = sel->uid != (uid_t)-1; + hide_uid = sel->huid != (uid_t)-1; show_pid = sel->pid != (pid_t)-1; show_cmd = sel->command != NULL; @@ -381,6 +383,7 @@ get_process_info(struct system_info *si, if (pp->p_stat != SZOMB && (show_idle || pp->p_pctcpu != 0 || pp->p_stat == SRUN) && + (!hide_uid || pp->p_ruid != sel->huid) && (!show_uid || pp->p_ruid == sel->uid) && (!show_pid || pp->p_pid == sel->pid) && (!show_cmd || strstr(pp->p_comm, Index: machine.h === RCS file: /cvs/src/usr.bin/top/machine.h,v retrieving revision 1.16 diff -u -p -u -r1.16 machine.h --- machine.h 10 Apr 2011 03:20:59 - 1.16 +++ machine.h 1 Jun 2012 19:29:08 - @@ -74,6 +74,7 @@ struct process_select { int system; /* show system processes */ int threads;/* show threads */ uid_t uid;/* only this uid (unless uid == -1) */ + uid_t huid; /* hide this uid (unless huid == -1) */ pid_t pid;/* only this pid (unless pid == -1) */ char *command;/* only this command (unless == NULL) */ }; Index: top.1 === RCS file: /cvs/src/usr.bin/top/top.1,v retrieving revision 1.59 diff -u -p -u -r1.59 top.1 --- top.1 16 Dec 2011 14:50:24 - 1.59 +++ top.1 1 Jun 2012 19:29:08 - @@ -354,11 +354,16 @@ Toggle the display of system processes. Set the delay between screen updates to .Ar time seconds. -.It u Ar user +.It Xo +.Ic u +.Oo - Oc Ns Ar user +.Xc Show only those processes owned by .Ar user . .Sq u+ shows processes belonging to all users. +.Sq u -user +hides processes belonging to a single user. .El .Sh THE DISPLAY .\" The actual display varies depending on the specific variant of Unix Index: top.c === RCS file: /cvs/src/usr.bin/top/top.c,v retrieving revision 1.77 diff -u -p -u -r1.77 top.c --- top.c 20 Apr 2012 16:36:11 - 1.77 +++ top.c 1 Jun 2012 19:29:08 - @@ -282,6 +282,7 @@ main(int argc, char *argv[]) ps.idle = Yes; ps.system = No; ps.uid = (uid_t)-1; + ps.huid = (uid_t)-1; ps.pid = (pid_t)-1; ps.command = NULL; @@ -540,7 +541,6 @@ rundisplay(void) char ch, *iptr; int change, i; struct pollfd pfd[1]; - uid_t uid; static char command_chars[] = "\f qh?en#sdkriIuSopCHg+P1"; /* @@ -774,15 +774,21 @@ rundisplay(void) new_message(MT_standout, "Username to show: "); if (readline(tempbuf, sizeof(tempbuf)) > 0) { - if (tempbuf[0] == '+' && + if ((temp
Re: IBM-M4 available for getting OpenBSD working with it.
On Wed, May 16, 2012 at 03:20:08PM +0200, chefren wrote: > The Netherlands > > We have a brand new IBM-M4 available for getting OpenBSD working with > it. We are interested in working 32 and 64 versions of OpenBSD for the > basic M4 frame with 4 Intel i350 Ethernet ports. FreeBSD drivers for > the i350 seem to be available. > > We presume the work consists of porting the driver and checking/fixing > the interrupt setup. > > It's a basic version of the very silent and nicest build 1U server we > have ever seen (truly state of the art). As an extra there is a dual > 10Gbit Ethernet card inserted with SPF+ ports, (we don't need those > working). > > The person who gets the latest version of OpenBSD-5.1 working within a > reasonable time frame and makes the working source code available to > the community may have it. > > If you can make us believe you can fix the problem sooner than someone > else we will be happy to send the machine to you if needed. > > If you just send us working code, better! After approval we will send > the machine FOB to the address you want. > > +++chefren This isn't a donation, this is a job listing. -Bryan.
SMBus support for AMD Hudson-2.
Hudson-2/SB900 was tested by Jorg Willekens, works the same as the SB800. ... piixpm0 at pci0 dev 20 function 0 "AMD Hudson-2 SMBus" rev 0x13: polling iic0 at piixpm0 spdmem0 at iic0 addr 0x50: 4GB DDR3 SDRAM PC3-10600 spdmem1 at iic0 addr 0x51: 4GB DDR3 SDRAM PC3-10600 spdmem2 at iic0 addr 0x52: 4GB DDR3 SDRAM PC3-10600 spdmem3 at iic0 addr 0x53: 4GB DDR3 SDRAM PC3-10600 .. ok? -Bryan. Index: piixpm.c === RCS file: /cvs/src/sys/dev/pci/piixpm.c,v retrieving revision 1.36 diff -u -p -u -r1.36 piixpm.c --- dev/pci/piixpm.c28 May 2011 14:56:32 - 1.36 +++ dev/pci/piixpm.c5 Mar 2012 00:02:40 - @@ -85,6 +85,8 @@ struct cfdriver piixpm_cd = { }; const struct pci_matchid piixpm_ids[] = { + { PCI_VENDOR_AMD, PCI_PRODUCT_AMD_HUDSON2_SMB }, + { PCI_VENDOR_ATI, PCI_PRODUCT_ATI_SB200_SMB }, { PCI_VENDOR_ATI, PCI_PRODUCT_ATI_SB300_SMB }, { PCI_VENDOR_ATI, PCI_PRODUCT_ATI_SB400_SMB }, @@ -124,11 +126,13 @@ piixpm_attach(struct device *parent, str sc->sc_iot = pa->pa_iot; - if (PCI_VENDOR(pa->pa_id) == PCI_VENDOR_ATI && + if ((PCI_VENDOR(pa->pa_id) == PCI_VENDOR_AMD && + PCI_PRODUCT(pa->pa_id) == PCI_PRODUCT_AMD_HUDSON2_SMB) || + (PCI_VENDOR(pa->pa_id) == PCI_VENDOR_ATI && PCI_PRODUCT(pa->pa_id) == PCI_PRODUCT_ATI_SBX00_SMB && - PCI_REVISION(pa->pa_class) >= 0x40) { + PCI_REVISION(pa->pa_class) >= 0x40)) { /* -* On the AMD SB800, the SMBus I/O registers are well +* On the AMD SB800+, the SMBus I/O registers are well * hidden. We need to look at the "SMBus0En" Power * Management register to find out where they live. * We use indirect IO access through the index/data
add missing ipad usbdevs entries + quirks.
Allows gphoto2 for PTP transfers, plus other libusb stuff in the future. -Bryan. Index: uaudio.c === RCS file: /cvs/src/sys/dev/usb/uaudio.c,v retrieving revision 1.94 diff -u -p -u -r1.94 uaudio.c --- uaudio.c26 Jan 2012 09:00:36 - 1.94 +++ uaudio.c30 Jan 2012 23:25:23 - @@ -207,6 +207,10 @@ struct uaudio_devs { UAUDIO_FLAG_BAD_AUDIO }, { { USB_VENDOR_APPLE, USB_PRODUCT_APPLE_IPOD_TOUCH_4G }, UAUDIO_FLAG_BAD_AUDIO }, + { { USB_VENDOR_APPLE, USB_PRODUCT_APPLE_IPAD }, + UAUDIO_FLAG_BAD_AUDIO }, + { { USB_VENDOR_APPLE, USB_PRODUCT_APPLE_IPAD2 }, + UAUDIO_FLAG_BAD_AUDIO }, { { USB_VENDOR_CREATIVE, USB_PRODUCT_CREATIVE_EMU0202 }, UAUDIO_FLAG_VENDOR_CLASS | UAUDIO_FLAG_EMU0202 | UAUDIO_FLAG_DEPENDENT }, Index: usb_quirks.c === RCS file: /cvs/src/sys/dev/usb/usb_quirks.c,v retrieving revision 1.65 diff -u -p -u -r1.65 usb_quirks.c --- usb_quirks.c1 Dec 2011 23:02:12 - 1.65 +++ usb_quirks.c30 Jan 2012 23:25:23 - @@ -120,7 +120,9 @@ const struct usbd_quirk_entry { { USB_VENDOR_APPLE, USB_PRODUCT_APPLE_IPOD_TOUCH, ANY,{ UQ_BAD_HID }}, { USB_VENDOR_APPLE, USB_PRODUCT_APPLE_IPOD_TOUCH_2G, ANY,{ UQ_BAD_HID }}, { USB_VENDOR_APPLE, USB_PRODUCT_APPLE_IPOD_TOUCH_3G, ANY,{ UQ_BAD_HID }}, - { USB_VENDOR_APPLE, USB_PRODUCT_APPLE_IPOD_TOUCH_4G, ANY,{ UQ_BAD_HID }}, + { USB_VENDOR_APPLE, USB_PRODUCT_APPLE_IPOD_TOUCH_4G, ANY,{ UQ_BAD_HID }}, + { USB_VENDOR_APPLE, USB_PRODUCT_APPLE_IPAD, ANY,{ UQ_BAD_HID }}, + { USB_VENDOR_APPLE, USB_PRODUCT_APPLE_IPAD2, ANY,{ UQ_BAD_HID }}, { USB_VENDOR_APPLE, USB_PRODUCT_APPLE_SPEAKERS, ANY,{ UQ_BAD_HID }}, { USB_VENDOR_BELKIN, USB_PRODUCT_BELKIN_F6C100, ANY,{ UQ_BAD_HID }}, { USB_VENDOR_BELKIN, USB_PRODUCT_BELKIN_F6C120, ANY,{ UQ_BAD_HID }}, Index: usbdevs === RCS file: /cvs/src/sys/dev/usb/usbdevs,v retrieving revision 1.570 diff -u -p -u -r1.570 usbdevs --- usbdevs 29 Jan 2012 10:59:23 - 1.570 +++ usbdevs 30 Jan 2012 23:25:24 - @@ -893,8 +893,10 @@ product APPLE IPOD_TOUCH_2G0x1293 iPod product APPLE IPHONE_3GS 0x1294 iPhone 3GS product APPLE IPHONE_4_GSM 0x1297 iPhone 4 GSM product APPLE IPOD_TOUCH_3G0x1299 iPod Touch 3G +product APPLE IPAD 0x129a iPad product APPLE IPHONE_4_CDMA0x129c iPhone 4 CDMA product APPLE IPOD_TOUCH_4G0x129e iPod Touch 4G +product APPLE IPAD20x129f iPad 2 product APPLE IPHONE_4S0x12a0 iPhone 4S product APPLE ETHERNET 0x1402 Ethernet A1277 product APPLE BLUETOOTH2 0x8205 Bluetooth
Re: small vr(4) patch.
On Sat, Jan 28, 2012 at 09:57:34AM +, Stuart Henderson wrote: > On 2012/01/27 21:54, Brynet wrote: > > Remove redundant call to vr_reset, it gets called in vr_init. > > Can you show me where it gets called? I don't see it. Apologies, it gets called in vr_chipinit, which is called early in vr_init. -Bryan.
amd k1x patch, silly mistake.
The initial msr read is pointless now, quit passing it around. I don't use the value in k1x_acpi_states(). My bad. But I guess it could be left in as an early detection of a newer CPU that doesn't support K10 style msr's (..vs as soon as someone fiddles with a sysctl or enables apmd). -Bryan. Index: amd64/amd64/k1x-pstate.c === RCS file: /cvs/src/sys/arch/amd64/amd64/k1x-pstate.c,v retrieving revision 1.3 diff -u -p -u -r1.3 k1x-pstate.c --- arch/amd64/amd64/k1x-pstate.c 7 Jan 2012 05:55:08 - 1.3 +++ arch/amd64/amd64/k1x-pstate.c 28 Jan 2012 02:58:15 - @@ -76,8 +76,7 @@ void k1x_transition(struct k1x_cpu_state #if NACPICPU > 0 void k1x_acpi_init(struct k1x_cpu_state *); -void k1x_acpi_states(struct k1x_cpu_state *, struct acpicpu_pss *, int, -u_int64_t); +void k1x_acpi_states(struct k1x_cpu_state *, struct acpicpu_pss *, int); #endif void @@ -131,7 +130,7 @@ k1x_transition(struct k1x_cpu_state *cst void k1x_acpi_states(struct k1x_cpu_state *cstate, struct acpicpu_pss *pss, -int nstates, u_int64_t msr) +int nstates) { struct k1x_state state; int j, n; @@ -157,15 +156,12 @@ void k1x_acpi_init(struct k1x_cpu_state *cstate) { struct acpicpu_pss *pss; - u_int64_t msr; cstate->n_states = acpicpu_fetch_pss(&pss); if (cstate->n_states == 0) return; - msr = rdmsr(MSR_K1X_STATUS); - - k1x_acpi_states(cstate, pss, cstate->n_states, msr); + k1x_acpi_states(cstate, pss, cstate->n_states); return; } Index: i386/i386/k1x-pstate.c === RCS file: /cvs/src/sys/arch/i386/i386/k1x-pstate.c,v retrieving revision 1.3 diff -u -p -u -r1.3 k1x-pstate.c --- arch/i386/i386/k1x-pstate.c 7 Jan 2012 05:55:08 - 1.3 +++ arch/i386/i386/k1x-pstate.c 28 Jan 2012 02:58:16 - @@ -76,8 +76,7 @@ void k1x_transition(struct k1x_cpu_state #if NACPICPU > 0 void k1x_acpi_init(struct k1x_cpu_state *); -void k1x_acpi_states(struct k1x_cpu_state *, struct acpicpu_pss *, int, -u_int64_t); +void k1x_acpi_states(struct k1x_cpu_state *, struct acpicpu_pss *, int); #endif void @@ -131,7 +130,7 @@ k1x_transition(struct k1x_cpu_state *cst void k1x_acpi_states(struct k1x_cpu_state *cstate, struct acpicpu_pss *pss, -int nstates, u_int64_t msr) +int nstates) { struct k1x_state state; int j, n; @@ -157,15 +156,12 @@ void k1x_acpi_init(struct k1x_cpu_state *cstate) { struct acpicpu_pss *pss; - u_int64_t msr; cstate->n_states = acpicpu_fetch_pss(&pss); if (cstate->n_states == 0) return; - msr = rdmsr(MSR_K1X_STATUS); - - k1x_acpi_states(cstate, pss, cstate->n_states, msr); + k1x_acpi_states(cstate, pss, cstate->n_states); return; }
small vr(4) patch.
Remove redundant call to vr_reset, it gets called in vr_init. -Bryan. Index: if_vr.c === RCS file: /cvs/src/sys/dev/pci/if_vr.c,v retrieving revision 1.113 diff -u -p -u -r1.113 if_vr.c --- dev/pci/if_vr.c 5 Jan 2012 19:08:25 - 1.113 +++ dev/pci/if_vr.c 28 Jan 2012 02:41:20 - @@ -1124,7 +1124,6 @@ vr_intr(void *arg) if (status & VR_ISR_TX_UNDERRUN) printf("%s: transmit underrun\n", sc->sc_dev.dv_xname); - vr_reset(sc); vr_init(sc); status = 0; }
k10+ pstate fix.
Check for valid ACPI _PSS object before doing the MSR read, fixes KVM brokeness as reported/tested by Walter Haidinger. It could also potentially avoid a general protection fault on theoretically real (..yet so far not witnessed) systems. I'm still open to doing the CPUID check, but as I explained in a previous mail it shouldn't be necessary. Testers, ok's and commit welcome. -Bryan. Index: arch/amd64/amd64/k1x-pstate.c === RCS file: /cvs/src/sys/arch/amd64/amd64/k1x-pstate.c,v retrieving revision 1.2 diff -u -p -u -r1.2 k1x-pstate.c --- arch/amd64/amd64/k1x-pstate.c 29 May 2011 12:29:28 - 1.2 +++ arch/amd64/amd64/k1x-pstate.c 13 Nov 2011 18:38:25 - @@ -75,7 +75,7 @@ struct k1x_cpu_state *k1x_current_state; void k1x_transition(struct k1x_cpu_state *, int); #if NACPICPU > 0 -void k1x_acpi_init(struct k1x_cpu_state *, u_int64_t); +void k1x_acpi_init(struct k1x_cpu_state *); void k1x_acpi_states(struct k1x_cpu_state *, struct acpicpu_pss *, int, u_int64_t); #endif @@ -154,14 +154,17 @@ k1x_acpi_states(struct k1x_cpu_state *cs } void -k1x_acpi_init(struct k1x_cpu_state *cstate, u_int64_t msr) +k1x_acpi_init(struct k1x_cpu_state *cstate) { struct acpicpu_pss *pss; + u_int64_t msr; cstate->n_states = acpicpu_fetch_pss(&pss); if (cstate->n_states == 0) return; + msr = rdmsr(MSR_K1X_STATUS); + k1x_acpi_states(cstate, pss, cstate->n_states, msr); return; @@ -172,12 +175,9 @@ k1x_acpi_init(struct k1x_cpu_state *csta void k1x_init(struct cpu_info *ci) { -#if NACPICPU > 0 - u_int64_t msr; -#endif - u_int i; struct k1x_cpu_state *cstate; struct k1x_state *state; + u_int i; if (setperf_prio > 1) return; @@ -189,8 +189,7 @@ k1x_init(struct cpu_info *ci) cstate->n_states = 0; #if NACPICPU > 0 - msr = rdmsr(MSR_K1X_STATUS); - k1x_acpi_init(cstate, msr); + k1x_acpi_init(cstate); #endif if (cstate->n_states) { printf("%s: %d MHz: speeds:", Index: arch/i386/i386/k1x-pstate.c === RCS file: /cvs/src/sys/arch/i386/i386/k1x-pstate.c,v retrieving revision 1.2 diff -u -p -u -r1.2 k1x-pstate.c --- arch/i386/i386/k1x-pstate.c 29 May 2011 12:29:28 - 1.2 +++ arch/i386/i386/k1x-pstate.c 13 Nov 2011 18:38:25 - @@ -75,7 +75,7 @@ struct k1x_cpu_state *k1x_current_state; void k1x_transition(struct k1x_cpu_state *, int); #if NACPICPU > 0 -void k1x_acpi_init(struct k1x_cpu_state *, u_int64_t); +void k1x_acpi_init(struct k1x_cpu_state *); void k1x_acpi_states(struct k1x_cpu_state *, struct acpicpu_pss *, int, u_int64_t); #endif @@ -154,14 +154,17 @@ k1x_acpi_states(struct k1x_cpu_state *cs } void -k1x_acpi_init(struct k1x_cpu_state *cstate, u_int64_t msr) +k1x_acpi_init(struct k1x_cpu_state *cstate) { struct acpicpu_pss *pss; + u_int64_t msr; cstate->n_states = acpicpu_fetch_pss(&pss); if (cstate->n_states == 0) return; + msr = rdmsr(MSR_K1X_STATUS); + k1x_acpi_states(cstate, pss, cstate->n_states, msr); return; @@ -172,12 +175,9 @@ k1x_acpi_init(struct k1x_cpu_state *csta void k1x_init(struct cpu_info *ci) { -#if NACPICPU > 0 - u_int64_t msr; -#endif - u_int i; struct k1x_cpu_state *cstate; struct k1x_state *state; + u_int i; if (setperf_prio > 1) return; @@ -189,8 +189,7 @@ k1x_init(struct cpu_info *ci) cstate->n_states = 0; #if NACPICPU > 0 - msr = rdmsr(MSR_K1X_STATUS); - k1x_acpi_init(cstate, msr); + k1x_acpi_init(cstate); #endif if (cstate->n_states) { printf("%s: %d MHz: speeds:",
vr(4) suspend/resume.
It seems to work, I'm not really sure if any laptops used rhine, but this makes ACPI suspend/resume work on one of my early ACPI-capable systems. Tested on: vr0 at pci0 dev 12 function 0 "VIA VT6105 RhineIII" rev 0x86: apic 2 int 19, address 00:19:5b:82:a1:e0 -Bryan. Index: if_vr.c === RCS file: /cvs/src/sys/dev/pci/if_vr.c,v retrieving revision 1.112 diff -u -p -u -r1.112 if_vr.c --- dev/pci/if_vr.c 8 Dec 2011 20:19:23 - 1.112 +++ dev/pci/if_vr.c 20 Dec 2011 01:02:56 - @@ -103,9 +103,11 @@ int vr_probe(struct device *, void *, void *); int vr_quirks(struct pci_attach_args *); void vr_attach(struct device *, struct device *, void *); +int vr_activate(struct device *, int); struct cfattach vr_ca = { - sizeof(struct vr_softc), vr_probe, vr_attach + sizeof(struct vr_softc), vr_probe, vr_attach, NULL, + vr_activate }; struct cfdriver vr_cd = { NULL, "vr", DV_IFNET @@ -120,6 +122,7 @@ void vr_rxtick(void *); int vr_intr(void *); void vr_start(struct ifnet *); int vr_ioctl(struct ifnet *, u_long, caddr_t); +void vr_chipinit(struct vr_softc *); void vr_init(void *); void vr_stop(struct vr_softc *); void vr_watchdog(struct ifnet *); @@ -567,27 +570,10 @@ vr_attach(struct device *parent, struct printf(": %s", intrstr); sc->vr_revid = PCI_REVISION(pa->pa_class); + sc->sc_pc = pa->pa_pc; + sc->sc_tag = pa->pa_tag; - /* -* Windows may put the chip in suspend mode when it -* shuts down. Be sure to kick it in the head to wake it -* up again. -*/ - if (pci_get_capability(pa->pa_pc, pa->pa_tag, - PCI_CAP_PWRMGMT, NULL, NULL)) - VR_CLRBIT(sc, VR_STICKHW, (VR_STICKHW_DS0|VR_STICKHW_DS1)); - - /* Reset the adapter. */ - vr_reset(sc); - - /* -* Turn on bit2 (MIION) in PCI configuration register 0x53 during -* initialization and disable AUTOPOLL. -*/ - pci_conf_write(pa->pa_pc, pa->pa_tag, VR_PCI_MODE, - pci_conf_read(pa->pa_pc, pa->pa_tag, VR_PCI_MODE) | - (VR_MODE3_MIION << 24)); - VR_CLRBIT(sc, VR_MIICMD, VR_MIICMD_AUTOPOLL); + vr_chipinit(sc); /* * Get station address. The way the Rhine chips work, @@ -697,6 +683,31 @@ fail_1: bus_space_unmap(sc->vr_btag, sc->vr_bhandle, size); } +int +vr_activate(struct device *self, int act) +{ + struct vr_softc *sc = (struct vr_softc *)self; + struct ifnet *ifp = &sc->arpcom.ac_if; + int rv = 0; + + switch (act) { + case DVACT_QUIESCE: + rv = config_activate_children(self, act); + break; + case DVACT_SUSPEND: + if (ifp->if_flags & IFF_RUNNING) + vr_stop(sc); + rv = config_activate_children(self, act); + break; + case DVACT_RESUME: + rv = config_activate_children(self, act); + if (ifp->if_flags & IFF_UP) + vr_init(sc); + break; + } + return (rv); +} + /* * Initialize the transmit descriptors. */ @@ -1296,6 +1307,29 @@ vr_start(struct ifnet *ifp) } void +vr_chipinit(struct vr_softc *sc) +{ + /* +* Make sure it isn't suspended. +*/ + if (pci_get_capability(sc->sc_pc, sc->sc_tag, + PCI_CAP_PWRMGMT, NULL, NULL)) + VR_CLRBIT(sc, VR_STICKHW, (VR_STICKHW_DS0|VR_STICKHW_DS1)); + + /* Reset the adapter. */ + vr_reset(sc); + + /* +* Turn on bit2 (MIION) in PCI configuration register 0x53 during +* initialization and disable AUTOPOLL. +*/ + pci_conf_write(sc->sc_pc, sc->sc_tag, VR_PCI_MODE, + pci_conf_read(sc->sc_pc, sc->sc_tag, VR_PCI_MODE) | + (VR_MODE3_MIION << 24)); + VR_CLRBIT(sc, VR_MIICMD, VR_MIICMD_AUTOPOLL); +} + +void vr_init(void *xsc) { struct vr_softc *sc = xsc; @@ -1309,7 +1343,7 @@ vr_init(void *xsc) * Cancel pending I/O and free all RX/TX buffers. */ vr_stop(sc); - vr_reset(sc); + vr_chipinit(sc); /* * Set our station address. Index: if_vrreg.h === RCS file: /cvs/src/sys/dev/pci/if_vrreg.h,v retrieving revision 1.29 diff -u -p -u -r1.29 if_vrreg.h --- dev/pci/if_vrreg.h 8 Dec 2011 20:19:24 - 1.29 +++ dev/pci/if_vrreg.h 20 Dec 2011 01:02:57 - @@ -481,6 +481,8 @@ struct vr_mii_frame { struct vr_softc { struct device sc_dev; /* generic device structure */ + pci_chipset_tag_t sc_pc; /* PCI registers info */ + pcitag_tsc_tag; void * sc_ih; /* interrupt handler cookie */ struct arpcom arpcom; /* interface info */ bus_space_ha
Re: Make Apple products somewhat usable
On Thu, Dec 01, 2011 at 11:32:14AM -0500, David Hill wrote: > For those who have an iProduct from Apple, you know it spams the dmesg > with uhids when plugged in. It also attacheds itself as a uaudio device > as well. > > This diff disables all that and allows the device as ugen, so we can at > least use gphoto2 to grab photos off it. > > I have added iPod Touch 2G and 4G, and the iPhone 4G. Anyone have > others? > > Test? Ok? I sent a similar diff for my iPod 4G back in July, but it makes more sense to add the rest. There is a short list here: http://theiphonewiki.com/wiki/index.php?title=Normal_Mode#Device_IDs -Bryan.
Re: enable aucat by default
On Fri, Oct 07, 2011 at 01:35:49PM -0600, Theo de Raadt wrote: > Really! Which of our platforms have no audio support at all? Can you list > them? That part was for effect, I was really hoping none existed. :-) -Bryan.
Re: enable aucat by default
I think if anything this strengthens the need for MD-specific rc scripts, for platforms with absolutely no audio support, at all, no PCI bus, no USB bus, and no fancy i2c audio controllers. Don't enable aucat + libsndio + audio(4). On every other supported platform, enable audio, including aucat. I can't believe so many people are freaking out about this, the daemon runs privsep.. it's minimal and doesn't listen on tcp by default. It is a base component that is required and implements functionallity that would typically be in the kernel anyway. -Bryan.
nc port scan, aka udp noise maker.
I think this was a feature, right? :-) Index: netcat.c === RCS file: /cvs/src/usr.bin/nc/netcat.c,v retrieving revision 1.101 diff -u -p -u -r1.101 netcat.c --- netcat.c21 Jun 2011 17:31:07 - 1.101 +++ netcat.c9 Sep 2011 07:01:05 - @@ -264,6 +264,8 @@ main(int argc, char *argv[]) errx(1, "cannot use -p and -l"); if (lflag && zflag) errx(1, "cannot use -z and -l"); + if (uflag && zflag) + errx(1, "cannot use -u and -z"); if (!lflag && kflag) errx(1, "must use -l with -k");
arp(8) verb omission
Index: arp.8 === RCS file: /cvs/src/usr.sbin/arp/arp.8,v retrieving revision 1.29 diff -u -p -u -r1.29 arp.8 --- src/usr.sbin/arp/arp.8 13 Mar 2011 21:24:20 - 1.29 +++ src/usr.sbin/arp/arp.8 1 Sep 2011 20:38:31 - @@ -65,7 +65,7 @@ may be specified by name or by number, using Internet dot notation. .Pp .Nm -can also used to send Wake on LAN (WoL) frames over a local +can also be used to send Wake on LAN (WoL) frames over a local Ethernet network to one or more hosts using their link layer (hardware) addresses. WoL functionality is generally enabled in a machine's BIOS
Re: UPDATE: usr.bin/less
On Tue, Aug 30, 2011 at 01:45:04PM -0400, Brynet wrote: > The version of less is in base is under a BSD equivalent license, the one > you're updating us to is.. GPLv3. > > -Bryan. Ah, nevermind. It's actually under a dual BSD-alike and GPLv3 license. Hmm. -Bryan.
Re: UPDATE: usr.bin/less
The version of less is in base is under a BSD equivalent license, the one you're updating us to is.. GPLv3. -Bryan.
Re: iPod Touch dmesg noise -> ugen(4).
On Tue, Jul 19, 2011 at 07:21:05PM -0400, Brynet wrote: > The userland stuff I found depends on libusb-1.x which currently lacks an > OpenBSD backend. > > So this is pretty much just a cosmetic change until we get that or people > stop > using libusb 1.x and use the widely ported libusb-0.x. > > So this can be ignored, but still a step in the right direction. > > -Bryan. I just noticed that the device supports PTP mode, so with the patch I can upload/download files to the device using the gphoto2 port. So I guess it would help for it to go in, any comments? -Bryan. Index: uaudio.c === RCS file: /cvs/src/sys/dev/usb/uaudio.c,v retrieving revision 1.92 diff -u -r1.92 uaudio.c --- uaudio.c3 Jul 2011 15:47:17 - 1.92 +++ uaudio.c19 Jul 2011 21:09:45 - @@ -187,6 +187,8 @@ UAUDIO_FLAG_BAD_ADC } , { { USB_VENDOR_ALTEC, USB_PRODUCT_ALTEC_ASC495 }, UAUDIO_FLAG_BAD_AUDIO }, + { { USB_VENDOR_APPLE, USB_PRODUCT_APPLE_IPOD_4G }, + UAUDIO_FLAG_BAD_AUDIO }, { { USB_VENDOR_CREATIVE, USB_PRODUCT_CREATIVE_EMU0202 }, UAUDIO_FLAG_VENDOR_CLASS | UAUDIO_FLAG_EMU0202 | UAUDIO_FLAG_DEPENDENT }, Index: usb_quirks.c === RCS file: /cvs/src/sys/dev/usb/usb_quirks.c,v retrieving revision 1.64 diff -u -r1.64 usb_quirks.c --- usb_quirks.c9 Mar 2011 17:03:06 - 1.64 +++ usb_quirks.c19 Jul 2011 21:09:45 - @@ -112,6 +112,7 @@ { USB_VENDOR_APC, USB_PRODUCT_APC_UPS,ANY,{ UQ_BAD_HID }}, { USB_VENDOR_APC, USB_PRODUCT_APC_UPS5G, ANY,{ UQ_BAD_HID }}, { USB_VENDOR_APPLE, USB_PRODUCT_APPLE_SPEAKERS, ANY,{ UQ_BAD_HID }}, + { USB_VENDOR_APPLE, USB_PRODUCT_APPLE_IPOD_4G,ANY,{ UQ_BAD_HID }}, { USB_VENDOR_BELKIN, USB_PRODUCT_BELKIN_F6C100, ANY,{ UQ_BAD_HID }}, { USB_VENDOR_BELKIN, USB_PRODUCT_BELKIN_F6C120, ANY,{ UQ_BAD_HID }}, { USB_VENDOR_BELKIN, USB_PRODUCT_BELKIN_F6C550AVR,ANY,{ UQ_BAD_HID }}, Index: usbdevs === RCS file: /cvs/src/sys/dev/usb/usbdevs,v retrieving revision 1.548 diff -u -r1.548 usbdevs --- usbdevs 8 Jul 2011 23:09:06 - 1.548 +++ usbdevs 19 Jul 2011 21:09:46 - @@ -877,6 +877,7 @@ product APPLE OPTMOUSE 0x0302 Optical mouse product APPLE ADB 0x1000 ADB device product APPLE SPEAKERS 0x1101 Speakers +product APPLE IPOD_4G 0x129e iPod Touch 4G product APPLE ETHERNET 0x1402 Ethernet A1277 product APPLE BLUETOOTH2 0x8205 Bluetooth product APPLE BLUETOOTH0x8300 Bluetooth
Re: iPod Touch dmesg noise -> ugen(4).
The userland stuff I found depends on libusb-1.x which currently lacks an OpenBSD backend. So this is pretty much just a cosmetic change until we get that or people stop using libusb 1.x and use the widely ported libusb-0.x. So this can be ignored, but still a step in the right direction. -Bryan.
Re: Synaptics touchpad
Still works for me, will the wscons backend for xf86-input-synaptics be sent upstream eventually? :-) pms0: Synaptics touchpad, firmware 7.2 .. .xinitrc/.xsession: xinput set-int-prop /dev/wsmouse0 "Synaptics Tap Action" 8 3 0 2 0 1 0 0 xinput set-int-prop /dev/wsmouse0 "Synaptics Edge Scrolling" 8 1 0 0 xinput set-int-prop /dev/wsmouse0 "Synaptics Two-Finger Scrolling" 8 0 0 syndaemon -d -t -K This enables scrolling in xterm etc and left button tapping. -Bryan.
Re: iPod Touch dmesg noise -> ugen(4).
On Tue, Jul 19, 2011 at 05:13:07PM -0400, Brynet wrote: > Whoops, got the order wrong in uaudio.. I think the rest is right. > > Thanks brad for noticing. > > -Bryan. Might help to attach it, eh? :-) Index: uaudio.c === RCS file: /cvs/src/sys/dev/usb/uaudio.c,v retrieving revision 1.92 diff -u -r1.92 uaudio.c --- uaudio.c3 Jul 2011 15:47:17 - 1.92 +++ uaudio.c19 Jul 2011 21:09:45 - @@ -187,6 +187,8 @@ UAUDIO_FLAG_BAD_ADC } , { { USB_VENDOR_ALTEC, USB_PRODUCT_ALTEC_ASC495 }, UAUDIO_FLAG_BAD_AUDIO }, + { { USB_VENDOR_APPLE, USB_PRODUCT_APPLE_IPOD_4G }, + UAUDIO_FLAG_BAD_AUDIO }, { { USB_VENDOR_CREATIVE, USB_PRODUCT_CREATIVE_EMU0202 }, UAUDIO_FLAG_VENDOR_CLASS | UAUDIO_FLAG_EMU0202 | UAUDIO_FLAG_DEPENDENT }, Index: usb_quirks.c === RCS file: /cvs/src/sys/dev/usb/usb_quirks.c,v retrieving revision 1.64 diff -u -r1.64 usb_quirks.c --- usb_quirks.c9 Mar 2011 17:03:06 - 1.64 +++ usb_quirks.c19 Jul 2011 21:09:45 - @@ -112,6 +112,7 @@ { USB_VENDOR_APC, USB_PRODUCT_APC_UPS,ANY,{ UQ_BAD_HID }}, { USB_VENDOR_APC, USB_PRODUCT_APC_UPS5G, ANY,{ UQ_BAD_HID }}, { USB_VENDOR_APPLE, USB_PRODUCT_APPLE_SPEAKERS, ANY,{ UQ_BAD_HID }}, + { USB_VENDOR_APPLE, USB_PRODUCT_APPLE_IPOD_4G,ANY,{ UQ_BAD_HID }}, { USB_VENDOR_BELKIN, USB_PRODUCT_BELKIN_F6C100, ANY,{ UQ_BAD_HID }}, { USB_VENDOR_BELKIN, USB_PRODUCT_BELKIN_F6C120, ANY,{ UQ_BAD_HID }}, { USB_VENDOR_BELKIN, USB_PRODUCT_BELKIN_F6C550AVR,ANY,{ UQ_BAD_HID }}, Index: usbdevs === RCS file: /cvs/src/sys/dev/usb/usbdevs,v retrieving revision 1.548 diff -u -r1.548 usbdevs --- usbdevs 8 Jul 2011 23:09:06 - 1.548 +++ usbdevs 19 Jul 2011 21:09:46 - @@ -877,6 +877,7 @@ product APPLE OPTMOUSE 0x0302 Optical mouse product APPLE ADB 0x1000 ADB device product APPLE SPEAKERS 0x1101 Speakers +product APPLE IPOD_4G 0x129e iPod Touch 4G product APPLE ETHERNET 0x1402 Ethernet A1277 product APPLE BLUETOOTH2 0x8205 Bluetooth product APPLE BLUETOOTH0x8300 Bluetooth
Re: iPod Touch dmesg noise -> ugen(4).
Whoops, got the order wrong in uaudio.. I think the rest is right. Thanks brad for noticing. -Bryan.
iPod Touch dmesg noise -> ugen(4).
I won an iPod, apparently there is some libusb crap out there now that may make things more useful from userland. By default, it attaches as a broken uaudio device with no mixer controls and a bunch of silly hid devices. Probably more needed for other iTurd. -Bryan. Index: uaudio.c === RCS file: /cvs/src/sys/dev/usb/uaudio.c,v retrieving revision 1.92 diff -u -r1.92 uaudio.c --- dev/usb/uaudio.c3 Jul 2011 15:47:17 - 1.92 +++ dev/usb/uaudio.c17 Jul 2011 00:04:11 - @@ -183,6 +183,8 @@ struct usb_devno uv_dev; int flags; } uaudio_devs[] = { + { { USB_VENDOR_APPLE, USB_PRODUCT_APPLE_IPOD_4G }, + UAUDIO_FLAG_BAD_AUDIO }, { { USB_VENDOR_ALTEC, USB_PRODUCT_ALTEC_ADA70 }, UAUDIO_FLAG_BAD_ADC } , { { USB_VENDOR_ALTEC, USB_PRODUCT_ALTEC_ASC495 }, Index: usb_quirks.c === RCS file: /cvs/src/sys/dev/usb/usb_quirks.c,v retrieving revision 1.64 diff -u -r1.64 usb_quirks.c --- dev/usb/usb_quirks.c9 Mar 2011 17:03:06 - 1.64 +++ dev/usb/usb_quirks.c17 Jul 2011 00:04:11 - @@ -112,6 +112,7 @@ { USB_VENDOR_APC, USB_PRODUCT_APC_UPS,ANY,{ UQ_BAD_HID }}, { USB_VENDOR_APC, USB_PRODUCT_APC_UPS5G, ANY,{ UQ_BAD_HID }}, { USB_VENDOR_APPLE, USB_PRODUCT_APPLE_SPEAKERS, ANY,{ UQ_BAD_HID }}, + { USB_VENDOR_APPLE, USB_PRODUCT_APPLE_IPOD_4G,ANY,{ UQ_BAD_HID }}, { USB_VENDOR_BELKIN, USB_PRODUCT_BELKIN_F6C100, ANY,{ UQ_BAD_HID }}, { USB_VENDOR_BELKIN, USB_PRODUCT_BELKIN_F6C120, ANY,{ UQ_BAD_HID }}, { USB_VENDOR_BELKIN, USB_PRODUCT_BELKIN_F6C550AVR,ANY,{ UQ_BAD_HID }}, Index: usbdevs === RCS file: /cvs/src/sys/dev/usb/usbdevs,v retrieving revision 1.548 diff -u -r1.548 usbdevs --- dev/usb/usbdevs 8 Jul 2011 23:09:06 - 1.548 +++ dev/usb/usbdevs 17 Jul 2011 00:04:12 - @@ -877,6 +877,7 @@ product APPLE OPTMOUSE 0x0302 Optical mouse product APPLE ADB 0x1000 ADB device product APPLE SPEAKERS 0x1101 Speakers +product APPLE IPOD_4G 0x129e iPod Touch 4G product APPLE ETHERNET 0x1402 Ethernet A1277 product APPLE BLUETOOTH2 0x8205 Bluetooth product APPLE BLUETOOTH0x8300 Bluetooth
Re: hostid 64-bit support
This might be useful.. but POSIX defines a hostid as 32-bit, however the use of 'long' makes it ambiguous. http://pubs.opengroup.org/onlinepubs/9699919799/functions/gethostid.html Not sure if anything actually would break if you bumped this, do you know if anything relies on it? or was it mainly intended for humans. Does it default to '0' on other systems as well? -Bryan.
Re: tcp keepalive diff #1
Here is sthen's first diff again that fixes keepalives, without that stray variable and with the space vs. tabs nits cleared up. It works well here, anyone willing to ok this for sthen? -Bryan. Index: netinet/tcp_input.c === RCS file: /cvs/src/sys/netinet/tcp_input.c,v retrieving revision 1.250 diff -u -p -u -r1.250 tcp_input.c --- netinet/tcp_input.c 13 May 2011 14:31:16 - 1.250 +++ netinet/tcp_input.c 21 Jun 2011 11:51:40 - @@ -961,8 +961,12 @@ findpcb: * Reset idle time and keep-alive timer. */ tp->t_rcvtime = tcp_now; - if (TCPS_HAVEESTABLISHED(tp->t_state)) - TCP_TIMER_ARM(tp, TCPT_KEEP, tcp_keepidle); + if (TCPS_HAVEESTABLISHED(tp->t_state)) { + if (tp->t_inpcb->inp_socket->so_options & SO_KEEPALIVE) + TCP_TIMER_ARM(tp, TCPT_KEEP, tcp_keepintvl); + else + TCP_TIMER_ARM(tp, TCPT_KEEP, tcp_keepidle); + } #ifdef TCP_SACK if (tp->sack_enable)
Re: tcp keepalive diff #2: always_keepalive
I haven't tested this yet, but it would be handy, I had to patch bitlbee to set the SO_KEEPALIVE option otherwise gtalk would keep reconnecting. -Bryan.
Re: Add SB800+ SMBus support to piixpm.
On Sat, May 21, 2011 at 10:32:01PM +0200, Mark Kettenis wrote: > > Date: Thu, 19 May 2011 19:09:36 -0400 > > From: Brynet > > > > Here it is a again with the magic relocated to piixreg.h. > > > > To clarify, if you have: > > piixpm0 at pci0 dev 20 function 0 "ATI SBx00 SMBus" > > > > Then check if the revision is >= 0x40, which is the relevant southbridge. > > > > If it works, you'll see pretty stuff like this:: > > spdmem0 at iic addr 0x50: 2GB DDR3 SDRAM PC3-10600 SO-DIMM > > .. > > Had a look at the chipset docs, and it took me some time to figure out > how AMD had hidden these registers away. So I wrote a somewhat less cryptic > comment that explains the code a bit better. I also noticed that there is > a register that indicates whether SMI is enabled or not. > > So here's a cleaned up diff. Does this still work for you? It does indeed, thanks for the help. -Bryan.
Re: AMD K10/K11 family frequency scaling.
Claudio wrote: > Since my new amd64 runs i386 at the moment I ported the code over. Cool, thanks. > According to md5 -tt it seems to work. :-) -Bryan.
Re: Add SB800+ SMBus support to piixpm.
Here it is a again with the magic relocated to piixreg.h. To clarify, if you have: piixpm0 at pci0 dev 20 function 0 "ATI SBx00 SMBus" Then check if the revision is >= 0x40, which is the relevant southbridge. If it works, you'll see pretty stuff like this:: spdmem0 at iic addr 0x50: 2GB DDR3 SDRAM PC3-10600 SO-DIMM .. -Bryan. Index: piixpm.c === RCS file: /cvs/src/sys/dev/pci/piixpm.c,v retrieving revision 1.35 diff -u -r1.35 piixpm.c --- piixpm.c9 Apr 2011 04:33:40 - 1.35 +++ piixpm.c19 May 2011 22:57:59 - @@ -114,50 +114,102 @@ { struct piixpm_softc *sc = (struct piixpm_softc *)self; struct pci_attach_args *pa = aux; - struct i2cbus_attach_args iba; - pcireg_t base, conf; + pcireg_t conf; + bus_space_handle_t pm_ioh; + u_int8_t smben_reg[2]; + bus_addr_t base; pci_intr_handle_t ih; const char *intrstr = NULL; + struct i2cbus_attach_args iba; + + if (PCI_VENDOR(pa->pa_id) == PCI_VENDOR_ATI && + PCI_PRODUCT(pa->pa_id) == PCI_PRODUCT_ATI_SBX00_SMB && + PCI_REVISION(pa->pa_class) >= 0x40) { + /* +* AMD SB800+ +* Power management reg: PMREG_BASE(index)/PMREG_BASE+1(data). +* SMB base addr + EN-bit: PMREG_BASE+SMB0EN(16), I/O mapped. +*/ + /* This could be mapped already, failure the only option? */ + if (bus_space_map(sc->sc_iot, SB800_PMREG_BASE, + SB800_PMREG_SIZE, 0, &pm_ioh) != 0) { + printf(": can't map i/o space\n"); + return; + } + + /* Read "SmBus0En" byte 1 */ + bus_space_write_1(sc->sc_iot, pm_ioh, 0, SB800_PMREG_SMB0EN); + smben_reg[0] = bus_space_read_1(sc->sc_iot, pm_ioh, 1); + if ((smben_reg[0] & SB800_SMB_EN) == 0) { + bus_space_unmap(sc->sc_iot, pm_ioh, SB800_PMREG_SIZE); + printf(": SMBus disabled\n"); + return; + } + /* Read "SmBus0En" byte 2 */ + bus_space_write_1(sc->sc_iot, pm_ioh, 0, SB800_PMREG_SMB0EN2); + smben_reg[1] = bus_space_read_1(sc->sc_iot, pm_ioh, 1); + + /* XXX: PM_Reg may be required by other devices. */ + bus_space_unmap(sc->sc_iot, pm_ioh, SB800_PMREG_SIZE); - /* Read configuration */ - conf = pci_conf_read(pa->pa_pc, pa->pa_tag, PIIX_SMB_HOSTC); - DPRINTF((": conf 0x%08x", conf)); - - if ((conf & PIIX_SMB_HOSTC_HSTEN) == 0) { - printf(": SMBus disabled\n"); - return; - } - - /* Map I/O space */ - sc->sc_iot = pa->pa_iot; - base = pci_conf_read(pa->pa_pc, pa->pa_tag, PIIX_SMB_BASE) & 0x; - if (PCI_MAPREG_IO_ADDR(base) == 0 || - bus_space_map(sc->sc_iot, PCI_MAPREG_IO_ADDR(base), - PIIX_SMB_SIZE, 0, &sc->sc_ioh)) { - printf(": can't map i/o space\n"); - return; - } - - sc->sc_poll = 1; - if ((conf & PIIX_SMB_HOSTC_INTMASK) == PIIX_SMB_HOSTC_SMI) { - /* No PCI IRQ */ + /* Construct the base address. */ + base = ((smben_reg[1] << SB800_SMB_BASE_SHIFT) | smben_reg[0]) & + SB800_SMB_BASE_MASK; + if (base == 0 || bus_space_map(sc->sc_iot, base, SB800_SMB_SIZE, + 0, &sc->sc_ioh)) { + printf(": can't map i/o space"); + return; + } + + /* XXX: IRQ.. */ printf(": SMI"); + sc->sc_poll = 1; } else { - if ((conf & PIIX_SMB_HOSTC_INTMASK) == PIIX_SMB_HOSTC_IRQ) { + /* Read configuration */ + conf = pci_conf_read(pa->pa_pc, pa->pa_tag, PIIX_SMB_HOSTC); + DPRINTF((": conf 0x%08x", conf)); + + if ((conf & PIIX_SMB_HOSTC_HSTEN) == 0) { + printf(": SMBus disabled\n"); + return; + } + + /* Map I/O space */ + sc->sc_iot = pa->pa_iot; + base = pci_conf_read(pa->pa_pc, pa->pa_tag, PIIX_SMB_BASE) & + 0x; + if (PCI_MAPREG_IO_ADDR(base) == 0 || + bus_space_map(sc->sc_iot, PCI_MAPREG_IO_ADDR(base), + PIIX_SMB_SIZE, 0, &sc->sc_ioh)) { + printf(": can't map i/o space\n"); + return; + } + + sc->sc_poll = 1; + switch ((conf & PIIX_SMB_HOSTC_INTMASK)) { + /* No PCI IRQ */ + case PIIX_SMB_HOSTC_SMI: + printf(": SMI"); + break; /* Install i
AMD K10/K11 family frequency scaling.
Adds support for family 10h/11h AMD processors, not sure if it's the best way to do this.. but it works and noticably lowers the temperatures reported by the die sensors. # sysctl hw.setperf=0 # echo "apmd_flags=\"-C\"" >> /etc/rc.conf.local Just putting it here again for testing, could also be easily adapted for amd64 running on i386, but I don't do that. "Works for me", tease me about my last name and I'll cut you. -Bryan. --- /dev/null Wed Feb 2 02:26:51 2011 +++ arch/amd64/amd64/k1x-pstate.c Wed Feb 2 02:26:49 2011 @@ -0,0 +1,215 @@ +/* $OpenBSD$ */ +/* + * Copyright (c) 2011 Bryan Steele + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + *notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + *notice, this list of conditions and the following disclaimer in the + *documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +/* AMD K10/K11 pstate driver */ + +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#include "acpicpu.h" + +#if NACPICPU > 0 +#include +#include +#endif + +extern int setperf_prio; + +#define MSR_K1X_LIMIT 0xc0010061 +#define MSR_K1X_CONTROL0xc0010062 +#define MSR_K1X_STATUS 0xc0010063 +#define MSR_K1X_CONFIG 0xc0010064 + +/* MSR_K1X_LIMIT */ +#define K1X_PSTATE_MAX_VAL(x) (((x) >> 4) & 0x7) +#define K1X_PSTATE_LIMIT(x)(((x)) & 0x7) + +/* MSR_K1X_CONFIG */ +#define K1X_FID(x) ((x) & 0x3f) +#define K1X_DID(x) (((x) >> 6) & 0x07) + +/* Maximum pstates */ +#define K1X_MAX_STATES 16 + +struct k1x_state { + int freq; + u_int8_t fid; +}; + +struct k1x_cpu_state { + struct k1x_state state_table[K1X_MAX_STATES]; + u_int n_states; +}; + +struct k1x_cpu_state *k1x_current_state; + +void k1x_transition(struct k1x_cpu_state *, int); + +#if NACPICPU > 0 +void k1x_acpi_init(struct k1x_cpu_state *, u_int64_t); +int k1x_acpi_states(struct k1x_cpu_state *, struct acpicpu_pss *, int, +u_int64_t); +#endif + +void +k1x_setperf(int level) +{ + u_int i = 0; + struct k1x_cpu_state *cstate; + + cstate = k1x_current_state; + + i = ((level * cstate->n_states) + 1) / 101; + if (i >= cstate->n_states) + i = cstate->n_states - 1; + + k1x_transition(cstate, i); +} + +void +k1x_transition(struct k1x_cpu_state *cstate, int level) { + u_int64_t msr; + int i, cfid, fid = cstate->state_table[level].fid; + + msr = rdmsr(MSR_K1X_STATUS); + cfid = K1X_FID(msr); + + if (fid == cfid) + return; + + if (cfid != fid) { + wrmsr(MSR_K1X_CONTROL, fid); + for (i = 0; i < 100; i++) { + msr = rdmsr(MSR_K1X_STATUS); + if (msr == fid) + break; + DELAY(100); + } + cfid = K1X_FID(msr); + } + if (cfid == fid) { + cpuspeed = cstate->state_table[level].freq; +#if 0 + (void)printf("Target: %d Current: %d Pstate: %d\n", + cstate->state_table[level].freq, + cpuspeed, cfid); +#endif + } +} + +#if NACPICPU > 0 + +int +k1x_acpi_states(struct k1x_cpu_state *cstate, struct acpicpu_pss *pss, +int nstates, u_int64_t msr) +{ + struct k1x_state state; + int j, k, n; + u_int32_t ctrl; + + k = -1; + + for (n = 0; n < cstate->n_states; n++) { + if ((K1X_FID(msr) == K1X_FID(pss[n].pss_status))) + k = n; + ctrl = pss[n].pss_ctrl; + state.fid = K1X_FID(ctrl); + state.freq = pss[n].pss_core_freq; + j = n; + while (j > 0 && cstate->state_table[j - 1].freq > state.freq) { + memcpy(&cstate->state_table[j], + &cstate->state_table[j - 1], +
Re: Add SB800+ SMBus support to piixpm.
This adds support for SB800+ and is a little easier to understand, but it probably isn't very pretty. Information obtained from AMD SB800 datasheets, 45481.pdf/45482.pdf/45483.pdf. Any comments? I'm not really sure if playing with non-pci I/O space in a PCI driver makes sense.. but there really isn't any choice with this chipset. -Bryan. Index: piixpm.c === RCS file: /cvs/src/sys/dev/pci/piixpm.c,v retrieving revision 1.35 diff -u -r1.35 piixpm.c --- piixpm.c9 Apr 2011 04:33:40 - 1.35 +++ piixpm.c19 May 2011 04:39:29 - @@ -114,50 +114,100 @@ { struct piixpm_softc *sc = (struct piixpm_softc *)self; struct pci_attach_args *pa = aux; - struct i2cbus_attach_args iba; - pcireg_t base, conf; + pcireg_t conf; + bus_space_handle_t pm_ioh; + u_int8_t smben_reg[2]; + bus_addr_t base; pci_intr_handle_t ih; const char *intrstr = NULL; + struct i2cbus_attach_args iba; + + if (PCI_VENDOR(pa->pa_id) == PCI_VENDOR_ATI && + PCI_PRODUCT(pa->pa_id) == PCI_PRODUCT_ATI_SBX00_SMB && + PCI_REVISION(pa->pa_class) >= 0x40) { + /* +* AMD SB800+ +* PM_Reg is defined as 0xcd6(index), 0xcd7(data). +* Base addr + enabled bit in PM_Reg, I/O mapped. +*/ + /* This could be mapped already, failure the only option? */ + if (bus_space_map(sc->sc_iot, 0xcd6, 2, 0, &pm_ioh) != 0) { + printf(": can't map i/o space\n"); + return; + } + + /* "SmBus0En" byte 1 */ + bus_space_write_1(sc->sc_iot, pm_ioh, 0, 0x2c); + smben_reg[0] = bus_space_read_1(sc->sc_iot, pm_ioh, 1); + if ((smben_reg[0] & 0x01) == 0) { + bus_space_unmap(sc->sc_iot, pm_ioh, 2); + printf(": SMBus disabled\n"); + return; + } + /* "SmBus0En" byte 2 */ + bus_space_write_1(sc->sc_iot, pm_ioh, 0, 0x2c + 1); + smben_reg[1] = bus_space_read_1(sc->sc_iot, pm_ioh, 1); + + /* XXX: PM_Reg may be mapped by other devices. */ + bus_space_unmap(sc->sc_iot, pm_ioh, 2); - /* Read configuration */ - conf = pci_conf_read(pa->pa_pc, pa->pa_tag, PIIX_SMB_HOSTC); - DPRINTF((": conf 0x%08x", conf)); - - if ((conf & PIIX_SMB_HOSTC_HSTEN) == 0) { - printf(": SMBus disabled\n"); - return; - } - - /* Map I/O space */ - sc->sc_iot = pa->pa_iot; - base = pci_conf_read(pa->pa_pc, pa->pa_tag, PIIX_SMB_BASE) & 0x; - if (PCI_MAPREG_IO_ADDR(base) == 0 || - bus_space_map(sc->sc_iot, PCI_MAPREG_IO_ADDR(base), - PIIX_SMB_SIZE, 0, &sc->sc_ioh)) { - printf(": can't map i/o space\n"); - return; - } - - sc->sc_poll = 1; - if ((conf & PIIX_SMB_HOSTC_INTMASK) == PIIX_SMB_HOSTC_SMI) { - /* No PCI IRQ */ + /* Retrieve base address. */ + base = ((smben_reg[1] << 8) | smben_reg[0]) & 0xffe0; + if (base == 0 || bus_space_map(sc->sc_iot, base, PIIX_SMB_SIZE, + 0, &sc->sc_ioh)) { + printf(": can't map i/o space"); + return; + } + + /* XXX: IRQ.. */ printf(": SMI"); + sc->sc_poll = 1; } else { - if ((conf & PIIX_SMB_HOSTC_INTMASK) == PIIX_SMB_HOSTC_IRQ) { + /* Read configuration */ + conf = pci_conf_read(pa->pa_pc, pa->pa_tag, PIIX_SMB_HOSTC); + DPRINTF((": conf 0x%08x", conf)); + + if ((conf & PIIX_SMB_HOSTC_HSTEN) == 0) { + printf(": SMBus disabled\n"); + return; + } + + /* Map I/O space */ + sc->sc_iot = pa->pa_iot; + base = pci_conf_read(pa->pa_pc, pa->pa_tag, PIIX_SMB_BASE) & + 0x; + if (PCI_MAPREG_IO_ADDR(base) == 0 || + bus_space_map(sc->sc_iot, PCI_MAPREG_IO_ADDR(base), + PIIX_SMB_SIZE, 0, &sc->sc_ioh)) { + printf(": can't map i/o space\n"); + return; + } + + sc->sc_poll = 1; + switch ((conf & PIIX_SMB_HOSTC_INTMASK)) { + /* No PCI IRQ */ + case PIIX_SMB_HOSTC_SMI: + printf(": SMI"); + break; /* Install interrupt handler */ - if (pci_intr_map(pa, &ih) == 0) { - intrstr = pci_intr_string(pa->pa_pc, ih); - sc->sc_i
Re: Filesystem Hierarchy Standard (FHS) and OpenBSD
Many UNIX systems include a hier(7) man page, OpenBSD is no exception. http://www.openbsd.org/cgi-bin/man.cgi?query=hier&manpath=OpenBSD+Current&format=html -Bryan.
Re: Synaptics touchpad
I noticed the following in my Xorg.0.log: Touchpad0: invalid pressure range. defaulting to 0 - 256 Touchpad0: invalid finger width range. defaulting to 0 - 16 Just curious if that's normal. -Bryan.
Re: Synaptics touchpad
Thanks to both of you, it works fairly well on my Acer Aspire 5551 laptop with Synaptics 7.2 firmware. What's the prefered method of configuration? xorg.conf/synclient or xinput? I use the following from .xintrc/.xsession: synclient TapButton1=1 synclient TapButton2=2 synclient TapButton3=3 synclient VertEdgeScroll=1 synclient VertTwoFingerScroll=0 syndaemon -d -t -K The sensitivity is a bit high for tap-to-click though, especially for buttons 2 and 3.. for bringing up cwm menu's, etc. It's still something that has been missing for a long time, the physical buttons are annoying to use on my laptop.. fortunately button 1 was implemented in the firmware (..and hence worked with xf86-input-mouse). -Bryan.
Re: Support for OpenGL on r600/r700. Testing required.
Thanks for sending this, it works on my Mobility Radeon HD 4250 (1002:9712). I updated to the most recent snapshot, updated my tree and applied the patch in your mail. You need to install the updated headers/includes, just copying radeon_drm.h to /usr/include/dev/pci/drm/ before make {obj,build} in lib/libdrm works. I also needed to change the following in libGL/dri/Makefile: -SUBDIR+= i810 i915 i965 radeon r200 r300 +SUBDIR+= i810 i915 i965 radeon r200 r300 r600 Also, if you're using a new version of xf86-video-radeon add --disable-kms to the configure command. Once that's done, you'll need the following ~/.drirc or /etc/drirc: Very cool. -Bryan.
Re: Add SB800+ SMBus support to piixpm.
On Sun, Apr 24, 2011 at 12:23:03AM -0400, Brynet wrote: > I sent this accidentally (..and mangled) a few minutes ago, so, here > it is again.. allows iic(4)/spdmem(4) to attach on my laptop. > > Works for me, let me know if there is a better way. > > -Bryan. Ignore this for now, I can't figure out how to do this by programming the PCI configuration space.. the chipset (..or BIOS) only allows indirect I/O by default. -Bryan.
Add SB800+ SMBus support to piixpm.
I sent this accidentally (..and mangled) a few minutes ago, so, here it is again.. allows iic(4)/spdmem(4) to attach on my laptop. Works for me, let me know if there is a better way. -Bryan. Index: dev/pci/piixpm.c === RCS file: /cvs/src/sys/dev/pci/piixpm.c,v retrieving revision 1.35 diff -u -r1.35 piixpm.c --- dev/pci/piixpm.c9 Apr 2011 04:33:40 - 1.35 +++ dev/pci/piixpm.c24 Apr 2011 03:16:31 - @@ -115,6 +115,7 @@ struct piixpm_softc *sc = (struct piixpm_softc *)self; struct pci_attach_args *pa = aux; struct i2cbus_attach_args iba; + u_int8_t base_en_low, base_en_high; pcireg_t base, conf; pci_intr_handle_t ih; const char *intrstr = NULL; @@ -123,19 +124,33 @@ conf = pci_conf_read(pa->pa_pc, pa->pa_tag, PIIX_SMB_HOSTC); DPRINTF((": conf 0x%08x", conf)); - if ((conf & PIIX_SMB_HOSTC_HSTEN) == 0) { - printf(": SMBus disabled\n"); - return; - } - /* Map I/O space */ sc->sc_iot = pa->pa_iot; - base = pci_conf_read(pa->pa_pc, pa->pa_tag, PIIX_SMB_BASE) & 0x; - if (PCI_MAPREG_IO_ADDR(base) == 0 || - bus_space_map(sc->sc_iot, PCI_MAPREG_IO_ADDR(base), - PIIX_SMB_SIZE, 0, &sc->sc_ioh)) { - printf(": can't map i/o space\n"); - return; + if (PCI_VENDOR(pa->pa_id) == PCI_VENDOR_ATI && + PCI_PRODUCT(pa->pa_id) == PCI_PRODUCT_ATI_SBX00_SMB && + PCI_REVISION(pa->pa_class) >= 0x40) { + /* SB800+ SMB configuration.. pio macros avoidable? */ + outb(0xcd6, 0x2c); + base_en_low = inb(0xcd7); + outb(0xcd6, 0x2d); + base_en_high = inb(0xcd7); + base = ((base_en_high << 8) | base_en_low) & 0xffe0; + bus_space_map(sc->sc_iot, PCI_MAPREG_IO_ADDR(base), + PIIX_SMB_SIZE, 0, &sc->sc_ioh); + } else { + if ((conf & PIIX_SMB_HOSTC_HSTEN) == 0) { + printf(": SMBus disabled\n"); + return; + } + + base = pci_conf_read(pa->pa_pc, pa->pa_tag, + PIIX_SMB_BASE) & 0x; + if (PCI_MAPREG_IO_ADDR(base) == 0 || + bus_space_map(sc->sc_iot, PCI_MAPREG_IO_ADDR(base), + PIIX_SMB_SIZE, 0, &sc->sc_ioh)) { + printf(": can't map i/o space\n"); + return; + } } sc->sc_poll = 1;
[no subject]
Index: dev/pci/piixpm.c === RCS file: /cvs/src/sys/dev/pci/piixpm.c,v retrieving revision 1.35 diff -u -r1.35 piixpm.c --- dev/pci/piixpm.c9 Apr 2011 04:33:40 - 1.35 +++ dev/pci/piixpm.c24 Apr 2011 03:16:31 - @@ -115,6 +115,7 @@ struct piixpm_softc *sc = (struct piixpm_softc *)self; struct pci_attach_args *pa = aux; struct i2cbus_attach_args iba; + u_int8_t base_en_low, base_en_high; pcireg_t base, conf; pci_intr_handle_t ih; const char *intrstr = NULL; @@ -123,19 +124,33 @@ conf = pci_conf_read(pa->pa_pc, pa->pa_tag, PIIX_SMB_HOSTC); DPRINTF((": conf 0x%08x", conf)); - if ((conf & PIIX_SMB_HOSTC_HSTEN) == 0) { - printf(": SMBus disabled\n"); - return; - } - /* Map I/O space */ sc->sc_iot = pa->pa_iot; - base = pci_conf_read(pa->pa_pc, pa->pa_tag, PIIX_SMB_BASE) & 0x; - if (PCI_MAPREG_IO_ADDR(base) == 0 || - bus_space_map(sc->sc_iot, PCI_MAPREG_IO_ADDR(base), - PIIX_SMB_SIZE, 0, &sc->sc_ioh)) { - printf(": can't map i/o space\n"); - return; + if (PCI_VENDOR(pa->pa_id) == PCI_VENDOR_ATI && + PCI_PRODUCT(pa->pa_id) == PCI_PRODUCT_ATI_SBX00_SMB && + PCI_REVISION(pa->pa_class) >= 0x40) { + /* SB800+ SMB configuration.. pio macros avoidable? */ + outb(0xcd6, 0x2c); + base_en_low = inb(0xcd7); + outb(0xcd6, 0x2d); + base_en_high = inb(0xcd7); + base = ((base_en_high << 8) | base_en_low) & 0xffe0; + bus_space_map(sc->sc_iot, PCI_MAPREG_IO_ADDR(base), + PIIX_SMB_SIZE, 0, &sc->sc_ioh); + } else { + if ((conf & PIIX_SMB_HOSTC_HSTEN) == 0) { + printf(": SMBus disabled\n"); + return; + } + + base = pci_conf_read(pa->pa_pc, pa->pa_tag, + PIIX_SMB_BASE) & 0x; + if (PCI_MAPREG_IO_ADDR(base) == 0 || + bus_space_map(sc->sc_iot, PCI_MAPREG_IO_ADDR(base), + PIIX_SMB_SIZE, 0, &sc->sc_ioh)) { + printf(": can't map i/o space\n"); + return; + } } sc->sc_poll = 1;
Re: Important bge(4) diff to test!
Robert wrote: > Hello, > > The following diff is really important because on some machines > bge(4) gets detached because of ASPM. The following diff is also > in the latest snapshots but you can also compile a kernel with it. > So if you have a bge(4) please update/compile a kernel and get > back to me if it works or fails in some way. > > Thank you! No regression here, although I'm not sure if my controller is capable of ASPM. bge0 at pci2 dev 0 function 0 "Broadcom BCM57780" rev 0x01, BCM57780 A1 (0x57780001): apic 4 int 16 (irq 7), address 88:ae:1d:0e:3a:76 -Bryan.
Re: kernel/6501: CPU frequency scaling on AMD K10/Acer Aspire laptop.
> On 10/27/10 00:05, gn...@cvs.openbsd.org wrote: >> Thank you very much for your problem report. >> It has the internal identification `kernel/6501'. >> The individual assigned to look at your >> report is: bugs. >> >>> Category: kernel >>> Responsible:bugs >>> Synopsis: CPU frequency scaling on AMD K10/Acer Aspire laptop. >>> Arrival-Date: Wed Oct 27 04:00:01 GMT 2010 >> > > Hi again, > > I realize now this was essentially a feature request, but I'm wondering > if anyone is playing with this at all? > > Alternatively, is anyone aware of some published documentation that > outlines the differences between AMD K8/K10 PowerNow/Cool'n'Quiet? > > What changes are required to implement support for this on OpenBSD? > > Thanks, > -Bryan. Hello, once again, I finally sat down this weekend and started reading the datasheets (K10/11 BKDG) and I believe I've got things working for these processors. It's not perfect, but it works, at least manually using sysctl hw.setperf and watching km0.temp and visually seeing performance changes in several apps like openssl/glxgears. I don't believe I have the delay right after the MSR write, and maybe the developers would have preferred k8-powernow.c be extended. If you want to silence the noise, change the #ifdef 1 to 0 in k1x_transition().. You can see a list of speeds gathered from ACPI tables using by grepping for cpu0 in the dmesg. I've only tested on a dual-core laptop, not tested on systems with 2 physical processors (..with multiple cores each). Any opinions? -Bryan. --- /dev/null Mon Jan 31 00:06:58 2011 +++ arch/amd64/amd64/k1x-pstate.c Sun Jan 30 23:53:38 2011 @@ -0,0 +1,254 @@ +/* $OpenBSD$ */ +/* + * Copyright (c) 2011 Brynet + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + *notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + *notice, this list of conditions and the following disclaimer in the + *documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +/* AMD K10/K11 pstate driver */ + +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#include "acpicpu.h" + +#if NACPICPU > 0 +#include +#include +#endif + +extern int setperf_prio; +extern int perflevel; + +#define MSR_K1X_LIMIT 0xc0010061 +#define MSR_K1X_CONTROL0xc0010062 +#define MSR_K1X_STATUS 0xc0010063 +#define MSR_K1X_CONFIG 0xc0010064 + +/* MSR_K1X_LIMIT */ +#define K1X_PSTATE_MAX_VAL(x) (((x) >> 4) & 0x7) +#define K1X_PSTATE_LIMIT(x)(((x)) & 0x7) + +/* MSR_K1X_CONFIG */ +#define K1X_FID(x) ((x) & 0x3f) +#define K1X_DID(x) (((x) >> 6) & 0x07) + +/* Maximum pstates */ +#define K1X_MAX_STATES 16 + +struct k1x_state { + int freq; + u_int8_t fid; +}; + +struct k1x_cpu_state { + struct k1x_state state_table[K1X_MAX_STATES]; + u_int n_states; +}; + +struct k1x_cpu_state *k1x_current_state; + +void k1x_transition(struct k1x_cpu_state *, int); + +#if NACPICPU > 0 +void k1x_acpi_init(struct k1x_cpu_state *, u_int64_t); +void k1x_acpi_pss_changed(struct acpicpu_pss *, int); +int k1x_acpi_states(struct k1x_cpu_state *, struct acpicpu_pss *, int, +u_int64_t); +#endif + +void +k1x_setperf(int level) +{ + u_int i = 0; + struct k1x_cpu_state *cstate; + + cstate = k1x_current_state; + + i = ((level * cstate->n_states) + 1) / 101; + if (i >= cstate->n_states) + i = cstate->n_states - 1; + + k1x_transition(cstate, i); +} + +void +k1x_transition(struct k1x_cpu_state *cstate, int level) { + u_int64_t msr; + int i, cfid, fid = cstate->state_table[level].fid; + + msr = rdmsr(MSR_K1X_STATUS); + cfid = K1X_FID(m
Re: http gzip support for ftp
> If someone can find a server that is broken and barfs on getting a > request version greater than it expects Marcus Glocker's nostromo has this problem, among others, I can't seem to get any feedback out of him though. ;-) It rejects HTTP/1.2, even though that's nonexistent.. a server must accept it, as you explained. As for gzip support for ftp(1), that's awesome, definately a requirement for a modern HTTP client.. minimalistic or otherwise. -Bryan.
Re: add Radeon HD 4250 to sys/dev/pci/pcidevs
Nigel wrote: > Hi, > > You might be interested in other patches for the 880 chip set. See OpenBSD X11 > mail lists. > > ATI/AMD driver for 880G chipset > > http://marc.info/?l=openbsd-x11&m=128975076103964&w=2 > > > I am considering attempting updating to xf86-video-ati v6.13.2 driver, as I > have > another missing device HD 545v in my laptop, works with basic vesa driver but > would like the correct resolution. > > Regards > > Nigel Taylor > Hi, I sent in a patch for my ATI Radeon HD 4250 (..shared with others, so just called 4200) and it was applied, product ID is 0x9712 but same chip family. http://marc.info/?l=openbsd-tech&m=128568931313974&w=2 http://www.openbsd.org/cgi-bin/cvsweb/src/sys/dev/pci/drm/radeon_drv.c.diff?r1=1.51;r2=1.50 In my case it works with the older driver, but 2D accel was sluggish and XVideo doesn't work at all. Once you have the relevant drm bits adapted, the newer driver compiles/works fine.. no dri module built yet though. I'm not sure why the driver in Xenocara is so old, but I think it has to do with broken multihead on some cards. $ ftp http://ftp.x.org/pub/individual/driver/xf86-video-ati-6.13.2.tar.gz $ tar xvzf xf86-video-ati-6.13.2.tar.gz $ cd xf86-video-ati-6.13.2; ./configure --prefix=/usr/X11R6 --sysconfdir=/etc --mandir=/usr/X11R6/man --with-xorg-module-dir=/usr/X11R6/lib/modules $ make; sudo make install This obviously trashes the existing driver. -Bryan.
Re: PCI power management diff
My Acer Aspire 5551 works perfectly now with this, thanks. -Bryan.
Re: vr(4) diff
Mark Kettenis wrote: > Here's an attempt to fix a potential MCLGETI issue with vr(4) similar > to what I recently fixed fro re(4). Unfortunately I don't have any > vr(4) hardware myself, so I need some hep testing this. > > Things to look for are: > > 1. Does this diff have any effect on throughput (packets/s, bits/s). > > 2. Does this fix any problems with the interface if you blast it with >packets? > > 3. Does livelock mitigation actualy work? > > Thanks, > > Mark Hi Mark, Did you receive any feedback for this? is there an easy way to replicate the problems others are seeing, as my systems seem stable. Using this patch doesn't seem to cause any noticeable performance regressions. -Bryan.
Re: sync adduser with installer
Paul de Weerd wrote: > Welcome, to the real world. Users are incapable of just about > anything. Except for fucking things up, they're extremely good at > that. Live with it. So wait, are you for or against creating lone groups for individual users? All I was trying to communicate is that the exposure of a users home directory is something that must be dealt with by system administrators or preferably by the individual users themselves. By default on OpenBSD, home directories are world readable, the installer (..if directed) uses user(8) tools to create a default account, this adds the user to the shared 'users' group. This is expected behaviour for people who use the user(8) tools directly, all users can read each others files and if they're in the same group can even allow write access for shared work. It seems people using adduser(8) are accustomed to having world readable files, and no shared group by default. People should really take a look at the default permissions in /home on a case-by-case basis (..who is on the system, how many users) and choose permissions that make sense.. educating users about the your system defaults and how to change them also makes a lot of sense. Changing behaviour of either command is quite likely to wake a few people up, but, that's life.. they will have to deal with it. :-) -Bryan.
Re: sync adduser with installer
Daniel wrote: > Same here. Really, I'm surprised that anyone is using the 'users' > group at all these days, especially on OpenBSD. If all users are in > the same group, group permissions are no different from world > permissions. I believe the real problem here is that you're allowing users on your systems that are incapable of properly setting the group/world permissions of their home directories. It's also a possibility that you are derelict in your duties as a systems administrator. No cookies for you. -Bryan.
Re: [PATCH] adding a usbdevs vendor/product.
Hmm, Someone mentioned the vendor name is a bit verbose, so, how's this instead? Index: dev/usb/usbdevs === RCS file: /cvs/src/sys/dev/usb/usbdevs,v retrieving revision 1.515 diff -u -r1.515 usbdevs --- dev/usb/usbdevs 29 Aug 2010 15:28:11 - 1.515 +++ dev/usb/usbdevs 3 Oct 2010 01:51:26 - @@ -541,6 +541,7 @@ vendor AMIT0x18c5 AMIT vendor QCOM0x18e8 Qcom vendor LINKSYS30x1915 Linksys +vendor AVAGO 0x192f Avago vendor MEINBERG0x1938 Meinberg Funkuhren vendor ZTE 0x19d2 ZTE Inc. vendor QUANTA 0x1a32 Quanta @@ -949,6 +950,8 @@ /* Audio-Technica products */ product AUDIOTECHNICA ATCHA4USB0x0009 ATC-HA4USB USB headphone +/* Avago Technologies products */ +product AVAGO MOUSE0x Optical Mouse /* Avance Logic products */ product AVANCELOGIC USBAUDIO 0x0100 USB Audio Speaker
[PATCH] adding a usbdevs vendor/product.
I got a fancy optical mouse the other day, has all these purty lights inside it. :-) The vendor info gleamed from linux-usb.org and the official usb.org list. -Bryan. Index: dev/usb/usbdevs === RCS file: /cvs/src/sys/dev/usb/usbdevs,v retrieving revision 1.515 diff -u -r1.515 usbdevs --- dev/usb/usbdevs 29 Aug 2010 15:28:11 - 1.515 +++ dev/usb/usbdevs 3 Oct 2010 01:51:26 - @@ -541,6 +541,7 @@ vendor AMIT0x18c5 AMIT vendor QCOM0x18e8 Qcom vendor LINKSYS30x1915 Linksys +vendor AVAGO 0x192f Avago Technologies, Pte. vendor MEINBERG0x1938 Meinberg Funkuhren vendor ZTE 0x19d2 ZTE Inc. vendor QUANTA 0x1a32 Quanta @@ -949,6 +950,8 @@ /* Audio-Technica products */ product AUDIOTECHNICA ATCHA4USB0x0009 ATC-HA4USB USB headphone +/* Avago Technologies products */ +product AVAGO MOUSE0x Optical Mouse /* Avance Logic products */ product AVANCELOGIC USBAUDIO 0x0100 USB Audio Speaker
[PATCH] Add product name for Radeon Mobility 4200 series cards.
Morning, I recently picked up a new (..well, to me) Acer Aspire 5551 notebook which includes an ATI Mobility Radeon 4250, it seems all 42xx mobility series cards use the same product ID so the following patch just calls them all "4200". In the latest amd64 snapshot the xf86-video-ati driver is a little out of date, doesn't entirely recognize this family yet. So, drm(4) is never opened.. but modsetting works and I get a nice widescreen desktop (1366x768) on a 15.6" 16:9 screen. If I go beyond the unsupported and build 6.13.1 (..with non-kms fix from git) it opens drm(4) and 2D/Xv start working.. but there doesn't appear to be a r600 DRI module included yet. http://brynet.biz.tm/~brynet/dmesg_acer.txt http://brynet.biz.tm/~brynet/new_acer_dmesg.txt Apologies, It's my first computer from this decade. :-) Index: dev/pci/pcidevs === RCS file: /cvs/src/sys/dev/pci/pcidevs,v retrieving revision 1.1572 diff -u -r1.1572 pcidevs --- dev/pci/pcidevs 21 Sep 2010 11:41:34 - 1.1572 +++ dev/pci/pcidevs 27 Sep 2010 07:53:02 - @@ -1355,6 +1355,7 @@ product ATI RADEON_HD3300 0x9614 Radeon HD 3300 product ATI RADEON_HD4200_HDA 0x970f Radeon HD 4200 HD Audio product ATI RADEON_HD4200 0x9710 Radeon HD 4200 +product ATI RADEON_HD4200_M0x9712 Mobility Radeon HD 4200 product ATI RADEON_HD2600_HDA 0xaa08 Radeon HD 2600 HD Audio product ATI RS690M_HDA 0xaa10 RS690M HD Audio product ATI RADEON_HD3870_HDA 0x0018 Radeon HD 3870 HD Audio Index: dev/pci/drm/radeon_drv.c === RCS file: /cvs/src/sys/dev/pci/drm/radeon_drv.c,v retrieving revision 1.50 diff -u -r1.50 radeon_drv.c --- dev/pci/drm/radeon_drv.c8 Sep 2010 17:19:15 - 1.50 +++ dev/pci/drm/radeon_drv.c27 Sep 2010 07:53:03 - @@ -524,6 +524,8 @@ CHIP_RV770|RADEON_NEW_MEMMAP}, {PCI_VENDOR_ATI, PCI_PRODUCT_ATI_RADEON_HD4200, CHIP_RS880|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, + {PCI_VENDOR_ATI, PCI_PRODUCT_ATI_RADEON_HD4200_M, + CHIP_RS880|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, {0, 0, 0} };
Re: MCLGETI support for xl(4)
This is nice, there are some minor issues with the diff. * The xl_fill_rx_ring function body uses spaces instead of tabs. * Around -1125,11 +1138,11, you insert a few tabs unnecessarily. * ..and around -1195,12 +1182,14, within the while loop, spaces. * For the header patch, more spaces. I am seeing some neat 'netstat -m' values when using this patch on an older P3 system, memory utilization goes down to 7/8%, reaching only 20% when transferring a file over SSH. :-) Without the patch it goes immediately to 25% after 'ifconfig xl0 address'. Actually seems to perform better even, although perhaps that's my mind playing tricks on me. Thanks, -Bryan.
Re: Backout mclgeti for vr(4).
Evening, I have two machines with vr(4) interfaces running 4.7, and I can't seem to find any problem running ping -f against them. vr0 at pci0 dev 12 function 0 "VIA VT6105 RhineIII" rev 0x86: apic 2 int 19 (irq 10), address 00:19:5b:82:a1:e0 vr0 at pci0 dev 16 function 0 "VIA Rhine/RhineII" rev 0x06: irq 9, address 00:50:ba:bd:89:4d Is it possible that this bug only effects a few models? -Bryan.
Re: xargs -0 and -L
Atte Peltomdki wrote: > Where did you find it btw? I can't find 2008 edition anywhere that > wouldn't require registration and whatnot. Hi, http://www.opengroup.org/onlinepubs/9699919799/ http://www.opengroup.org/onlinepubs/9699919799/mindex.html http://www.opengroup.org/onlinepubs/9699919799/download/ Firefox/IE7/Chrome/etc search bar thingy: http://mycroft.mozdev.org/search-engines.html?name=ieee+2008 -Bryan.
Re: How can I get my driver bug fix committed?
Hi, There could be many reasons it hasn't been awknoledged, perhaps the developer is trying to find the optimal way to fix it? or maybe it effects multiple chipsets? It's also quite possible that he hasn't had a chance to review the patch yet, try reporting the bug via sendbug (..so it gets tracked). If you cannot use sendbug(1), it's possible to generate a template using the '-P' argument.. which you can then paste into your prefered MTA and mail it to 'gn...@openbsd.org', just use a blank subject line. Or, look at the "AUTHORS" section in ral(4). -Bryan.
Re: mixerctl(1) to sysctl(8); a simpler interface
Thomas Pfaff wrote: > What I wanted was a simpler way of controlling the basic features of the > device. Yes, but what you failed to comprehend is that these devices are very complex, it is not easy to "define" the basic features of the device because there are many devices in different vendor-imposed configurations (..which may or may not be easily detectable). I think Jacob Meuser has done a good job at picking some sane defaults, in the end there will be some devices where this is inadequate.. fortunately you can manipulate mixerctl(1) to fit your specialized needs and save your changes in /etc/mixerctl.conf. He is more then willing to accept sane patches, but what they've been trying to explain to you is.. "It's a helluva' lot simpler than other free operating systems". Take care. -Bryan.
Re: FW: Broadcom BCM5787
Daniel Rapp wrote: > Anybody have any ideas ? otherwise I will have to send the machine back.. > .. > acpi at bios0 function 0x0 not configured > pcibios0 at bios0: rev 3.0 @ 0xf/0xdc04 > pcibios0: PCI IRQ Routing Table rev 1.0 @ 0xfda50/416 (24 entries) > pcibios0: bad IRQ table checksum > pcibios0: PCI BIOS has 25 Interrupt Routing table entries > pcibios0: PCI Exclusive IRQs: 5 7 10 11 > pcibios0: no compatible PCI ICU found > pcibios0: Warning, unable to fix up PCI interrupt routing > pcibios0: PCI bus #2 is the last bus > ... Hi, What about trying ACPI? those pcibios warnings don't look very pleasant.. boot> boot -c UKC> disable apm UKC> quit Perhaps that may work. -Brynet.