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