1*47673Scael.\" Copyright (c) 1986, 1991 Regents of the University of California. 2*47673Scael.\" All rights reserved. 330149Smckusick.\" 4*47673Scael.\" %sccs.include.redist.man% 530149Smckusick.\" 6*47673Scael.\" @(#)mem.4 6.3 (Berkeley) 03/27/91 7*47673Scael.\" 8*47673Scael.Dd 9*47673Scael.Dt MEM 4 tahoe 10*47673Scael.Os 11*47673Scael.Sh NAME 12*47673Scael.Nm mem , 13*47673Scael.Nm kmem , 14*47673Scael.Nm vmem 15*47673Scael.Nd main memory 16*47673Scael.Sh DESCRIPTION 17*47673ScaelThe special file 18*47673Scael.Nm /dev/mem 19*47673Scaelis an interface to the physical memory of the computer. 20*47673ScaelByte offsets in this file are interpreted as physical memory addresses. 21*47673ScaelReading and writing this file is equivalent to reading and writing 22*47673Scaelmemory itself. 23*47673ScaelOnly offsets within the bounds of 24*47673Scael.Nm /dev/mem 25*47673Scaelare allowed. 26*47673Scael.Pp 27*47673ScaelKernel virtual memory is accessed through the interface 28*47673Scael.Nm /dev/kmem 29*47673Scaelin the same manner as 30*47673Scael.Nm /dev/mem . 31*47673ScaelOnly kernel virtual addresses that are currently mapped to memory are allowed. 32*47673Scael.Pp 3330149SmckusickThe file 34*47673Scael.Nm /dev/vmem 35*47673Scaelallows access to the mapped portion of the 36*47673Scael.Tn VERSAbus 37*47673Scael.Tn I/O 38*47673Scaelspace. On the Tahoe the upper megabyte 3931722Ssamof the physical address space is accessible through 4031722Ssamthis file (0xfff00000 through 0xffffffff). 4131722SsamAccesses to the upper 64 kilobytes of 42*47673Scaelthe 43*47673Scael.Tn I/O 44*47673Scaelspace result in 45*47673Scael.Tn VERSAbus 46*47673Scaeltransfers with a 4731722Ssam16-bit address (the offset in this region) and a 48*47673Scael.Dq No non-privileged short Tn I/O 49*47673Scael.Tn VERSAbus 50*47673Scaeladdress modifier. 5131722SsamAccesses to the remainder of the mapped region, 52*47673Scaelresult in 53*47673Scael.Tn VERSAbus 54*47673Scaeltransfers with a 24-bit address 55*47673Scaeland a ``non-privileged standard'' 56*47673Scael.Tn VERSAbus 57*47673Scaeladdress 5831722Ssammodifier. This region is actually part of the region 5931722Ssambetween 0xfeff0000 and 0xffff0000 60*47673Scaelwhich generates 61*47673Scael.Tn VERSAbus 62*47673Scaeltransfers with a 24-bit address. 63*47673ScaelAccesses to the remainder of the one gigabyte 64*47673Scael.Tn I/O 65*47673Scaelspace 6631722Ssamgenerate transfers that utilize a 32-bit address with 6731722Ssama ``non-privileged extended'' address modifier. Any 6831722Ssam32-bit address generated by a cpu access to this part 69*47673Scaelof the 70*47673Scael.Tn I/O 71*47673Scaelspace have the upper two bits zero; thus, 7231722Ssamfor example, an access to physical address 0xfe000000 7331722Ssamcauses the address 0x3e000000 to be supplied in the 74*47673Scaelresultant 75*47673Scael.Tn VERSAbus 76*47673Scaelread/write cycle. 77*47673Scael.Pp 7831722SsamOn the Tahoe, the 79*47673Scaelbase address for the 80*47673Scaelper-process data of the current process 81*47673Scaelis virtual address 0xbffff000. 82*47673Scael.Sh FILES 83*47673Scael.Bl -tag -width Pa -compact 84*47673Scael.It Pa /dev/mem 85*47673Scael.It Pa /dev/kmem 86*47673Scael.It Pa /dev/vmm 87*47673Scael.El 88*47673Scael.Sh HISTORY 89*47673ScaelThe 90*47673Scael.Nm mem , 91*47673Scael.Nm kmem 92*47673Scaelfiles appeared in 93*47673Scael.At v6 . 94*47673ScaelThe file 95*47673Scael.Nm vmem 96*47673Scaelappeared in 97*47673Scael.Bx 4.3 tahoe . 98*47673Scael.Sh BUGS 9930149SmckusickMemory files are accessed one byte 10030149Smckusickat a time, an inappropiate method for some 10130149Smckusickdevice registers. 102