The attached patch enables flashing on the Iwill DK8-HTX board. Basically, it configures the SuperIO to set the right GPIO pins, so write protection is disabled.
Signed-off-by: Mondrian Nuessle nuessle@uni-mannheim.de ---
This patch should help those people that try to use flashrom on an iwill dk8_htx board, with or without biossavior, on factory BIOS or Linuxbios.
Regards, Mondrian
On Wed, Apr 25, 2007 at 04:33:25PM +0200, Mondrian Nuessle wrote:
This patch should help those people that try to use flashrom on an iwill dk8_htx board, with or without biossavior, on factory BIOS or Linuxbios.
Cool, could one more person test it so we can commit it?
//Peter
Hi, Peter,
These are two things I did when I use this patch (however it works on my board):
1 add a option to the flashrom command line, such as: -m iwill:dk8_htx It seems that flashrom rely on some information of LinuxBIOS in CMOS, so before the first running of LinuxBIOS, there's nothing in CMOS for LinuxBIOS, I have to add this option to make flashrom know what my mainboard is.
2 I add a new entry in the table which is a little different from Mondrian's. And I think both of these two entry are needed for different dk8-htx mainboards.
{ 0x1022, 0x7468, 0x1022, 0x7468, 0x0000, 0x0000, 0x0000, 0x0000, "iwill", "dk8_htx", "IWILL DK8-HTX", board_iwill_dk8htx },
We will appreciate if you can add this patch into the official svn. It helps a lot!
Best, Ning
On 4/25/07, Peter Stuge stuge-linuxbios@cdy.org wrote:
On Wed, Apr 25, 2007 at 04:33:25PM +0200, Mondrian Nuessle wrote:
This patch should help those people that try to use flashrom on an iwill dk8_htx board, with or without biossavior, on factory BIOS or Linuxbios.
Cool, could one more person test it so we can commit it?
//Peter
-- linuxbios mailing list linuxbios@linuxbios.org http://www.linuxbios.org/mailman/listinfo/linuxbios
On Wed, Apr 25, 2007 at 05:02:11PM -0400, Ning (Michael) Qu wrote:
Hi, Peter,
These are two things I did when I use this patch (however it works on my board):
1 add a option to the flashrom command line, such as: -m iwill:dk8_htx It seems that flashrom rely on some information of LinuxBIOS in CMOS, so before the first running of LinuxBIOS, there's nothing in CMOS for LinuxBIOS, I have to add this option to make flashrom know what my mainboard is.
2 I add a new entry in the table which is a little different from Mondrian's. And I think both of these two entry are needed for different dk8-htx mainboards.
{ 0x1022, 0x7468, 0x1022, 0x7468, 0x0000, 0x0000, 0x0000, 0x0000, "iwill", "dk8_htx", "IWILL DK8-HTX", board_iwill_dk8htx },
We will appreciate if you can add this patch into the official svn. It helps a lot!
Best, Ning
There are two full sets of pci ids possible in that structure.
A full set consists of: * vendor id * device id * subsystem/card vendor id * subsystem/card vendor id
There are two sets here, to ensure a good board match, as vendors tend to do awkward things.
These two full sets of ids have no other purpose but to correctly and uniquely match a board. The board specific code goes on to try to find the device it needs to talk to itself.
Are you sure that the subsystem ids of the device matched by 0x1022, 0x7468 are 0x1022, 0x7468 too?
Please just find 2 different devices from your motherboard that have subsystem ids that differ from the main ids. That way, you don't need to provide the board name as an argument.
Yes, once linuxbios is installed, it'll try to match on name, but please also make correct use of subsystem ids under linuxbios.
Luc Verhaegen.
On Wed, Apr 25, 2007 at 11:27:21PM +0200, Luc Verhaegen wrote:
There are two full sets of pci ids possible in that structure.
If all this talk about PCI IDs is too much please send lspci -v output and we'll try to cobble something together. :)
Thanks!
//Peter
Hi,
You are right, I just take a quick look at the source code of LinuxBIOS and I agree that name should not be needed. But I am just not sure about what subsystem id is? Is it the one in PCI configuration registers?
Best, Ning
On 4/25/07, Luc Verhaegen libv@skynet.be wrote:
On Wed, Apr 25, 2007 at 05:02:11PM -0400, Ning (Michael) Qu wrote:
Hi, Peter,
These are two things I did when I use this patch (however it works on my board):
1 add a option to the flashrom command line, such as: -m iwill:dk8_htx It seems that flashrom rely on some information of LinuxBIOS in CMOS, so before the first running of LinuxBIOS, there's nothing in CMOS for LinuxBIOS, I have to add this option to make flashrom know what my mainboard is.
2 I add a new entry in the table which is a little different from Mondrian's. And I think both of these two entry are needed for different dk8-htx mainboards.
{ 0x1022, 0x7468, 0x1022, 0x7468, 0x0000, 0x0000, 0x0000, 0x0000, "iwill", "dk8_htx", "IWILL DK8-HTX", board_iwill_dk8htx },
We will appreciate if you can add this patch into the official svn. It helps a lot!
Best, Ning
There are two full sets of pci ids possible in that structure.
A full set consists of:
- vendor id
- device id
- subsystem/card vendor id
- subsystem/card vendor id
There are two sets here, to ensure a good board match, as vendors tend to do awkward things.
These two full sets of ids have no other purpose but to correctly and uniquely match a board. The board specific code goes on to try to find the device it needs to talk to itself.
Are you sure that the subsystem ids of the device matched by 0x1022, 0x7468 are 0x1022, 0x7468 too?
Please just find 2 different devices from your motherboard that have subsystem ids that differ from the main ids. That way, you don't need to provide the board name as an argument.
Yes, once linuxbios is installed, it'll try to match on name, but please also make correct use of subsystem ids under linuxbios.
Luc Verhaegen.
On Wed, Apr 25, 2007 at 05:40:08PM -0400, Ning (Michael) Qu wrote:
You are right, I just take a quick look at the source code of LinuxBIOS and I agree that name should not be needed. But I am just not sure about what subsystem id is? Is it the one in PCI configuration registers?
Yep, it shold be in lspci -v output.
You'll have to look at the list to find a good device to use for uniquely identifying the mainboard or just send all of the output to the list for suggestions from others.
//Peter
Hi, Peter,
The following is the result from my machine, could you help me identify this machine, thanks very much!
00:06.0 PCI bridge: Advanced Micro Devices [AMD] AMD-8111 PCI (rev 07) (prog-if 00 [Normal decode]) Flags: bus master, 66MHz, medium devsel, latency 64 Bus: primary=00, secondary=01, subordinate=01, sec-latency=64 I/O behind bridge: 00001000-00001fff Memory behind bridge: fd000000-fe0fffff Prefetchable memory behind bridge: 88000000-880fffff Capabilities: [c0] HyperTransport: Slave or Primary Interface Capabilities: [f0] HyperTransport: Interrupt Discovery and Configuration
00:07.0 ISA bridge: Advanced Micro Devices [AMD] AMD-8111 LPC (rev 05) Subsystem: Advanced Micro Devices [AMD] Unknown device 2b80 Flags: bus master, 66MHz, medium devsel, latency 0
00:07.1 IDE interface: Advanced Micro Devices [AMD] AMD-8111 IDE (rev 03) (prog-if 8a [Master SecP PriP]) Subsystem: Advanced Micro Devices [AMD] AMD-8111 IDE [Quartet] Flags: bus master, medium devsel, latency 32 [virtual] Memory at 000001f0 (32-bit, non-prefetchable) [disabled] [size=8] [virtual] Memory at 000003f0 (type 3, non-prefetchable) [disabled] [size=1] [virtual] Memory at 00000170 (32-bit, non-prefetchable) [disabled] [size=8] [virtual] Memory at 00000370 (type 3, non-prefetchable) [disabled] [size=1] I/O ports at 3420 [size=16]
00:07.2 SMBus: Advanced Micro Devices [AMD] AMD-8111 SMBus 2.0 (rev 02) Subsystem: Advanced Micro Devices [AMD] Unknown device 2b80 Flags: medium devsel, IRQ 19 I/O ports at 3400 [size=32]
00:07.3 Bridge: Advanced Micro Devices [AMD] AMD-8111 ACPI (rev 05) Subsystem: Advanced Micro Devices [AMD] Unknown device 2b80 Flags: medium devsel
00:0a.0 PCI bridge: Advanced Micro Devices [AMD] AMD-8131 PCI-X Bridge (rev 12) (prog-if 00 [Normal decode]) Flags: bus master, 66MHz, medium devsel, latency 64 Bus: primary=00, secondary=02, subordinate=02, sec-latency=64 I/O behind bridge: 00002000-00002fff Memory behind bridge: fe100000-fe2fffff Capabilities: [a0] PCI-X bridge device Capabilities: [b8] HyperTransport: Interrupt Discovery and Configuration Capabilities: [c0] HyperTransport: Slave or Primary Interface
00:0a.1 PIC: Advanced Micro Devices [AMD] AMD-8131 PCI-X IOAPIC (rev 01) (prog-if 10 [IO-APIC]) Subsystem: Advanced Micro Devices [AMD] Unknown device 2b80 Flags: bus master, medium devsel, latency 0 Memory at fe300000 (64-bit, non-prefetchable) [size=4K]
00:0b.0 PCI bridge: Advanced Micro Devices [AMD] AMD-8131 PCI-X Bridge (rev 12) (prog-if 00 [Normal decode]) Flags: bus master, 66MHz, medium devsel, latency 64 Bus: primary=00, secondary=03, subordinate=03, sec-latency=0 Capabilities: [a0] PCI-X bridge device Capabilities: [b8] HyperTransport: Interrupt Discovery and Configuration
00:0b.1 PIC: Advanced Micro Devices [AMD] AMD-8131 PCI-X IOAPIC (rev 01) (prog-if 10 [IO-APIC]) Subsystem: Advanced Micro Devices [AMD] Unknown device 2b80 Flags: bus master, medium devsel, latency 0 Memory at fe301000 (64-bit, non-prefetchable) [size=4K]
00:18.0 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] HyperTransport Technology Configuration Flags: fast devsel Capabilities: [80] HyperTransport: Host or Secondary Interface Capabilities: [a0] HyperTransport: Host or Secondary Interface Capabilities: [c0] HyperTransport: Host or Secondary Interface
00:18.1 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Address Map Flags: fast devsel
00:18.2 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] DRAM Controller Flags: fast devsel
00:18.3 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Miscellaneous Control Flags: fast devsel
00:19.0 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] HyperTransport Technology Configuration Flags: fast devsel Capabilities: [80] HyperTransport: Host or Secondary Interface Capabilities: [a0] HyperTransport: Host or Secondary Interface Capabilities: [c0] HyperTransport: Host or Secondary Interface
00:19.1 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Address Map Flags: fast devsel
00:19.2 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] DRAM Controller Flags: fast devsel
00:19.3 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Miscellaneous Control Flags: fast devsel
01:00.0 USB Controller: Advanced Micro Devices [AMD] AMD-8111 USB (rev 0b) (prog-if 10 [OHCI]) Subsystem: Advanced Micro Devices [AMD] Unknown device 2b80 Flags: bus master, medium devsel, latency 64, IRQ 19 Memory at fe000000 (32-bit, non-prefetchable) [size=4K]
01:00.1 USB Controller: Advanced Micro Devices [AMD] AMD-8111 USB (rev 0b) (prog-if 10 [OHCI]) Subsystem: Advanced Micro Devices [AMD] Unknown device 2b80 Flags: bus master, medium devsel, latency 64, IRQ 19 Memory at fe001000 (32-bit, non-prefetchable) [size=4K]
01:05.0 USB Controller: NEC Corporation USB (rev 43) (prog-if 10 [OHCI]) Subsystem: NEC Corporation Hama USB 2.0 CardBus Flags: bus master, medium devsel, latency 64, IRQ 17 Memory at fe002000 (32-bit, non-prefetchable) [size=4K] Capabilities: [40] Power Management version 2
01:05.1 USB Controller: NEC Corporation USB (rev 43) (prog-if 10 [OHCI]) Subsystem: NEC Corporation Hama USB 2.0 CardBus Flags: bus master, medium devsel, latency 64, IRQ 18 Memory at fe003000 (32-bit, non-prefetchable) [size=4K] Capabilities: [40] Power Management version 2
01:05.2 USB Controller: NEC Corporation USB 2.0 (rev 04) (prog-if 20 [EHCI]) Subsystem: HaSoTec GmbH Unknown device 2928 Flags: bus master, medium devsel, latency 64, IRQ 19 Memory at fe005000 (32-bit, non-prefetchable) [size=256] Capabilities: [40] Power Management version 2
01:06.0 VGA compatible controller: ATI Technologies Inc Rage XL (rev 27) (prog-if 00 [VGA]) Subsystem: ATI Technologies Inc Unknown device 0000 Flags: bus master, stepping, medium devsel, latency 64, IRQ 18 Memory at fd000000 (32-bit, non-prefetchable) [size=16M] I/O ports at 1000 [size=256] Memory at fe004000 (32-bit, non-prefetchable) [size=4K] Expansion ROM at 88000000 [disabled] [size=128K] Capabilities: [5c] Power Management version 2
02:03.0 Ethernet controller: Intel Corporation 82541GI/PI Gigabit Ethernet Controller Subsystem: Intel Corporation PRO/1000 MT Network Connection Flags: bus master, 66MHz, medium devsel, latency 64, IRQ 27 Memory at fe180000 (32-bit, non-prefetchable) [size=128K] I/O ports at 2000 [size=64] Capabilities: [dc] Power Management version 2 Capabilities: [e4] PCI-X non-bridge device
02:04.0 Ethernet controller: Intel Corporation 82541GI/PI Gigabit Ethernet Controller Subsystem: Intel Corporation PRO/1000 MT Network Connection Flags: bus master, 66MHz, medium devsel, latency 64, IRQ 24 Memory at fe1a0000 (32-bit, non-prefetchable) [size=128K] Memory at fe1c0000 (32-bit, non-prefetchable) [size=128K] I/O ports at 2040 [size=64] Expansion ROM at fe1e0000 [disabled] [size=128K] Capabilities: [dc] Power Management version 2 Capabilities: [e4] PCI-X non-bridge device
02:05.0 Mass storage controller: Silicon Image, Inc. SiI 3114 [SATALink/SATARaid] Serial ATA Controller (rev 02) Subsystem: Silicon Image, Inc. SiI 3114 SATALink Controller Flags: bus master, 66MHz, medium devsel, latency 64, IRQ 25 I/O ports at 2090 [size=8] I/O ports at 20b0 [size=4] I/O ports at 20a0 [size=8] I/O ports at 20c0 [size=4] I/O ports at 2080 [size=16] Memory at fe200000 (32-bit, non-prefetchable) [size=1K] Expansion ROM at fe100000 [disabled] [size=512K] Capabilities: [60] Power Management version 2
On 4/25/07, Peter Stuge stuge-linuxbios@cdy.org wrote:
On Wed, Apr 25, 2007 at 05:40:08PM -0400, Ning (Michael) Qu wrote:
You are right, I just take a quick look at the source code of LinuxBIOS and I agree that name should not be needed. But I am just not sure about what subsystem id is? Is it the one in PCI configuration registers?
Yep, it shold be in lspci -v output.
You'll have to look at the list to find a good device to use for uniquely identifying the mainboard or just send all of the output to the list for suggestions from others.
//Peter
-- linuxbios mailing list linuxbios@linuxbios.org http://www.linuxbios.org/mailman/listinfo/linuxbios
Hi Ning,
On Wed, Apr 25, 2007 at 05:48:14PM -0400, Ning (Michael) Qu wrote:
Hi, Peter,
The following is the result from my machine, could you help me identify this machine, thanks very much!
Maybe. I should have remembered to ask for lspci -nv instead of just -v, but let's see anyway. :)
00:07.0 ISA bridge: Advanced Micro Devices [AMD] AMD-8111 LPC (rev 05) Subsystem: Advanced Micro Devices [AMD] Unknown device 2b80
This is the first device with a subsystem.
1022:7468, subsystem 1022:2b80
Then a bunch of others follow, but they also have the same subsystem ids.
01:05.2 USB Controller: NEC Corporation USB 2.0 (rev 04) (prog-if 20 [EHCI]) Subsystem: HaSoTec GmbH Unknown device 2928
1033:00e0, subsystem 0e55:2928
01:06.0 VGA compatible controller: ATI Technologies Inc Rage XL (rev 27) (prog-if 00 [VGA]) Subsystem: ATI Technologies Inc Unknown device 0000
1002:{474f or 4752}, subsystem 1002:0000
02:03.0 Ethernet controller: Intel Corporation 82541GI/PI Gigabit Ethernet Controller Subsystem: Intel Corporation PRO/1000 MT Network Connection
8086:1076, subsystem 8086:{0076 or 1076}
There are two identical of these.
02:05.0 Mass storage controller: Silicon Image, Inc. SiI 3114 [SATALink/SATARaid] Serial ATA Controller (rev 02) Subsystem: Silicon Image, Inc. SiI 3114 SATALink Controller
1095:3114, subsystem 1095:3114
The subsystem id of this can change to 6114 if the controller boots with another firmware. SiI offer utilities to upgrade firmware.
Unfortunately none of the subsystem devices on this board seem like excellent picks for a unique board match (2b80 is listed as "AMD-8111 IDE [Quartet]" in my pci.ids, but if forced I would pick LPC and USB:
0x1022, 0x7468, 0x1022, 0x2b80, 0x1033, 0x00e0, 0x0e55, 0x2928
Can we find a more reliable identification method than subsystem heuristics?
The original BIOS will know, should we try to pick it's mind?
//Peter
Hi,
It's a bad news :) The following is the result of lspci -vn, hope it could still help
00:07.0 0601: 1022:7468 (rev 05) Subsystem: 1022:2b80 Flags: bus master, 66MHz, medium devsel, latency 0
00:07.1 0101: 1022:7469 (rev 03) (prog-if 8a) Subsystem: 1022:2b80 Flags: bus master, medium devsel, latency 32 [virtual] Memory at 000001f0 (32-bit, non-prefetchable) [disabled] [size=8] [virtual] Memory at 000003f0 (type 3, non-prefetchable) [disabled] [size=1] [virtual] Memory at 00000170 (32-bit, non-prefetchable) [disabled] [size=8] [virtual] Memory at 00000370 (type 3, non-prefetchable) [disabled] [size=1] I/O ports at 3420 [size=16]
00:07.2 0c05: 1022:746a (rev 02) Subsystem: 1022:2b80 Flags: medium devsel, IRQ 19 I/O ports at 3400 [size=32]
00:07.3 0680: 1022:746b (rev 05) Subsystem: 1022:2b80 Flags: medium devsel
00:0a.0 0604: 1022:7450 (rev 12) Flags: bus master, 66MHz, medium devsel, latency 64 Bus: primary=00, secondary=02, subordinate=02, sec-latency=64 I/O behind bridge: 00002000-00002fff Memory behind bridge: fe100000-fe2fffff Capabilities: [a0] PCI-X bridge device Capabilities: [b8] HyperTransport: Interrupt Discovery and Configuration Capabilities: [c0] HyperTransport: Slave or Primary Interface
00:0a.1 0800: 1022:7451 (rev 01) (prog-if 10) Subsystem: 1022:2b80 Flags: bus master, medium devsel, latency 0 Memory at fe300000 (64-bit, non-prefetchable) [size=4K]
00:0b.0 0604: 1022:7450 (rev 12) Flags: bus master, 66MHz, medium devsel, latency 64 Bus: primary=00, secondary=03, subordinate=03, sec-latency=0 Capabilities: [a0] PCI-X bridge device Capabilities: [b8] HyperTransport: Interrupt Discovery and Configuration
00:0b.1 0800: 1022:7451 (rev 01) (prog-if 10) Subsystem: 1022:2b80 Flags: bus master, medium devsel, latency 0 Memory at fe301000 (64-bit, non-prefetchable) [size=4K]
00:18.0 0600: 1022:1100 Flags: fast devsel Capabilities: [80] HyperTransport: Host or Secondary Interface Capabilities: [a0] HyperTransport: Host or Secondary Interface Capabilities: [c0] HyperTransport: Host or Secondary Interface
00:18.1 0600: 1022:1101 Flags: fast devsel
00:18.2 0600: 1022:1102 Flags: fast devsel
00:18.3 0600: 1022:1103 Flags: fast devsel
00:19.0 0600: 1022:1100 Flags: fast devsel Capabilities: [80] HyperTransport: Host or Secondary Interface Capabilities: [a0] HyperTransport: Host or Secondary Interface Capabilities: [c0] HyperTransport: Host or Secondary Interface
00:19.1 0600: 1022:1101 Flags: fast devsel
00:19.2 0600: 1022:1102 Flags: fast devsel
00:19.3 0600: 1022:1103 Flags: fast devsel
01:00.0 0c03: 1022:7464 (rev 0b) (prog-if 10) Subsystem: 1022:2b80 Flags: bus master, medium devsel, latency 64, IRQ 19 Memory at fe000000 (32-bit, non-prefetchable) [size=4K]
01:00.1 0c03: 1022:7464 (rev 0b) (prog-if 10) Subsystem: 1022:2b80 Flags: bus master, medium devsel, latency 64, IRQ 19 Memory at fe001000 (32-bit, non-prefetchable) [size=4K]
01:05.0 0c03: 1033:0035 (rev 43) (prog-if 10) Subsystem: 1033:0035 Flags: bus master, medium devsel, latency 64, IRQ 17 Memory at fe002000 (32-bit, non-prefetchable) [size=4K] Capabilities: [40] Power Management version 2
01:05.1 0c03: 1033:0035 (rev 43) (prog-if 10) Subsystem: 1033:0035 Flags: bus master, medium devsel, latency 64, IRQ 18 Memory at fe003000 (32-bit, non-prefetchable) [size=4K] Capabilities: [40] Power Management version 2 01:05.2 0c03: 1033:00e0 (rev 04) (prog-if 20) Subsystem: 0e55:2928 Flags: bus master, medium devsel, latency 64, IRQ 19 Memory at fe005000 (32-bit, non-prefetchable) [size=256] Capabilities: [40] Power Management version 2
01:06.0 0300: 1002:4752 (rev 27) Subsystem: 1002:0000 Flags: bus master, stepping, medium devsel, latency 64, IRQ 18 Memory at fd000000 (32-bit, non-prefetchable) [size=16M] I/O ports at 1000 [size=256] Memory at fe004000 (32-bit, non-prefetchable) [size=4K] Expansion ROM at 88000000 [disabled] [size=128K] Capabilities: [5c] Power Management version 2
02:03.0 0200: 8086:1076 Subsystem: 8086:1076 Flags: bus master, 66MHz, medium devsel, latency 64, IRQ 27 Memory at fe180000 (32-bit, non-prefetchable) [size=128K] I/O ports at 2000 [size=64] Capabilities: [dc] Power Management version 2 Capabilities: [e4] PCI-X non-bridge device
02:04.0 0200: 8086:1076 Subsystem: 8086:1076 Flags: bus master, 66MHz, medium devsel, latency 64, IRQ 24 Memory at fe1a0000 (32-bit, non-prefetchable) [size=128K] Memory at fe1c0000 (32-bit, non-prefetchable) [size=128K] I/O ports at 2040 [size=64] Expansion ROM at fe1e0000 [disabled] [size=128K] Capabilities: [dc] Power Management version 2 Capabilities: [e4] PCI-X non-bridge device
02:05.0 0180: 1095:3114 (rev 02) Subsystem: 1095:3114 Flags: bus master, 66MHz, medium devsel, latency 64, IRQ 25 I/O ports at 2090 [size=8] I/O ports at 20b0 [size=4] I/O ports at 20a0 [size=8] I/O ports at 20c0 [size=4] I/O ports at 2080 [size=16] Memory at fe200000 (32-bit, non-prefetchable) [size=1K] Expansion ROM at fe100000 [disabled] [size=512K]
On 4/25/07, Peter Stuge stuge-linuxbios@cdy.org wrote:
Hi Ning,
On Wed, Apr 25, 2007 at 05:48:14PM -0400, Ning (Michael) Qu wrote:
Hi, Peter,
The following is the result from my machine, could you help me identify this machine, thanks very much!
Maybe. I should have remembered to ask for lspci -nv instead of just -v, but let's see anyway. :)
00:07.0 ISA bridge: Advanced Micro Devices [AMD] AMD-8111 LPC (rev 05) Subsystem: Advanced Micro Devices [AMD] Unknown device 2b80
This is the first device with a subsystem.
1022:7468, subsystem 1022:2b80
Then a bunch of others follow, but they also have the same subsystem ids.
01:05.2 USB Controller: NEC Corporation USB 2.0 (rev 04) (prog-if 20 [EHCI]) Subsystem: HaSoTec GmbH Unknown device 2928
1033:00e0, subsystem 0e55:2928
01:06.0 VGA compatible controller: ATI Technologies Inc Rage XL (rev 27) (prog-if 00 [VGA]) Subsystem: ATI Technologies Inc Unknown device 0000
1002:{474f or 4752}, subsystem 1002:0000
02:03.0 Ethernet controller: Intel Corporation 82541GI/PI Gigabit Ethernet Controller Subsystem: Intel Corporation PRO/1000 MT Network Connection
8086:1076, subsystem 8086:{0076 or 1076}
There are two identical of these.
02:05.0 Mass storage controller: Silicon Image, Inc. SiI 3114 [SATALink/SATARaid] Serial ATA Controller (rev 02) Subsystem: Silicon Image, Inc. SiI 3114 SATALink Controller
1095:3114, subsystem 1095:3114
The subsystem id of this can change to 6114 if the controller boots with another firmware. SiI offer utilities to upgrade firmware.
Unfortunately none of the subsystem devices on this board seem like excellent picks for a unique board match (2b80 is listed as "AMD-8111 IDE [Quartet]" in my pci.ids, but if forced I would pick LPC and USB:
0x1022, 0x7468, 0x1022, 0x2b80, 0x1033, 0x00e0, 0x0e55, 0x2928
Can we find a more reliable identification method than subsystem heuristics?
The original BIOS will know, should we try to pick it's mind?
//Peter
-- linuxbios mailing list linuxbios@linuxbios.org http://www.linuxbios.org/mailman/listinfo/linuxbios
On Wed, Apr 25, 2007 at 06:09:08PM -0400, Ning (Michael) Qu wrote:
Hi,
It's a bad news :) The following is the result of lspci -vn, hope it could still help
00:07.0 0601: 1022:7468 (rev 05) Subsystem: 1022:2b80
00:07.1 0101: 1022:7469 (rev 03) (prog-if 8a) Subsystem: 1022:2b80
00:07.2 0c05: 1022:746a (rev 02) Subsystem: 1022:2b80
00:07.3 0680: 1022:746b (rev 05) Subsystem: 1022:2b80
00:0a.0 0604: 1022:7450 (rev 12)
00:0a.1 0800: 1022:7451 (rev 01) (prog-if 10) Subsystem: 1022:2b80
00:0b.0 0604: 1022:7450 (rev 12)
00:0b.1 0800: 1022:7451 (rev 01) (prog-if 10) Subsystem: 1022:2b80
00:18.0 0600: 1022:1100
00:18.1 0600: 1022:1101
00:18.2 0600: 1022:1102
00:18.3 0600: 1022:1103
00:19.0 0600: 1022:1100
00:19.1 0600: 1022:1101
00:19.2 0600: 1022:1102
00:19.3 0600: 1022:1103
01:00.0 0c03: 1022:7464 (rev 0b) (prog-if 10) Subsystem: 1022:2b80
01:00.1 0c03: 1022:7464 (rev 0b) (prog-if 10) Subsystem: 1022:2b80
01:05.0 0c03: 1033:0035 (rev 43) (prog-if 10) Subsystem: 1033:0035
01:05.1 0c03: 1033:0035 (rev 43) (prog-if 10) Subsystem: 1033:0035
01:05.2 0c03: 1033:00e0 (rev 04) (prog-if 20) Subsystem: 0e55:2928
01:06.0 0300: 1002:4752 (rev 27) Subsystem: 1002:0000
02:03.0 0200: 8086:1076 Subsystem: 8086:1076
02:04.0 0200: 8086:1076 Subsystem: 8086:1076
02:05.0 0180: 1095:3114 (rev 02) Subsystem: 1095:3114
0x1022:0x2B80 indeed does seem like a solid and very deliberate subsystem id here.
Luc Verhaegen.
Hi, All,
Sorry about that I made a mistake. These two devices (USB from NEC and VGA from ATI) are not embedded in the mainboard. They are add-on card plugged by us. Sorry about this confusing :)
01:05.0 USB Controller: NEC Corporation USB (rev 43) (prog-if 10 [OHCI]) Subsystem: NEC Corporation Hama USB 2.0 CardBus Flags: bus master, medium devsel, latency 64, IRQ 17 Memory at fe002000 (32-bit, non-prefetchable) [size=4K] Capabilities: [40] Power Management version 2
01:05.1 USB Controller: NEC Corporation USB (rev 43) (prog-if 10 [OHCI]) Subsystem: NEC Corporation Hama USB 2.0 CardBus Flags: bus master, medium devsel, latency 64, IRQ 18 Memory at fe003000 (32-bit, non-prefetchable) [size=4K] Capabilities: [40] Power Management version 2
01:05.2 USB Controller: NEC Corporation USB 2.0 (rev 04) (prog-if 20 [EHCI]) Subsystem: HaSoTec GmbH Unknown device 2928 Flags: bus master, medium devsel, latency 64, IRQ 19 Memory at fe005000 (32-bit, non-prefetchable) [size=256] Capabilities: [40] Power Management version 2
01:06.0 VGA compatible controller: ATI Technologies Inc Rage XL (rev 27) (prog-if 00 [VGA]) Subsystem: ATI Technologies Inc Unknown device 0000 Flags: bus master, stepping, medium devsel, latency 64, IRQ 18 Memory at fd000000 (32-bit, non-prefetchable) [size=16M] I/O ports at 1000 [size=256] Memory at fe004000 (32-bit, non-prefetchable) [size=4K] Expansion ROM at 88000000 [disabled] [size=128K] Capabilities: [5c] Power Management version 2
On 4/25/07, Ning (Michael) Qu quning@gmail.com wrote:
Hi,
It's a bad news :) The following is the result of lspci -vn, hope it could still help
00:07.0 0601: 1022:7468 (rev 05) Subsystem: 1022:2b80 Flags: bus master, 66MHz, medium devsel, latency 0
00:07.1 0101: 1022:7469 (rev 03) (prog-if 8a) Subsystem: 1022:2b80 Flags: bus master, medium devsel, latency 32 [virtual] Memory at 000001f0 (32-bit, non-prefetchable) [disabled] [size=8] [virtual] Memory at 000003f0 (type 3, non-prefetchable) [disabled] [size=1] [virtual] Memory at 00000170 (32-bit, non-prefetchable) [disabled] [size=8] [virtual] Memory at 00000370 (type 3, non-prefetchable) [disabled] [size=1] I/O ports at 3420 [size=16]
00:07.2 0c05: 1022:746a (rev 02) Subsystem: 1022:2b80 Flags: medium devsel, IRQ 19 I/O ports at 3400 [size=32]
00:07.3 0680: 1022:746b (rev 05) Subsystem: 1022:2b80 Flags: medium devsel
00:0a.0 0604: 1022:7450 (rev 12) Flags: bus master, 66MHz, medium devsel, latency 64 Bus: primary=00, secondary=02, subordinate=02, sec-latency=64 I/O behind bridge: 00002000-00002fff Memory behind bridge: fe100000-fe2fffff Capabilities: [a0] PCI-X bridge device Capabilities: [b8] HyperTransport: Interrupt Discovery and Configuration Capabilities: [c0] HyperTransport: Slave or Primary Interface
00:0a.1 0800: 1022:7451 (rev 01) (prog-if 10) Subsystem: 1022:2b80 Flags: bus master, medium devsel, latency 0 Memory at fe300000 (64-bit, non-prefetchable) [size=4K]
00:0b.0 0604: 1022:7450 (rev 12) Flags: bus master, 66MHz, medium devsel, latency 64 Bus: primary=00, secondary=03, subordinate=03, sec-latency=0 Capabilities: [a0] PCI-X bridge device Capabilities: [b8] HyperTransport: Interrupt Discovery and Configuration
00:0b.1 0800: 1022:7451 (rev 01) (prog-if 10) Subsystem: 1022:2b80 Flags: bus master, medium devsel, latency 0 Memory at fe301000 (64-bit, non-prefetchable) [size=4K]
00:18.0 0600: 1022:1100 Flags: fast devsel Capabilities: [80] HyperTransport: Host or Secondary Interface Capabilities: [a0] HyperTransport: Host or Secondary Interface Capabilities: [c0] HyperTransport: Host or Secondary Interface
00:18.1 0600: 1022:1101 Flags: fast devsel
00:18.2 0600: 1022:1102 Flags: fast devsel
00:18.3 0600: 1022:1103 Flags: fast devsel
00:19.0 0600: 1022:1100 Flags: fast devsel Capabilities: [80] HyperTransport: Host or Secondary Interface Capabilities: [a0] HyperTransport: Host or Secondary Interface Capabilities: [c0] HyperTransport: Host or Secondary Interface
00:19.1 0600: 1022:1101 Flags: fast devsel
00:19.2 0600: 1022:1102 Flags: fast devsel
00:19.3 0600: 1022:1103 Flags: fast devsel
01:00.0 0c03: 1022:7464 (rev 0b) (prog-if 10) Subsystem: 1022:2b80 Flags: bus master, medium devsel, latency 64, IRQ 19 Memory at fe000000 (32-bit, non-prefetchable) [size=4K]
01:00.1 0c03: 1022:7464 (rev 0b) (prog-if 10) Subsystem: 1022:2b80 Flags: bus master, medium devsel, latency 64, IRQ 19 Memory at fe001000 (32-bit, non-prefetchable) [size=4K]
01:05.0 0c03: 1033:0035 (rev 43) (prog-if 10) Subsystem: 1033:0035 Flags: bus master, medium devsel, latency 64, IRQ 17 Memory at fe002000 (32-bit, non-prefetchable) [size=4K] Capabilities: [40] Power Management version 2
01:05.1 0c03: 1033:0035 (rev 43) (prog-if 10) Subsystem: 1033:0035 Flags: bus master, medium devsel, latency 64, IRQ 18 Memory at fe003000 (32-bit, non-prefetchable) [size=4K] Capabilities: [40] Power Management version 2 01:05.2 0c03: 1033:00e0 (rev 04) (prog-if 20) Subsystem: 0e55:2928 Flags: bus master, medium devsel, latency 64, IRQ 19 Memory at fe005000 (32-bit, non-prefetchable) [size=256] Capabilities: [40] Power Management version 2
01:06.0 0300: 1002:4752 (rev 27) Subsystem: 1002:0000 Flags: bus master, stepping, medium devsel, latency 64, IRQ 18 Memory at fd000000 (32-bit, non-prefetchable) [size=16M] I/O ports at 1000 [size=256] Memory at fe004000 (32-bit, non-prefetchable) [size=4K] Expansion ROM at 88000000 [disabled] [size=128K] Capabilities: [5c] Power Management version 2
02:03.0 0200: 8086:1076 Subsystem: 8086:1076 Flags: bus master, 66MHz, medium devsel, latency 64, IRQ 27 Memory at fe180000 (32-bit, non-prefetchable) [size=128K] I/O ports at 2000 [size=64] Capabilities: [dc] Power Management version 2 Capabilities: [e4] PCI-X non-bridge device
02:04.0 0200: 8086:1076 Subsystem: 8086:1076 Flags: bus master, 66MHz, medium devsel, latency 64, IRQ 24 Memory at fe1a0000 (32-bit, non-prefetchable) [size=128K] Memory at fe1c0000 (32-bit, non-prefetchable) [size=128K] I/O ports at 2040 [size=64] Expansion ROM at fe1e0000 [disabled] [size=128K] Capabilities: [dc] Power Management version 2 Capabilities: [e4] PCI-X non-bridge device
02:05.0 0180: 1095:3114 (rev 02) Subsystem: 1095:3114 Flags: bus master, 66MHz, medium devsel, latency 64, IRQ 25 I/O ports at 2090 [size=8] I/O ports at 20b0 [size=4] I/O ports at 20a0 [size=8] I/O ports at 20c0 [size=4] I/O ports at 2080 [size=16] Memory at fe200000 (32-bit, non-prefetchable) [size=1K] Expansion ROM at fe100000 [disabled] [size=512K]
On 4/25/07, Peter Stuge stuge-linuxbios@cdy.org wrote:
Hi Ning,
On Wed, Apr 25, 2007 at 05:48:14PM -0400, Ning (Michael) Qu wrote:
Hi, Peter,
The following is the result from my machine, could you help me identify this machine, thanks very much!
Maybe. I should have remembered to ask for lspci -nv instead of just -v, but let's see anyway. :)
00:07.0 ISA bridge: Advanced Micro Devices [AMD] AMD-8111 LPC (rev 05) Subsystem: Advanced Micro Devices [AMD] Unknown device 2b80
This is the first device with a subsystem.
1022:7468, subsystem 1022:2b80
Then a bunch of others follow, but they also have the same subsystem ids.
01:05.2 USB Controller: NEC Corporation USB 2.0 (rev 04) (prog-if 20 [EHCI]) Subsystem: HaSoTec GmbH Unknown device 2928
1033:00e0, subsystem 0e55:2928
01:06.0 VGA compatible controller: ATI Technologies Inc Rage XL (rev 27) (prog-if 00 [VGA]) Subsystem: ATI Technologies Inc Unknown device 0000
1002:{474f or 4752}, subsystem 1002:0000
02:03.0 Ethernet controller: Intel Corporation 82541GI/PI Gigabit Ethernet Controller Subsystem: Intel Corporation PRO/1000 MT Network Connection
8086:1076, subsystem 8086:{0076 or 1076}
There are two identical of these.
02:05.0 Mass storage controller: Silicon Image, Inc. SiI 3114 [SATALink/SATARaid] Serial ATA Controller (rev 02) Subsystem: Silicon Image, Inc. SiI 3114 SATALink Controller
1095:3114, subsystem 1095:3114
The subsystem id of this can change to 6114 if the controller boots with another firmware. SiI offer utilities to upgrade firmware.
Unfortunately none of the subsystem devices on this board seem like excellent picks for a unique board match (2b80 is listed as "AMD-8111 IDE [Quartet]" in my pci.ids, but if forced I would pick LPC and USB:
0x1022, 0x7468, 0x1022, 0x2b80, 0x1033, 0x00e0, 0x0e55, 0x2928
Can we find a more reliable identification method than subsystem heuristics?
The original BIOS will know, should we try to pick it's mind?
//Peter
-- linuxbios mailing list linuxbios@linuxbios.org http://www.linuxbios.org/mailman/listinfo/linuxbios
On Thu, Apr 26, 2007 at 12:03:19AM +0200, Peter Stuge wrote:
Unfortunately none of the subsystem devices on this board seem like excellent picks for a unique board match (2b80 is listed as "AMD-8111 IDE [Quartet]" in my pci.ids, but if forced I would pick LPC and USB:
0x1022, 0x7468, 0x1022, 0x2b80, 0x1033, 0x00e0, 0x0e55, 0x2928
Can we find a more reliable identification method than subsystem heuristics?
The original BIOS will know, should we try to pick it's mind?
//Peter
The IDE collision is no problem here. It's the whole set that needs to be matched and it seems as if it is isa bridge subsystem id versus ide controller main id. So no problem there.
This seems as good a match as any, i hope that the other board Ning was mentioning differs from this.
Well, pci subsystem ids are as reliable as the board vendors. There are other options, but pci subsystem ids are very universal and easy to retrieve. Vendor error is the big let-down here, although, for the unichrome, there has been some albeit minimal positive evolution over the years.
Luc Verhaegen.
On Thu, Apr 26, 2007 at 12:17:27AM +0200, Luc Verhaegen wrote:
On Thu, Apr 26, 2007 at 12:03:19AM +0200, Peter Stuge wrote:
Unfortunately none of the subsystem devices on this board seem like excellent picks for a unique board match (2b80 is listed as "AMD-8111 IDE [Quartet]" in my pci.ids, but if forced I would pick LPC and USB:
0x1022, 0x7468, 0x1022, 0x2b80, 0x1033, 0x00e0, 0x0e55, 0x2928
The IDE collision is no problem here. It's the whole set that needs to be matched and it seems as if it is isa bridge subsystem id versus ide controller main id. So no problem there.
Sorry, should have been more clear.
My point was that 1022:2b80 is listed as a subsystem for "Quartet" which is another mainboard. Yet it's also used on this board, from a different vendor, Iwill. Quartet could be a reference design and GPIOs could have been changed the dk8htx but subsystem ids still be from the reference design. This needs to go onto the hardware design gotchas wiki page that I'm working on. :p)
This seems as good a match as any, i hope that the other board Ning was mentioning differs from this.
This is my worry.
Well, pci subsystem ids are as reliable as the board vendors.
At best. PCI IDs are read from flash/eeprom sometimes and then they're not very useful anymore. :(
There are other options, but pci subsystem ids are very universal and easy to retrieve.
No doubt! It's much better than nothing, but I don't like heuristics unless it's the last resort.
Maybe it will be OK to have overlaps in the list though, and try all matching entries. Yes, who knows what the GPIOs will cause if twiddled the wrong way on the first match that's actually for another board, but we can't know until we've tried it.
The original BIOS will know, should we try to pick it's mind?
Do you have any experience from reading factory BIOS data structures found in RAM somewhere while working with the VIA boards?
//Peter
On Thu, Apr 26, 2007 at 12:29:11AM +0200, Peter Stuge wrote:
Do you have any experience from reading factory BIOS data structures found in RAM somewhere while working with the VIA boards?
Nope, no experience there. At the time people were telling me to read in dmi from the driver. DMI is just not fundamentally different from subsystem ids, as the vendor is just as prone to shoot himself in the foot. It's just a different kind of evil.
Besides, if i remember correctly, the consortium controlling dmi deprecated the standard back in 2004.
As you said, reference designs are going to be a problem. Vendors should imho just be more responsible about these things. As it's pure stupidity that stop this neat functionality to be universally useful. This mess happens everywhere though, DDC/EDID (monitors) is pretty much the same story.
Luc Verhaegen.
On Wed, Apr 25, 2007 at 05:40:08PM -0400, Ning (Michael) Qu wrote:
Hi,
You are right, I just take a quick look at the source code of LinuxBIOS and I agree that name should not be needed. But I am just not sure about what subsystem id is? Is it the one in PCI configuration registers?
Best, Ning
On 4/25/07, Luc Verhaegen libv@skynet.be wrote:
There are two full sets of pci ids possible in that structure.
A full set consists of:
- vendor id
- device id
- subsystem/card vendor id
- subsystem/card vendor id
There are two sets here, to ensure a good board match, as vendors tend to do awkward things.
These two full sets of ids have no other purpose but to correctly and uniquely match a board. The board specific code goes on to try to find the device it needs to talk to itself.
Are you sure that the subsystem ids of the device matched by 0x1022, 0x7468 are 0x1022, 0x7468 too?
Please just find 2 different devices from your motherboard that have subsystem ids that differ from the main ids. That way, you don't need to provide the board name as an argument.
Yes, once linuxbios is installed, it'll try to match on name, but please also make correct use of subsystem ids under linuxbios.
Luc Verhaegen.
This is the output of lspci -vn for the devices matched for Asus A7V8-MX:
First set: 0000:00:11.0 0601: 1106:3177 Subsystem: 1043:80a1 Flags: bus master, stepping, medium devsel, latency 0 Capabilities: <available only to root>
Second set: 0000:00:00.0 0600: 1106:3205 Subsystem: 1043:8118 Flags: bus master, 66MHz, medium devsel, latency 8 Memory at e0000000 (32-bit, prefetchable) [size=64M] Capabilities: <available only to root>
Luc Verhaegen.