a10_machdep.c (259365) | a10_machdep.c (266084) |
---|---|
1/*- 2 * Copyright (c) 2012 Ganbold Tsagaankhuu <ganbold@gmail.com> 3 * All rights reserved. 4 * 5 * This code is derived from software written for Brini by Mark Brinicombe 6 * 7 * Redistribution and use in source and binary forms, with or without 8 * modification, are permitted provided that the following conditions --- 18 unchanged lines hidden (view full) --- 27 * 28 * from: FreeBSD: //depot/projects/arm/src/sys/arm/ti/ti_machdep.c 29 */ 30 31#include "opt_ddb.h" 32#include "opt_platform.h" 33 34#include <sys/cdefs.h> | 1/*- 2 * Copyright (c) 2012 Ganbold Tsagaankhuu <ganbold@gmail.com> 3 * All rights reserved. 4 * 5 * This code is derived from software written for Brini by Mark Brinicombe 6 * 7 * Redistribution and use in source and binary forms, with or without 8 * modification, are permitted provided that the following conditions --- 18 unchanged lines hidden (view full) --- 27 * 28 * from: FreeBSD: //depot/projects/arm/src/sys/arm/ti/ti_machdep.c 29 */ 30 31#include "opt_ddb.h" 32#include "opt_platform.h" 33 34#include <sys/cdefs.h> |
35__FBSDID("$FreeBSD: stable/10/sys/arm/allwinner/a10_machdep.c 259365 2013-12-14 00:16:08Z ian $"); | 35__FBSDID("$FreeBSD: stable/10/sys/arm/allwinner/a10_machdep.c 266084 2014-05-14 19:18:58Z ian $"); |
36 37#define _ARM32_BUS_DMA_PRIVATE 38#include <sys/param.h> 39#include <sys/systm.h> 40#include <sys/bus.h> 41 42#include <vm/vm.h> 43#include <vm/pmap.h> 44 45#include <machine/bus.h> 46#include <machine/devmap.h> 47#include <machine/machdep.h> 48 49#include <dev/fdt/fdt_common.h> 50 51#include <arm/allwinner/a10_wdog.h> 52 | 36 37#define _ARM32_BUS_DMA_PRIVATE 38#include <sys/param.h> 39#include <sys/systm.h> 40#include <sys/bus.h> 41 42#include <vm/vm.h> 43#include <vm/pmap.h> 44 45#include <machine/bus.h> 46#include <machine/devmap.h> 47#include <machine/machdep.h> 48 49#include <dev/fdt/fdt_common.h> 50 51#include <arm/allwinner/a10_wdog.h> 52 |
53/* Start of address space used for bootstrap map */ 54#define DEVMAP_BOOTSTRAP_MAP_START 0xE0000000 55 56 | |
57vm_offset_t 58initarm_lastaddr(void) 59{ 60 | 53vm_offset_t 54initarm_lastaddr(void) 55{ 56 |
61 return (DEVMAP_BOOTSTRAP_MAP_START); | 57 return (arm_devmap_lastaddr()); |
62} 63 64void 65initarm_early_init(void) 66{ | 58} 59 60void 61initarm_early_init(void) 62{ |
67 | |
68} 69 70void 71initarm_gpio_init(void) 72{ 73} 74 75void 76initarm_late_init(void) 77{ 78} 79 | 63} 64 65void 66initarm_gpio_init(void) 67{ 68} 69 70void 71initarm_late_init(void) 72{ 73} 74 |
80#define FDT_DEVMAP_MAX (1 + 2 + 1 + 1) 81static struct arm_devmap_entry fdt_devmap[FDT_DEVMAP_MAX] = { 82 { 0, 0, 0, 0, 0, } 83}; 84 | |
85/* | 75/* |
86 * Construct pmap_devmap[] with DT-derived config data. | 76 * Set up static device mappings. 77 * 78 * This covers all the on-chip device with 1MB section mappings, which is good 79 * for performance (uses fewer TLB entries for device access). 80 * 81 * XXX It also covers a block of SRAM and some GPU (mali400) stuff that maybe 82 * shouldn't be device-mapped. The original code mapped a 4MB block, but 83 * perhaps a 1MB block would be more appropriate. |
87 */ 88int 89initarm_devmap_init(void) 90{ | 84 */ 85int 86initarm_devmap_init(void) 87{ |
91 int i = 0; | |
92 | 88 |
93 fdt_devmap[i].pd_va = 0xE1C00000; 94 fdt_devmap[i].pd_pa = 0x01C00000; 95 fdt_devmap[i].pd_size = 0x00400000; /* 4 MB */ 96 fdt_devmap[i].pd_prot = VM_PROT_READ | VM_PROT_WRITE; 97 fdt_devmap[i].pd_cache = PTE_DEVICE; | 89 arm_devmap_add_entry(0x01C00000, 0x00400000); /* 4MB */ |
98 | 90 |
99 i++; 100 101 arm_devmap_register_table(&fdt_devmap[0]); 102 | |
103 return (0); 104} 105 106struct arm32_dma_range * 107bus_dma_get_range(void) 108{ 109 return (NULL); 110} --- 14 unchanged lines hidden --- | 91 return (0); 92} 93 94struct arm32_dma_range * 95bus_dma_get_range(void) 96{ 97 return (NULL); 98} --- 14 unchanged lines hidden --- |