Subject: port-sgimips/36158: SGI O2 memory detection issues
To: None <port-sgimips-maintainer@netbsd.org, gnats-admin@netbsd.org,>
From: None <jmcneill@invisible.ca>
List: netbsd-bugs
Date: 04/17/2007 01:05:01
>Number: 36158
>Category: port-sgimips
>Synopsis: NetBSD/sgimips does not properly detect the total amount of physical memory in an IP32 (O2) machine
>Confidential: no
>Severity: non-critical
>Priority: medium
>Responsible: port-sgimips-maintainer
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Tue Apr 17 01:05:00 +0000 2007
>Originator: jmcneill@invisible.ca
>Release: NetBSD 4.99.17
>Organization:
>Environment:
System: NetBSD o2 4.99.17 NetBSD 4.99.17 (GENERIC32_IP3x) #269: Mon Apr 16 20:28:01 EDT 2007 jmcneill@ptichka.invisible.ca:/Users/jmcneill/NetBSD/src/sys/arch/sgimips/compile/obj/GENERIC32_IP3x sgimips
Architecture: mipseb
Machine: sgimips
dmesg:
Copyright (c) 1982, 1986, 1989, 1991, 1993
The Regents of the University of California. All rights reserved.
NetBSD 4.99.17 (GENERIC32_IP3x) #269: Mon Apr 16 20:28:01 EDT 2007
jmcneill@ptichka.invisible.ca:/Users/jmcneill/NetBSD/src/sys/arch/sgimips/compile/obj/GENERIC32_IP3x
total memory = 256 MB
(6856 KB reserved for ARCS)
avail memory = 238 MB
timecounter: Timecounters tick every 10.000 msec
mainbus0 (root): SGI-IP32 [SGI, c], 1 processor
cpu0 at mainbus0: MIPS R5000 CPU (0x2321) Rev. 2.1 with built-in FPU Rev. 1.0
cpu0: 32KB/32B 2-way set-associative L1 Instruction cache, 48 TLB entries
cpu0: 32KB/32B 2-way set-associative write-back L1 Data cache
cpu0: 512KB/32B direct-mapped write-through L2 Unified cache
crime0 at mainbus0 addr 0x14000000: rev 1.1 (CRIME_ID: a1)
crmfb0 at mainbus0 addr 0x16000000: SGI CRIME Graphics Display Engine
crmfb0: initial resolution 1280x1024 8 bpp
crmfb0: allocated 1310720 byte fb @ 0x80060000 (0x80a20000)
wsdisplay0 at crmfb0 kbdmux 1: console (default, vt100 emulation)
wsmux1: connecting to wsdisplay0
mace0 at mainbus0 addr 0x1f000000
lpt0 at mace0 offset 0x380000 intr 4 intrmask 0xf0000
com0 at mace0 offset 0x390000 intr 4 intrmask 0x3f00000: ns16550a, working fifo
com1 at mace0 offset 0x398000 intr 4 intrmask 0xfc000000: ns16550a, working fifo
macekbc0 at mace0 offset 0x320000 intr 5 intrmask 0x0: PS2 controller
pckbd0 at macekbc0 (kbd slot)
wskbd0 at pckbd0 mux 1
wskbd0: connecting to wsdisplay0
pms0 at macekbc0 (aux slot)
wsmouse0 at pms0 mux 0
mcclock0 at mace0 offset 0x3a0000 intrmask 0x0
mec0 at mace0 offset 0x280000 intr 3 intrmask 0x0: MAC-110 Ethernet, rev 1
mec0: Ethernet address 08:00:69:0c:5c:6c
nsphy0 at mec0 phy 8: DP83840 10/100 media interface, rev. 1
nsphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
mavb0 at mace0 offset 0x300000 intr 6 intrmask 0x0: AD1843 rev 1
audio0 at mavb0: full duplex, independent
macepci0 at mace0 offset 0x80000 intr 7 intrmask 0x0: rev 1
pci0 at macepci0 bus 0
pci0: i/o space, memory space enabled, rd/line, rd/mult, wr/inv ok
ahc0 at pci0 dev 1 function 0: Adaptec aic7880 Ultra SCSI adapter
ahc0: interrupting at crime interrupt 8
ahc0: Using left over BIOS settings
ahc0: Host Adapter has no SEEPROM. Using default SCSI target parameters
ahc0: aic7880: Wide Channel A, SCSI Id=0, 16/253 SCBs
scsibus0 at ahc0: 16 targets, 8 luns per target
ahc1 at pci0 dev 2 function 0: Adaptec aic7880 Ultra SCSI adapter
ahc1: interrupting at crime interrupt 9
ahc1: Using left over BIOS settings
ahc1: Host Adapter has no SEEPROM. Using default SCSI target parameters
ahc1: aic7880: Wide Channel A, SCSI Id=0, 16/253 SCBs
scsibus1 at ahc1: 16 targets, 8 luns per target
ex0 at pci0 dev 3 function 0: 3Com 3c905-TX 10/100 Ethernet (rev. 0x0)
ex0: interrupting at crime interrupt 10
ex0: MAC address 00:60:97:26:79:18
nsphy1 at ex0 phy 24: DP83840 10/100 media interface, rev. 0
nsphy1: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
biomask 07 netmask 07 ttymask 07 clockmask 87
timecounter: Timecounter "clockinterrupt" frequency 100 Hz quality 0
timecounter: Timecounter "mips3_cp0_counter" frequency 90005200 Hz quality 100
scsibus0: waiting 2 seconds for devices to settle...
scsibus1: waiting 2 seconds for devices to settle...
sd0 at scsibus0 target 1 lun 0: <COMPAQ, BB00911CA0, 3B05> disk fixed
sd0: 8678 MB, 5273 cyl, 20 head, 168 sec, 512 bytes/sect x 17773524 sectors
sd0: sync (100.00ns offset 8), 16-bit (20.000MB/s) transfers, tagged queueing
cd0 at scsibus0 target 4 lun 0: <TOSHIBA, CD-ROM XM-5701TA, 0167> cdrom removable
cd0: sync (100.00ns offset 8), 8-bit (10.000MB/s) transfers
boot device: sd0
root on sd0a dumps on sd0b
root file system type: ffs
wsdisplay0: screen 1 added (default, vt100 emulation)
wsdisplay0: screen 2 added (default, vt100 emulation)
wsdisplay0: screen 3 added (default, vt100 emulation)
wsdisplay0: screen 4 added (default, vt100 emulation)
wsdisplay0: screen 5 added (default, vt100 emulation)
wsdisplay0: screen 6 added (default, vt100 emulation)
wsdisplay0: screen 7 added (default, vt100 emulation)
>Description:
ARCBIOS hinv reports that my O2 has 448MB of physical memory; however,
the logic in arch/sgimips/sgimips/machdep.c that uses ARCBIOS to
count the physical memory only ends up finding 256MB.
>How-To-Repeat:
Boot an O2 with > 256MB of RAM.
>Fix:
Unknown; Linux seems to use CRIME to count the physical memory on IP32,
but that doesn't easily let us skip over regions reserved by ARCBIOS;
maybe a combination of both is in order if mach_type == IP32?
>Unformatted: