blob: 2f3c3f90f2aa814c17bbcd9eb78661e03f1f17cf [file] [log] [blame]
Simon Glassb4a905e2011-10-10 08:22:14 +00001/*
2 * Copyright (c) 2011 The Chromium OS Authors.
3 *
4 * (C) Copyright 2002
5 * Sysgo Real-Time Solutions, GmbH <www.elinos.com>
6 * Marius Groeger <mgroeger@sysgo.de>
7 *
8 * (C) Copyright 2002
9 * Sysgo Real-Time Solutions, GmbH <www.elinos.com>
10 * Alex Zuepke <azu@sysgo.de>
11 *
Wolfgang Denkd79de1d2013-07-08 09:37:19 +020012 * SPDX-License-Identifier: GPL-2.0+
Simon Glassb4a905e2011-10-10 08:22:14 +000013 */
14
15#ifndef _U_BOOT_SANDBOX_H_
16#define _U_BOOT_SANDBOX_H_
17
18/* board/.../... */
19int board_init(void);
Simon Glassb4a905e2011-10-10 08:22:14 +000020
Simon Glass0fc3c222012-02-26 17:38:50 -050021/* start.c */
Simon Glass8a3e0352012-02-15 15:51:16 -080022int sandbox_early_getopt_check(void);
Simon Glass0fc3c222012-02-26 17:38:50 -050023int sandbox_main_loop_init(void);
24
Simon Glass0aa63492013-11-10 10:27:07 -070025int cleanup_before_linux(void);
26
Simon Glassb9ddbf42014-02-27 13:26:19 -070027/* drivers/video/sandbox_sdl.c */
28int sandbox_lcd_sdl_early_init(void);
29
Simon Glass70778bc2015-03-05 12:25:26 -070030/**
31 * pci_map_physmem() - map a PCI device into memory
32 *
33 * This is used on sandbox to map a device into memory so that it can be
34 * used with normal memory access. After this call, some part of the device's
35 * internal structure becomes visible.
36 *
37 * This function is normally called from sandbox's map_sysmem() automatically.
38 *
39 * @paddr: Physical memory address, normally corresponding to a PCI BAR
40 * @lenp: On entry, the size of the area to map, On exit it is updated
41 * to the size actually mapped, which may be less if the device
42 * has less space
43 * @devp: Returns the device which mapped into this space
44 * @ptrp: Returns a pointer to the mapped address. The device's space
45 * can be accessed as @lenp bytes starting here
46 * @return 0 if OK, -ve on error
47 */
48int pci_map_physmem(phys_addr_t paddr, unsigned long *lenp,
49 struct udevice **devp, void **ptrp);
50
51/**
52 * pci_unmap_physmem() - undo a memory mapping
53 *
54 * This must be called after pci_map_physmem() to undo the mapping.
55 *
56 * @paddr: Physical memory address, as passed to pci_map_physmem()
57 * @len: Size of area mapped, as returned by pci_map_physmem()
58 * @dev: Device to unmap, as returned by pci_map_physmem()
59 * @return 0 if OK, -ve on error
60 */
61int pci_unmap_physmem(const void *addr, unsigned long len,
62 struct udevice *dev);
63
64/**
65 * sandbox_set_enable_pci_map() - Enable / disable PCI address mapping
66 *
67 * Since address mapping involves calling every driver, provide a way to
68 * enable and disable this. It can be handled automatically by the emulator
69 * uclass, which knows if any emulators are currently active.
70 *
71 * If this is disabled, pci_map_physmem() will not be called from
72 * map_sysmem().
73 *
74 * @enable: 0 to disable, 1 to enable
75 */
76void sandbox_set_enable_pci_map(int enable);
77
Simon Glass26b78b22015-02-27 22:06:34 -070078/**
79 * sandbox_read_fdt_from_file() - Read a device tree from a file
80 *
81 * Read a device tree file from a host file and set it up for use as the
82 * control FDT.
83 */
84int sandbox_read_fdt_from_file(void);
85
Simon Glassd860f222015-07-06 12:54:29 -060086/* Exit sandbox (quit U-Boot) */
87void sandbox_exit(void);
88
Simon Glassb4a905e2011-10-10 08:22:14 +000089#endif /* _U_BOOT_SANDBOX_H_ */