|
|
1.1 root 1: /*
2: * OpenBIOS driver prototypes
3: *
4: * (C) 2004 Stefan Reinauer <[email protected]>
5: *
6: * This program is free software; you can redistribute it and/or
7: * modify it under the terms of the GNU General Public License
8: * version 2
9: *
10: */
11: #ifndef OPENBIOS_DRIVERS_H
12: #define OPENBIOS_DRIVERS_H
13:
14: #include "config.h"
15:
16: #ifdef CONFIG_DRIVER_PCI
17: /* drivers/pci.c */
18: int ob_pci_init(void);
19: #endif
20:
21: #if defined(CONFIG_DRIVER_PCI) || defined(CONFIG_DRIVER_ESCC)
22: #ifdef CONFIG_PPC
23: extern int is_apple(void);
24: extern int is_oldworld(void);
25: extern int is_newworld(void);
26: #else
27: static inline int is_apple(void)
28: {
29: return 0;
30: }
31: static inline int is_oldworld(void)
32: {
33: return 0;
34: }
35: static inline int is_newworld(void)
36: {
37: return 0;
38: }
39: #endif
40: #define AAPL(_cmd) do { if (is_apple()) _cmd; } while(0)
41: #define OLDWORLD(_cmd) do { if (is_oldworld()) _cmd; } while(0)
42: #define NEWWORLD(_cmd) do { if (is_newworld()) _cmd; } while(0)
43: #endif
44: #ifdef CONFIG_DRIVER_SBUS
45: /* drivers/sbus.c */
46: int ob_sbus_init(uint64_t base, int machine_id);
47:
48: /* arch/sparc32/console.c */
49: void tcx_init(uint64_t base);
50: void kbd_init(uint64_t base);
51: #endif
52: #ifdef CONFIG_DRIVER_IDE
53: /* drivers/ide.c */
54: int ob_ide_init(const char *path, uint32_t io_port0, uint32_t ctl_port0,
55: uint32_t io_port1, uint32_t ctl_port1);
56: int macio_ide_init(const char *path, uint32_t addr, int nb_channels);
57: #endif
58: #ifdef CONFIG_DRIVER_ESP
59: /* drivers/esp.c */
60: int ob_esp_init(unsigned int slot, uint64_t base, unsigned long espoffset,
61: unsigned long dmaoffset);
62: #endif
63: #ifdef CONFIG_DRIVER_OBIO
64: /* drivers/obio.c */
65: int ob_obio_init(uint64_t slavio_base, unsigned long fd_offset,
66: unsigned long counter_offset, unsigned long intr_offset,
67: unsigned long aux1_offset, unsigned long aux2_offset,
68: unsigned long mem_size);
69: int start_cpu(unsigned int pc, unsigned int context_ptr, unsigned int context,
70: int cpu);
71: void ob_eccmemctl_init(uint64_t base);
72: void ss5_init(uint64_t base);
73:
74: /* drivers/iommu.c */
75: void ob_init_iommu(uint64_t base);
76: void *dvma_alloc(int size, unsigned int *pphys);
77:
78: /* drivers/sbus.c */
79: extern uint16_t graphic_depth;
80:
81: /* drivers/obio.c */
82: extern volatile unsigned char *power_reg;
83: extern volatile unsigned int *reset_reg;
84: extern volatile struct sun4m_timer_regs *counter_regs;
85:
86: void ob_new_obio_device(const char *name, const char *type);
87: unsigned long ob_reg(uint64_t base, uint64_t offset, unsigned long size, int map);
88: void ob_intr(int intr);
89:
90: /* arch/sparc32/boot.c */
91: extern uint32_t kernel_image;
92: extern uint32_t kernel_size;
93: extern uint32_t qemu_cmdline;
94: extern uint32_t cmdline_size;
95: extern char boot_device;
96: #endif
97: #ifdef CONFIG_DRIVER_FLOPPY
98: int ob_floppy_init(const char *path, const char *dev_name,
99: unsigned long io_base, unsigned long mmio_base);
100: #endif
101: #ifdef CONFIG_DRIVER_PC_KBD
102: void ob_pc_kbd_init(const char *path, const char *dev_name, uint64_t base,
103: uint64_t offset, int intr);
104: int pc_kbd_dataready(void);
105: unsigned char pc_kbd_readdata(void);
106: #endif
107: #ifdef CONFIG_DRIVER_PC_SERIAL
108: void ob_pc_serial_init(const char *path, const char *dev_name, uint64_t base,
109: uint64_t offset, int intr);
110: int uart_init(int port, unsigned long speed);
111: int uart_charav(int port);
112: char uart_getchar(int port);
113: void serial_putchar(int c);
114: #endif
115: #ifdef CONFIG_DRIVER_ESCC
116: int uart_init(phys_addr_t port, unsigned long speed);
117: int uart_charav(uintptr_t port);
118: char uart_getchar(uintptr_t port);
119: void serial_putchar(int c);
120: void serial_cls(void);
121: #ifdef CONFIG_DRIVER_ESCC_SUN
122: int keyboard_dataready(void);
123: unsigned char keyboard_readdata(void);
124: #endif
125: #endif
126:
127: /* drivers/timer.c */
128: void setup_timers(void);
129:
130: #endif /* OPENBIOS_DRIVERS_H */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.