/* * arch/mips/include/asm/prom.h * * Copyright (C) 2010 Cisco Systems Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. * */ #ifndef __ASM_PROM_H #define __ASM_PROM_H #ifdef CONFIG_OF #include #include #include #include extern int early_init_dt_scan_memory_arch(unsigned long node, const char *uname, int depth, void *data); extern void device_tree_init(void); static inline unsigned long pci_address_to_pio(phys_addr_t address) { /* * The ioport address can be directly used by inX() / outX() */ BUG_ON(address > IO_SPACE_LIMIT); return (unsigned long) address; } #define pci_address_to_pio pci_address_to_pio struct boot_param_header; extern void __dt_setup_arch(struct boot_param_header *bph); #define dt_setup_arch(sym) \ ({ \ extern struct boot_param_header __dtb_##sym##_begin; \ \ __dt_setup_arch(&__dtb_##sym##_begin); \ }) #else /* CONFIG_OF */ static inline void device_tree_init(void) { } #endif /* CONFIG_OF */ extern char *mips_get_machine_name(void); extern void mips_set_machine_name(const char *name); /* AVM non-dt work-arounds follow */ extern void prom_printf(const char *fmt, ...); extern char *prom_getcmdline(void); extern char *prom_getenv(char *name); extern void prom_init_cmdline(void); extern void prom_meminit(void); extern void prom_fixup_mem_map(unsigned long start_mem, unsigned long end_mem); extern void mips_display_message(const char *str); extern void mips_display_word(unsigned int num); extern void mips_scroll_message(void); extern int get_ethernet_addr(char *ethernet_addr); /* Memory descriptor management. */ #define PROM_MAX_PMEMBLOCKS 32 struct prom_pmemblock { unsigned long base; /* Within KSEG0. */ unsigned int size; /* In bytes. */ unsigned int type; /* free or prom memory */ }; #include #endif /* __ASM_PROM_H */