亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? sysalib.s

?? bootloader for popwerpc nor flash
?? S
字號:
/* sysALib.s - Motorola ads834x system-dependent assembly routines *//* * Copyright (c) 2005 Wind River Systems, Inc. * * The right to copy, distribute, modify or otherwise make use * of this software may be licensed only pursuant to the terms * of an applicable Wind River license agreement. */        .data	.globl	copyright_wind_river	.long	copyright_wind_river/*modification history--------------------01b,15aug05,dtr  support startType.01a,15jan05,dtr  written from ads826x sysALib.s*//*DESCRIPTIONThis module contains system-dependent routines written in assemblylanguage.This module must be the first specified in the \f3ld\f1 command used tobuild the system.  The sysInit() routine is the system start-up code.*/#define _ASMLANGUAGE#include <vxWorks.h>#include <asm.h>#include <cacheLib.h>#include <arch/ppc/cachePpcLib.h>#include "config.h"#include <regs.h>	#include <sysLib.h>	/* globals */	FUNC_EXPORT(_sysInit)		/* start of system code */	FUNC_EXPORT(sysMsrGet)		/* get the value of the MSR register */	FUNC_EXPORT(sysInWord)        FUNC_EXPORT(sysInByte)		FUNC_EXPORT(sysInLong)	FUNC_EXPORT(sysOutLong)	FUNC_EXPORT(sysOutWord)	FUNC_EXPORT(sysOutByte)	FUNC_EXPORT(sysPciRead32)	FUNC_EXPORT(sysPciWrite32)	FUNC_EXPORT(sysPciInByte)	FUNC_EXPORT(sysPciOutByte)	FUNC_EXPORT(sysPciInWord)	FUNC_EXPORT(sysPciOutWord)	FUNC_EXPORT(sysPciInLong)	FUNC_EXPORT(sysPciOutLong)	FUNC_EXPORT(vxHid2Get)	FUNC_EXPORT(vxHid2Set)	FUNC_EXPORT(vxSvrGet)	/* externals */	FUNC_IMPORT(usrInit)     	_WRS_TEXT_SEG_START/********************************************************************************* sysInit - start after boot** This is the system start-up entry point for VxWorks in RAM, the* first code executed after booting.  This code does the following:** .CS*     sets the MSR to all 0 which, among other things:*         disables external interrupts*         disables machine check interrupts*         selects exception prefix 0x000n_nnnn*         disables instruction and data address translation*     clears the SPRGs*     clears the segment registers*     places an rfi instruction at the decrementer exception vector*     initializes the stack pointer *     disables instruction and data translations in the MMU *     initializes the BAT registers*     invalidates all entries in instruction and data TLBs*     clear HID0 , among other things:*         disables instruction and data caches*     invalidates instruction and data caches*     sets up the stack* .CE** At the end it jumps to the C routine usrInit() in usrConfig.c.** The initial stack is set to grow down from the address of sysInit().  This* stack is used only by usrInit() and is never used again.  Memory for the* stack must be accounted for when determining the system load address.** NOTE: This routine should not be called by the user.** RETURNS: N/A* sysInit (void)              /@ THIS IS NOT A CALLABLE ROUTINE @/*/FUNC_BEGIN(_sysInit)        mr      r11 ,r3  /* store startType in r7 */	/* clear the MSR */	xor	r3, r3, r3          sync        mtmsr   r3        isync        /* clear the SPRGs */        xor     r0,r0,r0        mtspr   272,r0        mtspr   273,r0        mtspr   274,r0        mtspr   275,r0        /* clear the Segment registers */        andi.   r3, r3, 0        isync        mtsr    0,r3        isync        mtsr    1,r3        isync        mtsr    2,r3        isync        mtsr    3,r3        isync        mtsr    4,r3        isync        mtsr    5,r3        isync        mtsr    6,r3        isync        mtsr    7,r3        isync        mtsr    8,r3        isync        mtsr    9,r3        isync        mtsr    10,r3        isync        mtsr    11,r3        isync        mtsr    12,r3        isync        mtsr    13,r3        isync        mtsr    14,r3        isync        mtsr    15,r3        isync        /* clear SDR1 */        mtspr   25,r0        isync	bl sysClearFPRegs        /* return from decrementer exceptions */        addis   r4, r0, 0x4c00        addi    r4, r4, 0x0064          /* load rfi (0x4c000064) to r4      */        stw     r4, 0x900(r0)           /* store rfi at 0x00000900          */	/* initialize the stack pointer */		lis     sp, HI(RAM_LOW_ADRS)	addi    sp, sp, LO(RAM_LOW_ADRS)		/* initialize the BAT register */	li	p3,0	 		/* clear r3 */		isync	mtspr	IBAT0U,p3		/* SPR 528 (IBAT0U) */	isync	mtspr	IBAT0L,p3		/* SPR 529 (IBAT0L) */	isync	mtspr	IBAT1U,p3		/* SPR 530 (IBAT1U) */	isync	mtspr	IBAT1L,p3		/* SPR 531 (IBAT1L) */	isync	mtspr	IBAT2U,p3		/* SPR 532 (IBAT2U) */	isync	mtspr	IBAT2L,p3		/* SPR 533 (IBAT2L) */	isync	mtspr	IBAT3U,p3		/* SPR 534 (IBAT3U) */	isync	mtspr	IBAT3L,p3		/* SPR 535 (IBAT3L) */	isync	mtspr	DBAT0U,p3		/* SPR 536 (DBAT0U) */	isync	mtspr	DBAT0L,p3		/* SPR 537 (DBAT0L) */	isync	mtspr	DBAT1U,p3		/* SPR 538 (DBAT1U) */	isync	mtspr	DBAT1L,p3		/* SPR 539 (DBAT1L) */	isync	mtspr	DBAT2U,p3		/* SPR 540 (DBAT2U) */	isync	mtspr	DBAT2L,p3		/* SPR 541 (DBAT2L) */	isync	mtspr	DBAT3U,p3		/* SPR 542 (DBAT3U) */	isync	mtspr	DBAT3L,p3		/* SPR 543 (DBAT3L) */	isync	/* invalidate entries within both TLBs */	li	r4,32	mtctr	r4			/* CTR = 32  */	xor	r3,r3,r3		/* r3 = 0    */	isync				/* context sync req'd before tlbie */sysALoop:	tlbie	r3	addi	r3,r3,0x1000		/* increment bits 15-19 */	bdnz	sysALoop		/* decrement CTR, branch if CTR != 0 */	sync				/* sync instr req'd after tlbie      */	/* clear HID0 */	li      r3, 0	sync	isync	mtspr   HID0, r3	/* 	 * Invalidate both caches by setting and then clearing the cache 	 * invalidate bits	 */	        mfspr   r3, HID0	lis     r3, HIADJ(_PPC_HID0_ICFI | _PPC_HID0_DCFI | _PPC_HID0_PAR | _PPC_HID0_EMCP) /* set bits */	ori     r3, r3, LO(_PPC_HID0_ICFI | _PPC_HID0_DCFI | _PPC_HID0_PAR | _PPC_HID0_EMCP) /* set bits */	sync	isync	mtspr   HID0, r3	        /* clear HID0, which clears cache invalidate bits */	li      r3, 0	sync	isync	mtspr   HID0, r3	lis     sp, HIADJ(RAM_LOW_ADRS)	addi    sp, sp, LO(RAM_LOW_ADRS)	addi	sp, sp, -FRAMEBASESZ	/* get frame stack */	mr      r3, r11 /* load startType */	/* jump to usrInit */	b	usrInit			/* never returns - starts up kernel */FUNC_END(_sysInit)	/******************************************************************************** sysMsrGet - Get the value of the MSR (Machine State Register)** This routine returns the value of the MSR.** RETURNS: the Machine State Register (MSR) value.* UINT32 sysMsrGet (void)*/FUNC_BEGIN(sysMsrGet)        mfmsr   p0        blrFUNC_END(sysMsrGet)		/******************************************************************************* sysInByte - reads a byte from an io address.** This function reads a byte from a specified io address.** RETURNS: byte from address.* UCHAR sysInByte*     (*     UCHAR *  pAddr		/@ Virtual I/O addr to read from @/*     )*/FUNC_BEGIN(sysInByte)	lbzx	p0,r0,p0	/* Read byte from I/O space */	bclr	20,0		/* Return to caller */FUNC_END(sysInByte)		/******************************************************************************* sysInWord - reads a word from an address, swapping the bytes.** This function reads a swapped word from a specified * address.** RETURNS:* Returns swapped 16 bit data from the specified address.* USHORT sysInWord*     (*     ULONG  address,		/@ addr to read from @/*     )*/FUNC_BEGIN(sysInWord)        lhbrx   p0,r0,p0	/* Read and swap */        bclr    20,0		/* Return to caller */FUNC_END(sysInWord)/******************************************************************************* sysInLong - reads a long from an address.** This function reads a long from a specified PCI Config Space (little-endian)* address.** RETURNS:* Returns 32 bit data from the specified register.  Note that for PCI systems* if no target responds, the data returned to the CPU will be 0xffffffff.* ULONG sysInLong*     (*     ULONG  address,		/@ Virtual addr to read from @/*     )*/FUNC_BEGIN(sysInLong)        lwbrx   p0,r0,p0	/* Read and swap from address */        bclr    20,0		/* Return to caller */FUNC_END(sysInLong)	/******************************************************************************** sysOutByte - writes a byte to an io address.** This function writes a byte to a specified io address.** RETURNS: N/A* VOID sysOutByte*     (*     UCHAR *  pAddr,		/@ Virtual I/O addr to write to @/*     UCHAR    data		/@ data to be written @/*     )*/FUNC_BEGIN(sysOutByte)	stbx	p1,r0,p0	/* Write a byte to PCI space */	sync	bclr	20,0		/* Return to caller */FUNC_END(sysOutByte)	/******************************************************************************* sysOutWord - writes a word to an address swapping the bytes.** This function writes a swapped word to a specified * address.** RETURNS: N/A* VOID sysOutWord*     (*     ULONG address,		/@ Virtual addr to write to @/*     UINT16  data		/@ Data to be written       @/*     )*/FUNC_BEGIN(sysOutWord)        sthbrx  p1,r0,p0	/* Write with swap to address */	sync        bclr    20,0		/* Return to caller */FUNC_END(sysOutWord)/******************************************************************************** sysOutLong - write a swapped long to address.** This routine will store a 32-bit data item (input as big-endian)* into an address in little-endian mode.** RETURNS: N/A* VOID sysOutLong*     (*     ULONG   address,		/@ Virtual addr to write to @/*     ULONG   data		/@ Data to be written @/*     )*/FUNC_BEGIN(sysOutLong)        stwbrx  p1,r0,p0	/* store data as little-endian */	sync        bclr    20,0FUNC_END(sysOutLong)/******************************************************************************** sysPciRead32 - read 32 bit PCI data** This routine will read a 32-bit data item from PCI (I/O or* memory) space.** RETURNS: N/A* VOID sysPciRead32*     (*     ULONG *  pAddr,		/@ Virtual addr to read from @/*     ULONG *  pResult		/@ location to receive data @/*     )*/FUNC_BEGIN(sysPciRead32)        lwbrx   p0,r0,p0	/* get the data and swap the bytes */        stw     p0,0(p1)	/* store into address ptd. to by p1 */        bclr    20,0FUNC_END(sysPciRead32)/******************************************************************************** sysPciWrite32 - write a 32 bit data item to PCI space** This routine will store a 32-bit data item (input as big-endian)* into PCI (I/O or memory) space in little-endian mode.** RETURNS: N/A* VOID sysPciWrite32*     (*     ULONG *  pAddr,		/@ Virtual addr to write to @/*     ULONG   data		/@ Data to be written @/*     )*/FUNC_BEGIN(sysPciWrite32)        stwbrx  p1,r0,p0	/* store data as little-endian */	sync        bclr    20,0FUNC_END(sysPciWrite32)/******************************************************************************* sysPciInByte - reads a byte from PCI Config Space.** This function reads a byte from a specified PCI Config Space address.** RETURNS:* Returns 8 bit data from the specified register.  Note that for PCI systems* if no target responds, the data returned to the CPU will be 0xff.* UINT8 sysPciInByte*     (*     UINT8 *  pAddr,		/@ Virtual addr to read from @/*     )*/FUNC_BEGIN(sysPciInByte)        lbzx    p0,r0,p0	/* Read byte from PCI space */        bclr    20,0		/* Return to caller */FUNC_END(sysPciInByte)	/******************************************************************************* sysPciInWord - reads a word (16-bit big-endian) from PCI Config Space.** This function reads a word from a specified PCI Config Space (little-endian)* address.** RETURNS:* Returns 16 bit data from the specified register.  Note that for PCI systems* if no target responds, the data returned to the CPU will be 0xffff.* USHORT sysPciInWord*     (*     USHORT *  pAddr,		/@ Virtual addr to read from @/*     )*/FUNC_BEGIN(sysPciInWord)        lhbrx   p0,r0,p0	/* Read and swap from PCI space */        bclr    20,0		/* Return to caller */FUNC_END(sysPciInWord)	/******************************************************************************* sysPciInLong - reads a long (32-bit big-endian) from PCI Config Space.** This function reads a long from a specified PCI Config Space (little-endian)* address.** RETURNS:* Returns 32 bit data from the specified register.  Note that for PCI systems* if no target responds, the data returned to the CPU will be 0xffffffff.* ULONG sysPciInLong*     (*     ULONG *  pAddr,		/@ Virtual addr to read from @/*     )*/FUNC_BEGIN(sysPciInLong)        lwbrx   p0,r0,p0	/* Read and swap from PCI space */        bclr    20,0		/* Return to caller */FUNC_END(sysPciInLong)	/******************************************************************************** sysPciOutByte - writes a byte to PCI Config Space.** This function writes a byte to a specified PCI Config Space address.** RETURNS: N/A* VOID sysPciOutByte*     (*     UINT8 *  pAddr,		/@ Virtual addr to write to @/*     UINT8  data		/@ Data to be written       @/*     )*/FUNC_BEGIN(sysPciOutByte)        stbx    p1,r0,p0	/* Write a byte to PCI space */        bclr    20,0		/* Return to caller */FUNC_END(sysPciOutByte)	/******************************************************************************** sysPciOutWord - writes a word (16-bit big-endian) to PCI Config Space.** This function writes a word to a specified PCI Config Space (little-endian)* address.** RETURNS: N/A* VOID sysPciOutWord*     (*     USHORT *  pAddr,		/@ Virtual addr to write to @/*     USHORT  data		/@ Data to be written       @/*     )*/FUNC_BEGIN(sysPciOutWord)        sthbrx  p1,r0,p0	/* Write with swap to PCI space */        bclr    20,0		/* Return to caller */FUNC_END(sysPciOutWord)	/******************************************************************************** sysPciOutLong - writes a long (32-bit big-endian) to PCI Config Space.** This function writes a long to a specified PCI Config Space (little-endian)* address.** RETURNS: N/A* VOID sysPciOutLong*     (*     ULONG *  pAddr,		/@ Virtual addr to write to @/*     ULONG  data		/@ Data to be written       @/*     )*/FUNC_BEGIN(sysPciOutLong)        stwbrx  p1,r0,p0	/* Write big-endian long to little-endian */        mr      p0,p1		/* PCI space */        bclr    20,0		/* Return to caller */FUNC_END(sysPciOutLong)FUNC_BEGIN(vxHid2Get)        mfspr   r3, 1011        blrFUNC_END(vxHid2Get)FUNC_BEGIN(vxHid2Set)        mtspr   1011, r3        blrFUNC_END(vxHid2Set)FUNC_BEGIN(vxSvrGet)	mfspr   r3, 286	blrFUNC_END(vxSvrGet)	

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美国产精品中文字幕| 亚洲午夜激情网站| 视频一区国产视频| 中文字幕在线一区免费| 亚洲视频免费看| 视频一区二区三区中文字幕| 日本女人一区二区三区| 国产中文一区二区三区| 99精品在线观看视频| 欧美久久久影院| 欧美va亚洲va在线观看蝴蝶网| 国产欧美视频在线观看| 亚洲九九爱视频| 七七婷婷婷婷精品国产| 国产精品88888| 色婷婷综合中文久久一本| 欧美三区在线观看| 国产日韩综合av| 亚洲成人一区在线| 国产精品69毛片高清亚洲| 色视频一区二区| 精品久久国产字幕高潮| 亚洲激情av在线| 国产精品综合一区二区三区| 欧美色爱综合网| 国产精品久久久久久户外露出| 亚洲不卡一区二区三区| 成人高清视频免费观看| 日韩亚洲欧美高清| 一区二区三区欧美日韩| 国产69精品久久99不卡| 日韩一区二区三区观看| 亚洲狼人国产精品| 大尺度一区二区| 欧美不卡激情三级在线观看| 亚洲综合久久av| www.色精品| 日韩视频免费观看高清在线视频| 中文字幕在线不卡| 国产一区啦啦啦在线观看| 7777精品伊人久久久大香线蕉最新版 | 欧美va亚洲va| 午夜视频一区在线观看| 在线亚洲免费视频| 精品美女一区二区| 青青草原综合久久大伊人精品优势| 精品一区二区三区久久| 欧美美女一区二区在线观看| 亚洲精选免费视频| 波多野结衣的一区二区三区| 这里是久久伊人| 激情国产一区二区| 激情偷乱视频一区二区三区| 欧美老年两性高潮| 亚洲一区二区三区美女| 国产麻豆91精品| 久久久无码精品亚洲日韩按摩| 亚洲v精品v日韩v欧美v专区| 色婷婷狠狠综合| 亚洲精品国产精品乱码不99 | 欧美性xxxxxx少妇| 最新不卡av在线| 99国产精品视频免费观看| 中文字幕中文字幕一区二区| 成人午夜精品一区二区三区| 日本一区二区动态图| 久久国产欧美日韩精品| www欧美成人18+| 国产成人高清视频| 国产精品久久久久久久久动漫 | 午夜精品福利一区二区蜜股av| 成人av综合一区| 国产精品黄色在线观看| bt欧美亚洲午夜电影天堂| 国产精品久久久久国产精品日日| www.欧美日韩| 亚洲资源在线观看| 欧美丰满嫩嫩电影| 久久66热re国产| 国产欧美精品一区| 99re这里都是精品| 婷婷综合五月天| 久久久99精品久久| 国产精品一卡二卡在线观看| 精品久久五月天| 成人免费视频一区二区| 91亚洲男人天堂| 香蕉影视欧美成人| 日韩制服丝袜先锋影音| 亚洲丰满少妇videoshd| 免费成人在线视频观看| 久久久久久久久久久久久久久99| 成人国产精品免费| 五月激情丁香一区二区三区| 日韩女优av电影| 91年精品国产| 另类综合日韩欧美亚洲| 精品久久久久久久久久久久久久久久久 | 天天影视网天天综合色在线播放| 911国产精品| 岛国精品在线观看| 亚洲国产成人在线| 国产精品无人区| 日本道精品一区二区三区| 亚洲人妖av一区二区| 日韩欧美你懂的| 欧美日韩中文精品| 99精品偷自拍| 福利一区在线观看| 风流少妇一区二区| 久久91精品久久久久久秒播| 一区二区三区鲁丝不卡| 国产精品欧美一区二区三区| 久久久久久久久免费| 日韩一区二区三| 在线综合视频播放| 欧美系列日韩一区| 欧美日韩日日夜夜| 欧美三级中文字| 欧美日韩国产123区| 欧美伊人精品成人久久综合97| 不卡的av电影在线观看| www.欧美色图| 91国偷自产一区二区开放时间 | 91香蕉视频在线| 国产福利91精品一区二区三区| 国产一本一道久久香蕉| 国产成人av电影在线| 丁香激情综合国产| 色欧美乱欧美15图片| 欧美无人高清视频在线观看| 欧美日韩一级二级三级| 欧美一级在线观看| 精品少妇一区二区三区| 国产日韩影视精品| 悠悠色在线精品| 日韩国产欧美在线观看| 久草中文综合在线| av在线不卡网| 欧美另类高清zo欧美| 日韩女同互慰一区二区| 国产欧美日韩久久| 亚洲国产视频在线| 黄色日韩网站视频| 成人动漫视频在线| 欧美精品一级二级三级| 欧美精品一区二区三区一线天视频| 久久久久综合网| 亚洲影院在线观看| 久久精品国产在热久久| 成人黄页毛片网站| 88在线观看91蜜桃国自产| 久久久精品免费网站| 亚洲一区在线观看免费| 美女一区二区三区| voyeur盗摄精品| 3atv一区二区三区| 国产精品国产三级国产aⅴ中文| 亚洲国产精品久久人人爱蜜臀| 免费观看在线综合| 99久久久久久| 日韩免费福利电影在线观看| 欧美经典三级视频一区二区三区| 依依成人综合视频| 国产曰批免费观看久久久| 色综合久久88色综合天天免费| 日韩精品专区在线| 亚洲伊人伊色伊影伊综合网| 国内成+人亚洲+欧美+综合在线| 在线日韩国产精品| 国产精品久久免费看| 日本在线播放一区二区三区| 91在线视频免费91| 久久综合狠狠综合| 日日夜夜精品视频天天综合网| 国产成人午夜视频| 日韩美女天天操| 亚洲综合色成人| av亚洲精华国产精华精| 精品av综合导航| 乱中年女人伦av一区二区| 91行情网站电视在线观看高清版| 欧美变态tickle挠乳网站| 亚洲精品伦理在线| 国产v日产∨综合v精品视频| 日韩一区和二区| 亚洲午夜久久久久| 不卡高清视频专区| 欧美国产欧美综合| 国产露脸91国语对白| 久久综合久久鬼色中文字| 日日欢夜夜爽一区| 欧美性猛交xxxxxx富婆| 国产精品久久久久aaaa| 成人黄色网址在线观看| 久久久综合精品| 国产一区欧美一区| 久久久久久久久久久久久女国产乱| 蜜桃一区二区三区在线观看| 欧美一区二区不卡视频|