Lines Matching +full:fixed +full:- +full:factor +full:- +full:clock

2  * arch/parisc/kernel/firmware.c  - safe PDC access routines
6 * See http://www.parisc-linux.org/documentation/index.html
12 * Copyright 2003 Grant Grundler <grundler parisc-linux org>
13 * Copyright 2003,2004 Ryan Bradetich <rbrad@parisc-linux.org>
14 * Copyright 2004,2006 Thibaut VARENE <varenet@parisc-linux.org>
26 * - the name of the pdc wrapper should match one of the macros
28 * - don't use caps for random parts of the name
29 * - use the static PDC result buffers and "copyout" to structs
31 * - hold pdc_lock while in PDC or using static result buffers
32 * - use __pa() to convert virtual (kernel) pointers to physical
34 * - the name of the struct used for pdc return values should equal
37 * - keep the order of arguments
38 * - don't be smart (setting trailing NUL bytes for strings, return
86 /* On most currently-supported platforms, IODC I/O calls are 32-bit calls
88 * Some PAT boxes may have 64-bit IODC I/O.
91 * 64-bit kernels to run on systems with 32-bit MEM_PDC calls.
93 * We now detect 32-bit-only PDC and dynamically switch to 32-bit mode
94 * when running a 64-bit kernel on such boxes (e.g. C200 or C360).
103 # define MEM_PDC (unsigned long)(PAGE0->mem_pdc_hi) << 32 | PAGE0->mem_pdc
106 # define MEM_PDC (unsigned long)PAGE0->mem_pdc
112 * f_extend - Convert PDC addresses to kernel addresses.
133 * convert_to_wide - Convert the return buffer addresses into kernel addresses.
147 for(i = 31; i >= 0; --i) in convert_to_wide()
166 * set_firmware_width - Determine if the firmware is wide or narrow.
189 * pdc_emergency_unlock - Unlock the linux pdc lock
203 * pdc_add_valid - Verify address can be accessed without causing a HPMC.
225 * pdc_chassis_info - Return chassis information.
250 * pdc_pat_chassis_send_log - Sends a PDC PAT CHASSIS log message.
251 * @retval: -1 on error, 0 on success. Other value are PDC errors
262 return -1; in pdc_pat_chassis_send_log()
273 * pdc_chassis_disp - Updates chassis code
274 * @retval: -1 on error, 0 on success
289 * pdc_chassis_warn - Fetches chassis warnings
290 * @retval: -1 on error, 0 on success
311 pdc_coproc_info->ccr_functional = pdc_result[0]; in pdc_coproc_cfg_unlocked()
312 pdc_coproc_info->ccr_present = pdc_result[1]; in pdc_coproc_cfg_unlocked()
313 pdc_coproc_info->revision = pdc_result[17]; in pdc_coproc_cfg_unlocked()
314 pdc_coproc_info->model = pdc_result[18]; in pdc_coproc_cfg_unlocked()
320 * pdc_coproc_cfg - To identify coprocessors attached to the processor.
339 * pdc_iodc_read - Read data from the modules IODC.
368 * pdc_system_map_find_mods - Locate unarchitected modules.
371 * @mod_index: fixed address module index.
373 * To locate and identify modules which reside at fixed I/O addresses, which
374 * do not self-identify via architected bus walks.
390 pdc_mod_info->mod_addr = f_extend(pdc_mod_info->mod_addr); in pdc_system_map_find_mods()
395 * pdc_system_map_find_addrs - Retrieve additional address ranges.
397 * @mod_index: Fixed address module index.
416 pdc_addr_info->mod_addr = f_extend(pdc_addr_info->mod_addr); in pdc_system_map_find_addrs()
421 * pdc_model_info - Return model information about the processor.
441 * pdc_model_sysmodel - Get the system model name.
469 * pdc_model_versions - Identify the version number of each processor.
475 * This comment was here before, but I do not know what it means :( -RB
476 * id: 0 = cpu revision, 1 = boot-rom-version
493 * pdc_model_cpuid - Returns the CPU_ID.
515 * pdc_model_capabilities - Returns the platform capabilities.
518 * Returns information about platform support for 32- and/or 64-bit
519 * OSes, IO-PDIR coherency, and virtual aliasing.
541 * pdc_cache_info - Return cache and TLB information.
561 * pdc_spaceid_bits - Return whether Space ID hashing is turned on.
583 * pdc_btlb_info - Return block TLB information.
599 btlb->max_size = 0; in pdc_btlb_info()
605 * pdc_mem_map_hpa - Find fixed module information.
634 * pdc_lan_station_id - Get the LAN address.
661 * pdc_stable_read - Read data from Stable Storage.
687 * pdc_stable_write - Write data to Stable Storage.
713 * pdc_stable_get_size - Get Stable Storage size in bytes.
718 * Storage starting from staddr=0. size in an unsigned 64-bit integer
736 * pdc_stable_verify_contents - Checks that Stable Storage contents are valid.
755 * pdc_stable_initialize - Sets Stable Storage contents to zero and initialize
774 * pdc_get_initiator - Get the SCSI Interface Card params (SCSI ID, SDTR, SE or LVD)
783 * o set SCSI id for Multi-initiator clusters,
794 /* BCJ-XXXX series boxes. E.G. "9000/785/C3000" */ in pdc_get_initiator()
804 initiator->host_id = pdc_result[0]; in pdc_get_initiator()
806 initiator->host_id = -1; in pdc_get_initiator()
814 case 1: initiator->factor = 50; break; in pdc_get_initiator()
815 case 2: initiator->factor = 25; break; in pdc_get_initiator()
816 case 5: initiator->factor = 12; break; in pdc_get_initiator()
817 case 25: initiator->factor = 10; break; in pdc_get_initiator()
818 case 20: initiator->factor = 12; break; in pdc_get_initiator()
819 case 40: initiator->factor = 10; break; in pdc_get_initiator()
820 default: initiator->factor = -1; break; in pdc_get_initiator()
824 initiator->width = pdc_result[4]; in pdc_get_initiator()
825 initiator->mode = pdc_result[5]; in pdc_get_initiator()
827 initiator->width = -1; in pdc_get_initiator()
828 initiator->mode = -1; in pdc_get_initiator()
840 * pdc_pci_irt_size - Get the number of entries in the interrupt routing table.
846 * Similar to PDC_PAT stuff - but added for Forte/Allegro boxes
864 * pdc_pci_irt - Get the PCI interrupt routing table.
870 * Similar to PDC_PAT stuff - but added for Forte/Allegro boxes
889 #if 0 /* UNTEST CODE - left here in case someone needs it */
892 * pdc_pci_config_read - read PCI config space.
915 * pdc_pci_config_write - read PCI config space.
918 * @val value we want in the 32-bit register
939 * pdc_tod_read - Read the Time-Of-Day clock.
942 * Read the Time-Of-Day clock
960 * pdc_tod_set - Set the Time-Of-Day clock.
964 * Set the Time-Of-Day clock.
1015 * pdc_do_reset - Reset the system.
1032 * pdc_soft_power_info - Enable soft power switch.
1042 *power_reg = (unsigned long) (-1); in pdc_soft_power_info()
1056 * pdc_soft_power_button - Control the soft power button behaviour
1079 * pdc_io_reset - Hack to avoid overlapping range registers of Bridges devices.
1080 * Primarily a problem on T600 (which parisc-linux doesn't support) but
1093 * pdc_io_reset_devices - Hack to Stop USB controller
1115 * pdc_iodc_print - Console print using IODC.
1145 real32_call(PAGE0->mem_cons.iodc_io, in pdc_iodc_print()
1146 (unsigned long)PAGE0->mem_cons.hpa, ENTRY_IO_COUT, in pdc_iodc_print()
1147 PAGE0->mem_cons.spa, __pa(PAGE0->mem_cons.dp.layers), in pdc_iodc_print()
1155 * pdc_iodc_getc - Read a character (non-blocking) from the PDC console.
1157 * Read a character (non-blocking) from the PDC console, returns -1 if
1167 if (!PAGE0->mem_kbd.iodc_io) in pdc_iodc_getc()
1170 /* wait for a keyboard (rs232)-input */ in pdc_iodc_getc()
1172 real32_call(PAGE0->mem_kbd.iodc_io, in pdc_iodc_getc()
1173 (unsigned long)PAGE0->mem_kbd.hpa, ENTRY_IO_CIN, in pdc_iodc_getc()
1174 PAGE0->mem_kbd.spa, __pa(PAGE0->mem_kbd.dp.layers), in pdc_iodc_getc()
1182 return -1; in pdc_iodc_getc()
1204 * pdc_pat_cell_get_number - Returns the cell number.
1224 * pdc_pat_cell_module - Retrieve the cell's module information.
1254 * pdc_pat_cpu_get_number - Retrieve the cpu number.
1275 * pdc_pat_get_irt_size - Retrieve the number of entries in the cell's interrupt table.
1297 * pdc_pat_get_irt - Retrieve the cell's interrupt table.
1317 * pdc_pat_pd_get_addr_map - Retrieve information about memory address ranges.
1341 * pdc_pat_io_pci_cfg_read - Read PCI configuration space.
1366 * pdc_pat_io_pci_cfg_write - Retrieve information about memory address ranges.
1388 /***************** 32-bit real-mode calls ***********/
1390 * to overlay real_stack (real2.S), preparing a 32-bit call frame.
1444 /***************** 64-bit real-mode calls ***********/