Date: Fri, 2 Jun 2006 22:19:30 GMT From: Olivier Houchard <cognet@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 98366 for review Message-ID: <200606022219.k52MJUar040824@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=98366 Change 98366 by cognet@cognet on 2006/06/02 22:18:52 Add a new variable, s3c2410_uart_vaddr, to be able to give the uart virtual address from the board-dependant code. Nuke the got_mmu mess. There's no need to insert the mapped device into the initial pagetable provided by _start() when we're about to use the new pagetables anyway. Affected files ... .. //depot/projects/arm/src/sys/arm/s3c2xx0/fs2410_machdep.c#3 edit .. //depot/projects/arm/src/sys/arm/s3c2xx0/uart_cpu_s3c2410.c#2 edit Differences ... ==== //depot/projects/arm/src/sys/arm/s3c2xx0/fs2410_machdep.c#3 (text+ko) ==== @@ -176,15 +176,13 @@ extern void *_end; -int got_mmu = 0; - -extern vm_offset_t sa1_cache_clean_addr; - extern int *end; struct pcpu __pcpu; struct pcpu *pcpup = &__pcpu; +extern vm_offset_t s3c2410_uart_vaddr; + /* Physical and virtual addresses for some global pages */ vm_paddr_t phys_avail[10]; @@ -498,16 +496,9 @@ (7<<BANKCON_TACC_SHIFT)|(0<<BANKCON_TOCH_SHIFT)| (0<<BANKCON_TCAH_SHIFT)); - /* - * Map I/O registers that are used in startup. Now we are - * still using page table prepared by bootloader. Later we'll - * map those registers at the same address in the kernel page - * table. - */ - pmap_devmap_bootstrap((vm_offset_t)read_ttb(), fs2410_devmap); - /* Disable all peripheral interrupts */ ioreg_write32(INTCTL_VBASE + INTCTL_INTMSK, ~0); + s3c2410_uart_vaddr = UART_VBASE; cninit(); /* Set stack for exception handlers */ @@ -527,7 +518,6 @@ /* Enable MMU, I-cache, D-cache, write buffer. */ - got_mmu = 1; arm_vector_init(ARM_VECTORS_LOW, ARM_VEC_ALL); pmap_curmaxkvaddr = afterkern + PAGE_SIZE; ==== //depot/projects/arm/src/sys/arm/s3c2xx0/uart_cpu_s3c2410.c#2 (text+ko) ==== @@ -50,13 +50,15 @@ extern struct uart_ops uart_s3c2410_ops; +vm_offset_t s3c2410_uart_vaddr; + int uart_cpu_getdev(int devtype, struct uart_devinfo *di) { di->ops = uart_s3c2410_ops; di->bas.chan = 0; di->bas.bst = &s3c2xx0_bs_tag; - di->bas.bsh = 0x50000000; + di->bas.bsh = s3c2410_uart_vaddr; di->bas.regshft = 0; di->bas.rclk = 0; di->baudrate = 9600;
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200606022219.k52MJUar040824>