blob: eb7b23e2b1a4cd33aece3d81c96052b0875ef81f [file] [log] [blame]
Gabe Black396b0722013-09-26 16:22:09 -07001/*
2 * This file is part of the coreboot project.
3 *
Aaron Durbinc6588c52015-05-15 13:15:34 -05004 * Copyright 2015 Google Inc.
Gabe Black396b0722013-09-26 16:22:09 -07005 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; version 2 of the License.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to the Free Software
Patrick Georgib890a122015-03-26 15:17:45 +010017 * Foundation, Inc.
Gabe Black396b0722013-09-26 16:22:09 -070018 */
19
Aaron Durbinc6588c52015-05-15 13:15:34 -050020#include <boot_device.h>
Gabe Black396b0722013-09-26 16:22:09 -070021
Aaron Durbinc6588c52015-05-15 13:15:34 -050022/* The ROM is memory mapped just below 4GiB. Form a pointer for the base. */
23#define rom_base ((void *)(uintptr_t)(-(int32_t)CONFIG_ROM_SIZE))
Gabe Black396b0722013-09-26 16:22:09 -070024
Aaron Durbinc6588c52015-05-15 13:15:34 -050025static const struct mem_region_device boot_dev =
26 MEM_REGION_DEV_INIT(rom_base, CONFIG_ROM_SIZE);
27
28const struct region_device *boot_device_ro(void)
Gabe Black396b0722013-09-26 16:22:09 -070029{
Aaron Durbinc6588c52015-05-15 13:15:34 -050030 return &boot_dev.rdev;
Gabe Black396b0722013-09-26 16:22:09 -070031}