From owner-p4-projects@FreeBSD.ORG Sun Apr 6 16:41:15 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4EB1537B404; Sun, 6 Apr 2003 16:41:15 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 06A5E37B401 for ; Sun, 6 Apr 2003 16:41:15 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id A06BC43F3F for ; Sun, 6 Apr 2003 16:41:14 -0700 (PDT) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h36NfE0U091034 for ; Sun, 6 Apr 2003 16:41:14 -0700 (PDT) (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h36NfEvM091031 for perforce@freebsd.org; Sun, 6 Apr 2003 16:41:14 -0700 (PDT) Date: Sun, 6 Apr 2003 16:41:14 -0700 (PDT) Message-Id: <200304062341.h36NfEvM091031@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to peter@freebsd.org using -f From: Peter Wemm To: Perforce Change Reviews Subject: PERFORCE change 28370 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 06 Apr 2003 23:41:16 -0000 http://perforce.freebsd.org/chv.cgi?CH=28370 Change 28370 by peter@peter_overcee on 2003/04/06 16:41:10 set the direct mappings correctly. 1GB at physical address zero, and 1GB at KERNBASE (hardcoded for now). Remove debug printfs. Affected files ... .. //depot/projects/hammer/sys/boot/i386/libi386/elf64_freebsd.c#6 edit Differences ... ==== //depot/projects/hammer/sys/boot/i386/libi386/elf64_freebsd.c#6 (text+ko) ==== @@ -89,7 +89,6 @@ bi->bi_symtab = ssym; /* XXX this is only the primary kernel symtab */ bi->bi_esymtab = esym; -printf("initializing trampoline, __base=%#x\n", __base); #define PG_V 0x001 #define PG_RW 0x002 #define PG_U 0x004 @@ -102,23 +101,25 @@ PT4[0] = (p4_entry_t)VTOP((uintptr_t)&PT3[0]); PT4[0] |= PG_V | PG_RW | PG_U; - /* four PDP entries, 1G each */ - for (i = 0; i < 4; i++) { - PT3[i] = (p3_entry_t)VTOP((uintptr_t)&PT2[i * 512]); - PT3[i] |= PG_V | PG_RW | PG_U; - } + /* Direct map 1GB at address zero */ + PT3[0] = (p3_entry_t)VTOP((uintptr_t)&PT2[0]); + PT3[0] |= PG_V | PG_RW | PG_U; + + /* Direct map 1GB at KERNBASE (hardcoded for now) */ + PT3[1] = (p3_entry_t)VTOP((uintptr_t)&PT2[0]); + PT3[1] |= PG_V | PG_RW | PG_U; - /* 2048 PG_PS (2MB) page mappings */ - for (i = 0; i < 2048; i++) { + /* 512 PG_PS (2MB) page mappings for 1GB of direct mapping */ + for (i = 0; i < 512; i++) { PT2[i] = i * (2 * 1024 * 1024); PT2[i] |= PG_V | PG_RW | PG_PS | PG_U; } entry_lo = ehdr->e_entry & 0xffffffff; entry_hi = (ehdr->e_entry >> 32) & 0xffffffff; - printf("entry_hi: %#x \n", entry_hi); - printf("entry_lo: %#x \n", entry_lo); +#ifdef DEBUG printf("Start @ %#llx ...\n", ehdr->e_entry); +#endif dev_cleanup(); __exec((void *)VTOP(x86_64_tramp), boothowto, bootdev, 0, 0, 0, bootinfop, modulep, bi->bi_kernend);