mirror of
https://github.com/Ysurac/openmptcprouter.git
synced 2025-03-09 15:40:20 +00:00
Kernel 5.4 RUTX support
This commit is contained in:
parent
839fcf1cab
commit
cfce9f52b2
7376 changed files with 3902 additions and 546 deletions
|
|
@ -1,877 +0,0 @@
|
|||
# Porting U-Boot onto RPXlite board
|
||||
# Written by Yoo. Jonghoon
|
||||
# E-Mail : yooth@ipone.co.kr
|
||||
# IP ONE Inc.
|
||||
|
||||
# Since 2001. 1. 29
|
||||
|
||||
# Shell : bash
|
||||
# Cross-compile tools : Montavista Hardhat
|
||||
# Debugging tools : Windriver VisionProbe (PowerPC BDM)
|
||||
# ppcboot ver. : ppcboot-0.8.1
|
||||
|
||||
###############################################################
|
||||
# 1. Hardware setting
|
||||
###############################################################
|
||||
|
||||
1.1. Board, BDM settings
|
||||
Install board, BDM, connect each other
|
||||
|
||||
1.2. Save Register value
|
||||
Boot with board-on monitor program and save the
|
||||
register values with BDM.
|
||||
|
||||
1.3. Configure flash programmer
|
||||
Check flash memory area in the memory map.
|
||||
0xFFC00000 - 0xFFFFFFFF
|
||||
|
||||
Boot monitor program is at
|
||||
0xFFF00000
|
||||
|
||||
You can program on-board flash memory with VisionClick
|
||||
flash programmer. Set the target flash device as:
|
||||
|
||||
29DL800B
|
||||
|
||||
(?) The flash memory device in the board *is* 29LV800B,
|
||||
but I cannot program it with '29LV800B' option.
|
||||
(in VisionClick flash programming tools)
|
||||
I don't know why...
|
||||
|
||||
1.4. Save boot monitor program *IMPORTANT*
|
||||
Upload boot monitor program from board to file.
|
||||
boot monitor program starts at 0xFFF00000
|
||||
|
||||
1.5. Test flash memory programming
|
||||
Try to erase boot program in the flash memory,
|
||||
and re-write them.
|
||||
*WARNING* YOU MUST SAVE BOOT PROGRAM TO FILE
|
||||
BEFORE ERASING FLASH
|
||||
|
||||
###############################################################
|
||||
# 2. U-Boot setting
|
||||
###############################################################
|
||||
|
||||
2.1. Download U-Boot tarball at
|
||||
ftp://ftp.denx.de
|
||||
(The latest version is ppcboot-0.8.1.tar.bz2)
|
||||
|
||||
To extract the archive use the following syntax :
|
||||
> bzip2 -cd ppcboot-0.8.1.tar.bz2 | tar xf -
|
||||
|
||||
2.2. Add the following lines in '.profile'
|
||||
export PATH=$PATH:/opt/hardhat/devkit/ppc/8xx/bin
|
||||
|
||||
2.3. Make board specific config, for example:
|
||||
> cd ppcboot-0.8.1
|
||||
> make TQM860L_config
|
||||
|
||||
Now we can build ppcboot bin files.
|
||||
After make all, you must see these files in your
|
||||
ppcboot root directory.
|
||||
|
||||
ppcboot
|
||||
ppcboot.bin
|
||||
ppcboot.srec
|
||||
ppcboot.map
|
||||
|
||||
2.4. Make your own board directory into the
|
||||
ppcboot-0.8.1/board
|
||||
and make your board-specific files here.
|
||||
|
||||
For exmanple, tqm8xx files are composed of
|
||||
.depend : Nothing
|
||||
Makefile : To make config file
|
||||
config.mk : Sets base address
|
||||
flash.c : Flash memory control files
|
||||
ppcboot.lds : linker(ld) script? (I don't know this yet)
|
||||
tqm8xx.c : DRAM control and board check routines
|
||||
|
||||
And, add your board config lines in the
|
||||
ppcboot-0.8.1/Makefile
|
||||
|
||||
Finally, add config_(your board).h file in the
|
||||
ppcboot-0.8.1/include/
|
||||
|
||||
I've made board/rpxlite directory, and just copied
|
||||
tqm8xx settings for now.
|
||||
|
||||
Rebuild ppcboot for rpxlite board:
|
||||
> make rpxlite_config
|
||||
> make
|
||||
|
||||
###############################################################
|
||||
# 3. U-Boot porting
|
||||
###############################################################
|
||||
|
||||
3.1. My RPXlite files are based on tqm8xx board files.
|
||||
> cd board
|
||||
> cp -r tqm8xx RPXLITE
|
||||
> cd RPXLITE
|
||||
> mv tqm8xx.c RPXLITE.c
|
||||
> cd ../../include
|
||||
> cp config_tqm8xx.h config_RPXLITE.h
|
||||
|
||||
3.2. Modified files are:
|
||||
board/RPXLITE/RPXLITE.c /* DRAM-related routines */
|
||||
board/RPXLITE/flash.c /* flash-related routines */
|
||||
board/RPXLITE/config.mk /* set text base address */
|
||||
arch/powerpc/cpu/mpc8xx/serial.c /* board specific register setting */
|
||||
include/config_RPXLITE.h /* board specific registers */
|
||||
|
||||
See 'reg_config.txt' for register values in detail.
|
||||
|
||||
###############################################################
|
||||
# 4. Running Linux
|
||||
###############################################################
|
||||
|
||||
|
||||
###############################################################
|
||||
# Misc Information
|
||||
###############################################################
|
||||
|
||||
mem_config.txt:
|
||||
===============
|
||||
|
||||
Flash memory device : AM29LV800BB (1Mx8Bit) x 4 device
|
||||
manufacturer id : 01 (AMD)
|
||||
device id : 5B (AM29LV800B)
|
||||
size : 4Mbyte
|
||||
sector # : 19
|
||||
|
||||
Sector information :
|
||||
|
||||
number start addr. size
|
||||
00 FFC0_0000 64
|
||||
01 FFC1_0000 32
|
||||
02 FFC1_8000 32
|
||||
03 FFC2_0000 128
|
||||
04 FFC4_0000 256
|
||||
05 FFC8_0000 256
|
||||
06 FFCC_0000 256
|
||||
07 FFD0_0000 256
|
||||
08 FFD4_0000 256
|
||||
09 FFD8_0000 256
|
||||
10 FFDC_0000 256
|
||||
11 FFE0_0000 256
|
||||
12 FFE4_0000 256
|
||||
13 FFE8_0000 256
|
||||
14 FFEC_0000 256
|
||||
15 FFF0_0000 256
|
||||
16 FFF4_0000 256
|
||||
17 FFF8_0000 256
|
||||
18 FFFC_0000 256
|
||||
|
||||
|
||||
reg_config.txt:
|
||||
===============
|
||||
|
||||
|
||||
/*------------------------------------------------------------------- */
|
||||
/*------------------------------------------------------------------- */
|
||||
/* SIU (System Interface Unit) */
|
||||
/* */
|
||||
/*------------------------------------------------------------------- */
|
||||
/*------------------------------------------------------------------- */
|
||||
|
||||
|
||||
/*### IMMR */
|
||||
/*### Internal Memory Map Register */
|
||||
/*### Chap. 11.4.1 */
|
||||
|
||||
ISB = 0xFA20 /* Set the Immap base = 0xFA20 0000 */
|
||||
PARTNUM = 0x21
|
||||
MASKNUM = 0x00
|
||||
|
||||
=> 0xFA20 2100
|
||||
|
||||
---------------------------------------------------------------------
|
||||
|
||||
/*### SIUMCR */
|
||||
/*### SIU Module Configuration Register */
|
||||
/*### Chap. 11.4.2 */
|
||||
/*### Offset : 0x0000 0000 */
|
||||
|
||||
EARB = 0
|
||||
EARP = 0
|
||||
DSHW = 0
|
||||
DBGC = 0
|
||||
DBPC = 0
|
||||
FRC = 0
|
||||
DLK = 0
|
||||
OPAR = 0
|
||||
PNCS = 0
|
||||
DPC = 0
|
||||
MPRE = 0
|
||||
MLRC = 10 /* ~KR/~RETRY/~IRQ4/SPKROUT functions as ~KR/~TRTRY */
|
||||
AEME = 0
|
||||
SEME = 0
|
||||
BSC = 0
|
||||
GB5E = 0
|
||||
B2DD = 0
|
||||
B3DD = 0
|
||||
|
||||
=> 0x0000 0800
|
||||
|
||||
---------------------------------------------------------------------
|
||||
|
||||
/*### SYPCR */
|
||||
/*### System Protection Control Register */
|
||||
/*### Chap. 11.4.3 */
|
||||
/*### Offset : 0x0000 0004 */
|
||||
|
||||
SWTC = 0xFFFF /* SW watchdog timer count = 0xFFFF */
|
||||
BMT = 0x06 /* BUS monitoring timing */
|
||||
BME = 1 /* BUS monitor enable */
|
||||
SWF = 1
|
||||
SWE = 0 /* SW watchdog disable */
|
||||
SWRI = 0
|
||||
SWP = 1
|
||||
|
||||
=> 0xFFFF 0689
|
||||
|
||||
---------------------------------------------------------------------
|
||||
|
||||
/*### TESR */
|
||||
/*### Transfer Error Status Register */
|
||||
/*### Chap. 11.4.4 */
|
||||
/*### Offset : 0x0000 0020 */
|
||||
|
||||
IEXT = 0
|
||||
ITMT = 0
|
||||
IPB = 0000
|
||||
DEXT = 0
|
||||
DTMT = 0
|
||||
DPB = 0000
|
||||
|
||||
=> 0x0000 0000
|
||||
|
||||
---------------------------------------------------------------------
|
||||
|
||||
/*### SIPEND */
|
||||
/*### SIU Interrupt Pending Register */
|
||||
/*### Chap. 11.5.4.1 */
|
||||
/*### Offset : 0x0000 0010 */
|
||||
|
||||
IRQ0~IRQ7 = 0
|
||||
LVL0~LVL7 = 0
|
||||
|
||||
=> 0x0000 0000
|
||||
|
||||
---------------------------------------------------------------------
|
||||
|
||||
/*### SIMASK */
|
||||
/*### SIU Interrupt Mask Register */
|
||||
/*### Chap. 11.5.4.2 */
|
||||
/*### Offset : 0x0000 0014 */
|
||||
|
||||
IRM0~IRM7 = 0 /* Mask all interrupts */
|
||||
LVL0~LVL7 = 0
|
||||
|
||||
=> 0x0000 0000
|
||||
|
||||
---------------------------------------------------------------------
|
||||
|
||||
/*### SIEL */
|
||||
/*### SIU Interrupt Edge/Level Register */
|
||||
/*### Chap. 11.5.4.3 */
|
||||
/*### Offset : 0x0000 0018 */
|
||||
|
||||
ED0~ED7 = 0 /* Low level triggered */
|
||||
WMn0~WMn7 = 0 /* Not allowed to exit from low-power mode */
|
||||
|
||||
=> 0x0000 0000
|
||||
|
||||
---------------------------------------------------------------------
|
||||
|
||||
/*### SIVEC */
|
||||
/*### SIU Interrupt Vector Register */
|
||||
/*### Chap. 11.5.4.4 */
|
||||
/*### Offset : 0x0000 001C */
|
||||
|
||||
INTC = 3C /* The lowest interrupt is pending..(?) */
|
||||
|
||||
=> 0x3C00 0000
|
||||
|
||||
---------------------------------------------------------------------
|
||||
|
||||
/*### SWSR */
|
||||
/*### Software Service Register */
|
||||
/*### Chap. 11.7.1 */
|
||||
/*### Offset : 0x0000 001E */
|
||||
|
||||
SEQ = 0
|
||||
|
||||
=> 0x0000
|
||||
|
||||
---------------------------------------------------------------------
|
||||
|
||||
/*### SDCR */
|
||||
/*### SDMA Configuration Register */
|
||||
/*### Chap. 20.2.1 */
|
||||
/*### Offset : 0x0000 0032 */
|
||||
|
||||
FRZ = 0
|
||||
RAID = 01 /* Priority level 5 (BR5) (normal operation) */
|
||||
|
||||
=> 0x0000 0001
|
||||
|
||||
|
||||
/*------------------------------------------------------------------- */
|
||||
/*------------------------------------------------------------------- */
|
||||
/* UPMA (User Programmable Machine A) */
|
||||
/* */
|
||||
/*------------------------------------------------------------------- */
|
||||
/*------------------------------------------------------------------- */
|
||||
|
||||
/*### Chap. 16.6.4.1 */
|
||||
/*### Offset = 0x0000 017c */
|
||||
|
||||
T0 = CFFF CC24 /* Single Read */
|
||||
T1 = 0FFF CC04
|
||||
T2 = 0CAF CC04
|
||||
T3 = 03AF CC08
|
||||
T4 = 3FBF CC27 /* last */
|
||||
T5 = FFFF CC25
|
||||
T6 = FFFF CC25
|
||||
T7 = FFFF CC25
|
||||
T8 = CFFF CC24 /* Burst Read */
|
||||
T9 = 0FFF CC04
|
||||
T10 = 0CAF CC84
|
||||
T11 = 03AF CC88
|
||||
T12 = 3FBF CC27 /* last */
|
||||
T13 = FFFF CC25
|
||||
T14 = FFFF CC25
|
||||
T15 = FFFF CC25
|
||||
T16 = FFFF CC25
|
||||
T17 = FFFF CC25
|
||||
T18 = FFFF CC25
|
||||
T19 = FFFF CC25
|
||||
T20 = FFFF CC25
|
||||
T21 = FFFF CC25
|
||||
T22 = FFFF CC25
|
||||
T23 = FFFF CC25
|
||||
T24 = CFFF CC24 /* Single Write */
|
||||
T25 = 0FFF CC04
|
||||
T26 = 0CFF CC04
|
||||
T27 = 03FF CC00
|
||||
T28 = 3FFF CC27 /* last */
|
||||
T29 = FFFF CC25
|
||||
T30 = FFFF CC25
|
||||
T31 = FFFF CC25
|
||||
T32 = CFFF CC24 /* Burst Write */
|
||||
T33 = 0FFF CC04
|
||||
T34 = 0CFF CC80
|
||||
T35 = 03FF CC8C
|
||||
T36 = 0CFF CC00
|
||||
T37 = 33FF CC27 /* last */
|
||||
T38 = FFFF CC25
|
||||
T39 = FFFF CC25
|
||||
T40 = FFFF CC25
|
||||
T41 = FFFF CC25
|
||||
T42 = FFFF CC25
|
||||
T43 = FFFF CC25
|
||||
T44 = FFFF CC25
|
||||
T45 = FFFF CC25
|
||||
T46 = FFFF CC25
|
||||
T47 = FFFF CC25
|
||||
T48 = C0FF CC24 /* Refresh */
|
||||
T49 = 03FF CC24
|
||||
T50 = 0FFF CC24
|
||||
T51 = 0FFF CC24
|
||||
T52 = 3FFF CC27 /* last */
|
||||
T53 = FFFF CC25
|
||||
T54 = FFFF CC25
|
||||
T55 = FFFF CC25
|
||||
T56 = FFFF CC25
|
||||
T57 = FFFF CC25
|
||||
T58 = FFFF CC25
|
||||
T59 = FFFF CC25
|
||||
T60 = FFFF CC25 /* Exception */
|
||||
T61 = FFFF CC25
|
||||
T62 = FFFF CC25
|
||||
T63 = FFFF CC25
|
||||
|
||||
|
||||
/*------------------------------------------------------------------- */
|
||||
/*------------------------------------------------------------------- */
|
||||
/* UPMB */
|
||||
/* */
|
||||
/*------------------------------------------------------------------- */
|
||||
/*------------------------------------------------------------------- */
|
||||
---------------------------------------------------------------------
|
||||
|
||||
/*### Chap. 16.6.4.1 */
|
||||
|
||||
|
||||
/*------------------------------------------------------------------- */
|
||||
/*------------------------------------------------------------------- */
|
||||
/* MEMC */
|
||||
/* */
|
||||
/*------------------------------------------------------------------- */
|
||||
/*------------------------------------------------------------------- */
|
||||
---------------------------------------------------------------------
|
||||
|
||||
/*### BR0 & OR0 */
|
||||
/*### Base Registers & Option Registers */
|
||||
/*### Chap. 16.4.1 & 16.4.2 */
|
||||
/*### Offset : BR0(0x0000 0100) & OR0(0x0000 0104) */
|
||||
/*### Flash memory */
|
||||
|
||||
BA = 1111 1110 0000 0000 0 /* Base addr = 0xFE00 0000 */
|
||||
AT = 000
|
||||
PS = 00
|
||||
PARE = 0
|
||||
WP = 0
|
||||
MS = 0 /* GPCM */
|
||||
V = 1 /* Valid */
|
||||
|
||||
=> 0xFE00 0001
|
||||
|
||||
AM = 1111 1110 0000 0000 0 /* 32MBytes */
|
||||
ATM = 000
|
||||
CSNT/SAM = 0
|
||||
ACS/G5LA,G5LS = 00
|
||||
BIH = 1 /* Burst inhibited */
|
||||
SCY = 0100 /* cycle length = 4 */
|
||||
SETA = 0
|
||||
TRLX = 0
|
||||
EHTR = 0
|
||||
|
||||
=> 0xFE00 0140
|
||||
|
||||
/*### BR1 & OR1 */
|
||||
/*### Base Registers & Option Registers */
|
||||
/*### Chap. 16.4.1 & 16.4.2 */
|
||||
/*### Offset : BR1(0x0000 0108) & OR1(0x0000 010C) */
|
||||
/*### SDRAM */
|
||||
|
||||
BA = 0000 0000 0000 0000 0 /* Base addr = 0x0000 0000 */
|
||||
AT = 000
|
||||
PS = 00
|
||||
PARE = 0
|
||||
WP = 0
|
||||
MS = 1 /* UPMA */
|
||||
V = 1 /* Valid */
|
||||
|
||||
=> 0x0000 0081
|
||||
|
||||
AM = 1111 1110 0000 0000 /* 32MBytes */
|
||||
ATM = 000
|
||||
CSNT/SAM = 1
|
||||
ACS/G5LA,G5LS = 11
|
||||
BIH = 0
|
||||
SCY = 0000 /* cycle length = 0 */
|
||||
SETA = 0
|
||||
TRLX = 0
|
||||
EHTR = 0
|
||||
|
||||
=> 0xFE00 0E00
|
||||
|
||||
/*### BR2 & OR2 */
|
||||
/*### Base Registers & Option Registers */
|
||||
/*### Chap. 16.4.1 & 16.4.2 */
|
||||
/*### Offset : BR2(0x0000 0110) & OR2(0x0000 0114) */
|
||||
|
||||
BR2 & OR2 = 0x0000 0000 /* Not used */
|
||||
|
||||
/*### BR3 & OR3 */
|
||||
/*### Base Registers & Option Registers */
|
||||
/*### Chap. 16.4.1 & 16.4.2 */
|
||||
/*### Offset : BR3(0x0000 0118) & OR3(0x0000 011C) */
|
||||
/*### BCSR */
|
||||
|
||||
BA = 1111 1010 0100 0000 0 /* Base addr = 0xFA40 0000 */
|
||||
AT = 000
|
||||
PS = 00
|
||||
PARE = 0
|
||||
WP = 0
|
||||
MS = 0 /* GPCM */
|
||||
V = 1 /* Valid */
|
||||
|
||||
=> 0xFA40 0001
|
||||
|
||||
AM = 1111 1111 0111 1111 1 /* (?) */
|
||||
ATM = 000
|
||||
CSNT/SAM = 1
|
||||
ACS/G5LA,G5LS = 00
|
||||
BIH = 1 /* Burst inhibited */
|
||||
SCY = 0001 /* cycle length = 1 */
|
||||
SETA = 0
|
||||
TRLX = 0
|
||||
|
||||
=> 0xFF7F 8910
|
||||
|
||||
/*### BR4 & OR4 */
|
||||
/*### Base Registers & Option Registers */
|
||||
/*### Chap. 16.4.1 & 16.4.2 */
|
||||
/*### Offset : BR4(0x0000 0120) & OR4(0x0000 0124) */
|
||||
/*### NVRAM & SRAM */
|
||||
|
||||
BA = 1111 1010 0000 0000 0 /* Base addr = 0xFA00 0000 */
|
||||
AT = 000
|
||||
PS = 01
|
||||
PARE = 0
|
||||
WP = 0
|
||||
MS = 0 /* GPCM */
|
||||
V = 1 /* Valid */
|
||||
|
||||
=> 0xFA00 0401
|
||||
|
||||
AM = 1111 1111 1111 1000 0 /* 8MByte */
|
||||
ATM = 000
|
||||
CSNT/SAM = 1
|
||||
ACS/G5LA,G5LS = 00
|
||||
BIH = 1 /* Burst inhibited */
|
||||
SCY = 0111 /* cycle length = 7 */
|
||||
SETA = 0
|
||||
TRLX = 0
|
||||
|
||||
=> 0xFFF8 0970
|
||||
|
||||
/*### BR5 & OR5 */
|
||||
/*### Base Registers & Option Registers */
|
||||
/*### Chap. 16.4.1 & 16.4.2 */
|
||||
/*### Offset : BR2(0x0000 0128) & OR2(0x0000 012C) */
|
||||
|
||||
BR5 & OR5 = 0x0000 0000 /* Not used */
|
||||
|
||||
/*### BR6 & OR6 */
|
||||
/*### Base Registers & Option Registers */
|
||||
/*### Chap. 16.4.1 & 16.4.2 */
|
||||
/*### Offset : BR2(0x0000 0130) & OR2(0x0000 0134) */
|
||||
|
||||
BR6 & OR6 = 0x0000 0000 /* Not used */
|
||||
|
||||
/*### BR7 & OR7 */
|
||||
/*### Base Registers & Option Registers */
|
||||
/*### Chap. 16.4.1 & 16.4.2 */
|
||||
/*### Offset : BR7(0x0000 0138) & OR7(0x0000 013C) */
|
||||
|
||||
BR7 & OR7 = 0x0000 0000 /* Not used */
|
||||
|
||||
/*### MAR */
|
||||
/*### Memory Address Register */
|
||||
/*### Chap. 16.4.7 */
|
||||
/*### Offset : 0x0000 0164 */
|
||||
|
||||
MA = External memory address
|
||||
|
||||
/*### MCR */
|
||||
/*### Memory Command Register */
|
||||
/*### Chap. 16.4.5 */
|
||||
/*### Offset : 0x0000 0168 */
|
||||
|
||||
OP = xx /* Command op code */
|
||||
UM = 1 /* Select UPMA */
|
||||
MB = 001 /* Select CS1 */
|
||||
MCLF = xxxx /* Loop times */
|
||||
MAD = xx xxxx /* Memory array index */
|
||||
|
||||
/*### MAMR */
|
||||
/*### Machine A Mode Register */
|
||||
/*### Chap. 16.4.4 */
|
||||
/*### Offset : 0x0000 0170 */
|
||||
|
||||
PTA = 0101 1000
|
||||
PTAE = 1 /* Periodic timer A enabled */
|
||||
AMA = 010
|
||||
DSA = 00
|
||||
G0CLA = 000
|
||||
GPLA4DIS = 1
|
||||
RLFA = 0100
|
||||
WLFA = 0011
|
||||
TLFA = 0000
|
||||
|
||||
=> 0x58A0 1430
|
||||
|
||||
/*### MBMR */
|
||||
/*### Machine B Mode Register */
|
||||
/*### Chap. 16.4.4 */
|
||||
/*### Offset : 0x0000 0174 */
|
||||
|
||||
PTA = 0100 1110
|
||||
PTAE = 0 /* Periodic timer B disabled */
|
||||
AMA = 000
|
||||
DSA = 00
|
||||
G0CLA = 000
|
||||
GPLA4DIS = 1
|
||||
RLFA = 0000
|
||||
WLFA = 0000
|
||||
TLFA = 0000
|
||||
|
||||
=> 0x4E00 1000
|
||||
|
||||
/*### MSTAT */
|
||||
/*### Memory Status Register */
|
||||
/*### Chap. 16.4.3 */
|
||||
/*### Offset : 0x0000 0178 */
|
||||
|
||||
PER0~PER7 = Parity error
|
||||
WPER = Write protection error
|
||||
|
||||
=> 0x0000
|
||||
|
||||
/*### MPTPR */
|
||||
/*### Memory Periodic Timer Prescaler Register */
|
||||
/*### Chap. 16.4.8 */
|
||||
/*### Offset : 0x0000 017A */
|
||||
|
||||
PTP = 0000 1000 /* Divide by 8 */
|
||||
|
||||
=> 0x0800
|
||||
|
||||
/*### MDR */
|
||||
/*### Memory Data Register */
|
||||
/*### Chap. 16.4.6 */
|
||||
/*### Offset : 0x0000 017C */
|
||||
|
||||
MD = Memory data contains the RAM array word
|
||||
|
||||
|
||||
/*------------------------------------------------------------------- */
|
||||
/*------------------------------------------------------------------- */
|
||||
/* TIMERS */
|
||||
/* */
|
||||
/*------------------------------------------------------------------- */
|
||||
/*------------------------------------------------------------------- */
|
||||
---------------------------------------------------------------------
|
||||
|
||||
/*### TBREFx */
|
||||
/*### Timebase Reference Registers */
|
||||
/*### Chap. 11.9.2 */
|
||||
/*### Offset : TBREFF0(0x0000 0204)/TBREFF1(0x0000 0208) */
|
||||
/*### (Locked) */
|
||||
|
||||
TBREFF0 = 0xFFFF FFFF
|
||||
TBREFF1 = 0xFFFF FFFF
|
||||
|
||||
---------------------------------------------------------------------
|
||||
|
||||
/*### TBSCR */
|
||||
/*### Timebase Status and Control Registers */
|
||||
/*### Chap. 11.9.3 */
|
||||
/*### Offset : 0x0000 0200 */
|
||||
/*### (Locked) */
|
||||
|
||||
TBIRQ = 00000000
|
||||
REF0 = 0
|
||||
REF1 = 0
|
||||
REFE0 = 0 /* Reference interrupt disable */
|
||||
REFE1 = 0
|
||||
TBF = 1
|
||||
TBE = 1 /* Timebase enable */
|
||||
|
||||
=> 0x0003
|
||||
|
||||
---------------------------------------------------------------------
|
||||
|
||||
/*### RTCSC */
|
||||
/*### Real-Time Clock Status and Control Registers */
|
||||
/*### Chap. 11.10.1 */
|
||||
/*### Offset : 0x0000 0220 */
|
||||
/*### (Locked) */
|
||||
|
||||
RTCIRQ = 00000000
|
||||
SEC = 1
|
||||
ALR = 0
|
||||
38K = 0 /* PITRTCLK is driven by 32.768KHz */
|
||||
SIE = 0
|
||||
ALE = 0
|
||||
RTF = 0
|
||||
RTE = 1 /* Real-Time clock enabled */
|
||||
|
||||
=> 0x0081
|
||||
|
||||
---------------------------------------------------------------------
|
||||
|
||||
/*### RTC */
|
||||
/*### Real-Time Clock Registers */
|
||||
/*### Chap. 11.10.2 */
|
||||
/*### Offset : 0x0000 0224 */
|
||||
/*### (Locked) */
|
||||
|
||||
RTC = Real time clock measured in second
|
||||
|
||||
---------------------------------------------------------------------
|
||||
|
||||
/*### RTCAL */
|
||||
/*### Real-Time Clock Alarm Registers */
|
||||
/*### Chap. 11.10.3 */
|
||||
/*### Offset : 0x0000 022C */
|
||||
/*### (Locked) */
|
||||
|
||||
ALARM = 0xFFFF FFFF
|
||||
|
||||
---------------------------------------------------------------------
|
||||
|
||||
/*### RTSEC */
|
||||
/*### Real-Time Clock Alarm Second Registers */
|
||||
/*### Chap. 11.10.4 */
|
||||
/*### Offset : 0x0000 0228 */
|
||||
/*### (Locked) */
|
||||
|
||||
COUNTER = Counter bits(fraction of a second)
|
||||
|
||||
---------------------------------------------------------------------
|
||||
|
||||
/*### PISCR */
|
||||
/*### Periodic Interrupt Status and Control Register */
|
||||
/*### Chap. 11.11.1 */
|
||||
/*### Offset : 0x0000 0240 */
|
||||
/*### (Locked) */
|
||||
|
||||
PIRQ = 0
|
||||
PS = 0 /* Write 1 to clear */
|
||||
PIE = 0
|
||||
PITF = 1
|
||||
PTE = 0 /* PIT disabled */
|
||||
|
||||
---------------------------------------------------------------------
|
||||
|
||||
/*### PITC */
|
||||
/*### PIT Count Register */
|
||||
/*### Chap. 11.11.2 */
|
||||
/*### Offset : 0x0000 0244 */
|
||||
/*### (Locked) */
|
||||
|
||||
PITC = PIT count
|
||||
|
||||
---------------------------------------------------------------------
|
||||
|
||||
/*### PITR */
|
||||
/*### PIT Register */
|
||||
/*### Chap. 11.11.3 */
|
||||
/*### Offset : 0x0000 0248 */
|
||||
/*### (Locked) */
|
||||
|
||||
PIT = PIT count /* Read only */
|
||||
|
||||
|
||||
/*------------------------------------------------------------------- */
|
||||
/*------------------------------------------------------------------- */
|
||||
/* CLOCKS */
|
||||
/* */
|
||||
/*------------------------------------------------------------------- */
|
||||
/*------------------------------------------------------------------- */
|
||||
---------------------------------------------------------------------
|
||||
|
||||
|
||||
---------------------------------------------------------------------
|
||||
|
||||
/*### SCCR */
|
||||
/*### System Clock and Reset Control Register */
|
||||
/*### Chap. 15.6.1 */
|
||||
/*### Offset : 0x0000 0280 */
|
||||
/*### (Locked) */
|
||||
|
||||
COM = 11 /* Clock output disabled */
|
||||
TBS = 1 /* Timebase frequency source is GCLK2 divided by 16 */
|
||||
RTDIV = 0 /* The clock is divided by 4 */
|
||||
RTSEL = 0 /* OSCM(Crystal oscillator) is selected */
|
||||
CRQEN = 0
|
||||
PRQEN = 0
|
||||
EBDF = 00 /* CLKOUT is GCLK2 divided by 1 */
|
||||
DFSYNC = 00 /* Divided by 1 (normal operation) */
|
||||
DFBRG = 00 /* Divided by 1 (normal operation) */
|
||||
DFNL = 000
|
||||
DFNH = 000
|
||||
|
||||
=> 0x6200 0000
|
||||
|
||||
---------------------------------------------------------------------
|
||||
|
||||
/*### PLPRCR */
|
||||
/*### PLL, Low-Power, and Reset Control Register */
|
||||
/*### Chap. 15.6.2 */
|
||||
/*### Offset : 0x0000 0284 */
|
||||
/*### (Locked) */
|
||||
|
||||
MF = 0x005 /* 48MHz (?) ( = 8MHz * (MF+1) ) */
|
||||
SPLSS = 0
|
||||
TEXPS = 0
|
||||
TMIST = 0
|
||||
CSRC = 0 /* The general system clock is generated by the DFNH field */
|
||||
LPM = 00 /* Normal high/normal low mode */
|
||||
CSR = 0
|
||||
LOLRE = 0
|
||||
FIOPD = 0
|
||||
|
||||
=> 0x0050 0000
|
||||
|
||||
---------------------------------------------------------------------
|
||||
|
||||
/*### RSR */
|
||||
/*### Reset Status Register */
|
||||
/*### Chap. 12.2 */
|
||||
/*### Offset : 0x0000 0288 */
|
||||
/*### (Locked) */
|
||||
|
||||
EHRS = External hard reset
|
||||
ESRS = External soft reset
|
||||
LLRS = Loss-of-lock reset
|
||||
SWRS = Software watchdog reset
|
||||
CSRS = Check stop reset
|
||||
DBHRS = Debug port hard reset
|
||||
DBSRS = Debug port soft reset
|
||||
JTRS = JTAG reset
|
||||
|
||||
|
||||
/*------------------------------------------------------------------- */
|
||||
/*------------------------------------------------------------------- */
|
||||
/* DMA */
|
||||
/* */
|
||||
/*------------------------------------------------------------------- */
|
||||
/*------------------------------------------------------------------- */
|
||||
---------------------------------------------------------------------
|
||||
|
||||
/*### SDSR */
|
||||
/*### SDMA Status Register */
|
||||
/*### Chap. 20.2.2 */
|
||||
/*### Offset : 0x0000 0908 */
|
||||
|
||||
SBER = 0 /* SDMA channel bus error */
|
||||
DSP2 = 0 /* DSP chain2 (Tx) interrupt */
|
||||
DSP1 = 0 /* DSP chain1 (Rx) interrupt */
|
||||
|
||||
=> 0x00
|
||||
|
||||
/*### SDMR */
|
||||
/*### SDMA Mask Register */
|
||||
/*### Chap. 20.2.3 */
|
||||
/*### Offset : 0x0000 090C */
|
||||
|
||||
SBER = 0
|
||||
DSP2 = 0
|
||||
DSP1 = 0 /* All interrupts are masked */
|
||||
|
||||
=> 0x00
|
||||
|
||||
/*### SDAR */
|
||||
/*### SDMA Address Register */
|
||||
/*### Chap. 20.2.4 */
|
||||
/*### Offset : 0x0000 0904 */
|
||||
|
||||
AR = 0xxxxx xxxx /* current system address */
|
||||
|
||||
=> 0xFA20 23AC
|
||||
|
||||
/*### IDSRx */
|
||||
/*### IDMA Status Register */
|
||||
/*### Chap. 20.3.3.2 */
|
||||
/*### Offset : IDSR1(0x0000 0910) & IDSR2(0x0000 0918) */
|
||||
|
||||
AD = 0
|
||||
DONE = 0
|
||||
OB = 0
|
||||
|
||||
=> 0x00
|
||||
|
||||
/*### IDMRx */
|
||||
/*### IDMA Mask Register */
|
||||
/*### Chap. 20.3.3.3 */
|
||||
/*### Offset : IDMR1(0x0000 0914) & IDMR2(0x0000 091C) */
|
||||
|
||||
AD = 0
|
||||
DONE = 0
|
||||
OB = 0
|
||||
Loading…
Add table
Add a link
Reference in a new issue