11da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* Useful PROM locations */
21da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
31da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#ifndef SUN3X_PROM_H
41da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SUN3X_PROM_H
51da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
61da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsextern void (*sun3x_putchar)(int);
71da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsextern int (*sun3x_getchar)(void);
81da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsextern int (*sun3x_mayget)(void);
91da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsextern int (*sun3x_mayput)(int);
101da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
111da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsvoid sun3x_reboot(void);
121da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsvoid sun3x_abort(void);
131da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsvoid sun3x_prom_init(void);
141da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsunsigned long sun3x_prom_ptov(unsigned long pa, unsigned long size);
151da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
161da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* interesting hardware locations */
171da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SUN3X_IOMMU       0x60000000
181da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SUN3X_ENAREG      0x61000000
191da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SUN3X_INTREG      0x61001400
201da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SUN3X_DIAGREG     0x61001800
211da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SUN3X_ZS1         0x62000000
221da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SUN3X_ZS2         0x62002000
231da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SUN3X_LANCE       0x65002000
241da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SUN3X_EEPROM      0x64000000
251da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SUN3X_IDPROM      0x640007d8
261da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SUN3X_VIDEO_BASE  0x50400000
271da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SUN3X_VIDEO_REGS  0x50300000
281da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
291da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* vector table */
301da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SUN3X_PROM_BASE   0xfefe0000
311da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SUN3X_P_GETCHAR   (SUN3X_PROM_BASE + 20)
321da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SUN3X_P_PUTCHAR   (SUN3X_PROM_BASE + 24)
331da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SUN3X_P_MAYGET    (SUN3X_PROM_BASE + 28)
341da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SUN3X_P_MAYPUT    (SUN3X_PROM_BASE + 32)
351da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SUN3X_P_REBOOT    (SUN3X_PROM_BASE + 96)
361da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SUN3X_P_SETLEDS   (SUN3X_PROM_BASE + 144)
371da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SUN3X_P_ABORT     (SUN3X_PROM_BASE + 152)
381da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
391da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* mapped area */
401da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SUN3X_MAP_START   0xfee00000
411da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SUN3X_MAP_END     0xff000000
421da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
431da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#endif
44