diff options
Diffstat (limited to 'common/mem.c')
-rw-r--r-- | common/mem.c | 169 |
1 files changed, 0 insertions, 169 deletions
diff --git a/common/mem.c b/common/mem.c deleted file mode 100644 index 580d7a3588..0000000000 --- a/common/mem.c +++ /dev/null @@ -1,169 +0,0 @@ -/* - * (C) Copyright 2000 - * Wolfgang Denk, DENX Software Engineering, wd@denx.de. - * - * See file CREDITS for list of people who contributed to this - * project. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, - * MA 02111-1307 USA - */ - -/** - * @file - * @brief Some common used memory functions - * - * Copied from FADS ROM, Dan Malek (dmalek@jlc.net) - */ - -#include <common.h> -#include <init.h> -#include <driver.h> -#include <errno.h> -#include <fs.h> -#include <fcntl.h> -#include <getopt.h> - -/** Shared data buffer for all memory commands */ -char rw_buf[RW_BUF_SIZE]; - -/** The default device all memory commands are working on */ -char memory_device[] = "/dev/mem"; - -/** - * Open the given file and seek to the specified file position - * @param[in] filename Guess what - * @param[in] mode Mode of operation (see O_*) - * @param[in] pos Position to seek to - * @return Valid filedescriptor on success, or negative value in case of errors - */ -int open_and_lseek(const char *filename, int mode, ulong pos) -{ - int fd, ret; - - fd = open(filename, mode | O_RDONLY); - if (fd < 0) { - perror("open"); - return fd; - } - - ret = lseek(fd, pos, SEEK_SET); - if (ret < 0) { - perror("lseek"); - close(fd); - return ret; - } - - return fd; -} - -/** - * Parse the options common to all memory related commands - * @param[in] argc FIXME - * @param[in] argv FIXME - * @param[in] optstr FIXME - * @param[out] mode FIXME - * @param[out] sourcefile Pointer will be modified if -s param was given - * @param[out] destfile Pointer will be modified if -d param was given - * @return 0 on success, negative value in case of errors - */ -int mem_parse_options(int argc, char *argv[], char *optstr, int *mode, - char **sourcefile, char **destfile) -{ - int opt; - - getopt_reset(); - - while((opt = getopt(argc, argv, optstr)) > 0) { - switch(opt) { - case 'b': - *mode = O_RWSIZE_1; - break; - case 'w': - *mode = O_RWSIZE_2; - break; - case 'l': - *mode = O_RWSIZE_4; - break; - case 's': - *sourcefile = optarg; - break; - case 'd': - *destfile = optarg; - break; - default: - return -1; - } - } - - return 0; -} - -/** The generic memory device to represent the whole physical address space */ -static struct device_d mem_dev = { - .name = "mem", - .id = "mem", - .map_base = 0, /**< starts at physical address 0 */ - .size = ~0, /**< FIXME: should be 0x100000000, ahem... */ -}; - -static struct driver_d mem_drv = { - .name = "mem", - .probe = dummy_probe, - .read = mem_read, - .write = mem_write, -}; - -static struct driver_d ram_drv = { - .name = "ram", - .probe = dummy_probe, - .read = mem_read, - .write = mem_write, - .type = DEVICE_TYPE_DRAM, -}; - -static struct driver_d rom_drv = { - .name = "rom", - .probe = dummy_probe, - .read = mem_read, -}; - -static int mem_init(void) -{ - register_device(&mem_dev); - register_driver(&mem_drv); - register_driver(&ram_drv); - register_driver(&rom_drv); - return 0; -} - -device_initcall(mem_init); - -/** - * @page generic_devices Generic devices - * - * Most devices in U-Boot-v2 depending on the hardware and this means on the BSP. - * But some devices are generic for some platforms or architectures or some - * other are generic for all targets. - * - * \b /dev/mem - * - * This devices represents the whole physical address space of the running CPU. - * In the case you want to access some physical address, you can use this device. - * It starts at the offset 0x0000000 and ends at the highest available physical - * address of the running CPU. - * - * @note All memory commands are working with this device as default. - */ |