Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 20133
b: refs/heads/master
c: 53d9cc7
h: refs/heads/master
i:
  20131: c1b1318
v: v3
  • Loading branch information
Tony Lindgren authored and Russell King committed Feb 8, 2006
1 parent 90fd69d commit a1f3663
Show file tree
Hide file tree
Showing 4 changed files with 40 additions and 19 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 083d06edfda28fdee41ac46dc57ad4949927acd9
refs/heads/master: 53d9cc7395c8dbe8d7fd6f9acd6578b236d14a0f
42 changes: 25 additions & 17 deletions trunk/arch/arm/mach-omap1/io.c
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
#include <linux/kernel.h>
#include <linux/init.h>

#include <asm/tlb.h>
#include <asm/mach/map.h>
#include <asm/io.h>
#include <asm/arch/mux.h>
Expand Down Expand Up @@ -83,15 +84,24 @@ static struct map_desc omap16xx_io_desc[] __initdata = {
};
#endif

static int initialized = 0;

static void __init _omap_map_io(void)
/*
* Maps common IO regions for omap1. This should only get called from
* board specific init.
*/
void __init omap1_map_common_io(void)
{
initialized = 1;

/* We have to initialize the IO space mapping before we can run
* cpu_is_omapxxx() macros. */
iotable_init(omap_io_desc, ARRAY_SIZE(omap_io_desc));

/* Normally devicemaps_init() would flush caches and tlb after
* mdesc->map_io(), but we must also do it here because of the CPU
* revision check below.
*/
local_flush_tlb_all();
flush_cache_all();

/* We want to check CPU revision early for cpu_is_omapxxxx() macros.
* IO space mapping must be initialized before we can do that.
*/
omap_check_revision();

#ifdef CONFIG_ARCH_OMAP730
Expand All @@ -111,7 +121,14 @@ static void __init _omap_map_io(void)
#endif

omap_sram_init();
}

/*
* Common low-level hardware init for omap1. This should only get called from
* board specific init.
*/
void __init omap1_init_common_hw()
{
/* REVISIT: Refer to OMAP5910 Errata, Advisory SYS_1: "Timeout Abort
* on a Posted Write in the TIPB Bridge".
*/
Expand All @@ -121,16 +138,7 @@ static void __init _omap_map_io(void)
/* Must init clocks early to assure that timer interrupt works
*/
omap1_clk_init();
}

/*
* This should only get called from board specific init
*/
void __init omap_map_common_io(void)
{
if (!initialized) {
_omap_map_io();
omap1_mux_init();
}
omap1_mux_init();
}

9 changes: 9 additions & 0 deletions trunk/arch/arm/plat-omap/sram.c
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
#include <linux/init.h>

#include <asm/mach/map.h>
#include <asm/tlb.h>
#include <asm/io.h>
#include <asm/cacheflush.h>

Expand Down Expand Up @@ -95,6 +96,14 @@ void __init omap_map_sram(void)
omap_sram_io_desc[0].pfn, omap_sram_io_desc[0].virtual,
omap_sram_io_desc[0].length);

/*
* Normally devicemaps_init() would flush caches and tlb after
* mdesc->map_io(), but since we're called from map_io(), we
* must do it here.
*/
local_flush_tlb_all();
flush_cache_all();

/*
* Looks like we need to preserve some bootloader code at the
* beginning of SRAM for jumping to flash for reboot to work...
Expand Down
6 changes: 5 additions & 1 deletion trunk/include/asm-arm/arch-omap/io.h
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,11 @@ typedef struct { volatile u32 offset[4096]; } __regbase32;
->offset[((vaddr)&4095)>>2]
#define __REG32(paddr) __REGV32(io_p2v(paddr))

extern void omap_map_common_io(void);
extern void omap1_map_common_io(void);
extern void omap1_init_common_hw(void);

extern void omap2_map_common_io(void);
extern void omap2_init_common_hw(void);

#else

Expand Down

0 comments on commit a1f3663

Please sign in to comment.