diff options
| author | thorpej <thorpej@NetBSD.org> | 2003-06-15 18:18:16 +0000 |
|---|---|---|
| committer | thorpej <thorpej@NetBSD.org> | 2003-06-15 18:18:16 +0000 |
| commit | cf8a25bdfcb5ff42096bede86fdd3469b516a37d (patch) | |
| tree | 333b8ae0ef523f543c4c9cccc71e6ae4311c8412 /sys | |
| parent | af662325205944803ec838b2af546e7bcb1e5479 (diff) | |
Add another devmap routine that allows bootstrap code to register
a devmap reflecting mappings that are created by really early
bootstrap code before pmap_devmap_bootstrap() is called.
Diffstat (limited to 'sys')
| -rw-r--r-- | sys/arch/arm/arm32/pmap.c | 17 | ||||
| -rw-r--r-- | sys/arch/arm/include/arm32/pmap.h | 3 |
2 files changed, 16 insertions, 4 deletions
diff --git a/sys/arch/arm/arm32/pmap.c b/sys/arch/arm/arm32/pmap.c index 06818e5ea1b..6725ecca56d 100644 --- a/sys/arch/arm/arm32/pmap.c +++ b/sys/arch/arm/arm32/pmap.c @@ -1,4 +1,4 @@ -/* $NetBSD: pmap.c,v 1.135 2003/06/15 17:45:21 thorpej Exp $ */ +/* $NetBSD: pmap.c,v 1.136 2003/06/15 18:18:16 thorpej Exp $ */ /* * Copyright 2003 Wasabi Systems, Inc. @@ -210,7 +210,7 @@ #include <machine/param.h> #include <arm/arm32/katelib.h> -__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.135 2003/06/15 17:45:21 thorpej Exp $"); +__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.136 2003/06/15 18:18:16 thorpej Exp $"); #ifdef PMAP_DEBUG #define PDEBUG(_lev_,_stat_) \ @@ -4499,6 +4499,18 @@ pmap_map_chunk(vaddr_t l1pt, vaddr_t va, paddr_t pa, vsize_t size, static const struct pmap_devmap *pmap_devmap_table; /* + * Register the devmap table. This is provided in case early console + * initialization needs to register mappings created by bootstrap code + * before pmap_devmap_bootstrap() is called. + */ +void +pmap_devmap_register(const struct pmap_devmap *table) +{ + + pmap_devmap_table = table; +} + +/* * Map all of the static regions in the devmap table, and remember * the devmap table so other parts of the kernel can look up entries * later. @@ -4508,7 +4520,6 @@ pmap_devmap_bootstrap(vaddr_t l1pt, const struct pmap_devmap *table) { int i; - KASSERT(pmap_devmap_table == NULL); pmap_devmap_table = table; for (i = 0; pmap_devmap_table[i].pd_size != 0; i++) { diff --git a/sys/arch/arm/include/arm32/pmap.h b/sys/arch/arm/include/arm32/pmap.h index 58cca7895af..b5f4e35a52e 100644 --- a/sys/arch/arm/include/arm32/pmap.h +++ b/sys/arch/arm/include/arm32/pmap.h @@ -1,4 +1,4 @@ -/* $NetBSD: pmap.h,v 1.73 2003/06/15 17:45:23 thorpej Exp $ */ +/* $NetBSD: pmap.h,v 1.74 2003/06/15 18:18:17 thorpej Exp $ */ /* * Copyright (c) 2002, 2003 Wasabi Systems, Inc. @@ -273,6 +273,7 @@ void pmap_map_entry(vaddr_t, vaddr_t, paddr_t, int, int); vsize_t pmap_map_chunk(vaddr_t, vaddr_t, paddr_t, vsize_t, int, int); void pmap_link_l2pt(vaddr_t, vaddr_t, pv_addr_t *); void pmap_devmap_bootstrap(vaddr_t, const struct pmap_devmap *); +void pmap_devmap_register(const struct pmap_devmap *); /* * Special page zero routine for use by the idle loop (no cache cleans). |
