PERFORCE change 71412 for review
Olivier Houchard
cognet at FreeBSD.org
Sun Feb 20 13:25:05 PST 2005
http://perforce.freebsd.org/chv.cgi?CH=71412
Change 71412 by cognet at cognet on 2005/02/20 21:24:07
Bring back a more generic locore.S. Also fix the braindead attempt
to get the pc to our virtual space. in ts7200_machdep.c, move the
call to cninit() after the new page table is used, since the uart
memio is not mapped anymore in locore.S
Affected files ...
.. //depot/projects/arm/src/sys/arm/arm/locore.S#4 edit
.. //depot/projects/arm/src/sys/arm/ep93xx/ts7200_machdep.c#4 edit
Differences ...
==== //depot/projects/arm/src/sys/arm/arm/locore.S#4 (text+ko) ====
@@ -1,6 +1,8 @@
+<<<<<<< locore.S
+=======
/* $NetBSD: locore.S,v 1.14 2003/04/20 16:21:40 thorpej Exp $ */
-/*-
+/*
* Copyright (C) 1994-1997 Mark Brinicombe
* Copyright (C) 1994 Brini
* All rights reserved.
@@ -37,7 +39,7 @@
#include <machine/asm.h>
#include <machine/armreg.h>
#include <machine/pte.h>
-__FBSDID("$FreeBSD: src/sys/arm/arm/locore.S,v 1.8 2005/01/23 22:08:31 cognet Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/arm/locore.S,v 1.4 2004/09/28 14:37:08 cognet Exp $");
/* What size should this really be ? It is only used by init_arm() */
#define INIT_ARM_STACK_SIZE 2048
@@ -129,10 +131,7 @@
3:
ldmia r4!, {r1,r2,r3} /* # of sections, PA|attr, VA */
cmp r1, #0
- adrne r5, 2b
- bicne r5, r5, #0xff000000
- orrne r5, r5, #PHYSADDR
- movne pc, r5
+ bne 2b
mcr p15, 0, r0, c2, c0, 0 /* Set TTB */
mcr p15, 0, r0, c8, c7, 0 /* Flush TLB */
@@ -160,20 +159,6 @@
subs r2, r2, #4
bgt .L1
- /* fix up the pc to be at KERNVIRTADDR */
- ldr r4, =KERNVIRTADDR
- cmp pc, r4
-#if KERNVIRTADDR > KERNPHYSADDR
- ldr r4, =KERNVIRTADDR
- ldr r5, =KERNPHYSADDR
- sub r4, r4, r5
- add pc, pc, r4
-#else
- ldrgt r4, =KERNPHYSADDR
- ldrgt r5, =KERNVIRTADDR
- subgt r4, r4, r5
- sublt pc, pc, r4
-#endif
ldr fp, =KERNVIRTADDR /* trace back starts here */
bl _C_LABEL(initarm) /* Off we go */
@@ -195,11 +180,12 @@
.word STARTUP_PAGETABLE_ADDR
mmu_init_table:
/* fill all table VA==PA */
+ MMU_INIT(0x00000000, 0x00000000, 1<<(32-L1_S_SHIFT), L1_TYPE_S|L1_S_AP(AP_KRW))
/* map SDRAM VA==PA, WT cacheable */
MMU_INIT(PHYSADDR, PHYSADDR , 64, L1_TYPE_S|L1_S_C|L1_S_AP(AP_KRW))
/* map VA 0xc0000000..0xc3ffffff to PA */
MMU_INIT(KERNBASE, PHYSADDR, 64, L1_TYPE_S|L1_S_C|L1_S_AP(AP_KRW))
- MMU_INIT(0xf0100000, 0x80800000, 1<<(32-L1_S_SHIFT), L1_TYPE_S|L1_S_AP(AP_KRW))
+ MMU_INIT(0xfe800000, 0xfe800000, 1<<(32-L1_S_SHIFT), L1_TYPE_S|L1_S_AP(AP_KRW))
.word 0 /* end of table */
#endif
@@ -314,23 +300,18 @@
mov pc, r7
#endif
-ENTRY(asm_putc)
- ldr r1, =0xf01c0000
- strb r0, [r1]
- mov pc, lr
-
/*
* setjump + longjmp
*/
ENTRY(setjmp)
stmia r0, {r4-r14}
mov r0, #0x00000000
- RET
+ mov pc, lr
ENTRY(longjmp)
ldmia r0, {r4-r14}
mov r0, #0x00000001
- RET
+ mov pc, lr
.data
.global _C_LABEL(esym)
@@ -357,3 +338,4 @@
szsigcode:
.long esigcode-sigcode
/* End of locore.S */
+>>>>>>> 1.4
==== //depot/projects/arm/src/sys/arm/ep93xx/ts7200_machdep.c#4 (text+ko) ====
@@ -221,7 +221,6 @@
boothowto |= RB_VERBOSE | RB_SINGLE;
i = 0;
set_cpufuncs();
- cninit();
fake_preload[i++] = MODINFO_NAME;
fake_preload[i++] = strlen("elf kernel") + 1;
@@ -395,6 +394,7 @@
cpu_tlb_flushID();
cpu_domains(DOMAIN_CLIENT << (PMAP_DOMAIN_KERNEL*2));
+ cninit();
/*
* Pages were allocated during the secondary bootstrap for the
More information about the p4-projects
mailing list