Sziasztok!
Mitől lehet egy eszköznek negatív memóriacíme?
lspci -v ezt adja vissza:
0e:00.0 Ethernet controller: Broadcom Corporation NetXtreme BCM5722 Gigabit Ethernet PCI Express
Subsystem: Hewlett-Packard Company Device 7051
Flags: bus master, fast devsel, latency 0, IRQ 28
Memory at ed000000 (64-bit, non-prefetchable) [=64K]
Expansion ROM at <ignored> [disabled]
Capabilities: [48] Power Management version 3
Capabilities: [50] Vital Product Data <?>
Capabilities: [58] Vendor Specific Information <?>
Capabilities: [e8] Message Signalled Interrupts: Mask- 64bit+ Queue=0/0 Enable+
Capabilities: [d0] Express Endpoint, MSI 00
Capabilities: [100] Advanced Error Reporting <?>
Capabilities: [13c] Virtual Channel <?>
Capabilities: [160] Device Serial Number d0-63-e6-fe-ff-46-ce-f4
Capabilities: [16c] Power Budgeting <?>
Kernel driver in use: tg3
Kernel modules: tg3
11:00.0 Ethernet controller: Broadcom Corporation NetXtreme BCM5704 Gigabit Ethernet (rev 10)
Subsystem: Broadcom Corporation NetXtreme BCM5704 Gigabit Ethernet
Flags: 66MHz, medium devsel, IRQ 21
Memory at ffdffffbed100000 (64-bit, non-prefetchable) [=64K]
[virtual] Expansion ROM at 80600000 [disabled] [=128K]
Capabilities: [40] PCI-X non-bridge device
Capabilities: [48] Power Management version 2
Capabilities: [50] Vital Product Data <?>
Capabilities: [58] Message Signalled Interrupts: Mask- 64bit+ Queue=0/3 Enable-
Kernel modules: tg3
11:00.1 Ethernet controller: Broadcom Corporation NetXtreme BCM5704 Gigabit Ethernet (rev 10)
Subsystem: Broadcom Corporation NetXtreme BCM5704 Gigabit Ethernet
Flags: 66MHz, medium devsel, IRQ 22
Memory at ffffffffed110000 (64-bit, non-prefetchable) [=64K]
Capabilities: [40] PCI-X non-bridge device
Capabilities: [48] Power Management version 2
Capabilities: [50] Vital Product Data <?>
Capabilities: [58] Message Signalled Interrupts: Mask- 64bit+ Queue=0/3 Enable-
Kernel modules: tg3
Ami alapján negatív memóriacímet gondoltam az a nagyonnagy hexa szám FF-ekkel kezdődve. (Memory at sorok) Haloványodó digit1 tudásom szerint ami sok 1-essel kezdődik az komplemens-negatív szám.
A gépben van egy alaplapi és egy PCI-os (pci-x?) hálókártya. Az alaplapi működik (első), a másik nem.
Közben meg ilyeneket írogat a dmesg:
[ 1.918250] eth0: Tigon3 [partno(N/A) rev a200] (PCI Express) MAC address f4:ce:46:e6:63:d0
[ 1.918255] eth0: attached PHY is 5722/5756 (10/100/1000Base-T Ethernet) (WireSpeed[1])
[ 1.918259] eth0: RXcsums[1] LinkChgREG[0] MIirq[0] ASF[0] TSOcap[1]
[ 1.918261] eth0: dma_rwctrl[76180000] dma_mask[64-bit]
[ 1.918298] alloc irq_desc for 21 on node -1
[ 1.918300] alloc kstat_irqs on node -1
[ 1.918308] tg3 0000:11:00.0: PCI INT A -> GSI 21 (level, low) -> IRQ 21
[ 1.918330] ioremap: invalid physical address ffdffffbed100000
[ 1.918332] ------------[ cut here ]------------
[ 1.918340] WARNING: at /build/buildd/linux-2.6.32/arch/x86/mm/ioremap.c:120 __ioremap_caller+0x360/0x3d0()
[ 1.918343] Hardware name: ProLiant ML110 G5
[ 1.918345] Modules linked in: softcursor usbhid(+) hid vga16fb vgastate tg3(+)
[ 1.918356] Pid: 150, comm: modprobe Not tainted 2.6.32-21-server #31-Ubuntu
[ 1.918360] Call Trace:
[ 1.918366] [<ffffffff81066d1b>] warn_slowpath_common+0x7b/0xc0
[ 1.918370] [<ffffffff81066d74>] warn_slowpath_null+0x14/0x20
[ 1.918374] [<ffffffff81041360>] __ioremap_caller+0x360/0x3d0
[ 1.918381] [<ffffffff812cabae>] ? pci_ioremap_bar+0x4e/0x80
(....)
[ 1.918530] [<ffffffff810a12af>] sys_init_module+0xdf/0x260
[ 1.918536] [<ffffffff810131b2>] system_call_fastpath+0x16/0x1b
[ 1.918539] ---[ end trace 8919ac0495aa88ca ]---
[ 1.918541] tg3: Cannot map device registers, aborting.
[ 1.918551] tg3 0000:11:00.0: PCI INT A disabled
[ 1.918561] tg3: probe of 0000:11:00.0 failed with error -12
[ 1.918579] alloc irq_desc for 22 on node -1
[ 1.918581] alloc kstat_irqs on node -1
[ 1.918586] tg3 0000:11:00.1: PCI INT B -> GSI 22 (level, low) -> IRQ 22
[ 1.918603] ioremap: invalid physical address ffffffffed110000
[ 1.918605] tg3: Cannot map device registers, aborting.
[ 1.918612] tg3 0000:11:00.1: PCI INT B disabled
[ 1.918616] tg3: probe of 0000:11:00.1 failed with error -12
A gépet béreljük, a hálókártyacsere elég macerás lenne, jobb volna valami szép szoftveres megoldást találni rá. A broadcom support ködösít, ti láttatok már ilyent?
uname -a:
Linux beta 2.6.32-21-server #31-Ubuntu SMP Tue Apr 13 21:43:48 UTC 2010 x86_64 GNU/Linux
- 1373 megtekintés
Hozzászólások
Elég haloványak az emlékeid. Címaritmetika nem ismeri a negatív számokat. Viszont a rossz programozó ismeri. ;) Tehát van ilyen bug - verziókat ne kérdezz, google segít - a driverekben, hogy a függvény visszatérési értéke ulong lett unsigned long helyett, ezért a forrást le kell tölteni és szépen javítás után fordítani. Hirtelen jó lesz.
Illetve jó lenne tudni, mekkora az MMIO terület...mert lehet, hogy az betelt és új eszközt nem tud bemappelni. Ekkor az mmio_size modulparaméterrel lehet növelni ezt a területet az ioremap() számára.
Első körben ez jutott az eszembe. :)
- A hozzászóláshoz be kell jelentkezni
"Haloványodó digit1 tudásom szerint ami sok 1-essel kezdődik az komplemens-negatív szám."
Hát ez így általánosságba nem igaz. Egy akárhány bájt hosszú bitsorozatot akárhogy értelmezhetsz, ettől függően teljesen más értékek jönnének ki.
A fenti 8 bájt is teljesen más lesz mondjuk int-ként, unsigned int-ként, float-ként meg char-ként :).
--
Discover It - Have a lot of fun!
- A hozzászóláshoz be kell jelentkezni
Az eszkoznek nem negativ a memoria cime, az also 32 bit a tenyleges cim, a felso 32 bit szemet ...
- A hozzászóláshoz be kell jelentkezni