Deleted Added
full compact
s3c24x0_machdep.c (236828) s3c24x0_machdep.c (236990)
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

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

33 * SUCH DAMAGE.
34 *
35 * RiscBSD kernel project
36 *
37 * machdep.c
38 *
39 * Machine dependant functions for kernel setup
40 *
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

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

33 * SUCH DAMAGE.
34 *
35 * RiscBSD kernel project
36 *
37 * machdep.c
38 *
39 * Machine dependant functions for kernel setup
40 *
41 * This file needs a lot of work.
41 * This file needs a lot of work.
42 *
43 * Created : 17/09/94
44 */
45
46#include "opt_ddb.h"
47
48#include <sys/cdefs.h>
42 *
43 * Created : 17/09/94
44 */
45
46#include "opt_ddb.h"
47
48#include <sys/cdefs.h>
49__FBSDID("$FreeBSD: head/sys/arm/s3c2xx0/s3c24x0_machdep.c 236828 2012-06-10 01:13:04Z andrew $");
49__FBSDID("$FreeBSD: head/sys/arm/s3c2xx0/s3c24x0_machdep.c 236990 2012-06-13 04:59:00Z imp $");
50
51#define _ARM32_BUS_DMA_PRIVATE
52#include <sys/param.h>
53#include <sys/systm.h>
54#include <sys/sysproto.h>
55#include <sys/signalvar.h>
56#include <sys/imgact.h>
57#include <sys/kernel.h>

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

