xref: /netbsd-src/sys/arch/bebox/stand/boot/boot.h (revision e7ab4b8e66e55147890b755e0aaa249e14b81daf)
1*e7ab4b8eSphx /*	$NetBSD: boot.h,v 1.10 2014/06/09 17:35:01 phx Exp $	*/
295dac230Ssakamoto 
395dac230Ssakamoto #define	TICKS_PER_SEC	(33000000 / 4)		/* 33MHz */
495dac230Ssakamoto #define	NS_PER_TICK	(1000000000 / TICKS_PER_SEC)
5d32f2272Ssakamoto 
6d32f2272Ssakamoto /*
7d32f2272Ssakamoto  * srt0
8d32f2272Ssakamoto  */
933aaae50Skiyohara int endaddr(void);
1033aaae50Skiyohara void run(void *, void *, void *, void *, void *);
11d32f2272Ssakamoto 
12d32f2272Ssakamoto /*
13d32f2272Ssakamoto  * clock
14d32f2272Ssakamoto  */
1533aaae50Skiyohara void delay(u_int);
16d32f2272Ssakamoto 
17d32f2272Ssakamoto /*
18d32f2272Ssakamoto  * com
19d32f2272Ssakamoto  */
2033aaae50Skiyohara int comspeed(long);
21d32f2272Ssakamoto 
22d32f2272Ssakamoto /*
23d32f2272Ssakamoto  * console
24d32f2272Ssakamoto  */
2533aaae50Skiyohara char *cninit(int *, int *);
2633aaae50Skiyohara int cngetc(void);
2733aaae50Skiyohara void cnputc(int);
2833aaae50Skiyohara int cnscan(void);
29d32f2272Ssakamoto 
30d32f2272Ssakamoto /*
31d20841bbSwiz  * CPU
32d32f2272Ssakamoto  */
3333aaae50Skiyohara volatile int CPU1_alive;
3433aaae50Skiyohara void cpu1(void);
3533aaae50Skiyohara void resetCPU1(void);
3633aaae50Skiyohara unsigned long cpuState(void);
3733aaae50Skiyohara void runCPU1(void *);
3833aaae50Skiyohara void start_CPU1(void);
3933aaae50Skiyohara void wait_for(volatile int *);
4033aaae50Skiyohara int whichCPU(void);
41d32f2272Ssakamoto 
42d32f2272Ssakamoto /*
43d32f2272Ssakamoto  * inkernel
44d32f2272Ssakamoto  */
4533aaae50Skiyohara void init_in(void);
46d32f2272Ssakamoto 
47d32f2272Ssakamoto /*
48d32f2272Ssakamoto  * io
49d32f2272Ssakamoto  */
505ea6a937Skiyohara void outb(int, u_char);
5133aaae50Skiyohara void outw(int, u_short);
5233aaae50Skiyohara u_char inb(int);
535ea6a937Skiyohara u_short inw(int);
545ea6a937Skiyohara u_short inwrb(int);
555ea6a937Skiyohara void writeb(u_long, u_char);
565ea6a937Skiyohara void writel(u_long, u_long);
575ea6a937Skiyohara u_char readb(u_long);
585ea6a937Skiyohara u_short readw(u_long);
595ea6a937Skiyohara u_long readl(u_long);
6033aaae50Skiyohara u_long local_to_PCI(u_long);
615ea6a937Skiyohara void _wbinv(uint32_t, uint32_t);
625ea6a937Skiyohara void _inv(uint32_t, uint32_t);
63d32f2272Ssakamoto 
64d32f2272Ssakamoto /*
65d32f2272Ssakamoto  * kbd
66d32f2272Ssakamoto  */
6733aaae50Skiyohara int kbd(int);
6833aaae50Skiyohara void kbdreset(void);
6933aaae50Skiyohara int kbd_getc(void);
7033aaae50Skiyohara int kbd_test(void);
71d32f2272Ssakamoto 
72d32f2272Ssakamoto /*
7333aaae50Skiyohara  * monitor
74d32f2272Ssakamoto  */
7533aaae50Skiyohara int db_monitor(void);
7633aaae50Skiyohara 
7733aaae50Skiyohara /*
782fb624f2Skiyohara  * pci
792fb624f2Skiyohara  */
802fb624f2Skiyohara void scanPCI(void);
812fb624f2Skiyohara int findPCIVga(void);
822fb624f2Skiyohara void enablePCI(int, int, int, int);
832fb624f2Skiyohara int PCISlotnum(u_int, u_int, u_int);
842fb624f2Skiyohara int PCIVendor(int);
852fb624f2Skiyohara u_long PCIAddress(int, u_int, int);
862fb624f2Skiyohara #ifdef DEBUG
87*e7ab4b8eSphx void printPCIslots(void);
882fb624f2Skiyohara #endif
892fb624f2Skiyohara 
902fb624f2Skiyohara /*
9133aaae50Skiyohara  * tgets
9233aaae50Skiyohara  */
9333aaae50Skiyohara int tgets(char *);
94d32f2272Ssakamoto 
95d32f2272Ssakamoto /*
96d32f2272Ssakamoto  * vga
97d32f2272Ssakamoto  */
9833aaae50Skiyohara void vga_init(u_char *);
9933aaae50Skiyohara void vga_putc(int);
10033aaae50Skiyohara void vga_puts(char *);
101d32f2272Ssakamoto 
102d32f2272Ssakamoto /*
103d32f2272Ssakamoto  * vreset
104d32f2272Ssakamoto  */
10533aaae50Skiyohara void vga_reset(u_char *);
10633aaae50Skiyohara 
10733aaae50Skiyohara /*
10833aaae50Skiyohara  * video
10933aaae50Skiyohara  */
11033aaae50Skiyohara void video_init(u_char *);
11133aaae50Skiyohara void video_putc(int);
112