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