145static const struct pmap_devmap s3c24x0_devmap[] = {
146 /*
147 * Map the devices we need early on.
148 */
149 {
150 _A(S3C24X0_CLKMAN_BASE),
151 _A(S3C24X0_CLKMAN_PA_BASE),
152 _S(S3C24X0_CLKMAN_SIZE),
50
51#define _ARM32_BUS_DMA_PRIVATE
52#include <sys/param.h>
53#include <sys/systm.h>
54#include <sys/sysproto.h>
55#include <sys/signalvar.h>
56#include <sys/imgact.h>
57#include <sys/kernel.h>

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

145static const struct pmap_devmap s3c24x0_devmap[] = {
146 /*
147 * Map the devices we need early on.
148 */
149 {
150 _A(S3C24X0_CLKMAN_BASE),
151 _A(S3C24X0_CLKMAN_PA_BASE),
152 _S(S3C24X0_CLKMAN_SIZE),
153 VM_PROT_READ|VM_PROT_WRITE,
153 VM_PROT_READ|VM_PROT_WRITE,
154 PTE_NOCACHE,
155 },
156 {
157 _A(S3C24X0_GPIO_BASE),
158 _A(S3C24X0_GPIO_PA_BASE),
159 _S(S3C2410_GPIO_SIZE),
154 PTE_NOCACHE,
155 },
156 {
157 _A(S3C24X0_GPIO_BASE),
158 _A(S3C24X0_GPIO_PA_BASE),
159 _S(S3C2410_GPIO_SIZE),
160 VM_PROT_READ|VM_PROT_WRITE,
160 VM_PROT_READ|VM_PROT_WRITE,
161 PTE_NOCACHE,
162 },
163 {
164 _A(S3C24X0_INTCTL_BASE),
165 _A(S3C24X0_INTCTL_PA_BASE),
166 _S(S3C24X0_INTCTL_SIZE),
161 PTE_NOCACHE,
162 },
163 {
164 _A(S3C24X0_INTCTL_BASE),
165 _A(S3C24X0_INTCTL_PA_BASE),
166 _S(S3C24X0_INTCTL_SIZE),
167 VM_PROT_READ|VM_PROT_WRITE,
167 VM_PROT_READ|VM_PROT_WRITE,
168 PTE_NOCACHE,
169 },
170 {
171 _A(S3C24X0_TIMER_BASE),
172 _A(S3C24X0_TIMER_PA_BASE),
173 _S(S3C24X0_TIMER_SIZE),
168 PTE_NOCACHE,
169 },
170 {
171 _A(S3C24X0_TIMER_BASE),
172 _A(S3C24X0_TIMER_PA_BASE),
173 _S(S3C24X0_TIMER_SIZE),
174 VM_PROT_READ|VM_PROT_WRITE,
174 VM_PROT_READ|VM_PROT_WRITE,
175 PTE_NOCACHE,
176 },
177 {
178 _A(S3C24X0_UART0_BASE),
179 _A(S3C24X0_UART0_PA_BASE),
180 _S(S3C24X0_UART_PA_BASE(3) - S3C24X0_UART0_PA_BASE),
175 PTE_NOCACHE,
176 },
177 {
178 _A(S3C24X0_UART0_BASE),
179 _A(S3C24X0_UART0_PA_BASE),
180 _S(S3C24X0_UART_PA_BASE(3) - S3C24X0_UART0_PA_BASE),
181 VM_PROT_READ|VM_PROT_WRITE,
181 VM_PROT_READ|VM_PROT_WRITE,
182 PTE_NOCACHE,
183 },
184 {
185 _A(S3C24X0_WDT_BASE),
186 _A(S3C24X0_WDT_PA_BASE),
187 _S(S3C24X0_WDT_SIZE),
182 PTE_NOCACHE,
183 },
184 {
185 _A(S3C24X0_WDT_BASE),
186 _A(S3C24X0_WDT_PA_BASE),
187 _S(S3C24X0_WDT_SIZE),
188 VM_PROT_READ|VM_PROT_WRITE,
188 VM_PROT_READ|VM_PROT_WRITE,
189 PTE_NOCACHE,
190 },
191 {
192 0,
193 0,
194 0,
195 0,
196 0,

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

276 for (loop = 0; loop < NUM_KERNEL_PTS; ++loop) {
277 if (!(loop % (PAGE_SIZE / L2_TABLE_SIZE_REAL))) {
278 valloc_pages(kernel_pt_table[loop],
279 L2_TABLE_SIZE / PAGE_SIZE);
280 } else {
281 kernel_pt_table[loop].pv_va = freemempos -
282 (loop % (PAGE_SIZE / L2_TABLE_SIZE_REAL)) *
283 L2_TABLE_SIZE_REAL;
189 PTE_NOCACHE,
190 },
191 {
192 0,
193 0,
194 0,
195 0,
196 0,

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

276 for (loop = 0; loop < NUM_KERNEL_PTS; ++loop) {
277 if (!(loop % (PAGE_SIZE / L2_TABLE_SIZE_REAL))) {
278 valloc_pages(kernel_pt_table[loop],
279 L2_TABLE_SIZE / PAGE_SIZE);
280 } else {
281 kernel_pt_table[loop].pv_va = freemempos -
282 (loop % (PAGE_SIZE / L2_TABLE_SIZE_REAL)) *
283 L2_TABLE_SIZE_REAL;
284 kernel_pt_table[loop].pv_pa =
284 kernel_pt_table[loop].pv_pa =
285 kernel_pt_table[loop].pv_va - KERNVIRTADDR +
286 KERNPHYSADDR;
287 }
288 }
289 /*
290 * Allocate a page for the system page mapped to V0x00000000
291 * This page will just contain the system vectors and can be
292 * shared by all processes.

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

310 pmap_link_l2pt(l1pagetable, ARM_VECTORS_HIGH,
311 &kernel_pt_table[KERNEL_PT_SYS]);
312 for (i = 0; i < KERNEL_PT_KERN_NUM; i++)
313 pmap_link_l2pt(l1pagetable, KERNBASE + i * L1_S_SIZE,
314 &kernel_pt_table[KERNEL_PT_KERN + i]);
315 pmap_map_chunk(l1pagetable, KERNBASE, PHYSADDR,
316 (((uint32_t)(lastaddr) - KERNBASE) + PAGE_SIZE) & ~(PAGE_SIZE - 1),
317 VM_PROT_READ|VM_PROT_WRITE, PTE_CACHE);
285 kernel_pt_table[loop].pv_va - KERNVIRTADDR +
286 KERNPHYSADDR;
287 }
288 }
289 /*
290 * Allocate a page for the system page mapped to V0x00000000
291 * This page will just contain the system vectors and can be
292 * shared by all processes.

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

310 pmap_link_l2pt(l1pagetable, ARM_VECTORS_HIGH,
311 &kernel_pt_table[KERNEL_PT_SYS]);
312 for (i = 0; i < KERNEL_PT_KERN_NUM; i++)
313 pmap_link_l2pt(l1pagetable, KERNBASE + i * L1_S_SIZE,
314 &kernel_pt_table[KERNEL_PT_KERN + i]);
315 pmap_map_chunk(l1pagetable, KERNBASE, PHYSADDR,
316 (((uint32_t)(lastaddr) - KERNBASE) + PAGE_SIZE) & ~(PAGE_SIZE - 1),
317 VM_PROT_READ|VM_PROT_WRITE, PTE_CACHE);
318 afterkern = round_page((lastaddr + L1_S_SIZE) & ~(L1_S_SIZE
318 afterkern = round_page((lastaddr + L1_S_SIZE) & ~(L1_S_SIZE
319 - 1));
320 for (i = 0; i < KERNEL_PT_AFKERNEL_NUM; i++) {
321 pmap_link_l2pt(l1pagetable, afterkern + i * L1_S_SIZE,
322 &kernel_pt_table[KERNEL_PT_AFKERNEL + i]);
323 }
324
325 /* Map the vector page. */
326 pmap_map_entry(l1pagetable, ARM_VECTORS_HIGH, systempage.pv_pa,

--- 115 unchanged lines hidden ---
319 - 1));
320 for (i = 0; i < KERNEL_PT_AFKERNEL_NUM; i++) {
321 pmap_link_l2pt(l1pagetable, afterkern + i * L1_S_SIZE,
322 &kernel_pt_table[KERNEL_PT_AFKERNEL + i]);
323 }
324
325 /* Map the vector page. */
326 pmap_map_entry(l1pagetable, ARM_VECTORS_HIGH, systempage.pv_pa,

--- 115 unchanged lines hidden ---