ryu: support for DMA region

Currently ryu needs a DMA region in order to communicate with
USB devices. Therefore, add that region to the memory map.

BUG=chrome-os-partner:31293
BRANCH=None
TEST=With usb added am able to talk to a USB mass storage device
     albeit inconsistently.

Change-Id: I7efaf2ba44cc94dc64af3f1cd916bdc5c7ff0795
Signed-off-by: Patrick Georgi <pgeorgi@chromium.org>
Original-Commit-Id: e93389479518ee28dc3477da0c6e6e33fa8a47d1
Original-Change-Id: I6b5c052ccaafce30705349e07639dffbb994901f
Original-Signed-off-by: Aaron Durbin <adurbin@chromium.org>
Original-Reviewed-on: https://chromium-review.googlesource.com/212162
Original-Reviewed-by: Furquan Shaikh <furquan@chromium.org>
Original-Commit-Queue: Furquan Shaikh <furquan@chromium.org>
Reviewed-on: http://review.coreboot.org/8926
Tested-by: build bot (Jenkins)
Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
This commit is contained in:
Aaron Durbin 2014-08-12 17:55:02 -05:00 committed by Patrick Georgi
parent 4633dc1887
commit 6941b77c87
2 changed files with 28 additions and 0 deletions

View File

@ -91,4 +91,12 @@ config EC_GOOGLE_CHROMEEC_I2C_BUS
hex
default 1
config DRAM_DMA_START
hex
default 0xc0000000
config DRAM_DMA_SIZE
hex
default 0x00200000
endif # BOARD_GOOGLE_RUSH_RYU

View File

@ -17,8 +17,10 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
#include <arch/mmu.h>
#include <device/device.h>
#include <boot/coreboot_tables.h>
#include <memrange.h>
#include <soc/addressmap.h>
#include <soc/clock.h>
@ -63,3 +65,21 @@ struct chip_operations mainboard_ops = {
.name = "rush_ryu",
.enable_dev = mainboard_enable,
};
void mainboard_add_memory_ranges(struct memranges *map)
{
/* Create non-cacheable region for DMA operations. */
memranges_insert(map, CONFIG_DRAM_DMA_START, CONFIG_DRAM_DMA_SIZE,
MA_MEM | MA_MEM_NC | MA_NS | MA_RW);
}
void lb_board(struct lb_header *header)
{
struct lb_range *dma;
dma = (struct lb_range *)lb_new_record(header);
dma->tag = LB_TAB_DMA;
dma->size = sizeof(*dma);
dma->range_start = CONFIG_DRAM_DMA_START;
dma->range_size = CONFIG_DRAM_DMA_SIZE;
}