Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f5213b2c authored by Helge Deller's avatar Helge Deller
Browse files

parisc: Make existing core files reuseable for bootloader



Signed-off-by: default avatarHelge Deller <deller@gmx.de>
parent 2f3c7b81
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -116,11 +116,15 @@ extern int npmem_ranges;
/* This governs the relationship between virtual and physical addresses.
 * If you alter it, make sure to take care of our various fixed mapping
 * segments in fixmap.h */
#if defined(BOOTLOADER)
#define __PAGE_OFFSET	(0)		/* bootloader uses physical addresses */
#else
#ifdef CONFIG_64BIT
#define __PAGE_OFFSET	(0x40000000)	/* 1GB */
#else
#define __PAGE_OFFSET	(0x10000000)	/* 256MB */
#endif
#endif /* BOOTLOADER */

#define PAGE_OFFSET		((unsigned long)__PAGE_OFFSET)

+2 −0
Original line number Diff line number Diff line
@@ -5,6 +5,8 @@

#if !defined(__ASSEMBLY__)

extern int parisc_narrow_firmware;

extern int pdc_type;
extern unsigned long parisc_cell_num; /* cell number the CPU runs on (PAT) */
extern unsigned long parisc_cell_loc; /* cell location of CPU (PAT)	   */
+14 −1
Original line number Diff line number Diff line
@@ -69,7 +69,15 @@
#include <asm/pdcpat.h>
#include <asm/processor.h>	/* for boot_cpu_data */

#if defined(BOOTLOADER)
# undef  spin_lock_irqsave
# define spin_lock_irqsave(a, b) { b = 1; }
# undef  spin_unlock_irqrestore
# define spin_unlock_irqrestore(a, b)
#else
static DEFINE_SPINLOCK(pdc_lock);
#endif

extern unsigned long pdc_result[NUM_PDC_RESULT];
extern unsigned long pdc_result2[NUM_PDC_RESULT];

@@ -186,6 +194,8 @@ void set_firmware_width(void)
}
#endif /*CONFIG_64BIT*/


#if !defined(BOOTLOADER)
/**
 * pdc_emergency_unlock - Unlock the linux pdc lock
 *
@@ -1149,6 +1159,8 @@ void pdc_io_reset_devices(void)
	spin_unlock_irqrestore(&pdc_lock, flags);
}

#endif /* defined(BOOTLOADER) */

/* locked by pdc_console_lock */
static int __attribute__((aligned(8)))   iodc_retbuf[32];
static char __attribute__((aligned(64))) iodc_dbuf[4096];
@@ -1193,6 +1205,7 @@ int pdc_iodc_print(const unsigned char *str, unsigned count)
	return i;
}

#if !defined(BOOTLOADER)
/**
 * pdc_iodc_getc - Read a character (non-blocking) from the PDC console.
 *
@@ -1555,6 +1568,7 @@ int pdc_pat_mem_get_dimm_phys_location(
	return retval;
}
#endif /* CONFIG_64BIT */
#endif /* defined(BOOTLOADER) */


/***************** 32-bit real-mode calls ***********/
@@ -1664,4 +1678,3 @@ long real64_call(unsigned long fn, ...)
}

#endif /* CONFIG_64BIT */
+4 −0
Original line number Diff line number Diff line
@@ -162,6 +162,7 @@ ENDPROC_CFI(restore_control_regs)
	.text
	.align 128
ENTRY_CFI(rfi_virt2real)
#if !defined(BOOTLOADER)
	/* switch to real mode... */
	rsm		PSW_SM_I,%r0
	load32		PA(rfi_v2r_1), %r1
@@ -191,6 +192,7 @@ ENTRY_CFI(rfi_virt2real)
	nop
rfi_v2r_1:
	tophys_r1 %r2
#endif /* defined(BOOTLOADER) */
	bv	0(%r2)
	nop
ENDPROC_CFI(rfi_virt2real)
@@ -198,6 +200,7 @@ ENDPROC_CFI(rfi_virt2real)
	.text
	.align 128
ENTRY_CFI(rfi_real2virt)
#if !defined(BOOTLOADER)
	rsm		PSW_SM_I,%r0
	load32		(rfi_r2v_1), %r1
	nop
@@ -226,6 +229,7 @@ ENTRY_CFI(rfi_real2virt)
	nop
rfi_r2v_1:
	tovirt_r1 %r2
#endif /* defined(BOOTLOADER) */
	bv	0(%r2)
	nop
ENDPROC_CFI(rfi_real2virt)