Module Name: src Committed By: matt Date: Mon Jun 17 04:37:39 UTC 2013
Modified Files: src/sys/arch/evbarm/beagle: beagle_machdep.c Log Message: Don't hardcode beagle_putchar com values. To generate a diff of this commit: cvs rdiff -u -r1.45 -r1.46 src/sys/arch/evbarm/beagle/beagle_machdep.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/arch/evbarm/beagle/beagle_machdep.c diff -u src/sys/arch/evbarm/beagle/beagle_machdep.c:1.45 src/sys/arch/evbarm/beagle/beagle_machdep.c:1.46 --- src/sys/arch/evbarm/beagle/beagle_machdep.c:1.45 Sun Jun 16 16:48:23 2013 +++ src/sys/arch/evbarm/beagle/beagle_machdep.c Mon Jun 17 04:37:39 2013 @@ -1,4 +1,4 @@ -/* $NetBSD: beagle_machdep.c,v 1.45 2013/06/16 16:48:23 matt Exp $ */ +/* $NetBSD: beagle_machdep.c,v 1.46 2013/06/17 04:37:39 matt Exp $ */ /* * Machine dependent functions for kernel setup for TI OSK5912 board. @@ -125,7 +125,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: beagle_machdep.c,v 1.45 2013/06/16 16:48:23 matt Exp $"); +__KERNEL_RCSID(0, "$NetBSD: beagle_machdep.c,v 1.46 2013/06/17 04:37:39 matt Exp $"); #include "opt_machdep.h" #include "opt_ddb.h" @@ -170,6 +170,9 @@ __KERNEL_RCSID(0, "$NetBSD: beagle_machd #include <arm/arm32/machdep.h> #include <arm/mainbus/mainbus.h> +#include <dev/ic/ns16550reg.h> +#include <dev/ic/comreg.h> + #include <arm/omap/omap_com.h> #include <arm/omap/omap_var.h> #include <arm/omap/omap_wdtvar.h> @@ -395,18 +398,20 @@ void beagle_putchar(char c) { #if NCOM > 0 - unsigned char *com0addr = (char *)CONSADDR_VA; + volatile uint32_t *com0addr = (volatile uint32_t *)CONSADDR_VA; int timo = 150000; - while ((com0addr[5 * 4] & 0x20) == 0) + while ((com0addr[com_lsr] & LSR_TXRDY) == 0) { if (--timo == 0) break; + } - com0addr[0] = c; + com0addr[com_data] = c; - while ((com0addr[5 * 4] & 0x20) == 0) + while ((com0addr[com_lsr] & LSR_TXRDY) == 0) { if (--timo == 0) break; + } #endif } @@ -428,9 +433,11 @@ initarm(void *arg) { psize_t ram_size = 0; char *ptr; + #if 1 beagle_putchar('d'); #endif + /* * When we enter here, we are using a temporary first level * translation table with section entries in it to cover the OBIO @@ -776,7 +783,8 @@ emif_memprobe(void) * OMAP4 and OMAP5 have two EMIFs so if the 2nd one is configured * like the first, we have twice the memory. */ - if (emif_read_sdram_config(OMAP_EMIF2_VBASE) == sdram_config) + const uint32_t sdram_config2 = emif_read_sdram_config(OMAP_EMIF2_VBASE); + if (sdram_config2 == sdram_config) memsize <<= 1; #endif