diff options
| author | jmcp <James.McPherson@Sun.COM> | 2009-12-03 01:41:29 -0800 |
|---|---|---|
| committer | jmcp <James.McPherson@Sun.COM> | 2009-12-03 01:41:29 -0800 |
| commit | 902408c74976ae981a40a253677084474ca7f2f5 (patch) | |
| tree | 05afd96ae9f3bb770c3a7028852110402f49b7c5 /usr/src/uts/sun4/os | |
| parent | 500b96d99247182b2f05a6cb2d63ca95fca0eace (diff) | |
| download | illumos-joyent-902408c74976ae981a40a253677084474ca7f2f5.tar.gz | |
backout 6840848: fails to build
Diffstat (limited to 'usr/src/uts/sun4/os')
| -rw-r--r-- | usr/src/uts/sun4/os/startup.c | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/usr/src/uts/sun4/os/startup.c b/usr/src/uts/sun4/os/startup.c index 41e1baaa20..ebb336f6d9 100644 --- a/usr/src/uts/sun4/os/startup.c +++ b/usr/src/uts/sun4/os/startup.c @@ -37,6 +37,7 @@ #include <sys/prom_plat.h> #include <sys/prom_isa.h> #include <sys/autoconf.h> +#include <sys/intreg.h> #include <sys/ivintr.h> #include <sys/fpu/fpusystm.h> #include <sys/iommutsb.h> @@ -464,12 +465,8 @@ printmemseg(struct memseg *memseg) * | | * | segkmem32 segment | (SYSLIMIT32 - SYSBASE32 = * | | ~64MB) - * |-----------------------| - * | IVSIZE | - * 0x00000000.70004000 -|-----------------------| - * | panicbuf | * 0x00000000.70002000 -|-----------------------| - * | PAGESIZE | + * | panicbuf | * 0x00000000.70000000 -|-----------------------|- SYSBASE32 * | boot-time | * | temporary space | @@ -825,6 +822,10 @@ alloc_kmem64(caddr_t base, caddr_t end) static prom_memlist_t *boot_physinstalled, *boot_physavail, *boot_virtavail; static size_t boot_physinstalled_len, boot_physavail_len, boot_virtavail_len; +#define IVSIZE roundup(((MAXIVNUM * sizeof (intr_vec_t *)) + \ + (MAX_RSVD_IV * sizeof (intr_vec_t)) + \ + (MAX_RSVD_IVX * sizeof (intr_vecx_t))), PAGESIZE) + #if !defined(C_OBP) /* * Install a temporary tte handler in OBP for kmem64 area. @@ -1469,8 +1470,16 @@ startup_memlist(void) bp_init(shm_alignment, HAT_STRICTORDER); /* - * Reserve space for MPO mblock structs from the 32-bit heap. + * Reserve space for panicbuf, intr_vec_table, reserved interrupt + * vector data structures and MPO mblock structs from the 32-bit heap. */ + (void) vmem_xalloc(heap32_arena, PANICBUFSIZE, PAGESIZE, 0, 0, + panicbuf, panicbuf + PANICBUFSIZE, + VM_NOSLEEP | VM_BESTFIT | VM_PANIC); + + (void) vmem_xalloc(heap32_arena, IVSIZE, PAGESIZE, 0, 0, + intr_vec_table, (caddr_t)intr_vec_table + IVSIZE, + VM_NOSLEEP | VM_BESTFIT | VM_PANIC); if (mpo_heap32_bufsz > (size_t)0) { (void) vmem_xalloc(heap32_arena, mpo_heap32_bufsz, |
