^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) /* SPDX-License-Identifier: GPL-2.0 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) * Just a place holder.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) #ifndef _SPARC_SETUP_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) #define _SPARC_SETUP_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) #include <linux/interrupt.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) #include <uapi/asm/setup.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) extern char reboot_command[];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) #ifdef CONFIG_SPARC32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) /* The CPU that was used for booting
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) * Only sun4d + leon may have boot_cpu_id != 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) extern unsigned char boot_cpu_id;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) extern unsigned long empty_zero_page[PAGE_SIZE / sizeof(unsigned long)];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) extern int serial_console;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) static inline int con_is_present(void)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) return serial_console ? 0 : 1;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) /* from irq_32.c */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) extern volatile unsigned char *fdc_status;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) extern char *pdma_vaddr;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) extern unsigned long pdma_size;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) extern volatile int doing_pdma;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) /* This is software state */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) extern char *pdma_base;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) extern unsigned long pdma_areasize;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) int sparc_floppy_request_irq(unsigned int irq, irq_handler_t irq_handler);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) /* setup_32.c */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) extern unsigned long cmdline_memory_size;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) /* devices.c */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) void __init device_scan(void);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) /* unaligned_32.c */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) unsigned long safe_compute_effective_address(struct pt_regs *, unsigned int);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) #endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) #ifdef CONFIG_SPARC64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) void __init start_early_boot(void);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) /* unaligned_64.c */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) int handle_ldf_stq(u32 insn, struct pt_regs *regs);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) void handle_ld_nf(u32 insn, struct pt_regs *regs);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) /* init_64.c */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) extern atomic_t dcpage_flushes;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) extern atomic_t dcpage_flushes_xcall;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) extern int sysctl_tsb_ratio;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) #ifdef CONFIG_SERIAL_SUNHV
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) void sunhv_migrate_hvcons_irq(int cpu);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) #endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) #endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) void sun_do_break(void);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) extern int stop_a_enabled;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70) extern int scons_pwroff;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) #endif /* _SPARC_SETUP_H */