⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rominit8xx.s

📁 标准powerpc bsp vxworks模板
💻 S
📖 第 1 页 / 共 2 页
字号:
	/* compute the OR3/OR2 value for a 16M block size */	/* TODO - setup the Bank 3 configuration */	LOADPTR (r5, 0xff000000 | OR_CSNT_SAM)	stw	r5, OR3(0)(r4)	/* Set OR3. Used only when BR3 is valid */	/* TODO - change the Address Multiplexing in MAMR */	lwz	r6, MAMR(0)(r4)	LOADPTR (r9, ~MAMR_AMA_MSK)		and	r6, r6, r9			/* clear the AMA bits in MAMR */	LOADPTR (r9, MAMR_AMA_TYPE_3)	or	r6, r6, r9			/* set the AMA bits */	stw	r6, MAMR(0)(r4)	b	dramInitdram8meg:	/* program BR3, for upper 4 MB */	LOADPTR (r5, ((0x00400000 + LOCAL_MEM_LOCAL_ADRS) &		    BR_BA_MSK) | BR_MS_UPMA | BR_V)	stw	r5, BR3(0)(r4)dram4meg:		/* compute the OR3/OR2 value for a 4M block size */	LOADPTR (r5, 0xffc00000 | OR_CSNT_SAM)	stw	r5, OR3(0)(r4)	/* Set OR3. Used only when BR3 is valid */	b	dramInit		dramInit:		/* Map the bank 2 to the Dram area */	stw	r5, OR2(0)(r4)	/* set OR2 to the previously computed value */	LOADPTR (r5, (LOCAL_MEM_LOCAL_ADRS & BR_BA_MSK) | BR_MS_UPMA |			BR_V)	stw	r5, BR2(0)(r4)	/* TODO - map additional banks as needed */	/* TODO - reset external devices, if possible */        /* initialize the stack pointer */	LOADPTR (sp, STACK_ADRS)	        /* initialize r2 and r13 according to EABI standard */#if	FALSE					/* SDA Not supported yet */	LOADPTR (r2, _SDA2_BASE_)	LOADPTR (r13, _SDA_BASE_)#endif	/* go to C entry point */	addi	sp, sp, -FRAMEBASESZ		/* get frame stack */	/* 	 * calculate C entry point: routine - entry point + ROM base 	 * routine	= romStart	 * entry point	= romInit	= R7	 * ROM base	= ROM_TEXT_ADRS = R8	 * C entry point: romStart - R7 + R8 	 */	LOADPTR (r6, romStart)	sub	r6, r6, r7			/* routine - entry point */	add	r6, r6, r8 			/* + ROM base */	mtlr	r6				/* move C entry point to LR */	blr					/* jump to the C entry point */	/*	 * The following tables contain the DRAM controller	 * configurations.  There are two versions of each	 * table.  The first is for 50Mhz, the	 * second is for 25 Mhz.	 *	 * TODO - add additional table entries as required.	 */#if	(SPLL_FREQ != FREQ_25_MHZ)	/* UPM initialization table, 60ns, 50MHz */upmTable60:	/* single read. (offset 0 in upm RAM) */        .long	0x8fffec24, 0x0fffec04, 0x0cffec04, 0x00ffec04	.long	0x00ffec00, 0x37ffec47        .long	0xffffffff, 0xffffffff	/* burst read. (offset 8 in upm RAM) */        .long	0x8fffec24, 0x0fffec04, 0x08ffec04, 0x00ffec0c        .long	0x03ffec00, 0x00ffec44, 0x00ffcc08, 0x0cffcc44        .long	0x00ffec0c, 0x03ffec00, 0x00ffec44, 0x00ffcc00        .long	0x3fffc847        .long	0xffffffff, 0xffffffff, 0xffffffff	/* single write. (offset 18 in upm RAM) */        .long	0x8fafcc24, 0x0fafcc04, 0x0cafcc00, 0x11bfcc47        .long	0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff	/*  burst write. (offset 20 in upm RAM) */        .long	0x8fafcc24, 0x0fafcc04, 0x0cafcc00, 0x03afcc4c        .long	0x0cafcc00, 0x03afcc4c, 0x0cafcc00, 0x03afcc4c        .long	0x0cafcc00, 0x33bfcc4f        .long	0xffffffff, 0xffffffff        .long	0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff	/* refresh. (offset 30 in upm RAM) */        .long	0xc0ffcc84, 0x00ffcc04, 0x07ffcc04, 0x3fffcc06        .long	0xffffcc85, 0xffffcc05	.long	0xffffffff, 0xffffffff        .long	0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff	/* exception. (offset 3c in upm RAM) */        .long	0x33ffcc07        .long	0xffffffff, 0xffffffff, 0xffffffffupmTable60End:	/* UPM initialization table, 70ns, 50MHz */upmTable70:	/* single read. (offset 0 in upm RAM) */        .long	0x8fffcc24, 0x0fffcc04, 0x0cffcc04, 0x00ffcc04        .long	0x00ffcc00, 0x37ffcc47        .long	0xffffffff, 0xffffffff	/* burst read. (offset 8 in upm RAM) */        .long	0x8fffcc24, 0x0fffcc04, 0x0cffcc04, 0x00ffcc04        .long	0x00ffcc08, 0x0cffcc44, 0x00ffec0c, 0x03ffec00        .long	0x00ffec44, 0x00ffcc08, 0x0cffcc44, 0x00ffec04        .long	0x00ffec00, 0x3fffec47         .long	0xffffffff, 0xffffffff	/* single write. (offset 18 in upm RAM) */        .long	0x8fafcc24, 0x0fafcc04, 0x0cafcc00, 0x11bfcc47        .long	0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff	/* burst write. (offset 20 in upm RAM) */        .long	0x8fafcc24, 0x0fafcc04, 0x0cafcc00, 0x03afcc4c        .long	0x0cafcc00, 0x03afcc4c, 0x0cafcc00, 0x03afcc4c        .long	0x0cafcc00, 0x33bfcc4f        .long	0xffffffff, 0xffffffff        .long	0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff	/* refresh. (offset 30 in upm RAM) */        .long	0xe0ffcc84, 0x00ffcc04, 0x00ffcc04,  0x0fffcc04        .long	0x7fffcc06, 0xffffcc85, 0xffffcc05	.long	0xffffffff        .long	0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff	/* exception. (offset 3c in upm RAM) */        .long	0x33ffcc07        .long	0xffffffff, 0xffffffff, 0xffffffffupmTable70End:	/* UPM initialization table, EDO, 60ns, 50MHz */upmTableEdo60:	/* single read. (offset 0 in upm RAM) */        .long	0x8ffbec24, 0x0ff3ec04, 0x0cf3ec04, 0x00f3ec04	.long	0x00f3ec00, 0x37f7ec47        .long	0xffffffff, 0xffffffff	/* burst read. (offset 8 in upm RAM) */        .long	0x8fffec24, 0x0ffbec04, 0x0cf3ec04, 0x00f3ec0c        .long	0x0cf3ec00, 0x00f3ec4c, 0x0cf3ec00, 0x00f3ec4c        .long	0x0cf3ec00, 0x00f3ec44, 0x03f3ec00, 0x3ff7ec47        .long	0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff 	/* single write. (offset 18 in upm RAM) */        .long	0x8fffcc24, 0x0fefcc04, 0x0cafcc00, 0x11bfcc47        .long	0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff	/* burst write. (offset 20 in upm RAM) */        .long	0x8fffcc24, 0x0fefcc04, 0x0cafcc00, 0x03afcc4c        .long	0x0cafcc00, 0x03afcc4c, 0x0cafcc00, 0x03afcc4c        .long	0x0cafcc00, 0x33bfcc4f        .long	0xffffffff, 0xffffffff        .long	0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff	/* refresh. (offset 30 in upm RAM) */        .long	0xc0ffcc84, 0x00ffcc04, 0x07ffcc04, 0x3fffcc06        .long	0xffffcc85, 0xffffcc05	.long	0xffffffff, 0xffffffff        .long	0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff	/* exception. (offset 3c in upm RAM) */        .long	0x33ffcc07        .long	0xffffffff, 0xffffffff, 0xffffffffupmTableEdo60End:	/* UPM initialization table, EDO, 70ns, 50MHz */upmTableEdo70:	/* single read. (offset 0 in upm RAM) */        .long	0x8ffbcc24, 0x0ff3cc04, 0x0cf3cc04, 0x00f3cc04        .long	0x00f3cc00, 0x37f7cc47        .long	0xffffffff, 0xffffffff	/* burst read. (offset 8 in upm RAM) */        .long	0x8fffcc24, 0x0ffbcc04, 0x0cf3cc04, 0x00f3cc0c        .long	0x03f3cc00, 0x00f3cc44, 0x00f3ec0c, 0x0cf3ec00        .long	0x00f3ec4c, 0x03f3ec00, 0x00f3ec44, 0x00f3cc00        .long	0x33f7cc47         .long	0xffffffff, 0xffffffff, 0xffffffff	/* single write. (offset 18 in upm RAM) */        .long	0x8fffcc24, 0x0fefcc04, 0x0cafcc00, 0x11bfcc47        .long	0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff	/* burst write. (offset 20 in upm RAM) */        .long	0x8fffcc24, 0x0fefcc04, 0x0cafcc00, 0x03afcc4c        .long	0x0cafcc00, 0x03afcc4c, 0x0cafcc00, 0x03afcc4c        .long	0x0cafcc00, 0x33bfcc47        .long	0xffffffff, 0xffffffff        .long	0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff	/* refresh. (offset 30 in upm RAM) */        .long	0xe0ffcc84, 0x00ffcc04, 0x00ffcc04,  0x0fffcc04        .long	0x7fffcc04, 0xffffcc86, 0xffffcc05	.long	0xffffffff        .long	0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff	/* exception. (offset 3c in upm RAM) */        .long	0x33ffcc07        .long	0xffffffff, 0xffffffff, 0xffffffffupmTableEdo70End:#else	/* FALSE/TRUE */	/* UPM initialization table, 60ns, 25MHz */upmTable60:	/* single read. (offset 0 in upm RAM) */        .long	0x0fffcc04, 0x08ffcc00, 0x33ffcc47        .long	0xffffffff        .long	0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff	/* burst read. (offset 8 in upm RAM) */        .long	0x0fffcc24, 0x0fffcc04, 0x08ffcc00, 0x03ffcc4c        .long	0x08ffcc00, 0x03ffcc4c, 0x08ffcc00, 0x03ffcc4c        .long	0x08ffcc00, 0x33ffcc47        .long	0xffffffff, 0xffffffff        .long	0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff	/* single write. (offset 18 in upm RAM) */        .long	0x0fafcc04, 0x08afcc00, 0x3fbfcc47        .long	0xffffffff        .long	0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff	/* burst write. (offset 20 in upm RAM) */        .long	0x0fafcc04, 0x0cafcc00, 0x01afcc4c, 0x0cafcc00        .long	0x01afcc4c, 0x0cafcc00, 0x01afcc4c, 0x0cafcc00        .long	0x31bfcc43        .long	0xffffffff, 0xffffffff, 0xffffffff        .long	0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff	/* refresh. (offset 30 in upm RAM) */        .long	0x80ffcc84, 0x13ffcc04, 0xffffcc87, 0xffffcc05        .long	0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff        .long	0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff	/* exception. (offset 3c in upm RAM) */        .long	0x33ffcc07        .long	0xffffffff, 0xffffffff, 0xffffffffupmTable60End:	/* UPM initialization table, 70ns, 25MHz */upmTable70:	/* single read. (offset 0 in upm RAM) */        .long	0x0fffec04, 0x08ffec04, 0x00ffec00, 0x3fffcc47        .long	0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff	/* burst read. (offset 8 in upm RAM) */        .long	0x0fffcc24, 0x0fffcc04, 0x08ffcc00, 0x03ffcc4c        .long	0x08ffcc00, 0x03ffcc4c, 0x08ffcc00, 0x03ffcc4c        .long	0x08ffcc00, 0x33ffcc47        .long	0xffffffff, 0xffffffff        .long	0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff	/* single write. (offset 18 in upm RAM) */        .long	0x0fafcc04, 0x08afcc00, 0x3fbfcc47        .long	0xffffffff        .long	0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff	/* burst write. (offset 20 in upm RAM) */        .long	0x0fafcc04, 0x0cafcc00, 0x01afcc4c, 0x0cafcc00        .long	0x01afcc4c, 0x0cafcc00, 0x01afcc4c, 0x0cafcc00        .long	0x31bfcc43        .long	0xffffffff, 0xffffffff, 0xffffffff        .long	0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff	/* refresh. (offset 30 in upm RAM) */        .long	0xc0ffcc84, 0x01ffcc04, 0x7fffcc86, 0xffffcc05        .long	0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff        .long	0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff	/* exception. (offset 3c in upm RAM) */        .long	0x33ffcc07        .long	0xffffffff, 0xffffffff, 0xffffffffupmTable70End:	/* UPM initialization table, 60ns EDO DRAMs, 25MHz */upmTableEdo60:	/* single read. (offset 0 in upm RAM) */        .long	0x0ffbcc04, 0x0cf3cc04, 0x00f3cc00, 0x33f7cc47        .long	0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff	/* burst read. (offset 8 in upm RAM) */        .long	0x0ffbcc04, 0x09f3cc0c, 0x09f3cc0c, 0x09f3cc0c        .long	0x08f3cc00, 0x3ff7cc47        .long	0xffffffff, 0xffffffff        .long	0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff        .long	0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff	/* single write. (offset 18 in upm RAM) */        .long	0x0fefcc04, 0x08afcc04, 0x00afcc00, 0x3fbfcc47        .long	0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff	/* burst write. (offset 20 in upm RAM) */        .long	0x0fefcc04, 0x08afcc00, 0x07afcc48, 0x08afcc48        .long	0x08afcc48, 0x39bfcc47        .long	0xffffffff, 0xffffffff        .long	0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff        .long	0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff	/* refresh. (offset 30 in upm RAM) */        .long	0x80ffcc84, 0x13ffcc04, 0xffffcc87, 0xffffcc05        .long	0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff        .long	0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff	/* exception. (offset 3c in upm RAM) */        .long	0x33ffcc07        .long	0xffffffff, 0xffffffff, 0xffffffffupmTableEdo60End:	/* UPM initialization table, EDO, 70ns DRAM, 25MHz */upmTableEdo70:	/* single read. (offset 0 in upm RAM) */        .long	0x0ffbcc04, 0x0cf3cc04, 0x00f3cc00, 0x33f7cc47        .long	0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff	/* burst read. (offset 8 in upm RAM) */        .long	0x0ffbec04, 0x08f3ec04, 0x03f3ec48, 0x08f3cc00        .long	0x0ff3cc4c, 0x08f3cc00, 0x0ff3cc4c, 0x08f3cc00	.long	0x3ff7cc47        .long	0xffffffff, 0xffffffff, 0xffffffff        .long	0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff	/* single write. (offset 18 in upm RAM) */        .long	0x0fefcc04, 0x08afcc04, 0x00afcc00, 0x3fbfcc47        .long	0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff	/* burst write. (offset 20 in upm RAM) */        .long	0x0fefcc04, 0x08afcc00, 0x07afcc4c, 0x08afcc00        .long	0x07afcc4c, 0x08afcc00, 0x07afcc4c, 0x08afcc00	.long	0x37bfcc47        .long	0xffffffff, 0xffffffff, 0xffffffff        .long	0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff	/* refresh. (offset 30 in upm RAM) */        .long	0xc0ffcc84, 0x01ffcc04, 0x7fffcc86, 0xffffcc05        .long	0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff        .long	0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff	/* exception. (offset 3c in upm RAM) */        .long	0x33ffcc07        .long	0xffffffff, 0xffffffff, 0xffffffffupmTableEdo70End:		/* TODO - add additional tables for new memory configurations*/#endifFUNC_END(_romInit)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -