Deal with the bloody KSEG vs CKSEG horror...
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
This commit is contained in:
		
							parent
							
								
									902d21d531
								
							
						
					
					
						commit
						3bd4c902da
					
				| @ -144,7 +144,8 @@ static int dec_ecc_be_backend(struct pt_regs *regs, int is_fixup, int invoker) | ||||
| 			} else if (!sngl) { | ||||
| 				status = dbestr; | ||||
| 			} else { | ||||
| 				volatile u32 *ptr = (void *)KSEG1ADDR(address); | ||||
| 				volatile u32 *ptr = | ||||
| 					(void *)CKSEG1ADDR(address); | ||||
| 
 | ||||
| 				*ptr = *ptr;		/* Rewrite. */ | ||||
| 				iob(); | ||||
|  | ||||
| @ -35,22 +35,22 @@ static inline void pmax_setup_memory_region(void) | ||||
| 	extern char genexcept_early; | ||||
| 
 | ||||
| 	/* Install exception handler */ | ||||
| 	memcpy(&old_handler, (void *)(KSEG0 + 0x80), 0x80); | ||||
| 	memcpy((void *)(KSEG0 + 0x80), &genexcept_early, 0x80); | ||||
| 	memcpy(&old_handler, (void *)(CKSEG0 + 0x80), 0x80); | ||||
| 	memcpy((void *)(CKSEG0 + 0x80), &genexcept_early, 0x80); | ||||
| 
 | ||||
| 	/* read unmapped and uncached (KSEG1)
 | ||||
| 	 * DECstations have at least 4MB RAM | ||||
| 	 * Assume less than 480MB of RAM, as this is max for 5000/2xx | ||||
| 	 * FIXME this should be replaced by the first free page! | ||||
| 	 */ | ||||
| 	for (memory_page = (unsigned char *) KSEG1 + CHUNK_SIZE; | ||||
| 	     (mem_err== 0) && (memory_page < ((unsigned char *) KSEG1+0x1E000000)); | ||||
| 	for (memory_page = (unsigned char *)CKSEG1 + CHUNK_SIZE; | ||||
| 	     mem_err == 0 && memory_page < (unsigned char *)CKSEG1 + 0x1e00000; | ||||
|   	     memory_page += CHUNK_SIZE) { | ||||
| 		dummy = *memory_page; | ||||
| 	} | ||||
| 	memcpy((void *)(KSEG0 + 0x80), &old_handler, 0x80); | ||||
| 	memcpy((void *)(CKSEG0 + 0x80), &old_handler, 0x80); | ||||
| 
 | ||||
| 	add_memory_region(0, (unsigned long)memory_page - KSEG1 - CHUNK_SIZE, | ||||
| 	add_memory_region(0, (unsigned long)memory_page - CKSEG1 - CHUNK_SIZE, | ||||
| 			  BOOT_MEM_RAM); | ||||
| } | ||||
| 
 | ||||
| @ -65,7 +65,7 @@ static inline void rex_setup_memory_region(void) | ||||
| 	memmap *bm; | ||||
| 
 | ||||
| 	/* some free 64k */ | ||||
| 	bm = (memmap *)KSEG0ADDR(0x28000); | ||||
| 	bm = (memmap *)CKSEG0ADDR(0x28000); | ||||
| 
 | ||||
| 	bitmap_size = rex_getbitmap(bm); | ||||
| 
 | ||||
|  | ||||
| @ -14,7 +14,7 @@ typedef void ATTRIB_NORET (* noret_func_t)(void); | ||||
| 
 | ||||
| static inline void ATTRIB_NORET back_to_prom(void) | ||||
| { | ||||
| 	noret_func_t func = (void *) KSEG1ADDR(0x1fc00000); | ||||
| 	noret_func_t func = (void *)CKSEG1ADDR(0x1fc00000); | ||||
| 
 | ||||
| 	func(); | ||||
| } | ||||
|  | ||||
| @ -197,7 +197,7 @@ void __init tc_init(void) | ||||
| 	} | ||||
| 
 | ||||
| 	info = (tcinfo *) rex_gettcinfo(); | ||||
| 	slot0addr = (unsigned long)KSEG1ADDR(rex_slot_address(0)); | ||||
| 	slot0addr = (unsigned long)CKSEG1ADDR(rex_slot_address(0)); | ||||
| 
 | ||||
| 	switch (mips_machtype) { | ||||
| 	case MACH_DS5000_200: | ||||
| @ -245,7 +245,6 @@ void __init tc_init(void) | ||||
| 					tc_bus[i].name, tc_bus[i].firmware); | ||||
| 			} | ||||
| #endif | ||||
| 		ioport_resource.end = KSEG2 - 1; | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
|  | ||||
| @ -1637,21 +1637,21 @@ static void __init probe_sccs(void) | ||||
| #ifdef CONFIG_MACH_DECSTATION | ||||
| 	case MACH_DS5000_2X0: | ||||
| 	case MACH_DS5900: | ||||
| 		system_base = KSEG1ADDR(0x1f800000); | ||||
| 		system_base = CKSEG1ADDR(0x1f800000); | ||||
| 		n_chips = 2; | ||||
| 		zs_parms = &ds_parms; | ||||
| 		zs_parms->irq0 = dec_interrupt[DEC_IRQ_SCC0]; | ||||
| 		zs_parms->irq1 = dec_interrupt[DEC_IRQ_SCC1]; | ||||
| 		break; | ||||
| 	case MACH_DS5000_1XX: | ||||
| 		system_base = KSEG1ADDR(0x1c000000); | ||||
| 		system_base = CKSEG1ADDR(0x1c000000); | ||||
| 		n_chips = 2; | ||||
| 		zs_parms = &ds_parms; | ||||
| 		zs_parms->irq0 = dec_interrupt[DEC_IRQ_SCC0]; | ||||
| 		zs_parms->irq1 = dec_interrupt[DEC_IRQ_SCC1]; | ||||
| 		break; | ||||
| 	case MACH_DS5000_XX: | ||||
| 		system_base = KSEG1ADDR(0x1c000000); | ||||
| 		system_base = CKSEG1ADDR(0x1c000000); | ||||
| 		n_chips = 1; | ||||
| 		zs_parms = &ds_parms; | ||||
| 		zs_parms->irq0 = dec_interrupt[DEC_IRQ_SCC0]; | ||||
|  | ||||
| @ -15,7 +15,7 @@ | ||||
| 
 | ||||
