Following on from similair change by Jason for xscale, pass the l1 page table into the map_chunk function so it can try to map the kernel in sections.

This commit is contained in:
chris 2002-01-19 18:51:58 +00:00
parent 39b858e3bf
commit e05c355470
1 changed files with 18 additions and 14 deletions

View File

@ -1,4 +1,4 @@
/* $NetBSD: cats_machdep.c,v 1.9 2002/01/12 13:37:55 chris Exp $ */ /* $NetBSD: cats_machdep.c,v 1.10 2002/01/19 18:51:58 chris Exp $ */
/* /*
* Copyright (c) 1997,1998 Mark Brinicombe. * Copyright (c) 1997,1998 Mark Brinicombe.
@ -560,19 +560,23 @@ initarm(bootargs)
else { else {
extern int end; extern int end;
logical = map_chunk(0, l2pagetable, KERNEL_TEXT_BASE, logical = map_chunk(l1pagetable, l2pagetable,
physical_start, kernexec->a_text, KERNEL_TEXT_BASE,
AP_KR, PT_CACHEABLE); physical_start, kernexec->a_text,
logical += map_chunk(0, l2pagetable, KERNEL_TEXT_BASE + logical, AP_KR, PT_CACHEABLE);
physical_start + logical, kernexec->a_data, logical += map_chunk(l1pagetable, l2pagetable,
AP_KRW, PT_CACHEABLE); KERNEL_TEXT_BASE + logical,
logical += map_chunk(0, l2pagetable, KERNEL_TEXT_BASE + logical, physical_start + logical, kernexec->a_data,
physical_start + logical, kernexec->a_bss, AP_KRW, PT_CACHEABLE);
AP_KRW, PT_CACHEABLE); logical += map_chunk(l1pagetable, l2pagetable,
logical += map_chunk(0, l2pagetable, KERNEL_TEXT_BASE + logical, KERNEL_TEXT_BASE + logical,
physical_start + logical, kernexec->a_syms + sizeof(int) physical_start + logical, kernexec->a_bss,
+ *(u_int *)((int)&end + kernexec->a_syms + sizeof(int)), AP_KRW, PT_CACHEABLE);
AP_KRW, PT_CACHEABLE); logical += map_chunk(l1pagetable, l2pagetable,
KERNEL_TEXT_BASE + logical,
physical_start + logical, kernexec->a_syms + sizeof(int)
+ *(u_int *)((int)&end + kernexec->a_syms + sizeof(int)),
AP_KRW, PT_CACHEABLE);
} }
/* /*