Open bios dev/bios bug report

Mathieu Deschamps mdeschamps at mangrove-systems.com
Thu Apr 22 08:26:01 CEST 2004


Hello,

I want to make /dev/bios work because LinuxBIOS flash utils just
write whereas /dev/bios is IMO a elegant way to read/write/>? to
many bios.

My mainboard bios is a SST29EE020 (which is supported to write)

I do a setpci -s 0:11.0 40b.54 that's ok considering my lspci' output:

Device: 00:00.0
Class:  Host bridge
Vendor: VIA Technologies, Inc.
Device: VT8601 [Apollo ProMedia]
SVendor:        VIA Technologies, Inc.
SDevice:        6010
Rev:    05
00: 06 11 01 06 06 00 90 a2 05 00 00 06 00 08 00 00
10: 08 00 00 d0 00 00 00 00 00 00 00 00 00 00 00 00
20: 00 00 00 00 00 00 00 00 00 00 00 00 06 11 10 60
30: 00 00 00 00 a0 00 00 00 00 00 00 00 00 00 00 00

Device: 00:01.0
Class:  PCI bridge
Vendor: VIA Technologies, Inc.
Device: VT8601 [Apollo ProMedia AGP]
00: 06 11 01 86 07 00 30 a2 00 00 04 06 00 00 01 00
10: 00 00 00 00 00 00 00 00 00 01 01 00 f0 00 00 00
20: 00 e0 f0 e2 f0 ff 00 00 00 00 00 00 00 00 00 00
30: 00 00 00 00 80 00 00 00 00 00 00 00 00 00 0c 00

Device: 00:11.0
Class:  ISA bridge
Vendor: VIA Technologies, Inc.
Device: VT8231 [PCI-to-ISA Bridge]
SVendor:        VIA Technologies, Inc.
SDevice:        6010
Rev:    10
00: 06 11 31 82 87 00 10 02 10 00 01 06 00 00 80 00
10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
20: 00 00 00 00 00 00 00 00 00 00 00 00 06 11 10 60
30: 00 00 00 00 c0 00 00 00 00 00 00 00 00 00 00 00

Device: 00:11.1
Class:  IDE interface
Vendor: VIA Technologies, Inc.
Device: VT82C586/B/686A/B PIPC Bus Master IDE
SVendor:        VIA Technologies, Inc.
SDevice:        6010
Rev:    06
ProgIf: 8a
00: 06 11 71 05 07 00 90 02 06 8a 01 01 00 20 00 00
10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
20: 01 d0 00 00 00 00 00 00 00 00 00 00 06 11 10 60
30: 00 00 00 00 c0 00 00 00 00 00 00 00 ff 00 00 00

Device: 00:11.2
Class:  USB Controller
Vendor: VIA Technologies, Inc.
Device: USB
SVendor:        VIA Technologies, Inc. (Wrong ID)
SDevice:        USB Controller
Rev:    1e
00: 06 11 38 30 07 00 10 02 1e 00 03 0c 08 20 00 00
10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
20: 01 d4 00 00 00 00 00 00 00 00 00 00 25 09 34 12
30: 00 00 00 00 80 00 00 00 00 00 00 00 03 04 00 00

Device: 00:11.3
Class:  USB Controller
Vendor: VIA Technologies, Inc.
Device: USB
SVendor:        VIA Technologies, Inc. (Wrong ID)
SDevice:        USB Controller
Rev:    1e
00: 06 11 38 30 07 00 10 02 1e 00 03 0c 08 20 00 00
10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
20: 01 d8 00 00 00 00 00 00 00 00 00 00 25 09 34 12
30: 00 00 00 00 80 00 00 00 00 00 00 00 03 04 00 00

Device: 00:11.4
Class:  Bridge
Vendor: VIA Technologies, Inc.
Device: VT8235 ACPI
SVendor:        VIA Technologies, Inc.
SDevice:        6010
Rev:    10
00: 06 11 35 82 00 00 90 02 10 00 80 06 00 00 00 00
10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
20: 00 00 00 00 00 00 00 00 00 00 00 00 06 11 10 60
30: 00 00 00 00 68 00 00 00 00 00 00 00 00 00 00 00

Device: 00:11.5
Class:  Multimedia audio controller
Vendor: VIA Technologies, Inc.
Device: VT82C686 AC97 Audio Controller
SVendor:        VIA Technologies, Inc.
SDevice:        6010
Rev:    40
00: 06 11 58 30 01 00 10 02 40 00 01 04 00 00 00 00
10: 01 dc 00 00 01 e0 00 00 01 e4 00 00 00 00 00 00
20: 00 00 00 00 00 00 00 00 00 00 00 00 06 11 10 60
30: 00 00 00 00 c0 00 00 00 00 00 00 00 0a 03 00 00

