forked from xuos/xiuos
				
			support zynq7000-zc702
This commit is contained in:
		
							parent
							
								
									5f9478251b
								
							
						
					
					
						commit
						6489d94dcd
					
				| 
						 | 
					@ -140,7 +140,7 @@ OKToRun:
 | 
				
			||||||
	mcr	p15, 0, r0, c8, c7, 0		/* invalidate TLBs */
 | 
						mcr	p15, 0, r0, c8, c7, 0		/* invalidate TLBs */
 | 
				
			||||||
	mcr	p15, 0, r0, c7, c5, 0		/* invalidate icache */
 | 
						mcr	p15, 0, r0, c7, c5, 0		/* invalidate icache */
 | 
				
			||||||
	mcr	p15, 0, r0, c7, c5, 6		/* Invalidate branch predictor array */
 | 
						mcr	p15, 0, r0, c7, c5, 6		/* Invalidate branch predictor array */
 | 
				
			||||||
	bl	invalidate_dcache		/* invalidate dcache */
 | 
						bl	boot_invalidate_dcache		/* invalidate dcache */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/* Disable MMU, if enabled */
 | 
						/* Disable MMU, if enabled */
 | 
				
			||||||
	mrc	p15, 0, r0, c1, c0, 0		/* read CP15 register 1 */
 | 
						mrc	p15, 0, r0, c1, c0, 0		/* read CP15 register 1 */
 | 
				
			||||||
| 
						 | 
					@ -193,14 +193,14 @@ OKToRun:
 | 
				
			||||||
/*
 | 
					/*
 | 
				
			||||||
 *************************************************************************
 | 
					 *************************************************************************
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * invalidate_dcache - invalidate the entire d-cache by set/way
 | 
					 * boot_invalidate_dcache - invalidate the entire d-cache by set/way
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * Note: for Cortex-A9, there is no cp instruction for invalidating
 | 
					 * Note: for Cortex-A9, there is no cp instruction for invalidating
 | 
				
			||||||
 * the whole D-cache. Need to invalidate each line.
 | 
					 * the whole D-cache. Need to invalidate each line.
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 *************************************************************************
 | 
					 *************************************************************************
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
invalidate_dcache:
 | 
					boot_invalidate_dcache:
 | 
				
			||||||
	mrc	p15, 1, r0, c0, c0, 1		/* read CLIDR */
 | 
						mrc	p15, 1, r0, c0, c0, 1		/* read CLIDR */
 | 
				
			||||||
	ands	r3, r0, #0x7000000
 | 
						ands	r3, r0, #0x7000000
 | 
				
			||||||
	mov	r3, r3, lsr #23			/* cache level value (naturally aligned) */
 | 
						mov	r3, r3, lsr #23			/* cache level value (naturally aligned) */
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -36,8 +36,6 @@ SECTIONS
 | 
				
			||||||
	.start_sec : {
 | 
						.start_sec : {
 | 
				
			||||||
		. = ALIGN(0x1000);
 | 
							. = ALIGN(0x1000);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		*(.vectors)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		/* read only area. */
 | 
							/* read only area. */
 | 
				
			||||||
		boot.o(.text)
 | 
							boot.o(.text)
 | 
				
			||||||
		xil-crt0.o(.text .text.*)
 | 
							xil-crt0.o(.text .text.*)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -50,6 +50,7 @@
 | 
				
			||||||
 *****************************************************************************/
 | 
					 *****************************************************************************/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/***************************** Include Files ********************************/
 | 
					/***************************** Include Files ********************************/
 | 
				
			||||||
 | 
					#include "xparameters.h"
 | 
				
			||||||
#include "xuartps_hw.h"
 | 
					#include "xuartps_hw.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "mmio_access.h"
 | 
					#include "mmio_access.h"
 | 
				
			||||||
| 
						 | 
					@ -176,8 +177,6 @@ void XUartPs_ResetHw(u32 BaseAddress)
 | 
				
			||||||
        ((u32)XUARTPS_CR_RX_DIS | (u32)XUARTPS_CR_TX_DIS | (u32)XUARTPS_CR_STOPBRK));
 | 
					        ((u32)XUARTPS_CR_RX_DIS | (u32)XUARTPS_CR_TX_DIS | (u32)XUARTPS_CR_STOPBRK));
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define STDIN_BASEADDRESS 0xE0001000
 | 
					 | 
				
			||||||
#define STDOUT_BASEADDRESS 0xE0001000
 | 
					 | 
				
			||||||
void UartPutChar(uint8_t ch)
 | 
					void UartPutChar(uint8_t ch)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    if (ch == '\n') {
 | 
					    if (ch == '\n') {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -288,7 +288,6 @@ void load_kern_pgdir(struct TraceTag* mmu_driver_tag, struct TraceTag* intr_driv
 | 
				
			||||||
    uintptr_t dev_attr = 0;
 | 
					    uintptr_t dev_attr = 0;
 | 
				
			||||||
    _p_pgtbl_mmu_access->MmuDevPteAttr(&dev_attr);
 | 
					    _p_pgtbl_mmu_access->MmuDevPteAttr(&dev_attr);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    _map_pages((uintptr_t*)kern_pgdir.pd_addr, PHY_MEM_BASE, PHY_MEM_BASE, (PHY_MEM_STOP - PHY_MEM_BASE), kern_attr);
 | 
					 | 
				
			||||||
    // kern mem
 | 
					    // kern mem
 | 
				
			||||||
    _map_pages((uintptr_t*)kern_pgdir.pd_addr, KERN_MEM_BASE, PHY_MEM_BASE, (PHY_MEM_STOP - PHY_MEM_BASE), kern_attr);
 | 
					    _map_pages((uintptr_t*)kern_pgdir.pd_addr, KERN_MEM_BASE, PHY_MEM_BASE, (PHY_MEM_STOP - PHY_MEM_BASE), kern_attr);
 | 
				
			||||||
    // dev mem
 | 
					    // dev mem
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -198,9 +198,7 @@ static void _scheduler(struct SchedulerRightGroup right_group)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        struct CPU* cpu = cur_cpu();
 | 
					        struct CPU* cpu = cur_cpu();
 | 
				
			||||||
        cpu->task = next_task;
 | 
					        cpu->task = next_task;
 | 
				
			||||||
        // DEBUG("%s %d\n", __func__, __LINE__);
 | 
					 | 
				
			||||||
        context_switch(&cpu->scheduler, next_task->main_thread.context);
 | 
					        context_switch(&cpu->scheduler, next_task->main_thread.context);
 | 
				
			||||||
        // DEBUG("%s %d\n", __func__, __LINE__);
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue