/dev/smem structure

Hi

Looking for any info on structure of /dev/smem on Uniflex running on 68010 Tektronix 4404 - or something similar!

I can see it looks like a bunch of tables of pointers. But to what?

Adam

Can you share what you see? How big is it?

It is, apparently, a view of “system memory” as contrasted with /dev/pmem which is “physical memory”.

Yes, my understanding its actually kernel tables and the like.

The first 256 bytes look like some sort of jump table to me:

00000000   0003 FFF0  0001 2D86   0001 07B4  0001 07D8   |......-.........|
00000010   0001 05B0  0001 054A   0001 0542  0001 053A   |.......J...B...:|
00000020   0001 0552  0001 05B8   0001 052A  0001 0532   |...R.......*...2|
00000030   0074 09FA  0074 09FA   0074 09FA  0074 09FA   |.t...t...t...t..|
00000040   0074 09FA  0074 09FA   0074 09FA  0074 09FA   |.t...t...t...t..|
00000050   0074 09FA  0074 09FA   0074 09FA  0074 09FA   |.t...t...t...t..|
00000060   0074 0A72  0001 04B4   0006 009A  0001 062E   |.t.r............|
00000070   0074 0A72  0001 0642   0001 330C  0074 3956   |.t.r...B..3..t9V|
00000080   0001 04D8  0001 04EC   0001 0502  0001 050A   |................|
00000090   0001 0512  0001 051A   0001 0522  0001 0522   |..........."..."|
000000A0   0001 0522  0001 0522   0001 0522  0001 2D70   |..."..."..."..-p|
000000B0   0001 4554  0001 3A34   0001 0522  0001 04D8   |..ET..:4..."....|
000000C0   0074 09FA  0074 09FA   0074 09FA  0074 09FA   |.t...t...t...t..|
000000D0   0074 09FA  0074 09FA   0074 09FA  0074 09FA   |.t...t...t...t..|
000000E0   0074 09FA  0074 09FA   0074 09FA  0074 09FA   |.t...t...t...t..|
000000F0   0074 09FA  0074 09FA   0074 09FA  0074 09FA   |.t...t...t...t..|
00000100   FFFF FFFF  0001 0000   0000 0000  0000 FFFF   |................|
00000110   0000 0000  0000 FF00   0000 1FFF  0100 0020   |............... |
00000120   0000 0000  0000 0000   0000 0000  0000 0000   |................|

Is it as large as the whole of memory? Could this just be usual contents of the first words of memory? See for example here.

I am working on the assumption that /dev/pmem is the straight mapping to physical memory but interesting thought.

Is it possible that smem is ROM and pmem is RAM??

Looks to me like that starts with the 68000 trap table. Look how the first two entries put the stack at the top and jump somewhere believable. The pattenr for the vectors looks credibly like that too.

I thought the Uniflex source was floating around somewhere or was that just the 6809 code ?

The Missing 6809 UniFLEX Archive 6809

Yes, its all 6809 / 6800 versions of Uniflex. :frowning:
If /dev/smem is really showing first 256 bytes of memory, unclear what /dev/pmem is for…

Presuming some where there is a struct that defines what is in these memory maps.

Well it may not be physical 0. The 68010 has a vector base register. Does the hardware present any different sets of mappings in different modes - eg physical memory / supervisor memory being not the same beast ?

68000 doesn’t have any built-in vm support - but this Tek4404 does support VM; ie all addresses are in a logical 8M space and mapped to the physical 2M of RAM ibn 4k pages.

68010 has full virtualization support for an external MMU including instruction restart in hardware. Dumping the VBR register might also tell you something because the vectors don’t have to be at physical 0 on a 68010 so if there’s some kind of offset in /dev/smem it may well match the value in the VBR

Failing that some apps that fill a page with an unlikely to be repeated pattern and a scan of both ought to give you some idea of how the mappings relate