| #include <asm/addrspace.h> | ||||
| 
 | ||||
| #define KN01_SLOT_BASE	KSEG1ADDR(0x10000000) | ||||
| #define KN01_SLOT_BASE	CKSEG1ADDR(0x10000000) | ||||
| #define KN01_SLOT_SIZE	0x01000000 | ||||
| 
 | ||||
| /*
 | ||||
| @ -51,7 +51,7 @@ | ||||
| /*
 | ||||
|  * Frame buffer memory address. | ||||
|  */ | ||||
| #define KN01_VFB_MEM	KSEG1ADDR(0x0fc00000) | ||||
| #define KN01_VFB_MEM	CKSEG1ADDR(0x0fc00000) | ||||
| 
 | ||||
| /*
 | ||||
|  * CPU interrupt bits. | ||||
|  | ||||
| @ -22,7 +22,7 @@ | ||||
| #include <asm/dec/ecc.h> | ||||
| 
 | ||||
| 
 | ||||
| #define KN02_SLOT_BASE	KSEG1ADDR(0x1fc00000) | ||||
| #define KN02_SLOT_BASE	CKSEG1ADDR(0x1fc00000) | ||||
| #define KN02_SLOT_SIZE	0x00080000 | ||||
| 
 | ||||
| /*
 | ||||
|  | ||||
| @ -20,7 +20,7 @@ | ||||
| #include <asm/addrspace.h> | ||||
| #include <asm/dec/ioasic_addrs.h> | ||||
| 
 | ||||
| #define KN02XA_SLOT_BASE	KSEG1ADDR(0x1c000000) | ||||
| #define KN02XA_SLOT_BASE	CKSEG1ADDR(0x1c000000) | ||||
| 
 | ||||
| /*
 | ||||
|  * Some port addresses... | ||||
| @ -32,16 +32,16 @@ | ||||
| /*
 | ||||
|  * Memory control ASIC registers. | ||||
|  */ | ||||
| #define KN02XA_MER	KSEG1ADDR(0x0c400000)	/* memory error register */ | ||||
| #define KN02XA_MSR	KSEG1ADDR(0x0c800000)	/* memory size register */ | ||||
| #define KN02XA_MER	CKSEG1ADDR(0x0c400000)	/* memory error register */ | ||||
| #define KN02XA_MSR	CKSEG1ADDR(0x0c800000)	/* memory size register */ | ||||
| 
 | ||||
| /*
 | ||||
|  * CPU control ASIC registers. | ||||
|  */ | ||||
| #define KN02XA_MEM_CONF	KSEG1ADDR(0x0e000000)	/* write timeout config */ | ||||
| #define KN02XA_EAR	KSEG1ADDR(0x0e000004)	/* error address register */ | ||||
| #define KN02XA_BOOT0	KSEG1ADDR(0x0e000008)	/* boot 0 register */ | ||||
| #define KN02XA_MEM_INTR	KSEG1ADDR(0x0e00000c)	/* write err IRQ stat & ack */ | ||||
| #define KN02XA_MEM_CONF	CKSEG1ADDR(0x0e000000)	/* write timeout config */ | ||||
| #define KN02XA_EAR	CKSEG1ADDR(0x0e000004)	/* error address register */ | ||||
| #define KN02XA_BOOT0	CKSEG1ADDR(0x0e000008)	/* boot 0 register */ | ||||
| #define KN02XA_MEM_INTR	CKSEG1ADDR(0x0e00000c)	/* write err IRQ stat & ack */ | ||||
| 
 | ||||
| /*
 | ||||
|  * Memory Error Register bits, common definitions. | ||||
|  | ||||
| @ -19,7 +19,7 @@ | ||||
| #include <asm/dec/ecc.h> | ||||
| #include <asm/dec/ioasic_addrs.h> | ||||
| 
 | ||||
| #define KN03_SLOT_BASE	KSEG1ADDR(0x1f800000) | ||||
| #define KN03_SLOT_BASE	CKSEG1ADDR(0x1f800000) | ||||
| 
 | ||||
| /*
 | ||||
|  * Some port addresses... | ||||
|  | ||||
| @ -24,7 +24,7 @@ | ||||
|  * PMAX/3MAX PROM entry points for DS2100/3100's and DS5000/2xx's. | ||||
|  * Many of these will work for MIPSen as well! | ||||
|  */ | ||||
| #define VEC_RESET		(u64 *)KSEG1ADDR(0x1fc00000) | ||||
| #define VEC_RESET		(u64 *)CKSEG1ADDR(0x1fc00000) | ||||
| 							/* Prom base address */ | ||||
| 
 | ||||
| #define PMAX_PROM_ENTRY(x)	(VEC_RESET + (x))	/* Prom jump table */ | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user