Commit f00593e0 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull parisc updates from Helge Deller:
 "Usual fixes and updates:

   - Add up to 12 nops after TLB inserts for PA8x00 CPUs as the
     specification requires (Dave Anglin)

   - Simplify the parisc smp_prepare_boot_cpu() code (Russell King)

   - Use 64-bit little-endian values in SBA IOMMU PDIR table for AGP

  Since there is upcoming support for booting a 64-bit kernel on QEMU,
  some corner cases were fixed and improvements added:

   - Fix 64-bit kernel crash in STI (graphics console) font setup code
     which miscalculated the font start address as it gets signed vs
     unsigned offsets wrong

   - Support building an uncompressed Linux kernel

   - Add support for soft power-off in qemu"

* tag 'parisc-for-6.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux:
  fbdev: stifb: Make the STI next font pointer a 32-bit signed offset
  parisc: Show default CPU PSW.W setting as reported by PDC
  parisc/pdc: Add width field to struct pdc_model
  parisc: Add nop instructions after TLB inserts
  parisc: simplify smp_prepare_boot_cpu()
  parisc/agp: Use 64-bit LE values in SBA IOMMU PDIR table
  parisc/firmware: Use PDC constants for narrow/wide firmware
  parisc: Move parisc_narrow_firmware variable to header file
  parisc/power: Trivial whitespace cleanups and license update
  parisc/power: Add power soft-off when running on qemu
  parisc: Allow building uncompressed Linux kernel
  parisc: Add some missing PDC functions and constants
  parisc: sba-iommu: Fix comment when calculating IOC number
parents 979ff1e5 8a32aa17
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -25,6 +25,7 @@ config PARISC
	select INIT_ALL_POSSIBLE
	select BUG
	select BUILDTIME_TABLE_SORT
	select HAVE_KERNEL_UNCOMPRESSED
	select HAVE_PCI
	select HAVE_PERF_EVENTS
	select HAVE_KERNEL_BZIP2
+1 −1
Original line number Diff line number Diff line
@@ -10,7 +10,7 @@ subdir- := compressed
$(obj)/image: vmlinux FORCE
	$(call if_changed,objcopy)

$(obj)/bzImage: $(obj)/compressed/vmlinux FORCE
$(obj)/bzImage: $(if $(CONFIG_KERNEL_UNCOMPRESSED),$(objtree)/vmlinux,$(obj)/compressed/vmlinux) FORCE
	$(call if_changed,objcopy)

$(obj)/compressed/vmlinux: FORCE
+1 −0
Original line number Diff line number Diff line
@@ -287,6 +287,7 @@ extern int _parisc_requires_coherency;
#endif

extern int running_on_qemu;
extern int parisc_narrow_firmware;

extern void __noreturn toc_intr(struct pt_regs *regs);
extern void toc_handler(void);
+26 −2
Original line number Diff line number Diff line
@@ -58,8 +58,8 @@
#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	*/
#define PDC_MODEL_FIRM_TEST_GET	8	/* returns boot test options	*/
#define PDC_MODEL_FIRM_TEST_SET	9	/* set boot test options	*/
#define PDC_MODEL_GET_PLATFORM_INFO 10	/* returns platform info	*/
#define PDC_MODEL_GET_INSTALL_KERNEL 11	/* returns kernel for installation */

@@ -472,6 +472,7 @@ struct pdc_model { /* for PDC_MODEL */
	unsigned long arch_rev;
	unsigned long pot_key;
	unsigned long curr_key;
	unsigned long width;	/* default of PSW_W bit (1=enabled) */
};

struct pdc_cache_cf {		/* for PDC_CACHE  (I/D-caches) */
@@ -609,6 +610,12 @@ struct pdc_system_map_addr_info { /* PDC_SYSTEM_MAP/FIND_ADDRESS */
	unsigned long mod_pgs;
};

struct pdc_relocate_info_block {   /* PDC_RELOCATE_INFO */
	unsigned long pdc_size;
	unsigned long pdc_alignment;
	unsigned long pdc_address;
};

struct pdc_initiator { /* PDC_INITIATOR */
	int host_id;
	int factor;
@@ -717,6 +724,23 @@ struct pdc_toc_pim_20 {
	struct pim_cpu_state_cf cpu_state;
};

/* for SpeedyBoot/firm_ctl funtionality */
struct pdc_firm_test_get_rtn_block {   /* PDC_MODEL/PDC_FIRM_TEST_GET */
	unsigned long current_tests;   /* u_R_addr Raddr_ints[0]  */
	unsigned long tests_supported; /* u_R_addr Raddr_ints[1]  */
	unsigned long default_tests;   /* u_R_addr Raddr_ints[2]  */
};

#define TORNADO_CPU_ID		0xB
#define PCXL_CPU_ID		0xD
#define PCXU_CPU_ID		0xE	/* U and U+ for all but C-class with bug */
#define VR_CPU_ID		0xF
#define PCXU_PLUS_CPU_ID	0x10	/* U+ only on C-class with bug */
#define PCXW_CPU_ID		0x11
#define PCXW_PLUS_CPU_ID	0x12
#define PIRANHA_CPU_ID		0x13
#define MAKO_CPU_ID		0x14

#endif /* !defined(__ASSEMBLY__) */

#endif /* _UAPI_PARISC_PDC_H */
+2 −2
Original line number Diff line number Diff line
@@ -927,8 +927,8 @@ static __init void qemu_header(void)

	#define p ((unsigned long *)&boot_cpu_data.pdc.model)
	pr_info("#define PARISC_PDC_MODEL 0x%lx, 0x%lx, 0x%lx, "
		"0x%lx, 0x%lx, 0x%lx, 0x%lx, 0x%lx, 0x%lx\n\n",
		p[0], p[1], p[2], p[3], p[4], p[5], p[6], p[7], p[8]);
		"0x%lx, 0x%lx, 0x%lx, 0x%lx, 0x%lx, 0x%lx, 0x%lx\n\n",
		p[0], p[1], p[2], p[3], p[4], p[5], p[6], p[7], p[8], p[9]);
	#undef p

	pr_info("#define PARISC_PDC_VERSION 0x%04lx\n\n",
Loading