summaryrefslogtreecommitdiffstats
path: root/sys/arm/sa11x0
diff options
context:
space:
mode:
authorcognet <cognet@FreeBSD.org>2006-06-07 11:28:17 +0000
committercognet <cognet@FreeBSD.org>2006-06-07 11:28:17 +0000
commitef695e4fb6095c65158e0de6abff4690bd59f670 (patch)
treef5dc39f8687e45a8775b1d463d20d9d11b02dbaf /sys/arm/sa11x0
parent8ec3e70ee9ce1a1267e9e8f9c3c823f0c5ca7e61 (diff)
downloadFreeBSD-src-ef695e4fb6095c65158e0de6abff4690bd59f670.zip
FreeBSD-src-ef695e4fb6095c65158e0de6abff4690bd59f670.tar.gz
Now that we use pmap_mapdev_boostrap(), we can get ride of the got_mmu
hack. Submitted by: kevlo
Diffstat (limited to 'sys/arm/sa11x0')
-rw-r--r--sys/arm/sa11x0/assabet_machdep.c4
-rw-r--r--sys/arm/sa11x0/uart_cpu_sa1110.c4
-rw-r--r--sys/arm/sa11x0/uart_dev_sa1110.c26
3 files changed, 3 insertions, 31 deletions
diff --git a/sys/arm/sa11x0/assabet_machdep.c b/sys/arm/sa11x0/assabet_machdep.c
index ce0048a..28c0019 100644
--- a/sys/arm/sa11x0/assabet_machdep.c
+++ b/sys/arm/sa11x0/assabet_machdep.c
@@ -126,7 +126,7 @@ struct pv_addr kernel_pt_table[NUM_KERNEL_PTS];
extern void *_end;
-int got_mmu = 0;
+extern vm_offset_t sa1110_uart_vaddr;
extern vm_offset_t sa1_cache_clean_addr;
@@ -222,6 +222,7 @@ initarm(void *arg, void *arg2)
int i = 0;
uint32_t fake_preload[35];
uint32_t memsize = 32 * 1024 * 1024;
+ sa1110_uart_vaddr = SACOM1_VBASE;
boothowto = RB_VERBOSE | RB_SINGLE;
cninit();
@@ -433,7 +434,6 @@ initarm(void *arg, void *arg2)
/* Enable MMU, I-cache, D-cache, write buffer. */
cpufunc_control(0x337f, 0x107d);
- got_mmu = 1;
arm_vector_init(ARM_VECTORS_LOW, ARM_VEC_ALL);
pmap_curmaxkvaddr = freemempos + KERNEL_PT_VMDATA_NUM * 0x400000;
diff --git a/sys/arm/sa11x0/uart_cpu_sa1110.c b/sys/arm/sa11x0/uart_cpu_sa1110.c
index e8b548b..b9b2c99 100644
--- a/sys/arm/sa11x0/uart_cpu_sa1110.c
+++ b/sys/arm/sa11x0/uart_cpu_sa1110.c
@@ -50,15 +50,13 @@ uart_cpu_eqres(struct uart_bas *b1, struct uart_bas *b2)
return ((b1->bsh == b2->bsh && b1->bst == b2->bst) ? 1 : 0);
}
-extern int got_mmu;
-
int
uart_cpu_getdev(int devtype, struct uart_devinfo *di)
{
di->ops = uart_sa1110_ops;
di->bas.chan = 0;
di->bas.bst = &sa11x0_bs_tag;
- di->bas.bsh = SACOM1_BASE;
+ di->bas.bsh = sa1110_uart_vaddr;
di->bas.regshft = 0;
di->bas.rclk = 0;
di->baudrate = 9600;
diff --git a/sys/arm/sa11x0/uart_dev_sa1110.c b/sys/arm/sa11x0/uart_dev_sa1110.c
index 4fa99ea..77bc2df 100644
--- a/sys/arm/sa11x0/uart_dev_sa1110.c
+++ b/sys/arm/sa11x0/uart_dev_sa1110.c
@@ -45,8 +45,6 @@ __FBSDID("$FreeBSD$");
#define DEFAULT_RCLK 3686400
-extern int got_mmu;
-
/*
* Low-level UART interface.
*/
@@ -57,8 +55,6 @@ static void sa1110_putc(struct uart_bas *bas, int);
static int sa1110_poll(struct uart_bas *bas);
static int sa1110_getc(struct uart_bas *bas, struct mtx *mtx);
-int did_mmu = 0;
-
extern SLIST_HEAD(uart_devinfo_list, uart_devinfo) uart_sysdevs;
struct uart_ops uart_sa1110_ops = {
@@ -77,22 +73,11 @@ sa1110_probe(struct uart_bas *bas)
}
static void
-sa1110_addr_change(struct uart_bas *bas)
-{
-
- bas->bsh = SACOM1_VBASE;
- did_mmu = 1;
-}
-
-static void
sa1110_init(struct uart_bas *bas, int baudrate, int databits, int stopbits,
int parity)
{
int brd;
- /* XXX: sigh. */
- if (!did_mmu && got_mmu)
- sa1110_addr_change(bas);
if (bas->rclk == 0)
bas->rclk = DEFAULT_RCLK;
while (uart_getreg(bas, SACOM_SR1) & SR1_TBY);
@@ -112,10 +97,6 @@ sa1110_term(struct uart_bas *bas)
static void
sa1110_putc(struct uart_bas *bas, int c)
{
- /* XXX: sigh. */
- if (!did_mmu && got_mmu)
- sa1110_addr_change(bas);
-
while (!uart_getreg(bas, SACOM_SR1) & SR1_TNF);
uart_setreg(bas, SACOM_DR, c);
}
@@ -123,10 +104,6 @@ sa1110_putc(struct uart_bas *bas, int c)
static int
sa1110_poll(struct uart_bas *bas)
{
- /* XXX: sigh. */
- if (!did_mmu && got_mmu)
- sa1110_addr_change(bas);
-
if (!(uart_getreg(bas, SACOM_SR1) & SR1_RNE))
return (-1);
return (uart_getreg(bas, SACOM_DR) & 0xff);
@@ -136,9 +113,6 @@ static int
sa1110_getc(struct uart_bas *bas, struct mtx *mtx)
{
int c;
- /* XXX: sigh. */
- if (!did_mmu && got_mmu)
- sa1110_addr_change(bas);
while (!(uart_getreg(bas, SACOM_SR1) & SR1_RNE)) {
u_int32_t sr0;
OpenPOWER on IntegriCloud