FreeBSD Bugzilla – Attachment 122366 Details for
Bug 165561
[hang] K8N890M-M Boot Hang
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
out.txt
out.txt (text/plain), 18.98 KB, created by
Byron Young
on 2012-03-02 22:13:05 UTC
(
hide
)
Description:
out.txt
Filename:
MIME Type:
Creator:
Byron Young
Created:
2012-03-02 22:13:05 UTC
Size:
18.98 KB
patch
obsolete
><bug-followup@FreeBSD.org> >Re: i386/165561: K8N890M-M Boot Hang > >The hang happens on the boot machine (console=vidconsole) at the instruction as indicated in the listing from the pci_cfgreg.c snippit and the VIDCONSOLE OUTPUT. If booting via console=comconsole only, the boot continues, as shown in BEGIN COMCONSOLE BOOT CONTINUE listing. > >=====BEGIN VIDCONSOLE OUTPUT======================= >OK boot -d >KDB: debugger backends: ddb >KDB: current backend: ddb >KDB: enter: Boot flags requested debugger >[ thread pid 0 tid 0 ] >Stopped at kdb_enter+0x3a: movl $0,kdb_why >db> b pcib_alloc_window >db> cont >Copyright (c) 1992-2012 The FreeBSD Project. >Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994 > The Regents of the University of California. All rights reserved. >FreeBSD is a registered trademark of The FreeBSD Foundation. >FreeBSD 9.0-RELEASE #2: Thu Mar 1 11:11:06 PST 2012 > root@butler.bkyoung.com:/usr/obj/usr/src/sys/BUTLER i386 >CPU: AMD Athlon(tm) 64 Processor 3800+ (2394.05-MHz 686-class CPU) > Origin = "AuthenticAMD" Id = 0x50ff2 Family = f Model = 5f Stepping = 2 > Features=0x78bfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,MMX,FXSR,SSE,SSE2> > Features2=0x2001<SSE3,CX16> > AMD Features=0xea500800<SYSCALL,NX,MMX+,FFXSR,RDTSCP,LM,3DNow!+,3DNow!> > AMD Features2=0x1d<LAHF,SVM,ExtAPIC,CR8> >real memory = 2147483648 (2048 MB) >avail memory = 1822670848 (1738 MB) >Event timer "LAPIC" quality 400 >ACPI APIC Table: <A M I OEMAPIC > >ioapic0 <Version 0.3> irqs 0-23 on motherboard >ioapic1 <Version 0.3> irqs 24-47 on motherboard >kbd1 at kbdmux0 >acpi0: <A M I OEMRSDT> on motherboard >acpi0: Power Button (fixed) >acpi0: reservation of 0, a0000 (3) failed >acpi0: reservation of 100000, 7ff00000 (3) failed >Timecounter "ACPI-fast" frequency 3579545 Hz quality 900 >acpi_timer0: <24-bit timer at 3.579545MHz> port 0x808-0x80b on acpi0 >cpu0: <ACPI CPU> on acpi0 >pcib0: <ACPI Host-PCI bridge> port 0xcf8-0xcff on acpi0 >pci0: <ACPI PCI bus> on pcib0 >pcib1: <ACPI PCI-PCI bridge> at device 1.0 on pci0 >[ thread pid 0 tid 100000 ] >Breakpoint at pcib_alloc_window: pushl %ebp >db> >[ thread pid 0 tid 100000 ] >Breakpoint at pcib_alloc_window: pushl %ebp >db> >[ thread pid 0 tid 100000 ] >Breakpoint at pcib_alloc_window: pushl %ebp >db> b pci_write_config_method >db> cont >pcib1: failed to allocate initial prefetch window: 0xd0000000-0xdfffffff >[ thread pid 0 tid 100000 ] >Breakpoint at pci_write_config_method: pushl %ebp >db> >[ thread pid 0 tid 100000 ] >Breakpoint at pci_write_config_method: pushl %ebp >db> >pci1: <ACPI PCI bus> on pcib1 >[ thread pid 0 tid 100000 ] >Breakpoint at pci_write_config_method: pushl %ebp >db> >[ thread pid 0 tid 100000 ] >Breakpoint at pci_write_config_method: pushl %ebp >db> >[ thread pid 0 tid 100000 ] >Breakpoint at pci_write_config_method: pushl %ebp >db> >[ thread pid 0 tid 100000 ] >Breakpoint at pci_write_config_method: pushl %ebp >db> >[ thread pid 0 tid 100000 ] >Breakpoint at pci_write_config_method: pushl %ebp >db> >[ thread pid 0 tid 100000 ] >Breakpoint at pci_write_config_method: pushl %ebp >db> >[ thread pid 0 tid 100000 ] >Breakpoint at pci_write_config_method: pushl %ebp >db> >[ thread pid 0 tid 100000 ] >Breakpoint at pci_write_config_method: pushl %ebp >db> >[ thread pid 0 tid 100000 ] >Breakpoint at pci_write_config_method: pushl %ebp >db> >[ thread pid 0 tid 100000 ] >Breakpoint at pci_write_config_method: pushl %ebp >db> b pci_cfgregwrite >db> cont >[ thread pid 0 tid 100000 ] >Breakpoint at pci_cfgregwrite: pushl %ebp >db> s >[ thread pid 0 tid 100000 ] >Stopped at pci_cfgregwrite+0x1: movl %esp,%ebp >db> >[ thread pid 0 tid 100000 ] >Stopped at pci_cfgregwrite+0x3: subl $0x30,%esp >db> >[ thread pid 0 tid 100000 ] >Stopped at pci_cfgregwrite+0x6: movl %ebx,0xfffffff4(%ebp) >db> >[ thread pid 0 tid 100000 ] >Stopped at pci_cfgregwrite+0x9: movl %esi,0xfffffff8(%ebp) >db> >[ thread pid 0 tid 100000 ] >Stopped at pci_cfgregwrite+0xc: movl %edi,0xfffffffc(%ebp) >db> >[ thread pid 0 tid 100000 ] >Stopped at pci_cfgregwrite+0xf: movl 0x8(%ebp),%esi >db> >[ thread pid 0 tid 100000 ] >Stopped at pci_cfgregwrite+0x12: movl 0x1c(%ebp),%edi >db> >[ thread pid 0 tid 100000 ] >Stopped at pci_cfgregwrite+0x15: cmpl $0x3,cfgmech >db> >[ thread pid 0 tid 100000 ] >Stopped at pci_cfgregwrite+0x1c: jnz pci_cfgregwrite+0x1b0 >db> >[ thread pid 0 tid 100000 ] >Stopped at pci_cfgregwrite+0x22: cmpl %esi,pcie_minbus >db> >[ thread pid 0 tid 100000 ] >Stopped at pci_cfgregwrite+0x28: jnle pci_cfgregwrite+0x1b0 >db> >[ thread pid 0 tid 100000 ] >Stopped at pci_cfgregwrite+0x2e: cmpl pcie_maxbus,%esi >db> >[ thread pid 0 tid 100000 ] >Stopped at pci_cfgregwrite+0x34: jnle pci_cfgregwrite+0x1b0 >db> >[ thread pid 0 tid 100000 ] >Stopped at pci_cfgregwrite+0x3a: testl %esi,%esi >db> >[ thread pid 0 tid 100000 ] >Stopped at pci_cfgregwrite+0x3c: jnz pci_cfgregwrite+0x55 >db> >[ thread pid 0 tid 100000 ] >Stopped at pci_cfgregwrite+0x55: cmpl $0x1f,0xc(%ebp) >db> >[ thread pid 0 tid 100000 ] >Stopped at pci_cfgregwrite+0x59: jnbe pci_cfgregwrite+0x288 >db> >[ thread pid 0 tid 100000 ] >Stopped at pci_cfgregwrite+0x5f: cmpl $0x7,0x10(%ebp) >db> >[ thread pid 0 tid 100000 ] >Stopped at pci_cfgregwrite+0x63: jnbe pci_cfgregwrite+0x288 >db> >[ thread pid 0 tid 100000 ] >Stopped at pci_cfgregwrite+0x69: cmpl $0xfff,0x14(%ebp) >db> >[ thread pid 0 tid 100000 ] >Stopped at pci_cfgregwrite+0x70: jnbe pci_cfgregwrite+0x288 >db> >[ thread pid 0 tid 100000 ] >Stopped at pci_cfgregwrite+0x76: call critical_enter >db> >[ thread pid 0 tid 100000 ] >Stopped at critical_enter: pushl %ebp >db> n >After 7 instructions (0 loads, 0 stores), >[ thread pid 0 tid 100000 ] >Stopped at critical_enter+0x1a: ret >db> s >[ thread pid 0 tid 100000 ] >Stopped at pci_cfgregwrite+0x7b: movl %esi,%edx >db> >[ thread pid 0 tid 100000 ] >Stopped at pci_cfgregwrite+0x7d: andl $0xff,%edx >db> >[ thread pid 0 tid 100000 ] >Stopped at pci_cfgregwrite+0x83: shll $0x14,%edx >db> >[ thread pid 0 tid 100000 ] >Stopped at pci_cfgregwrite+0x86: orl pcie_base,%edx >db> >[ thread pid 0 tid 100000 ] >Stopped at pci_cfgregwrite+0x8c: movl 0xc(%ebp),%eax >db> >[ thread pid 0 tid 100000 ] >Stopped at pci_cfgregwrite+0x8f: andl $0x1f,%eax >db> >[ thread pid 0 tid 100000 ] >Stopped at pci_cfgregwrite+0x92: shll $0xf,%eax >db> >[ thread pid 0 tid 100000 ] >Stopped at pci_cfgregwrite+0x95: orl %eax,%edx >db> >[ thread pid 0 tid 100000 ] >Stopped at pci_cfgregwrite+0x97: movl 0x10(%ebp),%eax >db> >[ thread pid 0 tid 100000 ] >Stopped at pci_cfgregwrite+0x9a: andl $0x7,%eax >db> >[ thread pid 0 tid 100000 ] >Stopped at pci_cfgregwrite+0x9d: shll $0xc,%eax >db> >[ thread pid 0 tid 100000 ] >Stopped at pci_cfgregwrite+0xa0: orl %eax,%edx >db> >[ thread pid 0 tid 100000 ] >Stopped at pci_cfgregwrite+0xa2: movl 0x14(%ebp),%eax >db> >[ thread pid 0 tid 100000 ] >Stopped at pci_cfgregwrite+0xa5: andl $0xfff,%eax >db> >[ thread pid 0 tid 100000 ] >Stopped at pci_cfgregwrite+0xaa: orl %eax,%edx >db> >[ thread pid 0 tid 100000 ] >Stopped at pci_cfgregwrite+0xac: movl %edx,0xffffffe4(%ebp) >db> >[ thread pid 0 tid 100000 ] >Stopped at pci_cfgregwrite+0xaf: movl %edx,%esi >db> >[ thread pid 0 tid 100000 ] >Stopped at pci_cfgregwrite+0xb1: andl $0xfffff000,%esi >db> >[ thread pid 0 tid 100000 ] >Stopped at pci_cfgregwrite+0xb7: movl %fs:0x20,%eax >db> >[ thread pid 0 tid 100000 ] >Stopped at pci_cfgregwrite+0xbd: movl %eax,0xffffffec(%ebp) >db> >[ thread pid 0 tid 100000 ] >Stopped at pci_cfgregwrite+0xc0: shll $0x3,%eax >db> >[ thread pid 0 tid 100000 ] >Stopped at pci_cfgregwrite+0xc3: leal pcie_list(%eax),%edx >db> >[ thread pid 0 tid 100000 ] >Stopped at pci_cfgregwrite+0xc9: movl %edx,0xffffffe8(%ebp) >db> >[ thread pid 0 tid 100000 ] >Stopped at pci_cfgregwrite+0xcc: movl pcie_list(%eax),%ebx >db> >[ thread pid 0 tid 100000 ] >Stopped at pci_cfgregwrite+0xd2: testl %ebx,%ebx >db> >[ thread pid 0 tid 100000 ] >Stopped at pci_cfgregwrite+0xd4: jz pci_cfgregwrite+0xeb >db> >[ thread pid 0 tid 100000 ] >Stopped at pci_cfgregwrite+0xd6: cmpl 0xc(%ebx),%esi >db> >[ thread pid 0 tid 100000 ] >Stopped at pci_cfgregwrite+0xd9: jnz pci_cfgregwrite+0xe5 >db> >[ thread pid 0 tid 100000 ] >Stopped at pci_cfgregwrite+0xdb: jmp pci_cfgregwrite+0x11f >db> >[ thread pid 0 tid 100000 ] >Stopped at pci_cfgregwrite+0x11f: movl 0xffffffe8(%ebp),%eax >db> >[ thread pid 0 tid 100000 ] >Stopped at pci_cfgregwrite+0x122: cmpl %ebx,0(%eax) >db> >[ thread pid 0 tid 100000 ] >Stopped at pci_cfgregwrite+0x124: jz pci_cfgregwrite+0x164 >db> >[ thread pid 0 tid 100000 ] >Stopped at pci_cfgregwrite+0x164: movl 0x18(%ebp),%edx >db> >[ thread pid 0 tid 100000 ] >Stopped at pci_cfgregwrite+0x167: movl 0xffffffe4(%ebp),%eax >db> >[ thread pid 0 tid 100000 ] >Stopped at pci_cfgregwrite+0x16a: andl $0xfff,%eax >db> >[ thread pid 0 tid 100000 ] >Stopped at pci_cfgregwrite+0x16f: orl 0x8(%ebx),%eax >db> >[ thread pid 0 tid 100000 ] >Stopped at pci_cfgregwrite+0x172: movl %eax,0xfffffff0(%ebp) >db> >[ thread pid 0 tid 100000 ] >Stopped at pci_cfgregwrite+0x175: cmpl $0x2,%edi >db> >[ thread pid 0 tid 100000 ] >Stopped at pci_cfgregwrite+0x178: jz pci_cfgregwrite+0x192 >db> >[ thread pid 0 tid 100000 ] >Stopped at pci_cfgregwrite+0x192: movl 0xfffffff0(%ebp),%eax >db> >[ thread pid 0 tid 100000 ] >Stopped at pci_cfgregwrite+0x195: movw %dx,0(%eax) >db> >=====END VIDCONSOLE OUTPUT======================= > >=====BEGIN COMCONSOLE BOOT CONTINUE============== >print %eax >c0d66855 >db> x/wx 0xc0d66855 >pci_cfgregwrite+0x195: eb108966 >db> s >[ thread pid 0 tid 100000 ] >Stopped at pci_cfgregwrite+0x198: jmp pci_cfgregwrite+0x19f >db> pint %dx >No such command >db> print %dx >c0d66858 >db> >====END COMCONSOLE BOOT CONTINUE====================================== > >====BEGIN SNIPPIT FROM pci_cfgreg.c >00000380 <pci_cfgregwrite>: >/* > * Write configuration space register > */ >void >pci_cfgregwrite(int bus, int slot, int func, int reg, u_int32_t data, int bytes) >{ > 380: 55 push %ebp > 381: 89 e5 mov %esp,%ebp > 383: 83 ec 30 sub $0x30,%esp > 386: 89 5d f4 mov %ebx,-0xc(%ebp) > 389: 89 75 f8 mov %esi,-0x8(%ebp) > 38c: 89 7d fc mov %edi,-0x4(%ebp) > 38f: 8b 75 08 mov 0x8(%ebp),%esi > 392: 8b 7d 1c mov 0x1c(%ebp),%edi > > if (cfgmech == CFGMECH_PCIE && > 395: 83 3d 34 01 00 00 03 cmpl $0x3,0x134 > 39c: 0f 85 8e 01 00 00 jne 530 <pci_cfgregwrite+0x1b0> > 3a2: 39 35 28 01 00 00 cmp %esi,0x128 > 3a8: 0f 8f 82 01 00 00 jg 530 <pci_cfgregwrite+0x1b0> > 3ae: 3b 35 2c 01 00 00 cmp 0x12c,%esi > 3b4: 0f 8f 76 01 00 00 jg 530 <pci_cfgregwrite+0x1b0> > 3ba: 85 f6 test %esi,%esi > 3bc: 75 17 jne 3d5 <pci_cfgregwrite+0x55> > 3be: b8 01 00 00 00 mov $0x1,%eax > 3c3: 0f b6 4d 0c movzbl 0xc(%ebp),%ecx > 3c7: d3 e0 shl %cl,%eax > 3c9: 85 05 30 01 00 00 test %eax,0x130 > 3cf: 0f 85 5b 01 00 00 jne 530 <pci_cfgregwrite+0x1b0> >{ > struct pcie_cfg_elem *elem; > volatile vm_offset_t va; > vm_paddr_t pa, papage; > > if (bus < pcie_minbus || bus > pcie_maxbus || slot > PCI_SLOTMAX || > 3d5: 83 7d 0c 1f cmpl $0x1f,0xc(%ebp) > 3d9: 0f 87 29 02 00 00 ja 608 <pci_cfgregwrite+0x288> > 3df: 83 7d 10 07 cmpl $0x7,0x10(%ebp) > 3e3: 0f 87 1f 02 00 00 ja 608 <pci_cfgregwrite+0x288> > 3e9: 81 7d 14 ff 0f 00 00 cmpl $0xfff,0x14(%ebp) > 3f0: 0f 87 12 02 00 00 ja 608 <pci_cfgregwrite+0x288> > func > PCI_FUNCMAX || reg > PCIE_REGMAX) > return; > > critical_enter(); > 3f6: e8 fc ff ff ff call 3f7 <pci_cfgregwrite+0x77> > pa = PCIE_PADDR(pcie_base, reg, bus, slot, func); > 3fb: 89 f2 mov %esi,%edx > 3fd: 81 e2 ff 00 00 00 and $0xff,%edx > 403: c1 e2 14 shl $0x14,%edx > 406: 0b 15 20 01 00 00 or 0x120,%edx > 40c: 8b 45 0c mov 0xc(%ebp),%eax > 40f: 83 e0 1f and $0x1f,%eax > 412: c1 e0 0f shl $0xf,%eax > 415: 09 c2 or %eax,%edx > 417: 8b 45 10 mov 0x10(%ebp),%eax > 41a: 83 e0 07 and $0x7,%eax > 41d: c1 e0 0c shl $0xc,%eax > 420: 09 c2 or %eax,%edx > 422: 8b 45 14 mov 0x14(%ebp),%eax > 425: 25 ff 0f 00 00 and $0xfff,%eax > 42a: 09 c2 or %eax,%edx > 42c: 89 55 e4 mov %edx,-0x1c(%ebp) > papage = pa & ~PAGE_MASK; > 42f: 89 d6 mov %edx,%esi > 431: 81 e6 00 f0 ff ff and $0xfffff000,%esi >pciereg_findelem(vm_paddr_t papage) >{ > struct pcie_cfg_list *pcielist; > struct pcie_cfg_elem *elem; > > pcielist = &pcie_list[PCPU_GET(cpuid)]; > 437: 64 a1 20 00 00 00 mov %fs:0x20,%eax > 43d: 89 45 ec mov %eax,-0x14(%ebp) > 440: c1 e0 03 shl $0x3,%eax > 443: 8d 90 20 00 00 00 lea 0x20(%eax),%edx > 449: 89 55 e8 mov %edx,-0x18(%ebp) > TAILQ_FOREACH(elem, pcielist, elem) { > 44c: 8b 98 20 00 00 00 mov 0x20(%eax),%ebx > 452: 85 db test %ebx,%ebx > 454: 74 15 je 46b <pci_cfgregwrite+0xeb> > if (elem->papage == papage) > 456: 3b 73 0c cmp 0xc(%ebx),%esi > 459: 75 0a jne 465 <pci_cfgregwrite+0xe5> > 45b: eb 42 jmp 49f <pci_cfgregwrite+0x11f> > 45d: 8d 76 00 lea 0x0(%esi),%esi > 460: 3b 73 0c cmp 0xc(%ebx),%esi > 463: 74 3a je 49f <pci_cfgregwrite+0x11f> >{ > struct pcie_cfg_list *pcielist; > struct pcie_cfg_elem *elem; > > pcielist = &pcie_list[PCPU_GET(cpuid)]; > TAILQ_FOREACH(elem, pcielist, elem) { > 465: 8b 1b mov (%ebx),%ebx > 467: 85 db test %ebx,%ebx > 469: 75 f5 jne 460 <pci_cfgregwrite+0xe0> > if (elem->papage == papage) > break; > } > > if (elem == NULL) { > elem = TAILQ_LAST(pcielist, pcie_cfg_list); > 46b: 8b 4d e8 mov -0x18(%ebp),%ecx > 46e: 8b 41 04 mov 0x4(%ecx),%eax > 471: 8b 40 04 mov 0x4(%eax),%eax > 474: 8b 18 mov (%eax),%ebx > if (elem->papage != 0) { > 476: 83 7b 0c 00 cmpl $0x0,0xc(%ebx) > 47a: 74 11 je 48d <pci_cfgregwrite+0x10d> > pmap_kremove(elem->vapage); > 47c: 8b 43 08 mov 0x8(%ebx),%eax > 47f: 89 04 24 mov %eax,(%esp) > 482: e8 fc ff ff ff call 483 <pci_cfgregwrite+0x103> >{ > >#ifdef XEN > xen_invlpg(addr); >#else > __asm __volatile("invlpg %0" : : "m" (*(char *)addr) : "memory"); > 487: 8b 43 08 mov 0x8(%ebx),%eax > 48a: 0f 01 38 invlpg (%eax) > invlpg(elem->vapage); > } > pmap_kenter(elem->vapage, papage); > 48d: 8b 43 08 mov 0x8(%ebx),%eax > 490: 89 74 24 04 mov %esi,0x4(%esp) > 494: 89 04 24 mov %eax,(%esp) > 497: e8 fc ff ff ff call 498 <pci_cfgregwrite+0x118> > elem->papage = papage; > 49c: 89 73 0c mov %esi,0xc(%ebx) > } > > if (elem != TAILQ_FIRST(pcielist)) { > 49f: 8b 45 e8 mov -0x18(%ebp),%eax > 4a2: 39 18 cmp %ebx,(%eax) > 4a4: 74 3e je 4e4 <pci_cfgregwrite+0x164> > TAILQ_REMOVE(pcielist, elem, elem); > 4a6: 8b 13 mov (%ebx),%edx > 4a8: 85 d2 test %edx,%edx > 4aa: 74 08 je 4b4 <pci_cfgregwrite+0x134> > 4ac: 8b 43 04 mov 0x4(%ebx),%eax > 4af: 89 42 04 mov %eax,0x4(%edx) > 4b2: eb 09 jmp 4bd <pci_cfgregwrite+0x13d> > 4b4: 8b 43 04 mov 0x4(%ebx),%eax > 4b7: 8b 55 e8 mov -0x18(%ebp),%edx > 4ba: 89 42 04 mov %eax,0x4(%edx) > 4bd: 8b 43 04 mov 0x4(%ebx),%eax > 4c0: 8b 13 mov (%ebx),%edx > 4c2: 89 10 mov %edx,(%eax) > TAILQ_INSERT_HEAD(pcielist, elem, elem); > 4c4: 8b 4d e8 mov -0x18(%ebp),%ecx > 4c7: 8b 01 mov (%ecx),%eax > 4c9: 89 03 mov %eax,(%ebx) > 4cb: 85 c0 test %eax,%eax > 4cd: 74 07 je 4d6 <pci_cfgregwrite+0x156> > 4cf: 8b 01 mov (%ecx),%eax > 4d1: 89 58 04 mov %ebx,0x4(%eax) > 4d4: eb 06 jmp 4dc <pci_cfgregwrite+0x15c> > 4d6: 8b 45 e8 mov -0x18(%ebp),%eax > 4d9: 89 58 04 mov %ebx,0x4(%eax) > 4dc: 8b 55 e8 mov -0x18(%ebp),%edx > 4df: 89 1a mov %ebx,(%edx) > 4e1: 89 53 04 mov %edx,0x4(%ebx) >{ > > if (cfgmech == CFGMECH_PCIE && > (bus >= pcie_minbus && bus <= pcie_maxbus) && > (bus != 0 || !(1 << slot & pcie_badslots))) > pciereg_cfgwrite(bus, slot, func, reg, data, bytes); > 4e4: 8b 55 18 mov 0x18(%ebp),%edx > > critical_enter(); > pa = PCIE_PADDR(pcie_base, reg, bus, slot, func); > papage = pa & ~PAGE_MASK; > elem = pciereg_findelem(papage); > va = elem->vapage | (pa & PAGE_MASK); > 4e7: 8b 45 e4 mov -0x1c(%ebp),%eax > 4ea: 25 ff 0f 00 00 and $0xfff,%eax > 4ef: 0b 43 08 or 0x8(%ebx),%eax > 4f2: 89 45 f0 mov %eax,-0x10(%ebp) > > switch (bytes) { > 4f5: 83 ff 02 cmp $0x2,%edi > 4f8: 74 18 je 512 <pci_cfgregwrite+0x192> > 4fa: 83 ff 04 cmp $0x4,%edi > 4fd: 74 07 je 506 <pci_cfgregwrite+0x186> > 4ff: 83 ff 01 cmp $0x1,%edi > 502: 75 1b jne 51f <pci_cfgregwrite+0x19f> > 504: eb 14 jmp 51a <pci_cfgregwrite+0x19a> > case 4: > *(volatile uint32_t *)(va) = data; > 506: 8b 45 f0 mov -0x10(%ebp),%eax > 509: 8b 4d 18 mov 0x18(%ebp),%ecx > 50c: 89 08 mov %ecx,(%eax) > 50e: 66 90 xchg %ax,%ax > 510: eb 0d jmp 51f <pci_cfgregwrite+0x19f> > break; > case 2: > *(volatile uint16_t *)(va) = data; > 512: 8b 45 f0 mov -0x10(%ebp),%eax >===================================================================== >== VIDCONSOLE BOOT HANGS HERE AT mov %dx,(%eax) >===================================================================== > 515: 66 89 10 mov %dx,(%eax) > 518: eb 05 jmp 51f <pci_cfgregwrite+0x19f> > break; > case 1: > *(volatile uint8_t *)(va) = data; > 51a: 8b 45 f0 mov -0x10(%ebp),%eax > 51d: 88 10 mov %dl,(%eax) > break; > } > > critical_exit(); > 51f: e8 fc ff ff ff call 520 <pci_cfgregwrite+0x1a0> > 524: e9 df 00 00 00 jmp 608 <pci_cfgregwrite+0x288> > 529: 8d b4 26 00 00 00 00 lea 0x0(%esi),%esi >====END SNIPPIT FROM pci_cfgreg.c
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 165561
:
122365
| 122366