1 1.10 phx /* $NetBSD: boot.h,v 1.10 2014/06/09 17:35:01 phx Exp $ */ 2 1.1 sakamoto 3 1.1 sakamoto #define TICKS_PER_SEC (33000000 / 4) /* 33MHz */ 4 1.1 sakamoto #define NS_PER_TICK (1000000000 / TICKS_PER_SEC) 5 1.2 sakamoto 6 1.2 sakamoto /* 7 1.2 sakamoto * srt0 8 1.2 sakamoto */ 9 1.7 kiyohara int endaddr(void); 10 1.7 kiyohara void run(void *, void *, void *, void *, void *); 11 1.2 sakamoto 12 1.2 sakamoto /* 13 1.2 sakamoto * clock 14 1.2 sakamoto */ 15 1.7 kiyohara void delay(u_int); 16 1.2 sakamoto 17 1.2 sakamoto /* 18 1.2 sakamoto * com 19 1.2 sakamoto */ 20 1.7 kiyohara int comspeed(long); 21 1.2 sakamoto 22 1.2 sakamoto /* 23 1.2 sakamoto * console 24 1.2 sakamoto */ 25 1.7 kiyohara char *cninit(int *, int *); 26 1.7 kiyohara int cngetc(void); 27 1.7 kiyohara void cnputc(int); 28 1.7 kiyohara int cnscan(void); 29 1.2 sakamoto 30 1.2 sakamoto /* 31 1.5 wiz * CPU 32 1.2 sakamoto */ 33 1.7 kiyohara volatile int CPU1_alive; 34 1.7 kiyohara void cpu1(void); 35 1.7 kiyohara void resetCPU1(void); 36 1.7 kiyohara unsigned long cpuState(void); 37 1.7 kiyohara void runCPU1(void *); 38 1.7 kiyohara void start_CPU1(void); 39 1.7 kiyohara void wait_for(volatile int *); 40 1.7 kiyohara int whichCPU(void); 41 1.2 sakamoto 42 1.2 sakamoto /* 43 1.2 sakamoto * inkernel 44 1.2 sakamoto */ 45 1.7 kiyohara void init_in(void); 46 1.2 sakamoto 47 1.2 sakamoto /* 48 1.2 sakamoto * io 49 1.2 sakamoto */ 50 1.8 kiyohara void outb(int, u_char); 51 1.7 kiyohara void outw(int, u_short); 52 1.7 kiyohara u_char inb(int); 53 1.8 kiyohara u_short inw(int); 54 1.8 kiyohara u_short inwrb(int); 55 1.8 kiyohara void writeb(u_long, u_char); 56 1.8 kiyohara void writel(u_long, u_long); 57 1.8 kiyohara u_char readb(u_long); 58 1.8 kiyohara u_short readw(u_long); 59 1.8 kiyohara u_long readl(u_long); 60 1.7 kiyohara u_long local_to_PCI(u_long); 61 1.8 kiyohara void _wbinv(uint32_t, uint32_t); 62 1.8 kiyohara void _inv(uint32_t, uint32_t); 63 1.2 sakamoto 64 1.2 sakamoto /* 65 1.2 sakamoto * kbd 66 1.2 sakamoto */ 67 1.7 kiyohara int kbd(int); 68 1.7 kiyohara void kbdreset(void); 69 1.7 kiyohara int kbd_getc(void); 70 1.7 kiyohara int kbd_test(void); 71 1.2 sakamoto 72 1.2 sakamoto /* 73 1.7 kiyohara * monitor 74 1.7 kiyohara */ 75 1.7 kiyohara int db_monitor(void); 76 1.7 kiyohara 77 1.7 kiyohara /* 78 1.9 kiyohara * pci 79 1.9 kiyohara */ 80 1.9 kiyohara void scanPCI(void); 81 1.9 kiyohara int findPCIVga(void); 82 1.9 kiyohara void enablePCI(int, int, int, int); 83 1.9 kiyohara int PCISlotnum(u_int, u_int, u_int); 84 1.9 kiyohara int PCIVendor(int); 85 1.9 kiyohara u_long PCIAddress(int, u_int, int); 86 1.9 kiyohara #ifdef DEBUG 87 1.10 phx void printPCIslots(void); 88 1.9 kiyohara #endif 89 1.9 kiyohara 90 1.9 kiyohara /* 91 1.7 kiyohara * tgets 92 1.2 sakamoto */ 93 1.7 kiyohara int tgets(char *); 94 1.2 sakamoto 95 1.2 sakamoto /* 96 1.2 sakamoto * vga 97 1.2 sakamoto */ 98 1.7 kiyohara void vga_init(u_char *); 99 1.7 kiyohara void vga_putc(int); 100 1.7 kiyohara void vga_puts(char *); 101 1.2 sakamoto 102 1.2 sakamoto /* 103 1.2 sakamoto * vreset 104 1.2 sakamoto */ 105 1.7 kiyohara void vga_reset(u_char *); 106 1.7 kiyohara 107 1.7 kiyohara /* 108 1.7 kiyohara * video 109 1.7 kiyohara */ 110 1.7 kiyohara void video_init(u_char *); 111 1.7 kiyohara void video_putc(int); 112