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

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

?? head.s

?? 根據添加了fs2410平臺的arch目錄
?? S
字號:
/* $Id: head.S,v 1.10 2001/11/08 15:10:16 starvik Exp $ *  * Rescue code, made to reside at the beginning of the * flash-memory. when it starts, it checks a partition * table at the first sector after the rescue sector. * the partition table was generated by the product builder * script and contains offsets, lengths, types and checksums * for each partition that this code should check. * * If any of the checksums fail, we assume the flash is so * corrupt that we cant use it to boot into the ftp flash * loader, and instead we initialize the serial port to * receive a flash-loader and new flash image. we dont include * any flash code here, but just accept a certain amount of * bytes from the serial port and jump into it. the downloaded * code is put in the cache. * * The partitiontable is designed so that it is transparent to * code execution - it has a relative branch opcode in the * beginning that jumps over it. each entry contains extra * data so we can add stuff later. * * Partition table format: * *     Code transparency: *  *     2 bytes    [opcode 'nop'] *     2 bytes    [opcode 'di'] *     4 bytes    [opcode 'ba <offset>', 8-bit or 16-bit version] *     2 bytes    [opcode 'nop', delay slot] * *     Table validation (at +10):	 *  *     2 bytes    [magic/version word for partitiontable - 0xef, 0xbe] *     2 bytes    [length of all entries plus the end marker] *     4 bytes    [checksum for the partitiontable itself] * *     Entries, each with the following format, last has offset -1:	 *     *        4 bytes    [offset in bytes, from start of flash] *        4 bytes    [length in bytes of partition] *        4 bytes    [checksum, simple longword sum] *        2 bytes    [partition type] *        2 bytes    [flags, only bit 0 used, ro/rw = 1/0] *        16 bytes   [reserved for future use] * *     End marker * *        4 bytes    [-1] *  *	 10 bytes    [0, padding] *  * Bit 0 in flags signifies RW or RO. The rescue code only bothers * to check the checksum for RO partitions, since the others will * change its data without updating the checksums. A 1 in bit 0 * means RO, 0 means RW. That way, it is possible to set a partition * in RO mode initially, and later mark it as RW, since you can always * write 0's to the flash. * * During the wait for serial input, the status LED will flash so the * user knows something went wrong. *  * Copyright (C) 1999,2001 Axis Communications AB */#include <linux/config.h>#define ASSEMBLER_MACROS_ONLY#include <asm/sv_addr_ag.h>	;; The partitiontable is looked for at the first sector after the boot	;; sector. Sector size is 65536 bytes in all flashes we use.		#define PTABLE_START CONFIG_ETRAX_PTABLE_SECTOR#define PTABLE_MAGIC 0xbeef	;; The normal Etrax100 on-chip boot ROM does serial boot at 0x380000f0.	;; That is not where we put our downloaded serial boot-code. The length is	;; enough for downloading code that loads the rest of itself (after	;; having setup the DRAM etc). It is the same length as the on-chip	;; ROM loads, so the same host loader can be used to load a rescued	;; product as well as one booted through the Etrax serial boot code.		#define CODE_START 0x40000000#define CODE_LENGTH 784#ifdef CONFIG_ETRAX_RESCUE_SER0#define SERXOFF R_SERIAL0_XOFF#define SERBAUD R_SERIAL0_BAUD#define SERRECC R_SERIAL0_REC_CTRL#define SERRDAT R_SERIAL0_REC_DATA#define SERSTAT R_SERIAL0_STATUS#endif#ifdef CONFIG_ETRAX_RESCUE_SER1#define SERXOFF R_SERIAL1_XOFF#define SERBAUD R_SERIAL1_BAUD#define SERRECC R_SERIAL1_REC_CTRL#define SERRDAT R_SERIAL1_REC_DATA#define SERSTAT R_SERIAL1_STATUS#endif#ifdef CONFIG_ETRAX_RESCUE_SER2#define SERXOFF R_SERIAL2_XOFF#define SERBAUD R_SERIAL2_BAUD#define SERRECC R_SERIAL2_REC_CTRL#define SERRDAT R_SERIAL2_REC_DATA#define SERSTAT R_SERIAL2_STATUS#endif	#ifdef CONFIG_ETRAX_RESCUE_SER3#define SERXOFF R_SERIAL3_XOFF#define SERBAUD R_SERIAL3_BAUD#define SERRECC R_SERIAL3_REC_CTRL#define SERRDAT R_SERIAL3_REC_DATA#define SERSTAT R_SERIAL3_STATUS#endif#define NOP_DI 0xf025050f#define RAM_INIT_MAGIC 0x56902387	.text		;; This is the entry point of the rescue code	;; 0x80000000 if loaded in flash (as it should be)	;; since etrax actually starts at address 2 when booting from flash, we	;; put a nop (2 bytes) here first so we dont accidentally skip the di		nop		di	jump	in_cache	; enter cached area insteadin_cache:		;; first put a jump test to give a possibility of upgrading the rescue code	;; without erasing/reflashing the sector. we put a longword of -1 here and if	;; its not -1, we jump using the value as jump target. since we can always	;; change 1's to 0's without erasing the sector, it is possible to add new	;; code after this and altering the jumptarget in an upgrade.jtcd:	move.d	[jumptarget], $r0	cmp.d	0xffffffff, $r0	beq	no_newjump	nop		jump	[$r0]jumptarget:		.dword	0xffffffff	; can be overwritten later to insert new code	no_newjump:#ifdef CONFIG_ETRAX_ETHERNET			;; Start MII clock to make sure it is running when tranceiver is reset	move.d 0x3, $r0    ; enable = on, phy = mii_clk	move.d $r0, [R_NETWORK_GEN_CONFIG]#endif		;; We need to setup the bus registers before we start using the DRAM#include "../../lib/dram_init.S"	;; we now should go through the checksum-table and check the listed	;; partitions for errors.		move.d	PTABLE_START, $r3	move.d	[$r3], $r0	cmp.d	NOP_DI, $r0	; make sure the nop/di is there...	bne	do_rescue	nop		;; skip the code transparency block (10 bytes).	addq	10, $r3		;; check for correct magic		move.w	[$r3+], $r0	cmp.w	PTABLE_MAGIC, $r0	bne	do_rescue	; didn't recognize - trig rescue	nop	;; check for correct ptable checksum	movu.w	[$r3+], $r2	; ptable length	move.d	$r2, $r8	; save for later, length of total ptable	addq	28, $r8		; account for the rest	move.d	[$r3+], $r4	; ptable checksum	move.d	$r3, $r1	jsr	checksum	; r1 source, r2 length, returns in r0	cmp.d	$r0, $r4	bne	do_rescue	; didn't match - trig rescue	nop		;; ptable is ok. validate each entry.	moveq	-1, $r7	ploop:	move.d	[$r3+], $r1	; partition offset (from ptable start)	bne	notfirst	; check if its the partition containing ptable	nop			; yes..	move.d	$r8, $r1	; for its checksum check, skip the ptable	move.d	[$r3+], $r2	; partition length	sub.d	$r8, $r2	; minus the ptable length	ba	bosse	nopnotfirst:		cmp.d	-1, $r1		; the end of the ptable ?	beq	flash_ok	;   if so, the flash is validated	move.d	[$r3+], $r2	; partition lengthbosse:	move.d	[$r3+], $r5	; checksum	move.d	[$r3+], $r4	; type and flags	addq	16, $r3		; skip the reserved bytes	btstq	16, $r4		; check ro flag	bpl	ploop		;   rw partition, skip validation	nop	btstq	17, $r4		; check bootable flag	bpl	1f	nop	move.d	$r1, $r7	; remember boot partition offset1:		add.d	PTABLE_START, $r1		jsr	checksum	; checksum the partition		cmp.d	$r0, $r5	beq	ploop		; checksums matched, go to next entry	nop	;; otherwise fall through to the rescue code.	do_rescue:	;; setup port PA and PB default initial directions and data	;; (so we can flash LEDs, and so that DTR and others are set)		move.b	CONFIG_ETRAX_DEF_R_PORT_PA_DIR, $r0	move.b	$r0, [R_PORT_PA_DIR]	move.b	CONFIG_ETRAX_DEF_R_PORT_PA_DATA, $r0	move.b	$r0, [R_PORT_PA_DATA]		move.b	CONFIG_ETRAX_DEF_R_PORT_PB_DIR, $r0	move.b	$r0, [R_PORT_PB_DIR]	move.b	CONFIG_ETRAX_DEF_R_PORT_PB_DATA, $r0	move.b	$r0, [R_PORT_PB_DATA]	;; setup the serial port at 115200 baud		moveq	0, $r0	move.d	$r0, [SERXOFF] 	move.b	0x99, $r0	move.b	$r0, [SERBAUD]		; 115.2kbaud for both transmit and receive	move.b	0x40, $r0		; rec enable	move.b	$r0, [SERRECC] 	moveq	0, $r1		; "timer" to clock out a LED red flash	move.d	CODE_START, $r3	; destination counter	movu.w	CODE_LENGTH, $r4; length	wait_ser:	addq	1, $r1#ifndef CONFIG_ETRAX_NO_LEDS#ifdef CONFIG_ETRAX_PA_LEDS	move.b	CONFIG_ETRAX_DEF_R_PORT_PA_DATA, $r2#endif#ifdef CONFIG_ETRAX_PB_LEDS	move.b	CONFIG_ETRAX_DEF_R_PORT_PB_DATA, $r2#endif	move.d	(1 << CONFIG_ETRAX_LED1R) | (1 << CONFIG_ETRAX_LED2R), $r0	btstq	16, $r1	bpl	1f	nop	or.d	$r0, $r2	; set bit	ba	2f	nop1:	not	$r0		; clear bit	and.d	$r0, $r22:	#ifdef CONFIG_ETRAX_PA_LEDS	move.b	$r2, [R_PORT_PA_DATA]	#endif	#ifdef CONFIG_ETRAX_PB_LEDS	move.b	$r2, [R_PORT_PB_DATA]	#endif#ifdef CONFIG_ETRAX_90000000_LEDS	move.b	$r2, [0x90000000]#endif#endif		;; check if we got something on the serial port		move.b	[SERSTAT], $r0	btstq	0, $r0		; data_avail	bpl	wait_ser	nop	;; got something - copy the byte and loop	move.b	[SERRDAT], $r0	move.b	$r0, [$r3+]		subq	1, $r4		; decrease length	bne	wait_ser	nop	;; jump into downloaded code	move.d	RAM_INIT_MAGIC, $r8	; Tell next product that DRAM is initialized	jump	CODE_STARTflash_ok:	;; check r7, which contains either -1 or the partition to boot from	cmp.d	-1, $r7	bne	1f	nop	move.d	PTABLE_START, $r7; otherwise use the ptable start1:	move.d	RAM_INIT_MAGIC, $r8	; Tell next product that DRAM is initialized	jump	$r7		; boot!	;; Helper subroutines	;; Will checksum by simple addition	;; r1 - source	;; r2 - length in bytes	;; result will be in r0checksum:	moveq	0, $r01:	addu.b	[$r1+], $r0	subq	1, $r2	bne	1b	nop	ret	nop

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩精品综合在线| 国产精品拍天天在线| 亚洲国产精品成人综合| 亚洲电影激情视频网站| 成人国产一区二区三区精品| 4438x亚洲最大成人网| 亚洲免费观看高清完整版在线观看熊 | 中文字幕 久热精品 视频在线| 午夜一区二区三区在线观看| 成人听书哪个软件好| 日韩精品中文字幕一区| 亚洲成人动漫在线观看| 94色蜜桃网一区二区三区| 久久精品人人爽人人爽| 亚洲午夜在线电影| 99久久国产综合精品色伊| 中文一区在线播放| 国产在线麻豆精品观看| 91精品国产色综合久久ai换脸| 亚洲国产精品视频| 色婷婷国产精品综合在线观看| 久久久久久久综合狠狠综合| 免费成人你懂的| 欧美一区二区精品在线| 日韩av一级电影| 欧美精品成人一区二区三区四区| 亚洲精品亚洲人成人网在线播放| 成人精品gif动图一区| 国产亚洲欧美在线| 国产福利精品一区二区| 日韩三级电影网址| 免费成人在线网站| 精品国产91乱码一区二区三区 | 午夜av一区二区| 欧美精品久久99| 天涯成人国产亚洲精品一区av| 欧美日韩在线播放| 亚洲成a人v欧美综合天堂| 欧美日韩久久久| 美国毛片一区二区| 2020日本不卡一区二区视频| 国内成人精品2018免费看| 精品99999| 成人午夜伦理影院| 亚洲嫩草精品久久| 欧美日韩在线观看一区二区| 日本欧美大码aⅴ在线播放| 欧美一级理论片| 丁香网亚洲国际| 一区二区三区四区亚洲| 欧美系列亚洲系列| 裸体一区二区三区| 国产婷婷色一区二区三区| av电影一区二区| 亚洲国产精品久久久男人的天堂| 91精品国产一区二区三区| 国内精品伊人久久久久av一坑| 中文字幕的久久| 欧美另类一区二区三区| 国产乱一区二区| 亚洲综合小说图片| 欧美xxxxxxxxx| 色综合久久久久综合99| 日韩高清在线电影| 欧美激情在线一区二区| 欧美亚洲丝袜传媒另类| 精品一区二区三区免费观看| 亚洲视频 欧洲视频| 欧美日韩精品一区二区天天拍小说| 狠狠色狠狠色综合系列| 一区二区三区在线观看视频| 日韩欧美另类在线| 日本韩国一区二区三区| 麻豆成人91精品二区三区| 亚洲欧美日本韩国| 久久综合九色综合欧美98| 在线一区二区观看| 高清成人在线观看| 蜜臀av一区二区| 亚洲欧美日韩国产综合在线| 欧美精品一区二区三区蜜桃视频| 欧日韩精品视频| 国产成人av网站| 麻豆国产精品777777在线| 伊人婷婷欧美激情| 国产精品欧美精品| 欧美va亚洲va国产综合| 欧美日韩精品一区二区三区| 99久久国产综合精品色伊| 国产剧情一区二区| 奇米777欧美一区二区| 夜夜亚洲天天久久| 亚洲精品国产第一综合99久久| 久久这里只有精品视频网| 欧美丰满一区二区免费视频| 色综合一区二区三区| 国产成人亚洲综合a∨婷婷| 日韩国产欧美一区二区三区| 亚洲精品久久久蜜桃| 国产精品免费网站在线观看| 日韩精品一区二区三区老鸭窝| 69堂成人精品免费视频| 在线观看亚洲一区| 欧美亚洲免费在线一区| 欧洲亚洲精品在线| 色哟哟欧美精品| 色婷婷av一区二区三区gif| 高清日韩电视剧大全免费| 国产成人免费高清| 成人综合婷婷国产精品久久蜜臀 | 精品久久99ma| 欧美一区二区不卡视频| 欧美日韩成人综合天天影院 | 日韩欧美国产一区在线观看| 欧美性大战久久久久久久蜜臀| 色婷婷激情综合| 色视频成人在线观看免| 91美女在线看| 欧美自拍偷拍午夜视频| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| eeuss鲁片一区二区三区在线看| 丁香网亚洲国际| 91麻豆免费在线观看| 91九色最新地址| 欧美乱妇一区二区三区不卡视频| 欧美日韩高清不卡| 91精品国产日韩91久久久久久| 日韩三级高清在线| 国产情人综合久久777777| 国产精品久久免费看| 亚洲免费在线电影| 一区二区三区不卡视频| 日本不卡视频一二三区| 国产一区激情在线| av成人免费在线观看| 色中色一区二区| 911精品国产一区二区在线| 精品久久人人做人人爱| 国产欧美精品一区二区色综合 | 久久久777精品电影网影网| 久久影院电视剧免费观看| 国产精品久久久久久久蜜臀| 一区二区高清免费观看影视大全| 午夜精品久久久久久不卡8050| 久久国产剧场电影| fc2成人免费人成在线观看播放| 欧美性受xxxx黑人xyx| 欧美一区二区三级| 中文字幕一区二区在线播放| 亚洲午夜电影网| 国产专区综合网| 欧美亚洲国产bt| 久久久另类综合| 亚洲国产综合91精品麻豆| 国内成+人亚洲+欧美+综合在线| 成人精品电影在线观看| 91精品蜜臀在线一区尤物| 国产精品欧美精品| 看电影不卡的网站| 在线一区二区三区四区五区| 欧美精品一区二区高清在线观看| 亚洲精品成a人| 国产一区二区电影| 在线播放/欧美激情| 亚洲视频资源在线| 久久电影国产免费久久电影| 91国在线观看| 国产精品国产三级国产普通话蜜臀| 国产精品大尺度| 五月综合激情网| 91精品国产欧美日韩| 中文av一区二区| 老司机精品视频在线| 欧美日韩高清在线播放| 亚洲精品视频免费看| 亚洲成在人线免费| 成人国产亚洲欧美成人综合网| 欧美变态口味重另类| 日韩精品亚洲一区| 日韩一区二区在线看| 日韩主播视频在线| 欧美日韩国产综合视频在线观看 | 91精品国产91热久久久做人人 | 亚洲.国产.中文慕字在线| 国产精一区二区三区| 国产午夜精品在线观看| 久久精品72免费观看| 欧美视频在线播放| 视频在线观看一区| 久久精品久久综合| 91丨九色丨国产丨porny| 国产精品色一区二区三区| 亚洲欧美日韩久久精品| 激情综合色综合久久| 欧美一三区三区四区免费在线看 | 欧美mv日韩mv国产网站| 午夜日韩在线观看| 欧美xxx久久| 欧美日韩电影一区| 亚洲欧美在线视频观看|