PKG_VERSION:=0.1
PKG_RELEASE:=1
+PKG_SOURCE:=e100boot.tar.bz2
+PKG_SOURCE_URL:=http://www.acmesystems.it/download/owrt
+PKG_MD5SUM:=
+
PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/$(PKG_NAME)
CRLF_WORKAROUND=1
include $(INCLUDE_DIR)/package.mk
define Build/Compile
- mkdir -p $(PKG_BUILD_DIR)
- cp -r ./src/* $(PKG_BUILD_DIR)
- make -C $(PKG_BUILD_DIR)
+ make -C $(PKG_BUILD_DIR) CC=$(TARGET_CC) STRIP=true
endef
define Build/InstallDev
+++ /dev/null
-Copyright (c) 2004, 2005 Axis Communications AB. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-
-1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-3. Neither the name of Axis Communications AB nor the names of its
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY AXIS COMMUNCATIONS AB ``AS IS'' AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGE.
+++ /dev/null
-#
-# Top Makefile for e100boot
-# $Id: Makefile,v 1.20 2003/06/04 12:22:23 pkj Exp $
-#
-
-# Change these paths if necessary. Can also be specified on cmdline as
-# 'make INSTALL_PATH=/foo/bar/'.
-
-INSTALL_NAME = e100boot
-INSTALL_PATH = /usr/local
-INSTALL_PATH_BIN = $(INSTALL_PATH)/bin
-INSTALL_PATH_DOC = $(INSTALL_PATH)/man/man1
-
-DIRS = libpcap-0.4 sbl doc
-
--include $(AXIS_TOP_DIR)/tools/build/Rules.axis
-ifdef prefix
-INSTALL_PATH = $(prefix)
-endif
-
-INSTALL ?= install
-
-all: conf $(DIRS)
- @for d in $(DIRS); do \
- echo -e "\n### Making $$d"; \
- $(MAKE) -C $$d || exit; \
- done
-
-conf: $(DIRS)
- @for d in $(DIRS); do \
- if [ -x $$d/configure ] && [ ! -e $$d/Makefile ]; then \
- echo -e "\n### Configuring $$d"; \
- cd $$d; ./configure ||Â exit; cd ..; \
- fi; \
- done
-
-tar: clean
- @echo -e "\n### Making tarball."
- tar -C ../ -zcf e100boot.tgz --exclude e100boot.tgz --exclude RCS --exclude CVS e100boot
-
-
-install: all
- $(INSTALL) -d $(INSTALL_PATH_BIN) $(INSTALL_PATH_DOC)
- $(INSTALL) sbl/e100boot.stripped $(INSTALL_PATH_BIN)/$(INSTALL_NAME)
- $(INSTALL) -m 0644 doc/e100boot.1 $(INSTALL_PATH_DOC)/$(INSTALL_NAME).1
-
-install.setuid:
- @echo -e "\n### Make install.setuid"; \
- if ! [ -e $(INSTALL_PATH_BIN)/$(INSTALL_NAME) ]; then \
- echo -e "\n### Binary $(INSTALL_PATH_BIN)/$(INSTALL_NAME) does not exist! Make install first."; \
- elif [ `id -u` = 0 ]; then \
- chown root.root $(INSTALL_PATH_BIN)/$(INSTALL_NAME); \
- chmod +s $(INSTALL_PATH_BIN)/$(INSTALL_NAME); \
- else \
- echo "### You must do this as root!"; \
- fi
-
-clean:
- @for d in $(DIRS); do \
- if [ -e $$d/Makefile ]; then \
- echo -e "\n### Cleaning $$d"; \
- $(MAKE) -C $$d clean || exit; \
- fi; \
- done
-
-configsubs: conf configsubs-dirs
-
-configsubs-dirs:
- $(MAKE) -C libpcap-0.4 configsubs
- $(MAKE) -C sbl configsubs
+++ /dev/null
-#
-# Makefile to generate .ima files for e100boot
-#
-# Hacked by ronny, rehacked by ronny
-#
-# $Id: Makefile,v 1.26 2003/03/13 14:18:31 cii Exp $
-#
-
-DIRS := net net_noleds ser ser_noleds
-
-all: $(DIRS)
- @for d in $(DIRS); do \
- echo -e "\n### Making $$d"; \
- make -C $$d || exit; \
- done
- @echo "***************************************************************"
- @./free_size
- @echo "***************************************************************"
-
-clean:
- rm -f *.ima
- @for d in $(DIRS); do \
- echo -e "\n### Cleaning $$d"; \
- make -C $$d clean || exit; \
- done;
+++ /dev/null
-#!/bin/sh
-#
-# Calculates the size left in ETRAX cache when bootloader is loaded.
-#
-
-BOOT_FILE=`dirname $0`/net/net.out
-HEADER_FILE=`dirname $0`/src/e100boot.h
-
-for FILE in $BOOT_FILE $HEADER_FILE; do
- if [ ! -f $FILE ]; then
- echo "Could not find the file \"$FILE\"!"
- exit 1
- fi
-done
-
-# The cache size is given in hex
-CACHE_SIZE=2000
-
-BSS_SIZE=`nm-cris $BOOT_FILE | grep Ebss | cut -d ' ' -f 1 | tr a-f A-F`
-
-TEXT_SIZE=`nm-cris $BOOT_FILE | grep Stext | cut -d ' ' -f 1 | tr a-f A-F`
-
-IO_BUF_END=`grep IO_BUF_END $HEADER_FILE | awk '{ print $3 }' | \
- cut -d x -f 2 | tr a-f A-F`
-
-IO_BUF_START=`grep IO_BUF_START $HEADER_FILE | awk '{ print $3 }' | \
- cut -d x -f 2 | tr a-f A-F`
-
-FREE_SIZE=`echo "ibase=16 ; \
- $CACHE_SIZE - \
- ($BSS_SIZE - $TEXT_SIZE + $IO_BUF_END - $IO_BUF_START)" | \
- bc`
-
-echo "Free cache size when cbl is loaded will be:"
-echo -e "\t$FREE_SIZE bytes - size of stack"
-
-if [ $FREE_SIZE -lt 0 ]; then
- echo "Bootloader is too large! You will have to do some optimizing..."
- exit 1
-fi
-
-exit 0
+++ /dev/null
-#
-# $Id: Makefile,v 1.1 2002/07/01 14:36:40 pkj Exp $
-#
-
-IMAGE := net.ima
-include ../rules.cbl
+++ /dev/null
-common.o: ../src/common.c ../src/hwregs.h ../src/compiler.h \
- ../src/debug.h ../src/project.h ../src/hwregs_def.h ../src/hwregs_int.h \
- ../src/e100boot.h
+++ /dev/null
-common_init.o: ../src/common_init.c ../src/hwregs.h ../src/compiler.h \
- ../src/debug.h ../src/project.h ../src/hwregs_def.h ../src/hwregs_int.h \
- ../src/e100boot.h
+++ /dev/null
-crt0.o: ../src/crt0.S
+++ /dev/null
-char e100boot_version[] = "This bootloader was built by root on Wed May 16 21:31:41 CEST 2007.\r\n";
+++ /dev/null
-e100boot_version.o: e100boot_version.c
+++ /dev/null
-flash.o: ../src/flash.c ../src/e100boot.h ../src/compiler.h
+++ /dev/null
-hwregs.o: ../src/hwregs.c ../src/compiler.h ../src/hwregs.h \
- ../src/debug.h ../src/project.h ../src/hwregs_def.h ../src/hwregs_int.h
+++ /dev/null
-net_init.o: ../src/net_init.c ../src/sv_addr_ag.h ../src/sv_addr.agh \
- ../src/e100boot.h ../src/compiler.h
+++ /dev/null
-#
-# $Id: Makefile,v 1.1 2002/07/01 14:36:51 pkj Exp $
-#
-
-IMAGE := net_noleds.ima
-include ../rules.cbl
+++ /dev/null
-common.o: ../src/common.c ../src/hwregs.h ../src/compiler.h \
- ../src/debug.h ../src/project.h ../src/hwregs_def.h ../src/hwregs_int.h \
- ../src/e100boot.h
+++ /dev/null
-common_init.o: ../src/common_init.c ../src/hwregs.h ../src/compiler.h \
- ../src/debug.h ../src/project.h ../src/hwregs_def.h ../src/hwregs_int.h \
- ../src/e100boot.h
+++ /dev/null
-crt0.o: ../src/crt0.S
+++ /dev/null
-char e100boot_version[] = "This bootloader was built by root on Wed May 16 21:31:43 CEST 2007.\r\n";
+++ /dev/null
-e100boot_version.o: e100boot_version.c
+++ /dev/null
-flash.o: ../src/flash.c ../src/e100boot.h ../src/compiler.h
+++ /dev/null
-hwregs.o: ../src/hwregs.c ../src/compiler.h ../src/hwregs.h \
- ../src/debug.h ../src/project.h ../src/hwregs_def.h ../src/hwregs_int.h
+++ /dev/null
-net_init.o: ../src/net_init.c ../src/sv_addr_ag.h ../src/sv_addr.agh \
- ../src/e100boot.h ../src/compiler.h
+++ /dev/null
-#
-# $Id: rules.cbl,v 1.4 2005/04/20 11:18:54 starvik Exp $
-#
-
-VPATH := .:../src
-
-ifeq ($(findstring _noleds,$(IMAGE)),_noleds)
-USE_LEDS := 0
-else
-USE_LEDS := 1
-endif
-
-MAKEFLAGS := r
-INCS := -I.
-DEFS := -DUSE_LEDS=$(USE_LEDS)
-CFLAGS := -Os -Wall -Wmissing-prototypes -W -Wa,-N -nostdinc $(INCS) $(DEFS) -MMD
-ASFLAGS := $(CFLAGS)
-LNFLAGS := -Wl,--section-start,.startup=0x380000f0 -nostdlib -Os -Wl,-T../src/ldscript
-CC := cris-axis-elf-gcc
-
-OUT := $(patsubst %.ima,%.out,$(IMAGE))
-
-OBJS = crt0.o common_init.o
-ifeq ($(findstring net,$(IMAGE)),net)
-OBJS += net_init.o
-else
-OBJS += ser_init.o
-endif
-OBJS += common.o flash.o hwregs.o e100boot_version.o
-
-all: ../$(IMAGE)
-
-$(OUT): $(OBJS) ldscript
- $(CC) -o $@ $(LNFLAGS) $(OBJS)
-
-../%.ima: %.out
- bin-cris -o $@ $<
- @find $@ -printf '# Size of image $@ is %s bytes.\n\n'
-
-$(OBJS): ../rules.cbl Makefile
-
-# We don't want this to be a dummy and be recreated every time we build,
-# only after a make clean
-e100boot_version.c:
- @echo "Generating version file....."
- @echo 'char e100boot_version[] = "This bootloader was built by '`id -u -n`' on '`date`'.\r\n";' > $@
-
-dummy:
-
-clean:
- rm -rf *.o *.d *.out *.ima deps e100boot_version.c
-
-ifneq ($(MAKECMDGOALS),clean)
--include *.d
-endif
+++ /dev/null
-#
-# $Id: Makefile,v 1.1 2002/07/01 14:37:01 pkj Exp $
-#
-
-IMAGE := ser.ima
-include ../rules.cbl
+++ /dev/null
-common.o: ../src/common.c ../src/hwregs.h ../src/compiler.h \
- ../src/debug.h ../src/project.h ../src/hwregs_def.h ../src/hwregs_int.h \
- ../src/e100boot.h
+++ /dev/null
-common_init.o: ../src/common_init.c ../src/hwregs.h ../src/compiler.h \
- ../src/debug.h ../src/project.h ../src/hwregs_def.h ../src/hwregs_int.h \
- ../src/e100boot.h
+++ /dev/null
-crt0.o: ../src/crt0.S
+++ /dev/null
-char e100boot_version[] = "This bootloader was built by root on Wed May 16 21:31:44 CEST 2007.\r\n";
+++ /dev/null
-e100boot_version.o: e100boot_version.c
+++ /dev/null
-flash.o: ../src/flash.c ../src/e100boot.h ../src/compiler.h
+++ /dev/null
-hwregs.o: ../src/hwregs.c ../src/compiler.h ../src/hwregs.h \
- ../src/debug.h ../src/project.h ../src/hwregs_def.h ../src/hwregs_int.h
+++ /dev/null
-ser_init.o: ../src/ser_init.c ../src/hwregs.h ../src/compiler.h \
- ../src/debug.h ../src/project.h ../src/hwregs_def.h ../src/hwregs_int.h \
- ../src/sv_addr_ag.h ../src/sv_addr.agh ../src/e100boot.h
+++ /dev/null
-#
-# $Id: Makefile,v 1.1 2002/07/01 14:37:10 pkj Exp $
-#
-
-IMAGE := ser_noleds.ima
-include ../rules.cbl
+++ /dev/null
-common.o: ../src/common.c ../src/hwregs.h ../src/compiler.h \
- ../src/debug.h ../src/project.h ../src/hwregs_def.h ../src/hwregs_int.h \
- ../src/e100boot.h
+++ /dev/null
-common_init.o: ../src/common_init.c ../src/hwregs.h ../src/compiler.h \
- ../src/debug.h ../src/project.h ../src/hwregs_def.h ../src/hwregs_int.h \
- ../src/e100boot.h
+++ /dev/null
-crt0.o: ../src/crt0.S
+++ /dev/null
-char e100boot_version[] = "This bootloader was built by root on Wed May 16 21:31:46 CEST 2007.\r\n";
+++ /dev/null
-e100boot_version.o: e100boot_version.c
+++ /dev/null
-flash.o: ../src/flash.c ../src/e100boot.h ../src/compiler.h
+++ /dev/null
-hwregs.o: ../src/hwregs.c ../src/compiler.h ../src/hwregs.h \
- ../src/debug.h ../src/project.h ../src/hwregs_def.h ../src/hwregs_int.h
+++ /dev/null
-ser_init.o: ../src/ser_init.c ../src/hwregs.h ../src/compiler.h \
- ../src/debug.h ../src/project.h ../src/hwregs_def.h ../src/hwregs_int.h \
- ../src/sv_addr_ag.h ../src/sv_addr.agh ../src/e100boot.h
+++ /dev/null
-#include "hwregs.h"
-#include "e100boot.h"
-
-static void toggle_led(void);
-
-static void read_load_info(void);
-static void decode_load_info(void);
-
-static void read_file(byte* addr, udword size);
-
-#if USE_PRINT_DESCR
-static void print_descr(dma_descr_T *d);
-#endif
-
-static int memory_test(udword addr, udword size, udword *failed_address);
-static void memory_dump(udword *from, udword *to);
-
-extern byte _Stext[];
-extern byte _Edata[];
-
-#ifdef USE_BAUDRATE_CHANGING
-byte change_baudrate;
-udword new_baudrate;
-#endif
-
-void
-level2_boot(void)
-{
-#if USE_LEDS
- REG_SET(R_PORT_PA_DATA, data_out, 0xaa);
-#endif
-
-#if 0
- io_buf_next = (byte*)IO_BUF_START;
- io_buf_cur = (byte*)IO_BUF_START;
-#endif
-
-#if 1
- send_string("\r\n\r\nDevice ID = ");
- send_hex(ntohl(tx_header.id), NL);
- send_string(e100boot_version);
-#endif
-
-#if 1
- {
- udword sum = 0;
- byte *b;
-
- for (b = (byte*)_Stext; b != (byte*)_Edata; b++) {
- sum += *b;
- }
- send_string("Checksum of bootloader is ");
- send_hex(sum, NL);
- }
-#endif
-
- read_load_info();
-
- __asm__ volatile ("jump _start");
-}
-
-void
-toggle_led(void)
-{
-#if USE_LEDS
- REG_SET(R_PORT_PA_DATA, data_out, 0x55);
-
- while (1) {
- REG_SET(R_PORT_PA_DATA, data_out, ~REG_GET(R_PORT_PA_READ, data_in));
- {
- volatile udword i;
-
- for (i = 0; i != 2000000; i++)
- ;
- }
- }
-#else
- while (1) {
- }
-#endif
-}
-
-void
-read_load_info(void)
-{
-#ifdef USE_BAUDRATE_CHANGING
- change_baudrate = 0;
-#endif
-
- send_string("Waiting for load info.\r\n");
-
- send_ack();
-
- read_file((byte*)IO_BUF_START, IO_BUF_END - IO_BUF_START - CRC_LEN);
- send_string("Got load info.\r\n");
- decode_load_info();
-
-#ifdef USE_BAUDRATE_CHANGING
- if (change_baudrate) {
- REG_WR(R_SERIAL0_BAUD, new_baudrate);
- {
- udword i = 0;
-
- while (i++ < 1000000)
- ;
- }
- send_ack();
- }
-#endif
-
- toggle_led();
-}
-
-void
-decode_load_info(void)
-{
- udword *type_p = (udword*)IO_BUF_START;
- udword failed_address;
- udword i;
- command_T *cmd;
-
- while (type_p != (udword*)(IO_BUF_END - CRC_LEN)) { /* !!! */
-// send_hex(type_p, NL);
- *type_p = ntohl(*type_p);
-// send_hex(*type_p, NL);
- type_p++;
- }
-
-// memory_dump(IO_BUF_START, IO_BUF_END);
-
- cmd = (command_T*)IO_BUF_START;
- while (cmd->type) {
- switch (cmd->type) {
- case PACKET_INFO:
- send_string("PACKET_INFO\r\n");
- send_hex(cmd->args.packet_info.addr, NL);
- send_hex(cmd->args.packet_info.size, NL);
-
- seq--;
- send_ack();
- seq++;
-
- read_file((byte*)cmd->args.packet_info.addr, cmd->args.packet_info.size);
-
- (byte*)cmd += sizeof cmd->type + sizeof cmd->args.packet_info;
- break;
-
- case SET_REGISTER:
- send_string("SET_REGISTER\r\n");
- send_hex(cmd->args.set_register.addr, NL);
- send_hex(cmd->args.set_register.val, NL);
-
- *(udword*)cmd->args.set_register.addr = cmd->args.set_register.val;
-
- (byte*)cmd += sizeof cmd->type + sizeof cmd->args.set_register;
- break;
-
- case GET_REGISTER:
- send_string("GET_REGISTER\r\n");
- send_hex(cmd->args.get_register.addr, NL);
- send_hex(*(udword*)cmd->args.get_register.addr, NL);
-
- (byte*)cmd += sizeof cmd->type + sizeof cmd->args.get_register;
- break;
-
- case PAUSE_LOOP:
- send_string("PAUSE_LOOP\r\n");
- send_hex(cmd->args.pause_loop.pause, NL);
-
- for (i = cmd->args.pause_loop.pause; i; i--)
- ;
-
- (byte*)cmd += sizeof cmd->type + sizeof cmd->args.pause_loop;
- break;
-
- case MEM_VERIFY:
- send_string("MEM_VERIFY\r\n");
- send_hex(cmd->args.mem_verify.addr, NL);
- send_hex(cmd->args.mem_verify.val, NL);
-
- if (*(udword*)cmd->args.mem_verify.addr != cmd->args.mem_verify.val) {
- send_string("verify failed\r\n");
- goto decode_failed;
- }
-
- (byte*)cmd += sizeof cmd->type + sizeof cmd->args.mem_verify;
- break;
-
- case MEM_TEST:
- send_string("MEM_TEST\r\n");
- send_hex(cmd->args.mem_test.from, NL);
- send_hex(cmd->args.mem_test.to, NL);
-
- if (!memory_test(cmd->args.mem_test.from,
- cmd->args.mem_test.to,
- &failed_address)) {
- send_string("### Memory test failed at ");
- send_hex(failed_address, NL);
- memory_dump((udword*)DWORD_ALIGN(failed_address - 64),
- (udword*)DWORD_ALIGN(failed_address + 64));
- goto decode_failed;
- }
- send_string("Passed memory test.\r\n");
-
- (byte*)cmd += sizeof cmd->type + sizeof cmd->args.mem_test;
- break;
-
- case MEM_DUMP:
- send_string("MEM_DUMP\r\n");
- send_hex(cmd->args.mem_dump.from_addr, NL);
- send_hex(cmd->args.mem_dump.to_addr, NL);
-
- memory_dump((udword*)cmd->args.mem_dump.from_addr,
- (udword*)cmd->args.mem_dump.to_addr);
-
- (byte*)cmd += sizeof cmd->type + sizeof cmd->args.mem_dump;
- break;
-
- case MEM_CLEAR:
- send_string("MEM_CLEAR\r\n");
- send_hex(cmd->args.mem_clear.from_addr, NL);
- send_hex(cmd->args.mem_clear.to_addr, NL);
-
- for (i = cmd->args.mem_clear.from_addr;
- i <= cmd->args.mem_clear.to_addr;
- i++) {
- *(byte*)i = 0x00;
- }
-
- (byte*)cmd += sizeof cmd->type + sizeof cmd->args.mem_clear;
- break;
-
- case FLASH:
- send_string("FLASH\r\n");
- send_hex((udword)cmd->args.flash.source, NL);
- send_hex(cmd->args.flash.offset, NL);
- send_hex(cmd->args.flash.size, NL);
-
- if ((i = flash_write(cmd->args.flash.source,
- cmd->args.flash.offset,
- cmd->args.flash.size)) != ERR_FLASH_OK) {
- if (i == ERR_FLASH_VERIFY) {
- udword size =
- (cmd->args.flash.size < 65536 ? cmd->args.flash.size : 65536);
-
- /* Try to erase the first block(s) we tried to flash to prevent a
- unit which failed to flash correctly from booting */
- flash_write(NULL, cmd->args.flash.offset, size);
- }
-
- goto decode_failed;
- }
-
- (byte*)cmd += sizeof cmd->type + sizeof cmd->args.flash;
- break;
-
- case JUMP:
-#if 1
- /* for the printf function in our libc */
- REG_WR(R_DMA_CH8_FIRST, *(udword*)&tx_header.dest[0]);
- REG_WR(R_DMA_CH9_FIRST, *(uword*)&tx_header.dest[4]);
-// REG_WR(R_NETWORK_SA_1, &tx_header.dest[4]);
-// REG_WR(R_NETWORK_SA_2, tx_header.id);
-#endif
- send_string("JUMP\r\n");
- send_hex(cmd->args.jump.addr, NL);
- send_string("END\r\n");
-
- __asm__ volatile ("jump %0" :: "r" (cmd->args.jump.addr));
-
- (byte*)cmd += sizeof cmd->type + sizeof cmd->args.jump;
- break;
-
- case LOOP:
- send_string("LOOP\r\n");
- send_hex(cmd->args.bne.addr, NL);
- send_hex(cmd->args.bne.target, NL);
-
- if (*(udword*)cmd->args.bne.addr) {
- (*(udword*)cmd->args.bne.addr)--;
- (byte*)cmd = cmd->args.bne.target;
- }
- else {
- (byte*)cmd += sizeof cmd->type + sizeof cmd->args.bne;
- }
- break;
-
-#ifdef USE_BAUDRATE_CHANGING
- case BAUDRATE:
- send_string("BAUDRATE\r\n");
- send_hex(cmd->args.br.baudrate, NL);
-
- new_baudrate = cmd->args.br.baudrate;
-
- (byte*)cmd += sizeof cmd->type + sizeof cmd->args.br;
- break;
-#endif
-
- default:
- send_string("### Unknown type: ");
- send_hex(cmd->type, NL);
-
- goto decode_failed;
- break;
- }
- }
-
-decode_failed:
- send_string("END\r\n");
-}
-
-void
-read_file(byte* addr, udword size)
-{
- udword nbr_read_last;
- udword sum;
- byte *b;
- byte *from;
-
-/* send_string(">read_file\r\n"); */
-
- nbr_read = 0;
- nbr_read_last = 0;
- target_address = (udword)addr;
-
- if (interface == NETWORK) {
- rx_descr2.buf = (udword)addr;
- bytes_to_read = size;
- rx_descr2.sw_len = size + CRC_LEN > 1500 ? 1500 : size + CRC_LEN;
-/* rx_descr2.sw_len = 1500; */
-
- REG_SET(R_DMA_CH1_FIRST, first, (udword)&rx_descr);
-
- /* Restart receiver so descriptor is re-read. */
- REG_SET(R_DMA_CH1_CMD, cmd, reset);
- while (REG_EQL(R_DMA_CH1_CMD, cmd, reset)) {
- }
-
- REG_SET(R_DMA_CH1_CMD, cmd, start);
-
- while (1) {
-/* send_hex(rx_descr2.hw_len, NL); */
- from = (byte*)rx_descr2.buf;
- if (read_data()) {
- if (nbr_read < size) {
- REG_SET(R_DMA_CH1_CMD, cmd, start);
- }
-
-#if USE_PRINT_DESCR
- print_descr(&rx_descr);
- print_descr(&rx_descr2);
-#endif
-
-#if 0
- send_string("Read ");
- send_hex(rx_descr2.hw_len - CRC_LEN, NO_NL);
- send_string(" bytes. ");
- send_hex((udword)from, NO_NL);
- send_string(" - ");
- send_hex(rx_descr2.buf-1, NO_NL);
- send_string(" (");
- send_hex(nbr_read, NO_NL);
- send_string("/");
- send_hex(size, NO_NL);
- send_string(")\r\n");
-#endif
-
- nbr_read_last = nbr_read;
-/* from = (byte*)rx_descr2.buf; */
-
- if (nbr_read >= size) {
- break;
- }
- }
- }
- }
- else { /* interface != NETWORK */
- while (nbr_read < size) {
- read_data();
- }
- }
-
- sum = 0;
- for (b = addr; b != (byte*)(addr+size); b++) {
- sum += *b;
- }
- send_string("Checksum of file is ");
- send_hex(sum, NL);
-
-/* memory_dump((udword*)addr, (udword*)addr+size); */
-/* send_string("<read_file\r\n"); */
-}
-
-#if USE_PRINT_DESCR
-void
-print_descr(dma_descr_T *d)
-{
- send_string("Descriptor at ");
- send_hex((udword)d, NL);
-
- send_string("ctrl : ");
- send_hex(d->ctrl, NL);
-
- send_string("sw_len : ");
- send_hex(d->sw_len, NL);
-
- send_string("next : ");
- send_hex(d->next, NL);
-
- send_string("buf : ");
- send_hex(d->buf, NL);
-
- send_string("status : ");
- send_hex(d->status, NL);
-
- send_string("hw_len : ");
- send_hex(d->hw_len, NL);
-}
-#endif
-
-int
-memory_test(udword from, udword to, udword *failed_address)
-{
- udword i;
- udword j;
- byte b;
-
- /* At each dword (but bytewise) write the inverse of the adress,
- check that it worked, then write the inverse of the last byte
- written. Exit on fail. The memory after a successfull test will
- be:
-
- 0xC0000000 : 0xC0000000 0xC0000004 0xC0000008 0xC000000C
- 0xC0000010 : 0xC0000010 0xC0000014 0xC0000018 0xC000001C
- */
-
- for (i = from; i < to; i += 4) {
- for (j = 0; (j != sizeof(udword)) && (i+j < to); j++) {
- b = ((~i) >> (j*8)) & 0xff;
- *(volatile byte*)(i+j) = b;
- if (*(volatile byte*)(i+j) == b) {
- *(volatile byte*)(i+j) = ~b;
- }
- else {
- *failed_address = i+j;
- send_string("### Memory test 1 failed at ");
- send_hex(*failed_address, NL);
- return FALSE;
- }
- }
- }
-
- /* Run through entire region, check bytewise that the dwords contain
- the address to the dword. Exit on fail. */
-
- for (i = from; i < to; i += 4) {
- for (j = 0; (j != sizeof(udword)) && (i+j < to); j++) {
- b = (i >> (j*8)) & 0xff;
- if (*(volatile byte*)(i+j) != b) {
- *failed_address = i+j;
- send_string("### Memory test 2 failed at ");
- send_hex(*failed_address, NL);
- return FALSE;
- }
- }
- }
-
- return TRUE;
-}
-
-void
-memory_dump(udword *from, udword *to)
-{
- udword *i = from;
- int j;
-
- for (; i <= to; i += 4) {
- send_hex((udword)i, NO_NL);
- send_string(" :");
- for(j = 0; j != 4 && (i+j <= to); j++) {
- send_string(" ");
- send_hex(*(udword*)(i+j), NO_NL);
- }
- send_string("\r\n");
- }
-}
+++ /dev/null
-/*****************************************************************************
-*!
-*! FILE NAME : common_init.c
-*!
-*! DESCRIPTION: This piece of code is loaded at bootstrap and is put in the
-*! cache at 0x380000F0. Depending of how R_BUS_STATUS<2:1> is
-*! set different kinds of bootstrap is performed.
-*!
-*! 00 - Normal boot. No bootstrap is performed and this code
-*! is never loaded.
-*! 01 - Serial boot. 784 bytes is loaded and execution starts
-*! at 0x380000F0.
-*! 11 - Parallel boot. 784 bytes is loaded and execution starts
-*! at 0x380000F0.
-*! 10 - Network boot. 1484 bytes is loaded and execution start
-*! at 0x380000F4.
-*!
-*! ---------------------------------------------------------------------------
-*! HISTORY
-*!
-*! DATE NAME CHANGES
-*! ---- ---- -------
-*! 980326 Ronny Ranerup Initial version
-*! Sep 20 1999 Jonas Dellenvall Added port3 debug support
-*! 20020206 ronny Yeah, and I removed it again...
-*!
-*! ---------------------------------------------------------------------------
-*! (C) Copyright 1998-2002, Axis Communications AB, LUND, SWEDEN
-*!***************************************************************************/
-
-/*
-
- Misc notes:
-
- It is very important to keep this file short. This and the boot
- interface specific parts must fit into the first boot packet.
-
-*/
-
-/****************** INCLUDE FILES SECTION ***********************************/
-
-#include "hwregs.h"
-#include "e100boot.h"
-
-/****************** CONSTANT AND MACRO SECTION ******************************/
-
-/****************** TYPE DEFINITION SECTION *********************************/
-
-/****************** LOCAL FUNCTION DECLARATION SECTION **********************/
-
-static int timeout(void);
-
-/****************** GLOBAL VARIABLE DECLARATION SECTION *********************/
-
-udword nbr_read; /* How many bytes has been read from current file */
-byte interface; /* Which I/O interface is the current one */
-byte set_dest; /* Have we set the destination address in tx_header */
-udword last_timeout;
-
-struct packet_header_T tx_header;
-dma_descr_T tx_descr; /* For packet header */
-dma_descr_T tx_descr2; /* packet data */
-
-struct packet_header_T rx_header;
-dma_descr_T rx_descr; /* For packet header */
-dma_descr_T rx_descr2; /* packet data */
-
-udword seq; /* Sequence number of next wanted packet */
-byte serial_up;
-
-/****************** LOCAL VARIABLE DECLARATION SECTION **********************/
-
-/****************** FUNCTION DEFINITION SECTION *****************************/
-
-void
-crt1(void)
-{
- /* Do this only once so we don't reset the timers and destroy the 32
- bit timer-register used as random number generator */
-
- REG_SET__R_TIMER_CTRL(
- timerdiv1, 0,
- timerdiv0, 0,
- presc_timer1, normal,
- i1, clr,
- tm1, run,
- clksel1, cascade0,
- presc_ext, prescale,
- i0, clr,
- tm0, run,
- clksel0, c9600Hz);
-
- REG_SET__R_TIMER_CTRL(
- timerdiv1, 0,
- timerdiv0, 0,
- presc_timer1, normal,
- i1, nop,
- tm1, run,
- clksel1, cascade0,
- presc_ext, prescale,
- i0, nop,
- tm0, run,
- clksel0, c9600Hz);
-
- start();
-}
-
-void
-start(void)
-{
-#if USE_LEDS
- REG_SET__R_PORT_PA_DIR(
- dir7, output,
- dir6, output,
- dir5, output,
- dir4, output,
- dir3, output,
- dir2, output,
- dir1, output,
- dir0, input); /* not for prodtest */
-
- REG_SET__R_PORT_PA_DATA(data_out, 0);
-
- REG_SET__R_PORT_PB_DIR(
- dir7, output,
- dir6, output,
- dir5, output,
- dir4, output,
- dir3, output,
- dir2, output,
- dir1, output,
- dir0, output);
-
- REG_SET__R_PORT_PB_DATA(data_out, 0xff);
-#endif
-
- /* We must initialize all (global) variables here, since the .data
- and .bss area are used before they are loaded. */
-
- //serial_up = FALSE;
- nbr_read = 0;
-
- /* Get a random value to use as id. */
- tx_header.id = htonl(REG_RD(R_TIMER_DATA));
-
- /* timer01 is used as timer. */
- last_timeout = REG_GET(R_TIMER01_DATA, count);
-
- interface = REG_GET(R_BUS_STATUS, boot) - 1; /* 0,1,2 */
- rx_descr2.status = 0;
-
- /* Initialize the boot interface */
- init_interface();
- send_ack(); /* Ack the first bootpacket, i.e. this code. seq 0. */
-
- while (1) {
- if (read_data()) {
- if (nbr_read >= (udword)bytes_to_read) {
- break;
- }
- else if (interface == NETWORK) {
- REG_SET(R_DMA_CH1_CMD, cmd, start);
- }
- }
- }
-
-#if USE_LEDS
- REG_SET(R_PORT_PA_DATA, data_out, 0x55);
-#endif
-
- level2_boot();
-}
-
-int
-read_data(void)
-{
- if (handle_read()) {
- return TRUE;
- }
-
- if (timeout()) {
- send_ack();
- }
-
- return FALSE;
-}
-
-int
-timeout(void)
-{
- volatile int now = REG_GET(R_TIMER01_DATA, count);
- int elapsed;
- int wait_time = 9600;
-
- elapsed = last_timeout - now;
-
- if (elapsed < 0) {
- elapsed = -elapsed;
- }
-
- if (elapsed > wait_time) {
- last_timeout = now;
- return TRUE;
- }
-
- return FALSE;
-}
-
-/****************** END OF FILE common_init.c *******************************/
+++ /dev/null
-#ifndef _COMPILER_H
-#define _COMPILER_H
-
-typedef int dword;
-typedef unsigned int udword;
-typedef signed short word;
-typedef unsigned short uword;
-typedef unsigned char byte;
-
-#endif
+++ /dev/null
- .global crt0 ; Needed because of a bug in binutils
- .global _target_address
- .global _bytes_to_read
-
- .section .startup, "ax"
-
- nop
- nop
-
-
-crt0:
- move.d 0x38001f00, sp
- jump _crt1
-
-_bytes_to_read: .dword 0x12345678
-_target_address: .dword 0x87654321
-
+++ /dev/null
-/* $Id: e100boot.h,v 1.9 2003/12/16 09:04:07 magnusmn Exp $ */
-
-#include "compiler.h"
-
-#define DMA_DESCR__out_priority__BITNR 5
-#define DMA_DESCR__out_priority__WIDTH 1
-#define DMA_DESCR__out_priority__normal 0
-#define DMA_DESCR__out_priority__high 1
-
-#define DMA_DESCR__ecp_cmd__BITNR 4
-#define DMA_DESCR__ecp_cmd__WIDTH 1
-#define DMA_DESCR__ecp_cmd__normal 0
-#define DMA_DESCR__ecp_cmd__high 1
-
-#define DMA_DESCR__tx_err__BITNR 4
-#define DMA_DESCR__tx_err__WIDTH 1
-#define DMA_DESCR__tx_err__enable 1
-#define DMA_DESCR__tx_err__disable 0
-
-#define DMA_DESCR__intr__BITNR 3
-#define DMA_DESCR__intr__WIDTH 1
-#define DMA_DESCR__intr__enable 1
-#define DMA_DESCR__intr__disable 0
-
-#define DMA_DESCR__wait__BITNR 2
-#define DMA_DESCR__wait__WIDTH 1
-#define DMA_DESCR__wait__enable 1
-#define DMA_DESCR__wait__disable 0
-
-#define DMA_DESCR__eop__BITNR 1
-#define DMA_DESCR__eop__WIDTH 1
-#define DMA_DESCR__eop__enable 1
-#define DMA_DESCR__eop__disable 0
-
-#define DMA_DESCR__eol__BITNR 0
-#define DMA_DESCR__eol__WIDTH 1
-#define DMA_DESCR__eol__enable 1
-#define DMA_DESCR__eol__disable 0
-
-#define DMA_DESCR__sw_len__BITNR 0
-#define DMA_DESCR__sw_len__WIDTH 16
-
-#define DMA_DESCR__next__BITNR 0
-#define DMA_DESCR__next__WIDTH 32
-
-#define DMA_DESCR__buf__BITNR 0
-#define DMA_DESCR__buf__WIDTH 32
-
-#define DMA_DESCR__fifo_len__BITNR 8
-#define DMA_DESCR__fifo_len__WIDTH 7
-
-#define DMA_DESCR__crc_err__BITNR 7
-#define DMA_DESCR__crc_err__WIDTH 1
-#define DMA_DESCR__crc_err__enable 1
-#define DMA_DESCR__crc_err__disable 0
-
-#define DMA_DESCR__align_err__BITNR 6
-#define DMA_DESCR__align_err__WIDTH 1
-#define DMA_DESCR__align_err__enable 1
-#define DMA_DESCR__align_err__disable 0
-
-#define DMA_DESCR__in_priority__BITNR 5
-#define DMA_DESCR__in_priority__WIDTH 1
-#define DMA_DESCR__in_priority__high 1
-#define DMA_DESCR__in_priority__normal 0
-
-#define DMA_DESCR__stop__BITNR 4
-#define DMA_DESCR__stop__WIDTH 1
-
-#define DMA_DESCR__rd_eop__BITNR 1
-#define DMA_DESCR__rd_eop__WIDTH 1
-
-#define DMA_DESCR__hw_len__BITNR 0
-#define DMA_DESCR__hw_len__WIDTH 16
-
-#define SET_ETHER_ADDR(a0_0,a0_1,a0_2,a0_3,a0_4,a0_5,a1_0,a1_1,a1_2,a1_3,a1_4,a1_5) \
- *R_NETWORK_SA_0 = a0_0 | (a0_1 << 8) | (a0_2 << 16) | (a0_3 << 24); \
- *R_NETWORK_SA_1 = a0_4 | (a0_5 << 8) | (a1_0 << 16) | (a1_1 << 24); \
- *R_NETWORK_SA_2 = a1_2 | (a1_3 << 8) | (a1_4 << 16) | (a1_5 << 24);
-
-#define DWORD_ALIGN(x) ((x) & 0xfffffffc)
-
-#define CRC_LEN 4
-
-#define TRUE 1
-#define FALSE 0
-
-#define NL 1
-#define NO_NL 0
-
-#define SERIAL 0
-#define NETWORK 1
-#define PARALLEL 2
-
-#define STRING 0
-#define INT 1
-#define ACK 2
-#define BOOT_PACKET 3
-#define BOOT_CMDS 4
-#define NET_INT 5
-#define NET_INT_NL 6
-
-#define JUMP 1
-#define MEM_TEST 2
-#define PACKET_INFO 3
-#define SET_REGISTER 4
-#define GET_REGISTER 5
-#define MEM_DUMP 6
-#define MEM_CLEAR 7
-#define MEM_VERIFY 8
-#define FLASH 9
-#define PAUSE_LOOP 10
-#define LOOP 11
-#define BAUDRATE 12
-
-#define ERR_FLASH_OK 0
-#define ERR_FLASH_NONE 1
-#define ERR_FLASH_TOO_SMALL 2
-#define ERR_FLASH_VERIFY 3
-#define ERR_FLASH_ERASE 4
-
-#define TIMEOUT_LIMIT ( ((6250 * 1000) / 0xffff) / 2)
-
-#define TX_CTRL_EOP \
-(IO_STATE(DMA_DESCR, intr, disable) |\
- IO_STATE(DMA_DESCR, wait, enable) |\
- IO_STATE(DMA_DESCR, eop, enable) |\
- IO_STATE(DMA_DESCR, eol, enable))
-
-#define TX_CTRL \
- (IO_STATE(DMA_DESCR, intr, disable) |\
- IO_STATE(DMA_DESCR, wait, disable) |\
- IO_STATE(DMA_DESCR, eop, disable) |\
- IO_STATE(DMA_DESCR, eol, disable))
-
-#define LOAD_ADDRESS 0x38001000
-#define SIZEOF_BOOT_LEVEL_1 2048
-
-/* This is where the commands are transfered to. */
-#define IO_BUF_START 0x38001f00
-#define IO_BUF_END 0x380020f0 /* bootcode start + cache size */
-
-/* This should only be used in the cbl, but if we compile the sbl for
- * elinux then __CRIS__ will be defined, and these are already defined
- * in uC-libc. Check that __linux__ is not defined as well!
- */
-
-#if defined(__CRIS__) && !defined(__linux__)
-#define NULL ((void*)0)
-
-static inline udword
-htonl(udword x)
-{
- __asm__ ("swapwb %0" : "=r" (x) : "0" (x));
-
- return(x);
-}
-#ifndef ntohl
-#define ntohl(x) htonl(x)
-#endif
-
-static inline uword
-htons(uword x)
-{
- __asm__ ("swapb %0" : "=r" (x) : "0" (x));
-
- return(x);
-}
-#ifndef ntohs
-#define ntohs(x) htons(x)
-#endif
-#endif
-
-/*#define ntohs(x) \*/
-/*((unsigned short)((((unsigned short)(x) & 0x00ffU) << 8) | \*/
-/* (((unsigned short)(x) & 0xff00U) >> 8)))*/
-/* */
-
-/*#define ntohl(x) \*/
-/*((unsigned long int)((((unsigned long int)(x) & 0x000000ffU) << 24) | \*/
-/* (((unsigned long int)(x) & 0x0000ff00U) << 8) | \*/
-/* (((unsigned long int)(x) & 0x00ff0000U) >> 8) | \*/
-/* (((unsigned long int)(x) & 0xff000000U) >> 24)))*/
-
-struct packet_header_T /* Size = 38 */
-{
- byte dest[6];
- byte src[6];
- uword length;
- udword snap1;
- udword snap2;
- udword tag;
- udword seq;
- udword type;
- udword id;
-} __attribute__ ((packed));
-
-typedef struct dma_descr_T {
- uword sw_len; /* 0-1 */
- uword ctrl; /* 2-3 */
- udword next; /* 4-7 */
- udword buf; /* 8-11 */
- uword hw_len; /* 12-13 */
- uword status; /* 14-15 */
-} dma_descr_T;
-
-typedef struct packet_info_T {
- udword addr;
- udword size;
-} packet_info_T;
-
-typedef struct set_register_T {
- udword addr;
- udword val;
-} set_register_T;
-
-typedef struct get_register_T {
- udword addr;
-} get_register_T;
-
-typedef struct pause_loop_T {
- udword pause;
-} pause_loop_T;
-
-typedef struct mem_verify_T {
- udword addr;
- udword val;
-} mem_verify_T;
-
-typedef struct mem_test_T {
- udword from;
- udword to;
-} mem_test_T;
-
-typedef struct mem_dump_T {
- udword from_addr;
- udword to_addr;
-} mem_dump_T;
-
-typedef struct mem_clear_T {
- udword from_addr;
- udword to_addr;
-} mem_clear_T;
-
-typedef struct flash_T {
- unsigned char *source;
- udword offset;
- udword size;
-} flash_T;
-
-typedef struct jump_T {
- udword addr;
-} jump_T;
-
-typedef struct bne_T {
- udword addr;
- udword target;
-} bne_T;
-
-typedef struct br_T {
- udword baudrate;
-} br_T;
-
-typedef struct command_T {
- udword type;
- union {
- packet_info_T packet_info;
- set_register_T set_register;
- get_register_T get_register;
- pause_loop_T pause_loop;
- mem_verify_T mem_verify;
- mem_test_T mem_test;
- mem_dump_T mem_dump;
- mem_clear_T mem_clear;
- flash_T flash;
- jump_T jump;
- bne_T bne;
- br_T br;
- } args;
-} command_T;
-
-#define NETWORK_HEADER_LENGTH sizeof(struct packet_header_T)
-
-void crt1(void);
-void start(void);
-void level2_boot(void);
-int read_data(void);
-int handle_network_read(void);
-int flash_write(const unsigned char *source, unsigned int offset, unsigned int size);
-
-void init_interface(void);
-int handle_read(void);
-void send_ack(void);
-void send_string(char *str);
-void send_hex(udword v, byte nl);
-
-extern char e100boot_version[];
-
-extern volatile udword bytes_to_read;
-extern volatile udword target_address;
-
-extern udword nbr_read;
-extern byte interface;
-extern byte set_dest;
-extern udword last_timeout;
-extern byte *io_buf_next;
-extern byte *io_buf_cur;
-
-extern struct packet_header_T tx_header;
-extern dma_descr_T tx_descr;
-extern dma_descr_T tx_descr2;
-
-extern struct packet_header_T rx_header;
-extern dma_descr_T rx_descr;
-extern dma_descr_T rx_descr2;
-
-extern uword timeout_limit;
-extern udword seq;
-extern byte serial_up;
-
-enum { /* Available in: */
- d_eol = (1 << 0), /* flags */
- d_eop = (1 << 1), /* flags & status */
- d_wait = (1 << 2), /* flags */
- d_int = (1 << 3), /* flags */
- d_txerr = (1 << 4), /* flags */
- d_stop = (1 << 4), /* status */
- d_ecp = (1 << 4), /* flags & status */
- d_pri = (1 << 5), /* flags & status */
- d_alignerr = (1 << 6), /* status */
- d_crcerr = (1 << 7) /* status */
-};
+++ /dev/null
-/* $Id: flash.c,v 1.39 2004/04/20 07:57:57 jonashg Exp $
- *
- * Stolen from the eLinux kernel and stripped down.
- *
- * HISTORY:
- *
- * $Log: flash.c,v $
- * Revision 1.39 2004/04/20 07:57:57 jonashg
- * Clear flash_status fields to make it possible to flash several images
- * sequentially.
- *
- * Revision 1.38 2003/12/16 09:04:07 magnusmn
- * Removed FLASHFILL command
- *
- * Revision 1.37 2003/12/16 08:49:01 magnusmn
- * Merging change_branch--fast_flash
- *
- * Revision 1.36.2.6 2003/12/15 17:21:27 magnusmn
- * Reset counter when continuing with operations the next sector.
- *
- * Revision 1.36.2.5 2003/12/15 11:35:57 magnusmn
- * Bail out if we try to erase the same sector more that 10 times
- *
- * Revision 1.36.2.4 2003/12/12 12:07:10 magnusmn
- * FIX for ST M29W320DT
- * Some chip need a reset to bring them back to read mode again.
- *
- * Revision 1.36.2.3 2003/11/10 16:38:04 orjanf
- * Unified Erasing/Writing messages
- *
- * Revision 1.36.2.2 2003/11/10 15:52:34 magnusmn
- * More info on a sector basis
- *
- * Revision 1.36.2.1 2003/11/07 16:23:20 magnusmn
- * o Only erase a flash sector if we need to, that is if the source content isn't already is in place.
- * o Don't erase a flash sector that already contain ones.
- * o Don't write ones to a (d)word that already contain ones.
- * o If there are two flashes, switch flash after an erase operation is started on one of them.
- * o Flash fill doesn't work yet.
- * o No timeout implemented, we will continue to erase/program until we succeed.
- * o Interleave not tested.
- *
- * Revision 1.36 2003/10/16 17:08:51 jonashg
- * Bugfix: reversed CFI-tables wasn't handled correctly since regions support was
- * merged.
- *
- * Revision 1.35 2003/10/14 13:43:41 pkj
- * Fixed compiler warnings.
- *
- * Revision 1.34 2003/10/14 10:48:13 magnusmn
- * No need to write ones to a (d)word where there already are ones. This will save time during flash programming.
- *
- * Revision 1.33 2003/10/10 11:46:25 jonashg
- * Merged change_branch--regions_support.
- *
- * Revision 1.32.2.3 2003/10/10 09:38:13 jonashg
- * Corrected calculation of current region and sector before erase.
- *
- * Revision 1.32.2.2 2003/10/09 16:31:26 jonashg
- * Regions support in JEDEC probe.
- *
- * Revision 1.32.2.1 2003/09/19 15:28:22 jonashg
- * Support for unusual region layouts. It only works for CFI compliant chips (yet).
- *
- * Revision 1.32 2002/12/13 15:55:54 jonashg
- * Fix for ST M29W160ET. It seems to need a reset before erase (even though the
- * probe functions did reset it).
- *
- * Revision 1.31 2002/07/01 14:37:25 pkj
- * Merged with the ASIC version of e100boot. Main difference is that
- * information about the executed commands are sent back to e100boot
- * instead of being sent to the debug port. This means there is no
- * longer any need to use different boot loaders for different
- * debug ports.
- *
- * Revision 1.30 2002/06/26 13:28:29 pkj
- * flash_write() can now be used to erase an area (by specifying
- * source as NULL), and to fill an area with the first udword of
- * source by setting do_fill to TRUE).
- *
- * Revision 1.29 2002/06/26 13:19:37 pkj
- * * flash_write() now returns a status code.
- * * timeout is now decremented correctly in flash_write_part() to
- * actually be able to trigger the timeout message.
- * * Fixed all compiler warnings.
- *
- * Revision 1.28 2002/06/20 12:58:18 pkj
- * Changed svinto_boot.h to e100boot.h
- *
- * Revision 1.27 2002/06/19 14:00:29 pkj
- * * Broke out the probing of the flash chips from flash_write()
- * into flash_probe_chips().
- * * flash_probe_chips() is not limited to two chips or that the
- * first chip exists.
- *
- * Revision 1.26 2002/02/21 14:37:52 jonashg
- * Optimized away my sanity. It's back now I think.
- *
- * Revision 1.25 2002/02/21 14:28:24 jonashg
- * Added support for Atmel AT49?V16?T (had to optimize a bit to make room).
- *
- * Revision 1.24 2002/01/31 14:36:14 jonashg
- * * Added support for Atmel AT49[BL]V16[01] (the chip used in the ETRAX MCM).
- * * Replaced concurrent sector erase with sequential (we have found three
- * different chips that cannot erase multiple sectors at the same time,
- * one of the is the chip in the MCM). I haven't noticed any performance
- * loss on chips (CFI and non-CFI) that can erase all sectors at the same
- * time either (maybe they don't really erase them at the same time in
- * hardware).
- * * Added check for manufacturer id as well as device id (should have been
- * done a long time ago).
- *
- * Revision 1.23 2001/11/21 15:52:44 jonashg
- * Almost readable.
- *
- * Revision 1.22 2001/11/21 15:24:38 jonashg
- * Increased readability and decreased size some 40bytes.
- *
- * Revision 1.21 2001/11/20 13:40:12 starvik
- * Corrected handling for CFI capable bottom boot flashes
- * Shorted some strings to make more space available
- *
- * Revision 1.20 2001/08/08 17:51:28 pkj
- * Made it possible to flash at a start offset other than zero when
- * there are more than one physical flash chip available. Previously
- * it always started flashing from the start of the first flash if
- * there were more than one, even though the start offset was set to
- * something else...
- *
- * Revision 1.19 2001/06/19 14:51:17 jonashg
- * Added support for non-CFI flash Toshiba TC58FVT800.
- *
- * Revision 1.18 2001/04/05 06:32:39 starvik
- * Works with flashes with multiple banks
- *
- * Revision 1.17 2001/03/06 15:21:16 jonashg
- * More output to user.
- *
- * Revision 1.16 2001/03/06 14:11:16 jonashg
- * * Switch to second device correctly when flashing images that extend past the
- * first device.
- * * Only enter autoselect mode once saves a few bytes (not needed before reading
- * device id, since it was done before reading manufacturer id).
- * * A few unnecessary resets removed to save another few bytes.
- *
- * Revision 1.15 2001/02/28 14:52:43 jonashg
- * * Reverted to old sector erase sequence (that was correct).
- * * A bit of executable size optimization (a few hundred bytes).
- * * Cleanup.
- *
- * Revision 1.14 2001/02/27 14:18:59 jonashg
- * * Write full erase command sequence to all sectors that should be erased.
- * * Write 16bit erase command to non-interleaved chips.
- *
- * Revision 1.13 2001/02/23 11:03:41 jonashg
- * Added support for 2 x 16Mb flashes (32-bits buswidth).
- * The CFI probe does not detect two parallel flash devices, but the normal
- * probe does (it should be easy to add that in the CFI-probe, but I didn't
- * have any hardware to try it on and the size of the executable is getting
- * pretty close to the size of the ETRAX cache).
- *
- * Revision 1.12 2001/02/12 13:59:00 jonashg
- * Bugfix: pointer arithmetics made bootsector calculation go wrong.
- *
- * Revision 1.11 2000/11/10 08:02:23 starvik
- * Added CFI support
- *
- * Revision 1.10 2000/10/26 13:47:32 johana
- * Added support for Fujitsu flash 16MBit (2MByte) MBM29LV160BE and MBM29LV160TE.
- * NOT VERIFIED YET!
- *
- * Revision 1.9 2000/06/28 13:02:50 bjornw
- * * Added support for SST39LF800 and SST39LF160 flashes
- * * Fixed some indentation issues
- *
- * Revision 1.8 2000/06/13 11:51:11 starvik
- * Support for two flashes. Second flash is erased and programmed if program
- * is larger than first flash.
- *
- * Revision 1.7 2000/04/13 16:06:15 macce
- * See if flash is empty before erasing it. Might save some production time.
- *
- * Revision 1.6 2000/01/27 17:52:07 bjornw
- * * Added Toshiba flashes
- * * Added proper bootblock erase for the different flashes
- * (this caused the verify errors when trying to do ./flashitall before)
- *
- * Revision 1.5 2000/01/20 11:41:28 finn
- * Improved the verify error printouts in flash_write.
- *
- * Revision 1.4 1999/12/21 19:32:53 bjornw
- * Dont choke on full chip erases even though we dont implement it efficiently.
- *
- * Revision 1.3 1999/11/12 01:30:04 bjornw
- * Added wait for busy to be ready. Removed some warnings.
- *
- * Revision 1.2 1999/10/27 07:42:42 johana
- * Added support for ST M29W800T flash used in 5600
- *
- * Revision 1.1 1999/10/27 01:37:12 bjornw
- * Wrote routines to erase and flash data into a flash ROM.
- *
- */
-
-#include "e100boot.h"
-
-//#define DEBUG
-
-#ifdef DEBUG
-#define FDEBUG(x) x
-#else
-#define FDEBUG(x)
-#endif
-
-/* Try turning of some of these if you run into space problems. */
-#define CFI_PROBE
-#define JEDEC_PROBE
-#define INTERLEAVE
-
-#define TYPE_X16 (16 / 8)
-
-#define nop() __asm__("nop")
-
-#define safe_printk send_string
-
-static char *message_bottom_boot_8 = "8Mb BB";
-static char *message_top_boot_8 = "8Mb TB";
-static char *message_bottom_boot_16 = "16Mb BB";
-static char *message_top_boot_16 = "16Mb TB";
-static char *message_top_boot_32 = "32Mb TB";
-
-enum {
- /* Addresses */
- ADDR_UNLOCK_1 = 0x0555,
- ADDR_UNLOCK_2 = 0x02AA,
- ADDR_MANUFACTURER = 0x0000,
- ADDR_DEVICE_ID = 0x0001,
- ADDR_CFI_QUERY = 0x0055,
-
- /* Commands */
- CMD_UNLOCK_DATA_1 = 0x00AA,
- CMD_UNLOCK_DATA_2 = 0x0055,
- CMD_MANUFACTURER_UNLOCK_DATA = 0x0090,
- CMD_PROGRAM_UNLOCK_DATA = 0x00A0,
- CMD_RESET_DATA = 0x00F0,
- CMD_SECTOR_ERASE_UNLOCK_DATA_1 = 0x0080,
- CMD_SECTOR_ERASE_UNLOCK_DATA_2 = 0x0030,
- CMD_CFI_QUERY_DATA = 0x0098,
-
- /* Offsets */
- OFFSET_CFI_ID = 0x10,
- OFFSET_CFI_SIZE = 0x27,
- OFFSET_CFI_BLOCK_COUNT = 0x2C,
- OFFSET_CFI_BLOCK = 0x2D,
-
- /* Manufacturers */
- MANUFACTURER_AMD = 0x01,
- MANUFACTURER_ATMEL = 0x1F,
- MANUFACTURER_FUJITSU = 0x04,
- MANUFACTURER_SST = 0xBF,
- MANUFACTURER_ST = 0x20,
- MANUFACTURER_TOSHIBA = 0x98,
-
-
- /* To save precious space we store mfr and dev id together */
-
- /* AMD devices */
- AM29F800BB = 0x00012258,
- AM29F800BT = 0x000122D6,
- AM29LV800BB = 0x0001225B,
- AM29LV800BT = 0x000122DA,
- AM29LV160BT = 0x000122C4,
-
- /* Atmel devices */
- AT49xV16x = 0x001F00C0,
- AT49xV16xT = 0x001F00C2,
- AT49BV32xAT = 0x001F00C9,
-
- /* Fujitsu devices */
- MBM29LV160TE = 0x000422C4,
- MBM29LV160BE = 0x00042249,
-
- /* SST devices */
- SST39LF800 = 0x00BF2781,
- SST39LF160 = 0x00BF2782,
-
- /* ST devices */
- M29W800T = 0x002000D7, /* Used in 5600, similar
- * to AM29LV800, but no
- * unlock bypass
- */
- /* Toshiba devices */
- TC58FVT160 = 0x009800C2,
- TC58FVB160 = 0x00980043,
- TC58FVT800 = 0x0098004F,
-
- /* Toggle bit mask */
- D6_MASK = 0x40
-};
-
-struct region {
- unsigned long offset;
- unsigned int sector_size;
- unsigned int numsectors;
-};
-
-#define MAXREGIONS 8
-
-struct chip {
- volatile unsigned char *base;
-#ifdef INTERLEAVE
- byte interleave;
- byte buswidth;
-#endif
- unsigned int size;
- unsigned short numregions;
- struct region regions[MAXREGIONS];
-};
-
-/* Allocate flash structures and initialize base. */
-static struct chip chips[2] = {
- { (unsigned char *)0x80000000,
-#ifdef INTERLEAVE
- 0, 0,
-#endif
- 0, 0, { } },
- { (unsigned char *)0x84000000,
-#ifdef INTERLEAVE
- 0, 0,
-#endif
- 0, 0, { } }
-};
-
-
-
-static unsigned int
-wide_read(struct chip *flash, unsigned long offset)
-{
-#ifdef INTERLEAVE
- switch (flash->buswidth) {
- case 2:
-#endif
- return *((uword *)(flash->base + offset));
-
-#ifdef INTERLEAVE
- case 4:
- return *((udword *)(flash->base + offset));
- }
-
- return 0;
-#endif
-}
-
-static int
-wide_write_chunk(struct chip *flash, unsigned long offset, const void *chunk)
-{
-#ifdef INTERLEAVE
- switch (flash->buswidth) {
- case 2:
-#endif
- *((uword *)(flash->base + offset)) = *((uword *)chunk);
- return 2;
-
-#ifdef INTERLEAVE
- case 4:
- *((udword *)(flash->base + offset)) = *((udword *)chunk);
- return 4;
- }
-
- return 0;
-#endif
-}
-
-static void
-wide_cmd(struct chip *flash, udword cmd, unsigned long offset)
-{
-#ifdef INTERLEAVE
- if (flash->interleave == 1) {
-#endif
- offset <<= 1;
-#ifdef INTERLEAVE
- } else if (flash->interleave == 2) {
- cmd |= (cmd << 16);
- offset <<= 2;
- } else {
- safe_printk("Unsupported interleave!\n");
- return;
- }
-#endif
-
- wide_write_chunk(flash, offset, &cmd);
-}
-
-static void
-flash_unlock(struct chip *flash)
-{
- wide_cmd(flash, CMD_UNLOCK_DATA_1, ADDR_UNLOCK_1);
- wide_cmd(flash, CMD_UNLOCK_DATA_2, ADDR_UNLOCK_2);
-}
-
-static int
-flash_is_busy(struct chip *flash, unsigned long offset)
-{
-#ifdef INTERLEAVE
- if (flash->interleave == 2) {
- udword read1, read2;
-
- read1 = wide_read(flash, offset);
- read2 = wide_read(flash, offset);
- return (((read1 >> 16) & D6_MASK) !=
- ((read2 >> 16) & D6_MASK)) ||
- (((read1 & 0xffff) & D6_MASK) !=
- ((read2 & 0xffff) & D6_MASK));
- }
-#endif
-
- return ((wide_read(flash, offset) & D6_MASK) !=
- (wide_read(flash, offset) & D6_MASK));
-}
-
-
-
-#ifdef CFI_PROBE
-static int
-try_cfi(struct chip *flash)
-{
- int offset_shift = 1;
-
-#ifdef INTERLEAVE
- if (flash->interleave == 2) {
- offset_shift = 2;
- }
-#endif
-
- /* Enter CFI mode */
- wide_cmd(flash, CMD_CFI_QUERY_DATA, ADDR_CFI_QUERY);
-
- /* Check if flash responds correctly */
- if ((byte)wide_read(flash, (OFFSET_CFI_ID+0) << offset_shift) == 'Q' &&
- (byte)wide_read(flash, (OFFSET_CFI_ID+1) << offset_shift) == 'R' &&
- (byte)wide_read(flash, (OFFSET_CFI_ID+2) << offset_shift) == 'Y') {
- int block; /* Current block */
- int block_count; /* Number of blocks */
- unsigned int offset = 0; /* Offset into flash */
- int reverse = 0; /* Reverse block table */
- int primary; /* Offset to vendor specific table */
-
- safe_printk("Found 1 x CFI at ");
- send_hex((udword)flash->base, NL);
-
- flash->size =
- 1 << wide_read(flash, OFFSET_CFI_SIZE << offset_shift);
-
- /* CFI stores flash organization in blocks. Each block contains
- * a number of sectors with the same size
- */
- block_count = wide_read(flash, OFFSET_CFI_BLOCK_COUNT <<
- offset_shift);
-
- /* Check if table is reversed */
- primary = wide_read(flash, (OFFSET_CFI_ID+5) << offset_shift);
- /* For CFI version 1.0 we don't know. Assume that id & 0x80 */
- /* indicates top boot */
- if ((byte)wide_read(flash, (primary+4) << offset_shift) == 0x30)
- {
- /* read device id */
- wide_cmd(flash, CMD_RESET_DATA, ADDR_UNLOCK_1);
- flash_unlock(flash);
- wide_cmd(flash, CMD_MANUFACTURER_UNLOCK_DATA,
- ADDR_UNLOCK_1);
- reverse = wide_read(flash, ADDR_DEVICE_ID * TYPE_X16
-#ifdef INTERLEAVE
- * flash->interleave
-#endif
- ) & 0x80;
- wide_cmd(flash, CMD_CFI_QUERY_DATA, ADDR_CFI_QUERY);
- } else {
- reverse = ((byte)wide_read(flash,
- (primary+15) << offset_shift) == 3);
- }
-
- flash->numregions = block_count;
- if (block_count > MAXREGIONS) {
- safe_printk("Too many regions on chip!\n");
- return 0;
- }
-
- /* Blocks are stored backwards compared to flash organization */
- for (block = reverse ? block_count - 1 : 0;
- reverse ? block >= 0 : block < block_count;
- reverse ? block-- : block++) {
- int region;
-
- /* Size of each sector in block. Size is stored as
- * sector_size / 256.
- */
- int sector_size =
- (wide_read(flash, (OFFSET_CFI_BLOCK+block * 4+2) <<
- offset_shift)
- |
- (wide_read(flash, (OFFSET_CFI_BLOCK+block * 4+3) <<
- offset_shift) << 8)
- ) << 8;
-
- /* Number of sectors */
- int sector_count =
- (wide_read(flash, (OFFSET_CFI_BLOCK+block * 4+0) <<
- offset_shift)
- |
- (wide_read(flash, (OFFSET_CFI_BLOCK+block * 4+1) <<
- offset_shift) << 8)
- ) + 1;
-
- region = reverse? block_count - 1 - block : block;
- flash->regions[region].offset = offset;
- flash->regions[region].sector_size = sector_size;
- flash->regions[region].numsectors = sector_count;
-
- /* Can't use multiplication (we have no lib). */
- {
- int temp;
- for (temp = 0 ; temp < sector_count ; temp++) {
- offset += sector_size;
- }
- }
-
-FDEBUG(
- if (reverse) {
- safe_printk("NOTE! reversed table:\n");
- }
- safe_printk("region: ");
- send_hex((udword)region, NL);
- safe_printk(" offset: ");
- send_hex((udword)flash->regions[region].offset, NL);
- safe_printk(" sector_size: ");
- send_hex((udword)flash->regions[region].sector_size, NL);
- safe_printk(" numsectors: ");
- send_hex((udword)flash->regions[region].numsectors, NL);
-)
-
- /* Some flashes (SST) store information about alternate
- * block sizes. Ignore those by breaking when the sum
- * of the sector sizes == flash size.
- */
- if (offset == flash->size) {
- break;
- }
- }
-
- /* reset */
- wide_cmd(flash, CMD_RESET_DATA, ADDR_UNLOCK_1);
-
- return 1;
- }
-
- /* reset */
- wide_cmd(flash, CMD_RESET_DATA, ADDR_UNLOCK_1);
-
- return 0;
-}
-#endif
-
-
-
-static int
-flash_probe(struct chip *flash)
-{
- char *message;
- udword dev_id;
- udword mfr_id;
- udword id;
-
- if (flash->size
-#ifdef CFI_PROBE
- || try_cfi(flash)
-#endif
- ) {
- return 1;
- }
-
-#ifdef JEDEC_PROBE
- /* Read manufacturer ID. */
- flash_unlock(flash);
- wide_cmd(flash, CMD_MANUFACTURER_UNLOCK_DATA, ADDR_UNLOCK_1);
- mfr_id = wide_read(flash, ADDR_MANUFACTURER * TYPE_X16
-#ifdef INTERLEAVE
- * flash->interleave
-#endif
- );
- /* Read device ID. */
- dev_id = wide_read(flash, ADDR_DEVICE_ID * TYPE_X16
-#ifdef INTERLEAVE
- * flash->interleave
-#endif
- );
-FDEBUG(
- safe_printk("mfr_id: ");
- send_hex(mfr_id, NL);
- safe_printk("dev_id: ");
- send_hex(dev_id, NL);
-)
-
-#ifdef INTERLEAVE
- if ((flash->interleave == 2) &&
- ((mfr_id >> 16) == (mfr_id & 0xffff)) &&
- ((dev_id >> 16) == (dev_id & 0xffff))) {
- mfr_id &= 0xffff;
- dev_id &= 0xffff;
- }
-#endif
-
- id = (mfr_id << 16) | dev_id;
-
- /* reset */
- wide_cmd(flash, CMD_RESET_DATA, ADDR_UNLOCK_1);
-
- /* Check device type and fill in correct sizes. */
- switch (id) {
- case AM29LV160BT:
- case TC58FVT160:
- // case MBM29LV160TE: /* This is same id as AM29LV160BT */
- message = message_top_boot_16;
-
- flash->size = 0x00200000;
-
- flash->regions[0].offset = 0x00000000;
- flash->regions[0].sector_size = 0x10000;
- flash->regions[0].numsectors = 31;
-
- flash->regions[1].offset = 0x001F0000;
- flash->regions[1].sector_size = 0x08000;
- flash->regions[1].numsectors = 1;
-
- flash->regions[2].offset = 0x001F8000;
- flash->regions[2].sector_size = 0x02000;
- flash->regions[2].numsectors = 2;
-
- flash->regions[3].offset = 0x001FC000;
- flash->regions[3].sector_size = 0x04000;
- flash->regions[3].numsectors = 1;
- break;
-
- // case AM29LV160BB:
- case TC58FVB160:
- case MBM29LV160BE:
- message = message_bottom_boot_16;
-
- flash->size = 0x00200000;
-
- flash->regions[0].offset = 0x00000000;
- flash->regions[0].sector_size = 0x04000;
- flash->regions[0].numsectors = 1;
-
- flash->regions[1].offset = 0x00004000;
- flash->regions[1].sector_size = 0x02000;
- flash->regions[1].numsectors = 2;
-
- flash->regions[2].offset = 0x00008000;
- flash->regions[2].sector_size = 0x08000;
- flash->regions[2].numsectors = 1;
-
- flash->regions[3].offset = 0x00010000;
- flash->regions[3].sector_size = 0x10000;
- flash->regions[3].numsectors = 31;
- break;
-
- case AM29LV800BB:
- case AM29F800BB:
- message = message_bottom_boot_8;
-
- flash->size = 0x00100000;
-
- flash->regions[0].offset = 0x00000000;
- flash->regions[0].sector_size = 0x04000;
- flash->regions[0].numsectors = 1;
-
- flash->regions[1].offset = 0x00004000;
- flash->regions[1].sector_size = 0x02000;
- flash->regions[1].numsectors = 2;
-
- flash->regions[2].offset = 0x00008000;
- flash->regions[2].sector_size = 0x08000;
- flash->regions[2].numsectors = 1;
-
- flash->regions[3].offset = 0x00010000;
- flash->regions[3].sector_size = 0x10000;
- flash->regions[3].numsectors = 15;
- break;
-
- case M29W800T:
- case AM29LV800BT:
- case AM29F800BT:
- case TC58FVT800:
- message = message_top_boot_8;
-
- flash->size = 0x00100000;
-
- flash->regions[0].offset = 0x00000000;
- flash->regions[0].sector_size = 0x10000;
- flash->regions[0].numsectors = 15;
-
- flash->regions[1].offset = 0x000F0000;
- flash->regions[1].sector_size = 0x08000;
- flash->regions[1].numsectors = 1;
-
- flash->regions[2].offset = 0x000F8000;
- flash->regions[2].sector_size = 0x02000;
- flash->regions[2].numsectors = 2;
-
- flash->regions[3].offset = 0x000FC000;
- flash->regions[3].sector_size = 0x04000;
- flash->regions[3].numsectors = 1;
-
- break;
-
- case AT49xV16x:
- message = message_bottom_boot_16;
-
- flash->size = 0x00200000;
-
- flash->regions[0].offset = 0x00000000;
- flash->regions[0].sector_size = 0x02000;
- flash->regions[0].numsectors = 8;
-
- flash->regions[1].offset = 0x00010000;
- flash->regions[1].sector_size = 0x10000;
- flash->regions[1].numsectors = 31;
-
- break;
-
- case AT49xV16xT:
- message = message_top_boot_16;
-
- flash->size = 0x00200000;
-
- flash->regions[0].offset = 0x00000000;
- flash->regions[0].sector_size = 0x10000;
- flash->regions[0].numsectors = 31;
-
- flash->regions[1].offset = 0x001F0000;
- flash->regions[1].sector_size = 0x02000;
- flash->regions[1].numsectors = 8;
-
- break;
-
- case AT49BV32xAT:
- message = message_top_boot_32;
-
- flash->size = 0x00400000;
-
- flash->regions[0].offset = 0x00000000;
- flash->regions[0].sector_size = 0x10000;
- flash->regions[0].numsectors = 63;
-
- flash->regions[1].offset = 0x001F0000;
- flash->regions[1].sector_size = 0x02000;
- flash->regions[1].numsectors = 8;
-
- break;
-
- default:
-#endif
-#ifdef INTERLEAVE
- if (flash->interleave == 1) {
-#endif
- safe_printk("No single x16 at ");
-#ifdef INTERLEAVE
- } else {
- safe_printk("No interleaved x16 at ");
- }
-#endif
- send_hex((udword)flash->base, NL);
-
- return 0;
-#ifdef JEDEC_PROBE
- }
-
- safe_printk("Found ");
-#ifdef INTERLEAVE
- if (flash->interleave == 1) {
-#endif
- safe_printk("1");
-#ifdef INTERLEAVE
- }
- if (flash->interleave == 2) {
- int count = 0;
-
- flash->size <<= 1;
- while (count < MAXREGIONS) {
- flash->regions[count].offset <<= 1;
- flash->regions[count].sector_size <<= 1;
- count++;
- }
- safe_printk("2");
- }
-#endif
- safe_printk(" x ");
- safe_printk(message);
- safe_printk(" at ");
- send_hex((udword)flash->base, NL);
-
- return 1;
-#endif
-}
-
-/* Start erase of a sector but do no wait for completion */
-static void
-start_sector_erase(struct chip *flash, unsigned long offset)
-{
- flash_unlock(flash);
- wide_cmd(flash, CMD_SECTOR_ERASE_UNLOCK_DATA_1, ADDR_UNLOCK_1);
- flash_unlock(flash);
-
-#ifdef INTERLEAVE
- if (flash->interleave == 2) {
- *(udword *)(flash->base+offset) = (CMD_SECTOR_ERASE_UNLOCK_DATA_2 << 16) |
- CMD_SECTOR_ERASE_UNLOCK_DATA_2;
- } else {
-#endif
- *(uword *)(flash->base+offset) = CMD_SECTOR_ERASE_UNLOCK_DATA_2;
-#ifdef INTERLEAVE
- }
-#endif
-}
-
-/* Return the size of the sector at the given offset */
-static int
-find_sector_size(struct chip *flash, unsigned long offset)
-{
- unsigned int i, j;
- int region_size;
- /* Sanity check */
- if (offset >= flash->size)
- return 0;
-
- for(i=0; i < MAXREGIONS; i++)
- if (offset >= flash->regions[i].offset) {
- region_size=0;
- for (j=0; j < flash->regions[i].numsectors; j++)
- region_size += flash->regions[i].sector_size;
- if (offset < flash->regions[i].offset + region_size)
- return flash->regions[i].sector_size;
- }
-
- /* Should not happen */
- return 0;
-}
-
-/* Check and see if we need to erase the sector */
-/* The return values mean */
-/* 0: The source and destination are the same. */
-/* 1: The source and destination are not the same, but flash sector already contains only ones. */
-/* 2: The source and destination are not the same and the flash sector is tainted by some zeroes. */
-static char
-need_to_erase(struct chip *flash, unsigned long offset, const unsigned char *source, int size)
-{
- int i;
- unsigned long j;
-
- for (i = 0; i < size; i+=2)
- if (*(uword*)(flash->base + i + offset) != *(uword*)(source + i)) {
- /* Check if the sector only contain zeroes */
- for (j = offset; j < (size + offset); j+=2) {
- if (*(uword*)(flash->base + j) != 0xffff)
- return 2;
- }
- return 1;
- }
-
- /* The source is equal to the destination */
- return 0;
-}
-
-static unsigned int
-flash_probe_chips(void)
-{
- unsigned int tot_size = 0;
- unsigned int i = 0;
-
- for (; i < sizeof chips/sizeof *chips; i++) {
-#ifdef INTERLEAVE
- byte interleave;
-
- for (interleave = 1; interleave < 4; interleave *= 2) {
- chips[i].interleave = interleave;
- if (interleave == 1) {
- chips[i].buswidth = sizeof(uword);
- } else {
- chips[i].buswidth = sizeof(udword);
- }
-
- if (flash_probe(&chips[i])) {
- break;
- }
- }
-#else
- flash_probe(&chips[i]);
-#endif
-
- tot_size += chips[i].size;
- }
-
- return tot_size;
-}
-
-/* Program a sector (given by size) at the given offset. Do not write only ones. */
-static void
-program_sector(struct chip *flash, unsigned long offset, const unsigned char *source, int size)
-{
- int chunk_size = 0;
- int bytes_written = 0;
-
-
- while (bytes_written < size) {
- if (
-#ifdef INTERLEAVE
- (flash->buswidth == 2) &&
-#endif
- *(uword*)(source + bytes_written) == 0xffff) {
- chunk_size=2;
- }
-#ifdef INTERLEAVE
- else if ((flash->buswidth == 4) && *(udword*)(source + bytes_written) == 0xffffffff) {
- chunk_size=4;
- }
-#endif
- else {
- flash_unlock(flash);
- wide_cmd(flash, CMD_PROGRAM_UNLOCK_DATA, ADDR_UNLOCK_1);
- chunk_size = wide_write_chunk(flash, offset + bytes_written, source + bytes_written);
- while(flash_is_busy(flash, offset + bytes_written))
- /* Nothing */
- ;
- }
-
- bytes_written += chunk_size;
- }
-}
-
-int
-flash_write(const unsigned char *source, unsigned int offset, unsigned int size)
-{
- struct flash_status {
- unsigned char busy; /* Indicates if the flash is busy */
- const unsigned char *src; /* From where to get the source info */
- unsigned long offset; /* Start operations in flash at this offset */
- unsigned int size; /* Size to erase/program (if needed) */
- unsigned int bytes_done; /* Bytes written (if needed) */
- unsigned int erase_attempts; /* Keep track how many times we try to erase the same sector */
- };
-
- unsigned int tot_size = flash_probe_chips();
- unsigned int i, j;
- unsigned int current_sector_size;
- unsigned long current_offset;
- const unsigned char *current_src;
- char need_erase;
- struct flash_status *current_flash = NULL;
-
- static struct flash_status flash_status[2] = {
- { 0, NULL, 0, 0, 0, 0 },
- { 0, NULL, 0, 0, 0, 0 }
- };
-
- if (!tot_size) {
- /* No chips found, bail out. */
- return ERR_FLASH_NONE;
- }
-
- if (offset + size > tot_size) {
- safe_printk("Fatal: flash is too small.\n");
- return ERR_FLASH_TOO_SMALL;
- }
-
- /* Initiate the flash_status structs so that we can keep track of what needs to be done
- on the different flash chips */
-
- /* Operations only on flash chip 1 */
- if (offset >= (&chips[0])->size) {
- flash_status[0].size = 0;
- flash_status[1].src = source;
- flash_status[1].offset = offset - (&chips[0])->size;
- flash_status[1].size = size;
- }
- /* Operations on both flash chips */
- else if ((offset < (&chips[0])->size) && ((offset+size) > (&chips[0])->size)) {
- flash_status[0].src = source;
- flash_status[0].offset = offset;
- flash_status[0].size = (&chips[0])->size - offset;
- flash_status[1].src = source + flash_status[0].size;
- flash_status[1].offset = 0;
- flash_status[1].size = size - flash_status[0].size;
- }
- /* Operations only on flash chip 0 */
- else {
- flash_status[0].src = source;
- flash_status[0].offset = offset;
- flash_status[0].size = size;
- flash_status[1].size = 0;
- }
- flash_status[0].busy = 0;
- flash_status[0].bytes_done = 0;
- flash_status[0].erase_attempts = 0;
- flash_status[1].busy = 0;
- flash_status[1].bytes_done = 0;
- flash_status[1].erase_attempts = 0;
-#if 0
- for (i = 0; i < 2; i++) {
- safe_printk("\nFlash ");
- send_hex(i, NL);
- safe_printk("src:\t");
- send_hex((int)flash_status[i].src, NL);
- safe_printk("offset:\t");
- send_hex(flash_status[i].offset, NL);
- safe_printk("size:\t");
- send_hex(flash_status[i].size, NL);
- safe_printk("\n");
- }
-#endif
-
- /* Erase and write */
-
- i = 0; /* Start operations on flash 0 */
-
-#define CHANGE_FLASH
-
- while (((&flash_status[0])->bytes_done + (&flash_status[1])->bytes_done) < size) {
-
- struct flash_status *previous_flash = &flash_status[i ? 0 : 1];
- current_flash = &flash_status[i];
-
-#ifdef CHANGE_FLASH
- /* Change flash only if:
- - There is a flash to change to and operations should be made on that flash *AND*
- - There is more to write to the previous flash *AND*
- - Operations should be made on the current flash *OR*
- - The current flash is busy *OR*
- - All has been written to the current flash */
-
- if (previous_flash->size && (previous_flash->bytes_done < previous_flash->size) &&
- (!current_flash->size || current_flash->busy ||
- current_flash->bytes_done == current_flash->size))
- i = i ? 0 : 1; /* Change flash chip */
-#else
- /* Finish one flash chip before continuing on the next one */
-
- if ((&flash_status[i])->bytes_done == (&flash_status[i])->size)
- i = i ? 0 : 1; /* Change flash chip */
-#endif
- /* Bail out if we have tried to erase the same sector more that 10 times. */
- if(current_flash->erase_attempts > 10) {
- safe_printk("Sector erase error\n");
- return ERR_FLASH_ERASE;
- }
-
- /* Get the current status from the chip we are about to access */
- current_flash = &flash_status[i];
- current_offset = current_flash->offset + current_flash->bytes_done;
- current_src = current_flash->src + current_flash->bytes_done;
- current_sector_size = find_sector_size(&chips[i], current_offset);
-
- /* Make sure that the chip we are about to access has finished erasing */
- if (current_flash->busy) {
- while (flash_is_busy(&chips[i], current_offset))
- /* nothing */
- ;
- current_flash->busy = 0;
- }
-
- /* Some flash chip need a reset to bring them back to read mode again. */
- wide_cmd(&chips[i], CMD_RESET_DATA, ADDR_UNLOCK_1);
-
- /* Find out if we need to erase the sector or not */
- need_erase = need_to_erase(&chips[i], current_offset, current_src, current_sector_size);
-
- if (need_erase == 0) {
- current_flash->bytes_done += current_sector_size;
- current_flash->erase_attempts = 0;
- send_hex((int)(&chips[i])->base + current_offset, 0);
- safe_printk(": No need to write\n");
- continue;
- } else if (need_erase == 1) {
- /* Erased, not worth printing. */
- }
- else if (need_erase == 2) {
- send_hex((int)(&chips[i])->base + current_offset, 0);
- safe_printk(": Erasing ");
- send_hex(current_sector_size, 0);
- safe_printk(" bytes\n");
- start_sector_erase(&chips[i], current_offset);
- current_flash->busy=1;
- current_flash->erase_attempts++;
- continue;
- }
-
- /* The sector is ready to be programmed */
- send_hex((int)(&chips[i])->base + current_offset, 0);
- safe_printk(": Writing ");
- send_hex(current_sector_size, 0);
- safe_printk(" bytes\n");
- program_sector(&chips[i], current_offset, current_src, current_sector_size);
- current_flash->bytes_done += current_sector_size;
- current_flash->erase_attempts = 0;
- }
-
- /* Verify that the flash chip(s) have the correct content */
- for (i = 0; i < 2; i++) {
- current_flash = &flash_status[i];
- if (!current_flash->size)
- continue;
- send_hex((int)(&chips[i])->base, 0);
- safe_printk(": Verifying...");
- for (j = 0; j < current_flash->size; j+=2) {
- if (*(uword*)(current_flash->offset + j + (&chips[i])->base) !=
- *(uword*)(current_flash->src + j)) {
- safe_printk("Error at ");
- send_hex(j, NL);
- return ERR_FLASH_VERIFY;
- }
- }
- safe_printk("OK\n");
- }
-
- return ERR_FLASH_OK;
-}
+++ /dev/null
-/*!**********************************************************************
-*!
-*! FILE NAME: hwregs.c
-*!
-*! DESCRIPTION: Shadow register and initiated flag variables,
-*! and a function for initialization of these variables.
-*!
-*!
-*! FUNCTIONS: void init_shadow__hwregs( void )
-*!
-*! NOTE: This file is automatically generated, do _not_ edit.
-*! Created: Thu Oct 3 01:21:27 2002
-*! By: Id: shadow_gen,v 1.14 2002/10/02 20:31:22 hp Exp
-*! From: /n/asic/projects/etrax_ng/doc/work/etrax_ng_regs.rd 1.168
-*! /n/asic/projects/etrax_ng/include//hwregs.ctrl 1.3
-*!
-*! NOTE: init_shadow__hwregs() initiate all write only registers
-*! described in /n/asic/projects/etrax_ng/doc/work/etrax_ng_regs.rd.
-*! Since one physical register may have several logical names you
-*! must choose which of the logical registers to initiate.
-*! This is done by the 'USE_GROUP__group-name' macro in the
-*! hwregs_def.h file.
-*!
-*! As an example, in Etrax100 the following logical registers are
-*! all the same physical register at address 0xb0000044:
-*!
-*! R_ATA_CONFIG
-*! R_PAR0_CONFIG
-*! R_SCSI0_CTRL
-*! R_SHARED_RAM_ADDR
-*!
-*!----------------------------------------------------------------------
-*! HISTORY
-*!
-*! DATE NAME CHANGES
-*! ---- ---- -------
-*! Apr 01 1998 Jan Bengtsson Initial version
-*!----------------------------------------------------------------------
-*!
-*! (C) Copyright 1998, Axis Communications AB, LUND, SWEDEN
-*!
-*!**********************************************************************/
-/* %Z% %M% %I% %G% */
-
-/********************** INCLUDE FILES SECTION **************************/
-
-#include "compiler.h"
-#include "hwregs.h"
-
-#if REG_DEBUG
-#include <string.h>
-#endif
-
-/********************** CONSTANT AND MACRO SECTION *********************/
-
-/********************** TYPE DEFINITION SECTION ************************/
-
-/********************** LOCAL FUNCTION DECLARATION SECTION *************/
-
-/********************** GLOBAL VARIABLE DECLARATION SECTION ************/
-
-#ifndef REG_NO_SHADOW
-/* Shadows for write only registers. */
-reg_shadow_type__hwregs reg_shadow__hwregs;
-#else
-/* Use constant zero as shadow when there isn't a shadow register. */
-reg_shadow_type__hwregs reg_shadow__hwregs = 0;
-#endif
-
-#if REG_DEBUG
-#ifndef REG_NO_SHADOW
-/* Initiated flags for shadow registers. */
-reg_initiated_type__hwregs reg_initiated__hwregs;
-#else
-/* No need for initiated flags when there isn't a shadow register. */
-reg_initiated_type__hwregs reg_initiated__hwregs = 0;
-#endif
-#endif
-
-/********************** FUNCTION DEFINITION SECTION ********************/
-
-/*#**********************************************************************
-*#
-*# FUNCTION NAME: init_shadow__hwregs
-*#
-*# PARAMETERS : none
-*#
-*# RETURNS : nothing
-*#
-*# SIDE EFFECTS : Writes initial values to all write only registers
-*# and their associated shadow registers. If REG_DEBUG
-*# is non zero the reg_initiated struct is also initiated.
-*#
-*# DESCRIPTION : Initiate write only registers, their shadows, and in
-*# debug mode the initiated flags. Default values for
-*# the initialization are defined in hwregs_def.h.
-*#
-*# Note that one physical register may have several
-*# logical names, and that you have to modify this
-*# function to only initiate the physical register once!
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Apr 01 1998 Jan Bengtsson Initial version
-*#
-*#**********************************************************************/
-
-void init_shadow__hwregs( void )
-{
-#if REG_DEBUG && !defined(REG_NO_SHADOW)
- /* Initiate reg_initiated__hwregs struct to 0xff. */
- memset( ®_initiated__hwregs, 0xff, sizeof(reg_initiated_type__hwregs) );
-#endif
-
-#ifndef REG_NO_INIT_SHADOW
-
-#if USE_GROUP__Serial_port_registers
- REG_SET__R_ALT_SER_BAUDRATE(
- ser3_tr, R_ALT_SER_BAUDRATE__ser3_tr__DEFAULT,
- ser3_rec, R_ALT_SER_BAUDRATE__ser3_rec__DEFAULT,
- ser2_tr, R_ALT_SER_BAUDRATE__ser2_tr__DEFAULT,
- ser2_rec, R_ALT_SER_BAUDRATE__ser2_rec__DEFAULT,
- ser1_tr, R_ALT_SER_BAUDRATE__ser1_tr__DEFAULT,
- ser1_rec, R_ALT_SER_BAUDRATE__ser1_rec__DEFAULT,
- ser0_tr, R_ALT_SER_BAUDRATE__ser0_tr__DEFAULT,
- ser0_rec, R_ALT_SER_BAUDRATE__ser0_rec__DEFAULT
- );
-#endif
-
-#if USE_GROUP__ATA_interface_registers
- REG_SET__R_ATA_CONFIG(
- enable, R_ATA_CONFIG__enable__DEFAULT,
- dma_strobe, R_ATA_CONFIG__dma_strobe__DEFAULT,
- dma_hold, R_ATA_CONFIG__dma_hold__DEFAULT,
- pio_setup, R_ATA_CONFIG__pio_setup__DEFAULT,
- pio_strobe, R_ATA_CONFIG__pio_strobe__DEFAULT,
- pio_hold, R_ATA_CONFIG__pio_hold__DEFAULT
- );
-#endif
-
-#if USE_GROUP__ATA_interface_registers
- REG_SET__R_ATA_CTRL_DATA(
- sel, R_ATA_CTRL_DATA__sel__DEFAULT,
- cs1, R_ATA_CTRL_DATA__cs1__DEFAULT,
- cs0, R_ATA_CTRL_DATA__cs0__DEFAULT,
- addr, R_ATA_CTRL_DATA__addr__DEFAULT,
- rw, R_ATA_CTRL_DATA__rw__DEFAULT,
- src_dst, R_ATA_CTRL_DATA__src_dst__DEFAULT,
- handsh, R_ATA_CTRL_DATA__handsh__DEFAULT,
- multi, R_ATA_CTRL_DATA__multi__DEFAULT,
- dma_size, R_ATA_CTRL_DATA__dma_size__DEFAULT,
- data, R_ATA_CTRL_DATA__data__DEFAULT
- );
-#endif
-
-#if USE_GROUP__Bus_interface_configuration_registers
- REG_SET__R_BUS_CONFIG(
- sram_type, R_BUS_CONFIG__sram_type__DEFAULT,
- dma_burst, R_BUS_CONFIG__dma_burst__DEFAULT,
- pcs4_7_wr, R_BUS_CONFIG__pcs4_7_wr__DEFAULT,
- pcs0_3_wr, R_BUS_CONFIG__pcs0_3_wr__DEFAULT,
- sram_wr, R_BUS_CONFIG__sram_wr__DEFAULT,
- flash_wr, R_BUS_CONFIG__flash_wr__DEFAULT,
- pcs4_7_bw, R_BUS_CONFIG__pcs4_7_bw__DEFAULT,
- pcs0_3_bw, R_BUS_CONFIG__pcs0_3_bw__DEFAULT,
- sram_bw, R_BUS_CONFIG__sram_bw__DEFAULT,
- flash_bw, R_BUS_CONFIG__flash_bw__DEFAULT
- );
-#endif
-
-#if USE_GROUP__Timer_registers
- REG_SET__R_CLOCK_PRESCALE(
- ser_presc, R_CLOCK_PRESCALE__ser_presc__DEFAULT,
- tim_presc, R_CLOCK_PRESCALE__tim_presc__DEFAULT
- );
-#endif
-
-#if USE_GROUP__DMA_registers
- REG_SET__R_DMA_CH0_CLR_INTR(
- clr_eop, R_DMA_CH0_CLR_INTR__clr_eop__DEFAULT,
- clr_descr, R_DMA_CH0_CLR_INTR__clr_descr__DEFAULT
- );
-#endif
-
-#if USE_GROUP__DMA_registers
- REG_SET__R_DMA_CH1_CLR_INTR(
- clr_eop, R_DMA_CH1_CLR_INTR__clr_eop__DEFAULT,
- clr_descr, R_DMA_CH1_CLR_INTR__clr_descr__DEFAULT
- );
-#endif
-
-#if USE_GROUP__DMA_registers
- REG_SET__R_DMA_CH2_CLR_INTR(
- clr_eop, R_DMA_CH2_CLR_INTR__clr_eop__DEFAULT,
- clr_descr, R_DMA_CH2_CLR_INTR__clr_descr__DEFAULT
- );
-#endif
-
-#if USE_GROUP__DMA_registers
- REG_SET__R_DMA_CH3_CLR_INTR(
- clr_eop, R_DMA_CH3_CLR_INTR__clr_eop__DEFAULT,
- clr_descr, R_DMA_CH3_CLR_INTR__clr_descr__DEFAULT
- );
-#endif
-
-#if USE_GROUP__DMA_registers
- REG_SET__R_DMA_CH4_CLR_INTR(
- clr_eop, R_DMA_CH4_CLR_INTR__clr_eop__DEFAULT,
- clr_descr, R_DMA_CH4_CLR_INTR__clr_descr__DEFAULT
- );
-#endif
-
-#if USE_GROUP__DMA_registers
- REG_SET__R_DMA_CH5_CLR_INTR(
- clr_eop, R_DMA_CH5_CLR_INTR__clr_eop__DEFAULT,
- clr_descr, R_DMA_CH5_CLR_INTR__clr_descr__DEFAULT
- );
-#endif
-
-#if USE_GROUP__DMA_registers
- REG_SET__R_DMA_CH6_CLR_INTR(
- clr_eop, R_DMA_CH6_CLR_INTR__clr_eop__DEFAULT,
- clr_descr, R_DMA_CH6_CLR_INTR__clr_descr__DEFAULT
- );
-#endif
-
-#if USE_GROUP__DMA_registers
- REG_SET__R_DMA_CH7_CLR_INTR(
- clr_eop, R_DMA_CH7_CLR_INTR__clr_eop__DEFAULT,
- clr_descr, R_DMA_CH7_CLR_INTR__clr_descr__DEFAULT
- );
-#endif
-
-#if USE_GROUP__DMA_registers
- REG_SET__R_DMA_CH8_CLR_INTR(
- clr_eop, R_DMA_CH8_CLR_INTR__clr_eop__DEFAULT,
- clr_descr, R_DMA_CH8_CLR_INTR__clr_descr__DEFAULT
- );
-#endif
-
-#if USE_GROUP__DMA_registers
- REG_SET__R_DMA_CH8_SUB0_CLR_INTR(
- clr_descr, R_DMA_CH8_SUB0_CLR_INTR__clr_descr__DEFAULT
- );
-#endif
-
-#if USE_GROUP__DMA_registers
- REG_SET__R_DMA_CH8_SUB1_CLR_INTR(
- clr_descr, R_DMA_CH8_SUB1_CLR_INTR__clr_descr__DEFAULT
- );
-#endif
-
-#if USE_GROUP__DMA_registers
- REG_SET__R_DMA_CH8_SUB2_CLR_INTR(
- clr_descr, R_DMA_CH8_SUB2_CLR_INTR__clr_descr__DEFAULT
- );
-#endif
-
-#if USE_GROUP__DMA_registers
- REG_SET__R_DMA_CH8_SUB3_CLR_INTR(
- clr_descr, R_DMA_CH8_SUB3_CLR_INTR__clr_descr__DEFAULT
- );
-#endif
-
-#if USE_GROUP__DMA_registers
- REG_SET__R_DMA_CH9_CLR_INTR(
- clr_eop, R_DMA_CH9_CLR_INTR__clr_eop__DEFAULT,
- clr_descr, R_DMA_CH9_CLR_INTR__clr_descr__DEFAULT
- );
-#endif
-
-#if USE_GROUP__Bus_interface_configuration_registers
- REG_SET__R_DRAM_CONFIG(
- wmm1, R_DRAM_CONFIG__wmm1__DEFAULT,
- wmm0, R_DRAM_CONFIG__wmm0__DEFAULT,
- sh1, R_DRAM_CONFIG__sh1__DEFAULT,
- sh0, R_DRAM_CONFIG__sh0__DEFAULT,
- w, R_DRAM_CONFIG__w__DEFAULT,
- c, R_DRAM_CONFIG__c__DEFAULT,
- e, R_DRAM_CONFIG__e__DEFAULT,
- group_sel, R_DRAM_CONFIG__group_sel__DEFAULT,
- ca1, R_DRAM_CONFIG__ca1__DEFAULT,
- bank23sel, R_DRAM_CONFIG__bank23sel__DEFAULT,
- ca0, R_DRAM_CONFIG__ca0__DEFAULT,
- bank01sel, R_DRAM_CONFIG__bank01sel__DEFAULT
- );
-#endif
-
-#if USE_GROUP__Bus_interface_configuration_registers
- REG_SET__R_DRAM_TIMING(
- sdram, R_DRAM_TIMING__sdram__DEFAULT,
- ref, R_DRAM_TIMING__ref__DEFAULT,
- rp, R_DRAM_TIMING__rp__DEFAULT,
- rs, R_DRAM_TIMING__rs__DEFAULT,
- rh, R_DRAM_TIMING__rh__DEFAULT,
- w, R_DRAM_TIMING__w__DEFAULT,
- c, R_DRAM_TIMING__c__DEFAULT,
- cz, R_DRAM_TIMING__cz__DEFAULT,
- cp, R_DRAM_TIMING__cp__DEFAULT,
- cw, R_DRAM_TIMING__cw__DEFAULT
- );
-#endif
-
-#if USE_GROUP__External_DMA_registers
- REG_SET__R_EXT_DMA_0_ADDR(
- ext0_addr, R_EXT_DMA_0_ADDR__ext0_addr__DEFAULT
- );
-#endif
-
-#if USE_GROUP__External_DMA_registers
- REG_SET__R_EXT_DMA_0_CMD(
- cnt, R_EXT_DMA_0_CMD__cnt__DEFAULT,
- rqpol, R_EXT_DMA_0_CMD__rqpol__DEFAULT,
- apol, R_EXT_DMA_0_CMD__apol__DEFAULT,
- rq_ack, R_EXT_DMA_0_CMD__rq_ack__DEFAULT,
- wid, R_EXT_DMA_0_CMD__wid__DEFAULT,
- dir, R_EXT_DMA_0_CMD__dir__DEFAULT,
- run, R_EXT_DMA_0_CMD__run__DEFAULT,
- trf_count, R_EXT_DMA_0_CMD__trf_count__DEFAULT
- );
-#endif
-
-#if USE_GROUP__External_DMA_registers
- REG_SET__R_EXT_DMA_1_ADDR(
- ext0_addr, R_EXT_DMA_1_ADDR__ext0_addr__DEFAULT
- );
-#endif
-
-#if USE_GROUP__External_DMA_registers
- REG_SET__R_EXT_DMA_1_CMD(
- cnt, R_EXT_DMA_1_CMD__cnt__DEFAULT,
- rqpol, R_EXT_DMA_1_CMD__rqpol__DEFAULT,
- apol, R_EXT_DMA_1_CMD__apol__DEFAULT,
- rq_ack, R_EXT_DMA_1_CMD__rq_ack__DEFAULT,
- wid, R_EXT_DMA_1_CMD__wid__DEFAULT,
- dir, R_EXT_DMA_1_CMD__dir__DEFAULT,
- run, R_EXT_DMA_1_CMD__run__DEFAULT,
- trf_count, R_EXT_DMA_1_CMD__trf_count__DEFAULT
- );
-#endif
-
-#if USE_GROUP__General_config_registers
- REG_SET__R_GEN_CONFIG(
- par_w, R_GEN_CONFIG__par_w__DEFAULT,
- usb2, R_GEN_CONFIG__usb2__DEFAULT,
- usb1, R_GEN_CONFIG__usb1__DEFAULT,
- g24dir, R_GEN_CONFIG__g24dir__DEFAULT,
- g16_23dir, R_GEN_CONFIG__g16_23dir__DEFAULT,
- g8_15dir, R_GEN_CONFIG__g8_15dir__DEFAULT,
- g0dir, R_GEN_CONFIG__g0dir__DEFAULT,
- dma9, R_GEN_CONFIG__dma9__DEFAULT,
- dma8, R_GEN_CONFIG__dma8__DEFAULT,
- dma7, R_GEN_CONFIG__dma7__DEFAULT,
- dma6, R_GEN_CONFIG__dma6__DEFAULT,
- dma5, R_GEN_CONFIG__dma5__DEFAULT,
- dma4, R_GEN_CONFIG__dma4__DEFAULT,
- dma3, R_GEN_CONFIG__dma3__DEFAULT,
- dma2, R_GEN_CONFIG__dma2__DEFAULT,
- mio_w, R_GEN_CONFIG__mio_w__DEFAULT,
- ser3, R_GEN_CONFIG__ser3__DEFAULT,
- par1, R_GEN_CONFIG__par1__DEFAULT,
- scsi0w, R_GEN_CONFIG__scsi0w__DEFAULT,
- scsi1, R_GEN_CONFIG__scsi1__DEFAULT,
- mio, R_GEN_CONFIG__mio__DEFAULT,
- ser2, R_GEN_CONFIG__ser2__DEFAULT,
- par0, R_GEN_CONFIG__par0__DEFAULT,
- ata, R_GEN_CONFIG__ata__DEFAULT,
- scsi0, R_GEN_CONFIG__scsi0__DEFAULT
- );
-#endif
-
-#if USE_GROUP__General_config_registers
- REG_SET__R_GEN_CONFIG_II(
- sermode3, R_GEN_CONFIG_II__sermode3__DEFAULT,
- sermode1, R_GEN_CONFIG_II__sermode1__DEFAULT,
- ext_clk, R_GEN_CONFIG_II__ext_clk__DEFAULT,
- ser3, R_GEN_CONFIG_II__ser3__DEFAULT,
- ser2, R_GEN_CONFIG_II__ser2__DEFAULT
- );
-#endif
-
-#if USE_GROUP__Interrupt_mask_and_status_registers
- REG_SET__R_IRQ_MASK0_CLR(
- nmi_pin, R_IRQ_MASK0_CLR__nmi_pin__DEFAULT,
- watchdog_nmi, R_IRQ_MASK0_CLR__watchdog_nmi__DEFAULT,
- sqe_test_error, R_IRQ_MASK0_CLR__sqe_test_error__DEFAULT,
- carrier_loss, R_IRQ_MASK0_CLR__carrier_loss__DEFAULT,
- deferred, R_IRQ_MASK0_CLR__deferred__DEFAULT,
- late_col, R_IRQ_MASK0_CLR__late_col__DEFAULT,
- multiple_col, R_IRQ_MASK0_CLR__multiple_col__DEFAULT,
- single_col, R_IRQ_MASK0_CLR__single_col__DEFAULT,
- congestion, R_IRQ_MASK0_CLR__congestion__DEFAULT,
- oversize, R_IRQ_MASK0_CLR__oversize__DEFAULT,
- alignment_error, R_IRQ_MASK0_CLR__alignment_error__DEFAULT,
- crc_error, R_IRQ_MASK0_CLR__crc_error__DEFAULT,
- overrun, R_IRQ_MASK0_CLR__overrun__DEFAULT,
- underrun, R_IRQ_MASK0_CLR__underrun__DEFAULT,
- excessive_col, R_IRQ_MASK0_CLR__excessive_col__DEFAULT,
- mdio, R_IRQ_MASK0_CLR__mdio__DEFAULT,
- ata_drq3, R_IRQ_MASK0_CLR__ata_drq3__DEFAULT,
- ata_drq2, R_IRQ_MASK0_CLR__ata_drq2__DEFAULT,
- ata_drq1, R_IRQ_MASK0_CLR__ata_drq1__DEFAULT,
- ata_drq0, R_IRQ_MASK0_CLR__ata_drq0__DEFAULT,
- par0_ecp_cmd, R_IRQ_MASK0_CLR__par0_ecp_cmd__DEFAULT,
- par0_peri, R_IRQ_MASK0_CLR__par0_peri__DEFAULT,
- par0_data, R_IRQ_MASK0_CLR__par0_data__DEFAULT,
- par0_ready, R_IRQ_MASK0_CLR__par0_ready__DEFAULT,
- ata_dmaend, R_IRQ_MASK0_CLR__ata_dmaend__DEFAULT,
- irq_ext_vector_nr, R_IRQ_MASK0_CLR__irq_ext_vector_nr__DEFAULT,
- irq_int_vector_nr, R_IRQ_MASK0_CLR__irq_int_vector_nr__DEFAULT,
- ext_dma1, R_IRQ_MASK0_CLR__ext_dma1__DEFAULT,
- ext_dma0, R_IRQ_MASK0_CLR__ext_dma0__DEFAULT,
- timer1, R_IRQ_MASK0_CLR__timer1__DEFAULT,
- timer0, R_IRQ_MASK0_CLR__timer0__DEFAULT
- );
-#endif
-
-#if USE_GROUP__Interrupt_mask_and_status_registers
- REG_SET__R_IRQ_MASK0_SET(
- nmi_pin, R_IRQ_MASK0_SET__nmi_pin__DEFAULT,
- watchdog_nmi, R_IRQ_MASK0_SET__watchdog_nmi__DEFAULT,
- sqe_test_error, R_IRQ_MASK0_SET__sqe_test_error__DEFAULT,
- carrier_loss, R_IRQ_MASK0_SET__carrier_loss__DEFAULT,
- deferred, R_IRQ_MASK0_SET__deferred__DEFAULT,
- late_col, R_IRQ_MASK0_SET__late_col__DEFAULT,
- multiple_col, R_IRQ_MASK0_SET__multiple_col__DEFAULT,
- single_col, R_IRQ_MASK0_SET__single_col__DEFAULT,
- congestion, R_IRQ_MASK0_SET__congestion__DEFAULT,
- oversize, R_IRQ_MASK0_SET__oversize__DEFAULT,
- alignment_error, R_IRQ_MASK0_SET__alignment_error__DEFAULT,
- crc_error, R_IRQ_MASK0_SET__crc_error__DEFAULT,
- overrun, R_IRQ_MASK0_SET__overrun__DEFAULT,
- underrun, R_IRQ_MASK0_SET__underrun__DEFAULT,
- excessive_col, R_IRQ_MASK0_SET__excessive_col__DEFAULT,
- mdio, R_IRQ_MASK0_SET__mdio__DEFAULT,
- ata_drq3, R_IRQ_MASK0_SET__ata_drq3__DEFAULT,
- ata_drq2, R_IRQ_MASK0_SET__ata_drq2__DEFAULT,
- ata_drq1, R_IRQ_MASK0_SET__ata_drq1__DEFAULT,
- ata_drq0, R_IRQ_MASK0_SET__ata_drq0__DEFAULT,
- par0_ecp_cmd, R_IRQ_MASK0_SET__par0_ecp_cmd__DEFAULT,
- par0_peri, R_IRQ_MASK0_SET__par0_peri__DEFAULT,
- par0_data, R_IRQ_MASK0_SET__par0_data__DEFAULT,
- par0_ready, R_IRQ_MASK0_SET__par0_ready__DEFAULT,
- ata_dmaend, R_IRQ_MASK0_SET__ata_dmaend__DEFAULT,
- irq_ext_vector_nr, R_IRQ_MASK0_SET__irq_ext_vector_nr__DEFAULT,
- irq_int_vector_nr, R_IRQ_MASK0_SET__irq_int_vector_nr__DEFAULT,
- ext_dma1, R_IRQ_MASK0_SET__ext_dma1__DEFAULT,
- ext_dma0, R_IRQ_MASK0_SET__ext_dma0__DEFAULT,
- timer1, R_IRQ_MASK0_SET__timer1__DEFAULT,
- timer0, R_IRQ_MASK0_SET__timer0__DEFAULT
- );
-#endif
-
-#if USE_GROUP__Interrupt_mask_and_status_registers
- REG_SET__R_IRQ_MASK1_CLR(
- sw_int7, R_IRQ_MASK1_CLR__sw_int7__DEFAULT,
- sw_int6, R_IRQ_MASK1_CLR__sw_int6__DEFAULT,
- sw_int5, R_IRQ_MASK1_CLR__sw_int5__DEFAULT,
- sw_int4, R_IRQ_MASK1_CLR__sw_int4__DEFAULT,
- sw_int3, R_IRQ_MASK1_CLR__sw_int3__DEFAULT,
- sw_int2, R_IRQ_MASK1_CLR__sw_int2__DEFAULT,
- sw_int1, R_IRQ_MASK1_CLR__sw_int1__DEFAULT,
- sw_int0, R_IRQ_MASK1_CLR__sw_int0__DEFAULT,
- par1_ecp_cmd, R_IRQ_MASK1_CLR__par1_ecp_cmd__DEFAULT,
- par1_peri, R_IRQ_MASK1_CLR__par1_peri__DEFAULT,
- par1_data, R_IRQ_MASK1_CLR__par1_data__DEFAULT,
- par1_ready, R_IRQ_MASK1_CLR__par1_ready__DEFAULT,
- ser3_ready, R_IRQ_MASK1_CLR__ser3_ready__DEFAULT,
- ser3_data, R_IRQ_MASK1_CLR__ser3_data__DEFAULT,
- ser2_ready, R_IRQ_MASK1_CLR__ser2_ready__DEFAULT,
- ser2_data, R_IRQ_MASK1_CLR__ser2_data__DEFAULT,
- ser1_ready, R_IRQ_MASK1_CLR__ser1_ready__DEFAULT,
- ser1_data, R_IRQ_MASK1_CLR__ser1_data__DEFAULT,
- ser0_ready, R_IRQ_MASK1_CLR__ser0_ready__DEFAULT,
- ser0_data, R_IRQ_MASK1_CLR__ser0_data__DEFAULT,
- pa7, R_IRQ_MASK1_CLR__pa7__DEFAULT,
- pa6, R_IRQ_MASK1_CLR__pa6__DEFAULT,
- pa5, R_IRQ_MASK1_CLR__pa5__DEFAULT,
- pa4, R_IRQ_MASK1_CLR__pa4__DEFAULT,
- pa3, R_IRQ_MASK1_CLR__pa3__DEFAULT,
- pa2, R_IRQ_MASK1_CLR__pa2__DEFAULT,
- pa1, R_IRQ_MASK1_CLR__pa1__DEFAULT,
- pa0, R_IRQ_MASK1_CLR__pa0__DEFAULT
- );
-#endif
-
-#if USE_GROUP__Interrupt_mask_and_status_registers
- REG_SET__R_IRQ_MASK1_SET(
- sw_int7, R_IRQ_MASK1_SET__sw_int7__DEFAULT,
- sw_int6, R_IRQ_MASK1_SET__sw_int6__DEFAULT,
- sw_int5, R_IRQ_MASK1_SET__sw_int5__DEFAULT,
- sw_int4, R_IRQ_MASK1_SET__sw_int4__DEFAULT,
- sw_int3, R_IRQ_MASK1_SET__sw_int3__DEFAULT,
- sw_int2, R_IRQ_MASK1_SET__sw_int2__DEFAULT,
- sw_int1, R_IRQ_MASK1_SET__sw_int1__DEFAULT,
- sw_int0, R_IRQ_MASK1_SET__sw_int0__DEFAULT,
- par1_ecp_cmd, R_IRQ_MASK1_SET__par1_ecp_cmd__DEFAULT,
- par1_peri, R_IRQ_MASK1_SET__par1_peri__DEFAULT,
- par1_data, R_IRQ_MASK1_SET__par1_data__DEFAULT,
- par1_ready, R_IRQ_MASK1_SET__par1_ready__DEFAULT,
- ser3_ready, R_IRQ_MASK1_SET__ser3_ready__DEFAULT,
- ser3_data, R_IRQ_MASK1_SET__ser3_data__DEFAULT,
- ser2_ready, R_IRQ_MASK1_SET__ser2_ready__DEFAULT,
- ser2_data, R_IRQ_MASK1_SET__ser2_data__DEFAULT,
- ser1_ready, R_IRQ_MASK1_SET__ser1_ready__DEFAULT,
- ser1_data, R_IRQ_MASK1_SET__ser1_data__DEFAULT,
- ser0_ready, R_IRQ_MASK1_SET__ser0_ready__DEFAULT,
- ser0_data, R_IRQ_MASK1_SET__ser0_data__DEFAULT,
- pa7, R_IRQ_MASK1_SET__pa7__DEFAULT,
- pa6, R_IRQ_MASK1_SET__pa6__DEFAULT,
- pa5, R_IRQ_MASK1_SET__pa5__DEFAULT,
- pa4, R_IRQ_MASK1_SET__pa4__DEFAULT,
- pa3, R_IRQ_MASK1_SET__pa3__DEFAULT,
- pa2, R_IRQ_MASK1_SET__pa2__DEFAULT,
- pa1, R_IRQ_MASK1_SET__pa1__DEFAULT,
- pa0, R_IRQ_MASK1_SET__pa0__DEFAULT
- );
-#endif
-
-#if USE_GROUP__Interrupt_mask_and_status_registers
- REG_SET__R_IRQ_MASK2_CLR(
- dma8_sub3_descr, R_IRQ_MASK2_CLR__dma8_sub3_descr__DEFAULT,
- dma8_sub2_descr, R_IRQ_MASK2_CLR__dma8_sub2_descr__DEFAULT,
- dma8_sub1_descr, R_IRQ_MASK2_CLR__dma8_sub1_descr__DEFAULT,
- dma8_sub0_descr, R_IRQ_MASK2_CLR__dma8_sub0_descr__DEFAULT,
- dma9_eop, R_IRQ_MASK2_CLR__dma9_eop__DEFAULT,
- dma9_descr, R_IRQ_MASK2_CLR__dma9_descr__DEFAULT,
- dma8_eop, R_IRQ_MASK2_CLR__dma8_eop__DEFAULT,
- dma8_descr, R_IRQ_MASK2_CLR__dma8_descr__DEFAULT,
- dma7_eop, R_IRQ_MASK2_CLR__dma7_eop__DEFAULT,
- dma7_descr, R_IRQ_MASK2_CLR__dma7_descr__DEFAULT,
- dma6_eop, R_IRQ_MASK2_CLR__dma6_eop__DEFAULT,
- dma6_descr, R_IRQ_MASK2_CLR__dma6_descr__DEFAULT,
- dma5_eop, R_IRQ_MASK2_CLR__dma5_eop__DEFAULT,
- dma5_descr, R_IRQ_MASK2_CLR__dma5_descr__DEFAULT,
- dma4_eop, R_IRQ_MASK2_CLR__dma4_eop__DEFAULT,
- dma4_descr, R_IRQ_MASK2_CLR__dma4_descr__DEFAULT,
- dma3_eop, R_IRQ_MASK2_CLR__dma3_eop__DEFAULT,
- dma3_descr, R_IRQ_MASK2_CLR__dma3_descr__DEFAULT,
- dma2_eop, R_IRQ_MASK2_CLR__dma2_eop__DEFAULT,
- dma2_descr, R_IRQ_MASK2_CLR__dma2_descr__DEFAULT,
- dma1_eop, R_IRQ_MASK2_CLR__dma1_eop__DEFAULT,
- dma1_descr, R_IRQ_MASK2_CLR__dma1_descr__DEFAULT,
- dma0_eop, R_IRQ_MASK2_CLR__dma0_eop__DEFAULT,
- dma0_descr, R_IRQ_MASK2_CLR__dma0_descr__DEFAULT
- );
-#endif
-
-#if USE_GROUP__Interrupt_mask_and_status_registers
- REG_SET__R_IRQ_MASK2_SET(
- dma8_sub3_descr, R_IRQ_MASK2_SET__dma8_sub3_descr__DEFAULT,
- dma8_sub2_descr, R_IRQ_MASK2_SET__dma8_sub2_descr__DEFAULT,
- dma8_sub1_descr, R_IRQ_MASK2_SET__dma8_sub1_descr__DEFAULT,
- dma8_sub0_descr, R_IRQ_MASK2_SET__dma8_sub0_descr__DEFAULT,
- dma9_eop, R_IRQ_MASK2_SET__dma9_eop__DEFAULT,
- dma9_descr, R_IRQ_MASK2_SET__dma9_descr__DEFAULT,
- dma8_eop, R_IRQ_MASK2_SET__dma8_eop__DEFAULT,
- dma8_descr, R_IRQ_MASK2_SET__dma8_descr__DEFAULT,
- dma7_eop, R_IRQ_MASK2_SET__dma7_eop__DEFAULT,
- dma7_descr, R_IRQ_MASK2_SET__dma7_descr__DEFAULT,
- dma6_eop, R_IRQ_MASK2_SET__dma6_eop__DEFAULT,
- dma6_descr, R_IRQ_MASK2_SET__dma6_descr__DEFAULT,
- dma5_eop, R_IRQ_MASK2_SET__dma5_eop__DEFAULT,
- dma5_descr, R_IRQ_MASK2_SET__dma5_descr__DEFAULT,
- dma4_eop, R_IRQ_MASK2_SET__dma4_eop__DEFAULT,
- dma4_descr, R_IRQ_MASK2_SET__dma4_descr__DEFAULT,
- dma3_eop, R_IRQ_MASK2_SET__dma3_eop__DEFAULT,
- dma3_descr, R_IRQ_MASK2_SET__dma3_descr__DEFAULT,
- dma2_eop, R_IRQ_MASK2_SET__dma2_eop__DEFAULT,
- dma2_descr, R_IRQ_MASK2_SET__dma2_descr__DEFAULT,
- dma1_eop, R_IRQ_MASK2_SET__dma1_eop__DEFAULT,
- dma1_descr, R_IRQ_MASK2_SET__dma1_descr__DEFAULT,
- dma0_eop, R_IRQ_MASK2_SET__dma0_eop__DEFAULT,
- dma0_descr, R_IRQ_MASK2_SET__dma0_descr__DEFAULT
- );
-#endif
-
-#if USE_GROUP__MMU_registers
- REG_SET__R_MMU_CONFIG(
- mmu_enable, R_MMU_CONFIG__mmu_enable__DEFAULT,
- inv_excp, R_MMU_CONFIG__inv_excp__DEFAULT,
- acc_excp, R_MMU_CONFIG__acc_excp__DEFAULT,
- we_excp, R_MMU_CONFIG__we_excp__DEFAULT,
- seg_f, R_MMU_CONFIG__seg_f__DEFAULT,
- seg_e, R_MMU_CONFIG__seg_e__DEFAULT,
- seg_d, R_MMU_CONFIG__seg_d__DEFAULT,
- seg_c, R_MMU_CONFIG__seg_c__DEFAULT,
- seg_b, R_MMU_CONFIG__seg_b__DEFAULT,
- seg_a, R_MMU_CONFIG__seg_a__DEFAULT,
- seg_9, R_MMU_CONFIG__seg_9__DEFAULT,
- seg_8, R_MMU_CONFIG__seg_8__DEFAULT,
- seg_7, R_MMU_CONFIG__seg_7__DEFAULT,
- seg_6, R_MMU_CONFIG__seg_6__DEFAULT,
- seg_5, R_MMU_CONFIG__seg_5__DEFAULT,
- seg_4, R_MMU_CONFIG__seg_4__DEFAULT,
- seg_3, R_MMU_CONFIG__seg_3__DEFAULT,
- seg_2, R_MMU_CONFIG__seg_2__DEFAULT,
- seg_1, R_MMU_CONFIG__seg_1__DEFAULT,
- seg_0, R_MMU_CONFIG__seg_0__DEFAULT
- );
-#endif
-
-#if USE_GROUP__MMU_registers
- REG_SET__R_MMU_CTRL(
- inv_excp, R_MMU_CTRL__inv_excp__DEFAULT,
- acc_excp, R_MMU_CTRL__acc_excp__DEFAULT,
- we_excp, R_MMU_CTRL__we_excp__DEFAULT
- );
-#endif
-
-#if USE_GROUP__MMU_registers
- REG_SET__R_MMU_ENABLE(
- mmu_enable, R_MMU_ENABLE__mmu_enable__DEFAULT
- );
-#endif
-
-#if USE_GROUP__MMU_registers
- REG_SET__R_MMU_KBASE_HI(
- base_f, R_MMU_KBASE_HI__base_f__DEFAULT,
- base_e, R_MMU_KBASE_HI__base_e__DEFAULT,
- base_d, R_MMU_KBASE_HI__base_d__DEFAULT,
- base_c, R_MMU_KBASE_HI__base_c__DEFAULT,
- base_b, R_MMU_KBASE_HI__base_b__DEFAULT,
- base_a, R_MMU_KBASE_HI__base_a__DEFAULT,
- base_9, R_MMU_KBASE_HI__base_9__DEFAULT,
- base_8, R_MMU_KBASE_HI__base_8__DEFAULT
- );
-#endif
-
-#if USE_GROUP__MMU_registers
- REG_SET__R_MMU_KBASE_LO(
- base_7, R_MMU_KBASE_LO__base_7__DEFAULT,
- base_6, R_MMU_KBASE_LO__base_6__DEFAULT,
- base_5, R_MMU_KBASE_LO__base_5__DEFAULT,
- base_4, R_MMU_KBASE_LO__base_4__DEFAULT,
- base_3, R_MMU_KBASE_LO__base_3__DEFAULT,
- base_2, R_MMU_KBASE_LO__base_2__DEFAULT,
- base_1, R_MMU_KBASE_LO__base_1__DEFAULT,
- base_0, R_MMU_KBASE_LO__base_0__DEFAULT
- );
-#endif
-
-#if USE_GROUP__MMU_registers
- REG_SET__R_MMU_KSEG(
- seg_f, R_MMU_KSEG__seg_f__DEFAULT,
- seg_e, R_MMU_KSEG__seg_e__DEFAULT,
- seg_d, R_MMU_KSEG__seg_d__DEFAULT,
- seg_c, R_MMU_KSEG__seg_c__DEFAULT,
- seg_b, R_MMU_KSEG__seg_b__DEFAULT,
- seg_a, R_MMU_KSEG__seg_a__DEFAULT,
- seg_9, R_MMU_KSEG__seg_9__DEFAULT,
- seg_8, R_MMU_KSEG__seg_8__DEFAULT,
- seg_7, R_MMU_KSEG__seg_7__DEFAULT,
- seg_6, R_MMU_KSEG__seg_6__DEFAULT,
- seg_5, R_MMU_KSEG__seg_5__DEFAULT,
- seg_4, R_MMU_KSEG__seg_4__DEFAULT,
- seg_3, R_MMU_KSEG__seg_3__DEFAULT,
- seg_2, R_MMU_KSEG__seg_2__DEFAULT,
- seg_1, R_MMU_KSEG__seg_1__DEFAULT,
- seg_0, R_MMU_KSEG__seg_0__DEFAULT
- );
-#endif
-
-#if USE_GROUP__Network_interface_registers
- REG_SET__R_NETWORK_GA_0(
- ga_low, R_NETWORK_GA_0__ga_low__DEFAULT
- );
-#endif
-
-#if USE_GROUP__Network_interface_registers
- REG_SET__R_NETWORK_GA_1(
- ga_high, R_NETWORK_GA_1__ga_high__DEFAULT
- );
-#endif
-
-#if USE_GROUP__Network_interface_registers
- REG_SET__R_NETWORK_GEN_CONFIG(
- loopback, R_NETWORK_GEN_CONFIG__loopback__DEFAULT,
- frame, R_NETWORK_GEN_CONFIG__frame__DEFAULT,
- vg, R_NETWORK_GEN_CONFIG__vg__DEFAULT,
- phy, R_NETWORK_GEN_CONFIG__phy__DEFAULT,
- enable, R_NETWORK_GEN_CONFIG__enable__DEFAULT
- );
-#endif
-
-#if USE_GROUP__Network_interface_registers
- REG_SET__R_NETWORK_MGM_CTRL(
- txd_pins, R_NETWORK_MGM_CTRL__txd_pins__DEFAULT,
- txer_pin, R_NETWORK_MGM_CTRL__txer_pin__DEFAULT,
- mdck, R_NETWORK_MGM_CTRL__mdck__DEFAULT,
- mdoe, R_NETWORK_MGM_CTRL__mdoe__DEFAULT,
- mdio, R_NETWORK_MGM_CTRL__mdio__DEFAULT
- );
-#endif
-
-#if USE_GROUP__Network_interface_registers
- REG_SET__R_NETWORK_REC_CONFIG(
- max_size, R_NETWORK_REC_CONFIG__max_size__DEFAULT,
- duplex, R_NETWORK_REC_CONFIG__duplex__DEFAULT,
- bad_crc, R_NETWORK_REC_CONFIG__bad_crc__DEFAULT,
- oversize, R_NETWORK_REC_CONFIG__oversize__DEFAULT,
- undersize, R_NETWORK_REC_CONFIG__undersize__DEFAULT,
- all_roots, R_NETWORK_REC_CONFIG__all_roots__DEFAULT,
- tr_broadcast, R_NETWORK_REC_CONFIG__tr_broadcast__DEFAULT,
- broadcast, R_NETWORK_REC_CONFIG__broadcast__DEFAULT,
- individual, R_NETWORK_REC_CONFIG__individual__DEFAULT,
- ma1, R_NETWORK_REC_CONFIG__ma1__DEFAULT,
- ma0, R_NETWORK_REC_CONFIG__ma0__DEFAULT
- );
-#endif
-
-#if USE_GROUP__Network_interface_registers
- REG_SET__R_NETWORK_SA_0(
- ma0_low, R_NETWORK_SA_0__ma0_low__DEFAULT
- );
-#endif
-
-#if USE_GROUP__Network_interface_registers
- REG_SET__R_NETWORK_SA_1(
- ma1_low, R_NETWORK_SA_1__ma1_low__DEFAULT,
- ma0_high, R_NETWORK_SA_1__ma0_high__DEFAULT
- );
-#endif
-
-#if USE_GROUP__Network_interface_registers
- REG_SET__R_NETWORK_SA_2(
- ma1_high, R_NETWORK_SA_2__ma1_high__DEFAULT
- );
-#endif
-
-#if USE_GROUP__Network_interface_registers
- REG_SET__R_NETWORK_TR_CTRL(
- clr_error, R_NETWORK_TR_CTRL__clr_error__DEFAULT,
- delay, R_NETWORK_TR_CTRL__delay__DEFAULT,
- cancel, R_NETWORK_TR_CTRL__cancel__DEFAULT,
- cd, R_NETWORK_TR_CTRL__cd__DEFAULT,
- retry, R_NETWORK_TR_CTRL__retry__DEFAULT,
- pad, R_NETWORK_TR_CTRL__pad__DEFAULT,
- crc, R_NETWORK_TR_CTRL__crc__DEFAULT
- );
-#endif
-
-#if USE_GROUP__Parallel_printer_port_registers
- REG_SET__R_PAR0_CONFIG(
- ioe, R_PAR0_CONFIG__ioe__DEFAULT,
- iseli, R_PAR0_CONFIG__iseli__DEFAULT,
- iautofd, R_PAR0_CONFIG__iautofd__DEFAULT,
- istrb, R_PAR0_CONFIG__istrb__DEFAULT,
- iinit, R_PAR0_CONFIG__iinit__DEFAULT,
- iperr, R_PAR0_CONFIG__iperr__DEFAULT,
- iack, R_PAR0_CONFIG__iack__DEFAULT,
- ibusy, R_PAR0_CONFIG__ibusy__DEFAULT,
- ifault, R_PAR0_CONFIG__ifault__DEFAULT,
- isel, R_PAR0_CONFIG__isel__DEFAULT,
- ext_mode, R_PAR0_CONFIG__ext_mode__DEFAULT,
- wide, R_PAR0_CONFIG__wide__DEFAULT,
- dma, R_PAR0_CONFIG__dma__DEFAULT,
- rle_in, R_PAR0_CONFIG__rle_in__DEFAULT,
- rle_out, R_PAR0_CONFIG__rle_out__DEFAULT,
- enable, R_PAR0_CONFIG__enable__DEFAULT,
- force, R_PAR0_CONFIG__force__DEFAULT,
- ign_ack, R_PAR0_CONFIG__ign_ack__DEFAULT,
- oe_ack, R_PAR0_CONFIG__oe_ack__DEFAULT,
- mode, R_PAR0_CONFIG__mode__DEFAULT
- );
-#endif
-
-#if USE_GROUP__Parallel_printer_port_registers
- REG_SET__R_PAR0_CTRL(
- ctrl, R_PAR0_CTRL__ctrl__DEFAULT
- );
-#endif
-
-#if USE_GROUP__Parallel_printer_port_registers
- REG_SET__R_PAR0_CTRL_DATA(
- peri_int, R_PAR0_CTRL_DATA__peri_int__DEFAULT,
- oe, R_PAR0_CTRL_DATA__oe__DEFAULT,
- seli, R_PAR0_CTRL_DATA__seli__DEFAULT,
- autofd, R_PAR0_CTRL_DATA__autofd__DEFAULT,
- strb, R_PAR0_CTRL_DATA__strb__DEFAULT,
- init, R_PAR0_CTRL_DATA__init__DEFAULT,
- ecp_cmd, R_PAR0_CTRL_DATA__ecp_cmd__DEFAULT,
- data, R_PAR0_CTRL_DATA__data__DEFAULT
- );
-#endif
-
-#if USE_GROUP__Parallel_printer_port_registers
- REG_SET__R_PAR0_DELAY(
- fine_hold, R_PAR0_DELAY__fine_hold__DEFAULT,
- hold, R_PAR0_DELAY__hold__DEFAULT,
- fine_strb, R_PAR0_DELAY__fine_strb__DEFAULT,
- strobe, R_PAR0_DELAY__strobe__DEFAULT,
- fine_setup, R_PAR0_DELAY__fine_setup__DEFAULT,
- setup, R_PAR0_DELAY__setup__DEFAULT
- );
-#endif
-
-#if USE_GROUP__Parallel_printer_port_registers
- REG_SET__R_PAR1_CONFIG(
- ioe, R_PAR1_CONFIG__ioe__DEFAULT,
- iseli, R_PAR1_CONFIG__iseli__DEFAULT,
- iautofd, R_PAR1_CONFIG__iautofd__DEFAULT,
- istrb, R_PAR1_CONFIG__istrb__DEFAULT,
- iinit, R_PAR1_CONFIG__iinit__DEFAULT,
- iperr, R_PAR1_CONFIG__iperr__DEFAULT,
- iack, R_PAR1_CONFIG__iack__DEFAULT,
- ibusy, R_PAR1_CONFIG__ibusy__DEFAULT,
- ifault, R_PAR1_CONFIG__ifault__DEFAULT,
- isel, R_PAR1_CONFIG__isel__DEFAULT,
- ext_mode, R_PAR1_CONFIG__ext_mode__DEFAULT,
- dma, R_PAR1_CONFIG__dma__DEFAULT,
- rle_in, R_PAR1_CONFIG__rle_in__DEFAULT,
- rle_out, R_PAR1_CONFIG__rle_out__DEFAULT,
- enable, R_PAR1_CONFIG__enable__DEFAULT,
- force, R_PAR1_CONFIG__force__DEFAULT,
- ign_ack, R_PAR1_CONFIG__ign_ack__DEFAULT,
- oe_ack, R_PAR1_CONFIG__oe_ack__DEFAULT,
- mode, R_PAR1_CONFIG__mode__DEFAULT
- );
-#endif
-
-#if USE_GROUP__Parallel_printer_port_registers
- REG_SET__R_PAR1_CTRL(
- ctrl, R_PAR1_CTRL__ctrl__DEFAULT
- );
-#endif
-
-#if USE_GROUP__Parallel_printer_port_registers
- REG_SET__R_PAR1_CTRL_DATA(
- peri_int, R_PAR1_CTRL_DATA__peri_int__DEFAULT,
- oe, R_PAR1_CTRL_DATA__oe__DEFAULT,
- seli, R_PAR1_CTRL_DATA__seli__DEFAULT,
- autofd, R_PAR1_CTRL_DATA__autofd__DEFAULT,
- strb, R_PAR1_CTRL_DATA__strb__DEFAULT,
- init, R_PAR1_CTRL_DATA__init__DEFAULT,
- ecp_cmd, R_PAR1_CTRL_DATA__ecp_cmd__DEFAULT,
- data, R_PAR1_CTRL_DATA__data__DEFAULT
- );
-#endif
-
-#if USE_GROUP__Parallel_printer_port_registers
- REG_SET__R_PAR1_DELAY(
- fine_hold, R_PAR1_DELAY__fine_hold__DEFAULT,
- hold, R_PAR1_DELAY__hold__DEFAULT,
- fine_strb, R_PAR1_DELAY__fine_strb__DEFAULT,
- strobe, R_PAR1_DELAY__strobe__DEFAULT,
- fine_setup, R_PAR1_DELAY__fine_setup__DEFAULT,
- setup, R_PAR1_DELAY__setup__DEFAULT
- );
-#endif
-
-#if USE_GROUP__General_port_configuration_registers
- REG_SET__R_PORT_PA_DATA(
- data_out, R_PORT_PA_DATA__data_out__DEFAULT
- );
-#endif
-
-#if USE_GROUP__General_port_configuration_registers
- REG_SET__R_PORT_PA_DIR(
- dir7, R_PORT_PA_DIR__dir7__DEFAULT,
- dir6, R_PORT_PA_DIR__dir6__DEFAULT,
- dir5, R_PORT_PA_DIR__dir5__DEFAULT,
- dir4, R_PORT_PA_DIR__dir4__DEFAULT,
- dir3, R_PORT_PA_DIR__dir3__DEFAULT,
- dir2, R_PORT_PA_DIR__dir2__DEFAULT,
- dir1, R_PORT_PA_DIR__dir1__DEFAULT,
- dir0, R_PORT_PA_DIR__dir0__DEFAULT
- );
-#endif
-
-#if USE_GROUP__General_port_configuration_registers
- REG_SET__R_PORT_PA_SET(
- dir7, R_PORT_PA_SET__dir7__DEFAULT,
- dir6, R_PORT_PA_SET__dir6__DEFAULT,
- dir5, R_PORT_PA_SET__dir5__DEFAULT,
- dir4, R_PORT_PA_SET__dir4__DEFAULT,
- dir3, R_PORT_PA_SET__dir3__DEFAULT,
- dir2, R_PORT_PA_SET__dir2__DEFAULT,
- dir1, R_PORT_PA_SET__dir1__DEFAULT,
- dir0, R_PORT_PA_SET__dir0__DEFAULT,
- data_out, R_PORT_PA_SET__data_out__DEFAULT
- );
-#endif
-
-#if USE_GROUP__General_port_configuration_registers
- REG_SET__R_PORT_PB_CONFIG(
- cs7, R_PORT_PB_CONFIG__cs7__DEFAULT,
- cs6, R_PORT_PB_CONFIG__cs6__DEFAULT,
- cs5, R_PORT_PB_CONFIG__cs5__DEFAULT,
- cs4, R_PORT_PB_CONFIG__cs4__DEFAULT,
- cs3, R_PORT_PB_CONFIG__cs3__DEFAULT,
- cs2, R_PORT_PB_CONFIG__cs2__DEFAULT,
- scsi1, R_PORT_PB_CONFIG__scsi1__DEFAULT,
- scsi0, R_PORT_PB_CONFIG__scsi0__DEFAULT
- );
-#endif
-
-#if USE_GROUP__General_port_configuration_registers
- REG_SET__R_PORT_PB_DATA(
- data_out, R_PORT_PB_DATA__data_out__DEFAULT
- );
-#endif
-
-#if USE_GROUP__General_port_configuration_registers
- REG_SET__R_PORT_PB_DIR(
- dir7, R_PORT_PB_DIR__dir7__DEFAULT,
- dir6, R_PORT_PB_DIR__dir6__DEFAULT,
- dir5, R_PORT_PB_DIR__dir5__DEFAULT,
- dir4, R_PORT_PB_DIR__dir4__DEFAULT,
- dir3, R_PORT_PB_DIR__dir3__DEFAULT,
- dir2, R_PORT_PB_DIR__dir2__DEFAULT,
- dir1, R_PORT_PB_DIR__dir1__DEFAULT,
- dir0, R_PORT_PB_DIR__dir0__DEFAULT
- );
-#endif
-
-#if USE_GROUP__General_port_configuration_registers
- REG_SET__R_PORT_PB_I2C(
- syncser3, R_PORT_PB_I2C__syncser3__DEFAULT,
- syncser1, R_PORT_PB_I2C__syncser1__DEFAULT,
- i2c_en, R_PORT_PB_I2C__i2c_en__DEFAULT,
- i2c_d, R_PORT_PB_I2C__i2c_d__DEFAULT,
- i2c_clk, R_PORT_PB_I2C__i2c_clk__DEFAULT,
- i2c_oe_, R_PORT_PB_I2C__i2c_oe___DEFAULT
- );
-#endif
-
-#if USE_GROUP__General_port_configuration_registers
- REG_SET__R_PORT_PB_SET(
- syncser3, R_PORT_PB_SET__syncser3__DEFAULT,
- syncser1, R_PORT_PB_SET__syncser1__DEFAULT,
- i2c_en, R_PORT_PB_SET__i2c_en__DEFAULT,
- i2c_d, R_PORT_PB_SET__i2c_d__DEFAULT,
- i2c_clk, R_PORT_PB_SET__i2c_clk__DEFAULT,
- i2c_oe_, R_PORT_PB_SET__i2c_oe___DEFAULT,
- cs7, R_PORT_PB_SET__cs7__DEFAULT,
- cs6, R_PORT_PB_SET__cs6__DEFAULT,
- cs5, R_PORT_PB_SET__cs5__DEFAULT,
- cs4, R_PORT_PB_SET__cs4__DEFAULT,
- cs3, R_PORT_PB_SET__cs3__DEFAULT,
- cs2, R_PORT_PB_SET__cs2__DEFAULT,
- scsi1, R_PORT_PB_SET__scsi1__DEFAULT,
- scsi0, R_PORT_PB_SET__scsi0__DEFAULT,
- dir7, R_PORT_PB_SET__dir7__DEFAULT,
- dir6, R_PORT_PB_SET__dir6__DEFAULT,
- dir5, R_PORT_PB_SET__dir5__DEFAULT,
- dir4, R_PORT_PB_SET__dir4__DEFAULT,
- dir3, R_PORT_PB_SET__dir3__DEFAULT,
- dir2, R_PORT_PB_SET__dir2__DEFAULT,
- dir1, R_PORT_PB_SET__dir1__DEFAULT,
- dir0, R_PORT_PB_SET__dir0__DEFAULT,
- data_out, R_PORT_PB_SET__data_out__DEFAULT
- );
-#endif
-
-#if USE_GROUP__SCSI_registers
- REG_SET__R_SCSI0_CMD(
- asynch_setup, R_SCSI0_CMD__asynch_setup__DEFAULT,
- command, R_SCSI0_CMD__command__DEFAULT
- );
-#endif
-
-#if USE_GROUP__SCSI_registers
- REG_SET__R_SCSI0_CMD_DATA(
- parity_in, R_SCSI0_CMD_DATA__parity_in__DEFAULT,
- skip, R_SCSI0_CMD_DATA__skip__DEFAULT,
- clr_status, R_SCSI0_CMD_DATA__clr_status__DEFAULT,
- asynch_setup, R_SCSI0_CMD_DATA__asynch_setup__DEFAULT,
- command, R_SCSI0_CMD_DATA__command__DEFAULT,
- data_out, R_SCSI0_CMD_DATA__data_out__DEFAULT
- );
-#endif
-
-#if USE_GROUP__SCSI_registers
- REG_SET__R_SCSI0_CTRL(
- id_type, R_SCSI0_CTRL__id_type__DEFAULT,
- sel_timeout, R_SCSI0_CTRL__sel_timeout__DEFAULT,
- synch_per, R_SCSI0_CTRL__synch_per__DEFAULT,
- rst, R_SCSI0_CTRL__rst__DEFAULT,
- atn, R_SCSI0_CTRL__atn__DEFAULT,
- my_id, R_SCSI0_CTRL__my_id__DEFAULT,
- target_id, R_SCSI0_CTRL__target_id__DEFAULT,
- fast_20, R_SCSI0_CTRL__fast_20__DEFAULT,
- bus_width, R_SCSI0_CTRL__bus_width__DEFAULT,
- synch, R_SCSI0_CTRL__synch__DEFAULT,
- enable, R_SCSI0_CTRL__enable__DEFAULT
- );
-#endif
-
-#if USE_GROUP__SCSI_registers
- REG_SET__R_SCSI0_DATA(
- data_out, R_SCSI0_DATA__data_out__DEFAULT
- );
-#endif
-
-#if USE_GROUP__SCSI_registers
- REG_SET__R_SCSI0_STATUS_CTRL(
- parity_in, R_SCSI0_STATUS_CTRL__parity_in__DEFAULT,
- skip, R_SCSI0_STATUS_CTRL__skip__DEFAULT,
- clr_status, R_SCSI0_STATUS_CTRL__clr_status__DEFAULT
- );
-#endif
-
-#if USE_GROUP__SCSI_registers
- REG_SET__R_SCSI1_CMD(
- asynch_setup, R_SCSI1_CMD__asynch_setup__DEFAULT,
- command, R_SCSI1_CMD__command__DEFAULT
- );
-#endif
-
-#if USE_GROUP__SCSI_registers
- REG_SET__R_SCSI1_CMD_DATA(
- parity_in, R_SCSI1_CMD_DATA__parity_in__DEFAULT,
- skip, R_SCSI1_CMD_DATA__skip__DEFAULT,
- clr_status, R_SCSI1_CMD_DATA__clr_status__DEFAULT,
- asynch_setup, R_SCSI1_CMD_DATA__asynch_setup__DEFAULT,
- command, R_SCSI1_CMD_DATA__command__DEFAULT,
- data_out, R_SCSI1_CMD_DATA__data_out__DEFAULT
- );
-#endif
-
-#if USE_GROUP__SCSI_registers
- REG_SET__R_SCSI1_CTRL(
- id_type, R_SCSI1_CTRL__id_type__DEFAULT,
- sel_timeout, R_SCSI1_CTRL__sel_timeout__DEFAULT,
- synch_per, R_SCSI1_CTRL__synch_per__DEFAULT,
- rst, R_SCSI1_CTRL__rst__DEFAULT,
- atn, R_SCSI1_CTRL__atn__DEFAULT,
- my_id, R_SCSI1_CTRL__my_id__DEFAULT,
- target_id, R_SCSI1_CTRL__target_id__DEFAULT,
- fast_20, R_SCSI1_CTRL__fast_20__DEFAULT,
- bus_width, R_SCSI1_CTRL__bus_width__DEFAULT,
- synch, R_SCSI1_CTRL__synch__DEFAULT,
- enable, R_SCSI1_CTRL__enable__DEFAULT
- );
-#endif
-
-#if USE_GROUP__SCSI_registers
- REG_SET__R_SCSI1_DATA(
- data_out, R_SCSI1_DATA__data_out__DEFAULT
- );
-#endif
-
-#if USE_GROUP__SCSI_registers
- REG_SET__R_SCSI1_STATUS_CTRL(
- parity_in, R_SCSI1_STATUS_CTRL__parity_in__DEFAULT,
- skip, R_SCSI1_STATUS_CTRL__skip__DEFAULT,
- clr_status, R_SCSI1_STATUS_CTRL__clr_status__DEFAULT
- );
-#endif
-
-#if USE_GROUP__Bus_interface_configuration_registers
- REG_SET__R_SDRAM_CONFIG(
- wmm1, R_SDRAM_CONFIG__wmm1__DEFAULT,
- wmm0, R_SDRAM_CONFIG__wmm0__DEFAULT,
- sh1, R_SDRAM_CONFIG__sh1__DEFAULT,
- sh0, R_SDRAM_CONFIG__sh0__DEFAULT,
- w, R_SDRAM_CONFIG__w__DEFAULT,
- type1, R_SDRAM_CONFIG__type1__DEFAULT,
- type0, R_SDRAM_CONFIG__type0__DEFAULT,
- group_sel, R_SDRAM_CONFIG__group_sel__DEFAULT,
- ca1, R_SDRAM_CONFIG__ca1__DEFAULT,
- bank_sel1, R_SDRAM_CONFIG__bank_sel1__DEFAULT,
- ca0, R_SDRAM_CONFIG__ca0__DEFAULT,
- bank_sel0, R_SDRAM_CONFIG__bank_sel0__DEFAULT
- );
-#endif
-
-#if USE_GROUP__Bus_interface_configuration_registers
- REG_SET__R_SDRAM_TIMING(
- sdram, R_SDRAM_TIMING__sdram__DEFAULT,
- mrs_data, R_SDRAM_TIMING__mrs_data__DEFAULT,
- ref, R_SDRAM_TIMING__ref__DEFAULT,
- ddr, R_SDRAM_TIMING__ddr__DEFAULT,
- clk100, R_SDRAM_TIMING__clk100__DEFAULT,
- ps, R_SDRAM_TIMING__ps__DEFAULT,
- cmd, R_SDRAM_TIMING__cmd__DEFAULT,
- pde, R_SDRAM_TIMING__pde__DEFAULT,
- rc, R_SDRAM_TIMING__rc__DEFAULT,
- rp, R_SDRAM_TIMING__rp__DEFAULT,
- rcd, R_SDRAM_TIMING__rcd__DEFAULT,
- cl, R_SDRAM_TIMING__cl__DEFAULT
- );
-#endif
-
-#if USE_GROUP__Serial_port_registers
- REG_SET__R_SERIAL0_BAUD(
- tr_baud, R_SERIAL0_BAUD__tr_baud__DEFAULT,
- rec_baud, R_SERIAL0_BAUD__rec_baud__DEFAULT
- );
-#endif
-
-#if USE_GROUP__Serial_port_registers
- REG_SET__R_SERIAL0_CTRL(
- tr_baud, R_SERIAL0_CTRL__tr_baud__DEFAULT,
- rec_baud, R_SERIAL0_CTRL__rec_baud__DEFAULT,
- dma_err, R_SERIAL0_CTRL__dma_err__DEFAULT,
- rec_enable, R_SERIAL0_CTRL__rec_enable__DEFAULT,
- rts_, R_SERIAL0_CTRL__rts___DEFAULT,
- sampling, R_SERIAL0_CTRL__sampling__DEFAULT,
- rec_stick_par, R_SERIAL0_CTRL__rec_stick_par__DEFAULT,
- rec_par, R_SERIAL0_CTRL__rec_par__DEFAULT,
- rec_par_en, R_SERIAL0_CTRL__rec_par_en__DEFAULT,
- rec_bitnr, R_SERIAL0_CTRL__rec_bitnr__DEFAULT,
- txd, R_SERIAL0_CTRL__txd__DEFAULT,
- tr_enable, R_SERIAL0_CTRL__tr_enable__DEFAULT,
- auto_cts, R_SERIAL0_CTRL__auto_cts__DEFAULT,
- stop_bits, R_SERIAL0_CTRL__stop_bits__DEFAULT,
- tr_stick_par, R_SERIAL0_CTRL__tr_stick_par__DEFAULT,
- tr_par, R_SERIAL0_CTRL__tr_par__DEFAULT,
- tr_par_en, R_SERIAL0_CTRL__tr_par_en__DEFAULT,
- tr_bitnr, R_SERIAL0_CTRL__tr_bitnr__DEFAULT,
- data_out, R_SERIAL0_CTRL__data_out__DEFAULT
- );
-#endif
-
-#if USE_GROUP__Serial_port_registers
- REG_SET__R_SERIAL0_REC_CTRL(
- dma_err, R_SERIAL0_REC_CTRL__dma_err__DEFAULT,
- rec_enable, R_SERIAL0_REC_CTRL__rec_enable__DEFAULT,
- rts_, R_SERIAL0_REC_CTRL__rts___DEFAULT,
- sampling, R_SERIAL0_REC_CTRL__sampling__DEFAULT,
- rec_stick_par, R_SERIAL0_REC_CTRL__rec_stick_par__DEFAULT,
- rec_par, R_SERIAL0_REC_CTRL__rec_par__DEFAULT,
- rec_par_en, R_SERIAL0_REC_CTRL__rec_par_en__DEFAULT,
- rec_bitnr, R_SERIAL0_REC_CTRL__rec_bitnr__DEFAULT
- );
-#endif
-
-#if USE_GROUP__Serial_port_registers
- REG_SET__R_SERIAL0_TR_CTRL(
- txd, R_SERIAL0_TR_CTRL__txd__DEFAULT,
- tr_enable, R_SERIAL0_TR_CTRL__tr_enable__DEFAULT,
- auto_cts, R_SERIAL0_TR_CTRL__auto_cts__DEFAULT,
- stop_bits, R_SERIAL0_TR_CTRL__stop_bits__DEFAULT,
- tr_stick_par, R_SERIAL0_TR_CTRL__tr_stick_par__DEFAULT,
- tr_par, R_SERIAL0_TR_CTRL__tr_par__DEFAULT,
- tr_par_en, R_SERIAL0_TR_CTRL__tr_par_en__DEFAULT,
- tr_bitnr, R_SERIAL0_TR_CTRL__tr_bitnr__DEFAULT
- );
-#endif
-
-#if USE_GROUP__Serial_port_registers
- REG_SET__R_SERIAL0_TR_DATA(
- data_out, R_SERIAL0_TR_DATA__data_out__DEFAULT
- );
-#endif
-
-#if USE_GROUP__Serial_port_registers
- REG_SET__R_SERIAL0_XOFF(
- tx_stop, R_SERIAL0_XOFF__tx_stop__DEFAULT,
- auto_xoff, R_SERIAL0_XOFF__auto_xoff__DEFAULT,
- xoff_char, R_SERIAL0_XOFF__xoff_char__DEFAULT
- );
-#endif
-
-#if USE_GROUP__Serial_port_registers
- REG_SET__R_SERIAL1_BAUD(
- tr_baud, R_SERIAL1_BAUD__tr_baud__DEFAULT,
- rec_baud, R_SERIAL1_BAUD__rec_baud__DEFAULT
- );
-#endif
-
-#if USE_GROUP__Serial_port_registers
- REG_SET__R_SERIAL1_CTRL(
- tr_baud, R_SERIAL1_CTRL__tr_baud__DEFAULT,
- rec_baud, R_SERIAL1_CTRL__rec_baud__DEFAULT,
- dma_err, R_SERIAL1_CTRL__dma_err__DEFAULT,
- rec_enable, R_SERIAL1_CTRL__rec_enable__DEFAULT,
- rts_, R_SERIAL1_CTRL__rts___DEFAULT,
- sampling, R_SERIAL1_CTRL__sampling__DEFAULT,
- rec_stick_par, R_SERIAL1_CTRL__rec_stick_par__DEFAULT,
- rec_par, R_SERIAL1_CTRL__rec_par__DEFAULT,
- rec_par_en, R_SERIAL1_CTRL__rec_par_en__DEFAULT,
- rec_bitnr, R_SERIAL1_CTRL__rec_bitnr__DEFAULT,
- txd, R_SERIAL1_CTRL__txd__DEFAULT,
- tr_enable, R_SERIAL1_CTRL__tr_enable__DEFAULT,
- auto_cts, R_SERIAL1_CTRL__auto_cts__DEFAULT,
- stop_bits, R_SERIAL1_CTRL__stop_bits__DEFAULT,
- tr_stick_par, R_SERIAL1_CTRL__tr_stick_par__DEFAULT,
- tr_par, R_SERIAL1_CTRL__tr_par__DEFAULT,
- tr_par_en, R_SERIAL1_CTRL__tr_par_en__DEFAULT,
- tr_bitnr, R_SERIAL1_CTRL__tr_bitnr__DEFAULT,
- data_out, R_SERIAL1_CTRL__data_out__DEFAULT
- );
-#endif
-
-#if USE_GROUP__Serial_port_registers
- REG_SET__R_SERIAL1_REC_CTRL(
- dma_err, R_SERIAL1_REC_CTRL__dma_err__DEFAULT,
- rec_enable, R_SERIAL1_REC_CTRL__rec_enable__DEFAULT,
- rts_, R_SERIAL1_REC_CTRL__rts___DEFAULT,
- sampling, R_SERIAL1_REC_CTRL__sampling__DEFAULT,
- rec_stick_par, R_SERIAL1_REC_CTRL__rec_stick_par__DEFAULT,
- rec_par, R_SERIAL1_REC_CTRL__rec_par__DEFAULT,
- rec_par_en, R_SERIAL1_REC_CTRL__rec_par_en__DEFAULT,
- rec_bitnr, R_SERIAL1_REC_CTRL__rec_bitnr__DEFAULT
- );
-#endif
-
-#if USE_GROUP__Serial_port_registers
- REG_SET__R_SERIAL1_TR_CTRL(
- txd, R_SERIAL1_TR_CTRL__txd__DEFAULT,
- tr_enable, R_SERIAL1_TR_CTRL__tr_enable__DEFAULT,
- auto_cts, R_SERIAL1_TR_CTRL__auto_cts__DEFAULT,
- stop_bits, R_SERIAL1_TR_CTRL__stop_bits__DEFAULT,
- tr_stick_par, R_SERIAL1_TR_CTRL__tr_stick_par__DEFAULT,
- tr_par, R_SERIAL1_TR_CTRL__tr_par__DEFAULT,
- tr_par_en, R_SERIAL1_TR_CTRL__tr_par_en__DEFAULT,
- tr_bitnr, R_SERIAL1_TR_CTRL__tr_bitnr__DEFAULT
- );
-#endif
-
-#if USE_GROUP__Serial_port_registers
- REG_SET__R_SERIAL1_TR_DATA(
- data_out, R_SERIAL1_TR_DATA__data_out__DEFAULT
- );
-#endif
-
-#if USE_GROUP__Serial_port_registers
- REG_SET__R_SERIAL1_XOFF(
- tx_stop, R_SERIAL1_XOFF__tx_stop__DEFAULT,
- auto_xoff, R_SERIAL1_XOFF__auto_xoff__DEFAULT,
- xoff_char, R_SERIAL1_XOFF__xoff_char__DEFAULT
- );
-#endif
-
-#if USE_GROUP__Serial_port_registers
- REG_SET__R_SERIAL2_BAUD(
- tr_baud, R_SERIAL2_BAUD__tr_baud__DEFAULT,
- rec_baud, R_SERIAL2_BAUD__rec_baud__DEFAULT
- );
-#endif
-
-#if USE_GROUP__Serial_port_registers
- REG_SET__R_SERIAL2_CTRL(
- tr_baud, R_SERIAL2_CTRL__tr_baud__DEFAULT,
- rec_baud, R_SERIAL2_CTRL__rec_baud__DEFAULT,
- dma_err, R_SERIAL2_CTRL__dma_err__DEFAULT,
- rec_enable, R_SERIAL2_CTRL__rec_enable__DEFAULT,
- rts_, R_SERIAL2_CTRL__rts___DEFAULT,
- sampling, R_SERIAL2_CTRL__sampling__DEFAULT,
- rec_stick_par, R_SERIAL2_CTRL__rec_stick_par__DEFAULT,
- rec_par, R_SERIAL2_CTRL__rec_par__DEFAULT,
- rec_par_en, R_SERIAL2_CTRL__rec_par_en__DEFAULT,
- rec_bitnr, R_SERIAL2_CTRL__rec_bitnr__DEFAULT,
- txd, R_SERIAL2_CTRL__txd__DEFAULT,
- tr_enable, R_SERIAL2_CTRL__tr_enable__DEFAULT,
- auto_cts, R_SERIAL2_CTRL__auto_cts__DEFAULT,
- stop_bits, R_SERIAL2_CTRL__stop_bits__DEFAULT,
- tr_stick_par, R_SERIAL2_CTRL__tr_stick_par__DEFAULT,
- tr_par, R_SERIAL2_CTRL__tr_par__DEFAULT,
- tr_par_en, R_SERIAL2_CTRL__tr_par_en__DEFAULT,
- tr_bitnr, R_SERIAL2_CTRL__tr_bitnr__DEFAULT,
- data_out, R_SERIAL2_CTRL__data_out__DEFAULT
- );
-#endif
-
-#if USE_GROUP__Serial_port_registers
- REG_SET__R_SERIAL2_REC_CTRL(
- dma_err, R_SERIAL2_REC_CTRL__dma_err__DEFAULT,
- rec_enable, R_SERIAL2_REC_CTRL__rec_enable__DEFAULT,
- rts_, R_SERIAL2_REC_CTRL__rts___DEFAULT,
- sampling, R_SERIAL2_REC_CTRL__sampling__DEFAULT,
- rec_stick_par, R_SERIAL2_REC_CTRL__rec_stick_par__DEFAULT,
- rec_par, R_SERIAL2_REC_CTRL__rec_par__DEFAULT,
- rec_par_en, R_SERIAL2_REC_CTRL__rec_par_en__DEFAULT,
- rec_bitnr, R_SERIAL2_REC_CTRL__rec_bitnr__DEFAULT
- );
-#endif
-
-#if USE_GROUP__Serial_port_registers
- REG_SET__R_SERIAL2_TR_CTRL(
- txd, R_SERIAL2_TR_CTRL__txd__DEFAULT,
- tr_enable, R_SERIAL2_TR_CTRL__tr_enable__DEFAULT,
- auto_cts, R_SERIAL2_TR_CTRL__auto_cts__DEFAULT,
- stop_bits, R_SERIAL2_TR_CTRL__stop_bits__DEFAULT,
- tr_stick_par, R_SERIAL2_TR_CTRL__tr_stick_par__DEFAULT,
- tr_par, R_SERIAL2_TR_CTRL__tr_par__DEFAULT,
- tr_par_en, R_SERIAL2_TR_CTRL__tr_par_en__DEFAULT,
- tr_bitnr, R_SERIAL2_TR_CTRL__tr_bitnr__DEFAULT
- );
-#endif
-
-#if USE_GROUP__Serial_port_registers
- REG_SET__R_SERIAL2_TR_DATA(
- data_out, R_SERIAL2_TR_DATA__data_out__DEFAULT
- );
-#endif
-
-#if USE_GROUP__Serial_port_registers
- REG_SET__R_SERIAL2_XOFF(
- tx_stop, R_SERIAL2_XOFF__tx_stop__DEFAULT,
- auto_xoff, R_SERIAL2_XOFF__auto_xoff__DEFAULT,
- xoff_char, R_SERIAL2_XOFF__xoff_char__DEFAULT
- );
-#endif
-
-#if USE_GROUP__Serial_port_registers
- REG_SET__R_SERIAL3_BAUD(
- tr_baud, R_SERIAL3_BAUD__tr_baud__DEFAULT,
- rec_baud, R_SERIAL3_BAUD__rec_baud__DEFAULT
- );
-#endif
-
-#if USE_GROUP__Serial_port_registers
- REG_SET__R_SERIAL3_CTRL(
- tr_baud, R_SERIAL3_CTRL__tr_baud__DEFAULT,
- rec_baud, R_SERIAL3_CTRL__rec_baud__DEFAULT,
- dma_err, R_SERIAL3_CTRL__dma_err__DEFAULT,
- rec_enable, R_SERIAL3_CTRL__rec_enable__DEFAULT,
- rts_, R_SERIAL3_CTRL__rts___DEFAULT,
- sampling, R_SERIAL3_CTRL__sampling__DEFAULT,
- rec_stick_par, R_SERIAL3_CTRL__rec_stick_par__DEFAULT,
- rec_par, R_SERIAL3_CTRL__rec_par__DEFAULT,
- rec_par_en, R_SERIAL3_CTRL__rec_par_en__DEFAULT,
- rec_bitnr, R_SERIAL3_CTRL__rec_bitnr__DEFAULT,
- txd, R_SERIAL3_CTRL__txd__DEFAULT,
- tr_enable, R_SERIAL3_CTRL__tr_enable__DEFAULT,
- auto_cts, R_SERIAL3_CTRL__auto_cts__DEFAULT,
- stop_bits, R_SERIAL3_CTRL__stop_bits__DEFAULT,
- tr_stick_par, R_SERIAL3_CTRL__tr_stick_par__DEFAULT,
- tr_par, R_SERIAL3_CTRL__tr_par__DEFAULT,
- tr_par_en, R_SERIAL3_CTRL__tr_par_en__DEFAULT,
- tr_bitnr, R_SERIAL3_CTRL__tr_bitnr__DEFAULT,
- data_out, R_SERIAL3_CTRL__data_out__DEFAULT
- );
-#endif
-
-#if USE_GROUP__Serial_port_registers
- REG_SET__R_SERIAL3_REC_CTRL(
- dma_err, R_SERIAL3_REC_CTRL__dma_err__DEFAULT,
- rec_enable, R_SERIAL3_REC_CTRL__rec_enable__DEFAULT,
- rts_, R_SERIAL3_REC_CTRL__rts___DEFAULT,
- sampling, R_SERIAL3_REC_CTRL__sampling__DEFAULT,
- rec_stick_par, R_SERIAL3_REC_CTRL__rec_stick_par__DEFAULT,
- rec_par, R_SERIAL3_REC_CTRL__rec_par__DEFAULT,
- rec_par_en, R_SERIAL3_REC_CTRL__rec_par_en__DEFAULT,
- rec_bitnr, R_SERIAL3_REC_CTRL__rec_bitnr__DEFAULT
- );
-#endif
-
-#if USE_GROUP__Serial_port_registers
- REG_SET__R_SERIAL3_TR_CTRL(
- txd, R_SERIAL3_TR_CTRL__txd__DEFAULT,
- tr_enable, R_SERIAL3_TR_CTRL__tr_enable__DEFAULT,
- auto_cts, R_SERIAL3_TR_CTRL__auto_cts__DEFAULT,
- stop_bits, R_SERIAL3_TR_CTRL__stop_bits__DEFAULT,
- tr_stick_par, R_SERIAL3_TR_CTRL__tr_stick_par__DEFAULT,
- tr_par, R_SERIAL3_TR_CTRL__tr_par__DEFAULT,
- tr_par_en, R_SERIAL3_TR_CTRL__tr_par_en__DEFAULT,
- tr_bitnr, R_SERIAL3_TR_CTRL__tr_bitnr__DEFAULT
- );
-#endif
-
-#if USE_GROUP__Serial_port_registers
- REG_SET__R_SERIAL3_TR_DATA(
- data_out, R_SERIAL3_TR_DATA__data_out__DEFAULT
- );
-#endif
-
-#if USE_GROUP__Serial_port_registers
- REG_SET__R_SERIAL3_XOFF(
- tx_stop, R_SERIAL3_XOFF__tx_stop__DEFAULT,
- auto_xoff, R_SERIAL3_XOFF__auto_xoff__DEFAULT,
- xoff_char, R_SERIAL3_XOFF__xoff_char__DEFAULT
- );
-#endif
-
-#if USE_GROUP__Timer_registers
- REG_SET__R_SERIAL_PRESCALE(
- ser_presc, R_SERIAL_PRESCALE__ser_presc__DEFAULT
- );
-#endif
-
-#if USE_GROUP__DMA_registers
- REG_SET__R_SET_EOP(
- ch9_eop, R_SET_EOP__ch9_eop__DEFAULT,
- ch7_eop, R_SET_EOP__ch7_eop__DEFAULT,
- ch5_eop, R_SET_EOP__ch5_eop__DEFAULT,
- ch3_eop, R_SET_EOP__ch3_eop__DEFAULT
- );
-#endif
-
-#if USE_GROUP__Shared_RAM_interface_registers
- REG_SET__R_SHARED_RAM_ADDR(
- base_addr, R_SHARED_RAM_ADDR__base_addr__DEFAULT
- );
-#endif
-
-#if USE_GROUP__Shared_RAM_interface_registers
- REG_SET__R_SHARED_RAM_CONFIG(
- width, R_SHARED_RAM_CONFIG__width__DEFAULT,
- enable, R_SHARED_RAM_CONFIG__enable__DEFAULT,
- pint, R_SHARED_RAM_CONFIG__pint__DEFAULT,
- clri, R_SHARED_RAM_CONFIG__clri__DEFAULT
- );
-#endif
-
-#if USE_GROUP__Test_mode_registers
- REG_SET__R_SINGLE_STEP(
- single_step, R_SINGLE_STEP__single_step__DEFAULT,
- step_wr, R_SINGLE_STEP__step_wr__DEFAULT,
- step_rd, R_SINGLE_STEP__step_rd__DEFAULT,
- step_fetch, R_SINGLE_STEP__step_fetch__DEFAULT
- );
-#endif
-
-#if USE_GROUP__Syncrounous_serial_port_registers
- REG_SET__R_SYNC_SERIAL1_CTRL(
- tr_baud, R_SYNC_SERIAL1_CTRL__tr_baud__DEFAULT,
- dma_enable, R_SYNC_SERIAL1_CTRL__dma_enable__DEFAULT,
- mode, R_SYNC_SERIAL1_CTRL__mode__DEFAULT,
- error, R_SYNC_SERIAL1_CTRL__error__DEFAULT,
- rec_enable, R_SYNC_SERIAL1_CTRL__rec_enable__DEFAULT,
- f_synctype, R_SYNC_SERIAL1_CTRL__f_synctype__DEFAULT,
- f_syncsize, R_SYNC_SERIAL1_CTRL__f_syncsize__DEFAULT,
- f_sync, R_SYNC_SERIAL1_CTRL__f_sync__DEFAULT,
- clk_mode, R_SYNC_SERIAL1_CTRL__clk_mode__DEFAULT,
- clk_halt, R_SYNC_SERIAL1_CTRL__clk_halt__DEFAULT,
- bitorder, R_SYNC_SERIAL1_CTRL__bitorder__DEFAULT,
- tr_enable, R_SYNC_SERIAL1_CTRL__tr_enable__DEFAULT,
- wordsize, R_SYNC_SERIAL1_CTRL__wordsize__DEFAULT,
- buf_empty, R_SYNC_SERIAL1_CTRL__buf_empty__DEFAULT,
- buf_full, R_SYNC_SERIAL1_CTRL__buf_full__DEFAULT,
- flow_ctrl, R_SYNC_SERIAL1_CTRL__flow_ctrl__DEFAULT,
- clk_polarity, R_SYNC_SERIAL1_CTRL__clk_polarity__DEFAULT,
- frame_polarity, R_SYNC_SERIAL1_CTRL__frame_polarity__DEFAULT,
- status_polarity, R_SYNC_SERIAL1_CTRL__status_polarity__DEFAULT,
- clk_driver, R_SYNC_SERIAL1_CTRL__clk_driver__DEFAULT,
- frame_driver, R_SYNC_SERIAL1_CTRL__frame_driver__DEFAULT,
- status_driver, R_SYNC_SERIAL1_CTRL__status_driver__DEFAULT,
- def_out0, R_SYNC_SERIAL1_CTRL__def_out0__DEFAULT
- );
-#endif
-
-#if USE_GROUP__Syncrounous_serial_port_registers
- REG_SET__R_SYNC_SERIAL1_TR_BYTE(
- data_out, R_SYNC_SERIAL1_TR_BYTE__data_out__DEFAULT
- );
-#endif
-
-#if USE_GROUP__Syncrounous_serial_port_registers
- REG_SET__R_SYNC_SERIAL1_TR_DATA(
- data_out, R_SYNC_SERIAL1_TR_DATA__data_out__DEFAULT
- );
-#endif
-
-#if USE_GROUP__Syncrounous_serial_port_registers
- REG_SET__R_SYNC_SERIAL1_TR_WORD(
- data_out, R_SYNC_SERIAL1_TR_WORD__data_out__DEFAULT
- );
-#endif
-
-#if USE_GROUP__Syncrounous_serial_port_registers
- REG_SET__R_SYNC_SERIAL3_CTRL(
- tr_baud, R_SYNC_SERIAL3_CTRL__tr_baud__DEFAULT,
- dma_enable, R_SYNC_SERIAL3_CTRL__dma_enable__DEFAULT,
- mode, R_SYNC_SERIAL3_CTRL__mode__DEFAULT,
- error, R_SYNC_SERIAL3_CTRL__error__DEFAULT,
- rec_enable, R_SYNC_SERIAL3_CTRL__rec_enable__DEFAULT,
- f_synctype, R_SYNC_SERIAL3_CTRL__f_synctype__DEFAULT,
- f_syncsize, R_SYNC_SERIAL3_CTRL__f_syncsize__DEFAULT,
- f_sync, R_SYNC_SERIAL3_CTRL__f_sync__DEFAULT,
- clk_mode, R_SYNC_SERIAL3_CTRL__clk_mode__DEFAULT,
- clk_halt, R_SYNC_SERIAL3_CTRL__clk_halt__DEFAULT,
- bitorder, R_SYNC_SERIAL3_CTRL__bitorder__DEFAULT,
- tr_enable, R_SYNC_SERIAL3_CTRL__tr_enable__DEFAULT,
- wordsize, R_SYNC_SERIAL3_CTRL__wordsize__DEFAULT,
- buf_empty, R_SYNC_SERIAL3_CTRL__buf_empty__DEFAULT,
- buf_full, R_SYNC_SERIAL3_CTRL__buf_full__DEFAULT,
- flow_ctrl, R_SYNC_SERIAL3_CTRL__flow_ctrl__DEFAULT,
- clk_polarity, R_SYNC_SERIAL3_CTRL__clk_polarity__DEFAULT,
- frame_polarity, R_SYNC_SERIAL3_CTRL__frame_polarity__DEFAULT,
- status_polarity, R_SYNC_SERIAL3_CTRL__status_polarity__DEFAULT,
- clk_driver, R_SYNC_SERIAL3_CTRL__clk_driver__DEFAULT,
- frame_driver, R_SYNC_SERIAL3_CTRL__frame_driver__DEFAULT,
- status_driver, R_SYNC_SERIAL3_CTRL__status_driver__DEFAULT,
- def_out0, R_SYNC_SERIAL3_CTRL__def_out0__DEFAULT
- );
-#endif
-
-#if USE_GROUP__Syncrounous_serial_port_registers
- REG_SET__R_SYNC_SERIAL3_TR_BYTE(
- data_out, R_SYNC_SERIAL3_TR_BYTE__data_out__DEFAULT
- );
-#endif
-
-#if USE_GROUP__Syncrounous_serial_port_registers
- REG_SET__R_SYNC_SERIAL3_TR_DATA(
- data_out, R_SYNC_SERIAL3_TR_DATA__data_out__DEFAULT
- );
-#endif
-
-#if USE_GROUP__Syncrounous_serial_port_registers
- REG_SET__R_SYNC_SERIAL3_TR_WORD(
- data_out, R_SYNC_SERIAL3_TR_WORD__data_out__DEFAULT
- );
-#endif
-
-#if USE_GROUP__Timer_registers
- REG_SET__R_SYNC_SERIAL_PRESCALE(
- clk_sel_u3, R_SYNC_SERIAL_PRESCALE__clk_sel_u3__DEFAULT,
- word_stb_sel_u3, R_SYNC_SERIAL_PRESCALE__word_stb_sel_u3__DEFAULT,
- clk_sel_u1, R_SYNC_SERIAL_PRESCALE__clk_sel_u1__DEFAULT,
- word_stb_sel_u1, R_SYNC_SERIAL_PRESCALE__word_stb_sel_u1__DEFAULT,
- prescaler, R_SYNC_SERIAL_PRESCALE__prescaler__DEFAULT,
- warp_mode, R_SYNC_SERIAL_PRESCALE__warp_mode__DEFAULT,
- frame_rate, R_SYNC_SERIAL_PRESCALE__frame_rate__DEFAULT,
- word_rate, R_SYNC_SERIAL_PRESCALE__word_rate__DEFAULT
- );
-#endif
-
-#if USE_GROUP__Test_mode_registers
- REG_SET__R_TEST_MODE(
- single_step, R_TEST_MODE__single_step__DEFAULT,
- step_wr, R_TEST_MODE__step_wr__DEFAULT,
- step_rd, R_TEST_MODE__step_rd__DEFAULT,
- step_fetch, R_TEST_MODE__step_fetch__DEFAULT,
- mmu_test, R_TEST_MODE__mmu_test__DEFAULT,
- usb_test, R_TEST_MODE__usb_test__DEFAULT,
- scsi_timer_test, R_TEST_MODE__scsi_timer_test__DEFAULT,
- backoff, R_TEST_MODE__backoff__DEFAULT,
- snmp_test, R_TEST_MODE__snmp_test__DEFAULT,
- snmp_inc, R_TEST_MODE__snmp_inc__DEFAULT,
- ser_loop, R_TEST_MODE__ser_loop__DEFAULT,
- baudrate, R_TEST_MODE__baudrate__DEFAULT,
- timer, R_TEST_MODE__timer__DEFAULT,
- cache_test, R_TEST_MODE__cache_test__DEFAULT,
- tag_test, R_TEST_MODE__tag_test__DEFAULT,
- cache_enable, R_TEST_MODE__cache_enable__DEFAULT
- );
-#endif
-
-#if USE_GROUP__Timer_registers
- REG_SET__R_TIMER_CTRL(
- timerdiv1, R_TIMER_CTRL__timerdiv1__DEFAULT,
- timerdiv0, R_TIMER_CTRL__timerdiv0__DEFAULT,
- presc_timer1, R_TIMER_CTRL__presc_timer1__DEFAULT,
- i1, R_TIMER_CTRL__i1__DEFAULT,
- tm1, R_TIMER_CTRL__tm1__DEFAULT,
- clksel1, R_TIMER_CTRL__clksel1__DEFAULT,
- presc_ext, R_TIMER_CTRL__presc_ext__DEFAULT,
- i0, R_TIMER_CTRL__i0__DEFAULT,
- tm0, R_TIMER_CTRL__tm0__DEFAULT,
- clksel0, R_TIMER_CTRL__clksel0__DEFAULT
- );
-#endif
-
-#if USE_GROUP__Timer_registers
- REG_SET__R_TIMER_PRESCALE(
- tim_presc, R_TIMER_PRESCALE__tim_presc__DEFAULT
- );
-#endif
-
-#if USE_GROUP__USB_interface_control_registers
- REG_SET__R_USB_IRQ_MASK_CLR(
- iso_eof, R_USB_IRQ_MASK_CLR__iso_eof__DEFAULT,
- intr_eof, R_USB_IRQ_MASK_CLR__intr_eof__DEFAULT,
- iso_eot, R_USB_IRQ_MASK_CLR__iso_eot__DEFAULT,
- intr_eot, R_USB_IRQ_MASK_CLR__intr_eot__DEFAULT,
- ctl_eot, R_USB_IRQ_MASK_CLR__ctl_eot__DEFAULT,
- bulk_eot, R_USB_IRQ_MASK_CLR__bulk_eot__DEFAULT,
- epid_attn, R_USB_IRQ_MASK_CLR__epid_attn__DEFAULT,
- sof, R_USB_IRQ_MASK_CLR__sof__DEFAULT,
- port_status, R_USB_IRQ_MASK_CLR__port_status__DEFAULT,
- ctl_status, R_USB_IRQ_MASK_CLR__ctl_status__DEFAULT
- );
-#endif
-
-#if USE_GROUP__USB_interface_control_registers
- REG_SET__R_USB_IRQ_MASK_CLR_DEV(
- out_eot, R_USB_IRQ_MASK_CLR_DEV__out_eot__DEFAULT,
- ep3_in_eot, R_USB_IRQ_MASK_CLR_DEV__ep3_in_eot__DEFAULT,
- ep2_in_eot, R_USB_IRQ_MASK_CLR_DEV__ep2_in_eot__DEFAULT,
- ep1_in_eot, R_USB_IRQ_MASK_CLR_DEV__ep1_in_eot__DEFAULT,
- ep0_in_eot, R_USB_IRQ_MASK_CLR_DEV__ep0_in_eot__DEFAULT,
- epid_attn, R_USB_IRQ_MASK_CLR_DEV__epid_attn__DEFAULT,
- sof, R_USB_IRQ_MASK_CLR_DEV__sof__DEFAULT,
- port_status, R_USB_IRQ_MASK_CLR_DEV__port_status__DEFAULT,
- ctl_status, R_USB_IRQ_MASK_CLR_DEV__ctl_status__DEFAULT
- );
-#endif
-
-#if USE_GROUP__USB_interface_control_registers
- REG_SET__R_USB_IRQ_MASK_SET(
- iso_eof, R_USB_IRQ_MASK_SET__iso_eof__DEFAULT,
- intr_eof, R_USB_IRQ_MASK_SET__intr_eof__DEFAULT,
- iso_eot, R_USB_IRQ_MASK_SET__iso_eot__DEFAULT,
- intr_eot, R_USB_IRQ_MASK_SET__intr_eot__DEFAULT,
- ctl_eot, R_USB_IRQ_MASK_SET__ctl_eot__DEFAULT,
- bulk_eot, R_USB_IRQ_MASK_SET__bulk_eot__DEFAULT,
- epid_attn, R_USB_IRQ_MASK_SET__epid_attn__DEFAULT,
- sof, R_USB_IRQ_MASK_SET__sof__DEFAULT,
- port_status, R_USB_IRQ_MASK_SET__port_status__DEFAULT,
- ctl_status, R_USB_IRQ_MASK_SET__ctl_status__DEFAULT
- );
-#endif
-
-#if USE_GROUP__USB_interface_control_registers
- REG_SET__R_USB_IRQ_MASK_SET_DEV(
- out_eot, R_USB_IRQ_MASK_SET_DEV__out_eot__DEFAULT,
- ep3_in_eot, R_USB_IRQ_MASK_SET_DEV__ep3_in_eot__DEFAULT,
- ep2_in_eot, R_USB_IRQ_MASK_SET_DEV__ep2_in_eot__DEFAULT,
- ep1_in_eot, R_USB_IRQ_MASK_SET_DEV__ep1_in_eot__DEFAULT,
- ep0_in_eot, R_USB_IRQ_MASK_SET_DEV__ep0_in_eot__DEFAULT,
- epid_attn, R_USB_IRQ_MASK_SET_DEV__epid_attn__DEFAULT,
- sof, R_USB_IRQ_MASK_SET_DEV__sof__DEFAULT,
- port_status, R_USB_IRQ_MASK_SET_DEV__port_status__DEFAULT,
- ctl_status, R_USB_IRQ_MASK_SET_DEV__ctl_status__DEFAULT
- );
-#endif
-
-#if USE_GROUP__USB_interface_control_registers
- REG_SET__R_USB_PORT1_DISABLE(
- disable, R_USB_PORT1_DISABLE__disable__DEFAULT
- );
-#endif
-
-#if USE_GROUP__USB_interface_control_registers
- REG_SET__R_USB_PORT2_DISABLE(
- disable, R_USB_PORT2_DISABLE__disable__DEFAULT
- );
-#endif
-
-#if USE_GROUP__Interrupt_mask_and_status_registers
- REG_SET__R_VECT_MASK_CLR(
- usb, R_VECT_MASK_CLR__usb__DEFAULT,
- dma9, R_VECT_MASK_CLR__dma9__DEFAULT,
- dma8, R_VECT_MASK_CLR__dma8__DEFAULT,
- dma7, R_VECT_MASK_CLR__dma7__DEFAULT,
- dma6, R_VECT_MASK_CLR__dma6__DEFAULT,
- dma5, R_VECT_MASK_CLR__dma5__DEFAULT,
- dma4, R_VECT_MASK_CLR__dma4__DEFAULT,
- dma3, R_VECT_MASK_CLR__dma3__DEFAULT,
- dma2, R_VECT_MASK_CLR__dma2__DEFAULT,
- dma1, R_VECT_MASK_CLR__dma1__DEFAULT,
- dma0, R_VECT_MASK_CLR__dma0__DEFAULT,
- ext_dma1, R_VECT_MASK_CLR__ext_dma1__DEFAULT,
- ext_dma0, R_VECT_MASK_CLR__ext_dma0__DEFAULT,
- pa, R_VECT_MASK_CLR__pa__DEFAULT,
- irq_intnr, R_VECT_MASK_CLR__irq_intnr__DEFAULT,
- sw, R_VECT_MASK_CLR__sw__DEFAULT,
- serial, R_VECT_MASK_CLR__serial__DEFAULT,
- snmp, R_VECT_MASK_CLR__snmp__DEFAULT,
- network, R_VECT_MASK_CLR__network__DEFAULT,
- scsi1, R_VECT_MASK_CLR__scsi1__DEFAULT,
- scsi0, R_VECT_MASK_CLR__scsi0__DEFAULT,
- timer1, R_VECT_MASK_CLR__timer1__DEFAULT,
- timer0, R_VECT_MASK_CLR__timer0__DEFAULT,
- nmi, R_VECT_MASK_CLR__nmi__DEFAULT,
- some, R_VECT_MASK_CLR__some__DEFAULT
- );
-#endif
-
-#if USE_GROUP__Interrupt_mask_and_status_registers
- REG_SET__R_VECT_MASK_SET(
- usb, R_VECT_MASK_SET__usb__DEFAULT,
- dma9, R_VECT_MASK_SET__dma9__DEFAULT,
- dma8, R_VECT_MASK_SET__dma8__DEFAULT,
- dma7, R_VECT_MASK_SET__dma7__DEFAULT,
- dma6, R_VECT_MASK_SET__dma6__DEFAULT,
- dma5, R_VECT_MASK_SET__dma5__DEFAULT,
- dma4, R_VECT_MASK_SET__dma4__DEFAULT,
- dma3, R_VECT_MASK_SET__dma3__DEFAULT,
- dma2, R_VECT_MASK_SET__dma2__DEFAULT,
- dma1, R_VECT_MASK_SET__dma1__DEFAULT,
- dma0, R_VECT_MASK_SET__dma0__DEFAULT,
- ext_dma1, R_VECT_MASK_SET__ext_dma1__DEFAULT,
- ext_dma0, R_VECT_MASK_SET__ext_dma0__DEFAULT,
- pa, R_VECT_MASK_SET__pa__DEFAULT,
- irq_intnr, R_VECT_MASK_SET__irq_intnr__DEFAULT,
- sw, R_VECT_MASK_SET__sw__DEFAULT,
- serial, R_VECT_MASK_SET__serial__DEFAULT,
- snmp, R_VECT_MASK_SET__snmp__DEFAULT,
- network, R_VECT_MASK_SET__network__DEFAULT,
- scsi1, R_VECT_MASK_SET__scsi1__DEFAULT,
- scsi0, R_VECT_MASK_SET__scsi0__DEFAULT,
- timer1, R_VECT_MASK_SET__timer1__DEFAULT,
- timer0, R_VECT_MASK_SET__timer0__DEFAULT,
- nmi, R_VECT_MASK_SET__nmi__DEFAULT,
- some, R_VECT_MASK_SET__some__DEFAULT
- );
-#endif
-
-#if USE_GROUP__Bus_interface_configuration_registers
- REG_SET__R_WAITSTATES(
- pcs4_7_zw, R_WAITSTATES__pcs4_7_zw__DEFAULT,
- pcs4_7_ew, R_WAITSTATES__pcs4_7_ew__DEFAULT,
- pcs4_7_lw, R_WAITSTATES__pcs4_7_lw__DEFAULT,
- pcs0_3_zw, R_WAITSTATES__pcs0_3_zw__DEFAULT,
- pcs0_3_ew, R_WAITSTATES__pcs0_3_ew__DEFAULT,
- pcs0_3_lw, R_WAITSTATES__pcs0_3_lw__DEFAULT,
- sram_zw, R_WAITSTATES__sram_zw__DEFAULT,
- sram_ew, R_WAITSTATES__sram_ew__DEFAULT,
- sram_lw, R_WAITSTATES__sram_lw__DEFAULT,
- flash_zw, R_WAITSTATES__flash_zw__DEFAULT,
- flash_ew, R_WAITSTATES__flash_ew__DEFAULT,
- flash_lw, R_WAITSTATES__flash_lw__DEFAULT
- );
-#endif
-
-#if USE_GROUP__Timer_registers
- REG_SET__R_WATCHDOG(
- key, R_WATCHDOG__key__DEFAULT,
- enable, R_WATCHDOG__enable__DEFAULT
- );
-#endif
-#endif
-} /* init_shadow__hwregs */
+++ /dev/null
-/*!**********************************************************************
-*!
-*! FILE NAME: hwregs.h
-*!
-*! DESCRIPTION: Interface to shadow registers.
-*!
-*! FUNCTIONS: none
-*!
-*! NOTE: This file is automatically generated, do _not_ edit.
-*! Created: Thu Oct 3 01:21:27 2002
-*! By: Id: shadow_gen,v 1.14 2002/10/02 20:31:22 hp Exp
-*! From: /n/asic/projects/etrax_ng/doc/work/etrax_ng_regs.rd 1.168
-*! /n/asic/projects/etrax_ng/include//hwregs.ctrl 1.3
-*!
-*! MACROS: REG_GET
-*! REG_IGET
-*! REG_VGET
-*! REG_SET
-*! REG_ISET
-*! REG_VSET
-*! REG_SET_VAL
-*! REG_SET__register-name (one for each register)
-*! REG_SET__register-name__SHADOW (one for each register)
-*! REG_MASK__register-name (one for each register)
-*! REG_VAL__register-name (one for each register)
-*! REG_EQL
-*! REG_IEQL
-*! REG_VEQL
-*! REG_VAL
-*! REG_CHK_VAL
-*! REG_RD
-*! REG_IRD
-*! REG_WR
-*! REG_IWR
-*! REG_ADDR
-*! REG_BITNR
-*!
-*!----------------------------------------------------------------------
-*! HISTORY
-*!
-*! DATE NAME CHANGES
-*! ---- ---- -------
-*! Apr 01 1998 Jan Bengtsson Initial version
-*! Oct 01 2002 Hans-Peter Nilsson Large mechanical changes to correct
-*! use of the ## operator.
-*!----------------------------------------------------------------------
-*!
-*! (C) Copyright 1998, 2002 Axis Communications AB, LUND, SWEDEN
-*!
-*!**********************************************************************/
-/* %Z% %M% %I% %G% */
-
-#ifndef __HWREGS_H__
-#define __HWREGS_H__
-
-/********************** INCLUDE FILES SECTION **************************/
-#ifndef __ASSEMBLER__
-#include "compiler.h"
-#include "debug.h"
-#endif /* __ASSEMBLER__ */
-
-#include "project.h"
-#include "hwregs_def.h"
-
-#ifndef __ASSEMBLER__
-
-#ifndef __REG_GENERAL_1_H__
-#define __REG_GENERAL_1_H__
-
-/*
-** This part of hwregs.h is common to all shadow
-** register modules, and should therefore only be included once to
-** avoid macro redefinitions.
-*/
-
-/* REG_DEBUG is by default controlled by DEBUG from debug.h. */
-#ifndef REG_DEBUG
-#ifdef DEBUG
-#define REG_DEBUG 1
-#else
-#define REG_DEBUG 0
-#endif /* DEBUG */
-#endif /* REG_DEBUG */
-
-#endif /* __REG_GENERAL_1_H__ */
-
-#endif /* __ASSEMBLER__ */
-
-/********************** TYPE DEFINITION SECTION ************************/
-#ifndef __ASSEMBLER__
-
-#ifndef REG_NO_SHADOW
-
-/* Only write only registers need a shadow register. */
-
-typedef struct {
-#if USE_GROUP__Bus_interface_configuration_registers
- byte R_WAITSTATES[4];
- byte R_BUS_CONFIG[4];
- byte R_DRAM_TIMING[4];
- byte R_DRAM_CONFIG[4];
-#endif
-#if USE_GROUP__External_DMA_registers
- byte R_EXT_DMA_0_CMD[4];
- byte R_EXT_DMA_0_ADDR[4];
- byte R_EXT_DMA_1_CMD[4];
- byte R_EXT_DMA_1_ADDR[4];
-#endif
-#if USE_GROUP__Timer_registers
- byte R_TIMER_CTRL[4];
- byte R_WATCHDOG[4];
-#endif
-#if USE_GROUP__General_config_registers
- byte R_GEN_CONFIG[4];
-#endif
-#if USE_GROUP__General_port_configuration_registers
- byte R_PORT_PA_SET[4];
-#endif
-#if USE_GROUP__General_config_registers
- byte R_GEN_CONFIG_II[4];
-#endif
-#if USE_GROUP__General_port_configuration_registers
- byte R_PORT_PB_SET[4];
-#endif
-#if USE_GROUP__DMA_registers
- byte R_SET_EOP[4];
-#endif
-#if USE_GROUP__ATA_interface_registers || \
- USE_GROUP__Parallel_printer_port_registers || \
- USE_GROUP__SCSI_registers || \
- USE_GROUP__Shared_RAM_interface_registers
- byte R_ATA_CTRL_DATA[4];
- byte R_ATA_CONFIG[4];
-#endif
-#if USE_GROUP__Parallel_printer_port_registers
- byte R_PAR0_DELAY[4];
-#endif
-#if USE_GROUP__Parallel_printer_port_registers || \
- USE_GROUP__SCSI_registers || \
- USE_GROUP__USB_interface_control_registers
- byte R_PAR1_CTRL_DATA[4];
-#endif
-#if USE_GROUP__Parallel_printer_port_registers || \
- USE_GROUP__SCSI_registers
- byte R_PAR1_CONFIG[4];
-#endif
-#if USE_GROUP__Parallel_printer_port_registers
- byte R_PAR1_DELAY[4];
-#endif
-#if USE_GROUP__Serial_port_registers
- byte R_ALT_SER_BAUDRATE[4];
- byte R_SERIAL0_CTRL[4];
- byte R_SERIAL0_XOFF[4];
-#endif
-#if USE_GROUP__Serial_port_registers || \
- USE_GROUP__Syncrounous_serial_port_registers || \
- USE_GROUP__USB_interface_control_registers
- byte R_SERIAL1_CTRL[4];
-#endif
-#if USE_GROUP__Serial_port_registers || \
- USE_GROUP__Syncrounous_serial_port_registers
- byte R_SERIAL1_XOFF[4];
-#endif
-#if USE_GROUP__Serial_port_registers
- byte R_SERIAL2_CTRL[4];
- byte R_SERIAL2_XOFF[4];
-#endif
-#if USE_GROUP__Serial_port_registers || \
- USE_GROUP__Syncrounous_serial_port_registers
- byte R_SERIAL3_CTRL[4];
- byte R_SERIAL3_XOFF[4];
-#endif
-#if USE_GROUP__Network_interface_registers
- byte R_NETWORK_SA_0[4];
- byte R_NETWORK_SA_1[4];
- byte R_NETWORK_SA_2[4];
- byte R_NETWORK_GA_0[4];
- byte R_NETWORK_GA_1[4];
- byte R_NETWORK_REC_CONFIG[4];
- byte R_NETWORK_GEN_CONFIG[4];
- byte R_NETWORK_TR_CTRL[4];
- byte R_NETWORK_MGM_CTRL[4];
-#endif
-#if USE_GROUP__Interrupt_mask_and_status_registers
- byte R_IRQ_MASK0_CLR[4];
- byte R_IRQ_MASK0_SET[4];
- byte R_IRQ_MASK1_CLR[4];
- byte R_IRQ_MASK1_SET[4];
- byte R_IRQ_MASK2_CLR[4];
- byte R_IRQ_MASK2_SET[4];
- byte R_VECT_MASK_CLR[4];
- byte R_VECT_MASK_SET[4];
-#endif
-#if USE_GROUP__Timer_registers
- byte R_CLOCK_PRESCALE[4];
- byte R_SYNC_SERIAL_PRESCALE[4];
-#endif
-#if USE_GROUP__Test_mode_registers
- byte R_TEST_MODE[4];
-#endif
-#if USE_GROUP__DMA_registers
- byte R_DMA_CH0_CLR_INTR[1];
- byte R_DMA_CH1_CLR_INTR[1];
- byte R_DMA_CH2_CLR_INTR[1];
- byte R_DMA_CH3_CLR_INTR[1];
- byte R_DMA_CH4_CLR_INTR[1];
- byte R_DMA_CH8_SUB0_CLR_INTR[1];
- byte R_DMA_CH5_CLR_INTR[1];
- byte R_DMA_CH8_SUB1_CLR_INTR[1];
- byte R_DMA_CH6_CLR_INTR[1];
- byte R_DMA_CH8_SUB2_CLR_INTR[1];
- byte R_DMA_CH7_CLR_INTR[1];
- byte R_DMA_CH8_SUB3_CLR_INTR[1];
- byte R_DMA_CH8_CLR_INTR[1];
- byte R_DMA_CH9_CLR_INTR[1];
-#endif
-#if USE_GROUP__USB_interface_control_registers
- byte R_USB_IRQ_MASK_SET[2];
- byte R_USB_IRQ_MASK_CLR[2];
-#endif
-#if USE_GROUP__MMU_registers
- byte R_MMU_CONFIG[4];
- byte R_MMU_KBASE_LO[4];
- byte R_MMU_KBASE_HI[4];
-#endif
-} reg_shadow_type__hwregs;
-
-#else /* REG_NO_SHADOW */
-
-typedef const udword reg_shadow_type__hwregs;
-
-#endif /* REG_NO_SHADOW */
-
-extern reg_shadow_type__hwregs reg_shadow__hwregs;
-
-#if REG_DEBUG
-
-/*
- * Only write only registers need an initiated flag.
- * Flag is set to all ones at startup, and cleared to
- * zero when initiated.
- */
-
-#ifndef REG_NO_SHADOW
-
-typedef struct {
-#if USE_GROUP__Bus_interface_configuration_registers
- byte R_WAITSTATES[4];
- byte R_BUS_CONFIG[4];
- byte R_DRAM_TIMING[4];
- byte R_DRAM_CONFIG[4];
-#endif
-#if USE_GROUP__External_DMA_registers
- byte R_EXT_DMA_0_CMD[4];
- byte R_EXT_DMA_0_ADDR[4];
- byte R_EXT_DMA_1_CMD[4];
- byte R_EXT_DMA_1_ADDR[4];
-#endif
-#if USE_GROUP__Timer_registers
- byte R_TIMER_CTRL[4];
- byte R_WATCHDOG[4];
-#endif
-#if USE_GROUP__General_config_registers
- byte R_GEN_CONFIG[4];
-#endif
-#if USE_GROUP__General_port_configuration_registers
- byte R_PORT_PA_SET[4];
-#endif
-#if USE_GROUP__General_config_registers
- byte R_GEN_CONFIG_II[4];
-#endif
-#if USE_GROUP__General_port_configuration_registers
- byte R_PORT_PB_SET[4];
-#endif
-#if USE_GROUP__DMA_registers
- byte R_SET_EOP[4];
-#endif
-#if USE_GROUP__ATA_interface_registers || \
- USE_GROUP__Parallel_printer_port_registers || \
- USE_GROUP__SCSI_registers || \
- USE_GROUP__Shared_RAM_interface_registers
- byte R_ATA_CTRL_DATA[4];
- byte R_ATA_CONFIG[4];
-#endif
-#if USE_GROUP__Parallel_printer_port_registers
- byte R_PAR0_DELAY[4];
-#endif
-#if USE_GROUP__Parallel_printer_port_registers || \
- USE_GROUP__SCSI_registers || \
- USE_GROUP__USB_interface_control_registers
- byte R_PAR1_CTRL_DATA[4];
-#endif
-#if USE_GROUP__Parallel_printer_port_registers || \
- USE_GROUP__SCSI_registers
- byte R_PAR1_CONFIG[4];
-#endif
-#if USE_GROUP__Parallel_printer_port_registers
- byte R_PAR1_DELAY[4];
-#endif
-#if USE_GROUP__Serial_port_registers
- byte R_ALT_SER_BAUDRATE[4];
- byte R_SERIAL0_CTRL[4];
- byte R_SERIAL0_XOFF[4];
-#endif
-#if USE_GROUP__Serial_port_registers || \
- USE_GROUP__Syncrounous_serial_port_registers || \
- USE_GROUP__USB_interface_control_registers
- byte R_SERIAL1_CTRL[4];
-#endif
-#if USE_GROUP__Serial_port_registers || \
- USE_GROUP__Syncrounous_serial_port_registers
- byte R_SERIAL1_XOFF[4];
-#endif
-#if USE_GROUP__Serial_port_registers
- byte R_SERIAL2_CTRL[4];
- byte R_SERIAL2_XOFF[4];
-#endif
-#if USE_GROUP__Serial_port_registers || \
- USE_GROUP__Syncrounous_serial_port_registers
- byte R_SERIAL3_CTRL[4];
- byte R_SERIAL3_XOFF[4];
-#endif
-#if USE_GROUP__Network_interface_registers
- byte R_NETWORK_SA_0[4];
- byte R_NETWORK_SA_1[4];
- byte R_NETWORK_SA_2[4];
- byte R_NETWORK_GA_0[4];
- byte R_NETWORK_GA_1[4];
- byte R_NETWORK_REC_CONFIG[4];
- byte R_NETWORK_GEN_CONFIG[4];
- byte R_NETWORK_TR_CTRL[4];
- byte R_NETWORK_MGM_CTRL[4];
-#endif
-#if USE_GROUP__Interrupt_mask_and_status_registers
- byte R_IRQ_MASK0_CLR[4];
- byte R_IRQ_MASK0_SET[4];
- byte R_IRQ_MASK1_CLR[4];
- byte R_IRQ_MASK1_SET[4];
- byte R_IRQ_MASK2_CLR[4];
- byte R_IRQ_MASK2_SET[4];
- byte R_VECT_MASK_CLR[4];
- byte R_VECT_MASK_SET[4];
-#endif
-#if USE_GROUP__Timer_registers
- byte R_CLOCK_PRESCALE[4];
- byte R_SYNC_SERIAL_PRESCALE[4];
-#endif
-#if USE_GROUP__Test_mode_registers
- byte R_TEST_MODE[4];
-#endif
-#if USE_GROUP__DMA_registers
- byte R_DMA_CH0_CLR_INTR[1];
- byte R_DMA_CH1_CLR_INTR[1];
- byte R_DMA_CH2_CLR_INTR[1];
- byte R_DMA_CH3_CLR_INTR[1];
- byte R_DMA_CH4_CLR_INTR[1];
- byte R_DMA_CH8_SUB0_CLR_INTR[1];
- byte R_DMA_CH5_CLR_INTR[1];
- byte R_DMA_CH8_SUB1_CLR_INTR[1];
- byte R_DMA_CH6_CLR_INTR[1];
- byte R_DMA_CH8_SUB2_CLR_INTR[1];
- byte R_DMA_CH7_CLR_INTR[1];
- byte R_DMA_CH8_SUB3_CLR_INTR[1];
- byte R_DMA_CH8_CLR_INTR[1];
- byte R_DMA_CH9_CLR_INTR[1];
-#endif
-#if USE_GROUP__USB_interface_control_registers
- byte R_USB_IRQ_MASK_SET[2];
- byte R_USB_IRQ_MASK_CLR[2];
-#endif
-#if USE_GROUP__MMU_registers
- byte R_MMU_CONFIG[4];
- byte R_MMU_KBASE_LO[4];
- byte R_MMU_KBASE_HI[4];
-#endif
-} reg_initiated_type__hwregs;
-
-#else /* REG_NO_SHADOW */
-
-typedef const udword reg_initiated_type__hwregs;
-
-#endif /* REG_NO_SHADOW */
-
-extern reg_initiated_type__hwregs reg_initiated__hwregs;
-
-#endif /* REG_DEBUG */
-
-extern void init_shadow__hwregs();
-
-#endif /* __ASSEMBLER__ */
-
-
-/********************** CONSTANT AND MACRO SECTION *********************/
-#ifndef __REG_GENERAL_2_H__
-#define __REG_GENERAL_2_H__
-
-/*
-** This part of hwregs.h is common to all shadow
-** register modules, and should therefore only be included once to
-** avoid macro redefinitions.
-*/
-
-#ifndef __ASSEMBLER__
-
-/*
- * Register type-casts
- */
-#define REG_TYPECAST_UDWORD (volatile udword*)
-#define REG_TYPECAST_RO_UDWORD (const volatile udword*)
-#define REG_TYPECAST_UWORD (volatile uword*)
-#define REG_TYPECAST_RO_UWORD (const volatile uword*)
-#define REG_TYPECAST_BYTE (volatile byte*)
-#define REG_TYPECAST_RO_BYTE (const volatile byte*)
-
-/*
- * Shadow register type-casts
- */
-#define REG_STYPECAST_UDWORD (udword*)
-#define REG_STYPECAST_UWORD (uword*)
-#define REG_STYPECAST_BYTE (byte*)
-
-#else
-
-/*
- * Register type-casts
- */
-#define REG_TYPECAST_UDWORD
-#define REG_TYPECAST_RO_UDWORD
-#define REG_TYPECAST_UWORD
-#define REG_TYPECAST_RO_UWORD
-#define REG_TYPECAST_BYTE
-#define REG_TYPECAST_RO_BYTE
-
-/*
- * Shadow register type-casts
- */
-#define REG_STYPECAST_UDWORD
-#define REG_STYPECAST_UWORD
-#define REG_STYPECAST_BYTE
-
-#endif
-
-
-#define REG_UDWORD udword
-#define REG_UWORD uword
-#define REG_BYTE byte
-
-#define REG__on 0xffffffffU
-#define REG__off 0
-
-#endif /* __REG_GENERAL_2_H__ */
-
-#include "hwregs_int.h"
-
-#ifndef __REG_GENERAL_3_H__
-#define __REG_GENERAL_3_H__
-
-/*
-** This part of hwregs.h is common to all shadow
-** register modules, and should therefore only be included once to
-** avoid macro redefinitions.
-*/
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_GET
-*#
-*# PARAMETERS : reg : Name of a register.
-*# field : Name of a field.
-*#
-*# RETURNS : Value of field field in register reg.
-*#
-*# SIDE EFFECTS: May evaluate REG_SERROR.
-*#
-*# DESCRIPTION : Read a field in a register. Also see description
-*# of REG_GET_WO, REG_GET_RO, and REG_GET_RW.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Apr 01 1998 Jan Bengtsson Initial version
-*# Oct 01 2002 Hans-Peter Nilsson To stop premature evaluation, append
-*# _ to reg and field parameters when
-*# passing on to other macros.
-*#**********************************************************************/
-
-#define REG_GET(reg,field) ( \
- reg##__GET(reg##_, field##_) \
-)
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_IGET
-*#
-*# PARAMETERS : i : Interface number.
-*# reg : Name of a register.
-*# field : Name of a field.
-*#
-*# RETURNS : Value of field field in register reg.
-*#
-*# SIDE EFFECTS: May evaluate REG_SERROR, and REG_IERROR.
-*#
-*# DESCRIPTION : Read a field in a register for interface i.
-*# Also see description of REG_IGET_WO, REG_IGET_RO,
-*# and REG_IGET_RW.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Apr 01 1998 Jan Bengtsson Initial version
-*# Oct 01 2002 Hans-Peter Nilsson To stop premature evaluation, append
-*# _ to reg and field parameters when
-*# passing on to other macros.
-*#**********************************************************************/
-
-#define REG_IGET(i,reg,field) ( \
- reg##__IGET(i, reg##_, field##_) \
-)
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_VGET
-*#
-*# PARAMETERS : reg : Name of a register.
-*# field : Name of a field.
-*# var : Variable or value to read from.
-*#
-*# RETURNS : Value of field field in variable var.
-*#
-*# SIDE EFFECTS: None.
-*#
-*# DESCRIPTION : Interprets variable var as register reg, and read field
-*# field from variable var.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Apr 01 1998 Jan Bengtsson Initial version
-*#**********************************************************************/
-
-#define REG_VGET(reg,field,var) ( \
- ((reg##__TYPE var) & reg##__##field##__##field##__MASK) >> \
- reg##__##field##__BITNR \
-)
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_SET
-*#
-*# PARAMETERS : reg : Name of a register.
-*# field : Name of a field.
-*# val : Value to write to field.
-*#
-*# RETURNS : Integer value written to complete register.
-*#
-*# SIDE EFFECTS: May evaluate REG_SERROR and REG_VERROR.
-*#
-*# DESCRIPTION : Write val parameter to field field in register reg.
-*# Parameter reg must be a write only or read write
-*# register. Also see description of REG_SET_WO, and
-*# REG_SET_RW.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Apr 01 1998 Jan Bengtsson Initial version
-*# Oct 01 2002 Hans-Peter Nilsson To stop premature evaluation, append
-*# _ to reg and field parameters when
-*# passing on to other macros.
-*#**********************************************************************/
-
-#define REG_SET(reg,field,val) ( \
- reg##__SET(reg##_, field##_, val) \
-)
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_ISET
-*#
-*# PARAMETERS : i : Interface number.
-*# reg : Name of a register.
-*# field : Name of a field.
-*# val : Value to write to field.
-*#
-*# RETURNS : Integer value written to complete register.
-*#
-*# SIDE EFFECTS: May evaluate REG_IERROR, REG_SERROR, and REG_VERROR.
-*#
-*# DESCRIPTION : Write val parameter to field field in register reg
-*# of interface i. Parameter reg must be a write only
-*# or read write register. Also see description of
-*# REG_ISET_WO, and REG_ISET_RW.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Apr 01 1998 Jan Bengtsson Initial version
-*# Oct 01 2002 Hans-Peter Nilsson To stop premature evaluation, append
-*# _ to reg and field parameters when
-*# passing on to other macros.
-*#**********************************************************************/
-
-#define REG_ISET(i,reg,field,val) ( \
- reg##__ISET(i, reg##_, field##_, val) \
-)
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_VSET
-*#
-*# PARAMETERS : reg : Name of a register.
-*# field : Name of a field.
-*# val : Value to write to field.
-*# var : Variable to write to.
-*#
-*# RETURNS : Integer value of variable var after write.
-*#
-*# SIDE EFFECTS: May evaluate REG_VERROR.
-*#
-*# DESCRIPTION : Interpret variable var as register reg, and write val
-*# parameter to field field in variable var.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Apr 01 1998 Jan Bengtsson Initial version
-*# Oct 01 2002 Hans-Peter Nilsson To stop premature evaluation, append
-*# _ to reg and field parameters when
-*# passing on to other macros.
-*#**********************************************************************/
-
-#define REG_VSET(reg,field,val,var) ( \
- var = \
- ((reg##__TYPE var) & REG_IMASK (reg##_, field##_)) | \
- (reg##__##field##__##field##__VAL(reg##_, field##_, val) << \
- reg##__##field##__BITNR) \
-)
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_SET_VAL
-*#
-*# PARAMETERS : reg : Name of a register.
-*# field : Name of a field.
-*# val : Integer value to write to symbolic field.
-*#
-*# RETURNS : Integer value written to complete register.
-*#
-*# SIDE EFFECTS: May evaluate REG_SERROR and REG_VERROR.
-*#
-*# DESCRIPTION : Write val parameter to field field in register reg.
-*# Parameter reg must be a write only or read write register.
-*# Also see description of REG_SET_VAL_WO, and REG_SET_VAL_RW.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Apr 01 1998 Jan Bengtsson Initial version
-*# Oct 01 2002 Hans-Peter Nilsson To stop premature evaluation, append
-*# _ to reg and field parameters when
-*# passing on to other macros.
-*#**********************************************************************/
-
-#define REG_SET_VAL(reg,field,val) ( \
- reg##__SET_VAL(reg##_, field##_, val) \
-)
-
-/*
- * See end of file for these.
- *
- * #define REG_SET__register-name
- * #define REG_SET__register-name__SHADOW
- * #define REG_MASK__register-name
- * #define REG_VAL__register-name
- */
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_EQL
-*#
-*# PARAMETERS : reg : Name of a register.
-*# field : Name of a field.
-*# val : Value to compare with field.
-*#
-*# RETURNS : TRUE, FALSE
-*#
-*# SIDE EFFECTS: May evaluate REG_SERROR and REG_VERROR.
-*#
-*# DESCRIPTION : Compare val parameter with field field in register reg.
-*# Also description of REG_EQL_WO, REG_EQL_RO, and
-*# REG_EQL_RW.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Apr 01 1998 Jan Bengtsson Initial version
-*# Oct 01 2002 Hans-Peter Nilsson To stop premature evaluation, append
-*# _ to reg and field parameters when
-*# passing on to other macros.
-*#**********************************************************************/
-#define REG_EQL(reg,field,val) ( \
- reg##__EQL(reg##_, field##_, val) \
-)
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_IEQL
-*#
-*# PARAMETERS : i : Interface number.
-*# reg : Name of a register.
-*# field : Name of a field.
-*# val : Value to compare with field.
-*#
-*# RETURNS : TRUE, FALSE
-*#
-*# SIDE EFFECTS: May evaluate REG_VERROR, REG_IERROR, and REG_SERROR.
-*#
-*# DESCRIPTION : Compare val parameter with field field in register reg
-*# of interface i. Also see description of REG_IEQL_WO,
-*# REG_IEQ_RO, and REG_IEQL_RW.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Apr 01 1998 Jan Bengtsson Initial version
-*# Oct 01 2002 Hans-Peter Nilsson To stop premature evaluation, append
-*# _ to reg and field parameters when
-*# passing on to other macros.
-*#**********************************************************************/
-
-#define REG_IEQL(i,reg,field,val) ( \
- reg##__IEQL(i,reg##_,field##_,val) \
-)
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_VEQL
-*#
-*# PARAMETERS : reg : Name of a register.
-*# field : Name of a field.
-*# val : Value to compare with field.
-*# var : Variable (or value) to compare with.
-*#
-*# RETURNS : TRUE, FALSE
-*#
-*# SIDE EFFECTS: May evaluate REG_VERROR.
-*#
-*# DESCRIPTION : Interprets variable var as register reg, and compare
-*# compare field field with parameter val.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Apr 01 1998 Jan Bengtsson Initial version
-*# Oct 01 2002 Hans-Peter Nilsson To stop premature evaluation, append
-*# _ to reg and field parameters when
-*# passing on to other macros.
-*#**********************************************************************/
-
-#define REG_VEQL(reg,field,val,var) ( \
- ( ((reg##__TYPE (var)) & reg##__##field##__##field##__MASK) >> \
- reg##__##field##__BITNR \
- ) == reg##__##field##__##field##__VAL(reg##_, field##_, val) \
-)
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_VAL
-*#
-*# PARAMETERS : reg : Name of a register.
-*# field : Name of a field.
-*# val : A symbolic constant.
-*#
-*# RETURNS : val or (val << REG_VERROR()) macro.
-*#
-*# SIDE EFFECTS: May evaluate REG_VERROR macro.
-*#
-*# DESCRIPTION : Convert a symbolic constant to an integer value.
-*# Intended to be used for enumerated fields. Also
-*# Also works for value fields, in which case the val
-*# parameter is checked for range and returned if OK,
-*# and if val is out of range (val << REG_VERROR) is
-*# returned. Also see description of REG_VAL_VAL, and
-*# REG_VAL_ENUM.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Apr 01 1998 Jan Bengtsson Initial version
-*# Oct 01 2002 Hans-Peter Nilsson To stop premature evaluation, append
-*# _ to reg and field parameters when
-*# passing on to other macros.
-*#**********************************************************************/
-
-#define REG_VAL(reg,field,val) ( \
- reg##__##field##__##field##__VAL(reg##_, field##_, val) \
-)
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_CHK_VAL
-*#
-*# PARAMETERS : reg : Name of a register.
-*# field : Name of a field.
-*# val : An integer value.
-*#
-*# RETURNS : 1 if val is within allowed range for field, otherwise 0.
-*#
-*# SIDE EFFECTS: None.
-*#
-*# DESCRIPTION : Check if parameter val is within the field range,
-*# and return 1 if it is, otherwise 0.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Apr 01 1998 Jan Bengtsson Initial version
-*#**********************************************************************/
-
-#define REG_CHK_VAL(reg,field,val) ( \
- (udword)(~(val)) <= (udword)(~(reg##__##field##__MIN)) && \
- (udword)(val) <= (udword)(reg##__##field##__MAX) \
-)
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_RD
-*#
-*# PARAMETERS : reg : Name of a register.
-*#
-*# RETURNS : Contents of register reg.
-*#
-*# SIDE EFFECTS: May evaluate REG_SERROR.
-*#
-*# DESCRIPTION : Read contents of register reg. Also see description of
-*# REG_RD_WO, REG_RD_RO, and REG_RD_RW.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Apr 01 1998 Jan Bengtsson Initial version
-*# Oct 01 2002 Hans-Peter Nilsson To stop premature evaluation, append
-*# _ to reg parameter when passing
-*# on to other macros.
-*#**********************************************************************/
-
-#define REG_RD(reg) ( \
- reg##__RD(reg##_) \
-)
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_IRD
-*#
-*# PARAMETERS : i : Interface number.
-*# reg : Name of a register.
-*#
-*# RETURNS : Contents of register reg.
-*#
-*# SIDE EFFECTS: May evaluate REG_SERROR and REG_IERROR.
-*#
-*# DESCRIPTION : Read contents of register reg. Also see description of
-*# REG_IRD_WO, REG_IRD_RO, and REG_IRD_RW.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Apr 01 1998 Jan Bengtsson Initial version
-*# Oct 01 2002 Hans-Peter Nilsson To stop premature evaluation, append
-*# _ to reg parameter when passing
-*# on to other macros.
-*#**********************************************************************/
-
-#define REG_IRD(i,reg) ( \
- reg##__IRD(i,reg##_) \
-)
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_WR
-*#
-*# PARAMETERS : reg : Name of a register.
-*# var : Variable (or value) to write to reg.
-*#
-*# RETURNS : integer value written to register reg.
-*#
-*# SIDE EFFECTS: May evaluate REG_SERROR.
-*#
-*# DESCRIPTION : Write value of var parameter to register reg. Also see
-*# description of REG_WR_WO, and REG_WR_RW.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Apr 01 1998 Jan Bengtsson Initial version
-*# Oct 01 2002 Hans-Peter Nilsson To stop premature evaluation, append
-*# _ to reg parameter when passing
-*# on to other macros.
-*#**********************************************************************/
-
-#define REG_WR(reg,var) ( \
- reg##__WR(reg##_,var) \
-)
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_IWR
-*#
-*# PARAMETERS : i : Interface number.
-*# reg : Name of a register.
-*# var : Variable (or value) to write to reg.
-*#
-*# RETURNS : integer value written to register reg.
-*#
-*# SIDE EFFECTS: May evaluate REG_SERROR.
-*#
-*# DESCRIPTION : Write value of var parameter to register reg of
-*# interface i. Also see description of REG_IWR_WO,
-*# and REG_IWR_RW.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Apr 01 1998 Jan Bengtsson Initial version
-*# Oct 01 2002 Hans-Peter Nilsson To stop premature evaluation, append
-*# _ to reg parameter when passing
-*# on to other macros.
-*#**********************************************************************/
-
-#define REG_IWR(i,reg,var) ( \
- reg##__IWR(i##_, reg##_, var) \
-)
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_ADDR
-*#
-*# PARAMETERS : reg : Name of a register.
-*#
-*# RETURNS : Address to register reg.
-*#
-*# SIDE EFFECTS: None.
-*#
-*# DESCRIPTION : Calculate address to register reg.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Apr 01 1998 Jan Bengtsson Initial version
-*#**********************************************************************/
-
-#define REG_ADDR(reg) ( \
- reg##__ADDR \
-)
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_BITNR
-*#
-*# PARAMETERS : reg : Name of a register.
-*# field : Name of a field in register reg.
-*#
-*# RETURNS : Position of least significant bit of field in reg..
-*#
-*# SIDE EFFECTS: None.
-*#
-*# DESCRIPTION : Calculate position of least significant bit of
-*# field field in register reg.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Apr 01 1998 Jan Bengtsson Initial version
-*#**********************************************************************/
-
-#define REG_BITNR(reg,field) ( \
- reg##__##field##__BITNR \
-)
-
-#endif /* __REG_GENERAL_3_H__ */
-
-
-/*
- * R_ALT_SER_BAUDRATE
- * - type: WO
- * - addr: 0xb000005c
- * - group: Serial port registers
- */
-
-#if USE_GROUP__Serial_port_registers
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_SET__R_ALT_SER_BAUDRATE
-*#
-*# PARAMETERS : fn : Name of field N.
-*# vn : Integer value to write to field N.
-*#
-*# RETURNS : integer value written to register R_ALT_SER_BAUDRATE.
-*#
-*# SIDE EFFECTS: REG_INITIATED evaluated.
-*#
-*# DESCRIPTION : Write value of vn parameters to fields fn in register
-*# R_ALT_SER_BAUDRATE.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Apr 01 1998 Jan Bengtsson Initial version
-*# Oct 01 2002 Hans-Peter Nilsson To stop premature evaluation, append
-*# _ to fn parameters when passing
-*# on to other macros.
-*#**********************************************************************/
-
-#define REG_SET__R_ALT_SER_BAUDRATE(f1,v1,f2,v2,f3,v3,f4,v4,f5,v5,f6,v6,f7,v7,f8,v8) ( \
- *R_ALT_SER_BAUDRATE__SADDR = ( \
- REG_INITIATED(R_ALT_SER_BAUDRATE_) \
- REG_VAL__R_ALT_SER_BAUDRATE_(f1##_,v1,f2##_,v2,f3##_,v3,f4##_,v4,f5##_,v5,f6##_,v6,f7##_,v7,f8##_,v8) \
- ), \
- R_ALT_SER_BAUDRATE__WRITE(R_ALT_SER_BAUDRATE__ADDR, *R_ALT_SER_BAUDRATE__SADDR) \
-)
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_SET__R_ALT_SER_BAUDRATE__SHADOW
-*#
-*# PARAMETERS : fn : Name of field N.
-*# vn : Integer value to write to field N.
-*#
-*# RETURNS : integer value written to register R_ALT_SER_BAUDRATE.
-*#
-*# SIDE EFFECTS: REG_INITIATED evaluated.
-*#
-*# DESCRIPTION : Write value of vn parameters to fields fn in the
-*# shadow register for R_ALT_SER_BAUDRATE.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Apr 01 1998 Jan Bengtsson Initial version
-*# Oct 01 2002 Hans-Peter Nilsson To stop premature evaluation, append
-*# _ to fn parameters when passing
-*# on to other macros.
-*#**********************************************************************/
-
-#define REG_SET__R_ALT_SER_BAUDRATE__SHADOW(f1,v1,f2,v2,f3,v3,f4,v4,f5,v5,f6,v6,f7,v7,f8,v8) ( \
- *R_ALT_SER_BAUDRATE__SADDR = ( \
- REG_INITIATED(R_ALT_SER_BAUDRATE_) \
- REG_VAL__R_ALT_SER_BAUDRATE_(f1##_,v1,f2##_,v2,f3##_,v3,f4##_,v4,f5##_,v5,f6##_,v6,f7##_,v7,f8##_,v8) \
- ) \
-)
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_MASK__R_ALT_SER_BAUDRATE
-*#
-*# PARAMETERS : fn : Name of field N.
-*# vn : REG__on, or REG__off
-*#
-*# RETURNS : Integer value with 1s in all on-fields,
-*# and 0s in all off-fields.
-*#
-*# SIDE EFFECTS: None.
-*#
-*# DESCRIPTION : Create a mask with 1s in all fields with vn == REG__on,
-*# and 0s in fields with vn == REG_off.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Apr 01 1998 Jan Bengtsson Initial version
-*# Oct 01 2002 Hans-Peter Nilsson Only put ## where necessary to stop
-*# premature macro evaluation.
-*#**********************************************************************/
-
-#define REG_MASK__R_ALT_SER_BAUDRATE(f1,v1,f2,v2,f3,v3,f4,v4,f5,v5,f6,v6,f7,v7,f8,v8) ( \
- (R_ALT_SER_BAUDRATE__ser3_tr__##f1##__MASK & REG__##v1) | \
- (R_ALT_SER_BAUDRATE__ser3_rec__##f2##__MASK & REG__##v2) | \
- (R_ALT_SER_BAUDRATE__ser2_tr__##f3##__MASK & REG__##v3) | \
- (R_ALT_SER_BAUDRATE__ser2_rec__##f4##__MASK & REG__##v4) | \
- (R_ALT_SER_BAUDRATE__ser1_tr__##f5##__MASK & REG__##v5) | \
- (R_ALT_SER_BAUDRATE__ser1_rec__##f6##__MASK & REG__##v6) | \
- (R_ALT_SER_BAUDRATE__ser0_tr__##f7##__MASK & REG__##v7) | \
- (R_ALT_SER_BAUDRATE__ser0_rec__##f8##__MASK & REG__##v8) \
-)
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_VAL__R_ALT_SER_BAUDRATE
-*#
-*# PARAMETERS : fn : Name of field N.
-*# vn : Value in field N.
-*#
-*# RETURNS : Integer value.
-*#
-*# SIDE EFFECTS: REG_VERROR may be evaluated.
-*#
-*# DESCRIPTION : Create a value by combining the vn parameters according
-*# to the fields in register R_ALT_SER_BAUDRATE.
-*# Parameters vn are checked for validity.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Apr 01 1998 Jan Bengtsson Initial version
-*# Oct 01 2002 Hans-Peter Nilsson To stop premature evaluation, append
-*# _ to fn parameters when passing
-*# on to other macros.
-*#**********************************************************************/
-
-#define REG_VAL__R_ALT_SER_BAUDRATE(f1,v1,f2,v2,f3,v3,f4,v4,f5,v5,f6,v6,f7,v7,f8,v8) ( \
- (R_ALT_SER_BAUDRATE__ser3_tr__##f1##__VAL(R_ALT_SER_BAUDRATE_, ser3_tr_, v1) << R_ALT_SER_BAUDRATE__ser3_tr__BITNR) | \
- (R_ALT_SER_BAUDRATE__ser3_rec__##f2##__VAL(R_ALT_SER_BAUDRATE_, ser3_rec_, v2) << R_ALT_SER_BAUDRATE__ser3_rec__BITNR) | \
- (R_ALT_SER_BAUDRATE__ser2_tr__##f3##__VAL(R_ALT_SER_BAUDRATE_, ser2_tr_, v3) << R_ALT_SER_BAUDRATE__ser2_tr__BITNR) | \
- (R_ALT_SER_BAUDRATE__ser2_rec__##f4##__VAL(R_ALT_SER_BAUDRATE_, ser2_rec_, v4) << R_ALT_SER_BAUDRATE__ser2_rec__BITNR) | \
- (R_ALT_SER_BAUDRATE__ser1_tr__##f5##__VAL(R_ALT_SER_BAUDRATE_, ser1_tr_, v5) << R_ALT_SER_BAUDRATE__ser1_tr__BITNR) | \
- (R_ALT_SER_BAUDRATE__ser1_rec__##f6##__VAL(R_ALT_SER_BAUDRATE_, ser1_rec_, v6) << R_ALT_SER_BAUDRATE__ser1_rec__BITNR) | \
- (R_ALT_SER_BAUDRATE__ser0_tr__##f7##__VAL(R_ALT_SER_BAUDRATE_, ser0_tr_, v7) << R_ALT_SER_BAUDRATE__ser0_tr__BITNR) | \
- (R_ALT_SER_BAUDRATE__ser0_rec__##f8##__VAL(R_ALT_SER_BAUDRATE_, ser0_rec_, v8) << R_ALT_SER_BAUDRATE__ser0_rec__BITNR) \
-)
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_VAL__R_ALT_SER_BAUDRATE_
-*#
-*# PARAMETERS : fn_ : Name of field N, with "_" appended.
-*# vn : Value in field N.
-*#
-*# RETURNS : Integer value.
-*#
-*# SIDE EFFECTS: REG_VERROR may be evaluated.
-*#
-*# DESCRIPTION : Create a value by combining the vn parameters according
-*# to the fields in register R_ALT_SER_BAUDRATE.
-*# Parameters vn are checked for validity.
-*# INTERNAL: for use by other macros in this file only.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Sep 30 2002 Hans-Peter Nilsson Initial version
-*#**********************************************************************/
-
-#define REG_VAL__R_ALT_SER_BAUDRATE_(f1_,v1,f2_,v2,f3_,v3,f4_,v4,f5_,v5,f6_,v6,f7_,v7,f8_,v8) ( \
- (R_ALT_SER_BAUDRATE__ser3_tr__##f1_##_VAL(R_ALT_SER_BAUDRATE_, ser3_tr_, v1) << R_ALT_SER_BAUDRATE__ser3_tr__BITNR) | \
- (R_ALT_SER_BAUDRATE__ser3_rec__##f2_##_VAL(R_ALT_SER_BAUDRATE_, ser3_rec_, v2) << R_ALT_SER_BAUDRATE__ser3_rec__BITNR) | \
- (R_ALT_SER_BAUDRATE__ser2_tr__##f3_##_VAL(R_ALT_SER_BAUDRATE_, ser2_tr_, v3) << R_ALT_SER_BAUDRATE__ser2_tr__BITNR) | \
- (R_ALT_SER_BAUDRATE__ser2_rec__##f4_##_VAL(R_ALT_SER_BAUDRATE_, ser2_rec_, v4) << R_ALT_SER_BAUDRATE__ser2_rec__BITNR) | \
- (R_ALT_SER_BAUDRATE__ser1_tr__##f5_##_VAL(R_ALT_SER_BAUDRATE_, ser1_tr_, v5) << R_ALT_SER_BAUDRATE__ser1_tr__BITNR) | \
- (R_ALT_SER_BAUDRATE__ser1_rec__##f6_##_VAL(R_ALT_SER_BAUDRATE_, ser1_rec_, v6) << R_ALT_SER_BAUDRATE__ser1_rec__BITNR) | \
- (R_ALT_SER_BAUDRATE__ser0_tr__##f7_##_VAL(R_ALT_SER_BAUDRATE_, ser0_tr_, v7) << R_ALT_SER_BAUDRATE__ser0_tr__BITNR) | \
- (R_ALT_SER_BAUDRATE__ser0_rec__##f8_##_VAL(R_ALT_SER_BAUDRATE_, ser0_rec_, v8) << R_ALT_SER_BAUDRATE__ser0_rec__BITNR) \
-)
-
-#endif
-
-/*
- * R_ATA_CONFIG
- * - type: WO
- * - addr: 0xb0000044
- * - group: ATA interface registers
- */
-
-#if USE_GROUP__ATA_interface_registers
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_SET__R_ATA_CONFIG
-*#
-*# PARAMETERS : fn : Name of field N.
-*# vn : Integer value to write to field N.
-*#
-*# RETURNS : integer value written to register R_ATA_CONFIG.
-*#
-*# SIDE EFFECTS: REG_INITIATED evaluated.
-*#
-*# DESCRIPTION : Write value of vn parameters to fields fn in register
-*# R_ATA_CONFIG.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Apr 01 1998 Jan Bengtsson Initial version
-*# Oct 01 2002 Hans-Peter Nilsson To stop premature evaluation, append
-*# _ to fn parameters when passing
-*# on to other macros.
-*#**********************************************************************/
-
-#define REG_SET__R_ATA_CONFIG(f1,v1,f2,v2,f3,v3,f4,v4,f5,v5,f6,v6) ( \
- *R_ATA_CONFIG__SADDR = ( \
- REG_INITIATED(R_ATA_CONFIG_) \
- REG_VAL__R_ATA_CONFIG_(f1##_,v1,f2##_,v2,f3##_,v3,f4##_,v4,f5##_,v5,f6##_,v6) \
- ), \
- R_ATA_CONFIG__WRITE(R_ATA_CONFIG__ADDR, *R_ATA_CONFIG__SADDR) \
-)
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_SET__R_ATA_CONFIG__SHADOW
-*#
-*# PARAMETERS : fn : Name of field N.
-*# vn : Integer value to write to field N.
-*#
-*# RETURNS : integer value written to register R_ATA_CONFIG.
-*#
-*# SIDE EFFECTS: REG_INITIATED evaluated.
-*#
-*# DESCRIPTION : Write value of vn parameters to fields fn in the
-*# shadow register for R_ATA_CONFIG.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Apr 01 1998 Jan Bengtsson Initial version
-*# Oct 01 2002 Hans-Peter Nilsson To stop premature evaluation, append
-*# _ to fn parameters when passing
-*# on to other macros.
-*#**********************************************************************/
-
-#define REG_SET__R_ATA_CONFIG__SHADOW(f1,v1,f2,v2,f3,v3,f4,v4,f5,v5,f6,v6) ( \
- *R_ATA_CONFIG__SADDR = ( \
- REG_INITIATED(R_ATA_CONFIG_) \
- REG_VAL__R_ATA_CONFIG_(f1##_,v1,f2##_,v2,f3##_,v3,f4##_,v4,f5##_,v5,f6##_,v6) \
- ) \
-)
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_MASK__R_ATA_CONFIG
-*#
-*# PARAMETERS : fn : Name of field N.
-*# vn : REG__on, or REG__off
-*#
-*# RETURNS : Integer value with 1s in all on-fields,
-*# and 0s in all off-fields.
-*#
-*# SIDE EFFECTS: None.
-*#
-*# DESCRIPTION : Create a mask with 1s in all fields with vn == REG__on,
-*# and 0s in fields with vn == REG_off.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Apr 01 1998 Jan Bengtsson Initial version
-*# Oct 01 2002 Hans-Peter Nilsson Only put ## where necessary to stop
-*# premature macro evaluation.
-*#**********************************************************************/
-
-#define REG_MASK__R_ATA_CONFIG(f1,v1,f2,v2,f3,v3,f4,v4,f5,v5,f6,v6) ( \
- (R_ATA_CONFIG__enable__##f1##__MASK & REG__##v1) | \
- (R_ATA_CONFIG__dma_strobe__##f2##__MASK & REG__##v2) | \
- (R_ATA_CONFIG__dma_hold__##f3##__MASK & REG__##v3) | \
- (R_ATA_CONFIG__pio_setup__##f4##__MASK & REG__##v4) | \
- (R_ATA_CONFIG__pio_strobe__##f5##__MASK & REG__##v5) | \
- (R_ATA_CONFIG__pio_hold__##f6##__MASK & REG__##v6) \
-)
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_VAL__R_ATA_CONFIG
-*#
-*# PARAMETERS : fn : Name of field N.
-*# vn : Value in field N.
-*#
-*# RETURNS : Integer value.
-*#
-*# SIDE EFFECTS: REG_VERROR may be evaluated.
-*#
-*# DESCRIPTION : Create a value by combining the vn parameters according
-*# to the fields in register R_ATA_CONFIG.
-*# Parameters vn are checked for validity.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Apr 01 1998 Jan Bengtsson Initial version
-*# Oct 01 2002 Hans-Peter Nilsson To stop premature evaluation, append
-*# _ to fn parameters when passing
-*# on to other macros.
-*#**********************************************************************/
-
-#define REG_VAL__R_ATA_CONFIG(f1,v1,f2,v2,f3,v3,f4,v4,f5,v5,f6,v6) ( \
- (R_ATA_CONFIG__enable__##f1##__VAL(R_ATA_CONFIG_, enable_, v1) << R_ATA_CONFIG__enable__BITNR) | \
- (R_ATA_CONFIG__dma_strobe__##f2##__VAL(R_ATA_CONFIG_, dma_strobe_, v2) << R_ATA_CONFIG__dma_strobe__BITNR) | \
- (R_ATA_CONFIG__dma_hold__##f3##__VAL(R_ATA_CONFIG_, dma_hold_, v3) << R_ATA_CONFIG__dma_hold__BITNR) | \
- (R_ATA_CONFIG__pio_setup__##f4##__VAL(R_ATA_CONFIG_, pio_setup_, v4) << R_ATA_CONFIG__pio_setup__BITNR) | \
- (R_ATA_CONFIG__pio_strobe__##f5##__VAL(R_ATA_CONFIG_, pio_strobe_, v5) << R_ATA_CONFIG__pio_strobe__BITNR) | \
- (R_ATA_CONFIG__pio_hold__##f6##__VAL(R_ATA_CONFIG_, pio_hold_, v6) << R_ATA_CONFIG__pio_hold__BITNR) \
-)
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_VAL__R_ATA_CONFIG_
-*#
-*# PARAMETERS : fn_ : Name of field N, with "_" appended.
-*# vn : Value in field N.
-*#
-*# RETURNS : Integer value.
-*#
-*# SIDE EFFECTS: REG_VERROR may be evaluated.
-*#
-*# DESCRIPTION : Create a value by combining the vn parameters according
-*# to the fields in register R_ATA_CONFIG.
-*# Parameters vn are checked for validity.
-*# INTERNAL: for use by other macros in this file only.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Sep 30 2002 Hans-Peter Nilsson Initial version
-*#**********************************************************************/
-
-#define REG_VAL__R_ATA_CONFIG_(f1_,v1,f2_,v2,f3_,v3,f4_,v4,f5_,v5,f6_,v6) ( \
- (R_ATA_CONFIG__enable__##f1_##_VAL(R_ATA_CONFIG_, enable_, v1) << R_ATA_CONFIG__enable__BITNR) | \
- (R_ATA_CONFIG__dma_strobe__##f2_##_VAL(R_ATA_CONFIG_, dma_strobe_, v2) << R_ATA_CONFIG__dma_strobe__BITNR) | \
- (R_ATA_CONFIG__dma_hold__##f3_##_VAL(R_ATA_CONFIG_, dma_hold_, v3) << R_ATA_CONFIG__dma_hold__BITNR) | \
- (R_ATA_CONFIG__pio_setup__##f4_##_VAL(R_ATA_CONFIG_, pio_setup_, v4) << R_ATA_CONFIG__pio_setup__BITNR) | \
- (R_ATA_CONFIG__pio_strobe__##f5_##_VAL(R_ATA_CONFIG_, pio_strobe_, v5) << R_ATA_CONFIG__pio_strobe__BITNR) | \
- (R_ATA_CONFIG__pio_hold__##f6_##_VAL(R_ATA_CONFIG_, pio_hold_, v6) << R_ATA_CONFIG__pio_hold__BITNR) \
-)
-
-#endif
-
-/*
- * R_ATA_CTRL_DATA
- * - type: WO
- * - addr: 0xb0000040
- * - group: ATA interface registers
- */
-
-#if USE_GROUP__ATA_interface_registers
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_SET__R_ATA_CTRL_DATA
-*#
-*# PARAMETERS : fn : Name of field N.
-*# vn : Integer value to write to field N.
-*#
-*# RETURNS : integer value written to register R_ATA_CTRL_DATA.
-*#
-*# SIDE EFFECTS: REG_INITIATED evaluated.
-*#
-*# DESCRIPTION : Write value of vn parameters to fields fn in register
-*# R_ATA_CTRL_DATA.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Apr 01 1998 Jan Bengtsson Initial version
-*# Oct 01 2002 Hans-Peter Nilsson To stop premature evaluation, append
-*# _ to fn parameters when passing
-*# on to other macros.
-*#**********************************************************************/
-
-#define REG_SET__R_ATA_CTRL_DATA(f1,v1,f2,v2,f3,v3,f4,v4,f5,v5,f6,v6,f7,v7,f8,v8,f9,v9,f10,v10) ( \
- *R_ATA_CTRL_DATA__SADDR = ( \
- REG_INITIATED(R_ATA_CTRL_DATA_) \
- REG_VAL__R_ATA_CTRL_DATA_(f1##_,v1,f2##_,v2,f3##_,v3,f4##_,v4,f5##_,v5,f6##_,v6,f7##_,v7,f8##_,v8,f9##_,v9,f10##_,v10) \
- ), \
- R_ATA_CTRL_DATA__WRITE(R_ATA_CTRL_DATA__ADDR, *R_ATA_CTRL_DATA__SADDR) \
-)
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_SET__R_ATA_CTRL_DATA__SHADOW
-*#
-*# PARAMETERS : fn : Name of field N.
-*# vn : Integer value to write to field N.
-*#
-*# RETURNS : integer value written to register R_ATA_CTRL_DATA.
-*#
-*# SIDE EFFECTS: REG_INITIATED evaluated.
-*#
-*# DESCRIPTION : Write value of vn parameters to fields fn in the
-*# shadow register for R_ATA_CTRL_DATA.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Apr 01 1998 Jan Bengtsson Initial version
-*# Oct 01 2002 Hans-Peter Nilsson To stop premature evaluation, append
-*# _ to fn parameters when passing
-*# on to other macros.
-*#**********************************************************************/
-
-#define REG_SET__R_ATA_CTRL_DATA__SHADOW(f1,v1,f2,v2,f3,v3,f4,v4,f5,v5,f6,v6,f7,v7,f8,v8,f9,v9,f10,v10) ( \
- *R_ATA_CTRL_DATA__SADDR = ( \
- REG_INITIATED(R_ATA_CTRL_DATA_) \
- REG_VAL__R_ATA_CTRL_DATA_(f1##_,v1,f2##_,v2,f3##_,v3,f4##_,v4,f5##_,v5,f6##_,v6,f7##_,v7,f8##_,v8,f9##_,v9,f10##_,v10) \
- ) \
-)
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_MASK__R_ATA_CTRL_DATA
-*#
-*# PARAMETERS : fn : Name of field N.
-*# vn : REG__on, or REG__off
-*#
-*# RETURNS : Integer value with 1s in all on-fields,
-*# and 0s in all off-fields.
-*#
-*# SIDE EFFECTS: None.
-*#
-*# DESCRIPTION : Create a mask with 1s in all fields with vn == REG__on,
-*# and 0s in fields with vn == REG_off.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Apr 01 1998 Jan Bengtsson Initial version
-*# Oct 01 2002 Hans-Peter Nilsson Only put ## where necessary to stop
-*# premature macro evaluation.
-*#**********************************************************************/
-
-#define REG_MASK__R_ATA_CTRL_DATA(f1,v1,f2,v2,f3,v3,f4,v4,f5,v5,f6,v6,f7,v7,f8,v8,f9,v9,f10,v10) ( \
- (R_ATA_CTRL_DATA__sel__##f1##__MASK & REG__##v1) | \
- (R_ATA_CTRL_DATA__cs1__##f2##__MASK & REG__##v2) | \
- (R_ATA_CTRL_DATA__cs0__##f3##__MASK & REG__##v3) | \
- (R_ATA_CTRL_DATA__addr__##f4##__MASK & REG__##v4) | \
- (R_ATA_CTRL_DATA__rw__##f5##__MASK & REG__##v5) | \
- (R_ATA_CTRL_DATA__src_dst__##f6##__MASK & REG__##v6) | \
- (R_ATA_CTRL_DATA__handsh__##f7##__MASK & REG__##v7) | \
- (R_ATA_CTRL_DATA__multi__##f8##__MASK & REG__##v8) | \
- (R_ATA_CTRL_DATA__dma_size__##f9##__MASK & REG__##v9) | \
- (R_ATA_CTRL_DATA__data__##f10##__MASK & REG__##v10) \
-)
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_VAL__R_ATA_CTRL_DATA
-*#
-*# PARAMETERS : fn : Name of field N.
-*# vn : Value in field N.
-*#
-*# RETURNS : Integer value.
-*#
-*# SIDE EFFECTS: REG_VERROR may be evaluated.
-*#
-*# DESCRIPTION : Create a value by combining the vn parameters according
-*# to the fields in register R_ATA_CTRL_DATA.
-*# Parameters vn are checked for validity.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Apr 01 1998 Jan Bengtsson Initial version
-*# Oct 01 2002 Hans-Peter Nilsson To stop premature evaluation, append
-*# _ to fn parameters when passing
-*# on to other macros.
-*#**********************************************************************/
-
-#define REG_VAL__R_ATA_CTRL_DATA(f1,v1,f2,v2,f3,v3,f4,v4,f5,v5,f6,v6,f7,v7,f8,v8,f9,v9,f10,v10) ( \
- (R_ATA_CTRL_DATA__sel__##f1##__VAL(R_ATA_CTRL_DATA_, sel_, v1) << R_ATA_CTRL_DATA__sel__BITNR) | \
- (R_ATA_CTRL_DATA__cs1__##f2##__VAL(R_ATA_CTRL_DATA_, cs1_, v2) << R_ATA_CTRL_DATA__cs1__BITNR) | \
- (R_ATA_CTRL_DATA__cs0__##f3##__VAL(R_ATA_CTRL_DATA_, cs0_, v3) << R_ATA_CTRL_DATA__cs0__BITNR) | \
- (R_ATA_CTRL_DATA__addr__##f4##__VAL(R_ATA_CTRL_DATA_, addr_, v4) << R_ATA_CTRL_DATA__addr__BITNR) | \
- (R_ATA_CTRL_DATA__rw__##f5##__VAL(R_ATA_CTRL_DATA_, rw_, v5) << R_ATA_CTRL_DATA__rw__BITNR) | \
- (R_ATA_CTRL_DATA__src_dst__##f6##__VAL(R_ATA_CTRL_DATA_, src_dst_, v6) << R_ATA_CTRL_DATA__src_dst__BITNR) | \
- (R_ATA_CTRL_DATA__handsh__##f7##__VAL(R_ATA_CTRL_DATA_, handsh_, v7) << R_ATA_CTRL_DATA__handsh__BITNR) | \
- (R_ATA_CTRL_DATA__multi__##f8##__VAL(R_ATA_CTRL_DATA_, multi_, v8) << R_ATA_CTRL_DATA__multi__BITNR) | \
- (R_ATA_CTRL_DATA__dma_size__##f9##__VAL(R_ATA_CTRL_DATA_, dma_size_, v9) << R_ATA_CTRL_DATA__dma_size__BITNR) | \
- (R_ATA_CTRL_DATA__data__##f10##__VAL(R_ATA_CTRL_DATA_, data_, v10) << R_ATA_CTRL_DATA__data__BITNR) \
-)
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_VAL__R_ATA_CTRL_DATA_
-*#
-*# PARAMETERS : fn_ : Name of field N, with "_" appended.
-*# vn : Value in field N.
-*#
-*# RETURNS : Integer value.
-*#
-*# SIDE EFFECTS: REG_VERROR may be evaluated.
-*#
-*# DESCRIPTION : Create a value by combining the vn parameters according
-*# to the fields in register R_ATA_CTRL_DATA.
-*# Parameters vn are checked for validity.
-*# INTERNAL: for use by other macros in this file only.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Sep 30 2002 Hans-Peter Nilsson Initial version
-*#**********************************************************************/
-
-#define REG_VAL__R_ATA_CTRL_DATA_(f1_,v1,f2_,v2,f3_,v3,f4_,v4,f5_,v5,f6_,v6,f7_,v7,f8_,v8,f9_,v9,f10_,v10) ( \
- (R_ATA_CTRL_DATA__sel__##f1_##_VAL(R_ATA_CTRL_DATA_, sel_, v1) << R_ATA_CTRL_DATA__sel__BITNR) | \
- (R_ATA_CTRL_DATA__cs1__##f2_##_VAL(R_ATA_CTRL_DATA_, cs1_, v2) << R_ATA_CTRL_DATA__cs1__BITNR) | \
- (R_ATA_CTRL_DATA__cs0__##f3_##_VAL(R_ATA_CTRL_DATA_, cs0_, v3) << R_ATA_CTRL_DATA__cs0__BITNR) | \
- (R_ATA_CTRL_DATA__addr__##f4_##_VAL(R_ATA_CTRL_DATA_, addr_, v4) << R_ATA_CTRL_DATA__addr__BITNR) | \
- (R_ATA_CTRL_DATA__rw__##f5_##_VAL(R_ATA_CTRL_DATA_, rw_, v5) << R_ATA_CTRL_DATA__rw__BITNR) | \
- (R_ATA_CTRL_DATA__src_dst__##f6_##_VAL(R_ATA_CTRL_DATA_, src_dst_, v6) << R_ATA_CTRL_DATA__src_dst__BITNR) | \
- (R_ATA_CTRL_DATA__handsh__##f7_##_VAL(R_ATA_CTRL_DATA_, handsh_, v7) << R_ATA_CTRL_DATA__handsh__BITNR) | \
- (R_ATA_CTRL_DATA__multi__##f8_##_VAL(R_ATA_CTRL_DATA_, multi_, v8) << R_ATA_CTRL_DATA__multi__BITNR) | \
- (R_ATA_CTRL_DATA__dma_size__##f9_##_VAL(R_ATA_CTRL_DATA_, dma_size_, v9) << R_ATA_CTRL_DATA__dma_size__BITNR) | \
- (R_ATA_CTRL_DATA__data__##f10_##_VAL(R_ATA_CTRL_DATA_, data_, v10) << R_ATA_CTRL_DATA__data__BITNR) \
-)
-
-#endif
-
-/*
- * R_ATA_STATUS_DATA
- * - type: RO
- * - addr: 0xb0000040
- * - group: ATA interface registers
- */
-
-#if USE_GROUP__ATA_interface_registers
-
-/* No REG_SET__register-name for read only registers. */
-
-/* No REG_SET__register-name__SHADOW for read only and read write registers. */
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_MASK__R_ATA_STATUS_DATA
-*#
-*# PARAMETERS : fn : Name of field N.
-*# vn : REG__on, or REG__off
-*#
-*# RETURNS : Integer value with 1s in all on-fields,
-*# and 0s in all off-fields.
-*#
-*# SIDE EFFECTS: None.
-*#
-*# DESCRIPTION : Create a mask with 1s in all fields with vn == REG__on,
-*# and 0s in fields with vn == REG_off.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Apr 01 1998 Jan Bengtsson Initial version
-*# Oct 01 2002 Hans-Peter Nilsson Only put ## where necessary to stop
-*# premature macro evaluation.
-*#**********************************************************************/
-
-#define REG_MASK__R_ATA_STATUS_DATA(f1,v1,f2,v2,f3,v3,f4,v4) ( \
- (R_ATA_STATUS_DATA__busy__##f1##__MASK & REG__##v1) | \
- (R_ATA_STATUS_DATA__tr_rdy__##f2##__MASK & REG__##v2) | \
- (R_ATA_STATUS_DATA__dav__##f3##__MASK & REG__##v3) | \
- (R_ATA_STATUS_DATA__data__##f4##__MASK & REG__##v4) \
-)
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_VAL__R_ATA_STATUS_DATA
-*#
-*# PARAMETERS : fn : Name of field N.
-*# vn : Value in field N.
-*#
-*# RETURNS : Integer value.
-*#
-*# SIDE EFFECTS: REG_VERROR may be evaluated.
-*#
-*# DESCRIPTION : Create a value by combining the vn parameters according
-*# to the fields in register R_ATA_STATUS_DATA.
-*# Parameters vn are checked for validity.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Apr 01 1998 Jan Bengtsson Initial version
-*# Oct 01 2002 Hans-Peter Nilsson To stop premature evaluation, append
-*# _ to fn parameters when passing
-*# on to other macros.
-*#**********************************************************************/
-
-#define REG_VAL__R_ATA_STATUS_DATA(f1,v1,f2,v2,f3,v3,f4,v4) ( \
- (R_ATA_STATUS_DATA__busy__##f1##__VAL(R_ATA_STATUS_DATA_, busy_, v1) << R_ATA_STATUS_DATA__busy__BITNR) | \
- (R_ATA_STATUS_DATA__tr_rdy__##f2##__VAL(R_ATA_STATUS_DATA_, tr_rdy_, v2) << R_ATA_STATUS_DATA__tr_rdy__BITNR) | \
- (R_ATA_STATUS_DATA__dav__##f3##__VAL(R_ATA_STATUS_DATA_, dav_, v3) << R_ATA_STATUS_DATA__dav__BITNR) | \
- (R_ATA_STATUS_DATA__data__##f4##__VAL(R_ATA_STATUS_DATA_, data_, v4) << R_ATA_STATUS_DATA__data__BITNR) \
-)
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_VAL__R_ATA_STATUS_DATA_
-*#
-*# PARAMETERS : fn_ : Name of field N, with "_" appended.
-*# vn : Value in field N.
-*#
-*# RETURNS : Integer value.
-*#
-*# SIDE EFFECTS: REG_VERROR may be evaluated.
-*#
-*# DESCRIPTION : Create a value by combining the vn parameters according
-*# to the fields in register R_ATA_STATUS_DATA.
-*# Parameters vn are checked for validity.
-*# INTERNAL: for use by other macros in this file only.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Sep 30 2002 Hans-Peter Nilsson Initial version
-*#**********************************************************************/
-
-#define REG_VAL__R_ATA_STATUS_DATA_(f1_,v1,f2_,v2,f3_,v3,f4_,v4) ( \
- (R_ATA_STATUS_DATA__busy__##f1_##_VAL(R_ATA_STATUS_DATA_, busy_, v1) << R_ATA_STATUS_DATA__busy__BITNR) | \
- (R_ATA_STATUS_DATA__tr_rdy__##f2_##_VAL(R_ATA_STATUS_DATA_, tr_rdy_, v2) << R_ATA_STATUS_DATA__tr_rdy__BITNR) | \
- (R_ATA_STATUS_DATA__dav__##f3_##_VAL(R_ATA_STATUS_DATA_, dav_, v3) << R_ATA_STATUS_DATA__dav__BITNR) | \
- (R_ATA_STATUS_DATA__data__##f4_##_VAL(R_ATA_STATUS_DATA_, data_, v4) << R_ATA_STATUS_DATA__data__BITNR) \
-)
-
-#endif
-
-/*
- * R_ATA_TRANSFER_CNT
- * - type: RW
- * - addr: 0xb0000048
- * - group: ATA interface registers
- */
-
-#if USE_GROUP__ATA_interface_registers
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_SET__R_ATA_TRANSFER_CNT
-*#
-*# PARAMETERS : fn : Name of field N.
-*# vn : Integer value to write to field N.
-*#
-*# RETURNS : integer value written to register R_ATA_TRANSFER_CNT.
-*#
-*# SIDE EFFECTS: None.
-*#
-*# DESCRIPTION : Write value of vn parameters to fields fn in register
-*# R_ATA_TRANSFER_CNT.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Apr 01 1998 Jan Bengtsson Initial version
-*# Oct 01 2002 Hans-Peter Nilsson To stop premature evaluation, append
-*# _ to fn parameters when passing
-*# on to other macros.
-*#**********************************************************************/
-
-#define REG_SET__R_ATA_TRANSFER_CNT(f1,v1) ( \
- R_ATA_TRANSFER_CNT__WRITE(R_ATA_TRANSFER_CNT__ADDR, ( \
- REG_VAL__R_ATA_TRANSFER_CNT_(f1##_,v1) ) \
- ) \
-)
-
-/* No REG_SET__register-name__SHADOW for read only and read write registers. */
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_MASK__R_ATA_TRANSFER_CNT
-*#
-*# PARAMETERS : fn : Name of field N.
-*# vn : REG__on, or REG__off
-*#
-*# RETURNS : Integer value with 1s in all on-fields,
-*# and 0s in all off-fields.
-*#
-*# SIDE EFFECTS: None.
-*#
-*# DESCRIPTION : Create a mask with 1s in all fields with vn == REG__on,
-*# and 0s in fields with vn == REG_off.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Apr 01 1998 Jan Bengtsson Initial version
-*# Oct 01 2002 Hans-Peter Nilsson Only put ## where necessary to stop
-*# premature macro evaluation.
-*#**********************************************************************/
-
-#define REG_MASK__R_ATA_TRANSFER_CNT(f1,v1) ( \
- (R_ATA_TRANSFER_CNT__count__##f1##__MASK & REG__##v1) \
-)
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_VAL__R_ATA_TRANSFER_CNT
-*#
-*# PARAMETERS : fn : Name of field N.
-*# vn : Value in field N.
-*#
-*# RETURNS : Integer value.
-*#
-*# SIDE EFFECTS: REG_VERROR may be evaluated.
-*#
-*# DESCRIPTION : Create a value by combining the vn parameters according
-*# to the fields in register R_ATA_TRANSFER_CNT.
-*# Parameters vn are checked for validity.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Apr 01 1998 Jan Bengtsson Initial version
-*# Oct 01 2002 Hans-Peter Nilsson To stop premature evaluation, append
-*# _ to fn parameters when passing
-*# on to other macros.
-*#**********************************************************************/
-
-#define REG_VAL__R_ATA_TRANSFER_CNT(f1,v1) ( \
- (R_ATA_TRANSFER_CNT__count__##f1##__VAL(R_ATA_TRANSFER_CNT_, count_, v1) << R_ATA_TRANSFER_CNT__count__BITNR) \
-)
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_VAL__R_ATA_TRANSFER_CNT_
-*#
-*# PARAMETERS : fn_ : Name of field N, with "_" appended.
-*# vn : Value in field N.
-*#
-*# RETURNS : Integer value.
-*#
-*# SIDE EFFECTS: REG_VERROR may be evaluated.
-*#
-*# DESCRIPTION : Create a value by combining the vn parameters according
-*# to the fields in register R_ATA_TRANSFER_CNT.
-*# Parameters vn are checked for validity.
-*# INTERNAL: for use by other macros in this file only.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Sep 30 2002 Hans-Peter Nilsson Initial version
-*#**********************************************************************/
-
-#define REG_VAL__R_ATA_TRANSFER_CNT_(f1_,v1) ( \
- (R_ATA_TRANSFER_CNT__count__##f1_##_VAL(R_ATA_TRANSFER_CNT_, count_, v1) << R_ATA_TRANSFER_CNT__count__BITNR) \
-)
-
-#endif
-
-/*
- * R_BUS_CONFIG
- * - type: WO
- * - addr: 0xb0000004
- * - group: Bus interface configuration registers
- */
-
-#if USE_GROUP__Bus_interface_configuration_registers
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_SET__R_BUS_CONFIG
-*#
-*# PARAMETERS : fn : Name of field N.
-*# vn : Integer value to write to field N.
-*#
-*# RETURNS : integer value written to register R_BUS_CONFIG.
-*#
-*# SIDE EFFECTS: REG_INITIATED evaluated.
-*#
-*# DESCRIPTION : Write value of vn parameters to fields fn in register
-*# R_BUS_CONFIG.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Apr 01 1998 Jan Bengtsson Initial version
-*# Oct 01 2002 Hans-Peter Nilsson To stop premature evaluation, append
-*# _ to fn parameters when passing
-*# on to other macros.
-*#**********************************************************************/
-
-#define REG_SET__R_BUS_CONFIG(f1,v1,f2,v2,f3,v3,f4,v4,f5,v5,f6,v6,f7,v7,f8,v8,f9,v9,f10,v10) ( \
- *R_BUS_CONFIG__SADDR = ( \
- REG_INITIATED(R_BUS_CONFIG_) \
- REG_VAL__R_BUS_CONFIG_(f1##_,v1,f2##_,v2,f3##_,v3,f4##_,v4,f5##_,v5,f6##_,v6,f7##_,v7,f8##_,v8,f9##_,v9,f10##_,v10) \
- ), \
- R_BUS_CONFIG__WRITE(R_BUS_CONFIG__ADDR, *R_BUS_CONFIG__SADDR) \
-)
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_SET__R_BUS_CONFIG__SHADOW
-*#
-*# PARAMETERS : fn : Name of field N.
-*# vn : Integer value to write to field N.
-*#
-*# RETURNS : integer value written to register R_BUS_CONFIG.
-*#
-*# SIDE EFFECTS: REG_INITIATED evaluated.
-*#
-*# DESCRIPTION : Write value of vn parameters to fields fn in the
-*# shadow register for R_BUS_CONFIG.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Apr 01 1998 Jan Bengtsson Initial version
-*# Oct 01 2002 Hans-Peter Nilsson To stop premature evaluation, append
-*# _ to fn parameters when passing
-*# on to other macros.
-*#**********************************************************************/
-
-#define REG_SET__R_BUS_CONFIG__SHADOW(f1,v1,f2,v2,f3,v3,f4,v4,f5,v5,f6,v6,f7,v7,f8,v8,f9,v9,f10,v10) ( \
- *R_BUS_CONFIG__SADDR = ( \
- REG_INITIATED(R_BUS_CONFIG_) \
- REG_VAL__R_BUS_CONFIG_(f1##_,v1,f2##_,v2,f3##_,v3,f4##_,v4,f5##_,v5,f6##_,v6,f7##_,v7,f8##_,v8,f9##_,v9,f10##_,v10) \
- ) \
-)
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_MASK__R_BUS_CONFIG
-*#
-*# PARAMETERS : fn : Name of field N.
-*# vn : REG__on, or REG__off
-*#
-*# RETURNS : Integer value with 1s in all on-fields,
-*# and 0s in all off-fields.
-*#
-*# SIDE EFFECTS: None.
-*#
-*# DESCRIPTION : Create a mask with 1s in all fields with vn == REG__on,
-*# and 0s in fields with vn == REG_off.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Apr 01 1998 Jan Bengtsson Initial version
-*# Oct 01 2002 Hans-Peter Nilsson Only put ## where necessary to stop
-*# premature macro evaluation.
-*#**********************************************************************/
-
-#define REG_MASK__R_BUS_CONFIG(f1,v1,f2,v2,f3,v3,f4,v4,f5,v5,f6,v6,f7,v7,f8,v8,f9,v9,f10,v10) ( \
- (R_BUS_CONFIG__sram_type__##f1##__MASK & REG__##v1) | \
- (R_BUS_CONFIG__dma_burst__##f2##__MASK & REG__##v2) | \
- (R_BUS_CONFIG__pcs4_7_wr__##f3##__MASK & REG__##v3) | \
- (R_BUS_CONFIG__pcs0_3_wr__##f4##__MASK & REG__##v4) | \
- (R_BUS_CONFIG__sram_wr__##f5##__MASK & REG__##v5) | \
- (R_BUS_CONFIG__flash_wr__##f6##__MASK & REG__##v6) | \
- (R_BUS_CONFIG__pcs4_7_bw__##f7##__MASK & REG__##v7) | \
- (R_BUS_CONFIG__pcs0_3_bw__##f8##__MASK & REG__##v8) | \
- (R_BUS_CONFIG__sram_bw__##f9##__MASK & REG__##v9) | \
- (R_BUS_CONFIG__flash_bw__##f10##__MASK & REG__##v10) \
-)
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_VAL__R_BUS_CONFIG
-*#
-*# PARAMETERS : fn : Name of field N.
-*# vn : Value in field N.
-*#
-*# RETURNS : Integer value.
-*#
-*# SIDE EFFECTS: REG_VERROR may be evaluated.
-*#
-*# DESCRIPTION : Create a value by combining the vn parameters according
-*# to the fields in register R_BUS_CONFIG.
-*# Parameters vn are checked for validity.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Apr 01 1998 Jan Bengtsson Initial version
-*# Oct 01 2002 Hans-Peter Nilsson To stop premature evaluation, append
-*# _ to fn parameters when passing
-*# on to other macros.
-*#**********************************************************************/
-
-#define REG_VAL__R_BUS_CONFIG(f1,v1,f2,v2,f3,v3,f4,v4,f5,v5,f6,v6,f7,v7,f8,v8,f9,v9,f10,v10) ( \
- (R_BUS_CONFIG__sram_type__##f1##__VAL(R_BUS_CONFIG_, sram_type_, v1) << R_BUS_CONFIG__sram_type__BITNR) | \
- (R_BUS_CONFIG__dma_burst__##f2##__VAL(R_BUS_CONFIG_, dma_burst_, v2) << R_BUS_CONFIG__dma_burst__BITNR) | \
- (R_BUS_CONFIG__pcs4_7_wr__##f3##__VAL(R_BUS_CONFIG_, pcs4_7_wr_, v3) << R_BUS_CONFIG__pcs4_7_wr__BITNR) | \
- (R_BUS_CONFIG__pcs0_3_wr__##f4##__VAL(R_BUS_CONFIG_, pcs0_3_wr_, v4) << R_BUS_CONFIG__pcs0_3_wr__BITNR) | \
- (R_BUS_CONFIG__sram_wr__##f5##__VAL(R_BUS_CONFIG_, sram_wr_, v5) << R_BUS_CONFIG__sram_wr__BITNR) | \
- (R_BUS_CONFIG__flash_wr__##f6##__VAL(R_BUS_CONFIG_, flash_wr_, v6) << R_BUS_CONFIG__flash_wr__BITNR) | \
- (R_BUS_CONFIG__pcs4_7_bw__##f7##__VAL(R_BUS_CONFIG_, pcs4_7_bw_, v7) << R_BUS_CONFIG__pcs4_7_bw__BITNR) | \
- (R_BUS_CONFIG__pcs0_3_bw__##f8##__VAL(R_BUS_CONFIG_, pcs0_3_bw_, v8) << R_BUS_CONFIG__pcs0_3_bw__BITNR) | \
- (R_BUS_CONFIG__sram_bw__##f9##__VAL(R_BUS_CONFIG_, sram_bw_, v9) << R_BUS_CONFIG__sram_bw__BITNR) | \
- (R_BUS_CONFIG__flash_bw__##f10##__VAL(R_BUS_CONFIG_, flash_bw_, v10) << R_BUS_CONFIG__flash_bw__BITNR) \
-)
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_VAL__R_BUS_CONFIG_
-*#
-*# PARAMETERS : fn_ : Name of field N, with "_" appended.
-*# vn : Value in field N.
-*#
-*# RETURNS : Integer value.
-*#
-*# SIDE EFFECTS: REG_VERROR may be evaluated.
-*#
-*# DESCRIPTION : Create a value by combining the vn parameters according
-*# to the fields in register R_BUS_CONFIG.
-*# Parameters vn are checked for validity.
-*# INTERNAL: for use by other macros in this file only.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Sep 30 2002 Hans-Peter Nilsson Initial version
-*#**********************************************************************/
-
-#define REG_VAL__R_BUS_CONFIG_(f1_,v1,f2_,v2,f3_,v3,f4_,v4,f5_,v5,f6_,v6,f7_,v7,f8_,v8,f9_,v9,f10_,v10) ( \
- (R_BUS_CONFIG__sram_type__##f1_##_VAL(R_BUS_CONFIG_, sram_type_, v1) << R_BUS_CONFIG__sram_type__BITNR) | \
- (R_BUS_CONFIG__dma_burst__##f2_##_VAL(R_BUS_CONFIG_, dma_burst_, v2) << R_BUS_CONFIG__dma_burst__BITNR) | \
- (R_BUS_CONFIG__pcs4_7_wr__##f3_##_VAL(R_BUS_CONFIG_, pcs4_7_wr_, v3) << R_BUS_CONFIG__pcs4_7_wr__BITNR) | \
- (R_BUS_CONFIG__pcs0_3_wr__##f4_##_VAL(R_BUS_CONFIG_, pcs0_3_wr_, v4) << R_BUS_CONFIG__pcs0_3_wr__BITNR) | \
- (R_BUS_CONFIG__sram_wr__##f5_##_VAL(R_BUS_CONFIG_, sram_wr_, v5) << R_BUS_CONFIG__sram_wr__BITNR) | \
- (R_BUS_CONFIG__flash_wr__##f6_##_VAL(R_BUS_CONFIG_, flash_wr_, v6) << R_BUS_CONFIG__flash_wr__BITNR) | \
- (R_BUS_CONFIG__pcs4_7_bw__##f7_##_VAL(R_BUS_CONFIG_, pcs4_7_bw_, v7) << R_BUS_CONFIG__pcs4_7_bw__BITNR) | \
- (R_BUS_CONFIG__pcs0_3_bw__##f8_##_VAL(R_BUS_CONFIG_, pcs0_3_bw_, v8) << R_BUS_CONFIG__pcs0_3_bw__BITNR) | \
- (R_BUS_CONFIG__sram_bw__##f9_##_VAL(R_BUS_CONFIG_, sram_bw_, v9) << R_BUS_CONFIG__sram_bw__BITNR) | \
- (R_BUS_CONFIG__flash_bw__##f10_##_VAL(R_BUS_CONFIG_, flash_bw_, v10) << R_BUS_CONFIG__flash_bw__BITNR) \
-)
-
-#endif
-
-/*
- * R_BUS_STATUS
- * - type: RO
- * - addr: 0xb0000004
- * - group: Bus interface configuration registers
- */
-
-#if USE_GROUP__Bus_interface_configuration_registers
-
-/* No REG_SET__register-name for read only registers. */
-
-/* No REG_SET__register-name__SHADOW for read only and read write registers. */
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_MASK__R_BUS_STATUS
-*#
-*# PARAMETERS : fn : Name of field N.
-*# vn : REG__on, or REG__off
-*#
-*# RETURNS : Integer value with 1s in all on-fields,
-*# and 0s in all off-fields.
-*#
-*# SIDE EFFECTS: None.
-*#
-*# DESCRIPTION : Create a mask with 1s in all fields with vn == REG__on,
-*# and 0s in fields with vn == REG_off.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Apr 01 1998 Jan Bengtsson Initial version
-*# Oct 01 2002 Hans-Peter Nilsson Only put ## where necessary to stop
-*# premature macro evaluation.
-*#**********************************************************************/
-
-#define REG_MASK__R_BUS_STATUS(f1,v1,f2,v2,f3,v3,f4,v4,f5,v5) ( \
- (R_BUS_STATUS__pll_lock_tm__##f1##__MASK & REG__##v1) | \
- (R_BUS_STATUS__both_faults__##f2##__MASK & REG__##v2) | \
- (R_BUS_STATUS__bsen___##f3##__MASK & REG__##v3) | \
- (R_BUS_STATUS__boot__##f4##__MASK & REG__##v4) | \
- (R_BUS_STATUS__flashw__##f5##__MASK & REG__##v5) \
-)
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_VAL__R_BUS_STATUS
-*#
-*# PARAMETERS : fn : Name of field N.
-*# vn : Value in field N.
-*#
-*# RETURNS : Integer value.
-*#
-*# SIDE EFFECTS: REG_VERROR may be evaluated.
-*#
-*# DESCRIPTION : Create a value by combining the vn parameters according
-*# to the fields in register R_BUS_STATUS.
-*# Parameters vn are checked for validity.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Apr 01 1998 Jan Bengtsson Initial version
-*# Oct 01 2002 Hans-Peter Nilsson To stop premature evaluation, append
-*# _ to fn parameters when passing
-*# on to other macros.
-*#**********************************************************************/
-
-#define REG_VAL__R_BUS_STATUS(f1,v1,f2,v2,f3,v3,f4,v4,f5,v5) ( \
- (R_BUS_STATUS__pll_lock_tm__##f1##__VAL(R_BUS_STATUS_, pll_lock_tm_, v1) << R_BUS_STATUS__pll_lock_tm__BITNR) | \
- (R_BUS_STATUS__both_faults__##f2##__VAL(R_BUS_STATUS_, both_faults_, v2) << R_BUS_STATUS__both_faults__BITNR) | \
- (R_BUS_STATUS__bsen___##f3##__VAL(R_BUS_STATUS_, bsen__, v3) << R_BUS_STATUS__bsen___BITNR) | \
- (R_BUS_STATUS__boot__##f4##__VAL(R_BUS_STATUS_, boot_, v4) << R_BUS_STATUS__boot__BITNR) | \
- (R_BUS_STATUS__flashw__##f5##__VAL(R_BUS_STATUS_, flashw_, v5) << R_BUS_STATUS__flashw__BITNR) \
-)
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_VAL__R_BUS_STATUS_
-*#
-*# PARAMETERS : fn_ : Name of field N, with "_" appended.
-*# vn : Value in field N.
-*#
-*# RETURNS : Integer value.
-*#
-*# SIDE EFFECTS: REG_VERROR may be evaluated.
-*#
-*# DESCRIPTION : Create a value by combining the vn parameters according
-*# to the fields in register R_BUS_STATUS.
-*# Parameters vn are checked for validity.
-*# INTERNAL: for use by other macros in this file only.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Sep 30 2002 Hans-Peter Nilsson Initial version
-*#**********************************************************************/
-
-#define REG_VAL__R_BUS_STATUS_(f1_,v1,f2_,v2,f3_,v3,f4_,v4,f5_,v5) ( \
- (R_BUS_STATUS__pll_lock_tm__##f1_##_VAL(R_BUS_STATUS_, pll_lock_tm_, v1) << R_BUS_STATUS__pll_lock_tm__BITNR) | \
- (R_BUS_STATUS__both_faults__##f2_##_VAL(R_BUS_STATUS_, both_faults_, v2) << R_BUS_STATUS__both_faults__BITNR) | \
- (R_BUS_STATUS__bsen___##f3_##_VAL(R_BUS_STATUS_, bsen__, v3) << R_BUS_STATUS__bsen___BITNR) | \
- (R_BUS_STATUS__boot__##f4_##_VAL(R_BUS_STATUS_, boot_, v4) << R_BUS_STATUS__boot__BITNR) | \
- (R_BUS_STATUS__flashw__##f5_##_VAL(R_BUS_STATUS_, flashw_, v5) << R_BUS_STATUS__flashw__BITNR) \
-)
-
-#endif
-
-/*
- * R_CLOCK_PRESCALE
- * - type: WO
- * - addr: 0xb00000f0
- * - group: Timer registers
- */
-
-#if USE_GROUP__Timer_registers
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_SET__R_CLOCK_PRESCALE
-*#
-*# PARAMETERS : fn : Name of field N.
-*# vn : Integer value to write to field N.
-*#
-*# RETURNS : integer value written to register R_CLOCK_PRESCALE.
-*#
-*# SIDE EFFECTS: REG_INITIATED evaluated.
-*#
-*# DESCRIPTION : Write value of vn parameters to fields fn in register
-*# R_CLOCK_PRESCALE.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Apr 01 1998 Jan Bengtsson Initial version
-*# Oct 01 2002 Hans-Peter Nilsson To stop premature evaluation, append
-*# _ to fn parameters when passing
-*# on to other macros.
-*#**********************************************************************/
-
-#define REG_SET__R_CLOCK_PRESCALE(f1,v1,f2,v2) ( \
- *R_CLOCK_PRESCALE__SADDR = ( \
- REG_INITIATED(R_CLOCK_PRESCALE_) \
- REG_VAL__R_CLOCK_PRESCALE_(f1##_,v1,f2##_,v2) \
- ), \
- R_CLOCK_PRESCALE__WRITE(R_CLOCK_PRESCALE__ADDR, *R_CLOCK_PRESCALE__SADDR) \
-)
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_SET__R_CLOCK_PRESCALE__SHADOW
-*#
-*# PARAMETERS : fn : Name of field N.
-*# vn : Integer value to write to field N.
-*#
-*# RETURNS : integer value written to register R_CLOCK_PRESCALE.
-*#
-*# SIDE EFFECTS: REG_INITIATED evaluated.
-*#
-*# DESCRIPTION : Write value of vn parameters to fields fn in the
-*# shadow register for R_CLOCK_PRESCALE.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Apr 01 1998 Jan Bengtsson Initial version
-*# Oct 01 2002 Hans-Peter Nilsson To stop premature evaluation, append
-*# _ to fn parameters when passing
-*# on to other macros.
-*#**********************************************************************/
-
-#define REG_SET__R_CLOCK_PRESCALE__SHADOW(f1,v1,f2,v2) ( \
- *R_CLOCK_PRESCALE__SADDR = ( \
- REG_INITIATED(R_CLOCK_PRESCALE_) \
- REG_VAL__R_CLOCK_PRESCALE_(f1##_,v1,f2##_,v2) \
- ) \
-)
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_MASK__R_CLOCK_PRESCALE
-*#
-*# PARAMETERS : fn : Name of field N.
-*# vn : REG__on, or REG__off
-*#
-*# RETURNS : Integer value with 1s in all on-fields,
-*# and 0s in all off-fields.
-*#
-*# SIDE EFFECTS: None.
-*#
-*# DESCRIPTION : Create a mask with 1s in all fields with vn == REG__on,
-*# and 0s in fields with vn == REG_off.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Apr 01 1998 Jan Bengtsson Initial version
-*# Oct 01 2002 Hans-Peter Nilsson Only put ## where necessary to stop
-*# premature macro evaluation.
-*#**********************************************************************/
-
-#define REG_MASK__R_CLOCK_PRESCALE(f1,v1,f2,v2) ( \
- (R_CLOCK_PRESCALE__ser_presc__##f1##__MASK & REG__##v1) | \
- (R_CLOCK_PRESCALE__tim_presc__##f2##__MASK & REG__##v2) \
-)
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_VAL__R_CLOCK_PRESCALE
-*#
-*# PARAMETERS : fn : Name of field N.
-*# vn : Value in field N.
-*#
-*# RETURNS : Integer value.
-*#
-*# SIDE EFFECTS: REG_VERROR may be evaluated.
-*#
-*# DESCRIPTION : Create a value by combining the vn parameters according
-*# to the fields in register R_CLOCK_PRESCALE.
-*# Parameters vn are checked for validity.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Apr 01 1998 Jan Bengtsson Initial version
-*# Oct 01 2002 Hans-Peter Nilsson To stop premature evaluation, append
-*# _ to fn parameters when passing
-*# on to other macros.
-*#**********************************************************************/
-
-#define REG_VAL__R_CLOCK_PRESCALE(f1,v1,f2,v2) ( \
- (R_CLOCK_PRESCALE__ser_presc__##f1##__VAL(R_CLOCK_PRESCALE_, ser_presc_, v1) << R_CLOCK_PRESCALE__ser_presc__BITNR) | \
- (R_CLOCK_PRESCALE__tim_presc__##f2##__VAL(R_CLOCK_PRESCALE_, tim_presc_, v2) << R_CLOCK_PRESCALE__tim_presc__BITNR) \
-)
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_VAL__R_CLOCK_PRESCALE_
-*#
-*# PARAMETERS : fn_ : Name of field N, with "_" appended.
-*# vn : Value in field N.
-*#
-*# RETURNS : Integer value.
-*#
-*# SIDE EFFECTS: REG_VERROR may be evaluated.
-*#
-*# DESCRIPTION : Create a value by combining the vn parameters according
-*# to the fields in register R_CLOCK_PRESCALE.
-*# Parameters vn are checked for validity.
-*# INTERNAL: for use by other macros in this file only.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Sep 30 2002 Hans-Peter Nilsson Initial version
-*#**********************************************************************/
-
-#define REG_VAL__R_CLOCK_PRESCALE_(f1_,v1,f2_,v2) ( \
- (R_CLOCK_PRESCALE__ser_presc__##f1_##_VAL(R_CLOCK_PRESCALE_, ser_presc_, v1) << R_CLOCK_PRESCALE__ser_presc__BITNR) | \
- (R_CLOCK_PRESCALE__tim_presc__##f2_##_VAL(R_CLOCK_PRESCALE_, tim_presc_, v2) << R_CLOCK_PRESCALE__tim_presc__BITNR) \
-)
-
-#endif
-
-/*
- * R_DMA_CH0_BUF
- * - type: RW
- * - addr: 0xb0000108
- * - group: DMA registers
- */
-
-#if USE_GROUP__DMA_registers
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_SET__R_DMA_CH0_BUF
-*#
-*# PARAMETERS : fn : Name of field N.
-*# vn : Integer value to write to field N.
-*#
-*# RETURNS : integer value written to register R_DMA_CH0_BUF.
-*#
-*# SIDE EFFECTS: None.
-*#
-*# DESCRIPTION : Write value of vn parameters to fields fn in register
-*# R_DMA_CH0_BUF.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Apr 01 1998 Jan Bengtsson Initial version
-*# Oct 01 2002 Hans-Peter Nilsson To stop premature evaluation, append
-*# _ to fn parameters when passing
-*# on to other macros.
-*#**********************************************************************/
-
-#define REG_SET__R_DMA_CH0_BUF(f1,v1) ( \
- R_DMA_CH0_BUF__WRITE(R_DMA_CH0_BUF__ADDR, ( \
- REG_VAL__R_DMA_CH0_BUF_(f1##_,v1) ) \
- ) \
-)
-
-/* No REG_SET__register-name__SHADOW for read only and read write registers. */
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_MASK__R_DMA_CH0_BUF
-*#
-*# PARAMETERS : fn : Name of field N.
-*# vn : REG__on, or REG__off
-*#
-*# RETURNS : Integer value with 1s in all on-fields,
-*# and 0s in all off-fields.
-*#
-*# SIDE EFFECTS: None.
-*#
-*# DESCRIPTION : Create a mask with 1s in all fields with vn == REG__on,
-*# and 0s in fields with vn == REG_off.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Apr 01 1998 Jan Bengtsson Initial version
-*# Oct 01 2002 Hans-Peter Nilsson Only put ## where necessary to stop
-*# premature macro evaluation.
-*#**********************************************************************/
-
-#define REG_MASK__R_DMA_CH0_BUF(f1,v1) ( \
- (R_DMA_CH0_BUF__buf__##f1##__MASK & REG__##v1) \
-)
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_VAL__R_DMA_CH0_BUF
-*#
-*# PARAMETERS : fn : Name of field N.
-*# vn : Value in field N.
-*#
-*# RETURNS : Integer value.
-*#
-*# SIDE EFFECTS: REG_VERROR may be evaluated.
-*#
-*# DESCRIPTION : Create a value by combining the vn parameters according
-*# to the fields in register R_DMA_CH0_BUF.
-*# Parameters vn are checked for validity.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Apr 01 1998 Jan Bengtsson Initial version
-*# Oct 01 2002 Hans-Peter Nilsson To stop premature evaluation, append
-*# _ to fn parameters when passing
-*# on to other macros.
-*#**********************************************************************/
-
-#define REG_VAL__R_DMA_CH0_BUF(f1,v1) ( \
- (R_DMA_CH0_BUF__buf__##f1##__VAL(R_DMA_CH0_BUF_, buf_, v1) << R_DMA_CH0_BUF__buf__BITNR) \
-)
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_VAL__R_DMA_CH0_BUF_
-*#
-*# PARAMETERS : fn_ : Name of field N, with "_" appended.
-*# vn : Value in field N.
-*#
-*# RETURNS : Integer value.
-*#
-*# SIDE EFFECTS: REG_VERROR may be evaluated.
-*#
-*# DESCRIPTION : Create a value by combining the vn parameters according
-*# to the fields in register R_DMA_CH0_BUF.
-*# Parameters vn are checked for validity.
-*# INTERNAL: for use by other macros in this file only.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Sep 30 2002 Hans-Peter Nilsson Initial version
-*#**********************************************************************/
-
-#define REG_VAL__R_DMA_CH0_BUF_(f1_,v1) ( \
- (R_DMA_CH0_BUF__buf__##f1_##_VAL(R_DMA_CH0_BUF_, buf_, v1) << R_DMA_CH0_BUF__buf__BITNR) \
-)
-
-#endif
-
-/*
- * R_DMA_CH0_CLR_INTR
- * - type: WO
- * - addr: 0xb00001d1
- * - group: DMA registers
- */
-
-#if USE_GROUP__DMA_registers
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_SET__R_DMA_CH0_CLR_INTR
-*#
-*# PARAMETERS : fn : Name of field N.
-*# vn : Integer value to write to field N.
-*#
-*# RETURNS : integer value written to register R_DMA_CH0_CLR_INTR.
-*#
-*# SIDE EFFECTS: REG_INITIATED evaluated.
-*#
-*# DESCRIPTION : Write value of vn parameters to fields fn in register
-*# R_DMA_CH0_CLR_INTR.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Apr 01 1998 Jan Bengtsson Initial version
-*# Oct 01 2002 Hans-Peter Nilsson To stop premature evaluation, append
-*# _ to fn parameters when passing
-*# on to other macros.
-*#**********************************************************************/
-
-#define REG_SET__R_DMA_CH0_CLR_INTR(f1,v1,f2,v2) ( \
- *R_DMA_CH0_CLR_INTR__SADDR = ( \
- REG_INITIATED(R_DMA_CH0_CLR_INTR_) \
- REG_VAL__R_DMA_CH0_CLR_INTR_(f1##_,v1,f2##_,v2) \
- ), \
- R_DMA_CH0_CLR_INTR__WRITE(R_DMA_CH0_CLR_INTR__ADDR, *R_DMA_CH0_CLR_INTR__SADDR) \
-)
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_SET__R_DMA_CH0_CLR_INTR__SHADOW
-*#
-*# PARAMETERS : fn : Name of field N.
-*# vn : Integer value to write to field N.
-*#
-*# RETURNS : integer value written to register R_DMA_CH0_CLR_INTR.
-*#
-*# SIDE EFFECTS: REG_INITIATED evaluated.
-*#
-*# DESCRIPTION : Write value of vn parameters to fields fn in the
-*# shadow register for R_DMA_CH0_CLR_INTR.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Apr 01 1998 Jan Bengtsson Initial version
-*# Oct 01 2002 Hans-Peter Nilsson To stop premature evaluation, append
-*# _ to fn parameters when passing
-*# on to other macros.
-*#**********************************************************************/
-
-#define REG_SET__R_DMA_CH0_CLR_INTR__SHADOW(f1,v1,f2,v2) ( \
- *R_DMA_CH0_CLR_INTR__SADDR = ( \
- REG_INITIATED(R_DMA_CH0_CLR_INTR_) \
- REG_VAL__R_DMA_CH0_CLR_INTR_(f1##_,v1,f2##_,v2) \
- ) \
-)
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_MASK__R_DMA_CH0_CLR_INTR
-*#
-*# PARAMETERS : fn : Name of field N.
-*# vn : REG__on, or REG__off
-*#
-*# RETURNS : Integer value with 1s in all on-fields,
-*# and 0s in all off-fields.
-*#
-*# SIDE EFFECTS: None.
-*#
-*# DESCRIPTION : Create a mask with 1s in all fields with vn == REG__on,
-*# and 0s in fields with vn == REG_off.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Apr 01 1998 Jan Bengtsson Initial version
-*# Oct 01 2002 Hans-Peter Nilsson Only put ## where necessary to stop
-*# premature macro evaluation.
-*#**********************************************************************/
-
-#define REG_MASK__R_DMA_CH0_CLR_INTR(f1,v1,f2,v2) ( \
- (R_DMA_CH0_CLR_INTR__clr_eop__##f1##__MASK & REG__##v1) | \
- (R_DMA_CH0_CLR_INTR__clr_descr__##f2##__MASK & REG__##v2) \
-)
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_VAL__R_DMA_CH0_CLR_INTR
-*#
-*# PARAMETERS : fn : Name of field N.
-*# vn : Value in field N.
-*#
-*# RETURNS : Integer value.
-*#
-*# SIDE EFFECTS: REG_VERROR may be evaluated.
-*#
-*# DESCRIPTION : Create a value by combining the vn parameters according
-*# to the fields in register R_DMA_CH0_CLR_INTR.
-*# Parameters vn are checked for validity.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Apr 01 1998 Jan Bengtsson Initial version
-*# Oct 01 2002 Hans-Peter Nilsson To stop premature evaluation, append
-*# _ to fn parameters when passing
-*# on to other macros.
-*#**********************************************************************/
-
-#define REG_VAL__R_DMA_CH0_CLR_INTR(f1,v1,f2,v2) ( \
- (R_DMA_CH0_CLR_INTR__clr_eop__##f1##__VAL(R_DMA_CH0_CLR_INTR_, clr_eop_, v1) << R_DMA_CH0_CLR_INTR__clr_eop__BITNR) | \
- (R_DMA_CH0_CLR_INTR__clr_descr__##f2##__VAL(R_DMA_CH0_CLR_INTR_, clr_descr_, v2) << R_DMA_CH0_CLR_INTR__clr_descr__BITNR) \
-)
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_VAL__R_DMA_CH0_CLR_INTR_
-*#
-*# PARAMETERS : fn_ : Name of field N, with "_" appended.
-*# vn : Value in field N.
-*#
-*# RETURNS : Integer value.
-*#
-*# SIDE EFFECTS: REG_VERROR may be evaluated.
-*#
-*# DESCRIPTION : Create a value by combining the vn parameters according
-*# to the fields in register R_DMA_CH0_CLR_INTR.
-*# Parameters vn are checked for validity.
-*# INTERNAL: for use by other macros in this file only.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Sep 30 2002 Hans-Peter Nilsson Initial version
-*#**********************************************************************/
-
-#define REG_VAL__R_DMA_CH0_CLR_INTR_(f1_,v1,f2_,v2) ( \
- (R_DMA_CH0_CLR_INTR__clr_eop__##f1_##_VAL(R_DMA_CH0_CLR_INTR_, clr_eop_, v1) << R_DMA_CH0_CLR_INTR__clr_eop__BITNR) | \
- (R_DMA_CH0_CLR_INTR__clr_descr__##f2_##_VAL(R_DMA_CH0_CLR_INTR_, clr_descr_, v2) << R_DMA_CH0_CLR_INTR__clr_descr__BITNR) \
-)
-
-#endif
-
-/*
- * R_DMA_CH0_CMD
- * - type: RW
- * - addr: 0xb00001d0
- * - group: DMA registers
- */
-
-#if USE_GROUP__DMA_registers
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_SET__R_DMA_CH0_CMD
-*#
-*# PARAMETERS : fn : Name of field N.
-*# vn : Integer value to write to field N.
-*#
-*# RETURNS : integer value written to register R_DMA_CH0_CMD.
-*#
-*# SIDE EFFECTS: None.
-*#
-*# DESCRIPTION : Write value of vn parameters to fields fn in register
-*# R_DMA_CH0_CMD.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Apr 01 1998 Jan Bengtsson Initial version
-*# Oct 01 2002 Hans-Peter Nilsson To stop premature evaluation, append
-*# _ to fn parameters when passing
-*# on to other macros.
-*#**********************************************************************/
-
-#define REG_SET__R_DMA_CH0_CMD(f1,v1) ( \
- R_DMA_CH0_CMD__WRITE(R_DMA_CH0_CMD__ADDR, ( \
- REG_VAL__R_DMA_CH0_CMD_(f1##_,v1) ) \
- ) \
-)
-
-/* No REG_SET__register-name__SHADOW for read only and read write registers. */
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_MASK__R_DMA_CH0_CMD
-*#
-*# PARAMETERS : fn : Name of field N.
-*# vn : REG__on, or REG__off
-*#
-*# RETURNS : Integer value with 1s in all on-fields,
-*# and 0s in all off-fields.
-*#
-*# SIDE EFFECTS: None.
-*#
-*# DESCRIPTION : Create a mask with 1s in all fields with vn == REG__on,
-*# and 0s in fields with vn == REG_off.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Apr 01 1998 Jan Bengtsson Initial version
-*# Oct 01 2002 Hans-Peter Nilsson Only put ## where necessary to stop
-*# premature macro evaluation.
-*#**********************************************************************/
-
-#define REG_MASK__R_DMA_CH0_CMD(f1,v1) ( \
- (R_DMA_CH0_CMD__cmd__##f1##__MASK & REG__##v1) \
-)
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_VAL__R_DMA_CH0_CMD
-*#
-*# PARAMETERS : fn : Name of field N.
-*# vn : Value in field N.
-*#
-*# RETURNS : Integer value.
-*#
-*# SIDE EFFECTS: REG_VERROR may be evaluated.
-*#
-*# DESCRIPTION : Create a value by combining the vn parameters according
-*# to the fields in register R_DMA_CH0_CMD.
-*# Parameters vn are checked for validity.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Apr 01 1998 Jan Bengtsson Initial version
-*# Oct 01 2002 Hans-Peter Nilsson To stop premature evaluation, append
-*# _ to fn parameters when passing
-*# on to other macros.
-*#**********************************************************************/
-
-#define REG_VAL__R_DMA_CH0_CMD(f1,v1) ( \
- (R_DMA_CH0_CMD__cmd__##f1##__VAL(R_DMA_CH0_CMD_, cmd_, v1) << R_DMA_CH0_CMD__cmd__BITNR) \
-)
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_VAL__R_DMA_CH0_CMD_
-*#
-*# PARAMETERS : fn_ : Name of field N, with "_" appended.
-*# vn : Value in field N.
-*#
-*# RETURNS : Integer value.
-*#
-*# SIDE EFFECTS: REG_VERROR may be evaluated.
-*#
-*# DESCRIPTION : Create a value by combining the vn parameters according
-*# to the fields in register R_DMA_CH0_CMD.
-*# Parameters vn are checked for validity.
-*# INTERNAL: for use by other macros in this file only.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Sep 30 2002 Hans-Peter Nilsson Initial version
-*#**********************************************************************/
-
-#define REG_VAL__R_DMA_CH0_CMD_(f1_,v1) ( \
- (R_DMA_CH0_CMD__cmd__##f1_##_VAL(R_DMA_CH0_CMD_, cmd_, v1) << R_DMA_CH0_CMD__cmd__BITNR) \
-)
-
-#endif
-
-/*
- * R_DMA_CH0_DESCR
- * - type: RW
- * - addr: 0xb000010c
- * - group: DMA registers
- */
-
-#if USE_GROUP__DMA_registers
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_SET__R_DMA_CH0_DESCR
-*#
-*# PARAMETERS : fn : Name of field N.
-*# vn : Integer value to write to field N.
-*#
-*# RETURNS : integer value written to register R_DMA_CH0_DESCR.
-*#
-*# SIDE EFFECTS: None.
-*#
-*# DESCRIPTION : Write value of vn parameters to fields fn in register
-*# R_DMA_CH0_DESCR.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Apr 01 1998 Jan Bengtsson Initial version
-*# Oct 01 2002 Hans-Peter Nilsson To stop premature evaluation, append
-*# _ to fn parameters when passing
-*# on to other macros.
-*#**********************************************************************/
-
-#define REG_SET__R_DMA_CH0_DESCR(f1,v1) ( \
- R_DMA_CH0_DESCR__WRITE(R_DMA_CH0_DESCR__ADDR, ( \
- REG_VAL__R_DMA_CH0_DESCR_(f1##_,v1) ) \
- ) \
-)
-
-/* No REG_SET__register-name__SHADOW for read only and read write registers. */
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_MASK__R_DMA_CH0_DESCR
-*#
-*# PARAMETERS : fn : Name of field N.
-*# vn : REG__on, or REG__off
-*#
-*# RETURNS : Integer value with 1s in all on-fields,
-*# and 0s in all off-fields.
-*#
-*# SIDE EFFECTS: None.
-*#
-*# DESCRIPTION : Create a mask with 1s in all fields with vn == REG__on,
-*# and 0s in fields with vn == REG_off.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Apr 01 1998 Jan Bengtsson Initial version
-*# Oct 01 2002 Hans-Peter Nilsson Only put ## where necessary to stop
-*# premature macro evaluation.
-*#**********************************************************************/
-
-#define REG_MASK__R_DMA_CH0_DESCR(f1,v1) ( \
- (R_DMA_CH0_DESCR__descr__##f1##__MASK & REG__##v1) \
-)
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_VAL__R_DMA_CH0_DESCR
-*#
-*# PARAMETERS : fn : Name of field N.
-*# vn : Value in field N.
-*#
-*# RETURNS : Integer value.
-*#
-*# SIDE EFFECTS: REG_VERROR may be evaluated.
-*#
-*# DESCRIPTION : Create a value by combining the vn parameters according
-*# to the fields in register R_DMA_CH0_DESCR.
-*# Parameters vn are checked for validity.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Apr 01 1998 Jan Bengtsson Initial version
-*# Oct 01 2002 Hans-Peter Nilsson To stop premature evaluation, append
-*# _ to fn parameters when passing
-*# on to other macros.
-*#**********************************************************************/
-
-#define REG_VAL__R_DMA_CH0_DESCR(f1,v1) ( \
- (R_DMA_CH0_DESCR__descr__##f1##__VAL(R_DMA_CH0_DESCR_, descr_, v1) << R_DMA_CH0_DESCR__descr__BITNR) \
-)
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_VAL__R_DMA_CH0_DESCR_
-*#
-*# PARAMETERS : fn_ : Name of field N, with "_" appended.
-*# vn : Value in field N.
-*#
-*# RETURNS : Integer value.
-*#
-*# SIDE EFFECTS: REG_VERROR may be evaluated.
-*#
-*# DESCRIPTION : Create a value by combining the vn parameters according
-*# to the fields in register R_DMA_CH0_DESCR.
-*# Parameters vn are checked for validity.
-*# INTERNAL: for use by other macros in this file only.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Sep 30 2002 Hans-Peter Nilsson Initial version
-*#**********************************************************************/
-
-#define REG_VAL__R_DMA_CH0_DESCR_(f1_,v1) ( \
- (R_DMA_CH0_DESCR__descr__##f1_##_VAL(R_DMA_CH0_DESCR_, descr_, v1) << R_DMA_CH0_DESCR__descr__BITNR) \
-)
-
-#endif
-
-/*
- * R_DMA_CH0_FIRST
- * - type: RW
- * - addr: 0xb00001a0
- * - group: DMA registers
- */
-
-#if USE_GROUP__DMA_registers
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_SET__R_DMA_CH0_FIRST
-*#
-*# PARAMETERS : fn : Name of field N.
-*# vn : Integer value to write to field N.
-*#
-*# RETURNS : integer value written to register R_DMA_CH0_FIRST.
-*#
-*# SIDE EFFECTS: None.
-*#
-*# DESCRIPTION : Write value of vn parameters to fields fn in register
-*# R_DMA_CH0_FIRST.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Apr 01 1998 Jan Bengtsson Initial version
-*# Oct 01 2002 Hans-Peter Nilsson To stop premature evaluation, append
-*# _ to fn parameters when passing
-*# on to other macros.
-*#**********************************************************************/
-
-#define REG_SET__R_DMA_CH0_FIRST(f1,v1) ( \
- R_DMA_CH0_FIRST__WRITE(R_DMA_CH0_FIRST__ADDR, ( \
- REG_VAL__R_DMA_CH0_FIRST_(f1##_,v1) ) \
- ) \
-)
-
-/* No REG_SET__register-name__SHADOW for read only and read write registers. */
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_MASK__R_DMA_CH0_FIRST
-*#
-*# PARAMETERS : fn : Name of field N.
-*# vn : REG__on, or REG__off
-*#
-*# RETURNS : Integer value with 1s in all on-fields,
-*# and 0s in all off-fields.
-*#
-*# SIDE EFFECTS: None.
-*#
-*# DESCRIPTION : Create a mask with 1s in all fields with vn == REG__on,
-*# and 0s in fields with vn == REG_off.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Apr 01 1998 Jan Bengtsson Initial version
-*# Oct 01 2002 Hans-Peter Nilsson Only put ## where necessary to stop
-*# premature macro evaluation.
-*#**********************************************************************/
-
-#define REG_MASK__R_DMA_CH0_FIRST(f1,v1) ( \
- (R_DMA_CH0_FIRST__first__##f1##__MASK & REG__##v1) \
-)
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_VAL__R_DMA_CH0_FIRST
-*#
-*# PARAMETERS : fn : Name of field N.
-*# vn : Value in field N.
-*#
-*# RETURNS : Integer value.
-*#
-*# SIDE EFFECTS: REG_VERROR may be evaluated.
-*#
-*# DESCRIPTION : Create a value by combining the vn parameters according
-*# to the fields in register R_DMA_CH0_FIRST.
-*# Parameters vn are checked for validity.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Apr 01 1998 Jan Bengtsson Initial version
-*# Oct 01 2002 Hans-Peter Nilsson To stop premature evaluation, append
-*# _ to fn parameters when passing
-*# on to other macros.
-*#**********************************************************************/
-
-#define REG_VAL__R_DMA_CH0_FIRST(f1,v1) ( \
- (R_DMA_CH0_FIRST__first__##f1##__VAL(R_DMA_CH0_FIRST_, first_, v1) << R_DMA_CH0_FIRST__first__BITNR) \
-)
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_VAL__R_DMA_CH0_FIRST_
-*#
-*# PARAMETERS : fn_ : Name of field N, with "_" appended.
-*# vn : Value in field N.
-*#
-*# RETURNS : Integer value.
-*#
-*# SIDE EFFECTS: REG_VERROR may be evaluated.
-*#
-*# DESCRIPTION : Create a value by combining the vn parameters according
-*# to the fields in register R_DMA_CH0_FIRST.
-*# Parameters vn are checked for validity.
-*# INTERNAL: for use by other macros in this file only.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Sep 30 2002 Hans-Peter Nilsson Initial version
-*#**********************************************************************/
-
-#define REG_VAL__R_DMA_CH0_FIRST_(f1_,v1) ( \
- (R_DMA_CH0_FIRST__first__##f1_##_VAL(R_DMA_CH0_FIRST_, first_, v1) << R_DMA_CH0_FIRST__first__BITNR) \
-)
-
-#endif
-
-/*
- * R_DMA_CH0_HWSW
- * - type: RW
- * - addr: 0xb0000100
- * - group: DMA registers
- */
-
-#if USE_GROUP__DMA_registers
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_SET__R_DMA_CH0_HWSW
-*#
-*# PARAMETERS : fn : Name of field N.
-*# vn : Integer value to write to field N.
-*#
-*# RETURNS : integer value written to register R_DMA_CH0_HWSW.
-*#
-*# SIDE EFFECTS: None.
-*#
-*# DESCRIPTION : Write value of vn parameters to fields fn in register
-*# R_DMA_CH0_HWSW.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Apr 01 1998 Jan Bengtsson Initial version
-*# Oct 01 2002 Hans-Peter Nilsson To stop premature evaluation, append
-*# _ to fn parameters when passing
-*# on to other macros.
-*#**********************************************************************/
-
-#define REG_SET__R_DMA_CH0_HWSW(f1,v1,f2,v2) ( \
- R_DMA_CH0_HWSW__WRITE(R_DMA_CH0_HWSW__ADDR, ( \
- REG_VAL__R_DMA_CH0_HWSW_(f1##_,v1,f2##_,v2) ) \
- ) \
-)
-
-/* No REG_SET__register-name__SHADOW for read only and read write registers. */
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_MASK__R_DMA_CH0_HWSW
-*#
-*# PARAMETERS : fn : Name of field N.
-*# vn : REG__on, or REG__off
-*#
-*# RETURNS : Integer value with 1s in all on-fields,
-*# and 0s in all off-fields.
-*#
-*# SIDE EFFECTS: None.
-*#
-*# DESCRIPTION : Create a mask with 1s in all fields with vn == REG__on,
-*# and 0s in fields with vn == REG_off.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Apr 01 1998 Jan Bengtsson Initial version
-*# Oct 01 2002 Hans-Peter Nilsson Only put ## where necessary to stop
-*# premature macro evaluation.
-*#**********************************************************************/
-
-#define REG_MASK__R_DMA_CH0_HWSW(f1,v1,f2,v2) ( \
- (R_DMA_CH0_HWSW__hw__##f1##__MASK & REG__##v1) | \
- (R_DMA_CH0_HWSW__sw__##f2##__MASK & REG__##v2) \
-)
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_VAL__R_DMA_CH0_HWSW
-*#
-*# PARAMETERS : fn : Name of field N.
-*# vn : Value in field N.
-*#
-*# RETURNS : Integer value.
-*#
-*# SIDE EFFECTS: REG_VERROR may be evaluated.
-*#
-*# DESCRIPTION : Create a value by combining the vn parameters according
-*# to the fields in register R_DMA_CH0_HWSW.
-*# Parameters vn are checked for validity.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Apr 01 1998 Jan Bengtsson Initial version
-*# Oct 01 2002 Hans-Peter Nilsson To stop premature evaluation, append
-*# _ to fn parameters when passing
-*# on to other macros.
-*#**********************************************************************/
-
-#define REG_VAL__R_DMA_CH0_HWSW(f1,v1,f2,v2) ( \
- (R_DMA_CH0_HWSW__hw__##f1##__VAL(R_DMA_CH0_HWSW_, hw_, v1) << R_DMA_CH0_HWSW__hw__BITNR) | \
- (R_DMA_CH0_HWSW__sw__##f2##__VAL(R_DMA_CH0_HWSW_, sw_, v2) << R_DMA_CH0_HWSW__sw__BITNR) \
-)
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_VAL__R_DMA_CH0_HWSW_
-*#
-*# PARAMETERS : fn_ : Name of field N, with "_" appended.
-*# vn : Value in field N.
-*#
-*# RETURNS : Integer value.
-*#
-*# SIDE EFFECTS: REG_VERROR may be evaluated.
-*#
-*# DESCRIPTION : Create a value by combining the vn parameters according
-*# to the fields in register R_DMA_CH0_HWSW.
-*# Parameters vn are checked for validity.
-*# INTERNAL: for use by other macros in this file only.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Sep 30 2002 Hans-Peter Nilsson Initial version
-*#**********************************************************************/
-
-#define REG_VAL__R_DMA_CH0_HWSW_(f1_,v1,f2_,v2) ( \
- (R_DMA_CH0_HWSW__hw__##f1_##_VAL(R_DMA_CH0_HWSW_, hw_, v1) << R_DMA_CH0_HWSW__hw__BITNR) | \
- (R_DMA_CH0_HWSW__sw__##f2_##_VAL(R_DMA_CH0_HWSW_, sw_, v2) << R_DMA_CH0_HWSW__sw__BITNR) \
-)
-
-#endif
-
-/*
- * R_DMA_CH0_NEXT
- * - type: RW
- * - addr: 0xb0000104
- * - group: DMA registers
- */
-
-#if USE_GROUP__DMA_registers
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_SET__R_DMA_CH0_NEXT
-*#
-*# PARAMETERS : fn : Name of field N.
-*# vn : Integer value to write to field N.
-*#
-*# RETURNS : integer value written to register R_DMA_CH0_NEXT.
-*#
-*# SIDE EFFECTS: None.
-*#
-*# DESCRIPTION : Write value of vn parameters to fields fn in register
-*# R_DMA_CH0_NEXT.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Apr 01 1998 Jan Bengtsson Initial version
-*# Oct 01 2002 Hans-Peter Nilsson To stop premature evaluation, append
-*# _ to fn parameters when passing
-*# on to other macros.
-*#**********************************************************************/
-
-#define REG_SET__R_DMA_CH0_NEXT(f1,v1) ( \
- R_DMA_CH0_NEXT__WRITE(R_DMA_CH0_NEXT__ADDR, ( \
- REG_VAL__R_DMA_CH0_NEXT_(f1##_,v1) ) \
- ) \
-)
-
-/* No REG_SET__register-name__SHADOW for read only and read write registers. */
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_MASK__R_DMA_CH0_NEXT
-*#
-*# PARAMETERS : fn : Name of field N.
-*# vn : REG__on, or REG__off
-*#
-*# RETURNS : Integer value with 1s in all on-fields,
-*# and 0s in all off-fields.
-*#
-*# SIDE EFFECTS: None.
-*#
-*# DESCRIPTION : Create a mask with 1s in all fields with vn == REG__on,
-*# and 0s in fields with vn == REG_off.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Apr 01 1998 Jan Bengtsson Initial version
-*# Oct 01 2002 Hans-Peter Nilsson Only put ## where necessary to stop
-*# premature macro evaluation.
-*#**********************************************************************/
-
-#define REG_MASK__R_DMA_CH0_NEXT(f1,v1) ( \
- (R_DMA_CH0_NEXT__next__##f1##__MASK & REG__##v1) \
-)
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_VAL__R_DMA_CH0_NEXT
-*#
-*# PARAMETERS : fn : Name of field N.
-*# vn : Value in field N.
-*#
-*# RETURNS : Integer value.
-*#
-*# SIDE EFFECTS: REG_VERROR may be evaluated.
-*#
-*# DESCRIPTION : Create a value by combining the vn parameters according
-*# to the fields in register R_DMA_CH0_NEXT.
-*# Parameters vn are checked for validity.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Apr 01 1998 Jan Bengtsson Initial version
-*# Oct 01 2002 Hans-Peter Nilsson To stop premature evaluation, append
-*# _ to fn parameters when passing
-*# on to other macros.
-*#**********************************************************************/
-
-#define REG_VAL__R_DMA_CH0_NEXT(f1,v1) ( \
- (R_DMA_CH0_NEXT__next__##f1##__VAL(R_DMA_CH0_NEXT_, next_, v1) << R_DMA_CH0_NEXT__next__BITNR) \
-)
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_VAL__R_DMA_CH0_NEXT_
-*#
-*# PARAMETERS : fn_ : Name of field N, with "_" appended.
-*# vn : Value in field N.
-*#
-*# RETURNS : Integer value.
-*#
-*# SIDE EFFECTS: REG_VERROR may be evaluated.
-*#
-*# DESCRIPTION : Create a value by combining the vn parameters according
-*# to the fields in register R_DMA_CH0_NEXT.
-*# Parameters vn are checked for validity.
-*# INTERNAL: for use by other macros in this file only.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Sep 30 2002 Hans-Peter Nilsson Initial version
-*#**********************************************************************/
-
-#define REG_VAL__R_DMA_CH0_NEXT_(f1_,v1) ( \
- (R_DMA_CH0_NEXT__next__##f1_##_VAL(R_DMA_CH0_NEXT_, next_, v1) << R_DMA_CH0_NEXT__next__BITNR) \
-)
-
-#endif
-
-/*
- * R_DMA_CH0_STATUS
- * - type: RO
- * - addr: 0xb00001d2
- * - group: DMA registers
- */
-
-#if USE_GROUP__DMA_registers
-
-/* No REG_SET__register-name for read only registers. */
-
-/* No REG_SET__register-name__SHADOW for read only and read write registers. */
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_MASK__R_DMA_CH0_STATUS
-*#
-*# PARAMETERS : fn : Name of field N.
-*# vn : REG__on, or REG__off
-*#
-*# RETURNS : Integer value with 1s in all on-fields,
-*# and 0s in all off-fields.
-*#
-*# SIDE EFFECTS: None.
-*#
-*# DESCRIPTION : Create a mask with 1s in all fields with vn == REG__on,
-*# and 0s in fields with vn == REG_off.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Apr 01 1998 Jan Bengtsson Initial version
-*# Oct 01 2002 Hans-Peter Nilsson Only put ## where necessary to stop
-*# premature macro evaluation.
-*#**********************************************************************/
-
-#define REG_MASK__R_DMA_CH0_STATUS(f1,v1) ( \
- (R_DMA_CH0_STATUS__avail__##f1##__MASK & REG__##v1) \
-)
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_VAL__R_DMA_CH0_STATUS
-*#
-*# PARAMETERS : fn : Name of field N.
-*# vn : Value in field N.
-*#
-*# RETURNS : Integer value.
-*#
-*# SIDE EFFECTS: REG_VERROR may be evaluated.
-*#
-*# DESCRIPTION : Create a value by combining the vn parameters according
-*# to the fields in register R_DMA_CH0_STATUS.
-*# Parameters vn are checked for validity.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Apr 01 1998 Jan Bengtsson Initial version
-*# Oct 01 2002 Hans-Peter Nilsson To stop premature evaluation, append
-*# _ to fn parameters when passing
-*# on to other macros.
-*#**********************************************************************/
-
-#define REG_VAL__R_DMA_CH0_STATUS(f1,v1) ( \
- (R_DMA_CH0_STATUS__avail__##f1##__VAL(R_DMA_CH0_STATUS_, avail_, v1) << R_DMA_CH0_STATUS__avail__BITNR) \
-)
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_VAL__R_DMA_CH0_STATUS_
-*#
-*# PARAMETERS : fn_ : Name of field N, with "_" appended.
-*# vn : Value in field N.
-*#
-*# RETURNS : Integer value.
-*#
-*# SIDE EFFECTS: REG_VERROR may be evaluated.
-*#
-*# DESCRIPTION : Create a value by combining the vn parameters according
-*# to the fields in register R_DMA_CH0_STATUS.
-*# Parameters vn are checked for validity.
-*# INTERNAL: for use by other macros in this file only.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Sep 30 2002 Hans-Peter Nilsson Initial version
-*#**********************************************************************/
-
-#define REG_VAL__R_DMA_CH0_STATUS_(f1_,v1) ( \
- (R_DMA_CH0_STATUS__avail__##f1_##_VAL(R_DMA_CH0_STATUS_, avail_, v1) << R_DMA_CH0_STATUS__avail__BITNR) \
-)
-
-#endif
-
-/*
- * R_DMA_CH1_BUF
- * - type: RW
- * - addr: 0xb0000118
- * - group: DMA registers
- */
-
-#if USE_GROUP__DMA_registers
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_SET__R_DMA_CH1_BUF
-*#
-*# PARAMETERS : fn : Name of field N.
-*# vn : Integer value to write to field N.
-*#
-*# RETURNS : integer value written to register R_DMA_CH1_BUF.
-*#
-*# SIDE EFFECTS: None.
-*#
-*# DESCRIPTION : Write value of vn parameters to fields fn in register
-*# R_DMA_CH1_BUF.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Apr 01 1998 Jan Bengtsson Initial version
-*# Oct 01 2002 Hans-Peter Nilsson To stop premature evaluation, append
-*# _ to fn parameters when passing
-*# on to other macros.
-*#**********************************************************************/
-
-#define REG_SET__R_DMA_CH1_BUF(f1,v1) ( \
- R_DMA_CH1_BUF__WRITE(R_DMA_CH1_BUF__ADDR, ( \
- REG_VAL__R_DMA_CH1_BUF_(f1##_,v1) ) \
- ) \
-)
-
-/* No REG_SET__register-name__SHADOW for read only and read write registers. */
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_MASK__R_DMA_CH1_BUF
-*#
-*# PARAMETERS : fn : Name of field N.
-*# vn : REG__on, or REG__off
-*#
-*# RETURNS : Integer value with 1s in all on-fields,
-*# and 0s in all off-fields.
-*#
-*# SIDE EFFECTS: None.
-*#
-*# DESCRIPTION : Create a mask with 1s in all fields with vn == REG__on,
-*# and 0s in fields with vn == REG_off.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Apr 01 1998 Jan Bengtsson Initial version
-*# Oct 01 2002 Hans-Peter Nilsson Only put ## where necessary to stop
-*# premature macro evaluation.
-*#**********************************************************************/
-
-#define REG_MASK__R_DMA_CH1_BUF(f1,v1) ( \
- (R_DMA_CH1_BUF__buf__##f1##__MASK & REG__##v1) \
-)
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_VAL__R_DMA_CH1_BUF
-*#
-*# PARAMETERS : fn : Name of field N.
-*# vn : Value in field N.
-*#
-*# RETURNS : Integer value.
-*#
-*# SIDE EFFECTS: REG_VERROR may be evaluated.
-*#
-*# DESCRIPTION : Create a value by combining the vn parameters according
-*# to the fields in register R_DMA_CH1_BUF.
-*# Parameters vn are checked for validity.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Apr 01 1998 Jan Bengtsson Initial version
-*# Oct 01 2002 Hans-Peter Nilsson To stop premature evaluation, append
-*# _ to fn parameters when passing
-*# on to other macros.
-*#**********************************************************************/
-
-#define REG_VAL__R_DMA_CH1_BUF(f1,v1) ( \
- (R_DMA_CH1_BUF__buf__##f1##__VAL(R_DMA_CH1_BUF_, buf_, v1) << R_DMA_CH1_BUF__buf__BITNR) \
-)
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_VAL__R_DMA_CH1_BUF_
-*#
-*# PARAMETERS : fn_ : Name of field N, with "_" appended.
-*# vn : Value in field N.
-*#
-*# RETURNS : Integer value.
-*#
-*# SIDE EFFECTS: REG_VERROR may be evaluated.
-*#
-*# DESCRIPTION : Create a value by combining the vn parameters according
-*# to the fields in register R_DMA_CH1_BUF.
-*# Parameters vn are checked for validity.
-*# INTERNAL: for use by other macros in this file only.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Sep 30 2002 Hans-Peter Nilsson Initial version
-*#**********************************************************************/
-
-#define REG_VAL__R_DMA_CH1_BUF_(f1_,v1) ( \
- (R_DMA_CH1_BUF__buf__##f1_##_VAL(R_DMA_CH1_BUF_, buf_, v1) << R_DMA_CH1_BUF__buf__BITNR) \
-)
-
-#endif
-
-/*
- * R_DMA_CH1_CLR_INTR
- * - type: WO
- * - addr: 0xb00001d5
- * - group: DMA registers
- */
-
-#if USE_GROUP__DMA_registers
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_SET__R_DMA_CH1_CLR_INTR
-*#
-*# PARAMETERS : fn : Name of field N.
-*# vn : Integer value to write to field N.
-*#
-*# RETURNS : integer value written to register R_DMA_CH1_CLR_INTR.
-*#
-*# SIDE EFFECTS: REG_INITIATED evaluated.
-*#
-*# DESCRIPTION : Write value of vn parameters to fields fn in register
-*# R_DMA_CH1_CLR_INTR.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Apr 01 1998 Jan Bengtsson Initial version
-*# Oct 01 2002 Hans-Peter Nilsson To stop premature evaluation, append
-*# _ to fn parameters when passing
-*# on to other macros.
-*#**********************************************************************/
-
-#define REG_SET__R_DMA_CH1_CLR_INTR(f1,v1,f2,v2) ( \
- *R_DMA_CH1_CLR_INTR__SADDR = ( \
- REG_INITIATED(R_DMA_CH1_CLR_INTR_) \
- REG_VAL__R_DMA_CH1_CLR_INTR_(f1##_,v1,f2##_,v2) \
- ), \
- R_DMA_CH1_CLR_INTR__WRITE(R_DMA_CH1_CLR_INTR__ADDR, *R_DMA_CH1_CLR_INTR__SADDR) \
-)
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_SET__R_DMA_CH1_CLR_INTR__SHADOW
-*#
-*# PARAMETERS : fn : Name of field N.
-*# vn : Integer value to write to field N.
-*#
-*# RETURNS : integer value written to register R_DMA_CH1_CLR_INTR.
-*#
-*# SIDE EFFECTS: REG_INITIATED evaluated.
-*#
-*# DESCRIPTION : Write value of vn parameters to fields fn in the
-*# shadow register for R_DMA_CH1_CLR_INTR.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Apr 01 1998 Jan Bengtsson Initial version
-*# Oct 01 2002 Hans-Peter Nilsson To stop premature evaluation, append
-*# _ to fn parameters when passing
-*# on to other macros.
-*#**********************************************************************/
-
-#define REG_SET__R_DMA_CH1_CLR_INTR__SHADOW(f1,v1,f2,v2) ( \
- *R_DMA_CH1_CLR_INTR__SADDR = ( \
- REG_INITIATED(R_DMA_CH1_CLR_INTR_) \
- REG_VAL__R_DMA_CH1_CLR_INTR_(f1##_,v1,f2##_,v2) \
- ) \
-)
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_MASK__R_DMA_CH1_CLR_INTR
-*#
-*# PARAMETERS : fn : Name of field N.
-*# vn : REG__on, or REG__off
-*#
-*# RETURNS : Integer value with 1s in all on-fields,
-*# and 0s in all off-fields.
-*#
-*# SIDE EFFECTS: None.
-*#
-*# DESCRIPTION : Create a mask with 1s in all fields with vn == REG__on,
-*# and 0s in fields with vn == REG_off.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Apr 01 1998 Jan Bengtsson Initial version
-*# Oct 01 2002 Hans-Peter Nilsson Only put ## where necessary to stop
-*# premature macro evaluation.
-*#**********************************************************************/
-
-#define REG_MASK__R_DMA_CH1_CLR_INTR(f1,v1,f2,v2) ( \
- (R_DMA_CH1_CLR_INTR__clr_eop__##f1##__MASK & REG__##v1) | \
- (R_DMA_CH1_CLR_INTR__clr_descr__##f2##__MASK & REG__##v2) \
-)
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_VAL__R_DMA_CH1_CLR_INTR
-*#
-*# PARAMETERS : fn : Name of field N.
-*# vn : Value in field N.
-*#
-*# RETURNS : Integer value.
-*#
-*# SIDE EFFECTS: REG_VERROR may be evaluated.
-*#
-*# DESCRIPTION : Create a value by combining the vn parameters according
-*# to the fields in register R_DMA_CH1_CLR_INTR.
-*# Parameters vn are checked for validity.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Apr 01 1998 Jan Bengtsson Initial version
-*# Oct 01 2002 Hans-Peter Nilsson To stop premature evaluation, append
-*# _ to fn parameters when passing
-*# on to other macros.
-*#**********************************************************************/
-
-#define REG_VAL__R_DMA_CH1_CLR_INTR(f1,v1,f2,v2) ( \
- (R_DMA_CH1_CLR_INTR__clr_eop__##f1##__VAL(R_DMA_CH1_CLR_INTR_, clr_eop_, v1) << R_DMA_CH1_CLR_INTR__clr_eop__BITNR) | \
- (R_DMA_CH1_CLR_INTR__clr_descr__##f2##__VAL(R_DMA_CH1_CLR_INTR_, clr_descr_, v2) << R_DMA_CH1_CLR_INTR__clr_descr__BITNR) \
-)
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_VAL__R_DMA_CH1_CLR_INTR_
-*#
-*# PARAMETERS : fn_ : Name of field N, with "_" appended.
-*# vn : Value in field N.
-*#
-*# RETURNS : Integer value.
-*#
-*# SIDE EFFECTS: REG_VERROR may be evaluated.
-*#
-*# DESCRIPTION : Create a value by combining the vn parameters according
-*# to the fields in register R_DMA_CH1_CLR_INTR.
-*# Parameters vn are checked for validity.
-*# INTERNAL: for use by other macros in this file only.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Sep 30 2002 Hans-Peter Nilsson Initial version
-*#**********************************************************************/
-
-#define REG_VAL__R_DMA_CH1_CLR_INTR_(f1_,v1,f2_,v2) ( \
- (R_DMA_CH1_CLR_INTR__clr_eop__##f1_##_VAL(R_DMA_CH1_CLR_INTR_, clr_eop_, v1) << R_DMA_CH1_CLR_INTR__clr_eop__BITNR) | \
- (R_DMA_CH1_CLR_INTR__clr_descr__##f2_##_VAL(R_DMA_CH1_CLR_INTR_, clr_descr_, v2) << R_DMA_CH1_CLR_INTR__clr_descr__BITNR) \
-)
-
-#endif
-
-/*
- * R_DMA_CH1_CMD
- * - type: RW
- * - addr: 0xb00001d4
- * - group: DMA registers
- */
-
-#if USE_GROUP__DMA_registers
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_SET__R_DMA_CH1_CMD
-*#
-*# PARAMETERS : fn : Name of field N.
-*# vn : Integer value to write to field N.
-*#
-*# RETURNS : integer value written to register R_DMA_CH1_CMD.
-*#
-*# SIDE EFFECTS: None.
-*#
-*# DESCRIPTION : Write value of vn parameters to fields fn in register
-*# R_DMA_CH1_CMD.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Apr 01 1998 Jan Bengtsson Initial version
-*# Oct 01 2002 Hans-Peter Nilsson To stop premature evaluation, append
-*# _ to fn parameters when passing
-*# on to other macros.
-*#**********************************************************************/
-
-#define REG_SET__R_DMA_CH1_CMD(f1,v1) ( \
- R_DMA_CH1_CMD__WRITE(R_DMA_CH1_CMD__ADDR, ( \
- REG_VAL__R_DMA_CH1_CMD_(f1##_,v1) ) \
- ) \
-)
-
-/* No REG_SET__register-name__SHADOW for read only and read write registers. */
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_MASK__R_DMA_CH1_CMD
-*#
-*# PARAMETERS : fn : Name of field N.
-*# vn : REG__on, or REG__off
-*#
-*# RETURNS : Integer value with 1s in all on-fields,
-*# and 0s in all off-fields.
-*#
-*# SIDE EFFECTS: None.
-*#
-*# DESCRIPTION : Create a mask with 1s in all fields with vn == REG__on,
-*# and 0s in fields with vn == REG_off.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Apr 01 1998 Jan Bengtsson Initial version
-*# Oct 01 2002 Hans-Peter Nilsson Only put ## where necessary to stop
-*# premature macro evaluation.
-*#**********************************************************************/
-
-#define REG_MASK__R_DMA_CH1_CMD(f1,v1) ( \
- (R_DMA_CH1_CMD__cmd__##f1##__MASK & REG__##v1) \
-)
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_VAL__R_DMA_CH1_CMD
-*#
-*# PARAMETERS : fn : Name of field N.
-*# vn : Value in field N.
-*#
-*# RETURNS : Integer value.
-*#
-*# SIDE EFFECTS: REG_VERROR may be evaluated.
-*#
-*# DESCRIPTION : Create a value by combining the vn parameters according
-*# to the fields in register R_DMA_CH1_CMD.
-*# Parameters vn are checked for validity.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Apr 01 1998 Jan Bengtsson Initial version
-*# Oct 01 2002 Hans-Peter Nilsson To stop premature evaluation, append
-*# _ to fn parameters when passing
-*# on to other macros.
-*#**********************************************************************/
-
-#define REG_VAL__R_DMA_CH1_CMD(f1,v1) ( \
- (R_DMA_CH1_CMD__cmd__##f1##__VAL(R_DMA_CH1_CMD_, cmd_, v1) << R_DMA_CH1_CMD__cmd__BITNR) \
-)
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_VAL__R_DMA_CH1_CMD_
-*#
-*# PARAMETERS : fn_ : Name of field N, with "_" appended.
-*# vn : Value in field N.
-*#
-*# RETURNS : Integer value.
-*#
-*# SIDE EFFECTS: REG_VERROR may be evaluated.
-*#
-*# DESCRIPTION : Create a value by combining the vn parameters according
-*# to the fields in register R_DMA_CH1_CMD.
-*# Parameters vn are checked for validity.
-*# INTERNAL: for use by other macros in this file only.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Sep 30 2002 Hans-Peter Nilsson Initial version
-*#**********************************************************************/
-
-#define REG_VAL__R_DMA_CH1_CMD_(f1_,v1) ( \
- (R_DMA_CH1_CMD__cmd__##f1_##_VAL(R_DMA_CH1_CMD_, cmd_, v1) << R_DMA_CH1_CMD__cmd__BITNR) \
-)
-
-#endif
-
-/*
- * R_DMA_CH1_DESCR
- * - type: RW
- * - addr: 0xb000011c
- * - group: DMA registers
- */
-
-#if USE_GROUP__DMA_registers
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_SET__R_DMA_CH1_DESCR
-*#
-*# PARAMETERS : fn : Name of field N.
-*# vn : Integer value to write to field N.
-*#
-*# RETURNS : integer value written to register R_DMA_CH1_DESCR.
-*#
-*# SIDE EFFECTS: None.
-*#
-*# DESCRIPTION : Write value of vn parameters to fields fn in register
-*# R_DMA_CH1_DESCR.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Apr 01 1998 Jan Bengtsson Initial version
-*# Oct 01 2002 Hans-Peter Nilsson To stop premature evaluation, append
-*# _ to fn parameters when passing
-*# on to other macros.
-*#**********************************************************************/
-
-#define REG_SET__R_DMA_CH1_DESCR(f1,v1) ( \
- R_DMA_CH1_DESCR__WRITE(R_DMA_CH1_DESCR__ADDR, ( \
- REG_VAL__R_DMA_CH1_DESCR_(f1##_,v1) ) \
- ) \
-)
-
-/* No REG_SET__register-name__SHADOW for read only and read write registers. */
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_MASK__R_DMA_CH1_DESCR
-*#
-*# PARAMETERS : fn : Name of field N.
-*# vn : REG__on, or REG__off
-*#
-*# RETURNS : Integer value with 1s in all on-fields,
-*# and 0s in all off-fields.
-*#
-*# SIDE EFFECTS: None.
-*#
-*# DESCRIPTION : Create a mask with 1s in all fields with vn == REG__on,
-*# and 0s in fields with vn == REG_off.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Apr 01 1998 Jan Bengtsson Initial version
-*# Oct 01 2002 Hans-Peter Nilsson Only put ## where necessary to stop
-*# premature macro evaluation.
-*#**********************************************************************/
-
-#define REG_MASK__R_DMA_CH1_DESCR(f1,v1) ( \
- (R_DMA_CH1_DESCR__descr__##f1##__MASK & REG__##v1) \
-)
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_VAL__R_DMA_CH1_DESCR
-*#
-*# PARAMETERS : fn : Name of field N.
-*# vn : Value in field N.
-*#
-*# RETURNS : Integer value.
-*#
-*# SIDE EFFECTS: REG_VERROR may be evaluated.
-*#
-*# DESCRIPTION : Create a value by combining the vn parameters according
-*# to the fields in register R_DMA_CH1_DESCR.
-*# Parameters vn are checked for validity.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Apr 01 1998 Jan Bengtsson Initial version
-*# Oct 01 2002 Hans-Peter Nilsson To stop premature evaluation, append
-*# _ to fn parameters when passing
-*# on to other macros.
-*#**********************************************************************/
-
-#define REG_VAL__R_DMA_CH1_DESCR(f1,v1) ( \
- (R_DMA_CH1_DESCR__descr__##f1##__VAL(R_DMA_CH1_DESCR_, descr_, v1) << R_DMA_CH1_DESCR__descr__BITNR) \
-)
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_VAL__R_DMA_CH1_DESCR_
-*#
-*# PARAMETERS : fn_ : Name of field N, with "_" appended.
-*# vn : Value in field N.
-*#
-*# RETURNS : Integer value.
-*#
-*# SIDE EFFECTS: REG_VERROR may be evaluated.
-*#
-*# DESCRIPTION : Create a value by combining the vn parameters according
-*# to the fields in register R_DMA_CH1_DESCR.
-*# Parameters vn are checked for validity.
-*# INTERNAL: for use by other macros in this file only.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Sep 30 2002 Hans-Peter Nilsson Initial version
-*#**********************************************************************/
-
-#define REG_VAL__R_DMA_CH1_DESCR_(f1_,v1) ( \
- (R_DMA_CH1_DESCR__descr__##f1_##_VAL(R_DMA_CH1_DESCR_, descr_, v1) << R_DMA_CH1_DESCR__descr__BITNR) \
-)
-
-#endif
-
-/*
- * R_DMA_CH1_FIRST
- * - type: RW
- * - addr: 0xb00001a4
- * - group: DMA registers
- */
-
-#if USE_GROUP__DMA_registers
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_SET__R_DMA_CH1_FIRST
-*#
-*# PARAMETERS : fn : Name of field N.
-*# vn : Integer value to write to field N.
-*#
-*# RETURNS : integer value written to register R_DMA_CH1_FIRST.
-*#
-*# SIDE EFFECTS: None.
-*#
-*# DESCRIPTION : Write value of vn parameters to fields fn in register
-*# R_DMA_CH1_FIRST.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Apr 01 1998 Jan Bengtsson Initial version
-*# Oct 01 2002 Hans-Peter Nilsson To stop premature evaluation, append
-*# _ to fn parameters when passing
-*# on to other macros.
-*#**********************************************************************/
-
-#define REG_SET__R_DMA_CH1_FIRST(f1,v1) ( \
- R_DMA_CH1_FIRST__WRITE(R_DMA_CH1_FIRST__ADDR, ( \
- REG_VAL__R_DMA_CH1_FIRST_(f1##_,v1) ) \
- ) \
-)
-
-/* No REG_SET__register-name__SHADOW for read only and read write registers. */
-
-/*#**********************************************************************
-*#
-*# MACRO NAME : REG_MASK__R_DMA_CH1_FIRST
-*#
-*# PARAMETERS : fn : Name of field N.
-*# vn : REG__on, or REG__off
-*#
-*# RETURNS : Integer value with 1s in all on-fields,
-*# and 0s in all off-fields.
-*#
-*# SIDE EFFECTS: None.
-*#
-*# DESCRIPTION : Create a mask with 1s in all fields with vn == REG__on,
-*# and 0s in fields with vn == REG_off.
-*#
-*#----------------------------------------------------------------------
-*# HISTORY
-*#
-*# DATE NAME CHANGES
-*# ---- ---- -------
-*# Apr 01 1998 Jan Bengtsson Initial version
-*# Oct 01 2002 Hans-Peter Nilsson Only put ## where necessary to stop
-*# premature macro evaluation.
-*#**********************************************************************/
-
-#define REG_MASK__R_DMA_CH1_FIRST(f1,v1) ( \