[BACK]Return to pmap.c CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / sys / arch / sparc64 / sparc64

Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.

Diff for /src/sys/arch/sparc64/sparc64/pmap.c between version 1.56 and 1.57

version 1.56, 2000/06/19 23:30:36 version 1.57, 2000/06/24 04:38:20
Line 432  pmap_bootstrap(kernelstart, kernelend, m
Line 432  pmap_bootstrap(kernelstart, kernelend, m
         vaddr_t va;          vaddr_t va;
         u_int64_t phys_msgbuf;          u_int64_t phys_msgbuf;
         paddr_t newkp;          paddr_t newkp;
         vaddr_t newkv, firstaddr;          vaddr_t newkv, firstaddr, intstk;
         vsize_t kdsize, ktsize;          vsize_t kdsize, ktsize;
 #ifdef DEBUG  #ifdef DEBUG
         int opmapdebug = pmapdebug;          int opmapdebug = pmapdebug;
Line 1070  pmap_bootstrap(kernelstart, kernelend, m
Line 1070  pmap_bootstrap(kernelstart, kernelend, m
                         VM_FREELIST_DEFAULT);                          VM_FREELIST_DEFAULT);
         }          }
   
   #if 0
         /* finally, free up any space that valloc did not use */          /* finally, free up any space that valloc did not use */
           prom_unmap_virt((vaddr_t)ekdatap, (kdatap + (4*MEG)) - ekdatap);
         if (ekdatap < (kdatap + (4*MEG))) {          if (ekdatap < (kdatap + (4*MEG))) {
                 uvm_page_physload(atop(ekdatap), atop(kdatap + (4*MEG)),                  uvm_page_physload(atop(ekdatap), atop(kdatap + (4*MEG)),
                         atop(ekdatap), atop(kdatap + (4*MEG)),                          atop(ekdatap), atop(kdatap + (4*MEG)),
                         VM_FREELIST_DEFAULT);                          VM_FREELIST_DEFAULT);
         }          }
   #endif
   
 #ifdef BOOT_DEBUG  #ifdef BOOT_DEBUG
         /* print out mem list */          /* print out mem list */
Line 1150  pmap_bootstrap(kernelstart, kernelend, m
Line 1153  pmap_bootstrap(kernelstart, kernelend, m
                 0 /* No ALIAS */,                  0 /* No ALIAS */,
                 1 /* valid */,                  1 /* valid */,
                 0 /* IE */);                  0 /* IE */);
         data |= TLB_L|TLB_NFO;          data |= TLB_NFO;
         pmap_enter_kpage(NULL, data);          pmap_enter_kpage(NULL, data);
 #ifdef BOOT1_DEBUG  #ifdef BOOT1_DEBUG
         prom_printf("Done inserting mesgbuf into pmap_kernel()\r\n");          prom_printf("Done inserting mesgbuf into pmap_kernel()\r\n");
