u-boot-sandbox.h 2.6 KB

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