Module Name: src Committed By: tsutsui Date: Wed Jul 1 13:44:33 UTC 2009
Modified Files: src/sys/arch/atari/atari: atari_init.c Log Message: Define and use macro to calculate kernel physical addresses after relocation to TT RAM. No binary changes. To generate a diff of this commit: cvs rdiff -u -r1.79 -r1.80 src/sys/arch/atari/atari/atari_init.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/arch/atari/atari/atari_init.c diff -u src/sys/arch/atari/atari/atari_init.c:1.79 src/sys/arch/atari/atari/atari_init.c:1.80 --- src/sys/arch/atari/atari/atari_init.c:1.79 Wed Mar 18 16:00:10 2009 +++ src/sys/arch/atari/atari/atari_init.c Wed Jul 1 13:44:32 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: atari_init.c,v 1.79 2009/03/18 16:00:10 cegger Exp $ */ +/* $NetBSD: atari_init.c,v 1.80 2009/07/01 13:44:32 tsutsui Exp $ */ /* * Copyright (c) 1995 Leo Weppelman @@ -33,7 +33,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: atari_init.c,v 1.79 2009/03/18 16:00:10 cegger Exp $"); +__KERNEL_RCSID(0, "$NetBSD: atari_init.c,v 1.80 2009/07/01 13:44:32 tsutsui Exp $"); #include "opt_ddb.h" #include "opt_mbtype.h" @@ -153,6 +153,8 @@ #endif int reloc_kernel = RELOC_KERNEL; /* Patchable */ +#define RELOC_PA(base, pa) ((base) + (pa)) /* used to set up PTE etc. */ + /* * this is the C-level entry function, it's called from locore.s. * Preconditions: @@ -358,7 +360,7 @@ * - Text pages are RO * - Page zero is invalid */ - pg_proto = (0 + kbase) /* relocated PA */ | PG_RO | PG_V; + pg_proto = RELOC_PA(kbase, 0) | PG_RO | PG_V; pg = (pt_entry_t *)ptpa; *pg++ = PG_NV; @@ -934,8 +936,8 @@ sg = (st_entry_t *)sysseg_pa; pg = (pt_entry_t *)sysptmap_pa; epg = &pg[ptsize >> PGSHIFT]; - sg_proto = (ptpa + kbase) /* relocated PA */ | SG_RW | SG_V; - pg_proto = (ptpa + kbase) /* relocated PA */ | PG_RW | PG_CI | PG_V; + sg_proto = RELOC_PA(kbase, ptpa) | SG_RW | SG_V; + pg_proto = RELOC_PA(kbase, ptpa) | PG_RW | PG_CI | PG_V; while (pg < epg) { *sg++ = sg_proto; *pg++ = pg_proto; @@ -962,8 +964,8 @@ sg = &sg[256 - 1]; /* XXX should be TIA_SIZE */ pg = (pt_entry_t *)sysptmap_pa; pg = &pg[256 - 1]; /* XXX should be TIA_SIZE */ - *sg = (sysptmap_pa + kbase) /* relocated PA */ | SG_RW | SG_V; - *pg = (sysptmap_pa + kbase) /* relocated PA */ | PG_RW | PG_CI | PG_V; + *sg = RELOC_PA(kbase, sysptmap_pa) | SG_RW | SG_V; + *pg = RELOC_PA(kbase, sysptmap_pa) | PG_RW | PG_CI | PG_V; } #if defined(M68040) || defined(M68060) @@ -1001,7 +1003,7 @@ sg = (st_entry_t *)sysseg_pa; sg = &sg[SG4_LEV1SIZE]; esg = &sg[nl2desc]; - sg_proto = (ptpa + kbase) /* relocated PA */ | SG_U | SG_RW | SG_V; + sg_proto = RELOC_PA(kbase, ptpa) | SG_U | SG_RW | SG_V; while (sg < esg) { *sg++ = sg_proto; sg_proto += (SG4_LEV3SIZE * sizeof(st_entry_t)); @@ -1015,7 +1017,7 @@ nl1desc = howmany(nl2desc, SG4_LEV2SIZE); sg = (st_entry_t *)sysseg_pa; esg = &sg[nl1desc]; - sg_proto = ((paddr_t)&sg[SG4_LEV1SIZE] + kbase) /* relocated PA */ + sg_proto = RELOC_PA(kbase, (paddr_t)&sg[SG4_LEV1SIZE]) | SG_U | SG_RW | SG_V; while (sg < esg) { *sg++ = sg_proto; @@ -1034,8 +1036,7 @@ sg = (st_entry_t *)sysseg_pa; sg = &sg[i + SG4_LEV2SIZE - (NPTEPG / SG4_LEV3SIZE)]; esg = &sg[NPTEPG / SG4_LEV3SIZE]; - sg_proto = (sysptmap_pa + kbase) /* relocated PA */ - | SG_U | SG_RW | SG_V; + sg_proto = RELOC_PA(kbase, sysptmap_pa) | SG_U | SG_RW | SG_V; while (sg < esg) { *sg++ = sg_proto; sg_proto += (SG4_LEV3SIZE * sizeof(st_entry_t)); @@ -1049,7 +1050,7 @@ */ pg = (pt_entry_t *)sysptmap_pa; epg = &pg[ptsize >> PGSHIFT]; - pg_proto = (ptpa + kbase) /* relocated PA */ | PG_RW | PG_CI | PG_V; + pg_proto = RELOC_PA(kbase + ptpa) | PG_RW | PG_CI | PG_V; while (pg < epg) { *pg++ = pg_proto; pg_proto += PAGE_SIZE; @@ -1068,7 +1069,7 @@ */ pg = (pt_entry_t *)sysptmap_pa; pg = &pg[256 - 1]; /* XXX: should be TIA_SIZE */ - *pg = (sysptmap_pa + kbase) /* relocated PA */ | PG_RW | PG_CI | PG_V; + *pg = RELOC_PA(kbase, sysptmap_pa) | PG_RW | PG_CI | PG_V; } #endif /* M68040 */