1/* 2 * (C) Copyright 2004 3 * DAVE Srl 4 * http://www.dave-tech.it 5 * http://www.wawnet.biz 6 * mailto:info@wawnet.biz 7 * 8 * See file CREDITS for list of people who contributed to this 9 * project. 10 * 11 * This program is free software; you can redistribute it and/or 12 * modify it under the terms of the GNU General Public License as 13 * published by the Free Software Foundation; either version 2 of 14 * the License, or (at your option) any later version. 15 * 16 * This program is distributed in the hope that it will be useful, 17 * but WITHOUT ANY WARRANTY; without even the implied warranty of 18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19 * GNU General Public License for more details. 20 * 21 * You should have received a copy of the GNU General Public License 22 * along with this program; if not, write to the Free Software 23 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, 24 * MA 02111-1307 USA 25 */ 26 27#include <common.h> 28#include <command.h> 29#include <asm/hardware.h> 30 31static void s3c44b0_flush_cache(void) 32{ 33 volatile int i; 34 /* flush cycle */ 35 for(i=0x10002000;i<0x10004800;i+=16) 36 { 37 *((int *)i)=0x0; 38 } 39} 40 41void icache_enable (void) 42{ 43 ulong reg; 44 45 s3c44b0_flush_cache(); 46 47 /* 48 Init cache 49 Non-cacheable area (everything outside RAM) 50 0x0000:0000 - 0x0C00:0000 51 */ 52 NCACHBE0 = 0xC0000000; 53 NCACHBE1 = 0x00000000; 54 55 /* 56 Enable chache 57 */ 58 reg = SYSCFG; 59 reg |= 0x00000006; /* 8kB */ 60 SYSCFG = reg; 61} 62 63void icache_disable (void) 64{ 65 ulong reg; 66 67 reg = SYSCFG; 68 reg &= ~0x00000006; /* 8kB */ 69 SYSCFG = reg; 70} 71 72int icache_status (void) 73{ 74 return 0; 75} 76 77void dcache_enable (void) 78{ 79 icache_enable(); 80} 81 82void dcache_disable (void) 83{ 84 icache_disable(); 85} 86 87int dcache_status (void) 88{ 89 return dcache_status(); 90} 91