Re: Current kernel with http://gnats.netbsd.org/39965 and pmap patches

Izumi Tsutsui <[email protected]>
Newsgroups gmane.os.netbsd.ports.atari
Message-ID <[email protected]>
[email protected] wrote:

> Thanks! I missed that one. I applied patch (but corrected place for minus sign
> for VM_MAX_KERNEL_ADDRESS just like in amiga/include/vmparam.h :))
> 
> Installer panics just like before with 030 cpu, but it works with 060 cpu, so it
> seems there's something funny happening with 030 that we need to sort out.

I don't understand what XXX calculations in amiga_init.c do and
how they map PA of Sysmap (Sysptmap_pa) into VM_MAX_KERNEL_ADDRESS
in mmu040_setup() case... (it's a bit different from other m68k ports)

But in mmu030_setup(), I don't think we can use the same way
to map Sysptmap_pa at the end of KVA with other m68k ports
which have 4KB page (i.e. PS/TIA/TIB == 12/10/10) because
amiga and atari have 8KB page (PS/TIA/TIB == 13/8/11) and
hardware segment table and software Sysptmap have different size.
(but I could be wrong since I'm not an m68k guru ;-)
---

--- atari/atari_init.c.0	2008-12-17 19:12:51.000000000 +0900
+++ atari/atari_init.c	2008-12-17 23:47:19.000000000 +0900
@@ -918,7 +918,7 @@
 	u_int		sysptmap_pa;	/* System page table		*/
 	u_int		kbase;
 {
-	st_entry_t	sg_proto, *sg;
+	st_entry_t	sg_proto, *sg, *esg;
 	pt_entry_t	pg_proto, *pg, *epg;
 
 	/*
@@ -938,14 +938,20 @@
 	}
 
 	/* 
-	 * invalidate the remainder of the tables
+	 * Invalidate the remainder of the tables.
 	 */
-	/* XXX PAGE_SIZE dependent constant: 256 or 1024 */
-	epg = (u_int *)(sysptmap_pa + (256 - 1) * sizeof(st_entry_t));
-	while(pg < epg) {
+#define TIA_SIZE	256
+	esg = (u_int *)(sysptmap_pa + (TIA_SIZE - 1) * sizeof(st_entry_t));
+	while (sg < esg)
 		*sg++ = SG_NV;
+
+	epg = (u_int *)(sysptmap_pa + (NPTEPG - 1) * sizeof(st_entry_t));
+	while (pg < epg)
 		*pg++ = PG_NV;
-	}
+
+	/*
+	 * Initialize the last one to point Sysptmap.
+	 */
 	*sg = sysptmap_pa | SG_RW | SG_V;
 	*pg = sysptmap_pa | PG_RW | PG_CI | PG_V;
 }

---
Izumi Tsutsui
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.