Deleted Added
sdiff udiff text old ( 160282 ) new ( 160363 )
full compact
1/*-
2 * Copyright (c) 1994-1998 Mark Brinicombe.
3 * Copyright (c) 1994 Brini.
4 * All rights reserved.
5 *
6 * This code is derived from software written for Brini by Mark Brinicombe
7 *
8 * Redistribution and use in source and binary forms, with or without

--- 31 unchanged lines hidden (view full) ---

40 *
41 * This file needs a lot of work.
42 *
43 * Created : 17/09/94
44 */
45
46#include "opt_msgbuf.h"
47#include "opt_ddb.h"
48
49#include <sys/cdefs.h>
50__FBSDID("$FreeBSD: head/sys/arm/at91/kb920x_machdep.c 160282 2006-07-12 00:48:50Z cognet $");
51
52#define _ARM32_BUS_DMA_PRIVATE
53#include <sys/param.h>
54#include <sys/systm.h>
55#include <sys/sysproto.h>
56#include <sys/signalvar.h>
57#include <sys/imgact.h>
58#include <sys/kernel.h>

--- 29 unchanged lines hidden (view full) ---

88#include <machine/undefined.h>
89#include <machine/machdep.h>
90#include <machine/metadata.h>
91#include <machine/armreg.h>
92#include <machine/bus.h>
93#include <sys/reboot.h>
94
95#include <arm/at91/at91rm92reg.h>
96
97#define KERNEL_PT_SYS 0 /* Page table for mapping proc0 zero page */
98#define KERNEL_PT_KERN 1
99#define KERNEL_PT_KERN_NUM 22
100#define KERNEL_PT_AFKERNEL KERNEL_PT_KERN + KERNEL_PT_KERN_NUM /* L2 table for mapping after kernel */
101#define KERNEL_PT_AFKERNEL_NUM 5
102
103/* this should be evenly divisable by PAGE_SIZE / L2_TABLE_SIZE_REAL (or 4) */

--- 76 unchanged lines hidden (view full) ---

180
181#define SDRAM_START 0xa0000000
182
183#ifdef DDB
184extern vm_offset_t ksym_start, ksym_end;
185#endif
186
187static long
188board_init(void)
189{
190 uint32_t *SDRAMC = (uint32_t *)(AT91RM92_BASE + AT91RM92_SDRAMC_BASE);
191 uint32_t cr, mr;
192 int banks, rows, cols, bw; /* log2 size */
193
194 cr = SDRAMC[AT91RM92_SDRAMC_CR / 4];
195 mr = SDRAMC[AT91RM92_SDRAMC_MR / 4];
196 bw = (mr & AT91RM92_SDRAMC_MR_DBW_16) ? 1 : 2;
197 banks = (cr & AT91RM92_SDRAMC_CR_NB_4) ? 2 : 1;
198 rows = ((cr & AT91RM92_SDRAMC_CR_NR_MASK) >> 2) + 11;
199 cols = (cr & AT91RM92_SDRAMC_CR_NC_MASK) + 8;
200 return (1 << (cols + rows + banks + bw));
201}
202
203void *
204initarm(void *arg, void *arg2)
205{
206 struct pv_addr kernel_l1pt;
207 int loop;
208 u_int l1pagetable;
209 vm_offset_t freemempos;
210 vm_offset_t afterkern;

--- 228 unchanged lines hidden ---