Line 1210  pmap_bootstrap(kernelstart, kernelend, m
Line 1213  pmap_bootstrap(kernelstart, kernelend, m
   
                 while (vmmap < u0[1]) {                  while (vmmap < u0[1]) {
                         int64_t data;                          int64_t data;
                         vaddr_t va = (vaddr_t)vmmap;  
   
                         pmap_get_page(&pa);                          pmap_get_page(&pa);
                         prom_map_phys(pa, NBPG, va, -1);                          prom_map_phys(pa, NBPG, vmmap, -1);
                         data = TSB_DATA(0 /* global */,                          data = TSB_DATA(0 /* global */,
                                 TLB_8K,                                  TLB_8K,
                                 pa,                                  pa,
Line 1223  pmap_bootstrap(kernelstart, kernelend, m
Line 1225  pmap_bootstrap(kernelstart, kernelend, m
                                 FORCE_ALIAS /* ALIAS -- Disable D$ */,                                  FORCE_ALIAS /* ALIAS -- Disable D$ */,
                                 1 /* valid */,                                  1 /* valid */,
                                 0 /* IE */);                                  0 /* IE */);
                         pmap_enter_kpage(va, data);                          pmap_enter_kpage(vmmap, data);
                         vmmap += NBPG;                          vmmap += NBPG;
                 }                  }
 #ifdef BOOT1_DEBUG  #ifdef BOOT1_DEBUG
Line 1234  pmap_bootstrap(kernelstart, kernelend, m
Line 1236  pmap_bootstrap(kernelstart, kernelend, m
 #ifdef DIAGNOSTIC  #ifdef DIAGNOSTIC
                 vmmap += NBPG; /* redzone -- XXXX do we need one? */                  vmmap += NBPG; /* redzone -- XXXX do we need one? */
 #endif  #endif
                 if ((vmmap ^ CPUINFO_VA) & VA_ALIAS_MASK)                  if ((vmmap ^ INTSTACK) & VA_ALIAS_MASK)
                         vmmap += NBPG; /* Matchup virtual color for D$ */                          vmmap += NBPG; /* Matchup virtual color for D$ */
                 cpus = (struct cpu_info *)vmmap;                  intstk = vmmap;
                   cpus = (struct cpu_info *)(vmmap+EINTSTACK-INTSTACK);
   
 #ifdef BOOT1_DEBUG  #ifdef BOOT1_DEBUG
         prom_printf("Inserting cpu_info into pmap_kernel() at %p\r\n", cpus);          prom_printf("Inserting cpu_info into pmap_kernel() at %p\r\n", cpus);
Line 1245  pmap_bootstrap(kernelstart, kernelend, m
Line 1248  pmap_bootstrap(kernelstart, kernelend, m
                 pa = cpu0paddr;                  pa = cpu0paddr;
                 for (i=0; i<8; i++) {                  for (i=0; i<8; i++) {
                         int64_t data;                          int64_t data;
                         vaddr_t va = (vaddr_t)vmmap;  
   
                         prom_map_phys(pa, NBPG, va, -1);                          prom_map_phys(pa, NBPG, vmmap, -1);
                         data = TSB_DATA(0 /* global */,                          data = TSB_DATA(0 /* global */,
                                 TLB_8K,                                  TLB_8K,
                                 pa,                                  pa,
Line 1257  pmap_bootstrap(kernelstart, kernelend, m
Line 1259  pmap_bootstrap(kernelstart, kernelend, m
                                 FORCE_ALIAS /* ALIAS -- Disable D$ */,                                  FORCE_ALIAS /* ALIAS -- Disable D$ */,
                                 1 /* valid */,                                  1 /* valid */,
                                 0 /* IE */);                                  0 /* IE */);
                         pmap_enter_kpage(va, data);                          pmap_enter_kpage(vmmap, data);
                         vmmap += NBPG;                          vmmap += NBPG;
                         pa += NBPG;                          pa += NBPG;
                 }                  }
Line 1266  pmap_bootstrap(kernelstart, kernelend, m
Line 1268  pmap_bootstrap(kernelstart, kernelend, m
 #endif  #endif
   
                 /* Initialize our cpu_info structure */                  /* Initialize our cpu_info structure */
                 bzero(cpus, 8*NBPG);                  bzero(intstk, 8*NBPG);
                 cpus->ci_next = NULL; /* Redundant, I know. */                  cpus->ci_next = NULL; /* Redundant, I know. */
                 cpus->ci_curproc = &proc0;                  cpus->ci_curproc = &proc0;
                 cpus->ci_cpcb = (struct pcb *)u0[0]; /* Need better source */                  cpus->ci_cpcb = (struct pcb *)u0[0]; /* Need better source */
Line 1304  pmap_bootstrap(kernelstart, kernelend, m
Line 1306  pmap_bootstrap(kernelstart, kernelend, m
 void  void
 pmap_init()  pmap_init()
 {  {
         u_int64_t pagesize;  
         u_int64_t pte;  
         vm_page_t m;          vm_page_t m;
         paddr_t pa;          paddr_t pa;
         psize_t size;          psize_t size;

Legend:
Removed from v.1.56  
changed lines
  Added in v.1.57

CVSweb <webmaster@jp.NetBSD.org>