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