This page describes the installation and configuration of the RedHat 7.2 Linux distribution on an IBM ThinkPad A30p notebook.
As base for this document I looked at the following pages:
For more information about Linux on laptops you should check out http://www.linux-laptop.net/.
| System Information | |
| Model Number | 2653-66U |
| Serial Number | 78-R0334 |
| BIOS version | 1.03c (1EET48WW) |
| Processor | Pentium III, 1.2GHz |
| RAM | 2 x 512MB, Module type: PC133 Non-parity SDRAM (2 SODIMM sockets) |
| Display | 15" 1600x1200 TFT-active matrix (FlexView) |
| Graphics Subsystem | ATI Mobility RADEON, 32MB 3D Graphics, MPEG2 video playback acceleration, Video-in/video-out (NTSC/PAL) |
| Hard Disk | 48GB EIDE |
| CD-RW/DVD | Toshiba DVD-ROM SD-R2002, ATAPI CD/DVD-ROM drive 4X/4X/24X/6X |
| Sound | Intel ICH3 |
| Input device | TrackPoint w/3 buttons |
| External ports | AC adapter jack, Infrared, Modem (RJ-11), S-Video in/out jacks, Speaker/headphone (stereo), Serial, UltraPort Connector, Universal serial bus (USB) (2), Ethernet (RJ-45), Line in, IEEE 1394 (Non-powered), Expansion connector, VGA Display, Microphone jack, Parallel (EPP) UtraBay Plus, UltraBay 2000, PCMCIA (two type-II or one type-III) |
| Communications subsystem | Communication Daughter Card (CDC) Bluetooth |
| Communications detail | |
| Ethernet | Ethernet controller: Intel Corp. 82801CAM (ICH3) PRO/100 VE (LOM) Ethernet Controller (rev 41) (Re-package of EtherExpress Pro 100) |
| Modem | Modem: Intel Corp. 82801CA/CAM AC'97 Modem (rev 01) (Apparent re-package of Lucent Winmodem) |
| 802.11b Wireless | Network controller: Harris Semiconductor Prism 2.5 Wavelan chipset (rev 01) (Based on prism2 chipset) |
| Bluetooth | USB-Bluetooth based device |
| InfraRed | Serial-type IrDA based device (shows up like COM2) |
First and foremost, I'm fairly certain that installing Linux on your laptop will void its warranty. I was very disappointed to discover that it is (at the time of this writing) apparently no longer possible to purchase a new IBM laptop without paying the Windows(tm) tax. So, know what you're getting into: installing Linux a new IBM A30p laptop might disqualify you for hardware (and certainly software) support.
That said, I like the ReiserFS a lot, so I planned my RedHat install to use this primarily as my filesystem. Unfortunately, RedHat does not yet have this filesystem built into their pre-built and installed kernels, so you cannot select this as a filesystem type during install. I partitioned my HD with the intent to move my root filesystem to a reiserfs-formatted partition as soon as I had the chance to recompile my kernel. Speciflcally, I used fdisk to initially repartition my HD as follows:
| hda1 | 14.7MB | /boot | ext3 |
| hda2 | 1011MB | swap | swap |
| hda3 | 1078MB | IBM Thinkpad Hibernation part. | |
| hda4 | 42.6GB | Extended | |
| hda5 | 38GB | /foo | ext3 |
| hda6 | 4.6GB | / | ext3 |
The actual install of RedHat 7.2 went just peachy. RedHat installs are nothing if not easy. For a boot loader, I chose to use GRUB (installed in the MBR, of course).
After installing the OS, I applied RedHat's update RPMs and downloaded the (at the time) latest kernel and pcmcia-cs tar-balls. I did the following to move my root partition over to reiserfs:
After taking all these steps, my hard disk is partitioned as follows:
| hda1 | 14.7MB | /boot | ext3 |
| hda2 | 1011MB | swap | swap |
| hda3 | 1078MB | IBM Thinkpad Hibernation part. | |
| hda4 | 42.6GB | Extended | |
| hda5 | 42.6GB | / | reiserfs |
The USB controller in this laptop is a UHCI controller. Kernel parameters to get this working are:
Note: Compile USB device drivers as necessary (eg. the USB-Bluetooth driver)
I'm not sure what hardware is involved with the infrared in this laptop (or even if it has a controlling chip). However, I've recently had the need to use it for syncing with my Palm. To get it to work, I added the following configuration options to my kernel config:
Note that although I'm using the IR port simply as a serial device, the developers of the IRDA code apparently wrote the code with the goal of treating it as a network device. Probably because of this, the drivers themselves tend to behave like network devices. (Most notably in the need to 'ifconfig up' the device before any data will flow!)
To make my life easier, I added the following lines to my /etc/modules.conf:
# IRDA stuff alias irda0 ircomm pre-install irda0 /usr/sbin/irattach /dev/ttyS1
I also ensure that '/sbin/ifconfig irda0 up' is run on start up. Again, until you do this, no data will flow.
I had no need to attempt to use PPP or other networking protocols over my IR port, and therefore can't report on their functionality with this laptop. However, since the hardware appears to work flawlessly in simple serial mode, I would assume that using the IR like a network device should work as well on this system as it does on any other.
The IEEE 1394 controller in this laptop is the OHCI-1394 type. Kernel parameters to get it working are:
Note: Compile IEEE 1394 device drivers as necessary
I have successfully accessed a IEEE1394 disk using this hardware. (Note that IEEE1394 disks show up as scsi disks, so be sure to compile support for this into your kernel or as a module.)
The CardBus (PCMCIA) controllers in this laptop are "Ricoh Co Ltd RL5c478 (rev a0)" devices. The in-kernel PCMCIA controller drivers (yenta-socket) work fine from the get-go to get these devices working. However, I have found that more cards tend to be supported better with the pcmcia-cs package. To get your kernel working with the pcmcia-cs package, do the following:
Note: Additional configuration of pcmcia cards may be required. Check the pcmcia-cs documentation and mailing lists for details.
The sound chip in this laptop is a "Multimedia audio controller: Intel Corp. 82801CA/CAM AC'97 Audio (rev 01)", which turns out to be an ICH3 chip. It worked from the install time. The following are the compile options you need to get sound working:
Also put "alias sound-slot-0 i810_audio" in /etc/modules.conf to make this module auto-load when necessary.
The modem in this beast shows up as "Modem: Intel Corp. 82801CA/CAM AC'97 Modem (rev 01)". According to http://www.linuxcare.com/, though, this is apparently a re-package of the Lucent DSP winmodem. However, there appears to be enough difference between the modem in this laptop and the Lucent DSP winmodem that the ltmodem drivers for the DSP winmodem do not work with this laptop.
There is hope, however. Apparently Smart Link Ltd. is maintaining a driver that works with this modem! Their site is fairly easy to navigate; just be sure you download the driver for the MiniPCI modem (and NOT the usb modem). Stefan Raspel has reported success with version 2.7.9. I tried version 2.6.16, and it almost worked flawlessly. I imagine once the company publicly releases a later version, the problem I saw will disappear (repetition of some numbers while dialing).
As far as installing the driver goes, if you're familiar with the standard 'make; make install' way of installing new software, you should be able to follow Smart Link's instructions just fine. 'make install' will take care of setting up symbolic links and changes to /etc/modules.conf for you.
The ethernet adapter in this laptop shows up as "Ethernet controller: Intel Corp. 82801CAM (ICH3) PRO/100 VE (LOM) Ethernet Controller (rev 41)". This is based on the same chipset as the EtherExpress Pro 100, and worked from install time. The following are the compile options you need to get it going:
If you're using a modularized ethernet driver (like I am), put the following in your /etc/modules.conf:
alias eth0 eepro100
Note: I've been getting reports that the eepro100 driver included in recent kernels has some issues that cause it not to function correctly with this chip. Intel provides a driver on their web site that might work around these problems. If you download and compile this module, change the above modules.conf line to:
alias eth0 e100
Further Note: I've also heard that the intel-supplied driver tends to lose track of the ethernet after a suspend/resume cycle. (This can be fixed by unloading and reloading the kernel module that is the driver.) If you'd rather not have to deal with this, Scyld Computing Corporation is maintaining a driver that survives a suspend/resume cycle. The only problem I've heard with this problem is a possible minor performance issue. This driver and its documentation can be found here: http://www.scyld.com/network/eepro100.html
The 802.11b wireless card in this machine shows up as "Network controller: Harris Semiconductor Prism 2.5 Wavelan chipset (rev 01)". This is based off the prism2 chipset supported by the linux-wlan(tm) Project sponsored by AbsoluteValue Systems. I downloaded version 0.1.14 of the driver.
Note: Starting from kernel 2.4.19, there is an 'orninco_pci' driver included in the kernel source which will initialize and send data through this device. I do not recommend you use it, however, as the driver has serious problems if you try to push a lot of data. Stick with the linux-wlan project: It works well.
In order to get everything working correctly, I did the following:
I set my my card to use 40-bit WEP encryption on my Ad-Hoc home network. It seems to work fine, and I can get transfers of up to about 550KB/s (11MB half-duplex) reliably. Note: It's important the wlan rc startup script runs before ifconfig tries to bring up the device!
The bluetooth device in this laptop is connected to the system via a USB controller. This means that in order to use bluetooth, you need the following kernel options. Also, there are multiple usb-bluetooth drivers. The following are the ones I used:
After compiling and installing the hci_usb module, pushing the bluetooth "on" button (located below and to the center on the LCD assembly) generates system log messages indicating that the device seems to get configured and assigned a USB id correctly. I currently do not have any bluetooth devices with which to experiment further. I suspect more configuration might be necessary. If you are able to verify that the bluetooth works correctly, please let me know.
The RedHat install was fairly nice, in that it recognized the CD-RW for what it was and automagically set up the proper boot options, symbolic links, configuration files, etc. for CD Burning.
However, in case you aren't using RedHat or plan on recompiling your kernel, the CD-Writing-HOWTO does a good job of explaining how to set up this IDE burner as a pseudo-SCSI device so that cdrecord and associated front-ends will talk to it.
In a nutshell, you basically need to do the following:
hdc=ide-scsiand reinstall the boot loader.
/sbin/modprobe ide-scsi
rm /dev/cdrecorder ln -sf /dev/scd0 /dev/cdrecorder(and don't forget to redefine /dev/cdrom, /dev/dvd, etc...)
rm /dev/cdrom rm /dev/dvd ln -sf /dev/scd0 /dev/cdrom ln -sf /dev/scd0 /dev/dvd
When recompiling your kernel, make sure you include the following options:
I recommend using X-CD-Roast for all your burning needs.
Suspend (FN+F4) works fine, as long as there are no PCMCIA cards inserted at the time.
The following information on getting hibernation to work was sent to me by Torsten Sievers:
I've gotten hibernation working on my A30p, but it was a pain in the ass...
I created a FAT32-partition right after my win-2000 partition (hda1, which I have reduced to 4GB). The new partition (hda3) has to be the size RAM+VIDEORAM+something (so roughly 160 MB for 128 MB ram).
After this I downloaded the hibernation utility disk from IBM. It's a 300 KB DOS executable. (It does NOT work under win-2000; It works only under win95/98 and DOS). The win-2000 version of the hibernation utility doesn't work at all. (It freezes on installation and breaks win-2000.)
After downloading the DOS version to an old PC with Win98 and a floppy disk drive (my A30p doesn't have one), I ran the program and created the bootdisk. On the disk are 3 files. I copied all 3 files to the new FAT32-partition and booted from a win98 CD. I started the exec (phdisk.exe) and created a hibernation file on the partition.
From now on hibernation works fine, as long as I'm not using DRI under linux. Every time I use DRI the system hangs as soon as I switch consoles (most of the time from X to textmode or back).
But this problem is independent from hibernation.
I was able to verify that the above procedure works (using a Bootable DOS CD from the FreeDOS project, and a FAT16 partition instead of FAT32). My machine has 1024MB RAM + 32MB VideoRAM, so I made my FAT16 partition about 1080MB. After the hibernation file was created, I have about 22MB free on that partition.
Also, unless you can get hibernation going, do NOT set up the bios to automatically switch from suspend to hibernation mode after a given amount of time suspended (this will lock up your machine when you try to come out of suspend if you've hit this timeout).
The graphics chip in this laptop shows up as a "VGA compatible controller: ATI Technologies Inc Radeon Mobility M6 LY". Automatic configuration of everything worked OK for me from the start. However, depending on what options you compile into your kernel, starting up X may or may not work. :)
As a rule, do NOT compile in support for framebuffer devices (VESA or otherwise), but do compile in modular support for the radeon DRI stuff. (You could compile this directly in, but if you intend to mess around with video capture/playback through the S-VID ports, you will probably find it more convenient to have this modularized):
Note: When starting X and sometimes after a suspend/resume cycle, the screen flickers whenever there is mouse activity. Also, sometimes X or other programs with access the screen directly will cause the LCD to go blank. If this occurs with you, you're probably in the wrong LCD/CRT/CRT+LCD mode. Hit FN+F7 a few times until this behavior goes away. Also, check out the Eratta section for info on how to take care of this problem permanently.
Here also is a copy of my version 4.x /etc/X11/XF86Config.
This model of Thinkpad has several 'special function' keys on its keyboard. To use these under X, put the following in /etc/X11/Xmodmap (or in your local copy of ~/.xmodmaprc and ensure that 'xmodmap ~/.xmodmaprc' gets executed when you start your window manager):
! Mail keycode 236 = F13 ! Home keycode 178 = F14 ! Search keycode 229 = F15 ! Zoom in keycode 230 = F16 ! Zoom out keycode 231 = F17 ! Close window keycode 232 = F18 ! Page left keycode 234 = F19 ! Page right keycode 233 = F20 ! Fn key keycode 227 = F21
In order to use the 'Thinkpad' button, you'll need to use the tpb utility. See the Useful Utilities section for details.
The following information on getting the S-Video Out port to work was sent to me by Stefan Raspl:
I spent many hours on getting it to work, and this is not easy as ATI does not provide necessary support for this as some Macrovision licensing issues are involed here. Until ATI gets the legal stuff done (if ever), there is no 'official' support for this feature.
Apparently the problem lies in that ATI is legally required to ensure that whatever is played over the TV-Out has to contain the Macrovision anti-piracy (read: anti-consumer) signals as well. If they offered an open-source driver supporting TV-Out, it would be trivial to remove the Macrovision signal. However, this still doesn't explain why they don't offer at least a binary driver like NVidia does....
But there are still 3 ways to do it:
- You get the Gatos development build and install that. Requires XFree recompile and since it is the development tree of Gatos, things might get unstable. Didn't try it as it is way too much hassle.
- Use mplayer: That's right, mplayer claims to support the TV-Out on Radeons. Via 'mplayer -vo vesa:vidix', the TV-Out should display the respective movie. I tried it way too long and could not get it to work. If you still want to give it a shot, read through the manual, sections TV-Out, vesa and vidix. Would be a good solution for people that only want to watch movies on TV, though.
- I finally found a tool on the web that does the job: Go to http://www.stud.uni-hamburg.de/users/lennart/projects/atitvout/index.html and download and install atitvout. After that, 'atitvout -f t' will do the job. Note that this will switch off the LCD and activates TV-Out instead. Switch back to LCD display via 'atitvout -f l' (deactivating TV-Out).
But notice: In any of these cases, you must:
- turn the A30p on with the TV-Out already connected. A reboot does not suffice to initialize the necessary parts in the Radeon M6!
- set XFree to a resolution of 1024x768 or lower. Higher resolutions will not work! Color depth is apparently not an issue here, I set it up to 24bpp and it worked (32bpp were not possible due to Xfree) I used Xfree 4.2 for all these tests.
Thanks for that info, Stefan! I have not yet had the chance to verify that the above information is correct, but do remember having troubles getting the atitvout utility to work, most likely because my resolution is normally set too high.
You might find the following programs handy for doing Nifty Things with your Thinkpad:
Users of this model of laptop have noticed the following problems which look like they might be hardware/driver related:
Stefan Raspl wrote me with the following solution to this problem:
This problem is apparently fixed in a BIOS update (to version 1.14). If you've still got windows installed on the machine, you can download a windows utility from IBM's web site and use this to update your BIOS. (Apparently the windows BIOS update is relatively easy to find on IBM's site.) If you've nuked your windows partition (like I have), you can find a boot-floppy version of the update utility by navigating the site as follows:
I was able to successfully run the DOS exectuable BIOS update utility by extracting the bootdisk on a Windoze box, copying the files thereon onto my FAT16 partition, then booting using a FreeDOS bootable CD. I used a Beta7 CD; YMMV.
I have not yet been able or had the time to experiment with the following:
For reference purposes, the following are the current state of several of my system configuration files. Please let me know if you'd like to see any more of these listed here:
For the curious, the result of an "lspci":
00:00.0 Host bridge: Intel Corp. 82830 830 Chipset Host Bridge (rev 02) 00:01.0 PCI bridge: Intel Corp. 82830 830 Chipset AGP Bridge (rev 02) 00:1d.0 USB Controller: Intel Corp. 82801CA/CAM USB (Hub (rev 01) 00:1d.1 USB Controller: Intel Corp. 82801CA/CAM USB (Hub (rev 01) 00:1d.2 USB Controller: Intel Corp. 82801CA/CAM USB (Hub (rev 01) 00:1e.0 PCI bridge: Intel Corp. 82801BAM/CAM PCI Bridge (rev 41) 00:1f.0 ISA bridge: Intel Corp. 82801CAM ISA Bridge (LPC) (rev 01) 00:1f.1 IDE interface: Intel Corp. 82801CAM IDE U100 (rev 01) 00:1f.3 SMBus: Intel Corp. 82801CA/CAM SMBus (rev 01) 00:1f.5 Multimedia audio controller: Intel Corp. 82801CA/CAM AC'97 Audio (rev 01) 00:1f.6 Modem: Intel Corp. 82801CA/CAM AC'97 Modem (rev 01) 01:00.0 VGA compatible controller: ATI Technologies Inc Radeon Mobility M6 LY 02:00.0 CardBus bridge: Ricoh Co Ltd RL5c478 (rev a0) 02:00.1 CardBus bridge: Ricoh Co Ltd RL5c478 (rev a0) 02:00.2 FireWire (IEEE 1394): Ricoh Co Ltd R5C522 IEEE 1394 Controller 02:02.0 Network controller: Harris Semiconductor Prism 2.5 Wavelan chipset (rev 01) 02:08.0 Ethernet controller: Intel Corp. 82801CAM (ICH3) PRO/100 VE (LOM) Ethernet Controller (rev 41)
And for the insatiably curious, the result of an "lspci -v":
00:00.0 Host bridge: Intel Corp. 82830 830 Chipset Host Bridge (rev 02)
Subsystem: IBM ThinkPad T23 (2647-4MG) or A30p (2653-64G)
Flags: bus master, fast devsel, latency 0
Memory at d0000000 (32-bit, prefetchable) [size=256M]
Capabilities: [40] #09 [0105]
Capabilities: [a0] AGP version 2.0
00:01.0 PCI bridge: Intel Corp. 82830 830 Chipset AGP Bridge (rev 02) (prog-if 00 [Normal decode])
Flags: bus master, 66Mhz, fast devsel, latency 96
Bus: primary=00, secondary=01, subordinate=01, sec-latency=64
I/O behind bridge: 00003000-00003fff
Memory behind bridge: c0100000-c01fffff
Prefetchable memory behind bridge: e0000000-e7ffffff
00:1d.0 USB Controller: Intel Corp. 82801CA/CAM USB (Hub (rev 01) (prog-if 00 [UHCI])
Subsystem: IBM ThinkPad T23 (2647-4MG) or A30p (2653-64G)
Flags: bus master, medium devsel, latency 0, IRQ 9
I/O ports at 1800 [size=32]
00:1d.1 USB Controller: Intel Corp. 82801CA/CAM USB (Hub (rev 01) (prog-if 00 [UHCI])
Subsystem: IBM ThinkPad T23 (2647-4MG) or A30p (2653-64G)
Flags: bus master, medium devsel, latency 0, IRQ 11
I/O ports at 1820 [size=32]
00:1d.2 USB Controller: Intel Corp. 82801CA/CAM USB (Hub (rev 01) (prog-if 00 [UHCI])
Subsystem: IBM ThinkPad T23 (2647-4MG) or A30p (2653-64G)
Flags: bus master, medium devsel, latency 0, IRQ 6
I/O ports at 1840 [size=32]
00:1e.0 PCI bridge: Intel Corp. 82801BAM/CAM PCI Bridge (rev 41) (prog-if 00 [Normal decode])
Flags: bus master, fast devsel, latency 0
Bus: primary=00, secondary=02, subordinate=08, sec-latency=64
I/O behind bridge: 00004000-00008fff
Memory behind bridge: c0200000-cfffffff
Prefetchable memory behind bridge: e8000000-f00fffff
00:1f.0 ISA bridge: Intel Corp. 82801CAM ISA Bridge (LPC) (rev 01)
Flags: bus master, medium devsel, latency 0
00:1f.1 IDE interface: Intel Corp. 82801CAM IDE U100 (rev 01) (prog-if 8a [Master SecP PriP])
Subsystem: IBM ThinkPad T23 (2647-4MG) or A30p (2653-64G)
Flags: bus master, medium devsel, latency 0, IRQ 6
I/O ports at 01f0 [size=8]
I/O ports at 03f4
I/O ports at 0170 [size=8]
I/O ports at 0374
I/O ports at 1860 [size=16]
Memory at 40000000 (32-bit, non-prefetchable) [size=1K]
00:1f.3 SMBus: Intel Corp. 82801CA/CAM SMBus (rev 01)
Subsystem: IBM ThinkPad T23 (2647-4MG) or A30p (2653-64G)
Flags: medium devsel, IRQ 5
I/O ports at 1880 [size=32]
00:1f.5 Multimedia audio controller: Intel Corp. 82801CA/CAM AC'97 Audio (rev 01)
Subsystem: IBM ThinkPad T23 (2647-4MG) or A30p (2653-64G)
Flags: bus master, medium devsel, latency 0, IRQ 5
I/O ports at 1c00 [size=256]
I/O ports at 18c0 [size=64]
00:1f.6 Modem: Intel Corp. 82801CA/CAM AC'97 Modem (rev 01) (prog-if 00 [Generic])
Subsystem: IBM: Unknown device 0227
Flags: medium devsel, IRQ 5
I/O ports at 2400 [size=256]
I/O ports at 2000 [size=128]
01:00.0 VGA compatible controller: ATI Technologies Inc Radeon Mobility M6 LY (prog-if 00 [VGA])
Subsystem: IBM ThinkPad A30p (2653-64G)
Flags: bus master, stepping, fast Back2Back, 66Mhz, medium devsel, latency 66, IRQ 9
Memory at e0000000 (32-bit, prefetchable) [size=128M]
I/O ports at 3000 [size=256]
Memory at c0100000 (32-bit, non-prefetchable) [size=64K]
Expansion ROM at [disabled] [size=128K]
Capabilities: [58] AGP version 2.0
Capabilities: [50] Power Management version 2
02:00.0 CardBus bridge: Ricoh Co Ltd RL5c478 (rev a0)
Subsystem: IBM ThinkPad A30p (2653-64G)
Flags: bus master, medium devsel, latency 64, IRQ 9
Memory at c0202000 (32-bit, non-prefetchable) [size=4K]
Bus: primary=02, secondary=03, subordinate=05, sec-latency=176
I/O window 0: 00000000-00000003
I/O window 1: 00000000-00000003
16-bit legacy interface ports at 0001
02:00.1 CardBus bridge: Ricoh Co Ltd RL5c478 (rev a0)
Subsystem: IBM ThinkPad A30p (2653-64G)
Flags: bus master, medium devsel, latency 64, IRQ 5
Memory at c0203000 (32-bit, non-prefetchable) [size=4K]
Bus: primary=02, secondary=06, subordinate=08, sec-latency=176
I/O window 0: 00000000-00000003
I/O window 1: 00000000-00000003
16-bit legacy interface ports at 0001
02:00.2 FireWire (IEEE 1394): Ricoh Co Ltd R5C522 IEEE 1394 Controller (prog-if 10 [OHCI])
Subsystem: IBM ThinkPad A30p (2653-64G)
Flags: bus master, medium devsel, latency 64, IRQ 6
Memory at c0201000 (32-bit, non-prefetchable) [size=2K]
Capabilities: [dc] Power Management version 2
02:02.0 Network controller: Harris Semiconductor Prism 2.5 Wavelan chipset (rev 01)
Subsystem: Action Tec Electronics Inc: Unknown device 0406
Flags: bus master, medium devsel, latency 64, IRQ 6
Memory at f0000000 (32-bit, prefetchable) [size=4K]
Capabilities: [dc] Power Management version 2
02:08.0 Ethernet controller: Intel Corp. 82801CAM (ICH3) PRO/100 VE (LOM) Ethernet Controller (rev 41)
Subsystem: IBM ThinkPad A30p (2653-64G)
Flags: bus master, medium devsel, latency 66, IRQ 10
Memory at c0200000 (32-bit, non-prefetchable) [size=4K]
I/O ports at 8000 [size=64]
Capabilities: [dc] Power Management version 2
Thanks go to the following people, who contributed information that has been incorporated into this page: