Loading include/asm-parisc/pdc.h +137 −176 Original line number Diff line number Diff line #ifndef _PARISC_PDC_H #define _PARISC_PDC_H /* * PDC return values ... * All PDC calls return a subset of these errors. Loading @@ -20,7 +19,6 @@ #define PDC_BUS_POW_WARN -12 /* Call could not complete in allowed power budget */ #define PDC_NOT_NARROW -17 /* Narrow mode not supported */ /* * PDC entry points... */ Loading Loading @@ -50,6 +48,12 @@ #define PDC_MODEL_DISPEC 5 /* disable specific option */ #define PDC_MODEL_CPU_ID 6 /* returns cpu-id (only newer machines!) */ #define PDC_MODEL_CAPABILITIES 7 /* returns OS32/OS64-flags */ /* Values for PDC_MODEL_CAPABILITIES non-equivalent virtual aliasing support */ #define PDC_MODEL_IOPDIR_FDC (1 << 2) #define PDC_MODEL_NVA_MASK (3 << 4) #define PDC_MODEL_NVA_SUPPORTED (0 << 4) #define PDC_MODEL_NVA_SLOW (1 << 4) #define PDC_MODEL_NVA_UNSUPPORTED (3 << 4) #define PDC_MODEL_GET_BOOT__OP 8 /* returns boot test options */ #define PDC_MODEL_SET_BOOT__OP 9 /* set boot test options */ Loading Loading @@ -91,7 +95,7 @@ #define PDC_TOD 9 /* time-of-day clock (TOD) */ #define PDC_TOD_READ 0 /* read TOD */ #define PDC_TOD_WRITE 1 /* write TOD */ #define PDC_TOD_ITIMER 2 /* calibrate Interval Timer (CR16) */ #define PDC_STABLE 10 /* stable storage (sprockets) */ #define PDC_STABLE_READ 0 Loading Loading @@ -143,16 +147,6 @@ #define PDC_MEM_RET_PDT_FULL -11 #define PDC_MEM_RET_INVALID_PHYSICAL_LOCATION ~0ULL #ifdef __KERNEL__ # ifndef __ASSEMBLY__ typedef struct { unsigned long long baseAddr; unsigned int pages; unsigned int reserved; } MemAddrTable_t; # endif /* __ASSEMBLY__ */ #endif /* __KERNEL__ */ #define PDC_PSW 21 /* Get/Set default System Mask */ #define PDC_PSW_MASK 0 /* Return mask */ #define PDC_PSW_GET_DEFAULTS 1 /* Return defaults */ Loading Loading @@ -275,6 +269,43 @@ typedef struct { #define PDC_LINK_PCI_ENTRY_POINTS 0 /* list (Arg1) = 0 */ #define PDC_LINK_USB_ENTRY_POINTS 1 /* list (Arg1) = 1 */ /* cl_class * page 3-33 of IO-Firmware ARS * IODC ENTRY_INIT(Search first) RET[1] */ #define CL_NULL 0 /* invalid */ #define CL_RANDOM 1 /* random access (as disk) */ #define CL_SEQU 2 /* sequential access (as tape) */ #define CL_DUPLEX 7 /* full-duplex point-to-point (RS-232, Net) */ #define CL_KEYBD 8 /* half-duplex console (HIL Keyboard) */ #define CL_DISPL 9 /* half-duplex console (display) */ #define CL_FC 10 /* FiberChannel access media */ /* IODC ENTRY_INIT() */ #define ENTRY_INIT_SRCH_FRST 2 #define ENTRY_INIT_SRCH_NEXT 3 #define ENTRY_INIT_MOD_DEV 4 #define ENTRY_INIT_DEV 5 #define ENTRY_INIT_MOD 6 #define ENTRY_INIT_MSG 9 /* IODC ENTRY_IO() */ #define ENTRY_IO_BOOTIN 0 #define ENTRY_IO_BOOTOUT 1 #define ENTRY_IO_CIN 2 #define ENTRY_IO_COUT 3 #define ENTRY_IO_CLOSE 4 #define ENTRY_IO_GETMSG 9 #define ENTRY_IO_BBLOCK_IN 16 #define ENTRY_IO_BBLOCK_OUT 17 /* IODC ENTRY_SPA() */ /* IODC ENTRY_CONFIG() */ /* IODC ENTRY_TEST() */ /* IODC ENTRY_TLB() */ /* constants for OS (NVM...) */ #define OS_ID_NONE 0 /* Undefined OS ID */ Loading @@ -296,12 +327,15 @@ typedef struct { #define OSTAT_RUN 6 #define OSTAT_ON 7 #ifndef __ASSEMBLY__ #include <linux/types.h> #endif /* __ASSEMBLY__ */ /* Page Zero constant offsets used by the HPMC handler */ #define BOOT_CONSOLE_HPA_OFFSET 0x3c0 #define BOOT_CONSOLE_SPA_OFFSET 0x3c4 #define BOOT_CONSOLE_PATH_OFFSET 0x3a8 #if !defined(__ASSEMBLY__) #ifdef __KERNEL__ # ifndef __ASSEMBLY__ #include <linux/types.h> extern int pdc_type; Loading Loading @@ -335,14 +369,6 @@ struct pdc_model { /* for PDC_MODEL */ unsigned long curr_key; }; /* Values for PDC_MODEL_CAPABILITIES non-equivalent virtual aliasing support */ #define PDC_MODEL_IOPDIR_FDC (1 << 2) /* see sba_iommu.c */ #define PDC_MODEL_NVA_MASK (3 << 4) #define PDC_MODEL_NVA_SUPPORTED (0 << 4) #define PDC_MODEL_NVA_SLOW (1 << 4) #define PDC_MODEL_NVA_UNSUPPORTED (3 << 4) struct pdc_cache_cf { /* for PDC_CACHE (I/D-caches) */ unsigned long #ifdef CONFIG_64BIT Loading Loading @@ -562,16 +588,97 @@ struct pdc_hpmc_pim_20 { /* PDC_PIM */ __u64 fr[32]; }; # endif /* __ASSEMBLY__ */ void pdc_console_init(void); /* in pdc_console.c */ void pdc_console_restart(void); void setup_pdc(void); /* in inventory.c */ /* wrapper-functions from pdc.c */ int pdc_add_valid(unsigned long address); int pdc_chassis_info(struct pdc_chassis_info *chassis_info, void *led_info, unsigned long len); int pdc_chassis_disp(unsigned long disp); int pdc_chassis_warn(unsigned long *warn); int pdc_coproc_cfg(struct pdc_coproc_cfg *pdc_coproc_info); int pdc_iodc_read(unsigned long *actcnt, unsigned long hpa, unsigned int index, void *iodc_data, unsigned int iodc_data_size); int pdc_system_map_find_mods(struct pdc_system_map_mod_info *pdc_mod_info, struct pdc_module_path *mod_path, long mod_index); int pdc_system_map_find_addrs(struct pdc_system_map_addr_info *pdc_addr_info, long mod_index, long addr_index); int pdc_model_info(struct pdc_model *model); int pdc_model_sysmodel(char *name); int pdc_model_cpuid(unsigned long *cpu_id); int pdc_model_versions(unsigned long *versions, int id); int pdc_model_capabilities(unsigned long *capabilities); int pdc_cache_info(struct pdc_cache_info *cache); int pdc_spaceid_bits(unsigned long *space_bits); #ifndef CONFIG_PA20 int pdc_btlb_info(struct pdc_btlb_info *btlb); int pdc_mem_map_hpa(struct pdc_memory_map *r_addr, struct pdc_module_path *mod_path); #endif /* !CONFIG_PA20 */ int pdc_lan_station_id(char *lan_addr, unsigned long net_hpa); int pdc_stable_read(unsigned long staddr, void *memaddr, unsigned long count); int pdc_stable_write(unsigned long staddr, void *memaddr, unsigned long count); int pdc_stable_get_size(unsigned long *size); int pdc_stable_verify_contents(void); int pdc_stable_initialize(void); int pdc_pci_irt_size(unsigned long *num_entries, unsigned long hpa); int pdc_pci_irt(unsigned long num_entries, unsigned long hpa, void *tbl); int pdc_get_initiator(struct hardware_path *, struct pdc_initiator *); int pdc_tod_read(struct pdc_tod *tod); int pdc_tod_set(unsigned long sec, unsigned long usec); #ifdef CONFIG_64BIT int pdc_mem_mem_table(struct pdc_memory_table_raddr *r_addr, struct pdc_memory_table *tbl, unsigned long entries); #endif void set_firmware_width(void); int pdc_do_firm_test_reset(unsigned long ftc_bitmap); int pdc_do_reset(void); int pdc_soft_power_info(unsigned long *power_reg); int pdc_soft_power_button(int sw_control); void pdc_io_reset(void); void pdc_io_reset_devices(void); int pdc_iodc_getc(void); void pdc_iodc_putc(unsigned char c); void pdc_iodc_outc(unsigned char c); void pdc_printf(const char *fmt, ...); void pdc_emergency_unlock(void); int pdc_sti_call(unsigned long func, unsigned long flags, unsigned long inptr, unsigned long outputr, unsigned long glob_cfg); static inline char * os_id_to_string(u16 os_id) { switch(os_id) { case OS_ID_NONE: return "No OS"; case OS_ID_HPUX: return "HP-UX"; case OS_ID_MPEXL: return "MPE-iX"; case OS_ID_OSF: return "OSF"; case OS_ID_HPRT: return "HP-RT"; case OS_ID_NOVEL: return "Novell Netware"; case OS_ID_LINUX: return "Linux"; default: return "Unknown"; } } #endif /* __KERNEL__ */ /* flags of the device_path (see below) */ #define PAGE0 ((struct zeropage *)__PAGE_OFFSET) /* DEFINITION OF THE ZERO-PAGE (PAG0) */ /* based on work by Jason Eckhardt (jason@equator.com) */ /* flags of the device_path */ #define PF_AUTOBOOT 0x80 #define PF_AUTOSEARCH 0x40 #define PF_TIMER 0x0F #ifndef __ASSEMBLY__ struct device_path { /* page 1-69 */ unsigned char flags; /* flags see above! */ unsigned char bc[6]; /* bus converter routing info */ Loading @@ -591,63 +698,6 @@ struct pz_device { unsigned short cl_class;/* see below */ } __attribute__((aligned(8))) ; #endif /* __ASSEMBLY__ */ /* cl_class * page 3-33 of IO-Firmware ARS * IODC ENTRY_INIT(Search first) RET[1] */ #define CL_NULL 0 /* invalid */ #define CL_RANDOM 1 /* random access (as disk) */ #define CL_SEQU 2 /* sequential access (as tape) */ #define CL_DUPLEX 7 /* full-duplex point-to-point (RS-232, Net) */ #define CL_KEYBD 8 /* half-duplex console (HIL Keyboard) */ #define CL_DISPL 9 /* half-duplex console (display) */ #define CL_FC 10 /* FiberChannel access media */ #if 0 /* FIXME: DEVCLASS_* duplicates CL_* (above). Delete DEVCLASS_*? */ #define DEVCLASS_RANDOM 1 #define DEVCLASS_SEQU 2 #define DEVCLASS_DUPLEX 7 #define DEVCLASS_KEYBD 8 #define DEVCLASS_DISP 9 #endif /* IODC ENTRY_INIT() */ #define ENTRY_INIT_SRCH_FRST 2 #define ENTRY_INIT_SRCH_NEXT 3 #define ENTRY_INIT_MOD_DEV 4 #define ENTRY_INIT_DEV 5 #define ENTRY_INIT_MOD 6 #define ENTRY_INIT_MSG 9 /* IODC ENTRY_IO() */ #define ENTRY_IO_BOOTIN 0 #define ENTRY_IO_BOOTOUT 1 #define ENTRY_IO_CIN 2 #define ENTRY_IO_COUT 3 #define ENTRY_IO_CLOSE 4 #define ENTRY_IO_GETMSG 9 #define ENTRY_IO_BBLOCK_IN 16 #define ENTRY_IO_BBLOCK_OUT 17 /* IODC ENTRY_SPA() */ /* IODC ENTRY_CONFIG() */ /* IODC ENTRY_TEST() */ /* IODC ENTRY_TLB() */ /* DEFINITION OF THE ZERO-PAGE (PAG0) */ /* based on work by Jason Eckhardt (jason@equator.com) */ #ifndef __ASSEMBLY__ #define PAGE0 ((struct zeropage *)__PAGE_OFFSET) struct zeropage { /* [0x000] initialize vectors (VEC) */ unsigned int vec_special; /* must be zero */ Loading Loading @@ -704,95 +754,6 @@ struct zeropage { __u32 pad608[126]; }; #endif /* __ASSEMBLY__ */ /* Page Zero constant offsets used by the HPMC handler */ #define BOOT_CONSOLE_HPA_OFFSET 0x3c0 #define BOOT_CONSOLE_SPA_OFFSET 0x3c4 #define BOOT_CONSOLE_PATH_OFFSET 0x3a8 #ifdef __KERNEL__ #ifndef __ASSEMBLY__ void pdc_console_init(void); /* in pdc_console.c */ void pdc_console_restart(void); void setup_pdc(void); /* in inventory.c */ /* wrapper-functions from pdc.c */ int pdc_add_valid(unsigned long address); int pdc_chassis_info(struct pdc_chassis_info *chassis_info, void *led_info, unsigned long len); int pdc_chassis_disp(unsigned long disp); int pdc_chassis_warn(unsigned long *warn); int pdc_coproc_cfg(struct pdc_coproc_cfg *pdc_coproc_info); int pdc_iodc_read(unsigned long *actcnt, unsigned long hpa, unsigned int index, void *iodc_data, unsigned int iodc_data_size); int pdc_system_map_find_mods(struct pdc_system_map_mod_info *pdc_mod_info, struct pdc_module_path *mod_path, long mod_index); int pdc_system_map_find_addrs(struct pdc_system_map_addr_info *pdc_addr_info, long mod_index, long addr_index); int pdc_model_info(struct pdc_model *model); int pdc_model_sysmodel(char *name); int pdc_model_cpuid(unsigned long *cpu_id); int pdc_model_versions(unsigned long *versions, int id); int pdc_model_capabilities(unsigned long *capabilities); int pdc_cache_info(struct pdc_cache_info *cache); int pdc_spaceid_bits(unsigned long *space_bits); #ifndef CONFIG_PA20 int pdc_btlb_info(struct pdc_btlb_info *btlb); int pdc_mem_map_hpa(struct pdc_memory_map *r_addr, struct pdc_module_path *mod_path); #endif /* !CONFIG_PA20 */ int pdc_lan_station_id(char *lan_addr, unsigned long net_hpa); int pdc_stable_read(unsigned long staddr, void *memaddr, unsigned long count); int pdc_stable_write(unsigned long staddr, void *memaddr, unsigned long count); int pdc_stable_get_size(unsigned long *size); int pdc_stable_verify_contents(void); int pdc_stable_initialize(void); int pdc_pci_irt_size(unsigned long *num_entries, unsigned long hpa); int pdc_pci_irt(unsigned long num_entries, unsigned long hpa, void *tbl); int pdc_get_initiator(struct hardware_path *, struct pdc_initiator *); int pdc_tod_read(struct pdc_tod *tod); int pdc_tod_set(unsigned long sec, unsigned long usec); #ifdef CONFIG_64BIT int pdc_mem_mem_table(struct pdc_memory_table_raddr *r_addr, struct pdc_memory_table *tbl, unsigned long entries); #endif void set_firmware_width(void); int pdc_do_firm_test_reset(unsigned long ftc_bitmap); int pdc_do_reset(void); int pdc_soft_power_info(unsigned long *power_reg); int pdc_soft_power_button(int sw_control); void pdc_io_reset(void); void pdc_io_reset_devices(void); int pdc_iodc_getc(void); void pdc_iodc_putc(unsigned char c); void pdc_iodc_outc(unsigned char c); void pdc_printf(const char *fmt, ...); void pdc_emergency_unlock(void); int pdc_sti_call(unsigned long func, unsigned long flags, unsigned long inptr, unsigned long outputr, unsigned long glob_cfg); static inline char * os_id_to_string(u16 os_id) { switch(os_id) { case OS_ID_NONE: return "No OS"; case OS_ID_HPUX: return "HP-UX"; case OS_ID_MPEXL: return "MPE-iX"; case OS_ID_OSF: return "OSF"; case OS_ID_HPRT: return "HP-RT"; case OS_ID_NOVEL: return "Novell Netware"; case OS_ID_LINUX: return "Linux"; default: return "Unknown"; } } # endif /* __ASSEMBLY__ */ #endif /* __KERNEL__ */ #endif /* !defined(__ASSEMBLY__) */ #endif /* _PARISC_PDC_H */ Loading
include/asm-parisc/pdc.h +137 −176 Original line number Diff line number Diff line #ifndef _PARISC_PDC_H #define _PARISC_PDC_H /* * PDC return values ... * All PDC calls return a subset of these errors. Loading @@ -20,7 +19,6 @@ #define PDC_BUS_POW_WARN -12 /* Call could not complete in allowed power budget */ #define PDC_NOT_NARROW -17 /* Narrow mode not supported */ /* * PDC entry points... */ Loading Loading @@ -50,6 +48,12 @@ #define PDC_MODEL_DISPEC 5 /* disable specific option */ #define PDC_MODEL_CPU_ID 6 /* returns cpu-id (only newer machines!) */ #define PDC_MODEL_CAPABILITIES 7 /* returns OS32/OS64-flags */ /* Values for PDC_MODEL_CAPABILITIES non-equivalent virtual aliasing support */ #define PDC_MODEL_IOPDIR_FDC (1 << 2) #define PDC_MODEL_NVA_MASK (3 << 4) #define PDC_MODEL_NVA_SUPPORTED (0 << 4) #define PDC_MODEL_NVA_SLOW (1 << 4) #define PDC_MODEL_NVA_UNSUPPORTED (3 << 4) #define PDC_MODEL_GET_BOOT__OP 8 /* returns boot test options */ #define PDC_MODEL_SET_BOOT__OP 9 /* set boot test options */ Loading Loading @@ -91,7 +95,7 @@ #define PDC_TOD 9 /* time-of-day clock (TOD) */ #define PDC_TOD_READ 0 /* read TOD */ #define PDC_TOD_WRITE 1 /* write TOD */ #define PDC_TOD_ITIMER 2 /* calibrate Interval Timer (CR16) */ #define PDC_STABLE 10 /* stable storage (sprockets) */ #define PDC_STABLE_READ 0 Loading Loading @@ -143,16 +147,6 @@ #define PDC_MEM_RET_PDT_FULL -11 #define PDC_MEM_RET_INVALID_PHYSICAL_LOCATION ~0ULL #ifdef __KERNEL__ # ifndef __ASSEMBLY__ typedef struct { unsigned long long baseAddr; unsigned int pages; unsigned int reserved; } MemAddrTable_t; # endif /* __ASSEMBLY__ */ #endif /* __KERNEL__ */ #define PDC_PSW 21 /* Get/Set default System Mask */ #define PDC_PSW_MASK 0 /* Return mask */ #define PDC_PSW_GET_DEFAULTS 1 /* Return defaults */ Loading Loading @@ -275,6 +269,43 @@ typedef struct { #define PDC_LINK_PCI_ENTRY_POINTS 0 /* list (Arg1) = 0 */ #define PDC_LINK_USB_ENTRY_POINTS 1 /* list (Arg1) = 1 */ /* cl_class * page 3-33 of IO-Firmware ARS * IODC ENTRY_INIT(Search first) RET[1] */ #define CL_NULL 0 /* invalid */ #define CL_RANDOM 1 /* random access (as disk) */ #define CL_SEQU 2 /* sequential access (as tape) */ #define CL_DUPLEX 7 /* full-duplex point-to-point (RS-232, Net) */ #define CL_KEYBD 8 /* half-duplex console (HIL Keyboard) */ #define CL_DISPL 9 /* half-duplex console (display) */ #define CL_FC 10 /* FiberChannel access media */ /* IODC ENTRY_INIT() */ #define ENTRY_INIT_SRCH_FRST 2 #define ENTRY_INIT_SRCH_NEXT 3 #define ENTRY_INIT_MOD_DEV 4 #define ENTRY_INIT_DEV 5 #define ENTRY_INIT_MOD 6 #define ENTRY_INIT_MSG 9 /* IODC ENTRY_IO() */ #define ENTRY_IO_BOOTIN 0 #define ENTRY_IO_BOOTOUT 1 #define ENTRY_IO_CIN 2 #define ENTRY_IO_COUT 3 #define ENTRY_IO_CLOSE 4 #define ENTRY_IO_GETMSG 9 #define ENTRY_IO_BBLOCK_IN 16 #define ENTRY_IO_BBLOCK_OUT 17 /* IODC ENTRY_SPA() */ /* IODC ENTRY_CONFIG() */ /* IODC ENTRY_TEST() */ /* IODC ENTRY_TLB() */ /* constants for OS (NVM...) */ #define OS_ID_NONE 0 /* Undefined OS ID */ Loading @@ -296,12 +327,15 @@ typedef struct { #define OSTAT_RUN 6 #define OSTAT_ON 7 #ifndef __ASSEMBLY__ #include <linux/types.h> #endif /* __ASSEMBLY__ */ /* Page Zero constant offsets used by the HPMC handler */ #define BOOT_CONSOLE_HPA_OFFSET 0x3c0 #define BOOT_CONSOLE_SPA_OFFSET 0x3c4 #define BOOT_CONSOLE_PATH_OFFSET 0x3a8 #if !defined(__ASSEMBLY__) #ifdef __KERNEL__ # ifndef __ASSEMBLY__ #include <linux/types.h> extern int pdc_type; Loading Loading @@ -335,14 +369,6 @@ struct pdc_model { /* for PDC_MODEL */ unsigned long curr_key; }; /* Values for PDC_MODEL_CAPABILITIES non-equivalent virtual aliasing support */ #define PDC_MODEL_IOPDIR_FDC (1 << 2) /* see sba_iommu.c */ #define PDC_MODEL_NVA_MASK (3 << 4) #define PDC_MODEL_NVA_SUPPORTED (0 << 4) #define PDC_MODEL_NVA_SLOW (1 << 4) #define PDC_MODEL_NVA_UNSUPPORTED (3 << 4) struct pdc_cache_cf { /* for PDC_CACHE (I/D-caches) */ unsigned long #ifdef CONFIG_64BIT Loading Loading @@ -562,16 +588,97 @@ struct pdc_hpmc_pim_20 { /* PDC_PIM */ __u64 fr[32]; }; # endif /* __ASSEMBLY__ */ void pdc_console_init(void); /* in pdc_console.c */ void pdc_console_restart(void); void setup_pdc(void); /* in inventory.c */ /* wrapper-functions from pdc.c */ int pdc_add_valid(unsigned long address); int pdc_chassis_info(struct pdc_chassis_info *chassis_info, void *led_info, unsigned long len); int pdc_chassis_disp(unsigned long disp); int pdc_chassis_warn(unsigned long *warn); int pdc_coproc_cfg(struct pdc_coproc_cfg *pdc_coproc_info); int pdc_iodc_read(unsigned long *actcnt, unsigned long hpa, unsigned int index, void *iodc_data, unsigned int iodc_data_size); int pdc_system_map_find_mods(struct pdc_system_map_mod_info *pdc_mod_info, struct pdc_module_path *mod_path, long mod_index); int pdc_system_map_find_addrs(struct pdc_system_map_addr_info *pdc_addr_info, long mod_index, long addr_index); int pdc_model_info(struct pdc_model *model); int pdc_model_sysmodel(char *name); int pdc_model_cpuid(unsigned long *cpu_id); int pdc_model_versions(unsigned long *versions, int id); int pdc_model_capabilities(unsigned long *capabilities); int pdc_cache_info(struct pdc_cache_info *cache); int pdc_spaceid_bits(unsigned long *space_bits); #ifndef CONFIG_PA20 int pdc_btlb_info(struct pdc_btlb_info *btlb); int pdc_mem_map_hpa(struct pdc_memory_map *r_addr, struct pdc_module_path *mod_path); #endif /* !CONFIG_PA20 */ int pdc_lan_station_id(char *lan_addr, unsigned long net_hpa); int pdc_stable_read(unsigned long staddr, void *memaddr, unsigned long count); int pdc_stable_write(unsigned long staddr, void *memaddr, unsigned long count); int pdc_stable_get_size(unsigned long *size); int pdc_stable_verify_contents(void); int pdc_stable_initialize(void); int pdc_pci_irt_size(unsigned long *num_entries, unsigned long hpa); int pdc_pci_irt(unsigned long num_entries, unsigned long hpa, void *tbl); int pdc_get_initiator(struct hardware_path *, struct pdc_initiator *); int pdc_tod_read(struct pdc_tod *tod); int pdc_tod_set(unsigned long sec, unsigned long usec); #ifdef CONFIG_64BIT int pdc_mem_mem_table(struct pdc_memory_table_raddr *r_addr, struct pdc_memory_table *tbl, unsigned long entries); #endif void set_firmware_width(void); int pdc_do_firm_test_reset(unsigned long ftc_bitmap); int pdc_do_reset(void); int pdc_soft_power_info(unsigned long *power_reg); int pdc_soft_power_button(int sw_control); void pdc_io_reset(void); void pdc_io_reset_devices(void); int pdc_iodc_getc(void); void pdc_iodc_putc(unsigned char c); void pdc_iodc_outc(unsigned char c); void pdc_printf(const char *fmt, ...); void pdc_emergency_unlock(void); int pdc_sti_call(unsigned long func, unsigned long flags, unsigned long inptr, unsigned long outputr, unsigned long glob_cfg); static inline char * os_id_to_string(u16 os_id) { switch(os_id) { case OS_ID_NONE: return "No OS"; case OS_ID_HPUX: return "HP-UX"; case OS_ID_MPEXL: return "MPE-iX"; case OS_ID_OSF: return "OSF"; case OS_ID_HPRT: return "HP-RT"; case OS_ID_NOVEL: return "Novell Netware"; case OS_ID_LINUX: return "Linux"; default: return "Unknown"; } } #endif /* __KERNEL__ */ /* flags of the device_path (see below) */ #define PAGE0 ((struct zeropage *)__PAGE_OFFSET) /* DEFINITION OF THE ZERO-PAGE (PAG0) */ /* based on work by Jason Eckhardt (jason@equator.com) */ /* flags of the device_path */ #define PF_AUTOBOOT 0x80 #define PF_AUTOSEARCH 0x40 #define PF_TIMER 0x0F #ifndef __ASSEMBLY__ struct device_path { /* page 1-69 */ unsigned char flags; /* flags see above! */ unsigned char bc[6]; /* bus converter routing info */ Loading @@ -591,63 +698,6 @@ struct pz_device { unsigned short cl_class;/* see below */ } __attribute__((aligned(8))) ; #endif /* __ASSEMBLY__ */ /* cl_class * page 3-33 of IO-Firmware ARS * IODC ENTRY_INIT(Search first) RET[1] */ #define CL_NULL 0 /* invalid */ #define CL_RANDOM 1 /* random access (as disk) */ #define CL_SEQU 2 /* sequential access (as tape) */ #define CL_DUPLEX 7 /* full-duplex point-to-point (RS-232, Net) */ #define CL_KEYBD 8 /* half-duplex console (HIL Keyboard) */ #define CL_DISPL 9 /* half-duplex console (display) */ #define CL_FC 10 /* FiberChannel access media */ #if 0 /* FIXME: DEVCLASS_* duplicates CL_* (above). Delete DEVCLASS_*? */ #define DEVCLASS_RANDOM 1 #define DEVCLASS_SEQU 2 #define DEVCLASS_DUPLEX 7 #define DEVCLASS_KEYBD 8 #define DEVCLASS_DISP 9 #endif /* IODC ENTRY_INIT() */ #define ENTRY_INIT_SRCH_FRST 2 #define ENTRY_INIT_SRCH_NEXT 3 #define ENTRY_INIT_MOD_DEV 4 #define ENTRY_INIT_DEV 5 #define ENTRY_INIT_MOD 6 #define ENTRY_INIT_MSG 9 /* IODC ENTRY_IO() */ #define ENTRY_IO_BOOTIN 0 #define ENTRY_IO_BOOTOUT 1 #define ENTRY_IO_CIN 2 #define ENTRY_IO_COUT 3 #define ENTRY_IO_CLOSE 4 #define ENTRY_IO_GETMSG 9 #define ENTRY_IO_BBLOCK_IN 16 #define ENTRY_IO_BBLOCK_OUT 17 /* IODC ENTRY_SPA() */ /* IODC ENTRY_CONFIG() */ /* IODC ENTRY_TEST() */ /* IODC ENTRY_TLB() */ /* DEFINITION OF THE ZERO-PAGE (PAG0) */ /* based on work by Jason Eckhardt (jason@equator.com) */ #ifndef __ASSEMBLY__ #define PAGE0 ((struct zeropage *)__PAGE_OFFSET) struct zeropage { /* [0x000] initialize vectors (VEC) */ unsigned int vec_special; /* must be zero */ Loading Loading @@ -704,95 +754,6 @@ struct zeropage { __u32 pad608[126]; }; #endif /* __ASSEMBLY__ */ /* Page Zero constant offsets used by the HPMC handler */ #define BOOT_CONSOLE_HPA_OFFSET 0x3c0 #define BOOT_CONSOLE_SPA_OFFSET 0x3c4 #define BOOT_CONSOLE_PATH_OFFSET 0x3a8 #ifdef __KERNEL__ #ifndef __ASSEMBLY__ void pdc_console_init(void); /* in pdc_console.c */ void pdc_console_restart(void); void setup_pdc(void); /* in inventory.c */ /* wrapper-functions from pdc.c */ int pdc_add_valid(unsigned long address); int pdc_chassis_info(struct pdc_chassis_info *chassis_info, void *led_info, unsigned long len); int pdc_chassis_disp(unsigned long disp); int pdc_chassis_warn(unsigned long *warn); int pdc_coproc_cfg(struct pdc_coproc_cfg *pdc_coproc_info); int pdc_iodc_read(unsigned long *actcnt, unsigned long hpa, unsigned int index, void *iodc_data, unsigned int iodc_data_size); int pdc_system_map_find_mods(struct pdc_system_map_mod_info *pdc_mod_info, struct pdc_module_path *mod_path, long mod_index); int pdc_system_map_find_addrs(struct pdc_system_map_addr_info *pdc_addr_info, long mod_index, long addr_index); int pdc_model_info(struct pdc_model *model); int pdc_model_sysmodel(char *name); int pdc_model_cpuid(unsigned long *cpu_id); int pdc_model_versions(unsigned long *versions, int id); int pdc_model_capabilities(unsigned long *capabilities); int pdc_cache_info(struct pdc_cache_info *cache); int pdc_spaceid_bits(unsigned long *space_bits); #ifndef CONFIG_PA20 int pdc_btlb_info(struct pdc_btlb_info *btlb); int pdc_mem_map_hpa(struct pdc_memory_map *r_addr, struct pdc_module_path *mod_path); #endif /* !CONFIG_PA20 */ int pdc_lan_station_id(char *lan_addr, unsigned long net_hpa); int pdc_stable_read(unsigned long staddr, void *memaddr, unsigned long count); int pdc_stable_write(unsigned long staddr, void *memaddr, unsigned long count); int pdc_stable_get_size(unsigned long *size); int pdc_stable_verify_contents(void); int pdc_stable_initialize(void); int pdc_pci_irt_size(unsigned long *num_entries, unsigned long hpa); int pdc_pci_irt(unsigned long num_entries, unsigned long hpa, void *tbl); int pdc_get_initiator(struct hardware_path *, struct pdc_initiator *); int pdc_tod_read(struct pdc_tod *tod); int pdc_tod_set(unsigned long sec, unsigned long usec); #ifdef CONFIG_64BIT int pdc_mem_mem_table(struct pdc_memory_table_raddr *r_addr, struct pdc_memory_table *tbl, unsigned long entries); #endif void set_firmware_width(void); int pdc_do_firm_test_reset(unsigned long ftc_bitmap); int pdc_do_reset(void); int pdc_soft_power_info(unsigned long *power_reg); int pdc_soft_power_button(int sw_control); void pdc_io_reset(void); void pdc_io_reset_devices(void); int pdc_iodc_getc(void); void pdc_iodc_putc(unsigned char c); void pdc_iodc_outc(unsigned char c); void pdc_printf(const char *fmt, ...); void pdc_emergency_unlock(void); int pdc_sti_call(unsigned long func, unsigned long flags, unsigned long inptr, unsigned long outputr, unsigned long glob_cfg); static inline char * os_id_to_string(u16 os_id) { switch(os_id) { case OS_ID_NONE: return "No OS"; case OS_ID_HPUX: return "HP-UX"; case OS_ID_MPEXL: return "MPE-iX"; case OS_ID_OSF: return "OSF"; case OS_ID_HPRT: return "HP-RT"; case OS_ID_NOVEL: return "Novell Netware"; case OS_ID_LINUX: return "Linux"; default: return "Unknown"; } } # endif /* __ASSEMBLY__ */ #endif /* __KERNEL__ */ #endif /* !defined(__ASSEMBLY__) */ #endif /* _PARISC_PDC_H */