12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- /*
- * arch/arm/plat-orion/include/plat/addr-map.h
- *
- * Marvell Orion SoC address map handling.
- *
- * This file is licensed under the terms of the GNU General Public
- * License version 2. This program is licensed "as is" without any
- * warranty of any kind, whether express or implied.
- */
- #ifndef __PLAT_ADDR_MAP_H
- #define __PLAT_ADDR_MAP_H
- extern struct mbus_dram_target_info orion_mbus_dram_info;
- struct orion_addr_map_cfg {
- const int num_wins; /* Total number of windows */
- const int remappable_wins;
- void __iomem *bridge_virt_base;
- int hw_io_coherency;
- /* If NULL, the default cpu_win_can_remap will be used, using
- the value in remappable_wins */
- int (*cpu_win_can_remap) (const struct orion_addr_map_cfg *cfg,
- const int win);
- /* If NULL, the default win_cfg_base will be used, using the
- value in bridge_virt_base */
- void __iomem *(*win_cfg_base) (const struct orion_addr_map_cfg *cfg,
- const int win);
- };
- /*
- * Information needed to setup one address mapping.
- */
- struct orion_addr_map_info {
- const int win;
- const u32 base;
- const u32 size;
- const u8 target;
- const u8 attr;
- const int remap;
- };
- void __init orion_config_wins(struct orion_addr_map_cfg *cfg,
- const struct orion_addr_map_info *info);
- void __init orion_setup_cpu_win(const struct orion_addr_map_cfg *cfg,
- const int win, const u32 base,
- const u32 size, const u8 target,
- const u8 attr, const int remap);
- void __init orion_setup_cpu_mbus_target(const struct orion_addr_map_cfg *cfg,
- const void __iomem *ddr_window_cpu_base);
- #endif
|