Device: 00:12.0
Class:  Ethernet controller
Vendor: VIA Technologies, Inc.
Device: VT6102 [Rhine-II]
SVendor:        VIA Technologies, Inc.
SDevice:        VT6102 [Rhine II] Embeded Ethernet Controller on VT8235
Rev:    51
00: 06 11 65 30 07 00 10 02 51 00 00 02 08 20 00 00
10: 01 e8 00 00 00 00 00 e3 00 00 00 00 00 00 00 00
20: 00 00 00 00 00 00 00 00 00 00 00 00 06 11 02 01
30: 00 00 00 00 40 00 00 00 00 00 00 00 0b 01 03 08

Device: 01:00.0
Class:  VGA compatible controller
Vendor: Trident Microsystems
Device: CyberBlade/i1
SVendor:        Trident Microsystems
SDevice:        CyberBlade/i1
Rev:    6a
00: 23 10 00 85 07 00 b0 02 6a 00 00 03 00 20 00 00
10: 00 00 80 e1 00 00 00 e2 00 00 00 e1 00 00 00 00
20: 00 00 00 00 00 00 00 00 00 00 00 00 23 10 00 85
30: 00 00 00 00 80 00 00 00 00 00 00 00 0b 01 00 00


i do insmod bios ; dmesg| tail -3 says :

BIOS driver v0.3.2 (writing disabled) for 2.4.20-8
BIOS: host bridge is 1106, 601, 0
BIOS: isa bridge is 1106, 8231, 88
BIOS: 256k flashchip (ID 0x10bf) found at physical address 0xfff80000
(va=0xc80db000+0x180000).

so that seems to me quite ok
but doing cat /proc/bios i got Erreur de segmentation (Segfault)
and then doing dmesg| tail -30, I got:

BIOS driver v0.3.2 (writing disabled) for 2.4.20-8
BIOS: host bridge is 1106, 601, 0
BIOS: isa bridge is 1106, 8231, 88
BIOS: 256k flashchip (ID 0x10bf) found at physical address 0xfff80000
(va=0xc80db000+0x180000).
invalid operand: 0000
bios via82cxxx_audio uart401 ac97_codec sound soundcore parport_pc lp
parport autofs via-rhine mii ipt_REJECT iptable_filter ip_tables keybdev
mousedev hid in
CPU:    0
EIP:    0060:[<c80d43ea>]    Not tainted
EFLAGS: 00010283

EIP is at bios_read_proc [bios] 0xaa (2.4.20-8)
eax: 000000cb   ebx: 00000000   ecx: 000000cb   edx: 00000000
esi: 00000001   edi: 00000c00   ebp: 00000030   esp: c7433f30
ds: 0068   es: 0068   ss: 0068
Process cat (pid: 2983, stackpage=c7433000)
Stack: c5a7d0b6 c80d6eee c80d6ea4 c80d6d6b 00000005 00000000 00000001
c6cd5d40 
       00000c00 c5a7d000 00001000 c01602e6 c5a7d000 c7433f88 00000000
00000c00 
       c7433f84 00000000 c7432000 c6cd5d40 00000000 00000001 c5a7d000
0804cd48 
Call Trace:   [<c80d6eee>] .rodata.str1.1 [bios] 0x9ce (0xc7433f34))
[<c80d6ea4>] .rodata.str1.1 [bios] 0x984 (0xc7433f38))
[<c80d6d6b>] .rodata.str1.1 [bios] 0x84b (0xc7433f3c))
[<c01602e6>] proc_file_read [kernel] 0xb6 (0xc7433f5c))
[<c013fa25>] sys_read [kernel] 0x85 (0xc7433f9c))
[<c0109103>] system_call [kernel] 0x33 (0xc7433fc0))


Code: 0f 4f 44 24 3c 83 c4 1c 5b 5e 5f 5d c3 0f b7 85 74 99 0d c8

What went wrong ? Plus what is strange is that it can anyway read
the bios with cat /dev/bios which is truely 262144 bytes but I'am
wondering if it's clean or not, maybe i'am reading another bios.
On this point actually, I can't exactly figure out how i could
say to dev/bios read this bios or read that one. It so up levelled :)
Am wandering where I can parameter it :)

Please explain me, I founding a big hope and true interest on dev/bios.

thanks in advance

mathieu



More information about the coreboot mailing list