diff --git a/Documentation/boards.dox b/Documentation/boards.dox index fa0f284a3..c04e06b43 100644 --- a/Documentation/boards.dox +++ b/Documentation/boards.dox @@ -43,11 +43,6 @@ x86 type: @li @subpage generic_pc -coldfire/m68k type: - -@li @subpage phycore_mcf54xx -@li @subpage kp_ukd_r1 - */ /* TODO diff --git a/arch/architecture.dox b/arch/architecture.dox index ea00dcdc8..67e2c3886 100644 --- a/arch/architecture.dox +++ b/arch/architecture.dox @@ -87,7 +87,6 @@ TODO @li @subpage dev_arm_mach @li @subpage dev_bf_mach @li @subpage dev_ppc_mach -@li @subpage dev_m68k_mach @li @subpage dev_x86_mach */ diff --git a/arch/m68k/Kconfig b/arch/m68k/Kconfig deleted file mode 100644 index c9608da5c..000000000 --- a/arch/m68k/Kconfig +++ /dev/null @@ -1,182 +0,0 @@ -# -# Default location of link barebox Image on M68k/Coldfire -# -config ARCH_TEXT_BASE - hex - default 0x07f00000 if MACH_MCF54xx - default 0x07f00000 if MACH_MCF5445x - help - Vector table for M68k and barebox Link Address - - On M68k/Coldfire cores all exceptions and interrupts are routed through - a vector array. This vector is by default at address 0x0000_0000, but - can be moved to any other 1MB aligned address. - - We take advantage of this to move barebox out of low memory. Some BDM - debuggers won't like a moved vector base and might need tweaking to - work. - - Note: Respect alignment restrictions for TEXT_BASE, which must be - 1MB aligned (VBR register constrain). - -# -# Internal configurations -# -config BOARDINFO - default "konzeptpark UKD Prototype with Phycore MCF5485" if MACH_KPUKDR1 - default "konzeptpark UKD Prototype with Phycore MCF5475 NUM" if MACH_KPUKDR1_NUM - default "konzeptpark UKD Revision 2 with Phycore MCF5485" if MACH_KPUKDR2 - default "konzeptpark UKD Revision 2 with Phycore MCF5475 NUM" if MACH_KPUKDR2_NUM - default "Phytec Baseboard with Phycore MCF5485" if MACH_PCM982_5485 - default "Phytec Baseboard with Phycore MCF5475" if MACH_PCM982_5475 - default "Phytec Baseboard with Phycore MCF5475 NUM" if MACH_PCM982_5475_NUM - default "Phytec Baseboard with Phycore MCF54455" if MACH_PCM982_54455 - default "!No boardinfo string set!" - -config HAS_EARLY_INIT - bool - default n - -config BOARD_LINKER_SCRIPT - bool - default n - -config GENERIC_LINKER_SCRIPT - bool - default y - depends on !BOARD_LINKER_SCRIPT - -config M68K - bool - select HAS_KALLSYMS - select HAS_MODULES - default y - -config MCFV4E - bool - -config MCFV4M - bool - -config ARCH_MCF54xx - bool - select MCFV4E - -config ARCH_MCF5445x - bool - select MCFV4M - -# -# Board selection -# -choice - prompt "Select your board" - -config MACH_KPUKDR1 - bool "konzeptpark UKD R1 + phyCore MCF5485" - select HAS_CFI - select ARCH_MCF54xx - help - Say Y here if you are using the konzeptpark UKD R1 with a - Phytec Phycore PCM-024 equipped with a Freescale MC5485 Processor - -config MACH_KPUKDR1_NUM - bool "konzeptpark UKD R1 + phyCore MCF5475 NUM" - select HAS_CFI - select ARCH_MCF54xx - select MACH_HAS_LOWLEVEL_INIT - help - Say Y here if you are using the konzeptpark UKD R1 with a - Phytec Phycore PCM-024-NUM equipped with a Freescale MC5475 Processor - -config MACH_KPUKDR2 - bool "konzeptpark UKD R2 + phyCore MCF5485" - select HAS_CFI - select ARCH_MCF54xx - help - Say Y here if you are using the konzeptpark UKD R2 with a - Phytec Phycore PCM-024 equipped with a Freescale MC5485 Processor - -config MACH_KPUKDR2_NUM - bool "konzeptpark UKD R2 + phyCore MCF5475 NUM" - select HAS_CFI - select ARCH_MCF54xx - help - Say Y here if you are using the konzeptpark UKD R2 with a - Phytec Phycore PCM-024-NUM equipped with a Freescale MC5475 Processor - -config MACH_PCM982_5485 - bool "Phytec pcm982 + phyCore MCF5485" - select HAS_CFI - select ARCH_MCF54xx - select MACH_HAS_LOWLEVEL_INIT - help - Say Y here if you are using the Phytec Phycore PCM-024 equipped - with a Freescale MC5485 Processor - -config MACH_PCM982_5475 - bool "Phytec pcm982 + phyCore MCF5475" - select HAS_CFI - select ARCH_MCF54xx - select MACH_HAS_LOWLEVEL_INIT - help - Say Y here if you are using the Phytec Phycore PCM-024 equipped - with a Freescale MC5475 Processor - -config MACH_PCM982_5475_NUM - bool "Phytec pcm982 + phyCore MCF5475 NUM" - select HAS_CFI - select ARCH_MCF54xx - select MACH_HAS_LOWLEVEL_INIT - help - Say Y here if you are using the Phytec Phycore PCM-024 equipped - with a Freescale MC5475 Processor (NUM Variant) - -config MACH_PCM982_54455 - bool "Phytec pcm982 + phyCore MCF54455 (experimental)" - select HAS_CFI - select ARCH_MCF5445x - help - Say Y here if you are using the Phytec Phycore PCM-mcf54455 equipped - with a Freescale MC54455 Processor (experimental) - -endchoice - -# -# M68k/Coldfire Subarch Configuration -# -source arch/m68k/mach-mcfv4e/Kconfig - -menu "M68k/Coldfire specific Linux boot settings" - -config CMDLINE_TAG - bool "Send commandline to kernel" - default y - help - If you want to start a 2.6 kernel say y here. - -config SETUP_MEMORY_TAGS - bool "send memory definition to kernel" - default y - help - If you want to start a 2.6 kernel say y here. - -config INITRD_TAG - bool "send initrd params to kernel" - default n - help - If you want to start a 2.6 kernel and use an - initrd image say y here. - -endmenu - -# -# Common barebox options -# - -source common/Kconfig -source commands/Kconfig -source net/Kconfig -source drivers/Kconfig -source fs/Kconfig -source lib/Kconfig diff --git a/arch/m68k/Makefile b/arch/m68k/Makefile deleted file mode 100644 index 86afb2473..000000000 --- a/arch/m68k/Makefile +++ /dev/null @@ -1,82 +0,0 @@ -# -# (C) Copyright 2007 Carsten Schlote -# See file CREDITS for list of people who contributed to this project. -# -# This file is part of barebox. -# -# barebox is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# barebox is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with barebox. If not, see . -# - -CPPFLAGS += -isystem $(gccincdir) -fno-strict-aliasing - - -machine-$(CONFIG_ARCH_MCF54xx) := mcfv4e -board-$(CONFIG_MACH_KPUKDR1) := kp_ukd_r1 -board-$(CONFIG_MACH_KPUKDR1_NUM) := kp_ukd_r1_num -board-$(CONFIG_MACH_KPUKDR2) := kp_ukd_r2 -board-$(CONFIG_MACH_KPUKDR2_NUM) := kp_ukd_r2_num -board-$(CONFIG_MACH_PCM982_5485) := phycore_mcf54xx -board-$(CONFIG_MACH_PCM982_5475) := phycore_mcf54xx -board-$(CONFIG_MACH_PCM982_5475_NUM) := phycore_mcf54xx_num -board-$(CONFIG_MACH_PCM982_54455) := phycore_mcf5445x - -cpu-$(CONFIG_MCFV4E) := mcfv4e -cpu-$(CONFIG_MCFV4M) := mcfv4m - -TEXT_BASE = $(CONFIG_TEXT_BASE) - -CPPFLAGS += -DTEXT_BASE=$(TEXT_BASE) -P -AFLAGS += -gdwarf-2 -save-temps -# FIXME - remove overide -CFLAGS += -msoft-float -mcfv4e -gdwarf-2 -feliminate-unused-debug-types \ - -fmerge-all-constants -# Incompatible code in barebox for -std=c99 -LDFLAGS_barebox :=-L $(shell dirname `$(CC) $(CFLAGS) -print-libgcc-file-name`) -lgcc -# --verbose --stats - -machdirs := $(patsubst %,arch/m68k/mach-%/,$(machine-y)) - -ifeq ($(KBUILD_SRC),) -CPPFLAGS += $(patsubst %,-I%include,$(machdirs)) -else -CPPFLAGS += $(patsubst %,-I$(srctree)/%include,$(machdirs)) -endif - - -all: $(KBUILD_IMAGE) - -archprepare: maketools - -PHONY += maketools - - -ifneq ($(board-y),) -BOARD := arch/m68k/boards/$(board-y)/ -else -BOARD := -endif - -ifneq ($(machine-y),) -MACH := arch/m68k/mach-$(machine-y)/ -else -MACH := -endif - -common-y += $(BOARD) $(MACH) -common-y += arch/m68k/lib/ arch/m68k/cpu/ - -lds-$(CONFIG_GENERIC_LINKER_SCRIPT) := arch/m68k/lib/barebox.lds -lds-$(CONFIG_BOARD_LINKER_SCRIPT) := $(BOARD)/barebox.lds - -CLEAN_FILES += arch/m68k/lib/barebox.lds diff --git a/arch/m68k/boards/kp_ukd_r1_num/Makefile b/arch/m68k/boards/kp_ukd_r1_num/Makefile deleted file mode 100644 index 65f2a02fc..000000000 --- a/arch/m68k/boards/kp_ukd_r1_num/Makefile +++ /dev/null @@ -1,31 +0,0 @@ -# -# (C) Copyright 2007 Carsten Schlote -# See file CREDITS for list of people who contributed to this project. -# -# This file is part of barebox. -# -# barebox is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# barebox is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with barebox. If not, see . -# - -# The build system allows to split everything into distinct files covering an -# separate issue. Use that! - -# Board specific callbacks and initialisations - -obj-y += lowlevel_init.o -obj-y += highlevel_init.o -obj-y += kp_ukd_r1_num.o - -obj-y += pci-stubs.o - diff --git a/arch/m68k/boards/kp_ukd_r1_num/env/bin/_update b/arch/m68k/boards/kp_ukd_r1_num/env/bin/_update deleted file mode 100644 index 014bce351..000000000 --- a/arch/m68k/boards/kp_ukd_r1_num/env/bin/_update +++ /dev/null @@ -1,36 +0,0 @@ -#!/bin/sh - -if [ -z "$part" -o -z "$image" ]; then - echo "define \$part and \$image" - exit 1 -fi - -if [ ! -e "$part" ]; then - echo "Partition $part does not exist" - exit 1 -fi - -if [ $# = 1 ]; then - image=$1 -fi - -if [ x$ip = xdhcp ]; then - dhcp -fi - -ping $eth0.serverip -if [ $? -ne 0 ] ; then - echo "update aborted" - exit 1 -fi - -unprotect $part - -echo -echo "erasing partition $part" -erase $part - -echo -echo "flashing $image to $part" -echo -tftp $image $part diff --git a/arch/m68k/boards/kp_ukd_r1_num/env/bin/boot b/arch/m68k/boards/kp_ukd_r1_num/env/bin/boot deleted file mode 100644 index c9fcbac62..000000000 --- a/arch/m68k/boards/kp_ukd_r1_num/env/bin/boot +++ /dev/null @@ -1,38 +0,0 @@ -#!/bin/sh - -. /env/config - -if [ x$1 = xflash ]; then - root=flash - kernel=flash -fi - -if [ x$1 = xnet ]; then - root=net - kernel=net -fi - -if [ x$ip = xdhcp ]; then - bootargs="$bootargs ip=dhcp" -else - bootargs="$bootargs ip=$eth0.ipaddr:$eth0.serverip:$eth0.gateway:$eth0.netmask:::" -fi - -if [ x$root = xflash ]; then - bootargs="$bootargs root=$rootpart rootfstype=jffs2" -else - bootargs="$bootargs root=/dev/nfs nfsroot=$eth0.serverip:$nfsroot" -fi - -bootargs="$bootargs mtdparts=physmap-flash.0:$mtdparts" - -if [ $kernel = net ]; then - if [ x$ip = xdhcp ]; then - dhcp - fi - tftp $uimage uImage || exit 1 - bootm uImage -else - bootm /dev/nor0.kernel -fi - diff --git a/arch/m68k/boards/kp_ukd_r1_num/env/bin/init b/arch/m68k/boards/kp_ukd_r1_num/env/bin/init deleted file mode 100644 index 48e2139f7..000000000 --- a/arch/m68k/boards/kp_ukd_r1_num/env/bin/init +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/sh - -PATH=/env/bin -export PATH - -. /env/config -addpart /dev/nor0 $mtdparts - -echo -echo -n "Hit any key to stop autoboot: " -timeout -a $autoboot_timeout -if [ $? != 0 ]; then - echo - echo "type update_kernel [] to update kernel into flash" - echo "type udate_root [] to update rootfs into flash" - echo - exit -fi - -boot \ No newline at end of file diff --git a/arch/m68k/boards/kp_ukd_r1_num/env/bin/pcidmaloop b/arch/m68k/boards/kp_ukd_r1_num/env/bin/pcidmaloop deleted file mode 100644 index 24e76cbed..000000000 --- a/arch/m68k/boards/kp_ukd_r1_num/env/bin/pcidmaloop +++ /dev/null @@ -1,14 +0,0 @@ -pci stat -pci stat -c -while true; do - pci readm 32 0xA1000000 32 -s - pci readm 32 0xA2000000 256 -s - pci dmatx 2000 a2000100 128 -s - pci writem 32 0xa2000100 0x12345678 4 -s - pci readm 32 0xA3000000 256 -s - pci dmatx 2000 a3000040 128 -s - pci writem 32 0xa3000100 0x12345678 4 -s - pci readm 32 0xA4000000 16 -s - pci dmatx 2000 a4000080 4 -s - pci writem 32 0xa4000080 0x12345678 4 -s -done diff --git a/arch/m68k/boards/kp_ukd_r1_num/env/bin/pciloop b/arch/m68k/boards/kp_ukd_r1_num/env/bin/pciloop deleted file mode 100644 index 4a804f9f3..000000000 --- a/arch/m68k/boards/kp_ukd_r1_num/env/bin/pciloop +++ /dev/null @@ -1,13 +0,0 @@ -pci stat -pci stat -c -while true; do - pci readm 32 0xA1000000 32 -s - pci readm 32 0xA2000000 256 -s - pci writem 32 0xa2000100 0x12345678 4 -s - pci readm 32 0xA3000000 256 -s - pci writem 32 0xa3000100 0x12345678 4 -s - pci readm 32 0xA4000000 16 -s - pci writem 32 0xa4000080 0x12345678 4 -s - -# pci dmatx 2000 a3000040 128 -s -done diff --git a/arch/m68k/boards/kp_ukd_r1_num/env/bin/update_kernel b/arch/m68k/boards/kp_ukd_r1_num/env/bin/update_kernel deleted file mode 100644 index 1ad95fc5d..000000000 --- a/arch/m68k/boards/kp_ukd_r1_num/env/bin/update_kernel +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/sh - -. /env/config - -image=$uimage -part=/dev/nor0.kernel - -. /env/bin/_update $1 diff --git a/arch/m68k/boards/kp_ukd_r1_num/env/bin/update_root b/arch/m68k/boards/kp_ukd_r1_num/env/bin/update_root deleted file mode 100644 index b757a5b92..000000000 --- a/arch/m68k/boards/kp_ukd_r1_num/env/bin/update_root +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/sh - -. /env/config - -image=$jffs2 -part=/dev/nor0.root - -. /env/bin/_update $1 diff --git a/arch/m68k/boards/kp_ukd_r1_num/env/config b/arch/m68k/boards/kp_ukd_r1_num/env/config deleted file mode 100644 index 14958ba1d..000000000 --- a/arch/m68k/boards/kp_ukd_r1_num/env/config +++ /dev/null @@ -1,32 +0,0 @@ -#!/bin/sh - -# can be either 'net' or 'flash' -kernel=net -root=net - -# use 'dhcp' todo dhcp in barebox and in kernel -ip=dhcp - -# -# setup default ethernet address -# -eth0.ipaddr=192.168.0.99 -eth0.netmask=255.255.255.0 -eth0.gateway=192.168.0.110 -eth0.serverip=192.168.0.110 - -uimage=uImage-mcf5475 -jffs2=root-mcf5475-ptx.jffs2 - -autoboot_timeout=3 - -#nfsroot="/home/cschlote/src/bitshrine/ltib/rootfs" -nfsroot="/home/cschlote/src/pengutronics/ptxdist-project-KP-UKD/root-debug,v3" -bootargs="console=ttyS0 rw initcall_debug debug" - -# -# setup the partitions in the main flash -# -mtdparts=512k(self),256k(env),3M(kernel),-(root) -rootpart="/dev/mtdblock3" - diff --git a/arch/m68k/boards/kp_ukd_r1_num/highlevel_init.c b/arch/m68k/boards/kp_ukd_r1_num/highlevel_init.c deleted file mode 100644 index 3a88cd68c..000000000 --- a/arch/m68k/boards/kp_ukd_r1_num/highlevel_init.c +++ /dev/null @@ -1,124 +0,0 @@ -/* - * (C) 2007,2008 konzeptpark, Carsten Schlote - * See file CREDITS for list of people who contributed to this project. - * - * This file is part of barebox. - * - * barebox is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * barebox is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with barebox. If not, see . - */ - -/** @file - * @brief This file contains high-level init functions. - * - */ -#include -#include -#include -#include - -static void board_gpio_init(void) -{ - /* - * Enable Ethernet signals so that, if a cable is plugged into - * the ports, the lines won't be floating and potentially cause - * erroneous transmissions - */ - MCF_GPIO_PAR_FECI2CIRQ = 0 - | MCF_GPIO_PAR_FECI2CIRQ_PAR_E1MDC_EMDC - | MCF_GPIO_PAR_FECI2CIRQ_PAR_E1MDIO_EMDIO - | MCF_GPIO_PAR_FECI2CIRQ_PAR_E1MII - | MCF_GPIO_PAR_FECI2CIRQ_PAR_E17 - | MCF_GPIO_PAR_FECI2CIRQ_PAR_E0MDC - | MCF_GPIO_PAR_FECI2CIRQ_PAR_E0MDIO - | MCF_GPIO_PAR_FECI2CIRQ_PAR_E0MII - | MCF_GPIO_PAR_FECI2CIRQ_PAR_E07; -} - - -static void board_psc_init(void) -{ -#if (CFG_EARLY_UART_PORT == 0) - MCF_GPIO_PAR_PSC0 = (0 -#ifdef HARDWARE_FLOW_CONTROL - | MCF_GPIO_PAR_PSC0_PAR_CTS0_CTS - | MCF_GPIO_PAR_PSC0_PAR_RTS0_RTS -#endif - | MCF_GPIO_PAR_PSC0_PAR_TXD0 - | MCF_GPIO_PAR_PSC0_PAR_RXD0); -#elif (CFG_EARLY_UART_PORT == 1) - MCF_GPIO_PAR_PSC1 = (0 -#ifdef HARDWARE_FLOW_CONTROL - | MCF_GPIO_PAR_PSC1_PAR_CTS1_CTS - | MCF_GPIO_PAR_PSC1_PAR_RTS1_RTS -#endif - | MCF_GPIO_PAR_PSC1_PAR_TXD1 - | MCF_GPIO_PAR_PSC1_PAR_RXD1); -#elif (CFG_EARLY_UART_PORT == 2) - MCF_GPIO_PAR_PSC2 = (0 -#ifdef HARDWARE_FLOW_CONTROL - | MCF_GPIO_PAR_PSC2_PAR_CTS2_CTS - | MCF_GPIO_PAR_PSC2_PAR_RTS2_RTS -#endif - | MCF_GPIO_PAR_PSC2_PAR_TXD2 - | MCF_GPIO_PAR_PSC2_PAR_RXD2); -#elif (CFG_EARLY_UART_PORT == 3) - MCF_GPIO_PAR_PSC3 = (0 -#ifdef HARDWARE_FLOW_CONTROL - | MCF_GPIO_PAR_PSC3_PAR_CTS3_CTS - | MCF_GPIO_PAR_PSC3_PAR_RTS3_RTS -#endif - | MCF_GPIO_PAR_PSC3_PAR_TXD3 - | MCF_GPIO_PAR_PSC3_PAR_RXD3); -#else -#error "Invalid CFG_EARLY_UART_PORT setting" -#endif - - /* Put PSC in UART mode */ - MCF_PSC_SICR(CFG_EARLY_UART_PORT) = MCF_PSC_SICR_SIM_UART; - - /* Call generic UART initialization */ -// mcf5xxx_uart_init(DBUG_UART_PORT, board_get_baud()); -} - - -/** Do board specific early init - * - * @note We run at link address now, you can now call other code - */ -void board_init_highlevel(void) -{ - /* Initialize platform specific GPIOs */ - board_gpio_init(); - - /* Init UART GPIOs and Modes */ - board_psc_init(); - - /* Setup the early init data */ -#ifdef CONFIG_HAS_EARLY_INIT - early_init(); -#endif - /* Configure the early debug output facility */ -#ifdef CONFIG_DEBUG_LL - early_debug_init(); -#endif -} - -/** Provide address of early debug low-level output - * - * @todo Should return real address for UART register map. - */ -void *get_early_console_base(const char *name) -{ - return (void*)1 + CFG_EARLY_UART_PORT; -} diff --git a/arch/m68k/boards/kp_ukd_r1_num/kp_ukd_r1_num.c b/arch/m68k/boards/kp_ukd_r1_num/kp_ukd_r1_num.c deleted file mode 100644 index 7475ab326..000000000 --- a/arch/m68k/boards/kp_ukd_r1_num/kp_ukd_r1_num.c +++ /dev/null @@ -1,160 +0,0 @@ -/* - * (C) 2007 konzeptpark, Carsten Schlote - * See file CREDITS for list of people who contributed to this project. - * - * This file is part of barebox. - * - * barebox is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * barebox is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with barebox. If not, see . - */ - - -#include -#include -#include -#include -#include -#include -//#include -#include -#include -#include - -/* - * Return board clock in MHz FIXME move to clocks file - */ -ulong mcfv4e_get_bus_clk(void) -{ - return CFG_SYSTEM_CORE_CLOCK; -} -/* - * Up to 64MiB NOR type flash, connected to - * CS line 0, data width is 32 bit - */ -static struct device_d cfi_dev = { - .id = -1, - .name = "cfi_flash", - .map_base = CFG_FLASH_ADDRESS, - .size = CFG_FLASH_SIZE, -}; - -/* - * up to 2MiB static RAM type memory, connected - * to CS4, data width is 16 bit - */ -//static struct device_d sram_dev = { -// .id = -1, -// .name = "sram", -//FIXME .map_base = IMX_CS4_BASE, -//FIXME .size = IMX_CS4_RANGE, /* area size */ -//}; - -/* - * ?MiB NAND type flash, data width 8 bit - */ -//static struct device_d nand_dev = { -// .id = -1, -// .name = "cfi_flash_nand", -// .map_base = 0xfc000000, /* FIXME */ -// .size = 32 * 1024 * 1024, /* FIXME */ -//}; - - -/* - * Build in FastEthernetControllers (FECs) - */ -static struct fec_platform_data fec_info = { - .xcv_type = MII100, -}; - -static struct device_d network_dev0 = { - .id = -1, - .name = "fec_mcf54xx", - .map_base = MCF_FEC_ADDR(0), - .size = MCF_FEC_SIZE(0), /* area size */ - .platform_data = &fec_info, -}; -static struct device_d network_dev1 = { - .id = -1, - .name = "fec_mcf54xx", - .map_base = MCF_FEC_ADDR(1), - .size = MCF_FEC_SIZE(1), /* area size */ - .platform_data = &fec_info, -}; - -/* - * 128MiB of SDRAM, data width is 32 bit - */ -static struct memory_platform_data ram_pdata = { - .name = "ram0", - .flags = DEVFS_RDWR, -}; - -static struct device_d sdram_dev = { - .id = -1, - .name = "mem", - .map_base = CFG_SDRAM_ADDRESS, - .size = CFG_SDRAM_SIZE, - .platform_data = &ram_pdata, -}; - -static int mcfv4e_devices_init(void) -{ - printf("Setting up board devices...\n"); - - /* setup pins for I2C2 (for EEPROM, RTC) */ -//FIXME imx_gpio_mode(MUX_CSPI2_MOSI_I2C2_SCL); -//FIXME imx_gpio_mode(MUX_CSPI2_MISO_I2C2_SCL); - - register_device(&cfi_dev); - - /* - * Create partitions that should be - * not touched by any regular user - */ - devfs_add_partition("nor0", 0x00000, 0x80000, PARTITION_FIXED, "self0"); /* ourself */ - devfs_add_partition("nor0", 0x80000, 0x40000, PARTITION_FIXED, "env0"); /* environment */ - protect_file("/dev/env0", 1); - - //register_device(&sram_dev); - //register_device(&nand_dev); - - register_device(&network_dev0); - //register_device(&network_dev1); - - register_device(&sdram_dev); - - return 0; -} - -device_initcall(mcfv4e_devices_init); - -static struct device_d mcfv4e_serial_device = { - .id = -1, - .name = "mcfv4e_serial", - .map_base = 1+CFG_EARLY_UART_PORT, - .size = 16 * 1024, -}; - -static int mcfv4e_console_init(void) -{ - /* init gpios for serial port */ - - /* Already set in lowlevel_init.c */ - - register_device(&mcfv4e_serial_device); - return 0; -} - -console_initcall(mcfv4e_console_init); - diff --git a/arch/m68k/boards/kp_ukd_r1_num/kp_ukd_r1_num.dox b/arch/m68k/boards/kp_ukd_r1_num/kp_ukd_r1_num.dox deleted file mode 100644 index ca0fcbcf3..000000000 --- a/arch/m68k/boards/kp_ukd_r1_num/kp_ukd_r1_num.dox +++ /dev/null @@ -1,13 +0,0 @@ -/** @page kp_ukd_r1 konzeptpark MCB2 Prototype Board - -This target is based on a PhyTec PhyCore MCF54x5 NUM CPU. The card is shipped with: - -- up to 64MiB NOR type Flash Memory -- 128MiB synchronous dynamic RAM -- PCI USB 2.0 Host -- PCCard Controller -- MiniPCI Parallel -- MiniPCIe (USB lane only) -- ... - -*/ diff --git a/arch/m68k/boards/kp_ukd_r1_num/lowlevel_init.c b/arch/m68k/boards/kp_ukd_r1_num/lowlevel_init.c deleted file mode 100644 index b3de505c2..000000000 --- a/arch/m68k/boards/kp_ukd_r1_num/lowlevel_init.c +++ /dev/null @@ -1,183 +0,0 @@ -/* - * (C) 2007 konzeptpark, Carsten Schlote - * See file CREDITS for list of people who contributed to this project. - * - * This file is part of barebox. - * - * barebox is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * barebox is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with barebox. If not, see . - */ - -/** @file - * @brief This file contains ... - * - */ -#include -#include -#include - -/** Initialize board specific very early inits - * - * @note This code is not allowed to call other code - just init - * your Chipselects and SDRAM stuff here! - */ -void board_init_lowlevel(void) -{ - /* - * The phyCORE-MCF548x has a 32MB or 64MB boot flash. - * The is a CF Card and ControlRegs on CS1 and CS2 - */ - - /* Setup SysGlue Chip-Select */ - MCF_FBCS_CSAR5 = MCF_FBCS_CSAR_BA(CFG_SYSGLUE_ADDRESS); - - MCF_FBCS_CSCR5 = (MCF_FBCS_CSCR_PS_32 - | MCF_FBCS_CSCR_AA - | MCF_FBCS_CSCR_ASET(1) - | MCF_FBCS_CSCR_WS(CFG_SYSGLUE_WAIT_STATES)); - - MCF_FBCS_CSMR5 = (MCF_FBCS_CSMR_BAM_16M - | MCF_FBCS_CSMR_V); - - /* Setup boot flash chip-select */ - MCF_FBCS_CSAR0 = MCF_FBCS_CSAR_BA(CFG_FLASH_ADDRESS); - - MCF_FBCS_CSCR0 = (MCF_FBCS_CSCR_PS_32 - | MCF_FBCS_CSCR_AA - | MCF_FBCS_CSCR_ASET(1) - | MCF_FBCS_CSCR_WS(CFG_FLASH_WAIT_STATES)); - - MCF_FBCS_CSMR0 = (MCF_FBCS_CSMR_BAM_32M - | MCF_FBCS_CSMR_V); - - /* - * Check to see if the SDRAM has already been initialized - * by a run control tool - */ - if (!(MCF_SDRAMC_SDCR & MCF_SDRAMC_SDCR_REF)) - { - /* - * Basic configuration and initialization - */ - // 0x000002AA - MCF_SDRAMC_SDRAMDS = (0 - | MCF_SDRAMC_SDRAMDS_SB_E(MCF_SDRAMC_SDRAMDS_DRIVE_8MA) - | MCF_SDRAMC_SDRAMDS_SB_C(MCF_SDRAMC_SDRAMDS_DRIVE_8MA) - | MCF_SDRAMC_SDRAMDS_SB_A(MCF_SDRAMC_SDRAMDS_DRIVE_8MA) - | MCF_SDRAMC_SDRAMDS_SB_S(MCF_SDRAMC_SDRAMDS_DRIVE_8MA) - | MCF_SDRAMC_SDRAMDS_SB_D(MCF_SDRAMC_SDRAMDS_DRIVE_8MA) - ); - - // 0x0000001A - MCF_SDRAMC_CS0CFG = (0 - | MCF_SDRAMC_CSnCFG_CSBA(CFG_SDRAM_ADDRESS) - | MCF_SDRAMC_CSnCFG_CSSZ(MCF_SDRAMC_CSnCFG_CSSZ_128MBYTE) - ); - - MCF_SDRAMC_CS1CFG = 0; - MCF_SDRAMC_CS2CFG = 0; - MCF_SDRAMC_CS3CFG = 0; - - // 0x73611730 - MCF_SDRAMC_SDCFG1 = (0 - | MCF_SDRAMC_SDCFG1_SRD2RW((unsigned int)((CFG_SDRAM_CASL + CFG_SDRAM_BL / 2 + 1) + 0.5)) - | MCF_SDRAMC_SDCFG1_SWT2RD((unsigned int) (CFG_SDRAM_TWR + 1)) - | MCF_SDRAMC_SDCFG1_RDLAT((unsigned int)((CFG_SDRAM_CASL * 2) + 2)) - | MCF_SDRAMC_SDCFG1_ACT2RW((unsigned int)(((CFG_SDRAM_TRCD / CFG_SYSTEM_CORE_PERIOD) - 1) + 0.5)) - | MCF_SDRAMC_SDCFG1_PRE2ACT((unsigned int)(((CFG_SDRAM_TRP / CFG_SYSTEM_CORE_PERIOD) - 1) + 0.5)) - | MCF_SDRAMC_SDCFG1_REF2ACT((unsigned int)(((CFG_SDRAM_TRFC / CFG_SYSTEM_CORE_PERIOD) - 1) + 0.5)) - | MCF_SDRAMC_SDCFG1_WTLAT(3) - ); - - // 0x46770000 - MCF_SDRAMC_SDCFG2 = (0 - | MCF_SDRAMC_SDCFG2_BRD2PRE(CFG_SDRAM_BL / 2) - | MCF_SDRAMC_SDCFG2_BWT2RW(CFG_SDRAM_BL / 2 + CFG_SDRAM_TWR) - | MCF_SDRAMC_SDCFG2_BRD2WT(7) - | MCF_SDRAMC_SDCFG2_BL(CFG_SDRAM_BL - 1) - ); - - /* - * Precharge and enable write to SDMR - */ - // 0xE10B0002 - MCF_SDRAMC_SDCR = (0 - | MCF_SDRAMC_SDCR_MODE_EN - | MCF_SDRAMC_SDCR_CKE - | MCF_SDRAMC_SDCR_DDR - | MCF_SDRAMC_SDCR_MUX(1) // 13 x 10 x 2 ==> MUX=1 - | MCF_SDRAMC_SDCR_RCNT((int)(((CFG_SDRAM_TREFI / (CFG_SYSTEM_CORE_PERIOD * 64)) - 1) + 0.5)) - | MCF_SDRAMC_SDCR_IPALL - ); - - /* - * Write extended mode register - */ - // 0x40010000 - MCF_SDRAMC_SDMR = (0 - | MCF_SDRAMC_SDMR_BNKAD_LEMR - | MCF_SDRAMC_SDMR_AD(0x0) - | MCF_SDRAMC_SDMR_CMD - ); - - /* - * Write mode register and reset DLL - */ - // 0x048d0000 - MCF_SDRAMC_SDMR = (0 - | MCF_SDRAMC_SDMR_BNKAD_LMR - | MCF_SDRAMC_SDMR_AD(CFG_SDRAM_RESET_DLL | CFG_SDRAM_MOD) - | MCF_SDRAMC_SDMR_CMD - ); - - /* - * Execute a PALL command - */ - // 0xE10B0002 - MCF_SDRAMC_SDCR |= MCF_SDRAMC_SDCR_IPALL; - - /* - * Perform two REF cycles - */ - // 0xE10B0004 - MCF_SDRAMC_SDCR |= MCF_SDRAMC_SDCR_IREF; - MCF_SDRAMC_SDCR |= MCF_SDRAMC_SDCR_IREF; - - /* - * Write mode register and clear reset DLL - */ - // 0x008D0000 - MCF_SDRAMC_SDMR = (0 - | MCF_SDRAMC_SDMR_BNKAD_LMR - | MCF_SDRAMC_SDMR_AD(CFG_SDRAM_MOD) - | MCF_SDRAMC_SDMR_CMD - ); - - /* - * Enable auto refresh and lock SDMR - */ - // 0x610B0000 - MCF_SDRAMC_SDCR &= ~MCF_SDRAMC_SDCR_MODE_EN; - - // 0x710B0F00 - MCF_SDRAMC_SDCR |= (0 - | MCF_SDRAMC_SDCR_REF - | MCF_SDRAMC_SDCR_DQS_OE(0xF) - ); - } -} - -/** @file - * - * Target specific early chipselect and SDRAM init. - */ diff --git a/arch/m68k/boards/kp_ukd_r1_num/pci-stubs.c b/arch/m68k/boards/kp_ukd_r1_num/pci-stubs.c deleted file mode 100644 index b7ab7c7d7..000000000 --- a/arch/m68k/boards/kp_ukd_r1_num/pci-stubs.c +++ /dev/null @@ -1,41 +0,0 @@ -/* - * (C) 2007,2008 Carsten Schlote - * See file CREDITS for list of people who contributed to this project. - * - * This file is part of barebox. - * - * barebox is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * barebox is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with barebox. If not, see . - */ - -/** @file - * @brief This file contains callbacks for the PCI subsystem - * - */ -#include -#include - - -/** Returns mapping from PCI slot to CPU irq for the target board - * @return Coldfire IRQ vector number, or -1 for no irq - */ -int mcfv4e_pci_gethostirq(uint8_t slot, uint8_t irqpin) -{ - int rc = -1; - switch (slot) - { - case 16 : break; - case 17 ... 21 : rc = 64 + 7; break; // Eport IRQ7 - } - return rc; -} diff --git a/arch/m68k/boards/phycore_mcf54xx/Makefile b/arch/m68k/boards/phycore_mcf54xx/Makefile deleted file mode 100644 index 054123fe7..000000000 --- a/arch/m68k/boards/phycore_mcf54xx/Makefile +++ /dev/null @@ -1,31 +0,0 @@ -# -# (C) Copyright 2007 Carsten Schlote -# See file CREDITS for list of people who contributed to this project. -# -# This file is part of barebox. -# -# barebox is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# barebox is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with barebox. If not, see . -# - -# The build system allows to split everything into distinct files covering an -# separate issue. Use that! - -# Board specific callbacks and initialisations - -obj-y += lowlevel_init.o -obj-y += highlevel_init.o -obj-y += phyCore_MCF54xx.o - -obj-y += pci-stubs.o - diff --git a/arch/m68k/boards/phycore_mcf54xx/env/bin/_update b/arch/m68k/boards/phycore_mcf54xx/env/bin/_update deleted file mode 100644 index 014bce351..000000000 --- a/arch/m68k/boards/phycore_mcf54xx/env/bin/_update +++ /dev/null @@ -1,36 +0,0 @@ -#!/bin/sh - -if [ -z "$part" -o -z "$image" ]; then - echo "define \$part and \$image" - exit 1 -fi - -if [ ! -e "$part" ]; then - echo "Partition $part does not exist" - exit 1 -fi - -if [ $# = 1 ]; then - image=$1 -fi - -if [ x$ip = xdhcp ]; then - dhcp -fi - -ping $eth0.serverip -if [ $? -ne 0 ] ; then - echo "update aborted" - exit 1 -fi - -unprotect $part - -echo -echo "erasing partition $part" -erase $part - -echo -echo "flashing $image to $part" -echo -tftp $image $part diff --git a/arch/m68k/boards/phycore_mcf54xx/env/bin/boot b/arch/m68k/boards/phycore_mcf54xx/env/bin/boot deleted file mode 100644 index c9fcbac62..000000000 --- a/arch/m68k/boards/phycore_mcf54xx/env/bin/boot +++ /dev/null @@ -1,38 +0,0 @@ -#!/bin/sh - -. /env/config - -if [ x$1 = xflash ]; then - root=flash - kernel=flash -fi - -if [ x$1 = xnet ]; then - root=net - kernel=net -fi - -if [ x$ip = xdhcp ]; then - bootargs="$bootargs ip=dhcp" -else - bootargs="$bootargs ip=$eth0.ipaddr:$eth0.serverip:$eth0.gateway:$eth0.netmask:::" -fi - -if [ x$root = xflash ]; then - bootargs="$bootargs root=$rootpart rootfstype=jffs2" -else - bootargs="$bootargs root=/dev/nfs nfsroot=$eth0.serverip:$nfsroot" -fi - -bootargs="$bootargs mtdparts=physmap-flash.0:$mtdparts" - -if [ $kernel = net ]; then - if [ x$ip = xdhcp ]; then - dhcp - fi - tftp $uimage uImage || exit 1 - bootm uImage -else - bootm /dev/nor0.kernel -fi - diff --git a/arch/m68k/boards/phycore_mcf54xx/env/bin/init b/arch/m68k/boards/phycore_mcf54xx/env/bin/init deleted file mode 100644 index 48e2139f7..000000000 --- a/arch/m68k/boards/phycore_mcf54xx/env/bin/init +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/sh - -PATH=/env/bin -export PATH - -. /env/config -addpart /dev/nor0 $mtdparts - -echo -echo -n "Hit any key to stop autoboot: " -timeout -a $autoboot_timeout -if [ $? != 0 ]; then - echo - echo "type update_kernel [] to update kernel into flash" - echo "type udate_root [] to update rootfs into flash" - echo - exit -fi - -boot \ No newline at end of file diff --git a/arch/m68k/boards/phycore_mcf54xx/env/bin/pcidmaloop b/arch/m68k/boards/phycore_mcf54xx/env/bin/pcidmaloop deleted file mode 100644 index 24e76cbed..000000000 --- a/arch/m68k/boards/phycore_mcf54xx/env/bin/pcidmaloop +++ /dev/null @@ -1,14 +0,0 @@ -pci stat -pci stat -c -while true; do - pci readm 32 0xA1000000 32 -s - pci readm 32 0xA2000000 256 -s - pci dmatx 2000 a2000100 128 -s - pci writem 32 0xa2000100 0x12345678 4 -s - pci readm 32 0xA3000000 256 -s - pci dmatx 2000 a3000040 128 -s - pci writem 32 0xa3000100 0x12345678 4 -s - pci readm 32 0xA4000000 16 -s - pci dmatx 2000 a4000080 4 -s - pci writem 32 0xa4000080 0x12345678 4 -s -done diff --git a/arch/m68k/boards/phycore_mcf54xx/env/bin/pciloop b/arch/m68k/boards/phycore_mcf54xx/env/bin/pciloop deleted file mode 100644 index 4a804f9f3..000000000 --- a/arch/m68k/boards/phycore_mcf54xx/env/bin/pciloop +++ /dev/null @@ -1,13 +0,0 @@ -pci stat -pci stat -c -while true; do - pci readm 32 0xA1000000 32 -s - pci readm 32 0xA2000000 256 -s - pci writem 32 0xa2000100 0x12345678 4 -s - pci readm 32 0xA3000000 256 -s - pci writem 32 0xa3000100 0x12345678 4 -s - pci readm 32 0xA4000000 16 -s - pci writem 32 0xa4000080 0x12345678 4 -s - -# pci dmatx 2000 a3000040 128 -s -done diff --git a/arch/m68k/boards/phycore_mcf54xx/env/bin/update_kernel b/arch/m68k/boards/phycore_mcf54xx/env/bin/update_kernel deleted file mode 100644 index 1ad95fc5d..000000000 --- a/arch/m68k/boards/phycore_mcf54xx/env/bin/update_kernel +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/sh - -. /env/config - -image=$uimage -part=/dev/nor0.kernel - -. /env/bin/_update $1 diff --git a/arch/m68k/boards/phycore_mcf54xx/env/bin/update_root b/arch/m68k/boards/phycore_mcf54xx/env/bin/update_root deleted file mode 100644 index b757a5b92..000000000 --- a/arch/m68k/boards/phycore_mcf54xx/env/bin/update_root +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/sh - -. /env/config - -image=$jffs2 -part=/dev/nor0.root - -. /env/bin/_update $1 diff --git a/arch/m68k/boards/phycore_mcf54xx/env/config b/arch/m68k/boards/phycore_mcf54xx/env/config deleted file mode 100644 index 58550625d..000000000 --- a/arch/m68k/boards/phycore_mcf54xx/env/config +++ /dev/null @@ -1,32 +0,0 @@ -#!/bin/sh - -# can be either 'net' or 'flash' -kernel=net -root=net - -# use 'dhcp' todo dhcp in barebox and in kernel -ip=dhcp - -# -# setup default ethernet address -# -eth0.ipaddr=192.168.0.99 -eth0.netmask=255.255.255.0 -eth0.gateway=192.168.0.110 -eth0.serverip=192.168.0.110 - -uimage=uImage-mcf5485 -jffs2=root-mcf5485-ptx.jffs2 - -autoboot_timeout=3 - -#nfsroot="/home/cschlote/src/bitshrine/ltib/rootfs" -nfsroot="/home/cschlote/src/pengutronics/ptxdist-project-KP-UKD/root-debug,v3" -bootargs="console=ttyS0 rw initcall_debug debug" - -# -# setup the partitions in the main flash -# -mtdparts=512k(self),256k(env),3M(kernel),-(root) -rootpart="/dev/mtdblock3" - diff --git a/arch/m68k/boards/phycore_mcf54xx/highlevel_init.c b/arch/m68k/boards/phycore_mcf54xx/highlevel_init.c deleted file mode 100644 index 3a88cd68c..000000000 --- a/arch/m68k/boards/phycore_mcf54xx/highlevel_init.c +++ /dev/null @@ -1,124 +0,0 @@ -/* - * (C) 2007,2008 konzeptpark, Carsten Schlote - * See file CREDITS for list of people who contributed to this project. - * - * This file is part of barebox. - * - * barebox is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * barebox is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with barebox. If not, see . - */ - -/** @file - * @brief This file contains high-level init functions. - * - */ -#include -#include -#include -#include - -static void board_gpio_init(void) -{ - /* - * Enable Ethernet signals so that, if a cable is plugged into - * the ports, the lines won't be floating and potentially cause - * erroneous transmissions - */ - MCF_GPIO_PAR_FECI2CIRQ = 0 - | MCF_GPIO_PAR_FECI2CIRQ_PAR_E1MDC_EMDC - | MCF_GPIO_PAR_FECI2CIRQ_PAR_E1MDIO_EMDIO - | MCF_GPIO_PAR_FECI2CIRQ_PAR_E1MII - | MCF_GPIO_PAR_FECI2CIRQ_PAR_E17 - | MCF_GPIO_PAR_FECI2CIRQ_PAR_E0MDC - | MCF_GPIO_PAR_FECI2CIRQ_PAR_E0MDIO - | MCF_GPIO_PAR_FECI2CIRQ_PAR_E0MII - | MCF_GPIO_PAR_FECI2CIRQ_PAR_E07; -} - - -static void board_psc_init(void) -{ -#if (CFG_EARLY_UART_PORT == 0) - MCF_GPIO_PAR_PSC0 = (0 -#ifdef HARDWARE_FLOW_CONTROL - | MCF_GPIO_PAR_PSC0_PAR_CTS0_CTS - | MCF_GPIO_PAR_PSC0_PAR_RTS0_RTS -#endif - | MCF_GPIO_PAR_PSC0_PAR_TXD0 - | MCF_GPIO_PAR_PSC0_PAR_RXD0); -#elif (CFG_EARLY_UART_PORT == 1) - MCF_GPIO_PAR_PSC1 = (0 -#ifdef HARDWARE_FLOW_CONTROL - | MCF_GPIO_PAR_PSC1_PAR_CTS1_CTS - | MCF_GPIO_PAR_PSC1_PAR_RTS1_RTS -#endif - | MCF_GPIO_PAR_PSC1_PAR_TXD1 - | MCF_GPIO_PAR_PSC1_PAR_RXD1); -#elif (CFG_EARLY_UART_PORT == 2) - MCF_GPIO_PAR_PSC2 = (0 -#ifdef HARDWARE_FLOW_CONTROL - | MCF_GPIO_PAR_PSC2_PAR_CTS2_CTS - | MCF_GPIO_PAR_PSC2_PAR_RTS2_RTS -#endif - | MCF_GPIO_PAR_PSC2_PAR_TXD2 - | MCF_GPIO_PAR_PSC2_PAR_RXD2); -#elif (CFG_EARLY_UART_PORT == 3) - MCF_GPIO_PAR_PSC3 = (0 -#ifdef HARDWARE_FLOW_CONTROL - | MCF_GPIO_PAR_PSC3_PAR_CTS3_CTS - | MCF_GPIO_PAR_PSC3_PAR_RTS3_RTS -#endif - | MCF_GPIO_PAR_PSC3_PAR_TXD3 - | MCF_GPIO_PAR_PSC3_PAR_RXD3); -#else -#error "Invalid CFG_EARLY_UART_PORT setting" -#endif - - /* Put PSC in UART mode */ - MCF_PSC_SICR(CFG_EARLY_UART_PORT) = MCF_PSC_SICR_SIM_UART; - - /* Call generic UART initialization */ -// mcf5xxx_uart_init(DBUG_UART_PORT, board_get_baud()); -} - - -/** Do board specific early init - * - * @note We run at link address now, you can now call other code - */ -void board_init_highlevel(void) -{ - /* Initialize platform specific GPIOs */ - board_gpio_init(); - - /* Init UART GPIOs and Modes */ - board_psc_init(); - - /* Setup the early init data */ -#ifdef CONFIG_HAS_EARLY_INIT - early_init(); -#endif - /* Configure the early debug output facility */ -#ifdef CONFIG_DEBUG_LL - early_debug_init(); -#endif -} - -/** Provide address of early debug low-level output - * - * @todo Should return real address for UART register map. - */ -void *get_early_console_base(const char *name) -{ - return (void*)1 + CFG_EARLY_UART_PORT; -} diff --git a/arch/m68k/boards/phycore_mcf54xx/lowlevel_init.c b/arch/m68k/boards/phycore_mcf54xx/lowlevel_init.c deleted file mode 100644 index 2837e3ed6..000000000 --- a/arch/m68k/boards/phycore_mcf54xx/lowlevel_init.c +++ /dev/null @@ -1,194 +0,0 @@ -/* - * (C) 2007 konzeptpark, Carsten Schlote - * See file CREDITS for list of people who contributed to this project. - * - * This file is part of barebox. - * - * barebox is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * barebox is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with barebox. If not, see . - */ - -/** @file - * @brief This file contains ... - * - */ -#include -#include -#include - -/** Initialize board specific very early inits - * - * @note This code is not allowed to call other code - just init - * your Chipselects and SDRAM stuff here! - */ -void board_init_lowlevel(void) -{ - /* - * The phyCORE-MCF548x has a 32MB or 64MB boot flash. - * The is a CF Card and ControlRegs on CS1 and CS2 - */ - - /* Setup SysGlue Chip-Select for user IOs */ - MCF_FBCS_CSAR2 = MCF_FBCS_CSAR_BA(CFG_XPLD_ADDRESS); - - MCF_FBCS_CSCR2 = (MCF_FBCS_CSCR_PS_16 - | MCF_FBCS_CSCR_AA - | MCF_FBCS_CSCR_ASET(1) - | MCF_FBCS_CSCR_WS(CFG_XPLD_WAIT_STATES)); - - MCF_FBCS_CSMR2 = (MCF_FBCS_CSMR_BAM_16M - | MCF_FBCS_CSMR_V); - - /* Setup SysGlue Chip-Select for CFCARD */ - MCF_FBCS_CSAR1 = MCF_FBCS_CSAR_BA(CFG_CFCARD_ADDRESS); - - MCF_FBCS_CSCR1 = (MCF_FBCS_CSCR_PS_16 - | MCF_FBCS_CSCR_AA - | MCF_FBCS_CSCR_ASET(1) - | MCF_FBCS_CSCR_WS(CFG_CFCARD_WAIT_STATES)); - - MCF_FBCS_CSMR1 = (MCF_FBCS_CSMR_BAM_16M - | MCF_FBCS_CSMR_V); - - /* Setup boot flash chip-select */ - MCF_FBCS_CSAR0 = MCF_FBCS_CSAR_BA(CFG_FLASH_ADDRESS); - - MCF_FBCS_CSCR0 = (MCF_FBCS_CSCR_PS_32 - | MCF_FBCS_CSCR_AA - | MCF_FBCS_CSCR_ASET(1) - | MCF_FBCS_CSCR_WS(CFG_FLASH_WAIT_STATES)); - - MCF_FBCS_CSMR0 = (MCF_FBCS_CSMR_BAM_32M - | MCF_FBCS_CSMR_V); - - /* - * Check to see if the SDRAM has already been initialized - * by a run control tool - */ - if (!(MCF_SDRAMC_SDCR & MCF_SDRAMC_SDCR_REF)) - { - /* - * Basic configuration and initialization - */ - // 0x000002AA - MCF_SDRAMC_SDRAMDS = (0 - | MCF_SDRAMC_SDRAMDS_SB_E(MCF_SDRAMC_SDRAMDS_DRIVE_8MA) - | MCF_SDRAMC_SDRAMDS_SB_C(MCF_SDRAMC_SDRAMDS_DRIVE_8MA) - | MCF_SDRAMC_SDRAMDS_SB_A(MCF_SDRAMC_SDRAMDS_DRIVE_8MA) - | MCF_SDRAMC_SDRAMDS_SB_S(MCF_SDRAMC_SDRAMDS_DRIVE_8MA) - | MCF_SDRAMC_SDRAMDS_SB_D(MCF_SDRAMC_SDRAMDS_DRIVE_8MA) - ); - - // 0x0000001A - MCF_SDRAMC_CS0CFG = (0 - | MCF_SDRAMC_CSnCFG_CSBA(CFG_SDRAM_ADDRESS) - | MCF_SDRAMC_CSnCFG_CSSZ(MCF_SDRAMC_CSnCFG_CSSZ_128MBYTE) - ); - - MCF_SDRAMC_CS1CFG = 0; - MCF_SDRAMC_CS2CFG = 0; - MCF_SDRAMC_CS3CFG = 0; - - // 0x73611730 - MCF_SDRAMC_SDCFG1 = (0 - | MCF_SDRAMC_SDCFG1_SRD2RW((unsigned int)((CFG_SDRAM_CASL + CFG_SDRAM_BL / 2 + 1) + 0.5)) - | MCF_SDRAMC_SDCFG1_SWT2RD((unsigned int) (CFG_SDRAM_TWR + 1)) - | MCF_SDRAMC_SDCFG1_RDLAT((unsigned int)((CFG_SDRAM_CASL * 2) + 2)) - | MCF_SDRAMC_SDCFG1_ACT2RW((unsigned int)(((CFG_SDRAM_TRCD / CFG_SYSTEM_CORE_PERIOD) - 1) + 0.5)) - | MCF_SDRAMC_SDCFG1_PRE2ACT((unsigned int)(((CFG_SDRAM_TRP / CFG_SYSTEM_CORE_PERIOD) - 1) + 0.5)) - | MCF_SDRAMC_SDCFG1_REF2ACT((unsigned int)(((CFG_SDRAM_TRFC / CFG_SYSTEM_CORE_PERIOD) - 1) + 0.5)) - | MCF_SDRAMC_SDCFG1_WTLAT(3) - ); - - // 0x46770000 - MCF_SDRAMC_SDCFG2 = (0 - | MCF_SDRAMC_SDCFG2_BRD2PRE(CFG_SDRAM_BL / 2) - | MCF_SDRAMC_SDCFG2_BWT2RW(CFG_SDRAM_BL / 2 + CFG_SDRAM_TWR) - | MCF_SDRAMC_SDCFG2_BRD2WT(7) - | MCF_SDRAMC_SDCFG2_BL(CFG_SDRAM_BL - 1) - ); - - /* - * Precharge and enable write to SDMR - */ - // 0xE10B0002 - MCF_SDRAMC_SDCR = (0 - | MCF_SDRAMC_SDCR_MODE_EN - | MCF_SDRAMC_SDCR_CKE - | MCF_SDRAMC_SDCR_DDR - | MCF_SDRAMC_SDCR_MUX(1) // 13 x 10 x 2 ==> MUX=1 - | MCF_SDRAMC_SDCR_RCNT((int)(((CFG_SDRAM_TREFI / (CFG_SYSTEM_CORE_PERIOD * 64)) - 1) + 0.5)) - | MCF_SDRAMC_SDCR_IPALL - ); - - /* - * Write extended mode register - */ - // 0x40010000 - MCF_SDRAMC_SDMR = (0 - | MCF_SDRAMC_SDMR_BNKAD_LEMR - | MCF_SDRAMC_SDMR_AD(0x0) - | MCF_SDRAMC_SDMR_CMD - ); - - /* - * Write mode register and reset DLL - */ - // 0x048d0000 - MCF_SDRAMC_SDMR = (0 - | MCF_SDRAMC_SDMR_BNKAD_LMR - | MCF_SDRAMC_SDMR_AD(CFG_SDRAM_RESET_DLL | CFG_SDRAM_MOD) - | MCF_SDRAMC_SDMR_CMD - ); - - /* - * Execute a PALL command - */ - // 0xE10B0002 - MCF_SDRAMC_SDCR |= MCF_SDRAMC_SDCR_IPALL; - - /* - * Perform two REF cycles - */ - // 0xE10B0004 - MCF_SDRAMC_SDCR |= MCF_SDRAMC_SDCR_IREF; - MCF_SDRAMC_SDCR |= MCF_SDRAMC_SDCR_IREF; - - /* - * Write mode register and clear reset DLL - */ - // 0x008D0000 - MCF_SDRAMC_SDMR = (0 - | MCF_SDRAMC_SDMR_BNKAD_LMR - | MCF_SDRAMC_SDMR_AD(CFG_SDRAM_MOD) - | MCF_SDRAMC_SDMR_CMD - ); - - /* - * Enable auto refresh and lock SDMR - */ - // 0x610B0000 - MCF_SDRAMC_SDCR &= ~MCF_SDRAMC_SDCR_MODE_EN; - - // 0x710B0F00 - MCF_SDRAMC_SDCR |= (0 - | MCF_SDRAMC_SDCR_REF - | MCF_SDRAMC_SDCR_DQS_OE(0xF) - ); - } -} - -/** @file - * - * Target specific early chipselect and SDRAM init. - */ \ No newline at end of file diff --git a/arch/m68k/boards/phycore_mcf54xx/pci-stubs.c b/arch/m68k/boards/phycore_mcf54xx/pci-stubs.c deleted file mode 100644 index b7ab7c7d7..000000000 --- a/arch/m68k/boards/phycore_mcf54xx/pci-stubs.c +++ /dev/null @@ -1,41 +0,0 @@ -/* - * (C) 2007,2008 Carsten Schlote - * See file CREDITS for list of people who contributed to this project. - * - * This file is part of barebox. - * - * barebox is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * barebox is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with barebox. If not, see . - */ - -/** @file - * @brief This file contains callbacks for the PCI subsystem - * - */ -#include -#include - - -/** Returns mapping from PCI slot to CPU irq for the target board - * @return Coldfire IRQ vector number, or -1 for no irq - */ -int mcfv4e_pci_gethostirq(uint8_t slot, uint8_t irqpin) -{ - int rc = -1; - switch (slot) - { - case 16 : break; - case 17 ... 21 : rc = 64 + 7; break; // Eport IRQ7 - } - return rc; -} diff --git a/arch/m68k/boards/phycore_mcf54xx/phyCore_MCF54xx.c b/arch/m68k/boards/phycore_mcf54xx/phyCore_MCF54xx.c deleted file mode 100644 index 374495069..000000000 --- a/arch/m68k/boards/phycore_mcf54xx/phyCore_MCF54xx.c +++ /dev/null @@ -1,139 +0,0 @@ -/* - * (C) 2007 konzeptpark, Carsten Schlote - * See file CREDITS for list of people who contributed to this project. - * - * This file is part of barebox. - * - * barebox is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * barebox is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with barebox. If not, see . - */ - -/** @file - * @brief This file contains ... - * - */ -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/* - * Return board clock in MHz FIXME move to clocks file - */ -ulong mcfv4e_get_bus_clk(void) -{ - return CFG_SYSTEM_CORE_CLOCK; -} - -/* - * Up to 64MiB NOR type flash, connected to - * CS line 0, data width is 32 bit - */ -static struct device_d cfi_dev = -{ - .id = -1, - .name = "cfi_flash", - .map_base = CFG_FLASH_ADDRESS, - .size = CFG_FLASH_SIZE, -}; - -/* - * Build in FastEthernetControllers (FECs) - */ -static struct fec_platform_data fec_info = -{ - .xcv_type = MII100, -}; - -static struct device_d network_dev0 = -{ - .id = -1, - .name = "fec_mcf54xx", - .map_base = MCF_FEC_ADDR(0), - .size = MCF_FEC_SIZE(0), /* area size */ - .platform_data = &fec_info, -}; -static struct device_d network_dev1 = -{ - .id = -1, - .name = "fec_mcf54xx", - .map_base = MCF_FEC_ADDR(1), - .size = MCF_FEC_SIZE(1), /* area size */ - .platform_data = &fec_info, -}; - -/* - * 128MiB of SDRAM, data width is 32 bit - */ -static struct memory_platform_data ram_pdata = { - .name = "ram0", - .flags = DEVFS_RDWR, -}; - -static struct device_d sdram_dev = -{ - .id = -1, - .name = "mem", - .map_base = CFG_SDRAM_ADDRESS, - .size = CFG_SDRAM_SIZE, - .platform_data = &ram_pdata, -}; - -static int mcfv4e_devices_init(void) -{ - printf("FIXME - setup board devices...\n"); - - register_device(&cfi_dev); - - /* - * Create partitions that should be - * not touched by any regular user - */ - devfs_add_partition("nor0", 0x00000, 0x80000, PARTITION_FIXED, "self0"); /* ourself */ - devfs_add_partition("nor0", 0x80000, 0x40000, PARTITION_FIXED, "env0"); /* environment */ - protect_file("/dev/env0", 1); - - register_device(&network_dev0); - //register_device(&network_dev1); - - register_device(&sdram_dev); - - return 0; -} - -device_initcall(mcfv4e_devices_init); - -static struct device_d mcfv4e_serial_device = -{ - .id = -1, - .name = "mcfv4e_serial", - .map_base = 1 + CFG_EARLY_UART_PORT, - .size = 16 * 1024, -}; - -static int mcfv4e_console_init(void) -{ - /* init gpios for serial port */ - - /* Already set in lowlevel_init.c */ - - register_device(&mcfv4e_serial_device); - return 0; -} - -console_initcall(mcfv4e_console_init); diff --git a/arch/m68k/boards/phycore_mcf54xx/phyCore_MCF54xx.dox b/arch/m68k/boards/phycore_mcf54xx/phyCore_MCF54xx.dox deleted file mode 100644 index 36dd0ad19..000000000 --- a/arch/m68k/boards/phycore_mcf54xx/phyCore_MCF54xx.dox +++ /dev/null @@ -1,14 +0,0 @@ - -/** @page phycore_mcf54xx Phytec's phyCORE-MCF54x5 - -This target is based on a PhyTec PhyCore MCF54x5 CPU module. The card is shipped with: - -- up to 64MiB NOR type Flash Memory -- 128MiB synchronous dynamic RAM -- PCI USB 2.0 Host -- PCCard Controller -- MiniPCI Parallel -- MiniPCIe (USB lane only) -- ... - -*/ diff --git a/arch/m68k/configs/phycore_kpukdr1_5475num_defconfig b/arch/m68k/configs/phycore_kpukdr1_5475num_defconfig deleted file mode 100644 index 14c6d78f9..000000000 --- a/arch/m68k/configs/phycore_kpukdr1_5475num_defconfig +++ /dev/null @@ -1,36 +0,0 @@ -CONFIG_MACH_KPUKDR1_NUM=y -CONFIG_INITRD_TAG=y -CONFIG_BROKEN=y -CONFIG_EXPERIMENTAL=y -CONFIG_LONGHELP=y -CONFIG_CMDLINE_EDITING=y -CONFIG_AUTO_COMPLETE=y -CONFIG_DEFAULT_ENVIRONMENT_PATH="arch/m68k/boards/kp_ukd_r1_num/env/" -CONFIG_DEBUG_INFO=y -CONFIG_ENABLE_DEVICE_NOISE=y -CONFIG_CMD_EDIT=y -CONFIG_CMD_SLEEP=y -CONFIG_CMD_SAVEENV=y -CONFIG_CMD_LOADENV=y -CONFIG_CMD_EXPORT=y -CONFIG_CMD_PRINTENV=y -CONFIG_CMD_READLINE=y -CONFIG_CMD_MEMINFO=y -CONFIG_CMD_CRC=y -CONFIG_CMD_MTEST=y -CONFIG_CMD_MTEST_ALTERNATIVE=y -CONFIG_CMD_FLASH=y -CONFIG_CMD_BOOTM_ZLIB=y -CONFIG_CMD_BOOTM_BZLIB=y -CONFIG_CMD_BOOTM_SHOW_TYPE=y -CONFIG_CMD_RESET=y -CONFIG_CMD_GO=y -CONFIG_CMD_TIMEOUT=y -CONFIG_CMD_PARTITION=y -CONFIG_NET=y -CONFIG_NET_DHCP=y -CONFIG_NET_PING=y -CONFIG_NET_TFTP=y -CONFIG_DRIVER_CFI=y -CONFIG_CFI_BUFFER_WRITE=y -CONFIG_FS_CRAMFS=y diff --git a/arch/m68k/configs/phycore_mcf54xx_defconfig b/arch/m68k/configs/phycore_mcf54xx_defconfig deleted file mode 100644 index f0d9fc284..000000000 --- a/arch/m68k/configs/phycore_mcf54xx_defconfig +++ /dev/null @@ -1,36 +0,0 @@ -CONFIG_MACH_PCM982_5485=y -CONFIG_INITRD_TAG=y -CONFIG_BROKEN=y -CONFIG_EXPERIMENTAL=y -CONFIG_LONGHELP=y -CONFIG_CMDLINE_EDITING=y -CONFIG_AUTO_COMPLETE=y -CONFIG_DEFAULT_ENVIRONMENT_PATH="arch/m68k/boards/phycore_mcf54xx/env" -CONFIG_DEBUG_INFO=y -CONFIG_ENABLE_DEVICE_NOISE=y -CONFIG_CMD_EDIT=y -CONFIG_CMD_SLEEP=y -CONFIG_CMD_SAVEENV=y -CONFIG_CMD_LOADENV=y -CONFIG_CMD_EXPORT=y -CONFIG_CMD_PRINTENV=y -CONFIG_CMD_READLINE=y -CONFIG_CMD_MEMINFO=y -CONFIG_CMD_CRC=y -CONFIG_CMD_MTEST=y -CONFIG_CMD_MTEST_ALTERNATIVE=y -CONFIG_CMD_FLASH=y -CONFIG_CMD_BOOTM_ZLIB=y -CONFIG_CMD_BOOTM_BZLIB=y -CONFIG_CMD_BOOTM_SHOW_TYPE=y -CONFIG_CMD_RESET=y -CONFIG_CMD_GO=y -CONFIG_CMD_TIMEOUT=y -CONFIG_CMD_PARTITION=y -CONFIG_NET=y -CONFIG_NET_DHCP=y -CONFIG_NET_PING=y -CONFIG_NET_TFTP=y -CONFIG_DRIVER_CFI=y -CONFIG_CFI_BUFFER_WRITE=y -CONFIG_FS_CRAMFS=y diff --git a/arch/m68k/cpu/Makefile b/arch/m68k/cpu/Makefile deleted file mode 100644 index 2e434af4e..000000000 --- a/arch/m68k/cpu/Makefile +++ /dev/null @@ -1,41 +0,0 @@ -# -# (C) Copyright 2007 Carsten Schlote -# See file CREDITS for list of people who contributed to this project. -# -# This file is part of barebox. -# -# barebox is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# barebox is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with barebox. If not, see . -# - -obj-y += cpu.o -obj-y += interrupts.o - -# -# Support code for early IO over BDM wigglers -# - -# obj-y += early_init_support.o - -# -# Support for relocated early initdata -# -obj-$(CONFIG_HAS_EARLY_INIT) += early_init_support.o - -# -# Startup codes - try to merge them into single file! -# -obj-$(CONFIG_ARCH_MCF54xx) += start-mcfv4e.o -obj-$(CONFIG_ARCH_MCF5445x) += start-mcfv4m.o - -start-mcfv4e.o : start-mcfv4e.s \ No newline at end of file diff --git a/arch/m68k/cpu/cpu.c b/arch/m68k/cpu/cpu.c deleted file mode 100644 index 9268785a4..000000000 --- a/arch/m68k/cpu/cpu.c +++ /dev/null @@ -1,185 +0,0 @@ -/* - * Copyright (c) 2008 Carsten Schlote - * See file CREDITS for list of people who contributed to this project. - * - * This file is part of barebox. - * - * barebox is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * barebox is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with barebox. If not, see . - */ - -/** @file - * A few helper functions for M6kK/Coldfire - */ -#include -#include -#include -#include // FIXME -stup place -#include - -static uint32_t CACR_shadow = MCF5XXX_CACR_BEC; - -/* - * Reset init value := 0x010C0100 - * MCF5XXX_CACR_DCINVA - * MCF5XXX_CACR_BEC - * MCF5XXX_CACR_BCINVA - * MCF5XXX_CACR_ICINVA - */ - -/** - * Enable processor's instruction cache - */ -void icache_enable (void) -{ - CACR_shadow |= MCF5XXX_CACR_IEC; - mcf5xxx_wr_cacr( CACR_shadow ); -} - -/** - * Disable processor's instruction cache - */ -void icache_disable (void) -{ - CACR_shadow &= ~MCF5XXX_CACR_IEC; - mcf5xxx_wr_cacr( CACR_shadow ); -} - -/** - * Detect processor's current instruction cache status - * @return 0=disabled, 1=enabled - */ -int icache_status (void) -{ - return (CACR_shadow & MCF5XXX_CACR_IEC)?1:0; -} - -/** - * Enable processor's data cache - */ -void dcache_enable (void) -{ - CACR_shadow |= MCF5XXX_CACR_DEC; - mcf5xxx_wr_cacr( CACR_shadow ); -} - -/** - * Disable processor's data cache - */ -void dcache_disable (void) -{ - CACR_shadow &= ~MCF5XXX_CACR_DEC; - mcf5xxx_wr_cacr( CACR_shadow ); -} - -/** - * Detect processor's current instruction cache status - * @return 0=disabled, 1=enabled - */ -int dcache_status (void) -{ - return (CACR_shadow & MCF5XXX_CACR_DEC)?1:0; -} - -/** - * Flush CPU caches to memory - */ -void cpu_cache_flush(void) -{ - uint32_t way, set; - void *addr; - - for ( way=0; way < 4; way++ ) { - addr = (void*)way; - for ( set=0; set < 512; set++ ) { - mcf5xxx_cpushl_bc ( addr ); - addr += 0x10; - } - } -} - -/** - * Flush CPU caches to memory and disable them. - */ -void cpu_cache_disable(void) -{ - uint32_t lastipl; - - lastipl = asm_set_ipl( 7 ); - - cpu_cache_flush(); - mcf5xxx_wr_acr0( 0 ); - mcf5xxx_wr_acr1( 0 ); - mcf5xxx_wr_acr2( 0 ); - mcf5xxx_wr_acr3( 0 ); - - CACR_shadow &= ~MCF5XXX_CACR_IEC; - CACR_shadow &= ~MCF5XXX_CACR_DEC; - mcf5xxx_wr_cacr( CACR_shadow | (MCF5XXX_CACR_DCINVA|MCF5XXX_CACR_ICINVA)); - - lastipl = asm_set_ipl( lastipl ); -} - -/** - * Prepare a "clean" CPU for Linux to run - * @return 0 (always) - * - * This function is called by the generic barebox part just before we call - * Linux. It prepares the processor for Linux. - */ -int cleanup_before_linux (void) -{ - /* - * we never enable dcache so we do not need to disable - * it. Linux can be called with icache enabled, so just - * do nothing here - */ - - /* flush I/D-cache */ - cpu_cache_disable(); - - /* reenable icache */ - icache_enable(); - return (0); -} -/** @page m68k_boot_preparation Linux Preparation on M68k/Coldfire - * - * For M68K we never enable data cache so we do not need to disable it again. - * - * Linux can be called with instruction cache enabled. As this is the - * default setting we are running in barebox, there's no special preparation - * required. - */ - - -/** Early init of Coldfire V4E CPU - */ -static int cpu_init (void) -{ - /* Enable ICache - branch cache is already on */ - icache_enable(); - - /* - * setup up stacks if necessary - * setup other CPU specifics here to prepare - * handling of exceptions and interrupts - */ -#ifdef CONFIG_USE_IRQ - printf("Prepare CPU interrupts for handlers\n"); - mcf_interrupts_initialize(); -#endif - - return 0; -} - -core_initcall(cpu_init); diff --git a/arch/m68k/cpu/cw_console_io.c b/arch/m68k/cpu/cw_console_io.c deleted file mode 100644 index 417a1b48b..000000000 --- a/arch/m68k/cpu/cw_console_io.c +++ /dev/null @@ -1,116 +0,0 @@ -/* - * Copyright (c) 2008 Carsten Schlote - * See file CREDITS for list of people who contributed to this project. - * - * This file is part of barebox. - * - * barebox is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * barebox is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with barebox. If not, see . - */ - -/** @file - * Debug output stubs over BDM for Codewarrior - */ -#include -#include -#include -#include -#include - -#ifdef CONFIG_HAS_EARLY_INIT - - -#if 0 // FIXME - make a CW debug port serial driver for barebox - -/* - * The result of an I/O command can be any one of the following. - */ -typedef enum DSIOResult -{ - kDSIONoError = 0x00, - kDSIOError = 0x01, - kDSIOEOF = 0x02 -} DSIOResult; - -/* - * MessageCommandID - */ -typedef enum MessageCommandID -{ - /* - * target->host support commands - */ - - kDSWriteFile = 0xD0, /* L2 L3 */ - kDSReadFile = 0xD1 /* L2 L3 */ - -} MessageCommandID; - - -enum DSIOResult TransferData( - MessageCommandID msg, - unsigned char *buffer, int size, - int * txsize -) -{ - enum DSIOResult iores = kDSIOError; - unsigned long sized2=0; - - /* -- Call codewarrior stub -- */ - __asm__ __volatile__ ( -" move.l %[cmd],%%d0 \n" -" move.l #0,%%d1 \n" -" move.l %[size],%%d2 \n" -" move.l %[buffer],%%d3 \n" -" trap #14 \n" -" move.l %%d1,%[txsize] \n" -" move.l %%d0,%[res] \n" - : [res] "=r" (iores), [txsize] "=g" (sized2) - : [cmd] "g" (msg), [size] "g" (size), [buffer] "g" (buffer) - : "d2","d3" ); - - if (txsize!=NULL) *txsize=sized2; - return iores; -} - -void *get_early_console_base(const char *name) -{ - return (void*)0xdeadbeef; -} - -static unsigned char early_iobuffer[80]; -static int early_iobuffer_cnt; - -void early_console_putc(void *base, char c) -{ - early_iobuffer[early_iobuffer_cnt++] = c; - if ( ( early_iobuffer_cnt >= sizeof(early_iobuffer)) || - (c == '\n') ) - { - TransferData(kDSWriteFile,early_iobuffer,early_iobuffer_cnt, NULL); - early_iobuffer_cnt = 0; - } -} - -void early_console_init(void *base, int baudrate) -{ - early_iobuffer_cnt = 0; -} - -//void early_console_start(const char *name, int baudrate) -//{ -//} - -#endif - -#endif diff --git a/arch/m68k/cpu/early_init_support.c b/arch/m68k/cpu/early_init_support.c deleted file mode 100644 index be4a9e4cb..000000000 --- a/arch/m68k/cpu/early_init_support.c +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright (c) 2008 Carsten Schlote - * See file CREDITS for list of people who contributed to this project. - * - * This file is part of barebox. - * - * barebox is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * barebox is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with barebox. If not, see . - */ - -/** @file - * Early InitData support routines - */ -#include -#include -#include -#include -#include - -#ifdef CONFIG_HAS_EARLY_INIT - -/** Returns relocation offset to early init data - */ -unsigned long reloc_offset(void) -{ - //extern char __early_init_data_begin[]; - //FIXME: return (unsigned long)init_data_ptr - (unsigned long)__early_init_data_begin; - return 0; -} - -#endif diff --git a/arch/m68k/cpu/interrupts.c b/arch/m68k/cpu/interrupts.c deleted file mode 100644 index 4e1ff1273..000000000 --- a/arch/m68k/cpu/interrupts.c +++ /dev/null @@ -1,246 +0,0 @@ -/* - * Copyright (c) 2008 Carsten Schlote - * See file CREDITS for list of people who contributed to this project. - * - * This file is part of barebox. - * - * barebox is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * barebox is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with barebox. If not, see . - */ - -/** @file - * Interrupt routines and supporting code for Coldfire V4E - */ -#include -#include -#include - -#ifdef CONFIG_USE_IRQ -void enable_interrupts(void) -{ - asm_set_ipl(0); -} - -int disable_interrupts(void) -{ - return asm_set_ipl(7) ? 1 : 0; -} -#endif - -/** - */ -static void mcf_bad_mode (void) -{ - panic ("Resetting CPU ...\n"); - mdelay(3000); - reset_cpu (0); -} - -/** - */ -static void mcf_show_regs (struct pt_regs *regs) -{ - unsigned long flags; - flags = condition_codes (regs); - - printf ("pc : [<%08lx>]\n" - "sp : %08lx fp : %08lx\n", - instruction_pointer (regs), - regs->M68K_sp, regs->M68K_a6); - - printf ("d0-d3 : %08lx %08lx %08lx %08lx\n", - regs->M68K_d0, regs->M68K_d1, regs->M68K_d2, regs->M68K_d3); - printf ("d3-d7 : %08lx %08lx %08lx %08lx\n", - regs->M68K_d3, regs->M68K_d4, regs->M68K_d5, regs->M68K_d6); - - printf ("a0-d3 : %08lx %08lx %08lx %08lx\n", - regs->M68K_a0, regs->M68K_a1, regs->M68K_a2, regs->M68K_a3); - printf ("a3-d7 : %08lx %08lx %08lx %08lx\n", - regs->M68K_a3, regs->M68K_a4, regs->M68K_a5, regs->M68K_a6); - - printf ("fp0 : %08lx%08lx fp1 : %08lx%08lx\n", - regs->M68K_fp0+1, regs->M68K_fp0, regs->M68K_fp1+1, regs->M68K_fp1); - printf ("fp2 : %08lx%08lx fp3 : %08lx%08lx\n", - regs->M68K_fp2+1, regs->M68K_fp2, regs->M68K_fp3+1, regs->M68K_fp3); - printf ("fp4 : %08lx%08lx fp5 : %08lx%08lx\n", - regs->M68K_fp4+1, regs->M68K_fp4, regs->M68K_fp5+1, regs->M68K_fp5); - printf ("fp6 : %08lx%08lx fp7 : %08lx%08lx\n", - regs->M68K_fp6+1, regs->M68K_fp6, regs->M68K_fp7+1, regs->M68K_fp7); - - printf ("Flags: %c%c%c%c", - flags & CC_X_BIT ? 'X' : 'x', - flags & CC_N_BIT ? 'N' : 'n', - flags & CC_Z_BIT ? 'Z' : 'z', - flags & CC_V_BIT ? 'V' : 'v', - flags & CC_C_BIT ? 'C' : 'c' ); - - printf (" IRQs %s (%0x) Mode %s\n", - interrupts_enabled (regs) ? "on" : "off", interrupts_enabled (regs), - user_mode (regs) ? "user" : "supervisor"); -} - -void mcf_execute_exception_handler (struct pt_regs *pt_regs) -{ - printf ("unhandled exception\n"); - mcf_show_regs (pt_regs); - mcf_bad_mode (); -} - -#ifndef CONFIG_USE_IRQ - -void mcf_execute_irq_handler (struct pt_regs *pt_regs, int vector) -{ - printf ("interrupt request\n"); - mcf_show_regs (pt_regs); - mcf_bad_mode (); -} - -#else - -#ifndef CONFIG_MAX_ISR_HANDLERS -#define CONFIG_MAX_ISR_HANDLERS (20) -#endif - -typedef struct -{ - int vector; - int (*handler)(void *, void *); - void *hdev; - void *harg; -} -mcfv4e_irq_handler_s; - -mcfv4e_irq_handler_s irq_handler_table[CONFIG_MAX_ISR_HANDLERS]; - -/** Initialize an empty interrupt handler list - */ -void mcf_interrupts_initialize (void) -{ - int index; - for (index = 0; index < CONFIG_MAX_ISR_HANDLERS; index++) - { - irq_handler_table[index].vector = 0; - irq_handler_table[index].handler = 0; - irq_handler_table[index].hdev = 0; - irq_handler_table[index].harg = 0; - } -} - -/** Add an interrupt handler to the handler list - * - * @param vector : M68k exception/interrupt vector number - * @param handler : Pointer to handler function - * @param hdev : Handler specific data - * @param harg : Handler specific arg - */ -int mcf_interrupts_register_handler( - int vector, - int (*handler)(void *, void *), void *hdev, void *harg) -{ - /* - * This function places an interrupt handler in the ISR table, - * thereby registering it so that the low-level handler may call it. - * - * The two parameters are intended for the first arg to be a - * pointer to the device itself, and the second a pointer to a data - * structure used by the device driver for that particular device. - */ - int index; - - if ((vector == 0) || (handler == NULL)) - { - return 0; - } - - for (index = 0; index < CONFIG_MAX_ISR_HANDLERS; index++) - { - if (irq_handler_table[index].vector == vector) - { - /* only one entry of each type per vector */ - return 0; - } - - if (irq_handler_table[index].vector == 0) - { - irq_handler_table[index].vector = vector; - irq_handler_table[index].handler = handler; - irq_handler_table[index].hdev = hdev; - irq_handler_table[index].harg = harg; - return 1; - } - } - return 0; /* no available slots */ -} - -/** Remove an interrupt handler from the handler list - * - * @param type : FIXME - * @param handler : Pointer of handler function to remove. - */ -void mcf_interrupts_remove_handler (int type ,int (*handler)(void *, void *)) -{ - /* - * This routine removes from the ISR table all - * entries that matches 'handler'. - */ - int index; - - for (index = 0; index < CONFIG_MAX_ISR_HANDLERS; index++) - { - if (irq_handler_table[index].handler == handler) - { - irq_handler_table[index].vector = 0; - irq_handler_table[index].handler = 0; - irq_handler_table[index].hdev = 0; - irq_handler_table[index].harg = 0; - } - } -} - -/** Traverse list of registered interrupts and call matching handlers. - * - * @param pt_regs : Pointer to saved register context - * @param vector : M68k exception/interrupt vector number - */ -int mcf_execute_irq_handler (struct pt_regs *pt_regs, int vector) -{ - /* - * This routine searches the ISR table for an entry that matches - * 'vector'. If one is found, then 'handler' is executed. - */ - int index, retval = 0; - - /* - * Try to locate a user-registered Interrupt Service Routine handler. - */ - for (index = 0; index < CONFIG_MAX_ISR_HANDLERS; index++) - { - if (irq_handler_table[index].handler == NULL) - { - printf("\nFault: No handler for IRQ vector %ld found.\n", vector); - break; - } - if (irq_handler_table[index].vector == vector) - { - if (irq_handler_table[index].handler(irq_handler_table[index].hdev,irq_handler_table[index].harg)) - { - retval = 1; - break; - } - } - } - - return retval; -} - -#endif diff --git a/arch/m68k/cpu/start-mcfv4e.S b/arch/m68k/cpu/start-mcfv4e.S deleted file mode 100644 index df9ee4d4b..000000000 --- a/arch/m68k/cpu/start-mcfv4e.S +++ /dev/null @@ -1,677 +0,0 @@ -/* - * Copyright (c) 2008 Carsten Schlote - * See file CREDITS for list of people who contributed to this project. - * - * This file is part of barebox. - * - * barebox is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * barebox is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with barebox. If not, see . - */ - -/** @file - * Resetcode and exception/interrupt shells for Coldfire V4E - * - * This file contains the common startup code for use on at least Coldfire - * V4E cores: - * - MCF547x - * - MCF548x - */ -#include - - .section ".vectors","a" - -/* - * Define some addresses from your board configuration file - */ - .equ __MBAR,CFG_MBAR_ADDRESS - .globl __MBAR - - .equ __CORE_SRAM0,CFG_CORE0_SRAM_ADDRESS - .equ __CORE_SRAM0_SIZE,CFG_CORE0_SRAM_SIZE - - .equ __CORE_SRAM1,CFG_CORE1_SRAM_ADDRESS - .equ __CORE_SRAM1_SIZE,CFG_CORE1_SRAM_SIZE - - /* - * Preload stack pointer with end of Core SRAM - useable _after_ you have - * setup the MBR register in reset code! - * - * The upper 4 LW of the Core SRAM are left spare - it can be used as - * fixed address temporay storage in the code below (ok, well also to - * fix up stack traces in the debugger) - * - * So we have a stack usable for C code, before we even started SDRAM! - */ - .equ ___SP_INIT,__CORE_SRAM1+__CORE_SRAM1_SIZE-16 - -/* - * Vector table for M68k and barebox Link Address - * - * On M68k/Coldfire cores all exceptions and interrupts are routed through - * a vector array. This vector is by default at address 0x0000_0000, but - * can be moved to any other 1MB aligned address. - * - * We take advantage of this to move barebox out of low memory. Some BDM - * debuggers won't like a moved vector base and might need tweaking to - * work. - * - * Note: Respect alignment restrictions for TEXT_BASE, which must be - * 1MB aligned. - */ - - .globl _barebox_start -_barebox_start: - -VECTOR_TABLE: -_VECTOR_TABLE: -INITSP: .long ___SP_INIT /* Initial SP */ -INITPC: .long 0x410 /* Initial PC */ -vector02: .long _asm_exception_handler /* Access Error */ -vector03: .long _asm_exception_handler /* Address Error */ -vector04: .long _asm_exception_handler /* Illegal Instruction */ -vector05: .long _asm_exception_handler /* Divide by Zero */ -vector06: .long _asm_exception_handler /* Reserved */ -vector07: .long _asm_exception_handler /* Reserved */ -vector08: .long _asm_exception_handler /* Privilege Violation */ -vector09: .long _asm_exception_handler /* Trace */ -vector0A: .long _asm_exception_handler /* Unimplemented A-Line */ -vector0B: .long _asm_exception_handler /* Unimplemented F-Line */ -vector0C: .long _asm_exception_handler /* Non-PC Brkpt Debug Int */ -vector0D: .long _asm_exception_handler /* PC Brkpt Debug Int */ -vector0E: .long _asm_exception_handler /* Format Error */ -vector0F: .long _asm_exception_handler /* Unitialized Int */ -vector10: .long _asm_exception_handler /* Reserved */ -vector11: .long _asm_exception_handler /* Reserved */ -vector12: .long _asm_exception_handler /* Reserved */ -vector13: .long _asm_exception_handler /* Reserved */ -vector14: .long _asm_exception_handler /* Reserved */ -vector15: .long _asm_exception_handler /* Reserved */ -vector16: .long _asm_exception_handler /* Reserved */ -vector17: .long _asm_exception_handler /* Reserved */ -vector18: .long _asm_exception_handler /* Spurious Interrupt */ -vector19: .long _asm_isr_handler /* Autovector Level 1 */ -vector1A: .long _asm_isr_handler /* Autovector Level 2 */ -vector1B: .long _asm_isr_handler /* Autovector Level 3 */ -vector1C: .long _asm_isr_handler /* Autovector Level 4 */ -vector1D: .long _asm_isr_handler /* Autovector Level 5 */ -vector1E: .long _asm_isr_handler /* Autovector Level 6 */ -vector1F: .long _asm_isr_handler /* Autovector Level 7 */ -vector20: .long _asm_exception_handler /* TRAP #0 */ -vector21: .long _asm_exception_handler /* TRAP #1 */ -vector22: .long _asm_exception_handler /* TRAP #2 */ -vector23: .long _asm_exception_handler /* TRAP #3 */ -vector24: .long _asm_exception_handler /* TRAP #4 */ -vector25: .long _asm_exception_handler /* TRAP #5 */ -vector26: .long _asm_exception_handler /* TRAP #6 */ -vector27: .long _asm_exception_handler /* TRAP #7 */ -vector28: .long _asm_exception_handler /* TRAP #8 */ -vector29: .long _asm_exception_handler /* TRAP #9 */ -vector2A: .long _asm_exception_handler /* TRAP #10 */ -vector2B: .long _asm_exception_handler /* TRAP #11 */ -vector2C: .long _asm_exception_handler /* TRAP #12 */ -vector2D: .long _asm_exception_handler /* TRAP #13 */ -vector2E: .long _asm_exception_handler /* TRAP #14 */ -vector2F: .long _dbug_sc_handler /* TRAP #15 - System Call */ -vector30: .long _asm_exception_handler /* Reserved */ -vector31: .long _asm_exception_handler /* Reserved */ -vector32: .long _asm_exception_handler /* Reserved */ -vector33: .long _asm_exception_handler /* Reserved */ -vector34: .long _asm_exception_handler /* Reserved */ -vector35: .long _asm_exception_handler /* Reserved */ -vector36: .long _asm_exception_handler /* Reserved */ -vector37: .long _asm_exception_handler /* Reserved */ -vector38: .long _asm_exception_handler /* Reserved */ -vector39: .long _asm_exception_handler /* Reserved */ -vector3A: .long _asm_exception_handler /* Reserved */ -vector3B: .long _asm_exception_handler /* Reserved */ -vector3C: .long _asm_exception_handler /* Reserved */ -vector3D: .long _asm_exception_handler /* Unsupported Instruction */ -vector3E: .long _asm_exception_handler /* Reserved */ -vector3F: .long _asm_exception_handler /* Reserved */ -vector40: .long _asm_isr_handler /* User Defined Interrupts */ -vector41: .long _asm_isr_handler -vector42: .long _asm_isr_handler -vector43: .long _asm_isr_handler -vector44: .long _asm_isr_handler -vector45: .long _asm_isr_handler -vector46: .long _asm_isr_handler -vector47: .long _asm_isr_handler -vector48: .long _asm_isr_handler -vector49: .long _asm_isr_handler -vector4A: .long _asm_isr_handler -vector4B: .long _asm_isr_handler -vector4C: .long _asm_isr_handler -vector4D: .long _asm_isr_handler -vector4E: .long _asm_isr_handler -vector4F: .long _asm_isr_handler -vector50: .long _asm_isr_handler -vector51: .long _asm_isr_handler -vector52: .long _asm_isr_handler -vector53: .long _asm_isr_handler -vector54: .long _asm_isr_handler -vector55: .long _asm_isr_handler -vector56: .long _asm_isr_handler -vector57: .long _asm_isr_handler -vector58: .long _asm_isr_handler -vector59: .long _asm_isr_handler -vector5A: .long _asm_isr_handler -vector5B: .long _asm_isr_handler -vector5C: .long _asm_isr_handler -vector5D: .long _asm_isr_handler -vector5E: .long _asm_isr_handler -vector5F: .long _asm_isr_handler -vector60: .long _asm_isr_handler -vector61: .long _asm_isr_handler -vector62: .long _asm_isr_handler -vector63: .long _asm_isr_handler -vector64: .long _asm_isr_handler -vector65: .long _asm_isr_handler -vector66: .long _asm_isr_handler -vector67: .long _asm_isr_handler -vector68: .long _asm_isr_handler -vector69: .long _asm_isr_handler -vector6A: .long _asm_isr_handler -vector6B: .long _asm_isr_handler -vector6C: .long _asm_isr_handler -vector6D: .long _asm_isr_handler -vector6E: .long _asm_isr_handler -vector6F: .long _asm_isr_handler -vector70: .long _asm_isr_handler -vector71: .long _asm_isr_handler -vector72: .long _asm_isr_handler -vector73: .long _asm_isr_handler -vector74: .long _asm_isr_handler -vector75: .long _asm_isr_handler -vector76: .long _asm_isr_handler -vector77: .long _asm_isr_handler -vector78: .long _asm_isr_handler -vector79: .long _asm_isr_handler -vector7A: .long _asm_isr_handler -vector7B: .long _asm_isr_handler -vector7C: .long _asm_isr_handler -vector7D: .long _asm_isr_handler -vector7E: .long _asm_isr_handler -vector7F: .long _asm_isr_handler -vector80: .long _asm_isr_handler -vector81: .long _asm_isr_handler -vector82: .long _asm_isr_handler -vector83: .long _asm_isr_handler -vector84: .long _asm_isr_handler -vector85: .long _asm_isr_handler -vector86: .long _asm_isr_handler -vector87: .long _asm_isr_handler -vector88: .long _asm_isr_handler -vector89: .long _asm_isr_handler -vector8A: .long _asm_isr_handler -vector8B: .long _asm_isr_handler -vector8C: .long _asm_isr_handler -vector8D: .long _asm_isr_handler -vector8E: .long _asm_isr_handler -vector8F: .long _asm_isr_handler -vector90: .long _asm_isr_handler -vector91: .long _asm_isr_handler -vector92: .long _asm_isr_handler -vector93: .long _asm_isr_handler -vector94: .long _asm_isr_handler -vector95: .long _asm_isr_handler -vector96: .long _asm_isr_handler -vector97: .long _asm_isr_handler -vector98: .long _asm_isr_handler -vector99: .long _asm_isr_handler -vector9A: .long _asm_isr_handler -vector9B: .long _asm_isr_handler -vector9C: .long _asm_isr_handler -vector9D: .long _asm_isr_handler -vector9E: .long _asm_isr_handler -vector9F: .long _asm_isr_handler -vectorA0: .long _asm_isr_handler -vectorA1: .long _asm_isr_handler -vectorA2: .long _asm_isr_handler -vectorA3: .long _asm_isr_handler -vectorA4: .long _asm_isr_handler -vectorA5: .long _asm_isr_handler -vectorA6: .long _asm_isr_handler -vectorA7: .long _asm_isr_handler -vectorA8: .long _asm_isr_handler -vectorA9: .long _asm_isr_handler -vectorAA: .long _asm_isr_handler -vectorAB: .long _asm_isr_handler -vectorAC: .long _asm_isr_handler -vectorAD: .long _asm_isr_handler -vectorAE: .long _asm_isr_handler -vectorAF: .long _asm_isr_handler -vectorB0: .long _asm_isr_handler -vectorB1: .long _asm_isr_handler -vectorB2: .long _asm_isr_handler -vectorB3: .long _asm_isr_handler -vectorB4: .long _asm_isr_handler -vectorB5: .long _asm_isr_handler -vectorB6: .long _asm_isr_handler -vectorB7: .long _asm_isr_handler -vectorB8: .long _asm_isr_handler -vectorB9: .long _asm_isr_handler -vectorBA: .long _asm_isr_handler -vectorBB: .long _asm_isr_handler -vectorBC: .long _asm_isr_handler -vectorBD: .long _asm_isr_handler -vectorBE: .long _asm_isr_handler -vectorBF: .long _asm_isr_handler -vectorC0: .long _asm_isr_handler -vectorC1: .long _asm_isr_handler -vectorC2: .long _asm_isr_handler -vectorC3: .long _asm_isr_handler -vectorC4: .long _asm_isr_handler -vectorC5: .long _asm_isr_handler -vectorC6: .long _asm_isr_handler -vectorC7: .long _asm_isr_handler -vectorC8: .long _asm_isr_handler -vectorC9: .long _asm_isr_handler -vectorCA: .long _asm_isr_handler -vectorCB: .long _asm_isr_handler -vectorCC: .long _asm_isr_handler -vectorCD: .long _asm_isr_handler -vectorCE: .long _asm_isr_handler -vectorCF: .long _asm_isr_handler -vectorD0: .long _asm_isr_handler -vectorD1: .long _asm_isr_handler -vectorD2: .long _asm_isr_handler -vectorD3: .long _asm_isr_handler -vectorD4: .long _asm_isr_handler -vectorD5: .long _asm_isr_handler -vectorD6: .long _asm_isr_handler -vectorD7: .long _asm_isr_handler -vectorD8: .long _asm_isr_handler -vectorD9: .long _asm_isr_handler -vectorDA: .long _asm_isr_handler -vectorDB: .long _asm_isr_handler -vectorDC: .long _asm_isr_handler -vectorDD: .long _asm_isr_handler -vectorDE: .long _asm_isr_handler -vectorDF: .long _asm_isr_handler -vectorE0: .long _asm_isr_handler -vectorE1: .long _asm_isr_handler -vectorE2: .long _asm_isr_handler -vectorE3: .long _asm_isr_handler -vectorE4: .long _asm_isr_handler -vectorE5: .long _asm_isr_handler -vectorE6: .long _asm_isr_handler -vectorE7: .long _asm_isr_handler -vectorE8: .long _asm_isr_handler -vectorE9: .long _asm_isr_handler -vectorEA: .long _asm_isr_handler -vectorEB: .long _asm_isr_handler -vectorEC: .long _asm_isr_handler -vectorED: .long _asm_isr_handler -vectorEE: .long _asm_isr_handler -vectorEF: .long _asm_isr_handler -vectorF0: .long _asm_isr_handler -vectorF1: .long _asm_isr_handler -vectorF2: .long _asm_isr_handler -vectorF3: .long _asm_isr_handler -vectorF4: .long _asm_isr_handler -vectorF5: .long _asm_isr_handler -vectorF6: .long _asm_isr_handler -vectorF7: .long _asm_isr_handler -vectorF8: .long _asm_isr_handler -vectorF9: .long _asm_isr_handler -vectorFA: .long _asm_isr_handler -vectorFB: .long _asm_isr_handler -vectorFC: .long _asm_isr_handler -vectorFD: .long _asm_isr_handler -vectorFE: .long _asm_isr_handler -vectorFF: .long _asm_isr_handler - -/* - * Leave some bytes spare here for CW debugger (console IO stuff) - */ - .rept 4 - .long 0xdeadbeef - .endr - -/** @func reset Startup Code (reset vector) - * - * The vector array is mapped to address 0 at reset and SP and PC are - * fetched from adress 0 and 4. - * - * For debugger uploads this image will reside in the middle of RAM, leaving - * as much memory for other stuff in low memory available, e.g. Linux and - * an init ramdisk. - * - * For real system resets, the boot rom is mapped to all addresses in - * system, as long as somebody sets up the CS. Now the trick part until - * relocation to RAM is that we must code at the start of your bootrom - * - all link addresses are wrong, so we need the reloc.h stuff to find the - * right address. - * - * The following things happen here: - * * do important init, like SDRAM, only if we don't start from memory! - * * setup Memory and board specific bits prior to relocation. - * * Setup stack - * * relocate barebox to ram - * - */ - .globl _start -_start: - .global reset -reset: - /* Mask all IRQs */ - move.w #0x2700,%sr - - /* Initialize MBAR - keep D0/D1 registers */ - move.l #__MBAR,%d2 - movec %d2,%MBAR - nop - - /* Initialize RAMBAR0 - locate it on the data bus */ - move.l #__CORE_SRAM0,%d2 - add.l #0x21,%d2 - movec %d2,%RAMBAR0 - nop - - /* Initialize RAMBAR1 - locate it on the data bus */ - move.l #__CORE_SRAM1,%d2 - add.l #0x21,%d2 - movec %d2,%RAMBAR1 - nop - - /* Point Stack Pointer into Core SRAM temporarily */ - move.l #___SP_INIT,%d2 - move.l %d2,%sp - nop - - /* Invalidate the data, instruction, and branch caches */ - /* Turn on the branch cache */ - move.l #0x010C0100,%d2 - movec %d2,%cacr - nop - - /* Prepare stack top */ - clr.l %sp@(0) - move.l %d0,%sp@(4) - move.l %d1,%sp@(8) - clr.l %sp@(12) - - /* - * This call is intended to give all developers a chance to use a - * standard reset vector file, but also do some special things - * required only on their specific CPU. - */ -#ifdef CONFIG_ARCH_HAS_LOWLEVEL_INIT - bsr.l arch_init_lowlevel - nop -#endif - /* - * If the code vector table is not at TEXT_BASE and so this code - * as well, jump to the address mirror at FLASH ROM start address - * - * So load your image to TEXT_BASE for debugging or flash a binary - * image to your bootflash - code below will take proper action. - */ - lea.l %pc@(VECTOR_TABLE),%a0 - move.l #TEXT_BASE,%a1 - cmp.l %a0,%a1 - beq.s saveland - - /* - * Execution is not at TEXT_BASE. We assume entry to this code by - * a hardware reset and change execution to address of _FLASH_ rom. - */ - lea.l %pc@(saveland),%a0 // Effective ! Address of label below - move.l %a0,%d0 - and.l #0x00ffffff,%d0 // Cut away address high byte - move.l #CFG_FLASH_ADDRESS,%d1 // Get flash address - and.l #0xff000000,%d1 // and just take base for CS0 - or.l %d1,%d0 // Compose new address - move.l %d0,%a0 - jmp %a0@ // Jump to flash rom address! - nop - - /* We now either in SDRAM or FLASH START addresses, save to - change chip selects */ -saveland: - nop - - /* - * Before relocating, we have to setup RAM timing - * because memory timing is board-dependend, you will - * find a lowlevel_init.[c|S] in your board directory. - * - * Do not jump/call other barebox code here! - */ -#ifdef CONFIG_MACH_DO_LOWLEVEL_INIT - bsr.l board_init_lowlevel - nop -#endif - - /* - * relocate barebox Code to RAM (including copy of vectors) - */ -relocate: - lea.l %pc@(VECTOR_TABLE),%a0 - move.l #TEXT_BASE,%a1 - move.l #__bss_start,%a3 - cmp.l %a0,%a1 - beq.s skip_relocate - - /* - * Calculate number of long words, and copy them to RAM - */ - move.l %a3,%d2 - sub.l %a1,%d2 - asr.l #2,%d2 -copy_loop: - move.l %a0@+,%a1@+ - subq.l #1,%d2 - bne.s copy_loop - -skip_relocate: - - /* Clear BSS segment in RAM */ -clear_bss: - move.l #__bss_end,%a4 - moveq.l #0,%d2 -clear_loop: - move.l %d2,%a3@+ - cmp.l %a4,%a3 - ble.s clear_loop - - /* - * Relocate Vectors to memory start (address 0) - * - * NOTE: It could be at other places, but debuggers expect - * this table to be at address 0. - */ -#ifdef CONFIG_COPY_LOWMEM_VECTORS -reloc_vectors: - lea.l %pc@(VECTOR_TABLE),%a0 - move.l #0,%a1 - cmp.l %a0,%a1 - beq.s skip_copy_vectors - - move.l #0x100,%d2 -copy_loop_vectors: - move.l %a0@+,%a1@+ - subq.l #1,%d2 - bne.s copy_loop_vectors -skip_copy_vectors: -#endif - -#ifndef CONFIG_USE_LOWMEM_VECTORS - move.l #TEXT_BASE,%d0 - movec %d0,%vbr - nop -#endif - -#ifdef CONFIG_MACH_DO_LOWLEVEL_INIT - /* - * Call other half of initcode in relocated code - * - * You allowed to call other barebox code from here - */ - jsr.l board_init_highlevel - nop -#endif - /* - * Now jump to real link address and barebox entry point - */ - nop - jmp.l start_barebox - nop - nop - -/* - * Interrupt handling - */ - -/* - * IRQ stack frame. - */ -#define S_FRAME_SIZE 148 - -#define S_SP S_A7 -#define S_SR 144 -#define S_PC 140 - -#define S_FPIAR 136 -#define S_FPSR 132 -#define S_FPCR 128 - -#define S_FP7 120 -#define S_FP6 112 -#define S_FP5 104 -#define S_FP4 96 -#define S_FP3 88 -#define S_FP2 80 -#define S_FP1 72 -#define S_FP0 64 - -#define S_A7 60 -#define S_A6 56 -#define S_A5 52 -#define S_A4 48 -#define S_A3 44 -#define S_A2 40 -#define S_A1 36 -#define S_A0 32 - -#define S_D7 28 -#define S_D6 24 -#define S_D5 20 -#define S_D4 16 -#define S_D3 12 -#define S_D2 8 -#define S_D1 4 -#define S_D0 0 - - -/* - * exception handlers - */ -#ifdef CONFIG_USE_IRQ - .global _dbug_sc_handler -_dbug_sc_handler: - .global _asm_exception_handler -_asm_exception_handler: - move.w #0x2700,%sr /* Disable IRQs */ - - move.l %sp,___SP_INIT /* Remember on top of stack */ - move.l #___SP_INIT,%sp /* Set stack to known area */ - - move.l %a0,%sp@- - lea _asm_context,%a0 - - movem.l %d0-%d7/%a0-%a7,%a0@ - - fmovem %fp0-%fp7,%a0@(S_FP0) - fmove.l %fpcr,%a0@(S_FPCR) - fmove.l %fpsr,%a0@(S_FPSR) - fmove.l %fpiar,%a0@(S_FPIAR) - - move.l %sp@+,%a0@(S_A0) - move.l %sp@,%a1 - move.l %a1,%a0@(S_SP) - move.l %a1@(4),%a0@(S_PC) - move.w %a1@(2),%a0@(S_SR) - - jsr cpu_cache_flush - nop - - move.l %a1,%sp@- - jsr mcf_execute_exception_handler - - - lea _asm_context,%a0 - move.l %a0@(S_SP),%sp - - move.l %a0@(S_D1),%d1 - move.l %a0@(S_D0),%d0 - move.l %a0@(S_A1),%a1 - move.l %a0@(S_A0),%a0 - - rte - nop - nop - - .global _asm_isr_handler -_asm_isr_handler: - link %a6,#-16 - movem.l %d0-%d1/%a0-%a1,%sp@ - - move.w %a6@(4),%d0 - lsr.l #2,%d0 - andi.l #0x0000FF,%d0 - move.l %d0,%sp@- - move.l #0,%a0 - move.l %a0,%sp@- - jsr mcf_execute_irq_handler - lea %sp@(8),%sp - cmpi.l #1,%d0 - beq handled - -nothandled: - movem.l %sp@,%d0-%d1/%a0-%a1 - unlk %a6 - jmp _asm_exception_handler - nop - -handled: - movem.l %sp@,%d0-%d1/%a0-%a1 - unlk %a6 - rte - nop - nop - -#else - - .global _dbug_sc_handler -_dbug_sc_handler: - .global _asm_exception_handler -_asm_exception_handler: - nop - // FIXME - do something useful here - rte - - .global _asm_isr_handler -_asm_isr_handler: - nop - // FIXME - do something useful here - rte - -#endif - - .data -_asm_context: - .space S_FRAME_SIZE,0x55 - - - .end diff --git a/arch/m68k/include/asm/atomic.h b/arch/m68k/include/asm/atomic.h deleted file mode 100644 index efbe2b88b..000000000 --- a/arch/m68k/include/asm/atomic.h +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Copyright (c) 2008 Carsten Schlote - * See file CREDITS for list of people who contributed to this project. - * - * This file is part of barebox. - * - * barebox is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * barebox is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with barebox. If not, see . - */ - -/** @file - * Declaration for atomic operations - */ - -/* Empty dummy FIXME */ diff --git a/arch/m68k/include/asm/barebox-m68k.h b/arch/m68k/include/asm/barebox-m68k.h deleted file mode 100644 index c1ee75ed3..000000000 --- a/arch/m68k/include/asm/barebox-m68k.h +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright (c) 2008 Carsten Schlote - * See file CREDITS for list of people who contributed to this project. - * - * This file is part of barebox. - * - * barebox is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * barebox is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with barebox. If not, see . - */ - -/** @file - * Arch dependant barebox defines - */ -#ifndef _BAREBOX_M68K_H_ -#define _BAREBOX_M68K_H_ 1 - -/* for the following variables, see start.S */ -//extern ulong _armboot_start; /* code start */ -//extern ulong _bss_start; /* code + data end == BSS start */ -//extern ulong _bss_end; /* BSS end */ -//extern ulong IRQ_STACK_START; /* top of IRQ stack */ - -/* cpu/.../cpu.c */ -int cleanup_before_linux(void); - -/* board/.../... */ -//int board_init(void); -//int dram_init (void); - -#endif /* _BAREBOX_M68K_H_ */ diff --git a/arch/m68k/include/asm/barebox.h b/arch/m68k/include/asm/barebox.h deleted file mode 100644 index 568b2883b..000000000 --- a/arch/m68k/include/asm/barebox.h +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright (c) 2008 Carsten Schlote - * See file CREDITS for list of people who contributed to this project. - * - * This file is part of barebox. - * - * barebox is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * barebox is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with barebox. If not, see . - */ - -/** @file - * @note This header file defines an interface to barebox. Including - * this (unmodified) header file in another file is considered normal - * use of barebox, and does *not* fall under the heading of "derived - * work". - */ - -#ifndef _BAREBOX_H_ -#define _BAREBOX_H_ 1 - -//typedef struct bd_info {} bd_t; - -#endif /* _BAREBOX_H_ */ diff --git a/arch/m68k/include/asm/bitops.h b/arch/m68k/include/asm/bitops.h deleted file mode 100644 index fee64a425..000000000 --- a/arch/m68k/include/asm/bitops.h +++ /dev/null @@ -1,141 +0,0 @@ -/* - * Copyright (c) 2008 Carsten Schlote - * See file CREDITS for list of people who contributed to this project. - * - * This file is part of barebox. - * - * barebox is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * barebox is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with barebox. If not, see . - */ - -/** @file - * Bitops helper functions and defines for M68k - * - * bit 0 is the LSB of addr; bit 32 is the HSB. - * - * Please note that the code in this file should never be included - * from user space. Many of these are not implemented in assembler - * since they would be too costly. Also, they require priviledged - * instructions (which are not available from user mode) to ensure - * that they are atomic. - */ - -#ifndef __ASM_M68K_BITOPS_H -#define __ASM_M68K_BITOPS_H - -/* - * Function prototypes to keep gcc -Wall happy. - */ -extern void set_bit(int nr, volatile void * addr); - -static inline void __set_bit(int nr, volatile void *addr) -{ - ((unsigned char *) addr)[nr >> 3] |= (1U << (nr & 7)); -} - -extern void clear_bit(int nr, volatile void * addr); - -static inline void __clear_bit(int nr, volatile void *addr) -{ - ((unsigned char *) addr)[nr >> 3] &= ~(1U << (nr & 7)); -} - -extern void change_bit(int nr, volatile void * addr); - -static inline void __change_bit(int nr, volatile void *addr) -{ - ((unsigned char *) addr)[nr >> 3] ^= (1U << (nr & 7)); -} - -extern int test_and_set_bit(int nr, volatile void * addr); - -static inline int __test_and_set_bit(int nr, volatile void *addr) -{ - unsigned int mask = 1 << (nr & 7); - unsigned int oldval; - - oldval = ((unsigned char *) addr)[nr >> 3]; - ((unsigned char *) addr)[nr >> 3] = oldval | mask; - return oldval & mask; -} - -extern int test_and_clear_bit(int nr, volatile void * addr); - -static inline int __test_and_clear_bit(int nr, volatile void *addr) -{ - unsigned int mask = 1 << (nr & 7); - unsigned int oldval; - - oldval = ((unsigned char *) addr)[nr >> 3]; - ((unsigned char *) addr)[nr >> 3] = oldval & ~mask; - return oldval & mask; -} - -extern int test_and_change_bit(int nr, volatile void * addr); - -static inline int __test_and_change_bit(int nr, volatile void *addr) -{ - unsigned int mask = 1 << (nr & 7); - unsigned int oldval; - - oldval = ((unsigned char *) addr)[nr >> 3]; - ((unsigned char *) addr)[nr >> 3] = oldval ^ mask; - return oldval & mask; -} - -extern int find_first_zero_bit(void * addr, unsigned size); -extern int find_next_zero_bit(void * addr, int size, int offset); - -/* - * This routine doesn't need to be atomic. - */ -static inline int test_bit(int nr, const void * addr) -{ - return ((unsigned char *) addr)[nr >> 3] & (1U << (nr & 7)); -} - -/* - * ffz = Find First Zero in word. Undefined if no zero exists, - * so code should check against ~0UL first.. - */ -static inline unsigned long ffz(unsigned long word) -{ - int k; - - word = ~word; - k = 31; - if (word & 0x0000ffff) { k -= 16; word <<= 16; } - if (word & 0x00ff0000) { k -= 8; word <<= 8; } - if (word & 0x0f000000) { k -= 4; word <<= 4; } - if (word & 0x30000000) { k -= 2; word <<= 2; } - if (word & 0x40000000) { k -= 1; } - return k; -} - -#include -#include - -#define ext2_set_bit test_and_set_bit -#define ext2_clear_bit test_and_clear_bit -#define ext2_test_bit test_bit -#define ext2_find_first_zero_bit find_first_zero_bit -#define ext2_find_next_zero_bit find_next_zero_bit - -/* Bitmap functions for the minix filesystem. */ -#define minix_test_and_set_bit(nr,addr) test_and_set_bit(nr,addr) -#define minix_set_bit(nr,addr) set_bit(nr,addr) -#define minix_test_and_clear_bit(nr,addr) test_and_clear_bit(nr,addr) -#define minix_test_bit(nr,addr) test_bit(nr,addr) -#define minix_find_first_zero_bit(addr,size) find_first_zero_bit(addr,size) - -#endif /* __ASM_M68K_BITOPS_H */ diff --git a/arch/m68k/include/asm/bootinfo.h b/arch/m68k/include/asm/bootinfo.h deleted file mode 100644 index a0bd27b31..000000000 --- a/arch/m68k/include/asm/bootinfo.h +++ /dev/null @@ -1,381 +0,0 @@ -/* - * Copyright (c) 2008 Carsten Schlote - * See file CREDITS for list of people who contributed to this project. - * - * This file is part of barebox. - * - * barebox is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * barebox is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with barebox. If not, see . - */ - -/** @file - * Definition of the Linux/m68k boot information structure. - * - * Taken from Linux includes. See there for latest version, and update - * if needed - */ -#ifndef _M68K_BOOTINFO_H -#define _M68K_BOOTINFO_H - - -/* - * Bootinfo definitions - * - * This is an easily parsable and extendable structure containing all - * information to be passed from the bootstrap to the kernel. - * - * This way I hope to keep all future changes back/forewards compatible. - * Thus, keep your fingers crossed... - * - * This structure is copied right after the kernel bss by the bootstrap - * routine. - */ - -#ifndef __ASSEMBLY__ - -struct bi_record { - unsigned short tag; /* tag ID */ - unsigned short size; /* size of record (in bytes) */ - unsigned long data[0]; /* data */ -}; - -#endif /* __ASSEMBLY__ */ - - -/* - * Tag Definitions - * - * Machine independent tags start counting from 0x0000 - * Machine dependent tags start counting from 0x8000 - */ - -#define BI_LAST 0x0000 /* last record (sentinel) */ -#define BI_MACHTYPE 0x0001 /* machine type (u_long) */ -#define BI_CPUTYPE 0x0002 /* cpu type (u_long) */ -#define BI_FPUTYPE 0x0003 /* fpu type (u_long) */ -#define BI_MMUTYPE 0x0004 /* mmu type (u_long) */ -#define BI_MEMCHUNK 0x0005 /* memory chunk address and size */ - /* (struct mem_info) */ -#define BI_RAMDISK 0x0006 /* ramdisk address and size */ - /* (struct mem_info) */ -#define BI_COMMAND_LINE 0x0007 /* kernel command line parameters */ - /* (string) */ - -/* - * Amiga-specific tags - */ - -#define BI_AMIGA_MODEL 0x8000 /* model (u_long) */ -#define BI_AMIGA_AUTOCON 0x8001 /* AutoConfig device */ - /* (struct ConfigDev) */ -#define BI_AMIGA_CHIP_SIZE 0x8002 /* size of Chip RAM (u_long) */ -#define BI_AMIGA_VBLANK 0x8003 /* VBLANK frequency (u_char) */ -#define BI_AMIGA_PSFREQ 0x8004 /* power supply frequency (u_char) */ -#define BI_AMIGA_ECLOCK 0x8005 /* EClock frequency (u_long) */ -#define BI_AMIGA_CHIPSET 0x8006 /* native chipset present (u_long) */ -#define BI_AMIGA_SERPER 0x8007 /* serial port period (u_short) */ - -/* - * Atari-specific tags - */ - -#define BI_ATARI_MCH_COOKIE 0x8000 /* _MCH cookie from TOS (u_long) */ -#define BI_ATARI_MCH_TYPE 0x8001 /* special machine type (u_long) */ - /* (values are ATARI_MACH_* defines */ - -/* mch_cookie values (upper word) */ -#define ATARI_MCH_ST 0 -#define ATARI_MCH_STE 1 -#define ATARI_MCH_TT 2 -#define ATARI_MCH_FALCON 3 - -/* mch_type values */ -#define ATARI_MACH_NORMAL 0 /* no special machine type */ -#define ATARI_MACH_MEDUSA 1 /* Medusa 040 */ -#define ATARI_MACH_HADES 2 /* Hades 040 or 060 */ -#define ATARI_MACH_AB40 3 /* Afterburner040 on Falcon */ - -/* - * VME-specific tags - */ - -#define BI_VME_TYPE 0x8000 /* VME sub-architecture (u_long) */ -#define BI_VME_BRDINFO 0x8001 /* VME board information (struct) */ - -/* BI_VME_TYPE codes */ -#define VME_TYPE_TP34V 0x0034 /* Tadpole TP34V */ -#define VME_TYPE_MVME147 0x0147 /* Motorola MVME147 */ -#define VME_TYPE_MVME162 0x0162 /* Motorola MVME162 */ -#define VME_TYPE_MVME166 0x0166 /* Motorola MVME166 */ -#define VME_TYPE_MVME167 0x0167 /* Motorola MVME167 */ -#define VME_TYPE_MVME172 0x0172 /* Motorola MVME172 */ -#define VME_TYPE_MVME177 0x0177 /* Motorola MVME177 */ -#define VME_TYPE_BVME4000 0x4000 /* BVM Ltd. BVME4000 */ -#define VME_TYPE_BVME6000 0x6000 /* BVM Ltd. BVME6000 */ - -/* BI_VME_BRDINFO is a 32 byte struct as returned by the Bug code on - * Motorola VME boards. Contains board number, Bug version, board - * configuration options, etc. See include/asm/mvme16xhw.h for details. - */ - - -/* - * Macintosh-specific tags (all u_long) - */ - -#define BI_MAC_MODEL 0x8000 /* Mac Gestalt ID (model type) */ -#define BI_MAC_VADDR 0x8001 /* Mac video base address */ -#define BI_MAC_VDEPTH 0x8002 /* Mac video depth */ -#define BI_MAC_VROW 0x8003 /* Mac video rowbytes */ -#define BI_MAC_VDIM 0x8004 /* Mac video dimensions */ -#define BI_MAC_VLOGICAL 0x8005 /* Mac video logical base */ -#define BI_MAC_SCCBASE 0x8006 /* Mac SCC base address */ -#define BI_MAC_BTIME 0x8007 /* Mac boot time */ -#define BI_MAC_GMTBIAS 0x8008 /* Mac GMT timezone offset */ -#define BI_MAC_MEMSIZE 0x8009 /* Mac RAM size (sanity check) */ -#define BI_MAC_CPUID 0x800a /* Mac CPU type (sanity check) */ -#define BI_MAC_ROMBASE 0x800b /* Mac system ROM base address */ - -/* - * Macintosh hardware profile data - unused, see macintosh.h for - * resonable type values - */ - -#define BI_MAC_VIA1BASE 0x8010 /* Mac VIA1 base address (always present) */ -#define BI_MAC_VIA2BASE 0x8011 /* Mac VIA2 base address (type varies) */ -#define BI_MAC_VIA2TYPE 0x8012 /* Mac VIA2 type (VIA, RBV, OSS) */ -#define BI_MAC_ADBTYPE 0x8013 /* Mac ADB interface type */ -#define BI_MAC_ASCBASE 0x8014 /* Mac Apple Sound Chip base address */ -#define BI_MAC_SCSI5380 0x8015 /* Mac NCR 5380 SCSI (base address, multi) */ -#define BI_MAC_SCSIDMA 0x8016 /* Mac SCSI DMA (base address) */ -#define BI_MAC_SCSI5396 0x8017 /* Mac NCR 53C96 SCSI (base address, multi) */ -#define BI_MAC_IDETYPE 0x8018 /* Mac IDE interface type */ -#define BI_MAC_IDEBASE 0x8019 /* Mac IDE interface base address */ -#define BI_MAC_NUBUS 0x801a /* Mac Nubus type (none, regular, pseudo) */ -#define BI_MAC_SLOTMASK 0x801b /* Mac Nubus slots present */ -#define BI_MAC_SCCTYPE 0x801c /* Mac SCC serial type (normal, IOP) */ -#define BI_MAC_ETHTYPE 0x801d /* Mac builtin ethernet type (Sonic, MACE */ -#define BI_MAC_ETHBASE 0x801e /* Mac builtin ethernet base address */ -#define BI_MAC_PMU 0x801f /* Mac power management / poweroff hardware */ -#define BI_MAC_IOP_SWIM 0x8020 /* Mac SWIM floppy IOP */ -#define BI_MAC_IOP_ADB 0x8021 /* Mac ADB IOP */ - -/* - * Mac: compatibility with old booter data format (temporarily) - * Fields unused with the new bootinfo can be deleted now; instead of - * adding new fields the struct might be splitted into a hardware address - * part and a hardware type part - */ - -#ifndef __ASSEMBLY__ - -struct mac_booter_data -{ - unsigned long videoaddr; - unsigned long videorow; - unsigned long videodepth; - unsigned long dimensions; - unsigned long args; - unsigned long boottime; - unsigned long gmtbias; - unsigned long bootver; - unsigned long videological; - unsigned long sccbase; - unsigned long id; - unsigned long memsize; - unsigned long serialmf; - unsigned long serialhsk; - unsigned long serialgpi; - unsigned long printmf; - unsigned long printhsk; - unsigned long printgpi; - unsigned long cpuid; - unsigned long rombase; - unsigned long adbdelay; - unsigned long timedbra; -}; - -extern struct mac_booter_data - mac_bi_data; - -#endif - -/* - * Apollo-specific tags - */ - -#define BI_APOLLO_MODEL 0x8000 /* model (u_long) */ - -/* - * HP300-specific tags - */ - -#define BI_HP300_MODEL 0x8000 /* model (u_long) */ -#define BI_HP300_UART_SCODE 0x8001 /* UART select code (u_long) */ -#define BI_HP300_UART_ADDR 0x8002 /* phys. addr of UART (u_long) */ - -/* - * Stuff for bootinfo interface versioning - * - * At the start of kernel code, a 'struct bootversion' is located. - * bootstrap checks for a matching version of the interface before booting - * a kernel, to avoid user confusion if kernel and bootstrap don't work - * together :-) - * - * If incompatible changes are made to the bootinfo interface, the major - * number below should be stepped (and the minor reset to 0) for the - * appropriate machine. If a change is backward-compatible, the minor - * should be stepped. "Backwards-compatible" means that booting will work, - * but certain features may not. - */ - -#define BOOTINFOV_MAGIC 0x4249561A /* 'BIV^Z' */ -#define MK_BI_VERSION(major,minor) (((major)<<16)+(minor)) -#define BI_VERSION_MAJOR(v) (((v) >> 16) & 0xffff) -#define BI_VERSION_MINOR(v) ((v) & 0xffff) - -#ifndef __ASSEMBLY__ - -struct bootversion { - unsigned short branch; - unsigned long magic; - struct { - unsigned long machtype; - unsigned long version; - } machversions[0]; -}; - -#endif /* __ASSEMBLY__ */ - -#define AMIGA_BOOTI_VERSION MK_BI_VERSION( 2, 0 ) -#define ATARI_BOOTI_VERSION MK_BI_VERSION( 2, 1 ) -#define MAC_BOOTI_VERSION MK_BI_VERSION( 2, 0 ) -#define MVME147_BOOTI_VERSION MK_BI_VERSION( 2, 0 ) -#define MVME16x_BOOTI_VERSION MK_BI_VERSION( 2, 0 ) -#define BVME6000_BOOTI_VERSION MK_BI_VERSION( 2, 0 ) -#define Q40_BOOTI_VERSION MK_BI_VERSION( 2, 0 ) -#define HP300_BOOTI_VERSION MK_BI_VERSION( 2, 0 ) - -#ifdef BOOTINFO_COMPAT_1_0 - -/* - * Backwards compatibility with bootinfo interface version 1.0 - */ - -#define COMPAT_AMIGA_BOOTI_VERSION MK_BI_VERSION( 1, 0 ) -#define COMPAT_ATARI_BOOTI_VERSION MK_BI_VERSION( 1, 0 ) -#define COMPAT_MAC_BOOTI_VERSION MK_BI_VERSION( 1, 0 ) - -#include - -#define COMPAT_NUM_AUTO 16 - -struct compat_bi_Amiga { - int model; - int num_autocon; - struct ConfigDev autocon[COMPAT_NUM_AUTO]; - unsigned long chip_size; - unsigned char vblank; - unsigned char psfreq; - unsigned long eclock; - unsigned long chipset; - unsigned long hw_present; -}; - -struct compat_bi_Atari { - unsigned long hw_present; - unsigned long mch_cookie; -}; - -#ifndef __ASSEMBLY__ - -struct compat_bi_Macintosh -{ - unsigned long videoaddr; - unsigned long videorow; - unsigned long videodepth; - unsigned long dimensions; - unsigned long args; - unsigned long boottime; - unsigned long gmtbias; - unsigned long bootver; - unsigned long videological; - unsigned long sccbase; - unsigned long id; - unsigned long memsize; - unsigned long serialmf; - unsigned long serialhsk; - unsigned long serialgpi; - unsigned long printmf; - unsigned long printhsk; - unsigned long printgpi; - unsigned long cpuid; - unsigned long rombase; - unsigned long adbdelay; - unsigned long timedbra; -}; - -#endif - -struct compat_mem_info { - unsigned long addr; - unsigned long size; -}; - -#define COMPAT_NUM_MEMINFO 4 - -#define COMPAT_CPUB_68020 0 -#define COMPAT_CPUB_68030 1 -#define COMPAT_CPUB_68040 2 -#define COMPAT_CPUB_68060 3 -#define COMPAT_FPUB_68881 5 -#define COMPAT_FPUB_68882 6 -#define COMPAT_FPUB_68040 7 -#define COMPAT_FPUB_68060 8 - -#define COMPAT_CPU_68020 (1< - * See file CREDITS for list of people who contributed to this project. - * - * This file is part of barebox. - * - * barebox is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * barebox is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with barebox. If not, see . - */ - -/** @file - * Define byte order of target - * - * M68K is always big-endian mode. - * - * When in big endian mode, byte accesses appear as: - * 0 = d24...d31, 1 = d16...d23, 2 = d8...d15, 3 = d0...d7 - * and word accesses (data or instruction) appear as: - * d0...d31 - */ -#ifndef __ASM_M68K_BYTEORDER_H -#define __ASM_M68K_BYTEORDER_H - - -#include - -#if !defined(__STRICT_ANSI__) || defined(__KERNEL__) -# define __BYTEORDER_HAS_U64__ -# define __SWAB_64_THRU_32__ -#endif -#include - -#endif diff --git a/arch/m68k/include/asm/coldfire/mcf548x.h b/arch/m68k/include/asm/coldfire/mcf548x.h deleted file mode 100644 index 4bde42a57..000000000 --- a/arch/m68k/include/asm/coldfire/mcf548x.h +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright (c) 2008 Carsten Schlote - * See file CREDITS for list of people who contributed to this project. - * - * This file is part of barebox. - * - * barebox is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * barebox is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with barebox. If not, see . - */ - -/** @file - * Register and bit definitions for the MCF547X and MCF548X processors - */ -#ifndef __MCF548X_H__ -#define __MCF548X_H__ - -/* - * useful padding structure for register maps - */ -typedef struct -{ - vuint8_t a; - vuint16_t b; -} __attribute ((packed)) vuint24_t; - -/* - * Include all internal hardware register macros and defines for this CPU. - */ -#include "asm/coldfire/mcf548x/mcf548x_fec.h" -#include "asm/coldfire/mcf548x/mcf548x_siu.h" -#include "asm/coldfire/mcf548x/mcf548x_ctm.h" -#include "asm/coldfire/mcf548x/mcf548x_dspi.h" -#include "asm/coldfire/mcf548x/mcf548x_eport.h" -#include "asm/coldfire/mcf548x/mcf548x_fbcs.h" -#include "asm/coldfire/mcf548x/mcf548x_gpio.h" -#include "asm/coldfire/mcf548x/mcf548x_gpt.h" -#include "asm/coldfire/mcf548x/mcf548x_i2c.h" -#include "asm/coldfire/mcf548x/mcf548x_intc.h" -#include "asm/coldfire/mcf548x/mcf548x_sdramc.h" -#include "asm/coldfire/mcf548x/mcf548x_sec.h" -#include "asm/coldfire/mcf548x/mcf548x_slt.h" -#include "asm/coldfire/mcf548x/mcf548x_usb.h" -#include "asm/coldfire/mcf548x/mcf548x_psc.h" -#include "asm/coldfire/mcf548x/mcf548x_uart.h" -#include "asm/coldfire/mcf548x/mcf548x_sram.h" -#include "asm/coldfire/mcf548x/mcf548x_pci.h" -#include "asm/coldfire/mcf548x/mcf548x_pciarb.h" -#include "asm/coldfire/mcf548x/mcf548x_dma.h" -#include "asm/coldfire/mcf548x/mcf548x_dma_ereq.h" -#include "asm/coldfire/mcf548x/mcf548x_can.h" -#include "asm/coldfire/mcf548x/mcf548x_xlbarb.h" - -#endif /* __MCF548X_H__ */ diff --git a/arch/m68k/include/asm/coldfire/mcf548x/mcf548x_can.h b/arch/m68k/include/asm/coldfire/mcf548x/mcf548x_can.h deleted file mode 100644 index bb53eaa03..000000000 --- a/arch/m68k/include/asm/coldfire/mcf548x/mcf548x_can.h +++ /dev/null @@ -1,159 +0,0 @@ -/* - * Copyright (c) 2008 Carsten Schlote - * See file CREDITS for list of people who contributed to this project. - * - * This file is part of barebox. - * - * barebox is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * barebox is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with barebox. If not, see . - */ - -/** @file - * Register and bit definitions for the MCF548X and MCF547x - * CAN controllers - */ -#ifndef __MCF548X_CAN_H__ -#define __MCF548X_CAN_H__ - -/* - * FlexCAN Module (CAN) - */ - -/* Register read/write macros */ -#define MCF_CAN_CANMCR0 (*(vuint32_t*)(&__MBAR[0x00A000])) -#define MCF_CAN_CANCTRL0 (*(vuint32_t*)(&__MBAR[0x00A004])) -#define MCF_CAN_TIMER0 (*(vuint32_t*)(&__MBAR[0x00A008])) -#define MCF_CAN_RXGMASK0 (*(vuint32_t*)(&__MBAR[0x00A010])) -#define MCF_CAN_RX14MASK0 (*(vuint32_t*)(&__MBAR[0x00A014])) -#define MCF_CAN_RX15MASK0 (*(vuint32_t*)(&__MBAR[0x00A018])) -#define MCF_CAN_ERRCNT0 (*(vuint32_t*)(&__MBAR[0x00A01C])) -#define MCF_CAN_ERRSTAT0 (*(vuint32_t*)(&__MBAR[0x00A020])) -#define MCF_CAN_IMASK0 (*(vuint16_t*)(&__MBAR[0x00A02A])) -#define MCF_CAN_IFLAG0 (*(vuint16_t*)(&__MBAR[0x00A032])) -#define MCF_CAN_CANMCR1 (*(vuint32_t*)(&__MBAR[0x00A800])) -#define MCF_CAN_CANCTRL1 (*(vuint32_t*)(&__MBAR[0x00A804])) -#define MCF_CAN_TIMER1 (*(vuint32_t*)(&__MBAR[0x00A808])) -#define MCF_CAN_RXGMASK1 (*(vuint32_t*)(&__MBAR[0x00A810])) -#define MCF_CAN_RX14MASK1 (*(vuint32_t*)(&__MBAR[0x00A814])) -#define MCF_CAN_RX15MASK1 (*(vuint32_t*)(&__MBAR[0x00A818])) -#define MCF_CAN_ERRCNT1 (*(vuint32_t*)(&__MBAR[0x00A81C])) -#define MCF_CAN_ERRSTAT1 (*(vuint32_t*)(&__MBAR[0x00A820])) -#define MCF_CAN_IMASK1 (*(vuint16_t*)(&__MBAR[0x00A82A])) -#define MCF_CAN_IFLAG1 (*(vuint16_t*)(&__MBAR[0x00A832])) -#define MCF_CAN_CANMCR(x) (*(vuint32_t*)(&__MBAR[0x00A000+((x)*0x800)])) -#define MCF_CAN_CANCTRL(x) (*(vuint32_t*)(&__MBAR[0x00A004+((x)*0x800)])) -#define MCF_CAN_TIMER(x) (*(vuint32_t*)(&__MBAR[0x00A008+((x)*0x800)])) -#define MCF_CAN_RXGMASK(x) (*(vuint32_t*)(&__MBAR[0x00A010+((x)*0x800)])) -#define MCF_CAN_RX14MASK(x) (*(vuint32_t*)(&__MBAR[0x00A014+((x)*0x800)])) -#define MCF_CAN_RX15MASK(x) (*(vuint32_t*)(&__MBAR[0x00A018+((x)*0x800)])) -#define MCF_CAN_ERRCNT(x) (*(vuint32_t*)(&__MBAR[0x00A01C+((x)*0x800)])) -#define MCF_CAN_ERRSTAT(x) (*(vuint32_t*)(&__MBAR[0x00A020+((x)*0x800)])) -#define MCF_CAN_IMASK(x) (*(vuint16_t*)(&__MBAR[0x00A02A+((x)*0x800)])) -#define MCF_CAN_IFLAG(x) (*(vuint16_t*)(&__MBAR[0x00A032+((x)*0x800)])) - -/* Bit definitions and macros for MCF_CAN_CANMCR */ -#define MCF_CAN_CANMCR_MAXMB(x) (((x)&0x0000000F)<<0) -#define MCF_CAN_CANMCR_SUPV (0x00800000) -#define MCF_CAN_CANMCR_FRZACK (0x01000000) -#define MCF_CAN_CANMCR_SOFTRST (0x02000000) -#define MCF_CAN_CANMCR_HALT (0x10000000) -#define MCF_CAN_CANMCR_FRZ (0x40000000) -#define MCF_CAN_CANMCR_MDIS (0x80000000) - -/* Bit definitions and macros for MCF_CAN_CANCTRL */ -#define MCF_CAN_CANCTRL_PROPSEG(x) (((x)&0x00000007)<<0) -#define MCF_CAN_CANCTRL_LOM (0x00000008) -#define MCF_CAN_CANCTRL_LBUF (0x00000010) -#define MCF_CAN_CANCTRL_TSYNC (0x00000020) -#define MCF_CAN_CANCTRL_BOFFREC (0x00000040) -#define MCF_CAN_CANCTRL_SAMP (0x00000080) -#define MCF_CAN_CANCTRL_LPB (0x00001000) -#define MCF_CAN_CANCTRL_CLKSRC (0x00002000) -#define MCF_CAN_CANCTRL_ERRMSK (0x00004000) -#define MCF_CAN_CANCTRL_BOFFMSK (0x00008000) -#define MCF_CAN_CANCTRL_PSEG2(x) (((x)&0x00000007)<<16) -#define MCF_CAN_CANCTRL_PSEG1(x) (((x)&0x00000007)<<19) -#define MCF_CAN_CANCTRL_RJW(x) (((x)&0x00000003)<<22) -#define MCF_CAN_CANCTRL_PRESDIV(x) (((x)&0x000000FF)<<24) - -/* Bit definitions and macros for MCF_CAN_TIMER */ -#define MCF_CAN_TIMER_TIMER(x) (((x)&0x0000FFFF)<<0) - -/* Bit definitions and macros for MCF_CAN_RXGMASK */ -#define MCF_CAN_RXGMASK_MI(x) (((x)&0x1FFFFFFF)<<0) - -/* Bit definitions and macros for MCF_CAN_RX14MASK */ -#define MCF_CAN_RX14MASK_MI(x) (((x)&0x1FFFFFFF)<<0) - -/* Bit definitions and macros for MCF_CAN_RX15MASK */ -#define MCF_CAN_RX15MASK_MI(x) (((x)&0x1FFFFFFF)<<0) - -/* Bit definitions and macros for MCF_CAN_ERRCNT */ -#define MCF_CAN_ERRCNT_TXECTR(x) (((x)&0x000000FF)<<0) -#define MCF_CAN_ERRCNT_RXECTR(x) (((x)&0x000000FF)<<8) - -/* Bit definitions and macros for MCF_CAN_ERRSTAT */ -#define MCF_CAN_ERRSTAT_WAKINT (0x00000001) -#define MCF_CAN_ERRSTAT_ERRINT (0x00000002) -#define MCF_CAN_ERRSTAT_BOFFINT (0x00000004) -#define MCF_CAN_ERRSTAT_FLTCONF(x) (((x)&0x00000003)<<4) -#define MCF_CAN_ERRSTAT_TXRX (0x00000040) -#define MCF_CAN_ERRSTAT_IDLE (0x00000080) -#define MCF_CAN_ERRSTAT_RXWRN (0x00000100) -#define MCF_CAN_ERRSTAT_TXWRN (0x00000200) -#define MCF_CAN_ERRSTAT_STFERR (0x00000400) -#define MCF_CAN_ERRSTAT_FRMERR (0x00000800) -#define MCF_CAN_ERRSTAT_CRCERR (0x00001000) -#define MCF_CAN_ERRSTAT_ACKERR (0x00002000) -#define MCF_CAN_ERRSTAT_BITERR(x) (((x)&0x00000003)<<14) -#define MCF_CAN_ERRSTAT_FLTCONF_ACTIVE (0x00000000) -#define MCF_CAN_ERRSTAT_FLTCONF_PASSIVE (0x00000010) -#define MCF_CAN_ERRSTAT_FLTCONF_BUSOFF (0x00000020) - -/* Bit definitions and macros for MCF_CAN_IMASK */ -#define MCF_CAN_IMASK_BUF0M (0x0001) -#define MCF_CAN_IMASK_BUF1M (0x0002) -#define MCF_CAN_IMASK_BUF2M (0x0004) -#define MCF_CAN_IMASK_BUF3M (0x0008) -#define MCF_CAN_IMASK_BUF4M (0x0010) -#define MCF_CAN_IMASK_BUF5M (0x0020) -#define MCF_CAN_IMASK_BUF6M (0x0040) -#define MCF_CAN_IMASK_BUF7M (0x0080) -#define MCF_CAN_IMASK_BUF8M (0x0100) -#define MCF_CAN_IMASK_BUF9M (0x0200) -#define MCF_CAN_IMASK_BUF10M (0x0400) -#define MCF_CAN_IMASK_BUF11M (0x0800) -#define MCF_CAN_IMASK_BUF12M (0x1000) -#define MCF_CAN_IMASK_BUF13M (0x2000) -#define MCF_CAN_IMASK_BUF14M (0x4000) -#define MCF_CAN_IMASK_BUF15M (0x8000) - -/* Bit definitions and macros for MCF_CAN_IFLAG */ -#define MCF_CAN_IFLAG_BUF0I (0x0001) -#define MCF_CAN_IFLAG_BUF1I (0x0002) -#define MCF_CAN_IFLAG_BUF2I (0x0004) -#define MCF_CAN_IFLAG_BUF3I (0x0008) -#define MCF_CAN_IFLAG_BUF4I (0x0010) -#define MCF_CAN_IFLAG_BUF5I (0x0020) -#define MCF_CAN_IFLAG_BUF6I (0x0040) -#define MCF_CAN_IFLAG_BUF7I (0x0080) -#define MCF_CAN_IFLAG_BUF8I (0x0100) -#define MCF_CAN_IFLAG_BUF9I (0x0200) -#define MCF_CAN_IFLAG_BUF10I (0x0400) -#define MCF_CAN_IFLAG_BUF11I (0x0800) -#define MCF_CAN_IFLAG_BUF12I (0x1000) -#define MCF_CAN_IFLAG_BUF13I (0x2000) -#define MCF_CAN_IFLAG_BUF14I (0x4000) -#define MCF_CAN_IFLAG_BUF15I (0x8000) - -#endif /* __MCF548X_CAN_H__ */ diff --git a/arch/m68k/include/asm/coldfire/mcf548x/mcf548x_ctm.h b/arch/m68k/include/asm/coldfire/mcf548x/mcf548x_ctm.h deleted file mode 100644 index 6c779ec73..000000000 --- a/arch/m68k/include/asm/coldfire/mcf548x/mcf548x_ctm.h +++ /dev/null @@ -1,88 +0,0 @@ -/* - * Copyright (c) 2008 Carsten Schlote - * See file CREDITS for list of people who contributed to this project. - * - * This file is part of barebox. - * - * barebox is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * barebox is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with barebox. If not, see . - */ - -/** @file - * Register and bit definitions for the MCF548X and MCF547x - * Common Timer Module - */ -#ifndef __MCF548X_CTM_H__ -#define __MCF548X_CTM_H__ - -/* - * Comm Timer Module (CTM) - */ - -/* Register read/write macros */ -#define MCF_CTM_CTCRF0 (*(vuint32_t*)(&__MBAR[0x007F00])) -#define MCF_CTM_CTCRF1 (*(vuint32_t*)(&__MBAR[0x007F04])) -#define MCF_CTM_CTCRF2 (*(vuint32_t*)(&__MBAR[0x007F08])) -#define MCF_CTM_CTCRF3 (*(vuint32_t*)(&__MBAR[0x007F0C])) -#define MCF_CTM_CTCRFn(x) (*(vuint32_t*)(&__MBAR[0x007F00+((x)*0x004)])) -#define MCF_CTM_CTCRV4 (*(vuint32_t*)(&__MBAR[0x007F10])) -#define MCF_CTM_CTCRV5 (*(vuint32_t*)(&__MBAR[0x007F14])) -#define MCF_CTM_CTCRV6 (*(vuint32_t*)(&__MBAR[0x007F18])) -#define MCF_CTM_CTCRV7 (*(vuint32_t*)(&__MBAR[0x007F1C])) -#define MCF_CTM_CTCRVn(x) (*(vuint32_t*)(&__MBAR[0x007F10+((x)*0x004)])) - -/* Bit definitions and macros for MCF_CTM_CTCRFn */ -#define MCF_CTM_CTCRFn_CRV(x) (((x)&0x0000FFFF)<<0) -#define MCF_CTM_CTCRFn_S(x) (((x)&0x0000000F)<<16) -#define MCF_CTM_CTCRFn_PCT(x) (((x)&0x00000007)<<20) -#define MCF_CTM_CTCRFn_M (0x00800000) -#define MCF_CTM_CTCRFn_IM (0x01000000) -#define MCF_CTM_CTCRFn_I (0x80000000) -#define MCF_CTM_CTCRFn_PCT_100 (0x00000000) -#define MCF_CTM_CTCRFn_PCT_50 (0x00100000) -#define MCF_CTM_CTCRFn_PCT_25 (0x00200000) -#define MCF_CTM_CTCRFn_PCT_12p5 (0x00300000) -#define MCF_CTM_CTCRFn_PCT_6p25 (0x00400000) -#define MCF_CTM_CTCRFn_PCT_OFF (0x00500000) -#define MCF_CTM_CTCRFn_S_CLK_1 (0x00000000) -#define MCF_CTM_CTCRFn_S_CLK_2 (0x00010000) -#define MCF_CTM_CTCRFn_S_CLK_4 (0x00020000) -#define MCF_CTM_CTCRFn_S_CLK_8 (0x00030000) -#define MCF_CTM_CTCRFn_S_CLK_16 (0x00040000) -#define MCF_CTM_CTCRFn_S_CLK_32 (0x00050000) -#define MCF_CTM_CTCRFn_S_CLK_64 (0x00060000) -#define MCF_CTM_CTCRFn_S_CLK_128 (0x00070000) -#define MCF_CTM_CTCRFn_S_CLK_256 (0x00080000) - -/* Bit definitions and macros for MCF_CTM_CTCRVn */ -#define MCF_CTM_CTCRVn_CRV(x) (((x)&0x00FFFFFF)<<0) -#define MCF_CTM_CTCRVn_PCT(x) (((x)&0x00000007)<<24) -#define MCF_CTM_CTCRVn_M (0x08000000) -#define MCF_CTM_CTCRVn_S(x) (((x)&0x0000000F)<<28) -#define MCF_CTM_CTCRVn_S_CLK_1 (0x00000000) -#define MCF_CTM_CTCRVn_S_CLK_2 (0x10000000) -#define MCF_CTM_CTCRVn_S_CLK_4 (0x20000000) -#define MCF_CTM_CTCRVn_S_CLK_8 (0x30000000) -#define MCF_CTM_CTCRVn_S_CLK_16 (0x40000000) -#define MCF_CTM_CTCRVn_S_CLK_32 (0x50000000) -#define MCF_CTM_CTCRVn_S_CLK_64 (0x60000000) -#define MCF_CTM_CTCRVn_S_CLK_128 (0x70000000) -#define MCF_CTM_CTCRVn_S_CLK_256 (0x80000000) -#define MCF_CTM_CTCRVn_PCT_100 (0x00000000) -#define MCF_CTM_CTCRVn_PCT_50 (0x01000000) -#define MCF_CTM_CTCRVn_PCT_25 (0x02000000) -#define MCF_CTM_CTCRVn_PCT_12p5 (0x03000000) -#define MCF_CTM_CTCRVn_PCT_6p25 (0x04000000) -#define MCF_CTM_CTCRVn_PCT_OFF (0x05000000) - -#endif /* __MCF548X_CTM_H__ */ diff --git a/arch/m68k/include/asm/coldfire/mcf548x/mcf548x_dma.h b/arch/m68k/include/asm/coldfire/mcf548x/mcf548x_dma.h deleted file mode 100644 index 4229c3675..000000000 --- a/arch/m68k/include/asm/coldfire/mcf548x/mcf548x_dma.h +++ /dev/null @@ -1,121 +0,0 @@ -/* - * Copyright (c) 2008 Carsten Schlote - * See file CREDITS for list of people who contributed to this project. - * - * This file is part of barebox. - * - * barebox is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * barebox is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with barebox. If not, see . - */ - -/** @file - * Register and bit definitions for the MCF548X and MCF547x - * Multichannel DMA - */ -#ifndef __MCF548X_DMA_H__ -#define __MCF548X_DMA_H__ - -/* - * Multi-Channel DMA (DMA) - */ - -/* Register read/write macros */ -#define MCF_DMA_DIPR (*(vuint32_t*)(&__MBAR[0x008014])) -#define MCF_DMA_DIMR (*(vuint32_t*)(&__MBAR[0x008018])) -#define MCF_DMA_IMCR (*(vuint32_t*)(&__MBAR[0x00805C])) - -/* Bit definitions and macros for MCF_DMA_DIPR */ -#define MCF_DMA_DIPR_TASK0 (0x00000001) -#define MCF_DMA_DIPR_TASK1 (0x00000002) -#define MCF_DMA_DIPR_TASK2 (0x00000004) -#define MCF_DMA_DIPR_TASK3 (0x00000008) -#define MCF_DMA_DIPR_TASK4 (0x00000010) -#define MCF_DMA_DIPR_TASK5 (0x00000020) -#define MCF_DMA_DIPR_TASK6 (0x00000040) -#define MCF_DMA_DIPR_TASK7 (0x00000080) -#define MCF_DMA_DIPR_TASK8 (0x00000100) -#define MCF_DMA_DIPR_TASK9 (0x00000200) -#define MCF_DMA_DIPR_TASK10 (0x00000400) -#define MCF_DMA_DIPR_TASK11 (0x00000800) -#define MCF_DMA_DIPR_TASK12 (0x00001000) -#define MCF_DMA_DIPR_TASK13 (0x00002000) -#define MCF_DMA_DIPR_TASK14 (0x00004000) -#define MCF_DMA_DIPR_TASK15 (0x00008000) - -/* Bit definitions and macros for MCF_DMA_DIMR */ -#define MCF_DMA_DIMR_TASK0 (0x00000001) -#define MCF_DMA_DIMR_TASK1 (0x00000002) -#define MCF_DMA_DIMR_TASK2 (0x00000004) -#define MCF_DMA_DIMR_TASK3 (0x00000008) -#define MCF_DMA_DIMR_TASK4 (0x00000010) -#define MCF_DMA_DIMR_TASK5 (0x00000020) -#define MCF_DMA_DIMR_TASK6 (0x00000040) -#define MCF_DMA_DIMR_TASK7 (0x00000080) -#define MCF_DMA_DIMR_TASK8 (0x00000100) -#define MCF_DMA_DIMR_TASK9 (0x00000200) -#define MCF_DMA_DIMR_TASK10 (0x00000400) -#define MCF_DMA_DIMR_TASK11 (0x00000800) -#define MCF_DMA_DIMR_TASK12 (0x00001000) -#define MCF_DMA_DIMR_TASK13 (0x00002000) -#define MCF_DMA_DIMR_TASK14 (0x00004000) -#define MCF_DMA_DIMR_TASK15 (0x00008000) - -/* Bit definitions and macros for MCF_DMA_IMCR */ -#define MCF_DMA_IMCR_SRC16(x) (((x)&0x00000003)<<0) -#define MCF_DMA_IMCR_SRC17(x) (((x)&0x00000003)<<2) -#define MCF_DMA_IMCR_SRC18(x) (((x)&0x00000003)<<4) -#define MCF_DMA_IMCR_SRC19(x) (((x)&0x00000003)<<6) -#define MCF_DMA_IMCR_SRC20(x) (((x)&0x00000003)<<8) -#define MCF_DMA_IMCR_SRC21(x) (((x)&0x00000003)<<10) -#define MCF_DMA_IMCR_SRC22(x) (((x)&0x00000003)<<12) -#define MCF_DMA_IMCR_SRC23(x) (((x)&0x00000003)<<14) -#define MCF_DMA_IMCR_SRC24(x) (((x)&0x00000003)<<16) -#define MCF_DMA_IMCR_SRC25(x) (((x)&0x00000003)<<18) -#define MCF_DMA_IMCR_SRC26(x) (((x)&0x00000003)<<20) -#define MCF_DMA_IMCR_SRC27(x) (((x)&0x00000003)<<22) -#define MCF_DMA_IMCR_SRC28(x) (((x)&0x00000003)<<24) -#define MCF_DMA_IMCR_SRC29(x) (((x)&0x00000003)<<26) -#define MCF_DMA_IMCR_SRC30(x) (((x)&0x00000003)<<28) -#define MCF_DMA_IMCR_SRC31(x) (((x)&0x00000003)<<30) -#define MCF_DMA_IMCR_SRC16_FEC0RX (0x00000000) -#define MCF_DMA_IMCR_SRC17_FEC0TX (0x00000000) -#define MCF_DMA_IMCR_SRC18_FEC0RX (0x00000020) -#define MCF_DMA_IMCR_SRC19_FEC0TX (0x00000080) -#define MCF_DMA_IMCR_SRC20_FEC1RX (0x00000100) -#define MCF_DMA_IMCR_SRC21_DREQ1 (0x00000000) -#define MCF_DMA_IMCR_SRC21_FEC1TX (0x00000400) -#define MCF_DMA_IMCR_SRC22_FEC0RX (0x00001000) -#define MCF_DMA_IMCR_SRC23_FEC0TX (0x00004000) -#define MCF_DMA_IMCR_SRC24_CTM0 (0x00010000) -#define MCF_DMA_IMCR_SRC24_FEC1RX (0x00020000) -#define MCF_DMA_IMCR_SRC25_CTM1 (0x00040000) -#define MCF_DMA_IMCR_SRC25_FEC1TX (0x00080000) -#define MCF_DMA_IMCR_SRC26_USBEP4 (0x00000000) -#define MCF_DMA_IMCR_SRC26_CTM2 (0x00200000) -#define MCF_DMA_IMCR_SRC27_USBEP5 (0x00000000) -#define MCF_DMA_IMCR_SRC27_CTM3 (0x00800000) -#define MCF_DMA_IMCR_SRC28_USBEP6 (0x00000000) -#define MCF_DMA_IMCR_SRC28_CTM4 (0x01000000) -#define MCF_DMA_IMCR_SRC28_DREQ1 (0x02000000) -#define MCF_DMA_IMCR_SRC28_PSC2RX (0x03000000) -#define MCF_DMA_IMCR_SRC29_DREQ1 (0x04000000) -#define MCF_DMA_IMCR_SRC29_CTM5 (0x08000000) -#define MCF_DMA_IMCR_SRC29_PSC2TX (0x0C000000) -#define MCF_DMA_IMCR_SRC30_FEC1RX (0x00000000) -#define MCF_DMA_IMCR_SRC30_CTM6 (0x10000000) -#define MCF_DMA_IMCR_SRC30_PSC3RX (0x30000000) -#define MCF_DMA_IMCR_SRC31_FEC1TX (0x00000000) -#define MCF_DMA_IMCR_SRC31_CTM7 (0x80000000) -#define MCF_DMA_IMCR_SRC31_PSC3TX (0xC0000000) - -#endif /* __MCF548X_DMA_H__ */ diff --git a/arch/m68k/include/asm/coldfire/mcf548x/mcf548x_dma_ereq.h b/arch/m68k/include/asm/coldfire/mcf548x/mcf548x_dma_ereq.h deleted file mode 100644 index 8eac58bfe..000000000 --- a/arch/m68k/include/asm/coldfire/mcf548x/mcf548x_dma_ereq.h +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Copyright (c) 2008 Carsten Schlote - * See file CREDITS for list of people who contributed to this project. - * - * This file is part of barebox. - * - * barebox is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * barebox is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with barebox. If not, see . - */ - -/** @file - * Register and bit definitions for the MCF548X and MCF547x - * Multi-Channel DMA External Requests (DMA_EREQ) - */ -#ifndef __MCF548X_DMA_EREQ_H__ -#define __MCF548X_DMA_EREQ_H__ - -/* - * Multi-Channel DMA External Requests (DMA_EREQ) - */ - -/* Register read/write macros */ -#define MCF_DMA_EREQ_EREQBAR0 (*(vuint32_t*)(&__MBAR[0x000D00])) -#define MCF_DMA_EREQ_EREQMASK0 (*(vuint32_t*)(&__MBAR[0x000D04])) -#define MCF_DMA_EREQ_EREQCTRL0 (*(vuint32_t*)(&__MBAR[0x000D08])) -#define MCF_DMA_EREQ_EREQBAR1 (*(vuint32_t*)(&__MBAR[0x000D10])) -#define MCF_DMA_EREQ_EREQMASK1 (*(vuint32_t*)(&__MBAR[0x000D14])) -#define MCF_DMA_EREQ_EREQCTRL1 (*(vuint32_t*)(&__MBAR[0x000D18])) -#define MCF_DMA_EREQ_EREQBAR(x) (*(vuint32_t*)(&__MBAR[0x000D00+((x)*0x010)])) -#define MCF_DMA_EREQ_EREQMASK(x) (*(vuint32_t*)(&__MBAR[0x000D04+((x)*0x010)])) -#define MCF_DMA_EREQ_EREQCTRL(x) (*(vuint32_t*)(&__MBAR[0x000D08+((x)*0x010)])) - -/* Bit definitions and macros for MCF_DMA_EREQ_EREQCTRL */ -#define MCF_DMA_EREQ_EREQCTRL_EN (0x00000001) -#define MCF_DMA_EREQ_EREQCTRL_SYNC (0x00000002) -#define MCF_DMA_EREQ_EREQCTRL_DACKWID(x) (((x)&0x00000003)<<2) -#define MCF_DMA_EREQ_EREQCTRL_BSEL(x) (((x)&0x00000003)<<4) -#define MCF_DMA_EREQ_EREQCTRL_MD(x) (((x)&0x00000003)<<6) -#define MCF_DMA_EREQ_EREQCTRL_MD_IDLE (0x00000000) -#define MCF_DMA_EREQ_EREQCTRL_MD_LEVEL (0x00000040) -#define MCF_DMA_EREQ_EREQCTRL_MD_EDGE (0x00000080) -#define MCF_DMA_EREQ_EREQCTRL_MD_PIPED (0x000000C0) -#define MCF_DMA_EREQ_EREQCTRL_BSEL_MEM_WRITE (0x00000000) -#define MCF_DMA_EREQ_EREQCTRL_BSEL_MEM_READ (0x00000010) -#define MCF_DMA_EREQ_EREQCTRL_BSEL_PERIPH_WRITE (0x00000020) -#define MCF_DMA_EREQ_EREQCTRL_BSEL_PERIPH_READ (0x00000030) -#define MCF_DMA_EREQ_EREQCTRL_DACKWID_ONE (0x00000000) -#define MCF_DMA_EREQ_EREQCTRL_DACKWID_TWO (0x00000004) -#define MCF_DMA_EREQ_EREQCTRL_DACKWID_THREE (0x00000008) -#define MCF_DMA_EREQ_EREQCTRL_DACKWID_FOUR (0x0000000C) - -#endif /* __MCF548X_DMA_EREQ_H__ */ diff --git a/arch/m68k/include/asm/coldfire/mcf548x/mcf548x_dspi.h b/arch/m68k/include/asm/coldfire/mcf548x/mcf548x_dspi.h deleted file mode 100644 index 889e75bc1..000000000 --- a/arch/m68k/include/asm/coldfire/mcf548x/mcf548x_dspi.h +++ /dev/null @@ -1,155 +0,0 @@ -/* - * Copyright (c) 2008 Carsten Schlote - * See file CREDITS for list of people who contributed to this project. - * - * This file is part of barebox. - * - * barebox is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * barebox is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with barebox. If not, see . - */ - -/** @file - * Register and bit definitions for the MCF548X and MCF547x - * DMA Serial Peripheral Interface (DSPI) - */ -#ifndef __MCF548X_DSPI_H__ -#define __MCF548X_DSPI_H__ - -/* - * DMA Serial Peripheral Interface (DSPI) - */ - -/* Register read/write macros */ -#define MCF_DSPI_DMCR (*(vuint32_t*)(&__MBAR[0x008A00])) -#define MCF_DSPI_DTCR (*(vuint32_t*)(&__MBAR[0x008A08])) -#define MCF_DSPI_DCTAR0 (*(vuint32_t*)(&__MBAR[0x008A0C])) -#define MCF_DSPI_DCTAR1 (*(vuint32_t*)(&__MBAR[0x008A10])) -#define MCF_DSPI_DCTAR2 (*(vuint32_t*)(&__MBAR[0x008A14])) -#define MCF_DSPI_DCTAR3 (*(vuint32_t*)(&__MBAR[0x008A18])) -#define MCF_DSPI_DCTAR4 (*(vuint32_t*)(&__MBAR[0x008A1C])) -#define MCF_DSPI_DCTAR5 (*(vuint32_t*)(&__MBAR[0x008A20])) -#define MCF_DSPI_DCTAR6 (*(vuint32_t*)(&__MBAR[0x008A24])) -#define MCF_DSPI_DCTAR7 (*(vuint32_t*)(&__MBAR[0x008A28])) -#define MCF_DSPI_DCTARn(x) (*(vuint32_t*)(&__MBAR[0x008A0C+((x)*0x004)])) -#define MCF_DSPI_DSR (*(vuint32_t*)(&__MBAR[0x008A2C])) -#define MCF_DSPI_DIRSR (*(vuint32_t*)(&__MBAR[0x008A30])) -#define MCF_DSPI_DTFR (*(vuint32_t*)(&__MBAR[0x008A34])) -#define MCF_DSPI_DRFR (*(vuint32_t*)(&__MBAR[0x008A38])) -#define MCF_DSPI_DTFDR0 (*(vuint32_t*)(&__MBAR[0x008A3C])) -#define MCF_DSPI_DTFDR1 (*(vuint32_t*)(&__MBAR[0x008A40])) -#define MCF_DSPI_DTFDR2 (*(vuint32_t*)(&__MBAR[0x008A44])) -#define MCF_DSPI_DTFDR3 (*(vuint32_t*)(&__MBAR[0x008A48])) -#define MCF_DSPI_DTFDRn(x) (*(vuint32_t*)(&__MBAR[0x008A3C+((x)*0x004)])) -#define MCF_DSPI_DRFDR0 (*(vuint32_t*)(&__MBAR[0x008A7C])) -#define MCF_DSPI_DRFDR1 (*(vuint32_t*)(&__MBAR[0x008A80])) -#define MCF_DSPI_DRFDR2 (*(vuint32_t*)(&__MBAR[0x008A84])) -#define MCF_DSPI_DRFDR3 (*(vuint32_t*)(&__MBAR[0x008A88])) -#define MCF_DSPI_DRFDRn(x) (*(vuint32_t*)(&__MBAR[0x008A7C+((x)*0x004)])) - -/* Bit definitions and macros for MCF_DSPI_DMCR */ -#define MCF_DSPI_DMCR_HALT (0x00000001) -#define MCF_DSPI_DMCR_SMPL_PT(x) (((x)&0x00000003)<<8) -#define MCF_DSPI_DMCR_CRXF (0x00000400) -#define MCF_DSPI_DMCR_CTXF (0x00000800) -#define MCF_DSPI_DMCR_DRXF (0x00001000) -#define MCF_DSPI_DMCR_DTXF (0x00002000) -#define MCF_DSPI_DMCR_CSIS0 (0x00010000) -#define MCF_DSPI_DMCR_CSIS2 (0x00040000) -#define MCF_DSPI_DMCR_CSIS3 (0x00080000) -#define MCF_DSPI_DMCR_CSIS5 (0x00200000) -#define MCF_DSPI_DMCR_ROOE (0x01000000) -#define MCF_DSPI_DMCR_PCSSE (0x02000000) -#define MCF_DSPI_DMCR_MTFE (0x04000000) -#define MCF_DSPI_DMCR_FRZ (0x08000000) -#define MCF_DSPI_DMCR_DCONF(x) (((x)&0x00000003)<<28) -#define MCF_DSPI_DMCR_CSCK (0x40000000) -#define MCF_DSPI_DMCR_MSTR (0x80000000) - -/* Bit definitions and macros for MCF_DSPI_DTCR */ -#define MCF_DSPI_DTCR_SPI_TCNT(x) (((x)&0x0000FFFF)<<16) - -/* Bit definitions and macros for MCF_DSPI_DCTARn */ -#define MCF_DSPI_DCTARn_BR(x) (((x)&0x0000000F)<<0) -#define MCF_DSPI_DCTARn_DT(x) (((x)&0x0000000F)<<4) -#define MCF_DSPI_DCTARn_ASC(x) (((x)&0x0000000F)<<8) -#define MCF_DSPI_DCTARn_CSSCK(x) (((x)&0x0000000F)<<12) -#define MCF_DSPI_DCTARn_PBR(x) (((x)&0x00000003)<<16) -#define MCF_DSPI_DCTARn_PDT(x) (((x)&0x00000003)<<18) -#define MCF_DSPI_DCTARn_PASC(x) (((x)&0x00000003)<<20) -#define MCF_DSPI_DCTARn_PCSSCK(x) (((x)&0x00000003)<<22) -#define MCF_DSPI_DCTARn_LSBFE (0x01000000) -#define MCF_DSPI_DCTARn_CPHA (0x02000000) -#define MCF_DSPI_DCTARn_CPOL (0x04000000) -#define MCF_DSPI_DCTARn_TRSZ(x) (((x)&0x0000000F)<<27) -#define MCF_DSPI_DCTARn_PCSSCK_1CLK (0x00000000) -#define MCF_DSPI_DCTARn_PCSSCK_3CLK (0x00400000) -#define MCF_DSPI_DCTARn_PCSSCK_5CLK (0x00800000) -#define MCF_DSPI_DCTARn_PCSSCK_7CLK (0x00A00000) -#define MCF_DSPI_DCTARn_PASC_1CLK (0x00000000) -#define MCF_DSPI_DCTARn_PASC_3CLK (0x00100000) -#define MCF_DSPI_DCTARn_PASC_5CLK (0x00200000) -#define MCF_DSPI_DCTARn_PASC_7CLK (0x00300000) -#define MCF_DSPI_DCTARn_PDT_1CLK (0x00000000) -#define MCF_DSPI_DCTARn_PDT_3CLK (0x00040000) -#define MCF_DSPI_DCTARn_PDT_5CLK (0x00080000) -#define MCF_DSPI_DCTARn_PDT_7CLK (0x000A0000) -#define MCF_DSPI_DCTARn_PBR_1CLK (0x00000000) -#define MCF_DSPI_DCTARn_PBR_3CLK (0x00010000) -#define MCF_DSPI_DCTARn_PBR_5CLK (0x00020000) -#define MCF_DSPI_DCTARn_PBR_7CLK (0x00030000) - -/* Bit definitions and macros for MCF_DSPI_DSR */ -#define MCF_DSPI_DSR_RXPTR(x) (((x)&0x0000000F)<<0) -#define MCF_DSPI_DSR_RXCTR(x) (((x)&0x0000000F)<<4) -#define MCF_DSPI_DSR_TXPTR(x) (((x)&0x0000000F)<<8) -#define MCF_DSPI_DSR_TXCTR(x) (((x)&0x0000000F)<<12) -#define MCF_DSPI_DSR_RFDF (0x00020000) -#define MCF_DSPI_DSR_RFOF (0x00080000) -#define MCF_DSPI_DSR_TFFF (0x02000000) -#define MCF_DSPI_DSR_TFUF (0x08000000) -#define MCF_DSPI_DSR_EOQF (0x10000000) -#define MCF_DSPI_DSR_TXRXS (0x40000000) -#define MCF_DSPI_DSR_TCF (0x80000000) - -/* Bit definitions and macros for MCF_DSPI_DIRSR */ -#define MCF_DSPI_DIRSR_RFDFS (0x00010000) -#define MCF_DSPI_DIRSR_RFDFE (0x00020000) -#define MCF_DSPI_DIRSR_RFOFE (0x00080000) -#define MCF_DSPI_DIRSR_TFFFS (0x01000000) -#define MCF_DSPI_DIRSR_TFFFE (0x02000000) -#define MCF_DSPI_DIRSR_TFUFE (0x08000000) -#define MCF_DSPI_DIRSR_EOQFE (0x10000000) -#define MCF_DSPI_DIRSR_TCFE (0x80000000) - -/* Bit definitions and macros for MCF_DSPI_DTFR */ -#define MCF_DSPI_DTFR_TXDATA(x) (((x)&0x0000FFFF)<<0) -#define MCF_DSPI_DTFR_CS0 (0x00010000) -#define MCF_DSPI_DTFR_CS2 (0x00040000) -#define MCF_DSPI_DTFR_CS3 (0x00080000) -#define MCF_DSPI_DTFR_CS5 (0x00200000) -#define MCF_DSPI_DTFR_CTCNT (0x04000000) -#define MCF_DSPI_DTFR_EOQ (0x08000000) -#define MCF_DSPI_DTFR_CTAS(x) (((x)&0x00000007)<<28) -#define MCF_DSPI_DTFR_CONT (0x80000000) - -/* Bit definitions and macros for MCF_DSPI_DRFR */ -#define MCF_DSPI_DRFR_RXDATA(x) (((x)&0x0000FFFF)<<0) - -/* Bit definitions and macros for MCF_DSPI_DTFDRn */ -#define MCF_DSPI_DTFDRn_TXDATA(x) (((x)&0x0000FFFF)<<0) -#define MCF_DSPI_DTFDRn_TXCMD(x) (((x)&0x0000FFFF)<<16) - -/* Bit definitions and macros for MCF_DSPI_DRFDRn */ -#define MCF_DSPI_DRFDRn_RXDATA(x) (((x)&0x0000FFFF)<<0) - -#endif /* __MCF548X_DSPI_H__ */ diff --git a/arch/m68k/include/asm/coldfire/mcf548x/mcf548x_eport.h b/arch/m68k/include/asm/coldfire/mcf548x/mcf548x_eport.h deleted file mode 100644 index 94f724fa2..000000000 --- a/arch/m68k/include/asm/coldfire/mcf548x/mcf548x_eport.h +++ /dev/null @@ -1,98 +0,0 @@ -/* - * Copyright (c) 2008 Carsten Schlote - * See file CREDITS for list of people who contributed to this project. - * - * This file is part of barebox. - * - * barebox is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * barebox is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with barebox. If not, see . - */ - -/** @file - * Register and bit definitions for the MCF548X and MCF547x - * Edge Port Module (EPORT) - */ -#ifndef __MCF548X_EPORT_H__ -#define __MCF548X_EPORT_H__ - -/* - * Edge Port Module (EPORT) - */ - -/* Register read/write macros */ -#define MCF_EPORT_EPPAR (*(vuint16_t*)(&__MBAR[0x000F00])) -#define MCF_EPORT_EPDDR (*(vuint8_t *)(&__MBAR[0x000F04])) -#define MCF_EPORT_EPIER (*(vuint8_t *)(&__MBAR[0x000F05])) -#define MCF_EPORT_EPDR (*(vuint8_t *)(&__MBAR[0x000F08])) -#define MCF_EPORT_EPPDR (*(vuint8_t *)(&__MBAR[0x000F09])) -#define MCF_EPORT_EPFR (*(vuint8_t *)(&__MBAR[0x000F0C])) - -/* Bit definitions and macros for MCF_EPORT_EPPAR */ -#define MCF_EPORT_EPPAR_EPPA1(x) (((x)&0x0003)<<2) -#define MCF_EPORT_EPPAR_EPPA2(x) (((x)&0x0003)<<4) -#define MCF_EPORT_EPPAR_EPPA3(x) (((x)&0x0003)<<6) -#define MCF_EPORT_EPPAR_EPPA4(x) (((x)&0x0003)<<8) -#define MCF_EPORT_EPPAR_EPPA5(x) (((x)&0x0003)<<10) -#define MCF_EPORT_EPPAR_EPPA6(x) (((x)&0x0003)<<12) -#define MCF_EPORT_EPPAR_EPPA7(x) (((x)&0x0003)<<14) -#define MCF_EPORT_EPPAR_EPPAx_LEVEL (0) -#define MCF_EPORT_EPPAR_EPPAx_RISING (1) -#define MCF_EPORT_EPPAR_EPPAx_FALLING (2) -#define MCF_EPORT_EPPAR_EPPAx_BOTH (3) - -/* Bit definitions and macros for MCF_EPORT_EPDDR */ -#define MCF_EPORT_EPDDR_EPDD1 (0x02) -#define MCF_EPORT_EPDDR_EPDD2 (0x04) -#define MCF_EPORT_EPDDR_EPDD3 (0x08) -#define MCF_EPORT_EPDDR_EPDD4 (0x10) -#define MCF_EPORT_EPDDR_EPDD5 (0x20) -#define MCF_EPORT_EPDDR_EPDD6 (0x40) -#define MCF_EPORT_EPDDR_EPDD7 (0x80) - -/* Bit definitions and macros for MCF_EPORT_EPIER */ -#define MCF_EPORT_EPIER_EPIE1 (0x02) -#define MCF_EPORT_EPIER_EPIE2 (0x04) -#define MCF_EPORT_EPIER_EPIE3 (0x08) -#define MCF_EPORT_EPIER_EPIE4 (0x10) -#define MCF_EPORT_EPIER_EPIE5 (0x20) -#define MCF_EPORT_EPIER_EPIE6 (0x40) -#define MCF_EPORT_EPIER_EPIE7 (0x80) - -/* Bit definitions and macros for MCF_EPORT_EPDR */ -#define MCF_EPORT_EPDR_EPD1 (0x02) -#define MCF_EPORT_EPDR_EPD2 (0x04) -#define MCF_EPORT_EPDR_EPD3 (0x08) -#define MCF_EPORT_EPDR_EPD4 (0x10) -#define MCF_EPORT_EPDR_EPD5 (0x20) -#define MCF_EPORT_EPDR_EPD6 (0x40) -#define MCF_EPORT_EPDR_EPD7 (0x80) - -/* Bit definitions and macros for MCF_EPORT_EPPDR */ -#define MCF_EPORT_EPPDR_EPPD1 (0x02) -#define MCF_EPORT_EPPDR_EPPD2 (0x04) -#define MCF_EPORT_EPPDR_EPPD3 (0x08) -#define MCF_EPORT_EPPDR_EPPD4 (0x10) -#define MCF_EPORT_EPPDR_EPPD5 (0x20) -#define MCF_EPORT_EPPDR_EPPD6 (0x40) -#define MCF_EPORT_EPPDR_EPPD7 (0x80) - -/* Bit definitions and macros for MCF_EPORT_EPFR */ -#define MCF_EPORT_EPFR_EPF1 (0x02) -#define MCF_EPORT_EPFR_EPF2 (0x04) -#define MCF_EPORT_EPFR_EPF3 (0x08) -#define MCF_EPORT_EPFR_EPF4 (0x10) -#define MCF_EPORT_EPFR_EPF5 (0x20) -#define MCF_EPORT_EPFR_EPF6 (0x40) -#define MCF_EPORT_EPFR_EPF7 (0x80) - -#endif /* __MCF548X_EPORT_H__ */ diff --git a/arch/m68k/include/asm/coldfire/mcf548x/mcf548x_fbcs.h b/arch/m68k/include/asm/coldfire/mcf548x/mcf548x_fbcs.h deleted file mode 100644 index 1e11944c4..000000000 --- a/arch/m68k/include/asm/coldfire/mcf548x/mcf548x_fbcs.h +++ /dev/null @@ -1,97 +0,0 @@ -/* - * Copyright (c) 2008 Carsten Schlote - * See file CREDITS for list of people who contributed to this project. - * - * This file is part of barebox. - * - * barebox is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * barebox is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with barebox. If not, see . - */ - -/** @file - * Register and bit definitions for the MCF548X and MCF547x - * FlexBus Chip Selects (FBCS) - */ -#ifndef __MCF548X_FBCS_H__ -#define __MCF548X_FBCS_H__ - -/* - * FlexBus Chip Selects (FBCS) - */ - -/* Register read/write macros */ -#define MCF_FBCS_CSAR0 (*(vuint32_t*)(&__MBAR[0x000500])) -#define MCF_FBCS_CSMR0 (*(vuint32_t*)(&__MBAR[0x000504])) -#define MCF_FBCS_CSCR0 (*(vuint32_t*)(&__MBAR[0x000508])) -#define MCF_FBCS_CSAR1 (*(vuint32_t*)(&__MBAR[0x00050C])) -#define MCF_FBCS_CSMR1 (*(vuint32_t*)(&__MBAR[0x000510])) -#define MCF_FBCS_CSCR1 (*(vuint32_t*)(&__MBAR[0x000514])) -#define MCF_FBCS_CSAR2 (*(vuint32_t*)(&__MBAR[0x000518])) -#define MCF_FBCS_CSMR2 (*(vuint32_t*)(&__MBAR[0x00051C])) -#define MCF_FBCS_CSCR2 (*(vuint32_t*)(&__MBAR[0x000520])) -#define MCF_FBCS_CSAR3 (*(vuint32_t*)(&__MBAR[0x000524])) -#define MCF_FBCS_CSMR3 (*(vuint32_t*)(&__MBAR[0x000528])) -#define MCF_FBCS_CSCR3 (*(vuint32_t*)(&__MBAR[0x00052C])) -#define MCF_FBCS_CSAR4 (*(vuint32_t*)(&__MBAR[0x000530])) -#define MCF_FBCS_CSMR4 (*(vuint32_t*)(&__MBAR[0x000534])) -#define MCF_FBCS_CSCR4 (*(vuint32_t*)(&__MBAR[0x000538])) -#define MCF_FBCS_CSAR5 (*(vuint32_t*)(&__MBAR[0x00053C])) -#define MCF_FBCS_CSMR5 (*(vuint32_t*)(&__MBAR[0x000540])) -#define MCF_FBCS_CSCR5 (*(vuint32_t*)(&__MBAR[0x000544])) -#define MCF_FBCS_CSAR(x) (*(vuint32_t*)(&__MBAR[0x000500+((x)*0x00C)])) -#define MCF_FBCS_CSMR(x) (*(vuint32_t*)(&__MBAR[0x000504+((x)*0x00C)])) -#define MCF_FBCS_CSCR(x) (*(vuint32_t*)(&__MBAR[0x000508+((x)*0x00C)])) - -/* Bit definitions and macros for MCF_FBCS_CSAR */ -#define MCF_FBCS_CSAR_BA(x) ((x)&0xFFFF0000) - -/* Bit definitions and macros for MCF_FBCS_CSMR */ -#define MCF_FBCS_CSMR_V (0x00000001) -#define MCF_FBCS_CSMR_WP (0x00000100) -#define MCF_FBCS_CSMR_BAM(x) (((x)&0x0000FFFF)<<16) -#define MCF_FBCS_CSMR_BAM_4G (0xFFFF0000) -#define MCF_FBCS_CSMR_BAM_2G (0x7FFF0000) -#define MCF_FBCS_CSMR_BAM_1G (0x3FFF0000) -#define MCF_FBCS_CSMR_BAM_1024M (0x3FFF0000) -#define MCF_FBCS_CSMR_BAM_512M (0x1FFF0000) -#define MCF_FBCS_CSMR_BAM_256M (0x0FFF0000) -#define MCF_FBCS_CSMR_BAM_128M (0x07FF0000) -#define MCF_FBCS_CSMR_BAM_64M (0x03FF0000) -#define MCF_FBCS_CSMR_BAM_32M (0x01FF0000) -#define MCF_FBCS_CSMR_BAM_16M (0x00FF0000) -#define MCF_FBCS_CSMR_BAM_8M (0x007F0000) -#define MCF_FBCS_CSMR_BAM_4M (0x003F0000) -#define MCF_FBCS_CSMR_BAM_2M (0x001F0000) -#define MCF_FBCS_CSMR_BAM_1M (0x000F0000) -#define MCF_FBCS_CSMR_BAM_1024K (0x000F0000) -#define MCF_FBCS_CSMR_BAM_512K (0x00070000) -#define MCF_FBCS_CSMR_BAM_256K (0x00030000) -#define MCF_FBCS_CSMR_BAM_128K (0x00010000) -#define MCF_FBCS_CSMR_BAM_64K (0x00000000) - -/* Bit definitions and macros for MCF_FBCS_CSCR */ -#define MCF_FBCS_CSCR_BSTW (0x00000008) -#define MCF_FBCS_CSCR_BSTR (0x00000010) -#define MCF_FBCS_CSCR_PS(x) (((x)&0x00000003)<<6) -#define MCF_FBCS_CSCR_AA (0x00000100) -#define MCF_FBCS_CSCR_WS(x) (((x)&0x0000003F)<<10) -#define MCF_FBCS_CSCR_WRAH(x) (((x)&0x00000003)<<16) -#define MCF_FBCS_CSCR_RDAH(x) (((x)&0x00000003)<<18) -#define MCF_FBCS_CSCR_ASET(x) (((x)&0x00000003)<<20) -#define MCF_FBCS_CSCR_SWSEN (0x00800000) -#define MCF_FBCS_CSCR_SWS(x) (((x)&0x0000003F)<<26) -#define MCF_FBCS_CSCR_PS_8 (0x0040) -#define MCF_FBCS_CSCR_PS_16 (0x0080) -#define MCF_FBCS_CSCR_PS_32 (0x0000) - -#endif /* __MCF548X_FBCS_H__ */ diff --git a/arch/m68k/include/asm/coldfire/mcf548x/mcf548x_fec.h b/arch/m68k/include/asm/coldfire/mcf548x/mcf548x_fec.h deleted file mode 100644 index 738abd80a..000000000 --- a/arch/m68k/include/asm/coldfire/mcf548x/mcf548x_fec.h +++ /dev/null @@ -1,623 +0,0 @@ -/* - * Copyright (c) 2008 Carsten Schlote - * See file CREDITS for list of people who contributed to this project. - * - * This file is part of barebox. - * - * barebox is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * barebox is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with barebox. If not, see . - */ - -/** @file - * Register and bit definitions for the MCF548X and MCF547x - * Fast Ethernet Controller (FEC) - */ -#ifndef __MCF548X_FEC_H__ -#define __MCF548X_FEC_H__ - -/* - * Fast Ethernet Controller (FEC) - */ - -/* Register read/write macros */ -#define MCF_FEC_EIR0 (*(vuint32_t*)(&__MBAR[0x009004])) -#define MCF_FEC_EIMR0 (*(vuint32_t*)(&__MBAR[0x009008])) -#define MCF_FEC_ECR0 (*(vuint32_t*)(&__MBAR[0x009024])) -#define MCF_FEC_MMFR0 (*(vuint32_t*)(&__MBAR[0x009040])) -#define MCF_FEC_MSCR0 (*(vuint32_t*)(&__MBAR[0x009044])) -#define MCF_FEC_MIBC0 (*(vuint32_t*)(&__MBAR[0x009064])) -#define MCF_FEC_RCR0 (*(vuint32_t*)(&__MBAR[0x009084])) -#define MCF_FEC_R_HASH0 (*(vuint32_t*)(&__MBAR[0x009088])) -#define MCF_FEC_TCR0 (*(vuint32_t*)(&__MBAR[0x0090C4])) -#define MCF_FEC_PALR0 (*(vuint32_t*)(&__MBAR[0x0090E4])) -#define MCF_FEC_PAUR0 (*(vuint32_t*)(&__MBAR[0x0090E8])) -#define MCF_FEC_OPD0 (*(vuint32_t*)(&__MBAR[0x0090EC])) -#define MCF_FEC_IAUR0 (*(vuint32_t*)(&__MBAR[0x009118])) -#define MCF_FEC_IALR0 (*(vuint32_t*)(&__MBAR[0x00911C])) -#define MCF_FEC_GAUR0 (*(vuint32_t*)(&__MBAR[0x009120])) -#define MCF_FEC_GALR0 (*(vuint32_t*)(&__MBAR[0x009124])) -#define MCF_FEC_FECTFWR0 (*(vuint32_t*)(&__MBAR[0x009144])) -#define MCF_FEC_FECRFDR0 (*(vuint32_t*)(&__MBAR[0x009184])) -#define MCF_FEC_FECRFSR0 (*(vuint32_t*)(&__MBAR[0x009188])) -#define MCF_FEC_FECRFCR0 (*(vuint32_t*)(&__MBAR[0x00918C])) -#define MCF_FEC_FECRLRFP0 (*(vuint32_t*)(&__MBAR[0x009190])) -#define MCF_FEC_FECRLWFP0 (*(vuint32_t*)(&__MBAR[0x009194])) -#define MCF_FEC_FECRFAR0 (*(vuint32_t*)(&__MBAR[0x009198])) -#define MCF_FEC_FECRFRP0 (*(vuint32_t*)(&__MBAR[0x00919C])) -#define MCF_FEC_FECRFWP0 (*(vuint32_t*)(&__MBAR[0x0091A0])) -#define MCF_FEC_FECTFDR0 (*(vuint32_t*)(&__MBAR[0x0091A4])) -#define MCF_FEC_FECTFSR0 (*(vuint32_t*)(&__MBAR[0x0091A8])) -#define MCF_FEC_FECTFCR0 (*(vuint32_t*)(&__MBAR[0x0091AC])) -#define MCF_FEC_FECTLRFP0 (*(vuint32_t*)(&__MBAR[0x0091B0])) -#define MCF_FEC_FECTLWFP0 (*(vuint32_t*)(&__MBAR[0x0091B4])) -#define MCF_FEC_FECTFAR0 (*(vuint32_t*)(&__MBAR[0x0091B8])) -#define MCF_FEC_FECTFRP0 (*(vuint32_t*)(&__MBAR[0x0091BC])) -#define MCF_FEC_FECTFWP0 (*(vuint32_t*)(&__MBAR[0x0091C0])) -#define MCF_FEC_FRST0 (*(vuint32_t*)(&__MBAR[0x0091C4])) -#define MCF_FEC_CTCWR0 (*(vuint32_t*)(&__MBAR[0x0091C8])) -#define MCF_FEC_RMON_T_DROP0 (*(vuint32_t*)(&__MBAR[0x009200])) -#define MCF_FEC_RMON_T_PACKETS0 (*(vuint32_t*)(&__MBAR[0x009204])) -#define MCF_FEC_RMON_T_BC_PKT0 (*(vuint32_t*)(&__MBAR[0x009208])) -#define MCF_FEC_RMON_T_MC_PKT0 (*(vuint32_t*)(&__MBAR[0x00920C])) -#define MCF_FEC_RMON_T_CRC_ALIGN0 (*(vuint32_t*)(&__MBAR[0x009210])) -#define MCF_FEC_RMON_T_UNDERSIZE0 (*(vuint32_t*)(&__MBAR[0x009214])) -#define MCF_FEC_RMON_T_OVERSIZE0 (*(vuint32_t*)(&__MBAR[0x009218])) -#define MCF_FEC_RMON_T_FRAG0 (*(vuint32_t*)(&__MBAR[0x00921C])) -#define MCF_FEC_RMON_T_JAB0 (*(vuint32_t*)(&__MBAR[0x009220])) -#define MCF_FEC_RMON_T_COL0 (*(vuint32_t*)(&__MBAR[0x009224])) -#define MCF_FEC_RMON_T_P640 (*(vuint32_t*)(&__MBAR[0x009228])) -#define MCF_FEC_RMON_T_P65TO1270 (*(vuint32_t*)(&__MBAR[0x00922C])) -#define MCF_FEC_RMON_T_P128TO2550 (*(vuint32_t*)(&__MBAR[0x009230])) -#define MCF_FEC_RMON_T_P256TO5110 (*(vuint32_t*)(&__MBAR[0x009234])) -#define MCF_FEC_RMON_T_P512TO10230 (*(vuint32_t*)(&__MBAR[0x009238])) -#define MCF_FEC_RMON_T_P1024TO20470 (*(vuint32_t*)(&__MBAR[0x00923C])) -#define MCF_FEC_RMON_T_P_GTE20480 (*(vuint32_t*)(&__MBAR[0x009240])) -#define MCF_FEC_RMON_T_OCTETS0 (*(vuint32_t*)(&__MBAR[0x009244])) -#define MCF_FEC_IEEE_T_DROP0 (*(vuint32_t*)(&__MBAR[0x009248])) -#define MCF_FEC_IEEE_T_FRAME_OK0 (*(vuint32_t*)(&__MBAR[0x00924C])) -#define MCF_FEC_IEEE_T_1COL0 (*(vuint32_t*)(&__MBAR[0x009250])) -#define MCF_FEC_IEEE_T_MCOL0 (*(vuint32_t*)(&__MBAR[0x009254])) -#define MCF_FEC_IEEE_T_DEF0 (*(vuint32_t*)(&__MBAR[0x009258])) -#define MCF_FEC_IEEE_T_LCOL0 (*(vuint32_t*)(&__MBAR[0x00925C])) -#define MCF_FEC_IEEE_T_EXCOL0 (*(vuint32_t*)(&__MBAR[0x009260])) -#define MCF_FEC_IEEE_T_MACERR0 (*(vuint32_t*)(&__MBAR[0x009264])) -#define MCF_FEC_IEEE_T_CSERR0 (*(vuint32_t*)(&__MBAR[0x009268])) -#define MCF_FEC_IEEE_T_SQE0 (*(vuint32_t*)(&__MBAR[0x00926C])) -#define MCF_FEC_IEEE_T_FDXFC0 (*(vuint32_t*)(&__MBAR[0x009270])) -#define MCF_FEC_IEEE_T_OCTETS_OK0 (*(vuint32_t*)(&__MBAR[0x009274])) -#define MCF_FEC_RMON_R_DROP0 (*(vuint32_t*)(&__MBAR[0x009280])) -#define MCF_FEC_RMON_R_PACKETS0 (*(vuint32_t*)(&__MBAR[0x009284])) -#define MCF_FEC_RMON_R_BC_PKT0 (*(vuint32_t*)(&__MBAR[0x009288])) -#define MCF_FEC_RMON_R_MC_PKT0 (*(vuint32_t*)(&__MBAR[0x00928C])) -#define MCF_FEC_RMON_R_CRC_ALIGN0 (*(vuint32_t*)(&__MBAR[0x009290])) -#define MCF_FEC_RMON_R_UNDERSIZE0 (*(vuint32_t*)(&__MBAR[0x009294])) -#define MCF_FEC_RMON_R_OVERSIZE0 (*(vuint32_t*)(&__MBAR[0x009298])) -#define MCF_FEC_RMON_R_FRAG0 (*(vuint32_t*)(&__MBAR[0x00929C])) -#define MCF_FEC_RMON_R_JAB0 (*(vuint32_t*)(&__MBAR[0x0092A0])) -#define MCF_FEC_RMON_R_RESVD_00 (*(vuint32_t*)(&__MBAR[0x0092A4])) -#define MCF_FEC_RMON_R_P640 (*(vuint32_t*)(&__MBAR[0x0092A8])) -#define MCF_FEC_RMON_R_P65TO1270 (*(vuint32_t*)(&__MBAR[0x0092AC])) -#define MCF_FEC_RMON_R_P128TO2550 (*(vuint32_t*)(&__MBAR[0x0092B0])) -#define MCF_FEC_RMON_R_P256TO5110 (*(vuint32_t*)(&__MBAR[0x0092B4])) -#define MCF_FEC_RMON_R_512TO10230 (*(vuint32_t*)(&__MBAR[0x0092B8])) -#define MCF_FEC_RMON_R_1024TO20470 (*(vuint32_t*)(&__MBAR[0x0092BC])) -#define MCF_FEC_RMON_R_P_GTE20480 (*(vuint32_t*)(&__MBAR[0x0092C0])) -#define MCF_FEC_RMON_R_OCTETS0 (*(vuint32_t*)(&__MBAR[0x0092C4])) -#define MCF_FEC_IEEE_R_DROP0 (*(vuint32_t*)(&__MBAR[0x0092C8])) -#define MCF_FEC_IEEE_R_FRAME_OK0 (*(vuint32_t*)(&__MBAR[0x0092CC])) -#define MCF_FEC_IEEE_R_CRC0 (*(vuint32_t*)(&__MBAR[0x0092D0])) -#define MCF_FEC_IEEE_R_ALIGN0 (*(vuint32_t*)(&__MBAR[0x0092D4])) -#define MCF_FEC_IEEE_R_MACERR0 (*(vuint32_t*)(&__MBAR[0x0092D8])) -#define MCF_FEC_IEEE_R_FDXFC0 (*(vuint32_t*)(&__MBAR[0x0092DC])) -#define MCF_FEC_IEEE_R_OCTETS_OK0 (*(vuint32_t*)(&__MBAR[0x0092E0])) -#define MCF_FEC_EIR1 (*(vuint32_t*)(&__MBAR[0x009804])) -#define MCF_FEC_EIMR1 (*(vuint32_t*)(&__MBAR[0x009808])) -#define MCF_FEC_ECR1 (*(vuint32_t*)(&__MBAR[0x009824])) -#define MCF_FEC_MMFR1 (*(vuint32_t*)(&__MBAR[0x009840])) -#define MCF_FEC_MSCR1 (*(vuint32_t*)(&__MBAR[0x009844])) -#define MCF_FEC_MIBC1 (*(vuint32_t*)(&__MBAR[0x009864])) -#define MCF_FEC_RCR1 (*(vuint32_t*)(&__MBAR[0x009884])) -#define MCF_FEC_R_HASH1 (*(vuint32_t*)(&__MBAR[0x009888])) -#define MCF_FEC_TCR1 (*(vuint32_t*)(&__MBAR[0x0098C4])) -#define MCF_FEC_PALR1 (*(vuint32_t*)(&__MBAR[0x0098E4])) -#define MCF_FEC_PAUR1 (*(vuint32_t*)(&__MBAR[0x0098E8])) -#define MCF_FEC_OPD1 (*(vuint32_t*)(&__MBAR[0x0098EC])) -#define MCF_FEC_IAUR1 (*(vuint32_t*)(&__MBAR[0x009918])) -#define MCF_FEC_IALR1 (*(vuint32_t*)(&__MBAR[0x00991C])) -#define MCF_FEC_GAUR1 (*(vuint32_t*)(&__MBAR[0x009920])) -#define MCF_FEC_GALR1 (*(vuint32_t*)(&__MBAR[0x009924])) -#define MCF_FEC_FECTFWR1 (*(vuint32_t*)(&__MBAR[0x009944])) -#define MCF_FEC_FECRFDR1 (*(vuint32_t*)(&__MBAR[0x009984])) -#define MCF_FEC_FECRFSR1 (*(vuint32_t*)(&__MBAR[0x009988])) -#define MCF_FEC_FECRFCR1 (*(vuint32_t*)(&__MBAR[0x00998C])) -#define MCF_FEC_FECRLRFP1 (*(vuint32_t*)(&__MBAR[0x009990])) -#define MCF_FEC_FECRLWFP1 (*(vuint32_t*)(&__MBAR[0x009994])) -#define MCF_FEC_FECRFAR1 (*(vuint32_t*)(&__MBAR[0x009998])) -#define MCF_FEC_FECRFRP1 (*(vuint32_t*)(&__MBAR[0x00999C])) -#define MCF_FEC_FECRFWP1 (*(vuint32_t*)(&__MBAR[0x0099A0])) -#define MCF_FEC_FECTFDR1 (*(vuint32_t*)(&__MBAR[0x0099A4])) -#define MCF_FEC_FECTFSR1 (*(vuint32_t*)(&__MBAR[0x0099A8])) -#define MCF_FEC_FECTFCR1 (*(vuint32_t*)(&__MBAR[0x0099AC])) -#define MCF_FEC_FECTLRFP1 (*(vuint32_t*)(&__MBAR[0x0099B0])) -#define MCF_FEC_FECTLWFP1 (*(vuint32_t*)(&__MBAR[0x0099B4])) -#define MCF_FEC_FECTFAR1 (*(vuint32_t*)(&__MBAR[0x0099B8])) -#define MCF_FEC_FECTFRP1 (*(vuint32_t*)(&__MBAR[0x0099BC])) -#define MCF_FEC_FECTFWP1 (*(vuint32_t*)(&__MBAR[0x0099C0])) -#define MCF_FEC_FRST1 (*(vuint32_t*)(&__MBAR[0x0099C4])) -#define MCF_FEC_CTCWR1 (*(vuint32_t*)(&__MBAR[0x0099C8])) -#define MCF_FEC_RMON_T_DROP1 (*(vuint32_t*)(&__MBAR[0x009A00])) -#define MCF_FEC_RMON_T_PACKETS1 (*(vuint32_t*)(&__MBAR[0x009A04])) -#define MCF_FEC_RMON_T_BC_PKT1 (*(vuint32_t*)(&__MBAR[0x009A08])) -#define MCF_FEC_RMON_T_MC_PKT1 (*(vuint32_t*)(&__MBAR[0x009A0C])) -#define MCF_FEC_RMON_T_CRC_ALIGN1 (*(vuint32_t*)(&__MBAR[0x009A10])) -#define MCF_FEC_RMON_T_UNDERSIZE1 (*(vuint32_t*)(&__MBAR[0x009A14])) -#define MCF_FEC_RMON_T_OVERSIZE1 (*(vuint32_t*)(&__MBAR[0x009A18])) -#define MCF_FEC_RMON_T_FRAG1 (*(vuint32_t*)(&__MBAR[0x009A1C])) -#define MCF_FEC_RMON_T_JAB1 (*(vuint32_t*)(&__MBAR[0x009A20])) -#define MCF_FEC_RMON_T_COL1 (*(vuint32_t*)(&__MBAR[0x009A24])) -#define MCF_FEC_RMON_T_P641 (*(vuint32_t*)(&__MBAR[0x009A28])) -#define MCF_FEC_RMON_T_P65TO1271 (*(vuint32_t*)(&__MBAR[0x009A2C])) -#define MCF_FEC_RMON_T_P128TO2551 (*(vuint32_t*)(&__MBAR[0x009A30])) -#define MCF_FEC_RMON_T_P256TO5111 (*(vuint32_t*)(&__MBAR[0x009A34])) -#define MCF_FEC_RMON_T_P512TO10231 (*(vuint32_t*)(&__MBAR[0x009A38])) -#define MCF_FEC_RMON_T_P1024TO20471 (*(vuint32_t*)(&__MBAR[0x009A3C])) -#define MCF_FEC_RMON_T_P_GTE20481 (*(vuint32_t*)(&__MBAR[0x009A40])) -#define MCF_FEC_RMON_T_OCTETS1 (*(vuint32_t*)(&__MBAR[0x009A44])) -#define MCF_FEC_IEEE_T_DROP1 (*(vuint32_t*)(&__MBAR[0x009A48])) -#define MCF_FEC_IEEE_T_FRAME_OK1 (*(vuint32_t*)(&__MBAR[0x009A4C])) -#define MCF_FEC_IEEE_T_1COL1 (*(vuint32_t*)(&__MBAR[0x009A50])) -#define MCF_FEC_IEEE_T_MCOL1 (*(vuint32_t*)(&__MBAR[0x009A54])) -#define MCF_FEC_IEEE_T_DEF1 (*(vuint32_t*)(&__MBAR[0x009A58])) -#define MCF_FEC_IEEE_T_LCOL1 (*(vuint32_t*)(&__MBAR[0x009A5C])) -#define MCF_FEC_IEEE_T_EXCOL1 (*(vuint32_t*)(&__MBAR[0x009A60])) -#define MCF_FEC_IEEE_T_MACERR1 (*(vuint32_t*)(&__MBAR[0x009A64])) -#define MCF_FEC_IEEE_T_CSERR1 (*(vuint32_t*)(&__MBAR[0x009A68])) -#define MCF_FEC_IEEE_T_SQE1 (*(vuint32_t*)(&__MBAR[0x009A6C])) -#define MCF_FEC_IEEE_T_FDXFC1 (*(vuint32_t*)(&__MBAR[0x009A70])) -#define MCF_FEC_IEEE_T_OCTETS_OK1 (*(vuint32_t*)(&__MBAR[0x009A74])) -#define MCF_FEC_RMON_R_DROP1 (*(vuint32_t*)(&__MBAR[0x009A80])) -#define MCF_FEC_RMON_R_PACKETS1 (*(vuint32_t*)(&__MBAR[0x009A84])) -#define MCF_FEC_RMON_R_BC_PKT1 (*(vuint32_t*)(&__MBAR[0x009A88])) -#define MCF_FEC_RMON_R_MC_PKT1 (*(vuint32_t*)(&__MBAR[0x009A8C])) -#define MCF_FEC_RMON_R_CRC_ALIGN1 (*(vuint32_t*)(&__MBAR[0x009A90])) -#define MCF_FEC_RMON_R_UNDERSIZE1 (*(vuint32_t*)(&__MBAR[0x009A94])) -#define MCF_FEC_RMON_R_OVERSIZE1 (*(vuint32_t*)(&__MBAR[0x009A98])) -#define MCF_FEC_RMON_R_FRAG1 (*(vuint32_t*)(&__MBAR[0x009A9C])) -#define MCF_FEC_RMON_R_JAB1 (*(vuint32_t*)(&__MBAR[0x009AA0])) -#define MCF_FEC_RMON_R_RESVD_01 (*(vuint32_t*)(&__MBAR[0x009AA4])) -#define MCF_FEC_RMON_R_P641 (*(vuint32_t*)(&__MBAR[0x009AA8])) -#define MCF_FEC_RMON_R_P65TO1271 (*(vuint32_t*)(&__MBAR[0x009AAC])) -#define MCF_FEC_RMON_R_P128TO2551 (*(vuint32_t*)(&__MBAR[0x009AB0])) -#define MCF_FEC_RMON_R_P256TO5111 (*(vuint32_t*)(&__MBAR[0x009AB4])) -#define MCF_FEC_RMON_R_512TO10231 (*(vuint32_t*)(&__MBAR[0x009AB8])) -#define MCF_FEC_RMON_R_1024TO20471 (*(vuint32_t*)(&__MBAR[0x009ABC])) -#define MCF_FEC_RMON_R_P_GTE20481 (*(vuint32_t*)(&__MBAR[0x009AC0])) -#define MCF_FEC_RMON_R_OCTETS1 (*(vuint32_t*)(&__MBAR[0x009AC4])) -#define MCF_FEC_IEEE_R_DROP1 (*(vuint32_t*)(&__MBAR[0x009AC8])) -#define MCF_FEC_IEEE_R_FRAME_OK1 (*(vuint32_t*)(&__MBAR[0x009ACC])) -#define MCF_FEC_IEEE_R_CRC1 (*(vuint32_t*)(&__MBAR[0x009AD0])) -#define MCF_FEC_IEEE_R_ALIGN1 (*(vuint32_t*)(&__MBAR[0x009AD4])) -#define MCF_FEC_IEEE_R_MACERR1 (*(vuint32_t*)(&__MBAR[0x009AD8])) -#define MCF_FEC_IEEE_R_FDXFC1 (*(vuint32_t*)(&__MBAR[0x009ADC])) -#define MCF_FEC_IEEE_R_OCTETS_OK1 (*(vuint32_t*)(&__MBAR[0x009AE0])) -#define MCF_FEC_EIR(x) (*(vuint32_t*)(&__MBAR[0x009004+((x)*0x800)])) -#define MCF_FEC_EIMR(x) (*(vuint32_t*)(&__MBAR[0x009008+((x)*0x800)])) -#define MCF_FEC_ECR(x) (*(vuint32_t*)(&__MBAR[0x009024+((x)*0x800)])) -#define MCF_FEC_MMFR(x) (*(vuint32_t*)(&__MBAR[0x009040+((x)*0x800)])) -#define MCF_FEC_MSCR(x) (*(vuint32_t*)(&__MBAR[0x009044+((x)*0x800)])) -#define MCF_FEC_MIBC(x) (*(vuint32_t*)(&__MBAR[0x009064+((x)*0x800)])) -#define MCF_FEC_RCR(x) (*(vuint32_t*)(&__MBAR[0x009084+((x)*0x800)])) -#define MCF_FEC_R_HASH(x) (*(vuint32_t*)(&__MBAR[0x009088+((x)*0x800)])) -#define MCF_FEC_TCR(x) (*(vuint32_t*)(&__MBAR[0x0090C4+((x)*0x800)])) -#define MCF_FEC_PALR(x) (*(vuint32_t*)(&__MBAR[0x0090E4+((x)*0x800)])) -#define MCF_FEC_PAUR(x) (*(vuint32_t*)(&__MBAR[0x0090E8+((x)*0x800)])) -#define MCF_FEC_OPD(x) (*(vuint32_t*)(&__MBAR[0x0090EC+((x)*0x800)])) -#define MCF_FEC_IAUR(x) (*(vuint32_t*)(&__MBAR[0x009118+((x)*0x800)])) -#define MCF_FEC_IALR(x) (*(vuint32_t*)(&__MBAR[0x00911C+((x)*0x800)])) -#define MCF_FEC_GAUR(x) (*(vuint32_t*)(&__MBAR[0x009120+((x)*0x800)])) -#define MCF_FEC_GALR(x) (*(vuint32_t*)(&__MBAR[0x009124+((x)*0x800)])) -#define MCF_FEC_FECTFWR(x) (*(vuint32_t*)(&__MBAR[0x009144+((x)*0x800)])) -#define MCF_FEC_FECRFDR(x) (*(vuint32_t*)(&__MBAR[0x009184+((x)*0x800)])) -#define MCF_FEC_FECRFSR(x) (*(vuint32_t*)(&__MBAR[0x009188+((x)*0x800)])) -#define MCF_FEC_FECRFCR(x) (*(vuint32_t*)(&__MBAR[0x00918C+((x)*0x800)])) -#define MCF_FEC_FECRLRFP(x) (*(vuint32_t*)(&__MBAR[0x009190+((x)*0x800)])) -#define MCF_FEC_FECRLWFP(x) (*(vuint32_t*)(&__MBAR[0x009194+((x)*0x800)])) -#define MCF_FEC_FECRFAR(x) (*(vuint32_t*)(&__MBAR[0x009198+((x)*0x800)])) -#define MCF_FEC_FECRFRP(x) (*(vuint32_t*)(&__MBAR[0x00919C+((x)*0x800)])) -#define MCF_FEC_FECRFWP(x) (*(vuint32_t*)(&__MBAR[0x0091A0+((x)*0x800)])) -#define MCF_FEC_FECTFDR(x) (*(vuint32_t*)(&__MBAR[0x0091A4+((x)*0x800)])) -#define MCF_FEC_FECTFSR(x) (*(vuint32_t*)(&__MBAR[0x0091A8+((x)*0x800)])) -#define MCF_FEC_FECTFCR(x) (*(vuint32_t*)(&__MBAR[0x0091AC+((x)*0x800)])) -#define MCF_FEC_FECTLRFP(x) (*(vuint32_t*)(&__MBAR[0x0091B0+((x)*0x800)])) -#define MCF_FEC_FECTLWFP(x) (*(vuint32_t*)(&__MBAR[0x0091B4+((x)*0x800)])) -#define MCF_FEC_FECTFAR(x) (*(vuint32_t*)(&__MBAR[0x0091B8+((x)*0x800)])) -#define MCF_FEC_FECTFRP(x) (*(vuint32_t*)(&__MBAR[0x0091BC+((x)*0x800)])) -#define MCF_FEC_FECTFWP(x) (*(vuint32_t*)(&__MBAR[0x0091C0+((x)*0x800)])) -#define MCF_FEC_FRST(x) (*(vuint32_t*)(&__MBAR[0x0091C4+((x)*0x800)])) -#define MCF_FEC_CTCWR(x) (*(vuint32_t*)(&__MBAR[0x0091C8+((x)*0x800)])) -#define MCF_FEC_RMON_T_DROP(x) (*(vuint32_t*)(&__MBAR[0x009200+((x)*0x800)])) -#define MCF_FEC_RMON_T_PACKETS(x) (*(vuint32_t*)(&__MBAR[0x009204+((x)*0x800)])) -#define MCF_FEC_RMON_T_BC_PKT(x) (*(vuint32_t*)(&__MBAR[0x009208+((x)*0x800)])) -#define MCF_FEC_RMON_T_MC_PKT(x) (*(vuint32_t*)(&__MBAR[0x00920C+((x)*0x800)])) -#define MCF_FEC_RMON_T_CRC_ALIGN(x) (*(vuint32_t*)(&__MBAR[0x009210+((x)*0x800)])) -#define MCF_FEC_RMON_T_UNDERSIZE(x) (*(vuint32_t*)(&__MBAR[0x009214+((x)*0x800)])) -#define MCF_FEC_RMON_T_OVERSIZE(x) (*(vuint32_t*)(&__MBAR[0x009218+((x)*0x800)])) -#define MCF_FEC_RMON_T_FRAG(x) (*(vuint32_t*)(&__MBAR[0x00921C+((x)*0x800)])) -#define MCF_FEC_RMON_T_JAB(x) (*(vuint32_t*)(&__MBAR[0x009220+((x)*0x800)])) -#define MCF_FEC_RMON_T_COL(x) (*(vuint32_t*)(&__MBAR[0x009224+((x)*0x800)])) -#define MCF_FEC_RMON_T_P64(x) (*(vuint32_t*)(&__MBAR[0x009228+((x)*0x800)])) -#define MCF_FEC_RMON_T_P65TO127(x) (*(vuint32_t*)(&__MBAR[0x00922C+((x)*0x800)])) -#define MCF_FEC_RMON_T_P128TO255(x) (*(vuint32_t*)(&__MBAR[0x009230+((x)*0x800)])) -#define MCF_FEC_RMON_T_P256TO511(x) (*(vuint32_t*)(&__MBAR[0x009234+((x)*0x800)])) -#define MCF_FEC_RMON_T_P512TO1023(x) (*(vuint32_t*)(&__MBAR[0x009238+((x)*0x800)])) -#define MCF_FEC_RMON_T_P1024TO2047(x) (*(vuint32_t*)(&__MBAR[0x00923C+((x)*0x800)])) -#define MCF_FEC_RMON_T_P_GTE2048(x) (*(vuint32_t*)(&__MBAR[0x009240+((x)*0x800)])) -#define MCF_FEC_RMON_T_OCTETS(x) (*(vuint32_t*)(&__MBAR[0x009244+((x)*0x800)])) -#define MCF_FEC_IEEE_T_DROP(x) (*(vuint32_t*)(&__MBAR[0x009248+((x)*0x800)])) -#define MCF_FEC_IEEE_T_FRAME_OK(x) (*(vuint32_t*)(&__MBAR[0x00924C+((x)*0x800)])) -#define MCF_FEC_IEEE_T_1COL(x) (*(vuint32_t*)(&__MBAR[0x009250+((x)*0x800)])) -#define MCF_FEC_IEEE_T_MCOL(x) (*(vuint32_t*)(&__MBAR[0x009254+((x)*0x800)])) -#define MCF_FEC_IEEE_T_DEF(x) (*(vuint32_t*)(&__MBAR[0x009258+((x)*0x800)])) -#define MCF_FEC_IEEE_T_LCOL(x) (*(vuint32_t*)(&__MBAR[0x00925C+((x)*0x800)])) -#define MCF_FEC_IEEE_T_EXCOL(x) (*(vuint32_t*)(&__MBAR[0x009260+((x)*0x800)])) -#define MCF_FEC_IEEE_T_MACERR(x) (*(vuint32_t*)(&__MBAR[0x009264+((x)*0x800)])) -#define MCF_FEC_IEEE_T_CSERR(x) (*(vuint32_t*)(&__MBAR[0x009268+((x)*0x800)])) -#define MCF_FEC_IEEE_T_SQE(x) (*(vuint32_t*)(&__MBAR[0x00926C+((x)*0x800)])) -#define MCF_FEC_IEEE_T_FDXFC(x) (*(vuint32_t*)(&__MBAR[0x009270+((x)*0x800)])) -#define MCF_FEC_IEEE_T_OCTETS_OK(x) (*(vuint32_t*)(&__MBAR[0x009274+((x)*0x800)])) -#define MCF_FEC_RMON_R_DROP(x) (*(vuint32_t*)(&__MBAR[0x009280+((x)*0x800)])) -#define MCF_FEC_RMON_R_PACKETS(x) (*(vuint32_t*)(&__MBAR[0x009284+((x)*0x800)])) -#define MCF_FEC_RMON_R_BC_PKT(x) (*(vuint32_t*)(&__MBAR[0x009288+((x)*0x800)])) -#define MCF_FEC_RMON_R_MC_PKT(x) (*(vuint32_t*)(&__MBAR[0x00928C+((x)*0x800)])) -#define MCF_FEC_RMON_R_CRC_ALIGN(x) (*(vuint32_t*)(&__MBAR[0x009290+((x)*0x800)])) -#define MCF_FEC_RMON_R_UNDERSIZE(x) (*(vuint32_t*)(&__MBAR[0x009294+((x)*0x800)])) -#define MCF_FEC_RMON_R_OVERSIZE(x) (*(vuint32_t*)(&__MBAR[0x009298+((x)*0x800)])) -#define MCF_FEC_RMON_R_FRAG(x) (*(vuint32_t*)(&__MBAR[0x00929C+((x)*0x800)])) -#define MCF_FEC_RMON_R_JAB(x) (*(vuint32_t*)(&__MBAR[0x0092A0+((x)*0x800)])) -#define MCF_FEC_RMON_R_RESVD_0(x) (*(vuint32_t*)(&__MBAR[0x0092A4+((x)*0x800)])) -#define MCF_FEC_RMON_R_P64(x) (*(vuint32_t*)(&__MBAR[0x0092A8+((x)*0x800)])) -#define MCF_FEC_RMON_R_P65TO127(x) (*(vuint32_t*)(&__MBAR[0x0092AC+((x)*0x800)])) -#define MCF_FEC_RMON_R_P128TO255(x) (*(vuint32_t*)(&__MBAR[0x0092B0+((x)*0x800)])) -#define MCF_FEC_RMON_R_P256TO511(x) (*(vuint32_t*)(&__MBAR[0x0092B4+((x)*0x800)])) -#define MCF_FEC_RMON_R_512TO1023(x) (*(vuint32_t*)(&__MBAR[0x0092B8+((x)*0x800)])) -#define MCF_FEC_RMON_R_1024TO2047(x) (*(vuint32_t*)(&__MBAR[0x0092BC+((x)*0x800)])) -#define MCF_FEC_RMON_R_P_GTE2048(x) (*(vuint32_t*)(&__MBAR[0x0092C0+((x)*0x800)])) -#define MCF_FEC_RMON_R_OCTETS(x) (*(vuint32_t*)(&__MBAR[0x0092C4+((x)*0x800)])) -#define MCF_FEC_IEEE_R_DROP(x) (*(vuint32_t*)(&__MBAR[0x0092C8+((x)*0x800)])) -#define MCF_FEC_IEEE_R_FRAME_OK(x) (*(vuint32_t*)(&__MBAR[0x0092CC+((x)*0x800)])) -#define MCF_FEC_IEEE_R_CRC(x) (*(vuint32_t*)(&__MBAR[0x0092D0+((x)*0x800)])) -#define MCF_FEC_IEEE_R_ALIGN(x) (*(vuint32_t*)(&__MBAR[0x0092D4+((x)*0x800)])) -#define MCF_FEC_IEEE_R_MACERR(x) (*(vuint32_t*)(&__MBAR[0x0092D8+((x)*0x800)])) -#define MCF_FEC_IEEE_R_FDXFC(x) (*(vuint32_t*)(&__MBAR[0x0092DC+((x)*0x800)])) -#define MCF_FEC_IEEE_R_OCTETS_OK(x) (*(vuint32_t*)(&__MBAR[0x0092E0+((x)*0x800)])) - -/* Bit definitions and macros for MCF_FEC_EIR */ -#define MCF_FEC_EIR_RFERR (0x00020000) -#define MCF_FEC_EIR_XFERR (0x00040000) -#define MCF_FEC_EIR_XFUN (0x00080000) -#define MCF_FEC_EIR_RL (0x00100000) -#define MCF_FEC_EIR_LC (0x00200000) -#define MCF_FEC_EIR_MII (0x00800000) -#define MCF_FEC_EIR_TXF (0x08000000) -#define MCF_FEC_EIR_GRA (0x10000000) -#define MCF_FEC_EIR_BABT (0x20000000) -#define MCF_FEC_EIR_BABR (0x40000000) -#define MCF_FEC_EIR_HBERR (0x80000000) -#define MCF_FEC_EIR_CLEAR_ALL (0xFFFFFFFF) - -/* Bit definitions and macros for MCF_FEC_EIMR */ -#define MCF_FEC_EIMR_RFERR (0x00020000) -#define MCF_FEC_EIMR_XFERR (0x00040000) -#define MCF_FEC_EIMR_XFUN (0x00080000) -#define MCF_FEC_EIMR_RL (0x00100000) -#define MCF_FEC_EIMR_LC (0x00200000) -#define MCF_FEC_EIMR_MII (0x00800000) -#define MCF_FEC_EIMR_TXF (0x08000000) -#define MCF_FEC_EIMR_GRA (0x10000000) -#define MCF_FEC_EIMR_BABT (0x20000000) -#define MCF_FEC_EIMR_BABR (0x40000000) -#define MCF_FEC_EIMR_HBERR (0x80000000) -#define MCF_FEC_EIMR_MASK_ALL (0x00000000) -#define MCF_FEC_EIMR_UNMASK_ALL (0xFFFFFFFF) - -/* Bit definitions and macros for MCF_FEC_ECR */ -#define MCF_FEC_ECR_RESET (0x00000001) -#define MCF_FEC_ECR_ETHER_EN (0x00000002) - -/* Bit definitions and macros for MCF_FEC_MMFR */ -#define MCF_FEC_MMFR_DATA(x) (((x)&0x0000FFFF)<<0) -#define MCF_FEC_MMFR_TA(x) (((x)&0x00000003)<<16) -#define MCF_FEC_MMFR_RA(x) (((x)&0x0000001F)<<18) -#define MCF_FEC_MMFR_PA(x) (((x)&0x0000001F)<<23) -#define MCF_FEC_MMFR_OP(x) (((x)&0x00000003)<<28) -#define MCF_FEC_MMFR_ST(x) (((x)&0x00000003)<<30) -#define MCF_FEC_MMFR_ST_01 (0x40000000) -#define MCF_FEC_MMFR_OP_READ (0x20000000) -#define MCF_FEC_MMFR_OP_WRITE (0x10000000) -#define MCF_FEC_MMFR_TA_10 (0x00020000) - -/* Bit definitions and macros for MCF_FEC_MSCR */ -#define MCF_FEC_MSCR_MII_SPEED(x) (((x)&0x0000003F)<<1) -#define MCF_FEC_MSCR_DIS_PREAMBLE (0x00000080) -#define MCF_FEC_MSCR_MII_SPEED_133 (0x1B<<1) -#define MCF_FEC_MSCR_MII_SPEED_120 (0x18<<1) -#define MCF_FEC_MSCR_MII_SPEED_66 (0xE<<1) -#define MCF_FEC_MSCR_MII_SPEED_60 (0xC<<1) - -/* Bit definitions and macros for MCF_FEC_MIBC */ -#define MCF_FEC_MIBC_MIB_IDLE (0x40000000) -#define MCF_FEC_MIBC_MIB_DISABLE (0x80000000) - -/* Bit definitions and macros for MCF_FEC_RCR */ -#define MCF_FEC_RCR_LOOP (0x00000001) -#define MCF_FEC_RCR_DRT (0x00000002) -#define MCF_FEC_RCR_MII_MODE (0x00000004) -#define MCF_FEC_RCR_PROM (0x00000008) -#define MCF_FEC_RCR_BC_REJ (0x00000010) -#define MCF_FEC_RCR_FCE (0x00000020) -#define MCF_FEC_RCR_MAX_FL(x) (((x)&0x000007FF)<<16) - -/* Bit definitions and macros for MCF_FEC_R_HASH */ -#define MCF_FEC_R_HASH_HASH(x) (((x)&0x0000003F)<<24) -#define MCF_FEC_R_HASH_MULTCAST (0x40000000) -#define MCF_FEC_R_HASH_FCE_DC (0x80000000) - -/* Bit definitions and macros for MCF_FEC_TCR */ -#define MCF_FEC_TCR_GTS (0x00000001) -#define MCF_FEC_TCR_HBC (0x00000002) -#define MCF_FEC_TCR_FDEN (0x00000004) -#define MCF_FEC_TCR_TFC_PAUSE (0x00000008) -#define MCF_FEC_TCR_RFC_PAUSE (0x00000010) - -/* Bit definitions and macros for MCF_FEC_PAUR */ -#define MCF_FEC_PAUR_TYPE(x) (((x)&0x0000FFFF)<<0) -#define MCF_FEC_PAUR_PADDR2(x) (((x)&0x0000FFFF)<<16) - -/* Bit definitions and macros for MCF_FEC_OPD */ -#define MCF_FEC_OPD_OP_PAUSE(x) (((x)&0x0000FFFF)<<0) -#define MCF_FEC_OPD_OPCODE(x) (((x)&0x0000FFFF)<<16) - -/* Bit definitions and macros for MCF_FEC_FECTFWR */ -#define MCF_FEC_FECTFWR_X_WMRK(x) (((x)&0x0000000F)<<0) -#define MCF_FEC_FECTFWR_X_WMRK_64 (0x00000000) -#define MCF_FEC_FECTFWR_X_WMRK_128 (0x00000001) -#define MCF_FEC_FECTFWR_X_WMRK_192 (0x00000002) -#define MCF_FEC_FECTFWR_X_WMRK_256 (0x00000003) -#define MCF_FEC_FECTFWR_X_WMRK_320 (0x00000004) -#define MCF_FEC_FECTFWR_X_WMRK_384 (0x00000005) -#define MCF_FEC_FECTFWR_X_WMRK_448 (0x00000006) -#define MCF_FEC_FECTFWR_X_WMRK_512 (0x00000007) -#define MCF_FEC_FECTFWR_X_WMRK_576 (0x00000008) -#define MCF_FEC_FECTFWR_X_WMRK_640 (0x00000009) -#define MCF_FEC_FECTFWR_X_WMRK_704 (0x0000000A) -#define MCF_FEC_FECTFWR_X_WMRK_768 (0x0000000B) -#define MCF_FEC_FECTFWR_X_WMRK_832 (0x0000000C) -#define MCF_FEC_FECTFWR_X_WMRK_896 (0x0000000D) -#define MCF_FEC_FECTFWR_X_WMRK_960 (0x0000000E) -#define MCF_FEC_FECTFWR_X_WMRK_1024 (0x0000000F) - -/* Bit definitions and macros for MCF_FEC_FECRFDR */ -#define MCF_FEC_FECRFDR_ADDR0 ((void*)(&__MBAR[0x009184])) -#define MCF_FEC_FECRFDR_ADDR1 ((void*)(&__MBAR[0x009984])) -#define MCF_FEC_FECRFDR_ADDR(x) ((void*)(&__MBAR[0x009184+(0x800*ch)])) - -/* Bit definitions and macros for MCF_FEC_FECRFSR */ -#define MCF_FEC_FECRFSR_EMT (0x00010000) -#define MCF_FEC_FECRFSR_ALARM (0x00020000) -#define MCF_FEC_FECRFSR_FU (0x00040000) -#define MCF_FEC_FECRFSR_FR (0x00080000) -#define MCF_FEC_FECRFSR_OF (0x00100000) -#define MCF_FEC_FECRFSR_UF (0x00200000) -#define MCF_FEC_FECRFSR_RXW (0x00400000) -#define MCF_FEC_FECRFSR_FAE (0x00800000) -#define MCF_FEC_FECRFSR_FRM(x) (((x)&0x0000000F)<<24) -#define MCF_FEC_FECRFSR_IP (0x80000000) - -/* Bit definitions and macros for MCF_FEC_FECRFCR */ -#define MCF_FEC_FECRFCR_COUNTER(x) (((x)&0x0000FFFF)<<0) -#define MCF_FEC_FECRFCR_OF_MSK (0x00080000) -#define MCF_FEC_FECRFCR_UF_MSK (0x00100000) -#define MCF_FEC_FECRFCR_RXW_MSK (0x00200000) -#define MCF_FEC_FECRFCR_FAE_MSK (0x00400000) -#define MCF_FEC_FECRFCR_IP_MSK (0x00800000) -#define MCF_FEC_FECRFCR_GR(x) (((x)&0x00000007)<<24) -#define MCF_FEC_FECRFCR_FRM (0x08000000) -#define MCF_FEC_FECRFCR_TIMER (0x10000000) -#define MCF_FEC_FECRFCR_WFR (0x20000000) -#define MCF_FEC_FECRFCR_WCTL (0x40000000) - -/* Bit definitions and macros for MCF_FEC_FECRLRFP */ -#define MCF_FEC_FECRLRFP_LRFP(x) (((x)&0x00000FFF)<<0) - -/* Bit definitions and macros for MCF_FEC_FECRLWFP */ -#define MCF_FEC_FECRLWFP_LWFP(x) (((x)&0x00000FFF)<<0) - -/* Bit definitions and macros for MCF_FEC_FECRFAR */ -#define MCF_FEC_FECRFAR_ALARM(x) (((x)&0x00000FFF)<<0) - -/* Bit definitions and macros for MCF_FEC_FECRFRP */ -#define MCF_FEC_FECRFRP_READ(x) (((x)&0x00000FFF)<<0) - -/* Bit definitions and macros for MCF_FEC_FECRFWP */ -#define MCF_FEC_FECRFWP_WRITE(x) (((x)&0x00000FFF)<<0) - -/* Bit definitions and macros for MCF_FEC_FECTFDR */ -#define MCF_FEC_FECTFDR_TFCW_TC (0x04000000) -#define MCF_FEC_FECTFDR_TFCW_ABC (0x02000000) -#define MCF_FEC_FECTFDR_ADDR0 ((void*)(&__MBAR[0x0091A4])) -#define MCF_FEC_FECTFDR_ADDR1 ((void*)(&__MBAR[0x0099A4])) -#define MCF_FEC_FECTFDR_ADDR(x) ((void*)(&__MBAR[0x0091A4+(0x800*ch)])) - -/* Bit definitions and macros for MCF_FEC_FECTFSR */ -#define MCF_FEC_FECTFSR_EMT (0x00010000) -#define MCF_FEC_FECTFSR_ALARM (0x00020000) -#define MCF_FEC_FECTFSR_FU (0x00040000) -#define MCF_FEC_FECTFSR_FR (0x00080000) -#define MCF_FEC_FECTFSR_OF (0x00100000) -#define MCF_FEC_FECTFSR_UP (0x00200000) -#define MCF_FEC_FECTFSR_FAE (0x00800000) -#define MCF_FEC_FECTFSR_FRM(x) (((x)&0x0000000F)<<24) -#define MCF_FEC_FECTFSR_TXW (0x40000000) -#define MCF_FEC_FECTFSR_IP (0x80000000) - -/* Bit definitions and macros for MCF_FEC_FECTFCR */ -#define MCF_FEC_FECTFCR_RESERVED (0x00200000) -#define MCF_FEC_FECTFCR_COUNTER(x) (((x)&0x0000FFFF)<<0|0x00200000) -#define MCF_FEC_FECTFCR_TXW_MSK (0x00240000) -#define MCF_FEC_FECTFCR_OF_MSK (0x00280000) -#define MCF_FEC_FECTFCR_UF_MSK (0x00300000) -#define MCF_FEC_FECTFCR_FAE_MSK (0x00600000) -#define MCF_FEC_FECTFCR_IP_MSK (0x00A00000) -#define MCF_FEC_FECTFCR_GR(x) (((x)&0x00000007)<<24|0x00200000) -#define MCF_FEC_FECTFCR_FRM (0x08200000) -#define MCF_FEC_FECTFCR_TIMER (0x10200000) -#define MCF_FEC_FECTFCR_WFR (0x20200000) -#define MCF_FEC_FECTFCR_WCTL (0x40200000) - -/* Bit definitions and macros for MCF_FEC_FECTLRFP */ -#define MCF_FEC_FECTLRFP_LRFP(x) (((x)&0x00000FFF)<<0) - -/* Bit definitions and macros for MCF_FEC_FECTLWFP */ -#define MCF_FEC_FECTLWFP_LWFP(x) (((x)&0x00000FFF)<<0) - -/* Bit definitions and macros for MCF_FEC_FECTFAR */ -#define MCF_FEC_FECTFAR_ALARM(x) (((x)&0x00000FFF)<<0) - -/* Bit definitions and macros for MCF_FEC_FECTFRP */ -#define MCF_FEC_FECTFRP_READ(x) (((x)&0x00000FFF)<<0) - -/* Bit definitions and macros for MCF_FEC_FECTFWP */ -#define MCF_FEC_FECTFWP_WRITE(x) (((x)&0x00000FFF)<<0) - -/* Bit definitions and macros for MCF_FEC_FRST */ -#define MCF_FEC_FRST_RST_CTL (0x01000000) -#define MCF_FEC_FRST_SW_RST (0x02000000) - -/* Bit definitions and macros for MCF_FEC_CTCWR */ -#define MCF_FEC_CTCWR_TFCW (0x01000000) -#define MCF_FEC_CTCWR_CRC (0x02000000) - - -struct mcf54xx_fec -{ - vuint32_t RES0; - vuint32_t eir; // 004 - vuint32_t eimr; // 008 - vuint32_t RES1[6]; - vuint32_t ecr; // 024 - vuint32_t RES2[6]; - vuint32_t mmfr; // 040 - vuint32_t mscr; // 044 - vuint32_t RES3[7]; - vuint32_t mibc; // 064 - vuint32_t RES4[7]; - vuint32_t rcr; // 084 - vuint32_t r_hash; // 088 - vuint32_t RES5[14]; - vuint32_t tcr; // 0c4 - vuint32_t RES6[7]; - vuint32_t palr; // 0e4 - vuint32_t paur; // 0e8 - vuint32_t opd; // 0ec - vuint32_t RES7[10]; - vuint32_t iaur; // 118 - vuint32_t ialr; // 11c - vuint32_t gaur; // 120 - vuint32_t galr; // 124 - vuint32_t RES8[7]; - vuint32_t fectfwr; // 144 - vuint32_t RES8a[15]; - vuint32_t fecrfdr; // 184 - vuint32_t fecrfsr; // 188 - vuint32_t fecrfcr; // 18c - vuint32_t fecrlrfp; // 190 - vuint32_t fecrlwfp; // 194 - vuint32_t fecrfar; // 198 - vuint32_t fecrfrp; // 19c - vuint32_t fecrfwp; // 1a0 - vuint32_t fectfdr; // 1a4 - vuint32_t fectfsr; // 1a8 - vuint32_t fectfcr; // 1ac - vuint32_t fectlrfp; // 1b0 - vuint32_t fectlwfp; // 1b4 - vuint32_t fectfar; // 1b8 - vuint32_t fectfrp; // 1bc - vuint32_t fectfwp; // 1c0 - vuint32_t frst; // 1c4 - vuint32_t ctcwr; // 1c8 - vuint32_t RES9[13]; - - /* MIB Counters Memory Map */ - vuint32_t rmon_t_drop; // 200 - vuint32_t rmon_t_packets; // 204 - vuint32_t rmon_t_bc_pkt; // 208 - vuint32_t rmon_t_mc_pkt; // 20C - vuint32_t rmon_t_crc_align; // 210 - vuint32_t rmon_t_undersize; // 214 - vuint32_t rmon_t_oversize; // 218 - vuint32_t rmon_t_frag; // 21C - vuint32_t rmon_t_jab; // 220 - vuint32_t rmon_t_col; // 224 - vuint32_t rmon_t_p64; // 228 - vuint32_t rmon_t_p65to127; // 22C - vuint32_t rmon_t_p128to255; // 230 - vuint32_t rmon_t_p256to511; // 234 - vuint32_t rmon_t_p512to1023; // 238 - vuint32_t rmon_t_p1024to2047; // 23C - vuint32_t rmon_t_p_gte2048; // 240 - vuint32_t rmon_t_octets; // 244 - vuint32_t ieee_t_drop; // 248 - vuint32_t ieee_t_frame_ok; // 24C - vuint32_t ieee_t_1col; // 250 - vuint32_t ieee_t_mcol; // 254 - vuint32_t ieee_t_def; // 258 - vuint32_t ieee_t_lcol; // 25C - vuint32_t ieee_t_excol; // 260 - vuint32_t ieee_t_macerr; // 264 - vuint32_t ieee_t_cserr; // 268 - vuint32_t ieee_t_sqe; // 26C - vuint32_t ieee_t_fdxfc; // 270 - vuint32_t ieee_t_octets_ok; // 274 - vuint32_t RES10[2]; - - vuint32_t rmon_r_drop; // 280 - vuint32_t rmon_r_packets; // 284 - vuint32_t rmon_r_bc_pkt; // 288 - vuint32_t rmon_r_mc_pkt; // 28C - vuint32_t rmon_r_crc_align; // 290 - vuint32_t rmon_r_undersize; // 294 - vuint32_t rmon_r_oversize; // 298 - vuint32_t rmon_r_frag; // 29C - vuint32_t rmon_r_jab; // 2A0 - vuint32_t rmon_r_resvd_0; // 2A4 - vuint32_t rmon_r_p64; // 2A8 - vuint32_t rmon_r_p65to127; // 2AC - vuint32_t rmon_r_p128to255; // 2B0 - vuint32_t rmon_r_p256to511; // 2B4 - vuint32_t rmon_r_512to1023; // 2B8 - vuint32_t rmon_r_1024to2047; // 2BC - vuint32_t rmon_r_p_gte2048; // 2C0 - vuint32_t rmon_r_octets; // 2C4 - vuint32_t ieee_r_drop; // 2C8 - vuint32_t ieee_r_frame_ok; // 2CC - vuint32_t ieee_r_crc; // 2D0 - vuint32_t ieee_r_align; // 2D4 - vuint32_t ieee_r_macerr; // 2D8 - vuint32_t ieee_r_fdxfc; // 2DC - vuint32_t ieee_r_octets_ok; // 2e0 -}; - -#define MCF_FEC_ADDR(ch) ((void*)(&__MBAR[0x009000+(0x800*ch)])) -#define MCF_FEC_SIZE(ch) ((uint32_t)(0x800)) - -#endif /* __MCF548X_FEC_H__ */ diff --git a/arch/m68k/include/asm/coldfire/mcf548x/mcf548x_gpio.h b/arch/m68k/include/asm/coldfire/mcf548x/mcf548x_gpio.h deleted file mode 100644 index d2200714f..000000000 --- a/arch/m68k/include/asm/coldfire/mcf548x/mcf548x_gpio.h +++ /dev/null @@ -1,708 +0,0 @@ -/* - * Copyright (c) 2008 Carsten Schlote - * See file CREDITS for list of people who contributed to this project. - * - * This file is part of barebox. - * - * barebox is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * barebox is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with barebox. If not, see . - */ - -/** @file - * Register and bit definitions for the MCF548X and MCF547x - * General Purpose I/O (GPIO) - */ -#ifndef __MCF548X_GPIO_H__ -#define __MCF548X_GPIO_H__ - -/* - * General Purpose I/O (GPIO) - */ - -/* Register read/write macros */ -#define MCF_GPIO_PODR_FBCTL (*(vuint8_t *)(&__MBAR[0x000A00])) -#define MCF_GPIO_PODR_FBCS (*(vuint8_t *)(&__MBAR[0x000A01])) -#define MCF_GPIO_PODR_DMA (*(vuint8_t *)(&__MBAR[0x000A02])) -#define MCF_GPIO_PODR_FEC0H (*(vuint8_t *)(&__MBAR[0x000A04])) -#define MCF_GPIO_PODR_FEC0L (*(vuint8_t *)(&__MBAR[0x000A05])) -#define MCF_GPIO_PODR_FEC1H (*(vuint8_t *)(&__MBAR[0x000A06])) -#define MCF_GPIO_PODR_FEC1L (*(vuint8_t *)(&__MBAR[0x000A07])) -#define MCF_GPIO_PODR_FECI2C (*(vuint8_t *)(&__MBAR[0x000A08])) -#define MCF_GPIO_PODR_PCIBG (*(vuint8_t *)(&__MBAR[0x000A09])) -#define MCF_GPIO_PODR_PCIBR (*(vuint8_t *)(&__MBAR[0x000A0A])) -#define MCF_GPIO_PODR_PSC3PSC2 (*(vuint8_t *)(&__MBAR[0x000A0C])) -#define MCF_GPIO_PODR_PSC1PSC0 (*(vuint8_t *)(&__MBAR[0x000A0D])) -#define MCF_GPIO_PODR_DSPI (*(vuint8_t *)(&__MBAR[0x000A0E])) -#define MCF_GPIO_PDDR_FBCTL (*(vuint8_t *)(&__MBAR[0x000A10])) -#define MCF_GPIO_PDDR_FBCS (*(vuint8_t *)(&__MBAR[0x000A11])) -#define MCF_GPIO_PDDR_DMA (*(vuint8_t *)(&__MBAR[0x000A12])) -#define MCF_GPIO_PDDR_FEC0H (*(vuint8_t *)(&__MBAR[0x000A14])) -#define MCF_GPIO_PDDR_FEC0L (*(vuint8_t *)(&__MBAR[0x000A15])) -#define MCF_GPIO_PDDR_FEC1H (*(vuint8_t *)(&__MBAR[0x000A16])) -#define MCF_GPIO_PDDR_FEC1L (*(vuint8_t *)(&__MBAR[0x000A17])) -#define MCF_GPIO_PDDR_FECI2C (*(vuint8_t *)(&__MBAR[0x000A18])) -#define MCF_GPIO_PDDR_PCIBG (*(vuint8_t *)(&__MBAR[0x000A19])) -#define MCF_GPIO_PDDR_PCIBR (*(vuint8_t *)(&__MBAR[0x000A1A])) -#define MCF_GPIO_PDDR_PSC3PSC2 (*(vuint8_t *)(&__MBAR[0x000A1C])) -#define MCF_GPIO_PDDR_PSC1PSC0 (*(vuint8_t *)(&__MBAR[0x000A1D])) -#define MCF_GPIO_PDDR_DSPI (*(vuint8_t *)(&__MBAR[0x000A1E])) -#define MCF_GPIO_PPDSDR_FBCTL (*(vuint8_t *)(&__MBAR[0x000A20])) -#define MCF_GPIO_PPDSDR_FBCS (*(vuint8_t *)(&__MBAR[0x000A21])) -#define MCF_GPIO_PPDSDR_DMA (*(vuint8_t *)(&__MBAR[0x000A22])) -#define MCF_GPIO_PPDSDR_FEC0H (*(vuint8_t *)(&__MBAR[0x000A24])) -#define MCF_GPIO_PPDSDR_FEC0L (*(vuint8_t *)(&__MBAR[0x000A25])) -#define MCF_GPIO_PPDSDR_FEC1H (*(vuint8_t *)(&__MBAR[0x000A26])) -#define MCF_GPIO_PPDSDR_FEC1L (*(vuint8_t *)(&__MBAR[0x000A27])) -#define MCF_GPIO_PPDSDR_FECI2C (*(vuint8_t *)(&__MBAR[0x000A28])) -#define MCF_GPIO_PPDSDR_PCIBG (*(vuint8_t *)(&__MBAR[0x000A29])) -#define MCF_GPIO_PPDSDR_PCIBR (*(vuint8_t *)(&__MBAR[0x000A2A])) -#define MCF_GPIO_PPDSDR_PSC3PSC2 (*(vuint8_t *)(&__MBAR[0x000A2C])) -#define MCF_GPIO_PPDSDR_PSC1PSC0 (*(vuint8_t *)(&__MBAR[0x000A2D])) -#define MCF_GPIO_PPDSDR_DSPI (*(vuint8_t *)(&__MBAR[0x000A2E])) -#define MCF_GPIO_PCLRR_FBCTL (*(vuint8_t *)(&__MBAR[0x000A30])) -#define MCF_GPIO_PCLRR_FBCS (*(vuint8_t *)(&__MBAR[0x000A31])) -#define MCF_GPIO_PCLRR_DMA (*(vuint8_t *)(&__MBAR[0x000A32])) -#define MCF_GPIO_PCLRR_FEC0H (*(vuint8_t *)(&__MBAR[0x000A34])) -#define MCF_GPIO_PCLRR_FEC0L (*(vuint8_t *)(&__MBAR[0x000A35])) -#define MCF_GPIO_PCLRR_FEC1H (*(vuint8_t *)(&__MBAR[0x000A36])) -#define MCF_GPIO_PCLRR_FEC1L (*(vuint8_t *)(&__MBAR[0x000A37])) -#define MCF_GPIO_PCLRR_FECI2C (*(vuint8_t *)(&__MBAR[0x000A38])) -#define MCF_GPIO_PCLRR_PCIBG (*(vuint8_t *)(&__MBAR[0x000A39])) -#define MCF_GPIO_PCLRR_PCIBR (*(vuint8_t *)(&__MBAR[0x000A3A])) -#define MCF_GPIO_PCLRR_PSC3PSC2 (*(vuint8_t *)(&__MBAR[0x000A3C])) -#define MCF_GPIO_PCLRR_PSC1PSC0 (*(vuint8_t *)(&__MBAR[0x000A3D])) -#define MCF_GPIO_PCLRR_DSPI (*(vuint8_t *)(&__MBAR[0x000A3E])) -#define MCF_GPIO_PAR_FBCTL (*(vuint16_t*)(&__MBAR[0x000A40])) -#define MCF_GPIO_PAR_FBCS (*(vuint8_t *)(&__MBAR[0x000A42])) -#define MCF_GPIO_PAR_DMA (*(vuint8_t *)(&__MBAR[0x000A43])) -#define MCF_GPIO_PAR_FECI2CIRQ (*(vuint16_t*)(&__MBAR[0x000A44])) -#define MCF_GPIO_PAR_PCIBG (*(vuint16_t*)(&__MBAR[0x000A48])) -#define MCF_GPIO_PAR_PCIBR (*(vuint16_t*)(&__MBAR[0x000A4A])) -#define MCF_GPIO_PAR_PSC3 (*(vuint8_t *)(&__MBAR[0x000A4C])) -#define MCF_GPIO_PAR_PSC2 (*(vuint8_t *)(&__MBAR[0x000A4D])) -#define MCF_GPIO_PAR_PSC1 (*(vuint8_t *)(&__MBAR[0x000A4E])) -#define MCF_GPIO_PAR_PSC0 (*(vuint8_t *)(&__MBAR[0x000A4F])) -#define MCF_GPIO_PAR_DSPI (*(vuint16_t*)(&__MBAR[0x000A50])) -#define MCF_GPIO_PAR_TIMER (*(vuint8_t *)(&__MBAR[0x000A52])) - -/* Bit definitions and macros for MCF_GPIO_PODR_FBCTL */ -#define MCF_GPIO_PODR_FBCTL_PODR_FBCTL0 (0x01) -#define MCF_GPIO_PODR_FBCTL_PODR_FBCTL1 (0x02) -#define MCF_GPIO_PODR_FBCTL_PODR_FBCTL2 (0x04) -#define MCF_GPIO_PODR_FBCTL_PODR_FBCTL3 (0x08) -#define MCF_GPIO_PODR_FBCTL_PODR_FBCTL4 (0x10) -#define MCF_GPIO_PODR_FBCTL_PODR_FBCTL5 (0x20) -#define MCF_GPIO_PODR_FBCTL_PODR_FBCTL6 (0x40) -#define MCF_GPIO_PODR_FBCTL_PODR_FBCTL7 (0x80) - -/* Bit definitions and macros for MCF_GPIO_PODR_FBCS */ -#define MCF_GPIO_PODR_FBCS_PODR_FBCS1 (0x02) -#define MCF_GPIO_PODR_FBCS_PODR_FBCS2 (0x04) -#define MCF_GPIO_PODR_FBCS_PODR_FBCS3 (0x08) -#define MCF_GPIO_PODR_FBCS_PODR_FBCS4 (0x10) -#define MCF_GPIO_PODR_FBCS_PODR_FBCS5 (0x20) - -/* Bit definitions and macros for MCF_GPIO_PODR_DMA */ -#define MCF_GPIO_PODR_DMA_PODR_DMA0 (0x01) -#define MCF_GPIO_PODR_DMA_PODR_DMA1 (0x02) -#define MCF_GPIO_PODR_DMA_PODR_DMA2 (0x04) -#define MCF_GPIO_PODR_DMA_PODR_DMA3 (0x08) - -/* Bit definitions and macros for MCF_GPIO_PODR_FEC0H */ -#define MCF_GPIO_PODR_FEC0H_PODR_FEC0H0 (0x01) -#define MCF_GPIO_PODR_FEC0H_PODR_FEC0H1 (0x02) -#define MCF_GPIO_PODR_FEC0H_PODR_FEC0H2 (0x04) -#define MCF_GPIO_PODR_FEC0H_PODR_FEC0H3 (0x08) -#define MCF_GPIO_PODR_FEC0H_PODR_FEC0H4 (0x10) -#define MCF_GPIO_PODR_FEC0H_PODR_FEC0H5 (0x20) -#define MCF_GPIO_PODR_FEC0H_PODR_FEC0H6 (0x40) -#define MCF_GPIO_PODR_FEC0H_PODR_FEC0H7 (0x80) - -/* Bit definitions and macros for MCF_GPIO_PODR_FEC0L */ -#define MCF_GPIO_PODR_FEC0L_PODR_FEC0L0 (0x01) -#define MCF_GPIO_PODR_FEC0L_PODR_FEC0L1 (0x02) -#define MCF_GPIO_PODR_FEC0L_PODR_FEC0L2 (0x04) -#define MCF_GPIO_PODR_FEC0L_PODR_FEC0L3 (0x08) -#define MCF_GPIO_PODR_FEC0L_PODR_FEC0L4 (0x10) -#define MCF_GPIO_PODR_FEC0L_PODR_FEC0L5 (0x20) -#define MCF_GPIO_PODR_FEC0L_PODR_FEC0L6 (0x40) -#define MCF_GPIO_PODR_FEC0L_PODR_FEC0L7 (0x80) - -/* Bit definitions and macros for MCF_GPIO_PODR_FEC1H */ -#define MCF_GPIO_PODR_FEC1H_PODR_FEC1H0 (0x01) -#define MCF_GPIO_PODR_FEC1H_PODR_FEC1H1 (0x02) -#define MCF_GPIO_PODR_FEC1H_PODR_FEC1H2 (0x04) -#define MCF_GPIO_PODR_FEC1H_PODR_FEC1H3 (0x08) -#define MCF_GPIO_PODR_FEC1H_PODR_FEC1H4 (0x10) -#define MCF_GPIO_PODR_FEC1H_PODR_FEC1H5 (0x20) -#define MCF_GPIO_PODR_FEC1H_PODR_FEC1H6 (0x40) -#define MCF_GPIO_PODR_FEC1H_PODR_FEC1H7 (0x80) - -/* Bit definitions and macros for MCF_GPIO_PODR_FEC1L */ -#define MCF_GPIO_PODR_FEC1L_PODR_FEC1L0 (0x01) -#define MCF_GPIO_PODR_FEC1L_PODR_FEC1L1 (0x02) -#define MCF_GPIO_PODR_FEC1L_PODR_FEC1L2 (0x04) -#define MCF_GPIO_PODR_FEC1L_PODR_FEC1L3 (0x08) -#define MCF_GPIO_PODR_FEC1L_PODR_FEC1L4 (0x10) -#define MCF_GPIO_PODR_FEC1L_PODR_FEC1L5 (0x20) -#define MCF_GPIO_PODR_FEC1L_PODR_FEC1L6 (0x40) -#define MCF_GPIO_PODR_FEC1L_PODR_FEC1L7 (0x80) - -/* Bit definitions and macros for MCF_GPIO_PODR_FECI2C */ -#define MCF_GPIO_PODR_FECI2C_PODR_FECI2C0 (0x01) -#define MCF_GPIO_PODR_FECI2C_PODR_FECI2C1 (0x02) -#define MCF_GPIO_PODR_FECI2C_PODR_FECI2C2 (0x04) -#define MCF_GPIO_PODR_FECI2C_PODR_FECI2C3 (0x08) - -/* Bit definitions and macros for MCF_GPIO_PODR_PCIBG */ -#define MCF_GPIO_PODR_PCIBG_PODR_PCIBG0 (0x01) -#define MCF_GPIO_PODR_PCIBG_PODR_PCIBG1 (0x02) -#define MCF_GPIO_PODR_PCIBG_PODR_PCIBG2 (0x04) -#define MCF_GPIO_PODR_PCIBG_PODR_PCIBG3 (0x08) -#define MCF_GPIO_PODR_PCIBG_PODR_PCIBG4 (0x10) - -/* Bit definitions and macros for MCF_GPIO_PODR_PCIBR */ -#define MCF_GPIO_PODR_PCIBR_PODR_PCIBR0 (0x01) -#define MCF_GPIO_PODR_PCIBR_PODR_PCIBR1 (0x02) -#define MCF_GPIO_PODR_PCIBR_PODR_PCIBR2 (0x04) -#define MCF_GPIO_PODR_PCIBR_PODR_PCIBR3 (0x08) -#define MCF_GPIO_PODR_PCIBR_PODR_PCIBR4 (0x10) - -/* Bit definitions and macros for MCF_GPIO_PODR_PSC3PSC2 */ -#define MCF_GPIO_PODR_PSC3PSC2_PODR_PSC3PSC20 (0x01) -#define MCF_GPIO_PODR_PSC3PSC2_PODR_PSC3PSC21 (0x02) -#define MCF_GPIO_PODR_PSC3PSC2_PODR_PSC3PSC22 (0x04) -#define MCF_GPIO_PODR_PSC3PSC2_PODR_PSC3PSC23 (0x08) -#define MCF_GPIO_PODR_PSC3PSC2_PODR_PSC3PSC24 (0x10) -#define MCF_GPIO_PODR_PSC3PSC2_PODR_PSC3PSC25 (0x20) -#define MCF_GPIO_PODR_PSC3PSC2_PODR_PSC3PSC26 (0x40) -#define MCF_GPIO_PODR_PSC3PSC2_PODR_PSC3PSC27 (0x80) - -/* Bit definitions and macros for MCF_GPIO_PODR_PSC1PSC0 */ -#define MCF_GPIO_PODR_PSC1PSC0_PODR_PSC1PSC00 (0x01) -#define MCF_GPIO_PODR_PSC1PSC0_PODR_PSC1PSC01 (0x02) -#define MCF_GPIO_PODR_PSC1PSC0_PODR_PSC1PSC02 (0x04) -#define MCF_GPIO_PODR_PSC1PSC0_PODR_PSC1PSC03 (0x08) -#define MCF_GPIO_PODR_PSC1PSC0_PODR_PSC1PSC04 (0x10) -#define MCF_GPIO_PODR_PSC1PSC0_PODR_PSC1PSC05 (0x20) -#define MCF_GPIO_PODR_PSC1PSC0_PODR_PSC1PSC06 (0x40) -#define MCF_GPIO_PODR_PSC1PSC0_PODR_PSC1PSC07 (0x80) - -/* Bit definitions and macros for MCF_GPIO_PODR_DSPI */ -#define MCF_GPIO_PODR_DSPI_PODR_DSPI0 (0x01) -#define MCF_GPIO_PODR_DSPI_PODR_DSPI1 (0x02) -#define MCF_GPIO_PODR_DSPI_PODR_DSPI2 (0x04) -#define MCF_GPIO_PODR_DSPI_PODR_DSPI3 (0x08) -#define MCF_GPIO_PODR_DSPI_PODR_DSPI4 (0x10) -#define MCF_GPIO_PODR_DSPI_PODR_DSPI5 (0x20) -#define MCF_GPIO_PODR_DSPI_PODR_DSPI6 (0x40) - -/* Bit definitions and macros for MCF_GPIO_PDDR_FBCTL */ -#define MCF_GPIO_PDDR_FBCTL_PDDR_FBCTL0 (0x01) -#define MCF_GPIO_PDDR_FBCTL_PDDR_FBCTL1 (0x02) -#define MCF_GPIO_PDDR_FBCTL_PDDR_FBCTL2 (0x04) -#define MCF_GPIO_PDDR_FBCTL_PDDR_FBCTL3 (0x08) -#define MCF_GPIO_PDDR_FBCTL_PDDR_FBCTL4 (0x10) -#define MCF_GPIO_PDDR_FBCTL_PDDR_FBCTL5 (0x20) -#define MCF_GPIO_PDDR_FBCTL_PDDR_FBCTL6 (0x40) -#define MCF_GPIO_PDDR_FBCTL_PDDR_FBCTL7 (0x80) - -/* Bit definitions and macros for MCF_GPIO_PDDR_FBCS */ -#define MCF_GPIO_PDDR_FBCS_PDDR_FBCS1 (0x02) -#define MCF_GPIO_PDDR_FBCS_PDDR_FBCS2 (0x04) -#define MCF_GPIO_PDDR_FBCS_PDDR_FBCS3 (0x08) -#define MCF_GPIO_PDDR_FBCS_PDDR_FBCS4 (0x10) -#define MCF_GPIO_PDDR_FBCS_PDDR_FBCS5 (0x20) - -/* Bit definitions and macros for MCF_GPIO_PDDR_DMA */ -#define MCF_GPIO_PDDR_DMA_PDDR_DMA0 (0x01) -#define MCF_GPIO_PDDR_DMA_PDDR_DMA1 (0x02) -#define MCF_GPIO_PDDR_DMA_PDDR_DMA2 (0x04) -#define MCF_GPIO_PDDR_DMA_PDDR_DMA3 (0x08) - -/* Bit definitions and macros for MCF_GPIO_PDDR_FEC0H */ -#define MCF_GPIO_PDDR_FEC0H_PDDR_FEC0H0 (0x01) -#define MCF_GPIO_PDDR_FEC0H_PDDR_FEC0H1 (0x02) -#define MCF_GPIO_PDDR_FEC0H_PDDR_FEC0H2 (0x04) -#define MCF_GPIO_PDDR_FEC0H_PDDR_FEC0H3 (0x08) -#define MCF_GPIO_PDDR_FEC0H_PDDR_FEC0H4 (0x10) -#define MCF_GPIO_PDDR_FEC0H_PDDR_FEC0H5 (0x20) -#define MCF_GPIO_PDDR_FEC0H_PDDR_FEC0H6 (0x40) -#define MCF_GPIO_PDDR_FEC0H_PDDR_FEC0H7 (0x80) - -/* Bit definitions and macros for MCF_GPIO_PDDR_FEC0L */ -#define MCF_GPIO_PDDR_FEC0L_PDDR_FEC0L0 (0x01) -#define MCF_GPIO_PDDR_FEC0L_PDDR_FEC0L1 (0x02) -#define MCF_GPIO_PDDR_FEC0L_PDDR_FEC0L2 (0x04) -#define MCF_GPIO_PDDR_FEC0L_PDDR_FEC0L3 (0x08) -#define MCF_GPIO_PDDR_FEC0L_PDDR_FEC0L4 (0x10) -#define MCF_GPIO_PDDR_FEC0L_PDDR_FEC0L5 (0x20) -#define MCF_GPIO_PDDR_FEC0L_PDDR_FEC0L6 (0x40) -#define MCF_GPIO_PDDR_FEC0L_PDDR_FEC0L7 (0x80) - -/* Bit definitions and macros for MCF_GPIO_PDDR_FEC1H */ -#define MCF_GPIO_PDDR_FEC1H_PDDR_FEC1H0 (0x01) -#define MCF_GPIO_PDDR_FEC1H_PDDR_FEC1H1 (0x02) -#define MCF_GPIO_PDDR_FEC1H_PDDR_FEC1H2 (0x04) -#define MCF_GPIO_PDDR_FEC1H_PDDR_FEC1H3 (0x08) -#define MCF_GPIO_PDDR_FEC1H_PDDR_FEC1H4 (0x10) -#define MCF_GPIO_PDDR_FEC1H_PDDR_FEC1H5 (0x20) -#define MCF_GPIO_PDDR_FEC1H_PDDR_FEC1H6 (0x40) -#define MCF_GPIO_PDDR_FEC1H_PDDR_FEC1H7 (0x80) - -/* Bit definitions and macros for MCF_GPIO_PDDR_FEC1L */ -#define MCF_GPIO_PDDR_FEC1L_PDDR_FEC1L0 (0x01) -#define MCF_GPIO_PDDR_FEC1L_PDDR_FEC1L1 (0x02) -#define MCF_GPIO_PDDR_FEC1L_PDDR_FEC1L2 (0x04) -#define MCF_GPIO_PDDR_FEC1L_PDDR_FEC1L3 (0x08) -#define MCF_GPIO_PDDR_FEC1L_PDDR_FEC1L4 (0x10) -#define MCF_GPIO_PDDR_FEC1L_PDDR_FEC1L5 (0x20) -#define MCF_GPIO_PDDR_FEC1L_PDDR_FEC1L6 (0x40) -#define MCF_GPIO_PDDR_FEC1L_PDDR_FEC1L7 (0x80) - -/* Bit definitions and macros for MCF_GPIO_PDDR_FECI2C */ -#define MCF_GPIO_PDDR_FECI2C_PDDR_FECI2C0 (0x01) -#define MCF_GPIO_PDDR_FECI2C_PDDR_FECI2C1 (0x02) -#define MCF_GPIO_PDDR_FECI2C_PDDR_FECI2C2 (0x04) -#define MCF_GPIO_PDDR_FECI2C_PDDR_FECI2C3 (0x08) - -/* Bit definitions and macros for MCF_GPIO_PDDR_PCIBG */ -#define MCF_GPIO_PDDR_PCIBG_PDDR_PCIBG0 (0x01) -#define MCF_GPIO_PDDR_PCIBG_PDDR_PCIBG1 (0x02) -#define MCF_GPIO_PDDR_PCIBG_PDDR_PCIBG2 (0x04) -#define MCF_GPIO_PDDR_PCIBG_PDDR_PCIBG3 (0x08) -#define MCF_GPIO_PDDR_PCIBG_PDDR_PCIBG4 (0x10) - -/* Bit definitions and macros for MCF_GPIO_PDDR_PCIBR */ -#define MCF_GPIO_PDDR_PCIBR_PDDR_PCIBR0 (0x01) -#define MCF_GPIO_PDDR_PCIBR_PDDR_PCIBR1 (0x02) -#define MCF_GPIO_PDDR_PCIBR_PDDR_PCIBR2 (0x04) -#define MCF_GPIO_PDDR_PCIBR_PDDR_PCIBR3 (0x08) -#define MCF_GPIO_PDDR_PCIBR_PDDR_PCIBR4 (0x10) - -/* Bit definitions and macros for MCF_GPIO_PDDR_PSC3PSC2 */ -#define MCF_GPIO_PDDR_PSC3PSC2_PDDR_PSC3PSC20 (0x01) -#define MCF_GPIO_PDDR_PSC3PSC2_PDDR_PSC3PSC21 (0x02) -#define MCF_GPIO_PDDR_PSC3PSC2_PDDR_PSC3PSC22 (0x04) -#define MCF_GPIO_PDDR_PSC3PSC2_PDDR_PSC3PSC23 (0x08) -#define MCF_GPIO_PDDR_PSC3PSC2_PDDR_PSC3PSC24 (0x10) -#define MCF_GPIO_PDDR_PSC3PSC2_PDDR_PSC3PSC25 (0x20) -#define MCF_GPIO_PDDR_PSC3PSC2_PDDR_PSC3PSC26 (0x40) -#define MCF_GPIO_PDDR_PSC3PSC2_PDDR_PSC3PSC27 (0x80) - -/* Bit definitions and macros for MCF_GPIO_PDDR_PSC1PSC0 */ -#define MCF_GPIO_PDDR_PSC1PSC0_PDDR_PSC1PSC00 (0x01) -#define MCF_GPIO_PDDR_PSC1PSC0_PDDR_PSC1PSC01 (0x02) -#define MCF_GPIO_PDDR_PSC1PSC0_PDDR_PSC1PSC02 (0x04) -#define MCF_GPIO_PDDR_PSC1PSC0_PDDR_PSC1PSC03 (0x08) -#define MCF_GPIO_PDDR_PSC1PSC0_PDDR_PSC1PSC04 (0x10) -#define MCF_GPIO_PDDR_PSC1PSC0_PDDR_PSC1PSC05 (0x20) -#define MCF_GPIO_PDDR_PSC1PSC0_PDDR_PSC1PSC06 (0x40) -#define MCF_GPIO_PDDR_PSC1PSC0_PDDR_PSC1PSC07 (0x80) - -/* Bit definitions and macros for MCF_GPIO_PDDR_DSPI */ -#define MCF_GPIO_PDDR_DSPI_PDDR_DSPI0 (0x01) -#define MCF_GPIO_PDDR_DSPI_PDDR_DSPI1 (0x02) -#define MCF_GPIO_PDDR_DSPI_PDDR_DSPI2 (0x04) -#define MCF_GPIO_PDDR_DSPI_PDDR_DSPI3 (0x08) -#define MCF_GPIO_PDDR_DSPI_PDDR_DSPI4 (0x10) -#define MCF_GPIO_PDDR_DSPI_PDDR_DSPI5 (0x20) -#define MCF_GPIO_PDDR_DSPI_PDDR_DSPI6 (0x40) - -/* Bit definitions and macros for MCF_GPIO_PPDSDR_FBCTL */ -#define MCF_GPIO_PPDSDR_FBCTL_PPDSDR_FBCTL0 (0x01) -#define MCF_GPIO_PPDSDR_FBCTL_PPDSDR_FBCTL1 (0x02) -#define MCF_GPIO_PPDSDR_FBCTL_PPDSDR_FBCTL2 (0x04) -#define MCF_GPIO_PPDSDR_FBCTL_PPDSDR_FBCTL3 (0x08) -#define MCF_GPIO_PPDSDR_FBCTL_PPDSDR_FBCTL4 (0x10) -#define MCF_GPIO_PPDSDR_FBCTL_PPDSDR_FBCTL5 (0x20) -#define MCF_GPIO_PPDSDR_FBCTL_PPDSDR_FBCTL6 (0x40) -#define MCF_GPIO_PPDSDR_FBCTL_PPDSDR_FBCTL7 (0x80) - -/* Bit definitions and macros for MCF_GPIO_PPDSDR_FBCS */ -#define MCF_GPIO_PPDSDR_FBCS_PPDSDR_FBCS1 (0x02) -#define MCF_GPIO_PPDSDR_FBCS_PPDSDR_FBCS2 (0x04) -#define MCF_GPIO_PPDSDR_FBCS_PPDSDR_FBCS3 (0x08) -#define MCF_GPIO_PPDSDR_FBCS_PPDSDR_FBCS4 (0x10) -#define MCF_GPIO_PPDSDR_FBCS_PPDSDR_FBCS5 (0x20) - -/* Bit definitions and macros for MCF_GPIO_PPDSDR_DMA */ -#define MCF_GPIO_PPDSDR_DMA_PPDSDR_DMA0 (0x01) -#define MCF_GPIO_PPDSDR_DMA_PPDSDR_DMA1 (0x02) -#define MCF_GPIO_PPDSDR_DMA_PPDSDR_DMA2 (0x04) -#define MCF_GPIO_PPDSDR_DMA_PPDSDR_DMA3 (0x08) - -/* Bit definitions and macros for MCF_GPIO_PPDSDR_FEC0H */ -#define MCF_GPIO_PPDSDR_FEC0H_PPDSDR_FEC0H0 (0x01) -#define MCF_GPIO_PPDSDR_FEC0H_PPDSDR_FEC0H1 (0x02) -#define MCF_GPIO_PPDSDR_FEC0H_PPDSDR_FEC0H2 (0x04) -#define MCF_GPIO_PPDSDR_FEC0H_PPDSDR_FEC0H3 (0x08) -#define MCF_GPIO_PPDSDR_FEC0H_PPDSDR_FEC0H4 (0x10) -#define MCF_GPIO_PPDSDR_FEC0H_PPDSDR_FEC0H5 (0x20) -#define MCF_GPIO_PPDSDR_FEC0H_PPDSDR_FEC0H6 (0x40) -#define MCF_GPIO_PPDSDR_FEC0H_PPDSDR_FEC0H7 (0x80) - -/* Bit definitions and macros for MCF_GPIO_PPDSDR_FEC0L */ -#define MCF_GPIO_PPDSDR_FEC0L_PPDSDR_FEC0L0 (0x01) -#define MCF_GPIO_PPDSDR_FEC0L_PPDSDR_FEC0L1 (0x02) -#define MCF_GPIO_PPDSDR_FEC0L_PPDSDR_FEC0L2 (0x04) -#define MCF_GPIO_PPDSDR_FEC0L_PPDSDR_FEC0L3 (0x08) -#define MCF_GPIO_PPDSDR_FEC0L_PPDSDR_FEC0L4 (0x10) -#define MCF_GPIO_PPDSDR_FEC0L_PPDSDR_FEC0L5 (0x20) -#define MCF_GPIO_PPDSDR_FEC0L_PPDSDR_FEC0L6 (0x40) -#define MCF_GPIO_PPDSDR_FEC0L_PPDSDR_FEC0L7 (0x80) - -/* Bit definitions and macros for MCF_GPIO_PPDSDR_FEC1H */ -#define MCF_GPIO_PPDSDR_FEC1H_PPDSDR_FEC1H0 (0x01) -#define MCF_GPIO_PPDSDR_FEC1H_PPDSDR_FEC1H1 (0x02) -#define MCF_GPIO_PPDSDR_FEC1H_PPDSDR_FEC1H2 (0x04) -#define MCF_GPIO_PPDSDR_FEC1H_PPDSDR_FEC1H3 (0x08) -#define MCF_GPIO_PPDSDR_FEC1H_PPDSDR_FEC1H4 (0x10) -#define MCF_GPIO_PPDSDR_FEC1H_PPDSDR_FEC1H5 (0x20) -#define MCF_GPIO_PPDSDR_FEC1H_PPDSDR_FEC1H6 (0x40) -#define MCF_GPIO_PPDSDR_FEC1H_PPDSDR_FEC1H7 (0x80) - -/* Bit definitions and macros for MCF_GPIO_PPDSDR_FEC1L */ -#define MCF_GPIO_PPDSDR_FEC1L_PPDSDR_FEC1L0 (0x01) -#define MCF_GPIO_PPDSDR_FEC1L_PPDSDR_FEC1L1 (0x02) -#define MCF_GPIO_PPDSDR_FEC1L_PPDSDR_FEC1L2 (0x04) -#define MCF_GPIO_PPDSDR_FEC1L_PPDSDR_FEC1L3 (0x08) -#define MCF_GPIO_PPDSDR_FEC1L_PPDSDR_FEC1L4 (0x10) -#define MCF_GPIO_PPDSDR_FEC1L_PPDSDR_FEC1L5 (0x20) -#define MCF_GPIO_PPDSDR_FEC1L_PPDSDR_FEC1L6 (0x40) -#define MCF_GPIO_PPDSDR_FEC1L_PPDSDR_FEC1L7 (0x80) - -/* Bit definitions and macros for MCF_GPIO_PPDSDR_FECI2C */ -#define MCF_GPIO_PPDSDR_FECI2C_PPDSDR_FECI2C0 (0x01) -#define MCF_GPIO_PPDSDR_FECI2C_PPDSDR_FECI2C1 (0x02) -#define MCF_GPIO_PPDSDR_FECI2C_PPDSDR_FECI2C2 (0x04) -#define MCF_GPIO_PPDSDR_FECI2C_PPDSDR_FECI2C3 (0x08) - -/* Bit definitions and macros for MCF_GPIO_PPDSDR_PCIBG */ -#define MCF_GPIO_PPDSDR_PCIBG_PPDSDR_PCIBG0 (0x01) -#define MCF_GPIO_PPDSDR_PCIBG_PPDSDR_PCIBG1 (0x02) -#define MCF_GPIO_PPDSDR_PCIBG_PPDSDR_PCIBG2 (0x04) -#define MCF_GPIO_PPDSDR_PCIBG_PPDSDR_PCIBG3 (0x08) -#define MCF_GPIO_PPDSDR_PCIBG_PPDSDR_PCIBG4 (0x10) - -/* Bit definitions and macros for MCF_GPIO_PPDSDR_PCIBR */ -#define MCF_GPIO_PPDSDR_PCIBR_PPDSDR_PCIBR0 (0x01) -#define MCF_GPIO_PPDSDR_PCIBR_PPDSDR_PCIBR1 (0x02) -#define MCF_GPIO_PPDSDR_PCIBR_PPDSDR_PCIBR2 (0x04) -#define MCF_GPIO_PPDSDR_PCIBR_PPDSDR_PCIBR3 (0x08) -#define MCF_GPIO_PPDSDR_PCIBR_PPDSDR_PCIBR4 (0x10) - -/* Bit definitions and macros for MCF_GPIO_PPDSDR_PSC3PSC2 */ -#define MCF_GPIO_PPDSDR_PSC3PSC2_PPDSDR_PSC3PSC20 (0x01) -#define MCF_GPIO_PPDSDR_PSC3PSC2_PPDSDR_PSC3PSC21 (0x02) -#define MCF_GPIO_PPDSDR_PSC3PSC2_PPDSDR_PSC3PSC22 (0x04) -#define MCF_GPIO_PPDSDR_PSC3PSC2_PPDSDR_PSC3PSC23 (0x08) -#define MCF_GPIO_PPDSDR_PSC3PSC2_PDDR_PSC3PSC24 (0x10) -#define MCF_GPIO_PPDSDR_PSC3PSC2_PDDR_PSC3PSC25 (0x20) -#define MCF_GPIO_PPDSDR_PSC3PSC2_PPDSDR_PSC3PSC26 (0x40) -#define MCF_GPIO_PPDSDR_PSC3PSC2_PPDSDR_PSC3PSC27 (0x80) - -/* Bit definitions and macros for MCF_GPIO_PPDSDR_PSC1PSC0 */ -#define MCF_GPIO_PPDSDR_PSC1PSC0_PPDSDR_PSC1PSC00 (0x01) -#define MCF_GPIO_PPDSDR_PSC1PSC0_PDDR_PSC1PSC01 (0x02) -#define MCF_GPIO_PPDSDR_PSC1PSC0_PPDSDR_PSC1PSC02 (0x04) -#define MCF_GPIO_PPDSDR_PSC1PSC0_PDDR_PSC1PSC03 (0x08) -#define MCF_GPIO_PPDSDR_PSC1PSC0_PPDSDR_PSC1PSC04 (0x10) -#define MCF_GPIO_PPDSDR_PSC1PSC0_PPDSDR_PSC1PSC05 (0x20) -#define MCF_GPIO_PPDSDR_PSC1PSC0_PPDSDR_PSC1PSC06 (0x40) -#define MCF_GPIO_PPDSDR_PSC1PSC0_PPDSDR_PSC1PSC07 (0x80) - -/* Bit definitions and macros for MCF_GPIO_PPDSDR_DSPI */ -#define MCF_GPIO_PPDSDR_DSPI_PPDSDR_DSPI0 (0x01) -#define MCF_GPIO_PPDSDR_DSPI_PPDSDR_DSPI1 (0x02) -#define MCF_GPIO_PPDSDR_DSPI_PPDSDR_DSPI2 (0x04) -#define MCF_GPIO_PPDSDR_DSPI_PPDSDR_DSPI3 (0x08) -#define MCF_GPIO_PPDSDR_DSPI_PDDR_DSPI4 (0x10) -#define MCF_GPIO_PPDSDR_DSPI_PPDSDR_DSPI5 (0x20) -#define MCF_GPIO_PPDSDR_DSPI_PPDSDR_DSPI6 (0x40) - -/* Bit definitions and macros for MCF_GPIO_PCLRR_FBCTL */ -#define MCF_GPIO_PCLRR_FBCTL_PCLRR_FBCTL0 (0x01) -#define MCF_GPIO_PCLRR_FBCTL_PCLRR_FBCTL1 (0x02) -#define MCF_GPIO_PCLRR_FBCTL_PCLRR_FBCTL2 (0x04) -#define MCF_GPIO_PCLRR_FBCTL_PCLRR_FBCTL3 (0x08) -#define MCF_GPIO_PCLRR_FBCTL_PCLRR_FBCTL4 (0x10) -#define MCF_GPIO_PCLRR_FBCTL_PCLRR_FBCTL5 (0x20) -#define MCF_GPIO_PCLRR_FBCTL_PCLRR_FBCTL6 (0x40) -#define MCF_GPIO_PCLRR_FBCTL_PCLRR_FBCTL7 (0x80) - -/* Bit definitions and macros for MCF_GPIO_PCLRR_FBCS */ -#define MCF_GPIO_PCLRR_FBCS_PCLRR_FBCS1 (0x02) -#define MCF_GPIO_PCLRR_FBCS_PCLRR_FBCS2 (0x04) -#define MCF_GPIO_PCLRR_FBCS_PCLRR_FBCS3 (0x08) -#define MCF_GPIO_PCLRR_FBCS_PCLRR_FBCS4 (0x10) -#define MCF_GPIO_PCLRR_FBCS_PCLRR_FBCS5 (0x20) - -/* Bit definitions and macros for MCF_GPIO_PCLRR_DMA */ -#define MCF_GPIO_PCLRR_DMA_PCLRR_DMA0 (0x01) -#define MCF_GPIO_PCLRR_DMA_PCLRR_DMA1 (0x02) -#define MCF_GPIO_PCLRR_DMA_PCLRR_DMA2 (0x04) -#define MCF_GPIO_PCLRR_DMA_PCLRR_DMA3 (0x08) - -/* Bit definitions and macros for MCF_GPIO_PCLRR_FEC0H */ -#define MCF_GPIO_PCLRR_FEC0H_PCLRR_FEC0H0 (0x01) -#define MCF_GPIO_PCLRR_FEC0H_PCLRR_FEC0H1 (0x02) -#define MCF_GPIO_PCLRR_FEC0H_PCLRR_FEC0H2 (0x04) -#define MCF_GPIO_PCLRR_FEC0H_PCLRR_FEC0H3 (0x08) -#define MCF_GPIO_PCLRR_FEC0H_PCLRR_FEC0H4 (0x10) -#define MCF_GPIO_PCLRR_FEC0H_PCLRR_FEC0H5 (0x20) -#define MCF_GPIO_PCLRR_FEC0H_PCLRR_FEC0H6 (0x40) -#define MCF_GPIO_PCLRR_FEC0H_PCLRR_FEC0H7 (0x80) - -/* Bit definitions and macros for MCF_GPIO_PCLRR_FEC0L */ -#define MCF_GPIO_PCLRR_FEC0L_PCLRR_FEC0L0 (0x01) -#define MCF_GPIO_PCLRR_FEC0L_PODR_FEC0L1 (0x02) -#define MCF_GPIO_PCLRR_FEC0L_PCLRR_FEC0L2 (0x04) -#define MCF_GPIO_PCLRR_FEC0L_PCLRR_FEC0L3 (0x08) -#define MCF_GPIO_PCLRR_FEC0L_PODR_FEC0L4 (0x10) -#define MCF_GPIO_PCLRR_FEC0L_PODR_FEC0L5 (0x20) -#define MCF_GPIO_PCLRR_FEC0L_PODR_FEC0L6 (0x40) -#define MCF_GPIO_PCLRR_FEC0L_PCLRR_FEC0L7 (0x80) - -/* Bit definitions and macros for MCF_GPIO_PCLRR_FEC1H */ -#define MCF_GPIO_PCLRR_FEC1H_PCLRR_FEC1H0 (0x01) -#define MCF_GPIO_PCLRR_FEC1H_PCLRR_FEC1H1 (0x02) -#define MCF_GPIO_PCLRR_FEC1H_PCLRR_FEC1H2 (0x04) -#define MCF_GPIO_PCLRR_FEC1H_PODR_FEC1H3 (0x08) -#define MCF_GPIO_PCLRR_FEC1H_PODR_FEC1H4 (0x10) -#define MCF_GPIO_PCLRR_FEC1H_PCLRR_FEC1H5 (0x20) -#define MCF_GPIO_PCLRR_FEC1H_PCLRR_FEC1H6 (0x40) -#define MCF_GPIO_PCLRR_FEC1H_PCLRR_FEC1H7 (0x80) - -/* Bit definitions and macros for MCF_GPIO_PCLRR_FEC1L */ -#define MCF_GPIO_PCLRR_FEC1L_PCLRR_FEC1L0 (0x01) -#define MCF_GPIO_PCLRR_FEC1L_PCLRR_FEC1L1 (0x02) -#define MCF_GPIO_PCLRR_FEC1L_PCLRR_FEC1L2 (0x04) -#define MCF_GPIO_PCLRR_FEC1L_PCLRR_FEC1L3 (0x08) -#define MCF_GPIO_PCLRR_FEC1L_PODR_FEC1L4 (0x10) -#define MCF_GPIO_PCLRR_FEC1L_PCLRR_FEC1L5 (0x20) -#define MCF_GPIO_PCLRR_FEC1L_PCLRR_FEC1L6 (0x40) -#define MCF_GPIO_PCLRR_FEC1L_PCLRR_FEC1L7 (0x80) - -/* Bit definitions and macros for MCF_GPIO_PCLRR_FECI2C */ -#define MCF_GPIO_PCLRR_FECI2C_PCLRR_FECI2C0 (0x01) -#define MCF_GPIO_PCLRR_FECI2C_PCLRR_FECI2C1 (0x02) -#define MCF_GPIO_PCLRR_FECI2C_PODR_FECI2C2 (0x04) -#define MCF_GPIO_PCLRR_FECI2C_PCLRR_FECI2C3 (0x08) - -/* Bit definitions and macros for MCF_GPIO_PCLRR_PCIBG */ -#define MCF_GPIO_PCLRR_PCIBG_PODR_PCIBG0 (0x01) -#define MCF_GPIO_PCLRR_PCIBG_PODR_PCIBG1 (0x02) -#define MCF_GPIO_PCLRR_PCIBG_PODR_PCIBG2 (0x04) -#define MCF_GPIO_PCLRR_PCIBG_PCLRR_PCIBG3 (0x08) -#define MCF_GPIO_PCLRR_PCIBG_PCLRR_PCIBG4 (0x10) - -/* Bit definitions and macros for MCF_GPIO_PCLRR_PCIBR */ -#define MCF_GPIO_PCLRR_PCIBR_PCLRR_PCIBR0 (0x01) -#define MCF_GPIO_PCLRR_PCIBR_PCLRR_PCIBR1 (0x02) -#define MCF_GPIO_PCLRR_PCIBR_PCLRR_PCIBR2 (0x04) -#define MCF_GPIO_PCLRR_PCIBR_PODR_PCIBR3 (0x08) -#define MCF_GPIO_PCLRR_PCIBR_PODR_PCIBR4 (0x10) - -/* Bit definitions and macros for MCF_GPIO_PCLRR_PSC3PSC2 */ -#define MCF_GPIO_PCLRR_PSC3PSC2_PODR_PSC3PSC20 (0x01) -#define MCF_GPIO_PCLRR_PSC3PSC2_PODR_PSC3PSC21 (0x02) -#define MCF_GPIO_PCLRR_PSC3PSC2_PCLRR_PSC3PSC22 (0x04) -#define MCF_GPIO_PCLRR_PSC3PSC2_PCLRR_PSC3PSC23 (0x08) -#define MCF_GPIO_PCLRR_PSC3PSC2_PCLRR_PSC3PSC24 (0x10) -#define MCF_GPIO_PCLRR_PSC3PSC2_PODR_PSC3PSC25 (0x20) -#define MCF_GPIO_PCLRR_PSC3PSC2_PODR_PSC3PSC26 (0x40) -#define MCF_GPIO_PCLRR_PSC3PSC2_PCLRR_PSC3PSC27 (0x80) - -/* Bit definitions and macros for MCF_GPIO_PCLRR_PSC1PSC0 */ -#define MCF_GPIO_PCLRR_PSC1PSC0_PCLRR_PSC1PSC00 (0x01) -#define MCF_GPIO_PCLRR_PSC1PSC0_PCLRR_PSC1PSC01 (0x02) -#define MCF_GPIO_PCLRR_PSC1PSC0_PCLRR_PSC1PSC02 (0x04) -#define MCF_GPIO_PCLRR_PSC1PSC0_PCLRR_PSC1PSC03 (0x08) -#define MCF_GPIO_PCLRR_PSC1PSC0_PCLRR_PSC1PSC04 (0x10) -#define MCF_GPIO_PCLRR_PSC1PSC0_PCLRR_PSC1PSC05 (0x20) -#define MCF_GPIO_PCLRR_PSC1PSC0_PODR_PSC1PSC06 (0x40) -#define MCF_GPIO_PCLRR_PSC1PSC0_PCLRR_PSC1PSC07 (0x80) - -/* Bit definitions and macros for MCF_GPIO_PCLRR_DSPI */ -#define MCF_GPIO_PCLRR_DSPI_PCLRR_DSPI0 (0x01) -#define MCF_GPIO_PCLRR_DSPI_PCLRR_DSPI1 (0x02) -#define MCF_GPIO_PCLRR_DSPI_PCLRR_DSPI2 (0x04) -#define MCF_GPIO_PCLRR_DSPI_PCLRR_DSPI3 (0x08) -#define MCF_GPIO_PCLRR_DSPI_PCLRR_DSPI4 (0x10) -#define MCF_GPIO_PCLRR_DSPI_PCLRR_DSPI5 (0x20) -#define MCF_GPIO_PCLRR_DSPI_PCLRR_DSPI6 (0x40) - -/* Bit definitions and macros for MCF_GPIO_PAR_FBCTL */ -#define MCF_GPIO_PAR_FBCTL_PAR_TS(x) (((x)&0x0003)<<0) -#define MCF_GPIO_PAR_FBCTL_PAR_TA (0x0004) -#define MCF_GPIO_PAR_FBCTL_PAR_RWB(x) (((x)&0x0003)<<4) -#define MCF_GPIO_PAR_FBCTL_PAR_OE (0x0040) -#define MCF_GPIO_PAR_FBCTL_PAR_BWE0 (0x0100) -#define MCF_GPIO_PAR_FBCTL_PAR_BWE1 (0x0400) -#define MCF_GPIO_PAR_FBCTL_PAR_BWE2 (0x1000) -#define MCF_GPIO_PAR_FBCTL_PAR_BWE3 (0x4000) -#define MCF_GPIO_PAR_FBCTL_PAR_TS_GPIO (0) -#define MCF_GPIO_PAR_FBCTL_PAR_TS_TBST (2) -#define MCF_GPIO_PAR_FBCTL_PAR_TS_TS (3) -#define MCF_GPIO_PAR_FBCTL_PAR_RWB_GPIO (0x0000) -#define MCF_GPIO_PAR_FBCTL_PAR_RWB_TBST (0x0020) -#define MCF_GPIO_PAR_FBCTL_PAR_RWB_RWB (0x0030) - -/* Bit definitions and macros for MCF_GPIO_PAR_FBCS */ -#define MCF_GPIO_PAR_FBCS_PAR_CS1 (0x02) -#define MCF_GPIO_PAR_FBCS_PAR_CS2 (0x04) -#define MCF_GPIO_PAR_FBCS_PAR_CS3 (0x08) -#define MCF_GPIO_PAR_FBCS_PAR_CS4 (0x10) -#define MCF_GPIO_PAR_FBCS_PAR_CS5 (0x20) - -/* Bit definitions and macros for MCF_GPIO_PAR_DMA */ -#define MCF_GPIO_PAR_DMA_PAR_DREQ0(x) (((x)&0x03)<<0) -#define MCF_GPIO_PAR_DMA_PAR_DREQ1(x) (((x)&0x03)<<2) -#define MCF_GPIO_PAR_DMA_PAR_DACK0(x) (((x)&0x03)<<4) -#define MCF_GPIO_PAR_DMA_PAR_DACK1(x) (((x)&0x03)<<6) -#define MCF_GPIO_PAR_DMA_PAR_DACKx_GPIO (0) -#define MCF_GPIO_PAR_DMA_PAR_DACKx_TOUT (2) -#define MCF_GPIO_PAR_DMA_PAR_DACKx_DACK (3) -#define MCF_GPIO_PAR_DMA_PAR_DREQx_GPIO (0) -#define MCF_GPIO_PAR_DMA_PAR_DREQx_TIN (2) -#define MCF_GPIO_PAR_DMA_PAR_DREQx_DREQ (3) - -/* Bit definitions and macros for MCF_GPIO_PAR_FECI2CIRQ */ -#define MCF_GPIO_PAR_FECI2CIRQ_PAR_IRQ5 (0x0001) -#define MCF_GPIO_PAR_FECI2CIRQ_PAR_IRQ6 (0x0002) -#define MCF_GPIO_PAR_FECI2CIRQ_PAR_SCL (0x0004) -#define MCF_GPIO_PAR_FECI2CIRQ_PAR_SDA (0x0008) -#define MCF_GPIO_PAR_FECI2CIRQ_PAR_E1MDC(x) (((x)&0x0003)<<6) -#define MCF_GPIO_PAR_FECI2CIRQ_PAR_E1MDIO(x) (((x)&0x0003)<<8) -#define MCF_GPIO_PAR_FECI2CIRQ_PAR_E1MII (0x0400) -#define MCF_GPIO_PAR_FECI2CIRQ_PAR_E17 (0x0800) -#define MCF_GPIO_PAR_FECI2CIRQ_PAR_E0MDC (0x1000) -#define MCF_GPIO_PAR_FECI2CIRQ_PAR_E0MDIO (0x2000) -#define MCF_GPIO_PAR_FECI2CIRQ_PAR_E0MII (0x4000) -#define MCF_GPIO_PAR_FECI2CIRQ_PAR_E07 (0x8000) -#define MCF_GPIO_PAR_FECI2CIRQ_PAR_E1MDIO_CANRX (0x0000) -#define MCF_GPIO_PAR_FECI2CIRQ_PAR_E1MDIO_SDA (0x0200) -#define MCF_GPIO_PAR_FECI2CIRQ_PAR_E1MDIO_EMDIO (0x0300) -#define MCF_GPIO_PAR_FECI2CIRQ_PAR_E1MDC_CANTX (0x0000) -#define MCF_GPIO_PAR_FECI2CIRQ_PAR_E1MDC_SCL (0x0080) -#define MCF_GPIO_PAR_FECI2CIRQ_PAR_E1MDC_EMDC (0x00C0) - -/* Bit definitions and macros for MCF_GPIO_PAR_PCIBG */ -#define MCF_GPIO_PAR_PCIBG_PAR_PCIBG0(x) (((x)&0x0003)<<0) -#define MCF_GPIO_PAR_PCIBG_PAR_PCIBG1(x) (((x)&0x0003)<<2) -#define MCF_GPIO_PAR_PCIBG_PAR_PCIBG2(x) (((x)&0x0003)<<4) -#define MCF_GPIO_PAR_PCIBG_PAR_PCIBG3(x) (((x)&0x0003)<<6) -#define MCF_GPIO_PAR_PCIBG_PAR_PCIBG4(x) (((x)&0x0003)<<8) - -/* Bit definitions and macros for MCF_GPIO_PAR_PCIBR */ -#define MCF_GPIO_PAR_PCIBR_PAR_PCIBR0(x) (((x)&0x0003)<<0) -#define MCF_GPIO_PAR_PCIBR_PAR_PCIBR1(x) (((x)&0x0003)<<2) -#define MCF_GPIO_PAR_PCIBR_PAR_PCIBR2(x) (((x)&0x0003)<<4) -#define MCF_GPIO_PAR_PCIBR_PAR_PCIBR3(x) (((x)&0x0003)<<6) -#define MCF_GPIO_PAR_PCIBR_PAR_PCIBR4(x) (((x)&0x0003)<<8) - -/* Bit definitions and macros for MCF_GPIO_PAR_PSC3 */ -#define MCF_GPIO_PAR_PSC3_PAR_TXD3 (0x04) -#define MCF_GPIO_PAR_PSC3_PAR_RXD3 (0x08) -#define MCF_GPIO_PAR_PSC3_PAR_RTS3(x) (((x)&0x03)<<4) -#define MCF_GPIO_PAR_PSC3_PAR_CTS3(x) (((x)&0x03)<<6) -#define MCF_GPIO_PAR_PSC3_PAR_CTS3_GPIO (0x00) -#define MCF_GPIO_PAR_PSC3_PAR_CTS3_BCLK (0x80) -#define MCF_GPIO_PAR_PSC3_PAR_CTS3_CTS (0xC0) -#define MCF_GPIO_PAR_PSC3_PAR_RTS3_GPIO (0x00) -#define MCF_GPIO_PAR_PSC3_PAR_RTS3_FSYNC (0x20) -#define MCF_GPIO_PAR_PSC3_PAR_RTS3_RTS (0x30) -#define MCF_GPIO_PAR_PSC3_PAR_CTS2_CANRX (0x40) - -/* Bit definitions and macros for MCF_GPIO_PAR_PSC2 */ -#define MCF_GPIO_PAR_PSC2_PAR_TXD2 (0x04) -#define MCF_GPIO_PAR_PSC2_PAR_RXD2 (0x08) -#define MCF_GPIO_PAR_PSC2_PAR_RTS2(x) (((x)&0x03)<<4) -#define MCF_GPIO_PAR_PSC2_PAR_CTS2(x) (((x)&0x03)<<6) -#define MCF_GPIO_PAR_PSC2_PAR_CTS2_GPIO (0x00) -#define MCF_GPIO_PAR_PSC2_PAR_CTS2_BCLK (0x80) -#define MCF_GPIO_PAR_PSC2_PAR_CTS2_CTS (0xC0) -#define MCF_GPIO_PAR_PSC2_PAR_RTS2_GPIO (0x00) -#define MCF_GPIO_PAR_PSC2_PAR_RTS2_CANTX (0x10) -#define MCF_GPIO_PAR_PSC2_PAR_RTS2_FSYNC (0x20) -#define MCF_GPIO_PAR_PSC2_PAR_RTS2_RTS (0x30) - -/* Bit definitions and macros for MCF_GPIO_PAR_PSC1 */ -#define MCF_GPIO_PAR_PSC1_PAR_TXD1 (0x04) -#define MCF_GPIO_PAR_PSC1_PAR_RXD1 (0x08) -#define MCF_GPIO_PAR_PSC1_PAR_RTS1(x) (((x)&0x03)<<4) -#define MCF_GPIO_PAR_PSC1_PAR_CTS1(x) (((x)&0x03)<<6) -#define MCF_GPIO_PAR_PSC1_PAR_CTS1_GPIO (0x00) -#define MCF_GPIO_PAR_PSC1_PAR_CTS1_BCLK (0x80) -#define MCF_GPIO_PAR_PSC1_PAR_CTS1_CTS (0xC0) -#define MCF_GPIO_PAR_PSC1_PAR_RTS1_GPIO (0x00) -#define MCF_GPIO_PAR_PSC1_PAR_RTS1_FSYNC (0x20) -#define MCF_GPIO_PAR_PSC1_PAR_RTS1_RTS (0x30) - -/* Bit definitions and macros for MCF_GPIO_PAR_PSC0 */ -#define MCF_GPIO_PAR_PSC0_PAR_TXD0 (0x04) -#define MCF_GPIO_PAR_PSC0_PAR_RXD0 (0x08) -#define MCF_GPIO_PAR_PSC0_PAR_RTS0(x) (((x)&0x03)<<4) -#define MCF_GPIO_PAR_PSC0_PAR_CTS0(x) (((x)&0x03)<<6) -#define MCF_GPIO_PAR_PSC0_PAR_CTS0_GPIO (0x00) -#define MCF_GPIO_PAR_PSC0_PAR_CTS0_BCLK (0x80) -#define MCF_GPIO_PAR_PSC0_PAR_CTS0_CTS (0xC0) -#define MCF_GPIO_PAR_PSC0_PAR_RTS0_GPIO (0x00) -#define MCF_GPIO_PAR_PSC0_PAR_RTS0_FSYNC (0x20) -#define MCF_GPIO_PAR_PSC0_PAR_RTS0_RTS (0x30) - -/* Bit definitions and macros for MCF_GPIO_PAR_DSPI */ -#define MCF_GPIO_PAR_DSPI_PAR_SOUT(x) (((x)&0x0003)<<0) -#define MCF_GPIO_PAR_DSPI_PAR_SIN(x) (((x)&0x0003)<<2) -#define MCF_GPIO_PAR_DSPI_PAR_SCK(x) (((x)&0x0003)<<4) -#define MCF_GPIO_PAR_DSPI_PAR_CS0(x) (((x)&0x0003)<<6) -#define MCF_GPIO_PAR_DSPI_PAR_CS2(x) (((x)&0x0003)<<8) -#define MCF_GPIO_PAR_DSPI_PAR_CS3(x) (((x)&0x0003)<<10) -#define MCF_GPIO_PAR_DSPI_PAR_CS5 (0x1000) -#define MCF_GPIO_PAR_DSPI_PAR_CS3_GPIO (0x0000) -#define MCF_GPIO_PAR_DSPI_PAR_CS3_CANTX (0x0400) -#define MCF_GPIO_PAR_DSPI_PAR_CS3_TOUT (0x0800) -#define MCF_GPIO_PAR_DSPI_PAR_CS3_DSPICS (0x0C00) -#define MCF_GPIO_PAR_DSPI_PAR_CS2_GPIO (0x0000) -#define MCF_GPIO_PAR_DSPI_PAR_CS2_CANTX (0x0100) -#define MCF_GPIO_PAR_DSPI_PAR_CS2_TOUT (0x0200) -#define MCF_GPIO_PAR_DSPI_PAR_CS2_DSPICS (0x0300) -#define MCF_GPIO_PAR_DSPI_PAR_CS0_GPIO (0x0000) -#define MCF_GPIO_PAR_DSPI_PAR_CS0_FSYNC (0x0040) -#define MCF_GPIO_PAR_DSPI_PAR_CS0_RTS (0x0080) -#define MCF_GPIO_PAR_DSPI_PAR_CS0_DSPICS (0x00C0) -#define MCF_GPIO_PAR_DSPI_PAR_SCK_GPIO (0x0000) -#define MCF_GPIO_PAR_DSPI_PAR_SCK_BCLK (0x0010) -#define MCF_GPIO_PAR_DSPI_PAR_SCK_CTS (0x0020) -#define MCF_GPIO_PAR_DSPI_PAR_SCK_SCK (0x0030) -#define MCF_GPIO_PAR_DSPI_PAR_SIN_GPIO (0x0000) -#define MCF_GPIO_PAR_DSPI_PAR_SIN_RXD (0x0008) -#define MCF_GPIO_PAR_DSPI_PAR_SIN_SIN (0x000C) -#define MCF_GPIO_PAR_DSPI_PAR_SOUT_GPIO (0x0000) -#define MCF_GPIO_PAR_DSPI_PAR_SOUT_TXD (0x0002) -#define MCF_GPIO_PAR_DSPI_PAR_SOUT_SOUT (0x0003) - -/* Bit definitions and macros for MCF_GPIO_PAR_TIMER */ -#define MCF_GPIO_PAR_TIMER_PAR_TOUT2 (0x01) -#define MCF_GPIO_PAR_TIMER_PAR_TIN2(x) (((x)&0x03)<<1) -#define MCF_GPIO_PAR_TIMER_PAR_TOUT3 (0x08) -#define MCF_GPIO_PAR_TIMER_PAR_TIN3(x) (((x)&0x03)<<4) -#define MCF_GPIO_PAR_TIMER_PAR_TIN3_CANRX (0x00) -#define MCF_GPIO_PAR_TIMER_PAR_TIN3_IRQ (0x20) -#define MCF_GPIO_PAR_TIMER_PAR_TIN3_TIN (0x30) -#define MCF_GPIO_PAR_TIMER_PAR_TIN2_CANRX (0x00) -#define MCF_GPIO_PAR_TIMER_PAR_TIN2_IRQ (0x04) -#define MCF_GPIO_PAR_TIMER_PAR_TIN2_TIN (0x06) - -#endif /* __MCF548X_GPIO_H__ */ diff --git a/arch/m68k/include/asm/coldfire/mcf548x/mcf548x_gpt.h b/arch/m68k/include/asm/coldfire/mcf548x/mcf548x_gpt.h deleted file mode 100644 index 4ec8fdffc..000000000 --- a/arch/m68k/include/asm/coldfire/mcf548x/mcf548x_gpt.h +++ /dev/null @@ -1,100 +0,0 @@ -/* - * Copyright (c) 2008 Carsten Schlote - * See file CREDITS for list of people who contributed to this project. - * - * This file is part of barebox. - * - * barebox is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * barebox is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with barebox. If not, see . - */ - -/** @file - * Register and bit definitions for the MCF548X and MCF547x - * General Purpose Timers (GPT) - */ -#ifndef __MCF548X_GPT_H__ -#define __MCF548X_GPT_H__ - -/* - * General Purpose Timers (GPT) - */ - -/* Register read/write macros */ -#define MCF_GPT_GMS0 (*(vuint32_t*)(&__MBAR[0x000800])) -#define MCF_GPT_GCIR0 (*(vuint32_t*)(&__MBAR[0x000804])) -#define MCF_GPT_GPWM0 (*(vuint32_t*)(&__MBAR[0x000808])) -#define MCF_GPT_GSR0 (*(vuint32_t*)(&__MBAR[0x00080C])) -#define MCF_GPT_GMS1 (*(vuint32_t*)(&__MBAR[0x000810])) -#define MCF_GPT_GCIR1 (*(vuint32_t*)(&__MBAR[0x000814])) -#define MCF_GPT_GPWM1 (*(vuint32_t*)(&__MBAR[0x000818])) -#define MCF_GPT_GSR1 (*(vuint32_t*)(&__MBAR[0x00081C])) -#define MCF_GPT_GMS2 (*(vuint32_t*)(&__MBAR[0x000820])) -#define MCF_GPT_GCIR2 (*(vuint32_t*)(&__MBAR[0x000824])) -#define MCF_GPT_GPWM2 (*(vuint32_t*)(&__MBAR[0x000828])) -#define MCF_GPT_GSR2 (*(vuint32_t*)(&__MBAR[0x00082C])) -#define MCF_GPT_GMS3 (*(vuint32_t*)(&__MBAR[0x000830])) -#define MCF_GPT_GCIR3 (*(vuint32_t*)(&__MBAR[0x000834])) -#define MCF_GPT_GPWM3 (*(vuint32_t*)(&__MBAR[0x000838])) -#define MCF_GPT_GSR3 (*(vuint32_t*)(&__MBAR[0x00083C])) -#define MCF_GPT_GMS(x) (*(vuint32_t*)(&__MBAR[0x000800+((x)*0x010)])) -#define MCF_GPT_GCIR(x) (*(vuint32_t*)(&__MBAR[0x000804+((x)*0x010)])) -#define MCF_GPT_GPWM(x) (*(vuint32_t*)(&__MBAR[0x000808+((x)*0x010)])) -#define MCF_GPT_GSR(x) (*(vuint32_t*)(&__MBAR[0x00080C+((x)*0x010)])) - -/* Bit definitions and macros for MCF_GPT_GMS */ -#define MCF_GPT_GMS_TMS(x) (((x)&0x00000007)<<0) -#define MCF_GPT_GMS_GPIO(x) (((x)&0x00000003)<<4) -#define MCF_GPT_GMS_IEN (0x00000100) -#define MCF_GPT_GMS_OD (0x00000200) -#define MCF_GPT_GMS_SC (0x00000400) -#define MCF_GPT_GMS_CE (0x00001000) -#define MCF_GPT_GMS_WDEN (0x00008000) -#define MCF_GPT_GMS_ICT(x) (((x)&0x00000003)<<16) -#define MCF_GPT_GMS_OCT(x) (((x)&0x00000003)<<20) -#define MCF_GPT_GMS_OCPW(x) (((x)&0x000000FF)<<24) -#define MCF_GPT_GMS_OCT_FRCLOW (0x00000000) -#define MCF_GPT_GMS_OCT_PULSEHI (0x00100000) -#define MCF_GPT_GMS_OCT_PULSELO (0x00200000) -#define MCF_GPT_GMS_OCT_TOGGLE (0x00300000) -#define MCF_GPT_GMS_ICT_ANY (0x00000000) -#define MCF_GPT_GMS_ICT_RISE (0x00010000) -#define MCF_GPT_GMS_ICT_FALL (0x00020000) -#define MCF_GPT_GMS_ICT_PULSE (0x00030000) -#define MCF_GPT_GMS_GPIO_INPUT (0x00000000) -#define MCF_GPT_GMS_GPIO_OUTLO (0x00000020) -#define MCF_GPT_GMS_GPIO_OUTHI (0x00000030) -#define MCF_GPT_GMS_TMS_DISABLE (0x00000000) -#define MCF_GPT_GMS_TMS_INCAPT (0x00000001) -#define MCF_GPT_GMS_TMS_OUTCAPT (0x00000002) -#define MCF_GPT_GMS_TMS_PWM (0x00000003) -#define MCF_GPT_GMS_TMS_GPIO (0x00000004) - -/* Bit definitions and macros for MCF_GPT_GCIR */ -#define MCF_GPT_GCIR_CNT(x) (((x)&0x0000FFFF)<<0) -#define MCF_GPT_GCIR_PRE(x) (((x)&0x0000FFFF)<<16) - -/* Bit definitions and macros for MCF_GPT_GPWM */ -#define MCF_GPT_GPWM_LOAD (0x00000001) -#define MCF_GPT_GPWM_PWMOP (0x00000100) -#define MCF_GPT_GPWM_WIDTH(x) (((x)&0x0000FFFF)<<16) - -/* Bit definitions and macros for MCF_GPT_GSR */ -#define MCF_GPT_GSR_CAPT (0x00000001) -#define MCF_GPT_GSR_COMP (0x00000002) -#define MCF_GPT_GSR_PWMP (0x00000004) -#define MCF_GPT_GSR_TEXP (0x00000008) -#define MCF_GPT_GSR_PIN (0x00000100) -#define MCF_GPT_GSR_OVF(x) (((x)&0x00000007)<<12) -#define MCF_GPT_GSR_CAPTURE(x) (((x)&0x0000FFFF)<<16) - -#endif /* __MCF548X_GPT_H__ */ diff --git a/arch/m68k/include/asm/coldfire/mcf548x/mcf548x_i2c.h b/arch/m68k/include/asm/coldfire/mcf548x/mcf548x_i2c.h deleted file mode 100644 index 9f54aaead..000000000 --- a/arch/m68k/include/asm/coldfire/mcf548x/mcf548x_i2c.h +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Copyright (c) 2008 Carsten Schlote - * See file CREDITS for list of people who contributed to this project. - * - * This file is part of barebox. - * - * barebox is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * barebox is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with barebox. If not, see . - */ - -/** @file - * Register and bit definitions for the MCF548X and MCF547x - * I2C Module (I2C) - */ -#ifndef __MCF548X_I2C_H__ -#define __MCF548X_I2C_H__ - -/* - * I2C Module (I2C) - */ - -/* Register read/write macros */ -#define MCF_I2C_I2AR (*(vuint8_t *)(&__MBAR[0x008F00])) -#define MCF_I2C_I2FDR (*(vuint8_t *)(&__MBAR[0x008F04])) -#define MCF_I2C_I2CR (*(vuint8_t *)(&__MBAR[0x008F08])) -#define MCF_I2C_I2SR (*(vuint8_t *)(&__MBAR[0x008F0C])) -#define MCF_I2C_I2DR (*(vuint8_t *)(&__MBAR[0x008F10])) -#define MCF_I2C_I2ICR (*(vuint8_t *)(&__MBAR[0x008F20])) - -/* Bit definitions and macros for MCF_I2C_I2AR */ -#define MCF_I2C_I2AR_ADR(x) (((x)&0x7F)<<1) - -/* Bit definitions and macros for MCF_I2C_I2FDR */ -#define MCF_I2C_I2FDR_IC(x) (((x)&0x3F)<<0) - -/* Bit definitions and macros for MCF_I2C_I2CR */ -#define MCF_I2C_I2CR_RSTA (0x04) -#define MCF_I2C_I2CR_TXAK (0x08) -#define MCF_I2C_I2CR_MTX (0x10) -#define MCF_I2C_I2CR_MSTA (0x20) -#define MCF_I2C_I2CR_IIEN (0x40) -#define MCF_I2C_I2CR_IEN (0x80) - -/* Bit definitions and macros for MCF_I2C_I2SR */ -#define MCF_I2C_I2SR_RXAK (0x01) -#define MCF_I2C_I2SR_IIF (0x02) -#define MCF_I2C_I2SR_SRW (0x04) -#define MCF_I2C_I2SR_IAL (0x10) -#define MCF_I2C_I2SR_IBB (0x20) -#define MCF_I2C_I2SR_IAAS (0x40) -#define MCF_I2C_I2SR_ICF (0x80) - -/* Bit definitions and macros for MCF_I2C_I2ICR */ -#define MCF_I2C_I2ICR_IE (0x01) -#define MCF_I2C_I2ICR_RE (0x02) -#define MCF_I2C_I2ICR_TE (0x04) -#define MCF_I2C_I2ICR_BNBE (0x08) - -#endif /* __MCF548X_I2C_H__ */ diff --git a/arch/m68k/include/asm/coldfire/mcf548x/mcf548x_intc.h b/arch/m68k/include/asm/coldfire/mcf548x/mcf548x_intc.h deleted file mode 100644 index fa3a2c9db..000000000 --- a/arch/m68k/include/asm/coldfire/mcf548x/mcf548x_intc.h +++ /dev/null @@ -1,329 +0,0 @@ -/* - * Copyright (c) 2008 Carsten Schlote - * See file CREDITS for list of people who contributed to this project. - * - * This file is part of barebox. - * - * barebox is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * barebox is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with barebox. If not, see . - */ - -/** @file - * Register and bit definitions for the MCF548X and MCF547x - * Interrupt Controller (INTC) - */ -#ifndef __MCF548X_INTC_H__ -#define __MCF548X_INTC_H__ - -/* - * Interrupt Controller (INTC) - */ - -/* Register read/write macros */ -#define MCF_INTC_IPRH (*(vuint32_t*)(&__MBAR[0x000700])) -#define MCF_INTC_IPRL (*(vuint32_t*)(&__MBAR[0x000704])) -#define MCF_INTC_IMRH (*(vuint32_t*)(&__MBAR[0x000708])) -#define MCF_INTC_IMRL (*(vuint32_t*)(&__MBAR[0x00070C])) -#define MCF_INTC_INTFRCH (*(vuint32_t*)(&__MBAR[0x000710])) -#define MCF_INTC_INTFRCL (*(vuint32_t*)(&__MBAR[0x000714])) -#define MCF_INTC_IRLR (*(vuint8_t *)(&__MBAR[0x000718])) -#define MCF_INTC_IACKLPR (*(vuint8_t *)(&__MBAR[0x000719])) -#define MCF_INTC_ICR0 (*(vuint8_t *)(&__MBAR[0x000740])) -#define MCF_INTC_ICR1 (*(vuint8_t *)(&__MBAR[0x000741])) -#define MCF_INTC_ICR2 (*(vuint8_t *)(&__MBAR[0x000742])) -#define MCF_INTC_ICR3 (*(vuint8_t *)(&__MBAR[0x000743])) -#define MCF_INTC_ICR4 (*(vuint8_t *)(&__MBAR[0x000744])) -#define MCF_INTC_ICR5 (*(vuint8_t *)(&__MBAR[0x000745])) -#define MCF_INTC_ICR6 (*(vuint8_t *)(&__MBAR[0x000746])) -#define MCF_INTC_ICR7 (*(vuint8_t *)(&__MBAR[0x000747])) -#define MCF_INTC_ICR8 (*(vuint8_t *)(&__MBAR[0x000748])) -#define MCF_INTC_ICR9 (*(vuint8_t *)(&__MBAR[0x000749])) -#define MCF_INTC_ICR10 (*(vuint8_t *)(&__MBAR[0x00074A])) -#define MCF_INTC_ICR11 (*(vuint8_t *)(&__MBAR[0x00074B])) -#define MCF_INTC_ICR12 (*(vuint8_t *)(&__MBAR[0x00074C])) -#define MCF_INTC_ICR13 (*(vuint8_t *)(&__MBAR[0x00074D])) -#define MCF_INTC_ICR14 (*(vuint8_t *)(&__MBAR[0x00074E])) -#define MCF_INTC_ICR15 (*(vuint8_t *)(&__MBAR[0x00074F])) -#define MCF_INTC_ICR16 (*(vuint8_t *)(&__MBAR[0x000750])) -#define MCF_INTC_ICR17 (*(vuint8_t *)(&__MBAR[0x000751])) -#define MCF_INTC_ICR18 (*(vuint8_t *)(&__MBAR[0x000752])) -#define MCF_INTC_ICR19 (*(vuint8_t *)(&__MBAR[0x000753])) -#define MCF_INTC_ICR20 (*(vuint8_t *)(&__MBAR[0x000754])) -#define MCF_INTC_ICR21 (*(vuint8_t *)(&__MBAR[0x000755])) -#define MCF_INTC_ICR22 (*(vuint8_t *)(&__MBAR[0x000756])) -#define MCF_INTC_ICR23 (*(vuint8_t *)(&__MBAR[0x000757])) -#define MCF_INTC_ICR24 (*(vuint8_t *)(&__MBAR[0x000758])) -#define MCF_INTC_ICR25 (*(vuint8_t *)(&__MBAR[0x000759])) -#define MCF_INTC_ICR26 (*(vuint8_t *)(&__MBAR[0x00075A])) -#define MCF_INTC_ICR27 (*(vuint8_t *)(&__MBAR[0x00075B])) -#define MCF_INTC_ICR28 (*(vuint8_t *)(&__MBAR[0x00075C])) -#define MCF_INTC_ICR29 (*(vuint8_t *)(&__MBAR[0x00075D])) -#define MCF_INTC_ICR30 (*(vuint8_t *)(&__MBAR[0x00075E])) -#define MCF_INTC_ICR31 (*(vuint8_t *)(&__MBAR[0x00075F])) -#define MCF_INTC_ICR32 (*(vuint8_t *)(&__MBAR[0x000760])) -#define MCF_INTC_ICR33 (*(vuint8_t *)(&__MBAR[0x000761])) -#define MCF_INTC_ICR34 (*(vuint8_t *)(&__MBAR[0x000762])) -#define MCF_INTC_ICR35 (*(vuint8_t *)(&__MBAR[0x000763])) -#define MCF_INTC_ICR36 (*(vuint8_t *)(&__MBAR[0x000764])) -#define MCF_INTC_ICR37 (*(vuint8_t *)(&__MBAR[0x000765])) -#define MCF_INTC_ICR38 (*(vuint8_t *)(&__MBAR[0x000766])) -#define MCF_INTC_ICR39 (*(vuint8_t *)(&__MBAR[0x000767])) -#define MCF_INTC_ICR40 (*(vuint8_t *)(&__MBAR[0x000768])) -#define MCF_INTC_ICR41 (*(vuint8_t *)(&__MBAR[0x000769])) -#define MCF_INTC_ICR42 (*(vuint8_t *)(&__MBAR[0x00076A])) -#define MCF_INTC_ICR43 (*(vuint8_t *)(&__MBAR[0x00076B])) -#define MCF_INTC_ICR44 (*(vuint8_t *)(&__MBAR[0x00076C])) -#define MCF_INTC_ICR45 (*(vuint8_t *)(&__MBAR[0x00076D])) -#define MCF_INTC_ICR46 (*(vuint8_t *)(&__MBAR[0x00076E])) -#define MCF_INTC_ICR47 (*(vuint8_t *)(&__MBAR[0x00076F])) -#define MCF_INTC_ICR48 (*(vuint8_t *)(&__MBAR[0x000770])) -#define MCF_INTC_ICR49 (*(vuint8_t *)(&__MBAR[0x000771])) -#define MCF_INTC_ICR50 (*(vuint8_t *)(&__MBAR[0x000772])) -#define MCF_INTC_ICR51 (*(vuint8_t *)(&__MBAR[0x000773])) -#define MCF_INTC_ICR52 (*(vuint8_t *)(&__MBAR[0x000774])) -#define MCF_INTC_ICR53 (*(vuint8_t *)(&__MBAR[0x000775])) -#define MCF_INTC_ICR54 (*(vuint8_t *)(&__MBAR[0x000776])) -#define MCF_INTC_ICR55 (*(vuint8_t *)(&__MBAR[0x000777])) -#define MCF_INTC_ICR56 (*(vuint8_t *)(&__MBAR[0x000778])) -#define MCF_INTC_ICR57 (*(vuint8_t *)(&__MBAR[0x000779])) -#define MCF_INTC_ICR58 (*(vuint8_t *)(&__MBAR[0x00077A])) -#define MCF_INTC_ICR59 (*(vuint8_t *)(&__MBAR[0x00077B])) -#define MCF_INTC_ICR60 (*(vuint8_t *)(&__MBAR[0x00077C])) -#define MCF_INTC_ICR61 (*(vuint8_t *)(&__MBAR[0x00077D])) -#define MCF_INTC_ICR62 (*(vuint8_t *)(&__MBAR[0x00077E])) -#define MCF_INTC_ICR63 (*(vuint8_t *)(&__MBAR[0x00077F])) -#define MCF_INTC_ICRn(x) (*(vuint8_t *)(&__MBAR[0x000740+((x)*0x001)])) -#define MCF_INTC_SWIACK (*(vuint8_t *)(&__MBAR[0x0007E0])) -#define MCF_INTC_L1IACK (*(vuint8_t *)(&__MBAR[0x0007E4])) -#define MCF_INTC_L2IACK (*(vuint8_t *)(&__MBAR[0x0007E8])) -#define MCF_INTC_L3IACK (*(vuint8_t *)(&__MBAR[0x0007EC])) -#define MCF_INTC_L4IACK (*(vuint8_t *)(&__MBAR[0x0007F0])) -#define MCF_INTC_L5IACK (*(vuint8_t *)(&__MBAR[0x0007F4])) -#define MCF_INTC_L6IACK (*(vuint8_t *)(&__MBAR[0x0007F8])) -#define MCF_INTC_L7IACK (*(vuint8_t *)(&__MBAR[0x0007FC])) -#define MCF_INTC_LnIACK(x) (*(vuint8_t *)(&__MBAR[0x0007E4+((x)*0x004)])) - -/* Bit definitions and macros for MCF_INTC_IPRH */ -#define MCF_INTC_IPRH_INT32 (0x00000001) -#define MCF_INTC_IPRH_INT33 (0x00000002) -#define MCF_INTC_IPRH_INT34 (0x00000004) -#define MCF_INTC_IPRH_INT35 (0x00000008) -#define MCF_INTC_IPRH_INT36 (0x00000010) -#define MCF_INTC_IPRH_INT37 (0x00000020) -#define MCF_INTC_IPRH_INT38 (0x00000040) -#define MCF_INTC_IPRH_INT39 (0x00000080) -#define MCF_INTC_IPRH_INT40 (0x00000100) -#define MCF_INTC_IPRH_INT41 (0x00000200) -#define MCF_INTC_IPRH_INT42 (0x00000400) -#define MCF_INTC_IPRH_INT43 (0x00000800) -#define MCF_INTC_IPRH_INT44 (0x00001000) -#define MCF_INTC_IPRH_INT45 (0x00002000) -#define MCF_INTC_IPRH_INT46 (0x00004000) -#define MCF_INTC_IPRH_INT47 (0x00008000) -#define MCF_INTC_IPRH_INT48 (0x00010000) -#define MCF_INTC_IPRH_INT49 (0x00020000) -#define MCF_INTC_IPRH_INT50 (0x00040000) -#define MCF_INTC_IPRH_INT51 (0x00080000) -#define MCF_INTC_IPRH_INT52 (0x00100000) -#define MCF_INTC_IPRH_INT53 (0x00200000) -#define MCF_INTC_IPRH_INT54 (0x00400000) -#define MCF_INTC_IPRH_INT55 (0x00800000) -#define MCF_INTC_IPRH_INT56 (0x01000000) -#define MCF_INTC_IPRH_INT57 (0x02000000) -#define MCF_INTC_IPRH_INT58 (0x04000000) -#define MCF_INTC_IPRH_INT59 (0x08000000) -#define MCF_INTC_IPRH_INT60 (0x10000000) -#define MCF_INTC_IPRH_INT61 (0x20000000) -#define MCF_INTC_IPRH_INT62 (0x40000000) -#define MCF_INTC_IPRH_INT63 (0x80000000) - -/* Bit definitions and macros for MCF_INTC_IPRL */ -#define MCF_INTC_IPRL_INT1 (0x00000002) -#define MCF_INTC_IPRL_INT2 (0x00000004) -#define MCF_INTC_IPRL_INT3 (0x00000008) -#define MCF_INTC_IPRL_INT4 (0x00000010) -#define MCF_INTC_IPRL_INT5 (0x00000020) -#define MCF_INTC_IPRL_INT6 (0x00000040) -#define MCF_INTC_IPRL_INT7 (0x00000080) -#define MCF_INTC_IPRL_INT8 (0x00000100) -#define MCF_INTC_IPRL_INT9 (0x00000200) -#define MCF_INTC_IPRL_INT10 (0x00000400) -#define MCF_INTC_IPRL_INT11 (0x00000800) -#define MCF_INTC_IPRL_INT12 (0x00001000) -#define MCF_INTC_IPRL_INT13 (0x00002000) -#define MCF_INTC_IPRL_INT14 (0x00004000) -#define MCF_INTC_IPRL_INT15 (0x00008000) -#define MCF_INTC_IPRL_INT16 (0x00010000) -#define MCF_INTC_IPRL_INT17 (0x00020000) -#define MCF_INTC_IPRL_INT18 (0x00040000) -#define MCF_INTC_IPRL_INT19 (0x00080000) -#define MCF_INTC_IPRL_INT20 (0x00100000) -#define MCF_INTC_IPRL_INT21 (0x00200000) -#define MCF_INTC_IPRL_INT22 (0x00400000) -#define MCF_INTC_IPRL_INT23 (0x00800000) -#define MCF_INTC_IPRL_INT24 (0x01000000) -#define MCF_INTC_IPRL_INT25 (0x02000000) -#define MCF_INTC_IPRL_INT26 (0x04000000) -#define MCF_INTC_IPRL_INT27 (0x08000000) -#define MCF_INTC_IPRL_INT28 (0x10000000) -#define MCF_INTC_IPRL_INT29 (0x20000000) -#define MCF_INTC_IPRL_INT30 (0x40000000) -#define MCF_INTC_IPRL_INT31 (0x80000000) - -/* Bit definitions and macros for MCF_INTC_IMRH */ -#define MCF_INTC_IMRH_INT_MASK32 (0x00000001) -#define MCF_INTC_IMRH_INT_MASK33 (0x00000002) -#define MCF_INTC_IMRH_INT_MASK34 (0x00000004) -#define MCF_INTC_IMRH_INT_MASK35 (0x00000008) -#define MCF_INTC_IMRH_INT_MASK36 (0x00000010) -#define MCF_INTC_IMRH_INT_MASK37 (0x00000020) -#define MCF_INTC_IMRH_INT_MASK38 (0x00000040) -#define MCF_INTC_IMRH_INT_MASK39 (0x00000080) -#define MCF_INTC_IMRH_INT_MASK40 (0x00000100) -#define MCF_INTC_IMRH_INT_MASK41 (0x00000200) -#define MCF_INTC_IMRH_INT_MASK42 (0x00000400) -#define MCF_INTC_IMRH_INT_MASK43 (0x00000800) -#define MCF_INTC_IMRH_INT_MASK44 (0x00001000) -#define MCF_INTC_IMRH_INT_MASK45 (0x00002000) -#define MCF_INTC_IMRH_INT_MASK46 (0x00004000) -#define MCF_INTC_IMRH_INT_MASK47 (0x00008000) -#define MCF_INTC_IMRH_INT_MASK48 (0x00010000) -#define MCF_INTC_IMRH_INT_MASK49 (0x00020000) -#define MCF_INTC_IMRH_INT_MASK50 (0x00040000) -#define MCF_INTC_IMRH_INT_MASK51 (0x00080000) -#define MCF_INTC_IMRH_INT_MASK52 (0x00100000) -#define MCF_INTC_IMRH_INT_MASK53 (0x00200000) -#define MCF_INTC_IMRH_INT_MASK54 (0x00400000) -#define MCF_INTC_IMRH_INT_MASK55 (0x00800000) -#define MCF_INTC_IMRH_INT_MASK56 (0x01000000) -#define MCF_INTC_IMRH_INT_MASK57 (0x02000000) -#define MCF_INTC_IMRH_INT_MASK58 (0x04000000) -#define MCF_INTC_IMRH_INT_MASK59 (0x08000000) -#define MCF_INTC_IMRH_INT_MASK60 (0x10000000) -#define MCF_INTC_IMRH_INT_MASK61 (0x20000000) -#define MCF_INTC_IMRH_INT_MASK62 (0x40000000) -#define MCF_INTC_IMRH_INT_MASK63 (0x80000000) - -/* Bit definitions and macros for MCF_INTC_IMRL */ -#define MCF_INTC_IMRL_MASKALL (0x00000001) -#define MCF_INTC_IMRL_INT_MASK1 (0x00000002) -#define MCF_INTC_IMRL_INT_MASK2 (0x00000004) -#define MCF_INTC_IMRL_INT_MASK3 (0x00000008) -#define MCF_INTC_IMRL_INT_MASK4 (0x00000010) -#define MCF_INTC_IMRL_INT_MASK5 (0x00000020) -#define MCF_INTC_IMRL_INT_MASK6 (0x00000040) -#define MCF_INTC_IMRL_INT_MASK7 (0x00000080) -#define MCF_INTC_IMRL_INT_MASK8 (0x00000100) -#define MCF_INTC_IMRL_INT_MASK9 (0x00000200) -#define MCF_INTC_IMRL_INT_MASK10 (0x00000400) -#define MCF_INTC_IMRL_INT_MASK11 (0x00000800) -#define MCF_INTC_IMRL_INT_MASK12 (0x00001000) -#define MCF_INTC_IMRL_INT_MASK13 (0x00002000) -#define MCF_INTC_IMRL_INT_MASK14 (0x00004000) -#define MCF_INTC_IMRL_INT_MASK15 (0x00008000) -#define MCF_INTC_IMRL_INT_MASK16 (0x00010000) -#define MCF_INTC_IMRL_INT_MASK17 (0x00020000) -#define MCF_INTC_IMRL_INT_MASK18 (0x00040000) -#define MCF_INTC_IMRL_INT_MASK19 (0x00080000) -#define MCF_INTC_IMRL_INT_MASK20 (0x00100000) -#define MCF_INTC_IMRL_INT_MASK21 (0x00200000) -#define MCF_INTC_IMRL_INT_MASK22 (0x00400000) -#define MCF_INTC_IMRL_INT_MASK23 (0x00800000) -#define MCF_INTC_IMRL_INT_MASK24 (0x01000000) -#define MCF_INTC_IMRL_INT_MASK25 (0x02000000) -#define MCF_INTC_IMRL_INT_MASK26 (0x04000000) -#define MCF_INTC_IMRL_INT_MASK27 (0x08000000) -#define MCF_INTC_IMRL_INT_MASK28 (0x10000000) -#define MCF_INTC_IMRL_INT_MASK29 (0x20000000) -#define MCF_INTC_IMRL_INT_MASK30 (0x40000000) -#define MCF_INTC_IMRL_INT_MASK31 (0x80000000) - -/* Bit definitions and macros for MCF_INTC_INTFRCH */ -#define MCF_INTC_INTFRCH_INTFRC32 (0x00000001) -#define MCF_INTC_INTFRCH_INTFRC33 (0x00000002) -#define MCF_INTC_INTFRCH_INTFRC34 (0x00000004) -#define MCF_INTC_INTFRCH_INTFRC35 (0x00000008) -#define MCF_INTC_INTFRCH_INTFRC36 (0x00000010) -#define MCF_INTC_INTFRCH_INTFRC37 (0x00000020) -#define MCF_INTC_INTFRCH_INTFRC38 (0x00000040) -#define MCF_INTC_INTFRCH_INTFRC39 (0x00000080) -#define MCF_INTC_INTFRCH_INTFRC40 (0x00000100) -#define MCF_INTC_INTFRCH_INTFRC41 (0x00000200) -#define MCF_INTC_INTFRCH_INTFRC42 (0x00000400) -#define MCF_INTC_INTFRCH_INTFRC43 (0x00000800) -#define MCF_INTC_INTFRCH_INTFRC44 (0x00001000) -#define MCF_INTC_INTFRCH_INTFRC45 (0x00002000) -#define MCF_INTC_INTFRCH_INTFRC46 (0x00004000) -#define MCF_INTC_INTFRCH_INTFRC47 (0x00008000) -#define MCF_INTC_INTFRCH_INTFRC48 (0x00010000) -#define MCF_INTC_INTFRCH_INTFRC49 (0x00020000) -#define MCF_INTC_INTFRCH_INTFRC50 (0x00040000) -#define MCF_INTC_INTFRCH_INTFRC51 (0x00080000) -#define MCF_INTC_INTFRCH_INTFRC52 (0x00100000) -#define MCF_INTC_INTFRCH_INTFRC53 (0x00200000) -#define MCF_INTC_INTFRCH_INTFRC54 (0x00400000) -#define MCF_INTC_INTFRCH_INTFRC55 (0x00800000) -#define MCF_INTC_INTFRCH_INTFRC56 (0x01000000) -#define MCF_INTC_INTFRCH_INTFRC57 (0x02000000) -#define MCF_INTC_INTFRCH_INTFRC58 (0x04000000) -#define MCF_INTC_INTFRCH_INTFRC59 (0x08000000) -#define MCF_INTC_INTFRCH_INTFRC60 (0x10000000) -#define MCF_INTC_INTFRCH_INTFRC61 (0x20000000) -#define MCF_INTC_INTFRCH_INTFRC62 (0x40000000) -#define MCF_INTC_INTFRCH_INTFRC63 (0x80000000) - -/* Bit definitions and macros for MCF_INTC_INTFRCL */ -#define MCF_INTC_INTFRCL_INTFRC1 (0x00000002) -#define MCF_INTC_INTFRCL_INTFRC2 (0x00000004) -#define MCF_INTC_INTFRCL_INTFRC3 (0x00000008) -#define MCF_INTC_INTFRCL_INTFRC4 (0x00000010) -#define MCF_INTC_INTFRCL_INTFRC5 (0x00000020) -#define MCF_INTC_INTFRCL_INT6 (0x00000040) -#define MCF_INTC_INTFRCL_INT7 (0x00000080) -#define MCF_INTC_INTFRCL_INT8 (0x00000100) -#define MCF_INTC_INTFRCL_INT9 (0x00000200) -#define MCF_INTC_INTFRCL_INT10 (0x00000400) -#define MCF_INTC_INTFRCL_INTFRC11 (0x00000800) -#define MCF_INTC_INTFRCL_INTFRC12 (0x00001000) -#define MCF_INTC_INTFRCL_INTFRC13 (0x00002000) -#define MCF_INTC_INTFRCL_INTFRC14 (0x00004000) -#define MCF_INTC_INTFRCL_INT15 (0x00008000) -#define MCF_INTC_INTFRCL_INTFRC16 (0x00010000) -#define MCF_INTC_INTFRCL_INTFRC17 (0x00020000) -#define MCF_INTC_INTFRCL_INTFRC18 (0x00040000) -#define MCF_INTC_INTFRCL_INTFRC19 (0x00080000) -#define MCF_INTC_INTFRCL_INTFRC20 (0x00100000) -#define MCF_INTC_INTFRCL_INTFRC21 (0x00200000) -#define MCF_INTC_INTFRCL_INTFRC22 (0x00400000) -#define MCF_INTC_INTFRCL_INTFRC23 (0x00800000) -#define MCF_INTC_INTFRCL_INTFRC24 (0x01000000) -#define MCF_INTC_INTFRCL_INTFRC25 (0x02000000) -#define MCF_INTC_INTFRCL_INTFRC26 (0x04000000) -#define MCF_INTC_INTFRCL_INTFRC27 (0x08000000) -#define MCF_INTC_INTFRCL_INTFRC28 (0x10000000) -#define MCF_INTC_INTFRCL_INTFRC29 (0x20000000) -#define MCF_INTC_INTFRCL_INTFRC30 (0x40000000) -#define MCF_INTC_INTFRCL_INTFRC31 (0x80000000) - -/* Bit definitions and macros for MCF_INTC_IRLR */ -#define MCF_INTC_IRLR_IRQ(x) (((x)&0x7F)<<1) - -/* Bit definitions and macros for MCF_INTC_IACKLPR */ -#define MCF_INTC_IACKLPR_PRI(x) (((x)&0x0F)<<0) -#define MCF_INTC_IACKLPR_LEVEL(x) (((x)&0x07)<<4) - -/* Bit definitions and macros for MCF_INTC_ICRn */ -#define MCF_INTC_ICRn_IP(x) (((x)&0x07)<<0) -#define MCF_INTC_ICRn_IL(x) (((x)&0x07)<<3) - -#endif /* __MCF548X_INTC_H__ */ diff --git a/arch/m68k/include/asm/coldfire/mcf548x/mcf548x_pci.h b/arch/m68k/include/asm/coldfire/mcf548x/mcf548x_pci.h deleted file mode 100644 index 23c674313..000000000 --- a/arch/m68k/include/asm/coldfire/mcf548x/mcf548x_pci.h +++ /dev/null @@ -1,349 +0,0 @@ -/* - * Copyright (c) 2008 Carsten Schlote - * See file CREDITS for list of people who contributed to this project. - * - * This file is part of barebox. - * - * barebox is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * barebox is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with barebox. If not, see . - */ - -/** @file - * Register and bit definitions for the MCF548X and MCF547x - * PCI Bus Controller (PCI) - */ -#ifndef __MCF548X_PCI_H__ -#define __MCF548X_PCI_H__ - -/* - * PCI Bus Controller (PCI) - */ -#define MCF_PCI_HDR_BASE (&__MBAR[0x000B00]) - -/* Register read/write macros */ - -/* type 0 header */ -#define MCF_PCI_PCIIDR (*(vuint32_t*)(&__MBAR[0x000B00])) -#define MCF_PCI_PCISCR (*(vuint32_t*)(&__MBAR[0x000B04])) -#define MCF_PCI_PCICCRIR (*(vuint32_t*)(&__MBAR[0x000B08])) -#define MCF_PCI_PCICR1 (*(vuint32_t*)(&__MBAR[0x000B0C])) -#define MCF_PCI_PCIBAR0 (*(vuint32_t*)(&__MBAR[0x000B10])) -#define MCF_PCI_PCIBAR1 (*(vuint32_t*)(&__MBAR[0x000B14])) -#define MCF_PCI_PCISID (*(vuint32_t*)(&__MBAR[0x000B2c])) -#define MCF_PCI_PCICR2 (*(vuint32_t*)(&__MBAR[0x000B3C])) - -/* Target Controls */ -#define MCF_PCI_PCIGSCR (*(vuint32_t*)(&__MBAR[0x000B60])) -#define MCF_PCI_PCITBATR0 (*(vuint32_t*)(&__MBAR[0x000B64])) -#define MCF_PCI_PCITBATR1 (*(vuint32_t*)(&__MBAR[0x000B68])) -#define MCF_PCI_PCITCR (*(vuint32_t*)(&__MBAR[0x000B6C])) -#define MCF_PCI_PCIIW0BTAR (*(vuint32_t*)(&__MBAR[0x000B70])) -#define MCF_PCI_PCIIW1BTAR (*(vuint32_t*)(&__MBAR[0x000B74])) -#define MCF_PCI_PCIIW2BTAR (*(vuint32_t*)(&__MBAR[0x000B78])) -#define MCF_PCI_PCIIWCR (*(vuint32_t*)(&__MBAR[0x000B80])) -#define MCF_PCI_PCIICR (*(vuint32_t*)(&__MBAR[0x000B84])) -#define MCF_PCI_PCIISR (*(vuint32_t*)(&__MBAR[0x000B88])) -#define MCF_PCI_PCICAR (*(vuint32_t*)(&__MBAR[0x000BF8])) -#define MCF_PCI_PCITPSR (*(vuint32_t*)(&__MBAR[0x008400])) -#define MCF_PCI_PCITSAR (*(vuint32_t*)(&__MBAR[0x008404])) -#define MCF_PCI_PCITTCR (*(vuint32_t*)(&__MBAR[0x008408])) -#define MCF_PCI_PCITER (*(vuint32_t*)(&__MBAR[0x00840C])) -#define MCF_PCI_PCITNAR (*(vuint32_t*)(&__MBAR[0x008410])) -#define MCF_PCI_PCITLWR (*(vuint32_t*)(&__MBAR[0x008414])) -#define MCF_PCI_PCITDCR (*(vuint32_t*)(&__MBAR[0x008418])) -#define MCF_PCI_PCITSR (*(vuint32_t*)(&__MBAR[0x00841C])) -#define MCF_PCI_PCITFDR (*(vuint32_t*)(&__MBAR[0x008440])) -#define MCF_PCI_PCITFSR (*(vuint32_t*)(&__MBAR[0x008444])) -#define MCF_PCI_PCITFCR (*(vuint32_t*)(&__MBAR[0x008448])) -#define MCF_PCI_PCITFAR (*(vuint32_t*)(&__MBAR[0x00844C])) -#define MCF_PCI_PCITFRPR (*(vuint32_t*)(&__MBAR[0x008450])) -#define MCF_PCI_PCITFWPR (*(vuint32_t*)(&__MBAR[0x008454])) -#define MCF_PCI_PCIRPSR (*(vuint32_t*)(&__MBAR[0x008480])) -#define MCF_PCI_PCIRSAR (*(vuint32_t*)(&__MBAR[0x008484])) -#define MCF_PCI_PCIRTCR (*(vuint32_t*)(&__MBAR[0x008488])) -#define MCF_PCI_PCIRER (*(vuint32_t*)(&__MBAR[0x00848C])) -#define MCF_PCI_PCIRNAR (*(vuint32_t*)(&__MBAR[0x008490])) -#define MCF_PCI_PCIRDCR (*(vuint32_t*)(&__MBAR[0x008498])) -#define MCF_PCI_PCIRSR (*(vuint32_t*)(&__MBAR[0x00849C])) -#define MCF_PCI_PCIRFDR (*(vuint32_t*)(&__MBAR[0x0084C0])) -#define MCF_PCI_PCIRFSR (*(vuint32_t*)(&__MBAR[0x0084C4])) -#define MCF_PCI_PCIRFCR (*(vuint32_t*)(&__MBAR[0x0084C8])) -#define MCF_PCI_PCIRFAR (*(vuint32_t*)(&__MBAR[0x0084CC])) -#define MCF_PCI_PCIRFRPR (*(vuint32_t*)(&__MBAR[0x0084D0])) -#define MCF_PCI_PCIRFWPR (*(vuint32_t*)(&__MBAR[0x0084D4])) - - -/* - * Type 0 Config Header Regs - */ - -/* Bit definitions and macros for MCF_PCI_PCIIDR */ -#define MCF_PCI_PCIIDR_VENDORID(x) (((x)&0x0000FFFF)<<0) -#define MCF_PCI_PCIIDR_DEVICEID(x) (((x)&0x0000FFFF)<<16) - -/* Bit definitions and macros for MCF_PCI_PCISCR */ -#define MCF_PCI_PCISCR_M (0x00000002) -#define MCF_PCI_PCISCR_B (0x00000004) -#define MCF_PCI_PCISCR_SP (0x00000008) -#define MCF_PCI_PCISCR_MW (0x00000010) -#define MCF_PCI_PCISCR_PER (0x00000040) -#define MCF_PCI_PCISCR_S (0x00000100) -#define MCF_PCI_PCISCR_F (0x00000200) -#define MCF_PCI_PCISCR_C (0x00100000) -#define MCF_PCI_PCISCR_66M (0x00200000) -#define MCF_PCI_PCISCR_R (0x00400000) -#define MCF_PCI_PCISCR_FC (0x00800000) -#define MCF_PCI_PCISCR_DP (0x01000000) -#define MCF_PCI_PCISCR_DT(x) (((x)&0x00000003)<<25) -#define MCF_PCI_PCISCR_TS (0x08000000) -#define MCF_PCI_PCISCR_TR (0x10000000) -#define MCF_PCI_PCISCR_MA (0x20000000) -#define MCF_PCI_PCISCR_SE (0x40000000) -#define MCF_PCI_PCISCR_PE (0x80000000) - -/* Bit definitions and macros for MCF_PCI_PCICCRIR */ -#define MCF_PCI_PCICCRIR_REVID(x) (((x)&0x000000FF)<<0) -#define MCF_PCI_PCICCRIR_CLASSCODE(x) (((x)&0x00FFFFFF)<<8) - -/* Bit definitions and macros for MCF_PCI_PCICR1 */ -#define MCF_PCI_PCICR1_CACHELINESIZE(x) (((x)&0x0000000F)<<0) -#define MCF_PCI_PCICR1_LATTIMER(x) (((x)&0x000000FF)<<8) -#define MCF_PCI_PCICR1_HEADERTYPE(x) (((x)&0x000000FF)<<16) -#define MCF_PCI_PCICR1_BIST(x) (((x)&0x000000FF)<<24) - -/* Bit definitions and macros for MCF_PCI_PCIBAR0 */ -#define MCF_PCI_PCIBAR0_IO (0x00000001) -#define MCF_PCI_PCIBAR0_RANGE(x) (((x)&0x00000003)<<1) -#define MCF_PCI_PCIBAR0_PREF (0x00000008) -#define MCF_PCI_PCIBAR0_BAR0(x) (((x)&0x00003FFF)<<18) - -/* Bit definitions and macros for MCF_PCI_PCIBAR1 */ -#define MCF_PCI_PCIBAR1_IO (0x00000001) -#define MCF_PCI_PCIBAR1_PREF (0x00000008) -#define MCF_PCI_PCIBAR1_BAR1(x) (((x)&0x00000003)<<30) - -/* Bit definitions and macros for MCF_PCI_PCICR2 */ -#define MCF_PCI_PCICR2_INTLINE(x) (((x)&0x000000FF)<<0) -#define MCF_PCI_PCICR2_INTPIN(x) (((x)&0x000000FF)<<8) -#define MCF_PCI_PCICR2_MINGNT(x) (((x)&0x000000FF)<<16) -#define MCF_PCI_PCICR2_MAXLAT(x) (((x)&0x000000FF)<<24) - -/* Bit definitions and macros for MCF_PCI_PCIGSCR */ -#define MCF_PCI_PCIGSCR_PR (0x00000001) -#define MCF_PCI_PCIGSCR_SEE (0x00001000) -#define MCF_PCI_PCIGSCR_PEE (0x00002000) -#define MCF_PCI_PCIGSCR_SE (0x10000000) -#define MCF_PCI_PCIGSCR_PE (0x20000000) - -/* - * Target device controls - */ - -/* Bit definitions and macros for MCF_PCI_PCITBATR0 */ -#define MCF_PCI_PCITBATR0_EN (0x00000001) -#define MCF_PCI_PCITBATR0_BAT0(x) (((x)&0x00003FFF)<<18) - -/* Bit definitions and macros for MCF_PCI_PCITBATR1 */ -#define MCF_PCI_PCITBATR1_EN (0x00000001) -#define MCF_PCI_PCITBATR1_BAT1(x) (((x)&0x00000003)<<30) - -/* Bit definitions and macros for MCF_PCI_PCITCR */ -#define MCF_PCI_PCITCR_P (0x00010000) -#define MCF_PCI_PCITCR_LD (0x01000000) - -/* Bit definitions and macros for MCF_PCI_PCIIW0BTAR */ -#define MCF_PCI_PCIIW0BTAR_WTA0(x) (((x)&0x000000FF)<<8) -#define MCF_PCI_PCIIW0BTAR_WAM0(x) (((x)&0x000000FF)<<16) -#define MCF_PCI_PCIIW0BTAR_WBA0(x) (((x)&0x000000FF)<<24) - -/* Bit definitions and macros for MCF_PCI_PCIIW1BTAR */ -#define MCF_PCI_PCIIW1BTAR_WTA1(x) (((x)&0x000000FF)<<8) -#define MCF_PCI_PCIIW1BTAR_WAM1(x) (((x)&0x000000FF)<<16) -#define MCF_PCI_PCIIW1BTAR_WBA1(x) (((x)&0x000000FF)<<24) - -/* Bit definitions and macros for MCF_PCI_PCIIW2BTAR */ -#define MCF_PCI_PCIIW2BTAR_WTA2(x) (((x)&0x000000FF)<<8) -#define MCF_PCI_PCIIW2BTAR_WAM2(x) (((x)&0x000000FF)<<16) -#define MCF_PCI_PCIIW2BTAR_WBA2(x) (((x)&0x000000FF)<<24) - -/* Bit definitions and macros for MCF_PCI_PCIIWCR */ -#define MCF_PCI_PCIIWCR_WINCTRL2(x) (((x)&0x0000000F)<<8) -#define MCF_PCI_PCIIWCR_WINCTRL1(x) (((x)&0x0000000F)<<16) -#define MCF_PCI_PCIIWCR_WINCTRL0(x) (((x)&0x0000000F)<<24) -#define MCF_PCI_PCIIWCR_WINCTRL0_MEMREAD (0x01000000) -#define MCF_PCI_PCIIWCR_WINCTRL0_MEMRDLINE (0x03000000) -#define MCF_PCI_PCIIWCR_WINCTRL0_MEMRDMUL (0x05000000) -#define MCF_PCI_PCIIWCR_WINCTRL0_IO (0x09000000) -#define MCF_PCI_PCIIWCR_WINCTRL1_MEMREAD (0x00010000) -#define MCF_PCI_PCIIWCR_WINCTRL1_MEMRDLINE (0x00030000) -#define MCF_PCI_PCIIWCR_WINCTRL1_MEMRDMUL (0x00050000) -#define MCF_PCI_PCIIWCR_WINCTRL1_IO (0x00090000) -#define MCF_PCI_PCIIWCR_WINCTRL2_MEMREAD (0x00000100) -#define MCF_PCI_PCIIWCR_WINCTRL2_MEMRDLINE (0x00000300) -#define MCF_PCI_PCIIWCR_WINCTRL2_MEMRDMUL (0x00000500) -#define MCF_PCI_PCIIWCR_WINCTRL2_IO (0x00000900) - -/* Bit definitions and macros for MCF_PCI_PCIICR */ -#define MCF_PCI_PCIICR_MAXRETRY(x) (((x)&0x000000FF)<<0) -#define MCF_PCI_PCIICR_TAE (0x01000000) -#define MCF_PCI_PCIICR_IAE (0x02000000) -#define MCF_PCI_PCIICR_REE (0x04000000) - -/* Bit definitions and macros for MCF_PCI_PCIISR */ -#define MCF_PCI_PCIISR_TA (0x01000000) -#define MCF_PCI_PCIISR_IA (0x02000000) -#define MCF_PCI_PCIISR_RE (0x04000000) - -/* Bit definitions and macros for MCF_PCI_PCICAR */ -#define MCF_PCI_PCICAR_DWORD(x) (((x)&0x0000003F)<<2) -#define MCF_PCI_PCICAR_FUNCNUM(x) (((x)&0x00000007)<<8) -#define MCF_PCI_PCICAR_DEVNUM(x) (((x)&0x0000001F)<<11) -#define MCF_PCI_PCICAR_BUSNUM(x) (((x)&0x000000FF)<<16) -#define MCF_PCI_PCICAR_E (0x80000000) - - -/* - * PCI Fifos - */ - -/* Bit definitions and macros for MCF_PCI_PCITPSR */ -#define MCF_PCI_PCITPSR_PKTSIZE(x) (((x)&0x0000FFFF)<<16) - -/* Bit definitions and macros for MCF_PCI_PCITTCR */ -#define MCF_PCI_PCITTCR_DI (0x00000001) -#define MCF_PCI_PCITTCR_W (0x00000010) -#define MCF_PCI_PCITTCR_MAXBEATS(x) (((x)&0x00000007)<<8) -#define MCF_PCI_PCITTCR_MAXRETRY(x) (((x)&0x000000FF)<<16) -#define MCF_PCI_PCITTCR_PCICMD(x) (((x)&0x0000000F)<<24) - -/* Bit definitions and macros for MCF_PCI_PCITER */ -#define MCF_PCI_PCITER_NE (0x00010000) -#define MCF_PCI_PCITER_IAE (0x00020000) -#define MCF_PCI_PCITER_TAE (0x00040000) -#define MCF_PCI_PCITER_RE (0x00080000) -#define MCF_PCI_PCITER_SE (0x00100000) -#define MCF_PCI_PCITER_FEE (0x00200000) -#define MCF_PCI_PCITER_ME (0x01000000) -#define MCF_PCI_PCITER_BE (0x08000000) -#define MCF_PCI_PCITER_CM (0x10000000) -#define MCF_PCI_PCITER_RF (0x40000000) -#define MCF_PCI_PCITER_RC (0x80000000) - -/* Bit definitions and macros for MCF_PCI_PCITDCR */ -#define MCF_PCI_PCITDCR_PKTSDONE(x) (((x)&0x0000FFFF)<<0) -#define MCF_PCI_PCITDCR_BYTESDONE(x) (((x)&0x0000FFFF)<<16) - -/* Bit definitions and macros for MCF_PCI_PCITSR */ -#define MCF_PCI_PCITSR_IA (0x00010000) -#define MCF_PCI_PCITSR_TA (0x00020000) -#define MCF_PCI_PCITSR_RE (0x00040000) -#define MCF_PCI_PCITSR_SE (0x00080000) -#define MCF_PCI_PCITSR_FE (0x00100000) -#define MCF_PCI_PCITSR_BE1 (0x00200000) -#define MCF_PCI_PCITSR_BE2 (0x00400000) -#define MCF_PCI_PCITSR_BE3 (0x00800000) -#define MCF_PCI_PCITSR_NT (0x01000000) - -/* Bit definitions and macros for MCF_PCI_PCITFSR */ -#define MCF_PCI_PCITFSR_EMT (0x00010000) -#define MCF_PCI_PCITFSR_ALARM (0x00020000) -#define MCF_PCI_PCITFSR_FU (0x00040000) -#define MCF_PCI_PCITFSR_FR (0x00080000) -#define MCF_PCI_PCITFSR_OF (0x00100000) -#define MCF_PCI_PCITFSR_UF (0x00200000) -#define MCF_PCI_PCITFSR_RXW (0x00400000) - -/* Bit definitions and macros for MCF_PCI_PCITFCR */ -#define MCF_PCI_PCITFCR_OF_MSK (0x00080000) -#define MCF_PCI_PCITFCR_UF_MSK (0x00100000) -#define MCF_PCI_PCITFCR_RXW_MSK (0x00200000) -#define MCF_PCI_PCITFCR_FAE_MSK (0x00400000) -#define MCF_PCI_PCITFCR_IP_MSK (0x00800000) -#define MCF_PCI_PCITFCR_GR(x) (((x)&0x00000007)<<24) - -/* Bit definitions and macros for MCF_PCI_PCITFAR */ -#define MCF_PCI_PCITFAR_ALARM(x) (((x)&0x0000007F)<<0) - -/* Bit definitions and macros for MCF_PCI_PCITFRPR */ -#define MCF_PCI_PCITFRPR_READ(x) (((x)&0x00000FFF)<<0) - -/* Bit definitions and macros for MCF_PCI_PCITFWPR */ -#define MCF_PCI_PCITFWPR_WRITE(x) (((x)&0x00000FFF)<<0) - -/* Bit definitions and macros for MCF_PCI_PCIRPSR */ -#define MCF_PCI_PCIRPSR_PKTSIZE(x) (((x)&0x0000FFFF)<<16) - -/* Bit definitions and macros for MCF_PCI_PCIRTCR */ -#define MCF_PCI_PCIRTCR_DI (0x00000001) -#define MCF_PCI_PCIRTCR_W (0x00000010) -#define MCF_PCI_PCIRTCR_MAXBEATS(x) (((x)&0x00000007)<<8) -#define MCF_PCI_PCIRTCR_FB (0x00001000) -#define MCF_PCI_PCIRTCR_MAXRETRY(x) (((x)&0x000000FF)<<16) -#define MCF_PCI_PCIRTCR_PCICMD(x) (((x)&0x0000000F)<<24) - -/* Bit definitions and macros for MCF_PCI_PCIRER */ -#define MCF_PCI_PCIRER_NE (0x00010000) -#define MCF_PCI_PCIRER_IAE (0x00020000) -#define MCF_PCI_PCIRER_TAE (0x00040000) -#define MCF_PCI_PCIRER_RE (0x00080000) -#define MCF_PCI_PCIRER_SE (0x00100000) -#define MCF_PCI_PCIRER_FEE (0x00200000) -#define MCF_PCI_PCIRER_ME (0x01000000) -#define MCF_PCI_PCIRER_BE (0x08000000) -#define MCF_PCI_PCIRER_CM (0x10000000) -#define MCF_PCI_PCIRER_FE (0x20000000) -#define MCF_PCI_PCIRER_RF (0x40000000) -#define MCF_PCI_PCIRER_RC (0x80000000) - -/* Bit definitions and macros for MCF_PCI_PCIRDCR */ -#define MCF_PCI_PCIRDCR_PKTSDONE(x) (((x)&0x0000FFFF)<<0) -#define MCF_PCI_PCIRDCR_BYTESDONE(x) (((x)&0x0000FFFF)<<16) - -/* Bit definitions and macros for MCF_PCI_PCIRSR */ -#define MCF_PCI_PCIRSR_IA (0x00010000) -#define MCF_PCI_PCIRSR_TA (0x00020000) -#define MCF_PCI_PCIRSR_RE (0x00040000) -#define MCF_PCI_PCIRSR_SE (0x00080000) -#define MCF_PCI_PCIRSR_FE (0x00100000) -#define MCF_PCI_PCIRSR_BE1 (0x00200000) -#define MCF_PCI_PCIRSR_BE2 (0x00400000) -#define MCF_PCI_PCIRSR_BE3 (0x00800000) -#define MCF_PCI_PCIRSR_NT (0x01000000) - -/* Bit definitions and macros for MCF_PCI_PCIRFSR */ -#define MCF_PCI_PCIRFSR_EMT (0x00010000) -#define MCF_PCI_PCIRFSR_ALARM (0x00020000) -#define MCF_PCI_PCIRFSR_FU (0x00040000) -#define MCF_PCI_PCIRFSR_FR (0x00080000) -#define MCF_PCI_PCIRFSR_OF (0x00100000) -#define MCF_PCI_PCIRFSR_UF (0x00200000) -#define MCF_PCI_PCIRFSR_RXW (0x00400000) - -/* Bit definitions and macros for MCF_PCI_PCIRFCR */ -#define MCF_PCI_PCIRFCR_OF_MSK (0x00080000) -#define MCF_PCI_PCIRFCR_UF_MSK (0x00100000) -#define MCF_PCI_PCIRFCR_RXW_MSK (0x00200000) -#define MCF_PCI_PCIRFCR_FAE_MSK (0x00400000) -#define MCF_PCI_PCIRFCR_IP_MSK (0x00800000) -#define MCF_PCI_PCIRFCR_GR(x) (((x)&0x00000007)<<24) - -/* Bit definitions and macros for MCF_PCI_PCIRFAR */ -#define MCF_PCI_PCIRFAR_ALARM(x) (((x)&0x0000007F)<<0) - -/* Bit definitions and macros for MCF_PCI_PCIRFRPR */ -#define MCF_PCI_PCIRFRPR_READ(x) (((x)&0x00000FFF)<<0) - -/* Bit definitions and macros for MCF_PCI_PCIRFWPR */ -#define MCF_PCI_PCIRFWPR_WRITE(x) (((x)&0x00000FFF)<<0) - -#endif /* __MCF548X_PCI_H__ */ diff --git a/arch/m68k/include/asm/coldfire/mcf548x/mcf548x_pciarb.h b/arch/m68k/include/asm/coldfire/mcf548x/mcf548x_pciarb.h deleted file mode 100644 index 8c1164730..000000000 --- a/arch/m68k/include/asm/coldfire/mcf548x/mcf548x_pciarb.h +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright (c) 2008 Carsten Schlote - * See file CREDITS for list of people who contributed to this project. - * - * This file is part of barebox. - * - * barebox is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * barebox is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with barebox. If not, see . - */ - -/** @file - * Register and bit definitions for the MCF548X and MCF547x - * PCI Arbiter Module (PCIARB) - */ -#ifndef __MCF548X_PCIARB_H__ -#define __MCF548X_PCIARB_H__ - -/* - * PCI Arbiter Module (PCIARB) - */ - -/* Register read/write macros */ -#define MCF_PCIARB_PACR (*(vuint32_t*)(&__MBAR[0x000C00])) -#define MCF_PCIARB_PASR (*(vuint32_t*)(&__MBAR[0x000C04])) - -/* Bit definitions and macros for MCF_PCIARB_PACR */ -#define MCF_PCIARB_PACR_INTMPRI (0x00000001) -#define MCF_PCIARB_PACR_EXTMPRI(x) (((x)&0x0000001F)<<1) -#define MCF_PCIARB_PACR_INTMINTEN (0x00010000) -#define MCF_PCIARB_PACR_EXTMINTEN(x) (((x)&0x0000001F)<<17) -/* Not documented! - * #define MCF_PCIARB_PACR_PKMD (0x40000000) - */ -#define MCF_PCIARB_PACR_DS (0x80000000) - -/* Bit definitions and macros for MCF_PCIARB_PASR */ -#define MCF_PCIARB_PASR_ITLMBK (0x00010000) -#define MCF_PCIARB_PASR_EXTMBK(x) (((x)&0x0000001F)<<17) - -#endif /* __MCF548X_PCIARB_H__ */ diff --git a/arch/m68k/include/asm/coldfire/mcf548x/mcf548x_psc.h b/arch/m68k/include/asm/coldfire/mcf548x/mcf548x_psc.h deleted file mode 100644 index c685af824..000000000 --- a/arch/m68k/include/asm/coldfire/mcf548x/mcf548x_psc.h +++ /dev/null @@ -1,486 +0,0 @@ -/* - * Copyright (c) 2008 Carsten Schlote - * See file CREDITS for list of people who contributed to this project. - * - * This file is part of barebox. - * - * barebox is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * barebox is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with barebox. If not, see . - */ - -/** @file - * Register and bit definitions for the MCF548X and MCF547x - * Programmable Serial Controller (PSC) - */ -#ifndef __MCF548X_PSC_H__ -#define __MCF548X_PSC_H__ - -/* - * Programmable Serial Controller (PSC) - */ - -/* Register read/write macros */ -#define MCF_PSC_MR0 (*(vuint8_t *)(&__MBAR[0x008600])) -#define MCF_PSC_SR0 (*(vuint16_t*)(&__MBAR[0x008604])) -#define MCF_PSC_CSR0 (*(vuint8_t *)(&__MBAR[0x008604])) -#define MCF_PSC_CR0 (*(vuint8_t *)(&__MBAR[0x008608])) -#define MCF_PSC_RB0 (*(vuint32_t*)(&__MBAR[0x00860C])) -#define MCF_PSC_TB0 (*(vuint32_t*)(&__MBAR[0x00860C])) -#define MCF_PSC_TB_8BIT0 (*(vuint32_t*)(&__MBAR[0x00860C])) -#define MCF_PSC_TB_16BIT0 (*(vuint32_t*)(&__MBAR[0x00860C])) -#define MCF_PSC_TB_AC970 (*(vuint32_t*)(&__MBAR[0x00860C])) -#define MCF_PSC_IPCR0 (*(vuint8_t *)(&__MBAR[0x008610])) -#define MCF_PSC_ACR0 (*(vuint8_t *)(&__MBAR[0x008610])) -#define MCF_PSC_ISR0 (*(vuint16_t*)(&__MBAR[0x008614])) -#define MCF_PSC_IMR0 (*(vuint16_t*)(&__MBAR[0x008614])) -#define MCF_PSC_CTUR0 (*(vuint8_t *)(&__MBAR[0x008618])) -#define MCF_PSC_CTLR0 (*(vuint8_t *)(&__MBAR[0x00861C])) -#define MCF_PSC_IP0 (*(vuint8_t *)(&__MBAR[0x008634])) -#define MCF_PSC_OPSET0 (*(vuint8_t *)(&__MBAR[0x008638])) -#define MCF_PSC_OPRESET0 (*(vuint8_t *)(&__MBAR[0x00863C])) -#define MCF_PSC_SICR0 (*(vuint8_t *)(&__MBAR[0x008640])) -#define MCF_PSC_IRCR10 (*(vuint8_t *)(&__MBAR[0x008644])) -#define MCF_PSC_IRCR20 (*(vuint8_t *)(&__MBAR[0x008648])) -#define MCF_PSC_IRSDR0 (*(vuint8_t *)(&__MBAR[0x00864C])) -#define MCF_PSC_IRMDR0 (*(vuint8_t *)(&__MBAR[0x008650])) -#define MCF_PSC_IRFDR0 (*(vuint8_t *)(&__MBAR[0x008654])) -#define MCF_PSC_RFCNT0 (*(vuint16_t*)(&__MBAR[0x008658])) -#define MCF_PSC_TFCNT0 (*(vuint16_t*)(&__MBAR[0x00865C])) -#define MCF_PSC_RFSR0 (*(vuint16_t*)(&__MBAR[0x008664])) -#define MCF_PSC_TFSR0 (*(vuint16_t*)(&__MBAR[0x008684])) -#define MCF_PSC_RFCR0 (*(vuint32_t*)(&__MBAR[0x008668])) -#define MCF_PSC_TFCR0 (*(vuint32_t*)(&__MBAR[0x008688])) -#define MCF_PSC_RFAR0 (*(vuint16_t*)(&__MBAR[0x00866E])) -#define MCF_PSC_TFAR0 (*(vuint16_t*)(&__MBAR[0x00868E])) -#define MCF_PSC_RFRP0 (*(vuint16_t*)(&__MBAR[0x008672])) -#define MCF_PSC_TFRP0 (*(vuint16_t*)(&__MBAR[0x008692])) -#define MCF_PSC_RFWP0 (*(vuint16_t*)(&__MBAR[0x008676])) -#define MCF_PSC_TFWP0 (*(vuint16_t*)(&__MBAR[0x008696])) -#define MCF_PSC_RLRFP0 (*(vuint16_t*)(&__MBAR[0x00867A])) -#define MCF_PSC_TLRFP0 (*(vuint16_t*)(&__MBAR[0x00869A])) -#define MCF_PSC_RLWFP0 (*(vuint16_t*)(&__MBAR[0x00867E])) -#define MCF_PSC_TLWFP0 (*(vuint16_t*)(&__MBAR[0x00869E])) -#define MCF_PSC_MR1 (*(vuint8_t *)(&__MBAR[0x008700])) -#define MCF_PSC_SR1 (*(vuint16_t*)(&__MBAR[0x008704])) -#define MCF_PSC_CSR1 (*(vuint8_t *)(&__MBAR[0x008704])) -#define MCF_PSC_CR1 (*(vuint8_t *)(&__MBAR[0x008708])) -#define MCF_PSC_RB1 (*(vuint32_t*)(&__MBAR[0x00870C])) -#define MCF_PSC_TB1 (*(vuint32_t*)(&__MBAR[0x00870C])) -#define MCF_PSC_TB_8BIT1 (*(vuint32_t*)(&__MBAR[0x00870C])) -#define MCF_PSC_TB_16BIT1 (*(vuint32_t*)(&__MBAR[0x00870C])) -#define MCF_PSC_TB_AC971 (*(vuint32_t*)(&__MBAR[0x00870C])) -#define MCF_PSC_IPCR1 (*(vuint8_t *)(&__MBAR[0x008710])) -#define MCF_PSC_ACR1 (*(vuint8_t *)(&__MBAR[0x008710])) -#define MCF_PSC_ISR1 (*(vuint16_t*)(&__MBAR[0x008714])) -#define MCF_PSC_IMR1 (*(vuint16_t*)(&__MBAR[0x008714])) -#define MCF_PSC_CTUR1 (*(vuint8_t *)(&__MBAR[0x008718])) -#define MCF_PSC_CTLR1 (*(vuint8_t *)(&__MBAR[0x00871C])) -#define MCF_PSC_IP1 (*(vuint8_t *)(&__MBAR[0x008734])) -#define MCF_PSC_OPSET1 (*(vuint8_t *)(&__MBAR[0x008738])) -#define MCF_PSC_OPRESET1 (*(vuint8_t *)(&__MBAR[0x00873C])) -#define MCF_PSC_SICR1 (*(vuint8_t *)(&__MBAR[0x008740])) -#define MCF_PSC_IRCR11 (*(vuint8_t *)(&__MBAR[0x008744])) -#define MCF_PSC_IRCR21 (*(vuint8_t *)(&__MBAR[0x008748])) -#define MCF_PSC_IRSDR1 (*(vuint8_t *)(&__MBAR[0x00874C])) -#define MCF_PSC_IRMDR1 (*(vuint8_t *)(&__MBAR[0x008750])) -#define MCF_PSC_IRFDR1 (*(vuint8_t *)(&__MBAR[0x008754])) -#define MCF_PSC_RFCNT1 (*(vuint16_t*)(&__MBAR[0x008758])) -#define MCF_PSC_TFCNT1 (*(vuint16_t*)(&__MBAR[0x00875C])) -#define MCF_PSC_RFSR1 (*(vuint16_t*)(&__MBAR[0x008764])) -#define MCF_PSC_TFSR1 (*(vuint16_t*)(&__MBAR[0x008784])) -#define MCF_PSC_RFCR1 (*(vuint32_t*)(&__MBAR[0x008768])) -#define MCF_PSC_TFCR1 (*(vuint32_t*)(&__MBAR[0x008788])) -#define MCF_PSC_RFAR1 (*(vuint16_t*)(&__MBAR[0x00876E])) -#define MCF_PSC_TFAR1 (*(vuint16_t*)(&__MBAR[0x00878E])) -#define MCF_PSC_RFRP1 (*(vuint16_t*)(&__MBAR[0x008772])) -#define MCF_PSC_TFRP1 (*(vuint16_t*)(&__MBAR[0x008792])) -#define MCF_PSC_RFWP1 (*(vuint16_t*)(&__MBAR[0x008776])) -#define MCF_PSC_TFWP1 (*(vuint16_t*)(&__MBAR[0x008796])) -#define MCF_PSC_RLRFP1 (*(vuint16_t*)(&__MBAR[0x00877A])) -#define MCF_PSC_TLRFP1 (*(vuint16_t*)(&__MBAR[0x00879A])) -#define MCF_PSC_RLWFP1 (*(vuint16_t*)(&__MBAR[0x00877E])) -#define MCF_PSC_TLWFP1 (*(vuint16_t*)(&__MBAR[0x00879E])) -#define MCF_PSC_MR2 (*(vuint8_t *)(&__MBAR[0x008800])) -#define MCF_PSC_SR2 (*(vuint16_t*)(&__MBAR[0x008804])) -#define MCF_PSC_CSR2 (*(vuint8_t *)(&__MBAR[0x008804])) -#define MCF_PSC_CR2 (*(vuint8_t *)(&__MBAR[0x008808])) -#define MCF_PSC_RB2 (*(vuint32_t*)(&__MBAR[0x00880C])) -#define MCF_PSC_TB2 (*(vuint32_t*)(&__MBAR[0x00880C])) -#define MCF_PSC_TB_8BIT2 (*(vuint32_t*)(&__MBAR[0x00880C])) -#define MCF_PSC_TB_16BIT2 (*(vuint32_t*)(&__MBAR[0x00880C])) -#define MCF_PSC_TB_AC972 (*(vuint32_t*)(&__MBAR[0x00880C])) -#define MCF_PSC_IPCR2 (*(vuint8_t *)(&__MBAR[0x008810])) -#define MCF_PSC_ACR2 (*(vuint8_t *)(&__MBAR[0x008810])) -#define MCF_PSC_ISR2 (*(vuint16_t*)(&__MBAR[0x008814])) -#define MCF_PSC_IMR2 (*(vuint16_t*)(&__MBAR[0x008814])) -#define MCF_PSC_CTUR2 (*(vuint8_t *)(&__MBAR[0x008818])) -#define MCF_PSC_CTLR2 (*(vuint8_t *)(&__MBAR[0x00881C])) -#define MCF_PSC_IP2 (*(vuint8_t *)(&__MBAR[0x008834])) -#define MCF_PSC_OPSET2 (*(vuint8_t *)(&__MBAR[0x008838])) -#define MCF_PSC_OPRESET2 (*(vuint8_t *)(&__MBAR[0x00883C])) -#define MCF_PSC_SICR2 (*(vuint8_t *)(&__MBAR[0x008840])) -#define MCF_PSC_IRCR12 (*(vuint8_t *)(&__MBAR[0x008844])) -#define MCF_PSC_IRCR22 (*(vuint8_t *)(&__MBAR[0x008848])) -#define MCF_PSC_IRSDR2 (*(vuint8_t *)(&__MBAR[0x00884C])) -#define MCF_PSC_IRMDR2 (*(vuint8_t *)(&__MBAR[0x008850])) -#define MCF_PSC_IRFDR2 (*(vuint8_t *)(&__MBAR[0x008854])) -#define MCF_PSC_RFCNT2 (*(vuint16_t*)(&__MBAR[0x008858])) -#define MCF_PSC_TFCNT2 (*(vuint16_t*)(&__MBAR[0x00885C])) -#define MCF_PSC_RFSR2 (*(vuint16_t*)(&__MBAR[0x008864])) -#define MCF_PSC_TFSR2 (*(vuint16_t*)(&__MBAR[0x008884])) -#define MCF_PSC_RFCR2 (*(vuint32_t*)(&__MBAR[0x008868])) -#define MCF_PSC_TFCR2 (*(vuint32_t*)(&__MBAR[0x008888])) -#define MCF_PSC_RFAR2 (*(vuint16_t*)(&__MBAR[0x00886E])) -#define MCF_PSC_TFAR2 (*(vuint16_t*)(&__MBAR[0x00888E])) -#define MCF_PSC_RFRP2 (*(vuint16_t*)(&__MBAR[0x008872])) -#define MCF_PSC_TFRP2 (*(vuint16_t*)(&__MBAR[0x008892])) -#define MCF_PSC_RFWP2 (*(vuint16_t*)(&__MBAR[0x008876])) -#define MCF_PSC_TFWP2 (*(vuint16_t*)(&__MBAR[0x008896])) -#define MCF_PSC_RLRFP2 (*(vuint16_t*)(&__MBAR[0x00887A])) -#define MCF_PSC_TLRFP2 (*(vuint16_t*)(&__MBAR[0x00889A])) -#define MCF_PSC_RLWFP2 (*(vuint16_t*)(&__MBAR[0x00887E])) -#define MCF_PSC_TLWFP2 (*(vuint16_t*)(&__MBAR[0x00889E])) -#define MCF_PSC_MR3 (*(vuint8_t *)(&__MBAR[0x008900])) -#define MCF_PSC_SR3 (*(vuint16_t*)(&__MBAR[0x008904])) -#define MCF_PSC_CSR3 (*(vuint8_t *)(&__MBAR[0x008904])) -#define MCF_PSC_CR3 (*(vuint8_t *)(&__MBAR[0x008908])) -#define MCF_PSC_RB3 (*(vuint32_t*)(&__MBAR[0x00890C])) -#define MCF_PSC_TB3 (*(vuint32_t*)(&__MBAR[0x00890C])) -#define MCF_PSC_TB_8BIT3 (*(vuint32_t*)(&__MBAR[0x00890C])) -#define MCF_PSC_TB_16BIT3 (*(vuint32_t*)(&__MBAR[0x00890C])) -#define MCF_PSC_TB_AC973 (*(vuint32_t*)(&__MBAR[0x00890C])) -#define MCF_PSC_IPCR3 (*(vuint8_t *)(&__MBAR[0x008910])) -#define MCF_PSC_ACR3 (*(vuint8_t *)(&__MBAR[0x008910])) -#define MCF_PSC_ISR3 (*(vuint16_t*)(&__MBAR[0x008914])) -#define MCF_PSC_IMR3 (*(vuint16_t*)(&__MBAR[0x008914])) -#define MCF_PSC_CTUR3 (*(vuint8_t *)(&__MBAR[0x008918])) -#define MCF_PSC_CTLR3 (*(vuint8_t *)(&__MBAR[0x00891C])) -#define MCF_PSC_IP3 (*(vuint8_t *)(&__MBAR[0x008934])) -#define MCF_PSC_OPSET3 (*(vuint8_t *)(&__MBAR[0x008938])) -#define MCF_PSC_OPRESET3 (*(vuint8_t *)(&__MBAR[0x00893C])) -#define MCF_PSC_SICR3 (*(vuint8_t *)(&__MBAR[0x008940])) -#define MCF_PSC_IRCR13 (*(vuint8_t *)(&__MBAR[0x008944])) -#define MCF_PSC_IRCR23 (*(vuint8_t *)(&__MBAR[0x008948])) -#define MCF_PSC_IRSDR3 (*(vuint8_t *)(&__MBAR[0x00894C])) -#define MCF_PSC_IRMDR3 (*(vuint8_t *)(&__MBAR[0x008950])) -#define MCF_PSC_IRFDR3 (*(vuint8_t *)(&__MBAR[0x008954])) -#define MCF_PSC_RFCNT3 (*(vuint16_t*)(&__MBAR[0x008958])) -#define MCF_PSC_TFCNT3 (*(vuint16_t*)(&__MBAR[0x00895C])) -#define MCF_PSC_RFSR3 (*(vuint16_t*)(&__MBAR[0x008964])) -#define MCF_PSC_TFSR3 (*(vuint16_t*)(&__MBAR[0x008984])) -#define MCF_PSC_RFCR3 (*(vuint32_t*)(&__MBAR[0x008968])) -#define MCF_PSC_TFCR3 (*(vuint32_t*)(&__MBAR[0x008988])) -#define MCF_PSC_RFAR3 (*(vuint16_t*)(&__MBAR[0x00896E])) -#define MCF_PSC_TFAR3 (*(vuint16_t*)(&__MBAR[0x00898E])) -#define MCF_PSC_RFRP3 (*(vuint16_t*)(&__MBAR[0x008972])) -#define MCF_PSC_TFRP3 (*(vuint16_t*)(&__MBAR[0x008992])) -#define MCF_PSC_RFWP3 (*(vuint16_t*)(&__MBAR[0x008976])) -#define MCF_PSC_TFWP3 (*(vuint16_t*)(&__MBAR[0x008996])) -#define MCF_PSC_RLRFP3 (*(vuint16_t*)(&__MBAR[0x00897A])) -#define MCF_PSC_TLRFP3 (*(vuint16_t*)(&__MBAR[0x00899A])) -#define MCF_PSC_RLWFP3 (*(vuint16_t*)(&__MBAR[0x00897E])) -#define MCF_PSC_TLWFP3 (*(vuint16_t*)(&__MBAR[0x00899E])) -#define MCF_PSC_MR(x) (*(vuint8_t *)(&__MBAR[0x008600+((x)*0x100)])) -#define MCF_PSC_SR(x) (*(vuint16_t*)(&__MBAR[0x008604+((x)*0x100)])) -#define MCF_PSC_CSR(x) (*(vuint8_t *)(&__MBAR[0x008604+((x)*0x100)])) -#define MCF_PSC_CR(x) (*(vuint8_t *)(&__MBAR[0x008608+((x)*0x100)])) -#define MCF_PSC_RB(x) (*(vuint32_t*)(&__MBAR[0x00860C+((x)*0x100)])) -#define MCF_PSC_TB(x) (*(vuint32_t*)(&__MBAR[0x00860C+((x)*0x100)])) -#define MCF_PSC_TB_8BIT(x) (*(vuint32_t*)(&__MBAR[0x00860C+((x)*0x100)])) -#define MCF_PSC_TB_16BIT(x) (*(vuint32_t*)(&__MBAR[0x00860C+((x)*0x100)])) -#define MCF_PSC_TB_AC97(x) (*(vuint32_t*)(&__MBAR[0x00860C+((x)*0x100)])) -#define MCF_PSC_IPCR(x) (*(vuint8_t *)(&__MBAR[0x008610+((x)*0x100)])) -#define MCF_PSC_ACR(x) (*(vuint8_t *)(&__MBAR[0x008610+((x)*0x100)])) -#define MCF_PSC_ISR(x) (*(vuint16_t*)(&__MBAR[0x008614+((x)*0x100)])) -#define MCF_PSC_IMR(x) (*(vuint16_t*)(&__MBAR[0x008614+((x)*0x100)])) -#define MCF_PSC_CTUR(x) (*(vuint8_t *)(&__MBAR[0x008618+((x)*0x100)])) -#define MCF_PSC_CTLR(x) (*(vuint8_t *)(&__MBAR[0x00861C+((x)*0x100)])) -#define MCF_PSC_IP(x) (*(vuint8_t *)(&__MBAR[0x008634+((x)*0x100)])) -#define MCF_PSC_OPSET(x) (*(vuint8_t *)(&__MBAR[0x008638+((x)*0x100)])) -#define MCF_PSC_OPRESET(x) (*(vuint8_t *)(&__MBAR[0x00863C+((x)*0x100)])) -#define MCF_PSC_SICR(x) (*(vuint8_t *)(&__MBAR[0x008640+((x)*0x100)])) -#define MCF_PSC_IRCR1(x) (*(vuint8_t *)(&__MBAR[0x008644+((x)*0x100)])) -#define MCF_PSC_IRCR2(x) (*(vuint8_t *)(&__MBAR[0x008648+((x)*0x100)])) -#define MCF_PSC_IRSDR(x) (*(vuint8_t *)(&__MBAR[0x00864C+((x)*0x100)])) -#define MCF_PSC_IRMDR(x) (*(vuint8_t *)(&__MBAR[0x008650+((x)*0x100)])) -#define MCF_PSC_IRFDR(x) (*(vuint8_t *)(&__MBAR[0x008654+((x)*0x100)])) -#define MCF_PSC_RFCNT(x) (*(vuint16_t*)(&__MBAR[0x008658+((x)*0x100)])) -#define MCF_PSC_TFCNT(x) (*(vuint16_t*)(&__MBAR[0x00865C+((x)*0x100)])) -#define MCF_PSC_RFSR(x) (*(vuint16_t*)(&__MBAR[0x008664+((x)*0x100)])) -#define MCF_PSC_TFSR(x) (*(vuint16_t*)(&__MBAR[0x008684+((x)*0x100)])) -#define MCF_PSC_RFCR(x) (*(vuint32_t*)(&__MBAR[0x008668+((x)*0x100)])) -#define MCF_PSC_TFCR(x) (*(vuint32_t*)(&__MBAR[0x008688+((x)*0x100)])) -#define MCF_PSC_RFAR(x) (*(vuint16_t*)(&__MBAR[0x00866E+((x)*0x100)])) -#define MCF_PSC_TFAR(x) (*(vuint16_t*)(&__MBAR[0x00868E+((x)*0x100)])) -#define MCF_PSC_RFRP(x) (*(vuint16_t*)(&__MBAR[0x008672+((x)*0x100)])) -#define MCF_PSC_TFRP(x) (*(vuint16_t*)(&__MBAR[0x008692+((x)*0x100)])) -#define MCF_PSC_RFWP(x) (*(vuint16_t*)(&__MBAR[0x008676+((x)*0x100)])) -#define MCF_PSC_TFWP(x) (*(vuint16_t*)(&__MBAR[0x008696+((x)*0x100)])) -#define MCF_PSC_RLRFP(x) (*(vuint16_t*)(&__MBAR[0x00867A+((x)*0x100)])) -#define MCF_PSC_TLRFP(x) (*(vuint16_t*)(&__MBAR[0x00869A+((x)*0x100)])) -#define MCF_PSC_RLWFP(x) (*(vuint16_t*)(&__MBAR[0x00867E+((x)*0x100)])) -#define MCF_PSC_TLWFP(x) (*(vuint16_t*)(&__MBAR[0x00869E+((x)*0x100)])) - -/* Bit definitions and macros for MCF_PSC_MR */ -#define MCF_PSC_MR_BC(x) (((x)&0x03)<<0) -#define MCF_PSC_MR_PT (0x04) -#define MCF_PSC_MR_PM(x) (((x)&0x03)<<3) -#define MCF_PSC_MR_ERR (0x20) -#define MCF_PSC_MR_RXIRQ (0x40) -#define MCF_PSC_MR_RXRTS (0x80) -#define MCF_PSC_MR_SB(x) (((x)&0x0F)<<0) -#define MCF_PSC_MR_TXCTS (0x10) -#define MCF_PSC_MR_TXRTS (0x20) -#define MCF_PSC_MR_CM(x) (((x)&0x03)<<6) -#define MCF_PSC_MR_PM_MULTI_ADDR (0x1C) -#define MCF_PSC_MR_PM_MULTI_DATA (0x18) -#define MCF_PSC_MR_PM_NONE (0x10) -#define MCF_PSC_MR_PM_FORCE_HI (0x0C) -#define MCF_PSC_MR_PM_FORCE_LO (0x08) -#define MCF_PSC_MR_PM_ODD (0x04) -#define MCF_PSC_MR_PM_EVEN (0x00) -#define MCF_PSC_MR_BC_5 (0x00) -#define MCF_PSC_MR_BC_6 (0x01) -#define MCF_PSC_MR_BC_7 (0x02) -#define MCF_PSC_MR_BC_8 (0x03) -#define MCF_PSC_MR_CM_NORMAL (0x00) -#define MCF_PSC_MR_CM_ECHO (0x40) -#define MCF_PSC_MR_CM_LOCAL_LOOP (0x80) -#define MCF_PSC_MR_CM_REMOTE_LOOP (0xC0) -#define MCF_PSC_MR_SB_STOP_BITS_1 (0x07) -#define MCF_PSC_MR_SB_STOP_BITS_15 (0x08) -#define MCF_PSC_MR_SB_STOP_BITS_2 (0x0F) - -/* Bit definitions and macros for MCF_PSC_SR */ -#define MCF_PSC_SR_ERR (0x0040) -#define MCF_PSC_SR_CDE_DEOF (0x0080) -#define MCF_PSC_SR_RXRDY (0x0100) -#define MCF_PSC_SR_FU (0x0200) -#define MCF_PSC_SR_TXRDY (0x0400) -#define MCF_PSC_SR_TXEMP_URERR (0x0800) -#define MCF_PSC_SR_OE (0x1000) -#define MCF_PSC_SR_PE_CRCERR (0x2000) -#define MCF_PSC_SR_FE_PHYERR (0x4000) -#define MCF_PSC_SR_RB_NEOF (0x8000) - -/* Bit definitions and macros for MCF_PSC_CSR */ -#define MCF_PSC_CSR_TCSEL(x) (((x)&0x0F)<<0) -#define MCF_PSC_CSR_RCSEL(x) (((x)&0x0F)<<4) -#define MCF_PSC_CSR_RCSEL_SYS_CLK (0xD0) -#define MCF_PSC_CSR_RCSEL_CTM16 (0xE0) -#define MCF_PSC_CSR_RCSEL_CTM (0xF0) -#define MCF_PSC_CSR_TCSEL_SYS_CLK (0x0D) -#define MCF_PSC_CSR_TCSEL_CTM16 (0x0E) -#define MCF_PSC_CSR_TCSEL_CTM (0x0F) - -/* Bit definitions and macros for MCF_PSC_CR */ -#define MCF_PSC_CR_RXC(x) (((x)&0x03)<<0) -#define MCF_PSC_CR_TXC(x) (((x)&0x03)<<2) -#define MCF_PSC_CR_MISC(x) (((x)&0x07)<<4) -#define MCF_PSC_CR_NONE (0x00) -#define MCF_PSC_CR_STOP_BREAK (0x70) -#define MCF_PSC_CR_START_BREAK (0x60) -#define MCF_PSC_CR_BKCHGINT (0x50) -#define MCF_PSC_CR_RESET_ERROR (0x40) -#define MCF_PSC_CR_RESET_TX (0x30) -#define MCF_PSC_CR_RESET_RX (0x20) -#define MCF_PSC_CR_RESET_MR (0x10) -#define MCF_PSC_CR_TX_DISABLED (0x08) -#define MCF_PSC_CR_TX_ENABLED (0x04) -#define MCF_PSC_CR_RX_DISABLED (0x02) -#define MCF_PSC_CR_RX_ENABLED (0x01) - -/* Bit definitions and macros for MCF_PSC_TB_8BIT */ -#define MCF_PSC_TB_8BIT_TB3(x) (((x)&0x000000FF)<<0) -#define MCF_PSC_TB_8BIT_TB2(x) (((x)&0x000000FF)<<8) -#define MCF_PSC_TB_8BIT_TB1(x) (((x)&0x000000FF)<<16) -#define MCF_PSC_TB_8BIT_TB0(x) (((x)&0x000000FF)<<24) - -/* Bit definitions and macros for MCF_PSC_TB_16BIT */ -#define MCF_PSC_TB_16BIT_TB1(x) (((x)&0x0000FFFF)<<0) -#define MCF_PSC_TB_16BIT_TB0(x) (((x)&0x0000FFFF)<<16) - -/* Bit definitions and macros for MCF_PSC_TB_AC97 */ -#define MCF_PSC_TB_AC97_SOF (0x00000800) -#define MCF_PSC_TB_AC97_TB(x) (((x)&0x000FFFFF)<<12) - -/* Bit definitions and macros for MCF_PSC_IPCR */ -#define MCF_PSC_IPCR_RESERVED (0x0C) -#define MCF_PSC_IPCR_CTS (0x0D) -#define MCF_PSC_IPCR_D_CTS (0x1C) -#define MCF_PSC_IPCR_SYNC (0x8C) - -/* Bit definitions and macros for MCF_PSC_ACR */ -#define MCF_PSC_ACR_IEC0 (0x01) -#define MCF_PSC_ACR_CTMS(x) (((x)&0x07)<<4) -#define MCF_PSC_ACR_BRG (0x80) - -/* Bit definitions and macros for MCF_PSC_ISR */ -#define MCF_PSC_ISR_ERR (0x0040) -#define MCF_PSC_ISR_DEOF (0x0080) -#define MCF_PSC_ISR_TXRDY (0x0100) -#define MCF_PSC_ISR_RXRDY_FU (0x0200) -#define MCF_PSC_ISR_DB (0x0400) -#define MCF_PSC_ISR_IPC (0x8000) - -/* Bit definitions and macros for MCF_PSC_IMR */ -#define MCF_PSC_IMR_ERR (0x0040) -#define MCF_PSC_IMR_DEOF (0x0080) -#define MCF_PSC_IMR_TXRDY (0x0100) -#define MCF_PSC_IMR_RXRDY_FU (0x0200) -#define MCF_PSC_IMR_DB (0x0400) -#define MCF_PSC_IMR_IPC (0x8000) - -/* Bit definitions and macros for MCF_PSC_IP */ -#define MCF_PSC_IP_CTS (0x01) -#define MCF_PSC_IP_TGL (0x40) -#define MCF_PSC_IP_LWPR_B (0x80) - -/* Bit definitions and macros for MCF_PSC_OPSET */ -#define MCF_PSC_OPSET_RTS (0x01) - -/* Bit definitions and macros for MCF_PSC_OPRESET */ -#define MCF_PSC_OPRESET_RTS (0x01) - -/* Bit definitions and macros for MCF_PSC_SICR */ -#define MCF_PSC_SICR_SIM(x) (((x)&0x07)<<0) -#define MCF_PSC_SICR_SHDIR (0x10) -#define MCF_PSC_SICR_DTS (0x20) -#define MCF_PSC_SICR_AWR (0x40) -#define MCF_PSC_SICR_ACRB (0x80) -#define MCF_PSC_SICR_SIM_UART (0x00) -#define MCF_PSC_SICR_SIM_MODEM8 (0x01) -#define MCF_PSC_SICR_SIM_MODEM16 (0x02) -#define MCF_PSC_SICR_SIM_AC97 (0x03) -#define MCF_PSC_SICR_SIM_SIR (0x04) -#define MCF_PSC_SICR_SIM_MIR (0x05) -#define MCF_PSC_SICR_SIM_FIR (0x06) - -/* Bit definitions and macros for MCF_PSC_IRCR1 */ -#define MCF_PSC_IRCR1_SPUL (0x01) -#define MCF_PSC_IRCR1_SIPEN (0x02) -#define MCF_PSC_IRCR1_FD (0x04) - -/* Bit definitions and macros for MCF_PSC_IRCR2 */ -#define MCF_PSC_IRCR2_NXTEOF (0x01) -#define MCF_PSC_IRCR2_ABORT (0x02) -#define MCF_PSC_IRCR2_SIPREQ (0x04) - -/* Bit definitions and macros for MCF_PSC_IRMDR */ -#define MCF_PSC_IRMDR_M_FDIV(x) (((x)&0x7F)<<0) -#define MCF_PSC_IRMDR_FREQ (0x80) - -/* Bit definitions and macros for MCF_PSC_IRFDR */ -#define MCF_PSC_IRFDR_F_FDIV(x) (((x)&0x0F)<<0) - -/* Bit definitions and macros for MCF_PSC_RFCNT */ -#define MCF_PSC_RFCNT_CNT(x) (((x)&0x01FF)<<0) - -/* Bit definitions and macros for MCF_PSC_TFCNT */ -#define MCF_PSC_TFCNT_CNT(x) (((x)&0x01FF)<<0) - -/* Bit definitions and macros for MCF_PSC_RFSR */ -#define MCF_PSC_RFSR_EMT (0x0001) -#define MCF_PSC_RFSR_ALARM (0x0002) -#define MCF_PSC_RFSR_FU (0x0004) -#define MCF_PSC_RFSR_FRMRY (0x0008) -#define MCF_PSC_RFSR_OF (0x0010) -#define MCF_PSC_RFSR_UF (0x0020) -#define MCF_PSC_RFSR_RXW (0x0040) -#define MCF_PSC_RFSR_FAE (0x0080) -#define MCF_PSC_RFSR_FRM(x) (((x)&0x000F)<<8) -#define MCF_PSC_RFSR_TAG (0x1000) -#define MCF_PSC_RFSR_TXW (0x4000) -#define MCF_PSC_RFSR_IP (0x8000) -#define MCF_PSC_RFSR_FRM_BYTE0 (0x0800) -#define MCF_PSC_RFSR_FRM_BYTE1 (0x0400) -#define MCF_PSC_RFSR_FRM_BYTE2 (0x0200) -#define MCF_PSC_RFSR_FRM_BYTE3 (0x0100) - -/* Bit definitions and macros for MCF_PSC_TFSR */ -#define MCF_PSC_TFSR_EMT (0x0001) -#define MCF_PSC_TFSR_ALARM (0x0002) -#define MCF_PSC_TFSR_FU (0x0004) -#define MCF_PSC_TFSR_FRMRY (0x0008) -#define MCF_PSC_TFSR_OF (0x0010) -#define MCF_PSC_TFSR_UF (0x0020) -#define MCF_PSC_TFSR_RXW (0x0040) -#define MCF_PSC_TFSR_FAE (0x0080) -#define MCF_PSC_TFSR_FRM(x) (((x)&0x000F)<<8) -#define MCF_PSC_TFSR_TAG (0x1000) -#define MCF_PSC_TFSR_TXW (0x4000) -#define MCF_PSC_TFSR_IP (0x8000) -#define MCF_PSC_TFSR_FRM_BYTE0 (0x0800) -#define MCF_PSC_TFSR_FRM_BYTE1 (0x0400) -#define MCF_PSC_TFSR_FRM_BYTE2 (0x0200) -#define MCF_PSC_TFSR_FRM_BYTE3 (0x0100) - -/* Bit definitions and macros for MCF_PSC_RFCR */ -#define MCF_PSC_RFCR_CNTR(x) (((x)&0x0000FFFF)<<0) -#define MCF_PSC_RFCR_TXW_MSK (0x00040000) -#define MCF_PSC_RFCR_OF_MSK (0x00080000) -#define MCF_PSC_RFCR_UF_MSK (0x00100000) -#define MCF_PSC_RFCR_RXW_MSK (0x00200000) -#define MCF_PSC_RFCR_FAE_MSK (0x00400000) -#define MCF_PSC_RFCR_IP_MSK (0x00800000) -#define MCF_PSC_RFCR_GR(x) (((x)&0x00000007)<<24) -#define MCF_PSC_RFCR_FRMEN (0x08000000) -#define MCF_PSC_RFCR_TIMER (0x10000000) -#define MCF_PSC_RFCR_WRITETAG (0x20000000) -#define MCF_PSC_RFCR_SHADOW (0x80000000) - -/* Bit definitions and macros for MCF_PSC_TFCR */ -#define MCF_PSC_TFCR_CNTR(x) (((x)&0x0000FFFF)<<0) -#define MCF_PSC_TFCR_TXW_MSK (0x00040000) -#define MCF_PSC_TFCR_OF_MSK (0x00080000) -#define MCF_PSC_TFCR_UF_MSK (0x00100000) -#define MCF_PSC_TFCR_RXW_MSK (0x00200000) -#define MCF_PSC_TFCR_FAE_MSK (0x00400000) -#define MCF_PSC_TFCR_IP_MSK (0x00800000) -#define MCF_PSC_TFCR_GR(x) (((x)&0x00000007)<<24) -#define MCF_PSC_TFCR_FRMEN (0x08000000) -#define MCF_PSC_TFCR_TIMER (0x10000000) -#define MCF_PSC_TFCR_WRITETAG (0x20000000) -#define MCF_PSC_TFCR_SHADOW (0x80000000) - -/* Bit definitions and macros for MCF_PSC_RFAR */ -#define MCF_PSC_RFAR_ALARM(x) (((x)&0x01FF)<<0) - -/* Bit definitions and macros for MCF_PSC_TFAR */ -#define MCF_PSC_TFAR_ALARM(x) (((x)&0x01FF)<<0) - -/* Bit definitions and macros for MCF_PSC_RFRP */ -#define MCF_PSC_RFRP_READ(x) (((x)&0x01FF)<<0) - -/* Bit definitions and macros for MCF_PSC_TFRP */ -#define MCF_PSC_TFRP_READ(x) (((x)&0x01FF)<<0) - -/* Bit definitions and macros for MCF_PSC_RFWP */ -#define MCF_PSC_RFWP_WRITE(x) (((x)&0x01FF)<<0) - -/* Bit definitions and macros for MCF_PSC_TFWP */ -#define MCF_PSC_TFWP_WRITE(x) (((x)&0x01FF)<<0) - -/* Bit definitions and macros for MCF_PSC_RLRFP */ -#define MCF_PSC_RLRFP_LFP(x) (((x)&0x01FF)<<0) - -/* Bit definitions and macros for MCF_PSC_TLRFP */ -#define MCF_PSC_TLRFP_LFP(x) (((x)&0x01FF)<<0) - -/* Bit definitions and macros for MCF_PSC_RLWFP */ -#define MCF_PSC_RLWFP_LFP(x) (((x)&0x01FF)<<0) - -/* Bit definitions and macros for MCF_PSC_TLWFP */ -#define MCF_PSC_TLWFP_LFP(x) (((x)&0x01FF)<<0) - -#endif /* __MCF548X_PSC_H__ */ diff --git a/arch/m68k/include/asm/coldfire/mcf548x/mcf548x_sdramc.h b/arch/m68k/include/asm/coldfire/mcf548x/mcf548x_sdramc.h deleted file mode 100644 index 452332d1d..000000000 --- a/arch/m68k/include/asm/coldfire/mcf548x/mcf548x_sdramc.h +++ /dev/null @@ -1,109 +0,0 @@ -/* - * Copyright (c) 2008 Carsten Schlote - * See file CREDITS for list of people who contributed to this project. - * - * This file is part of barebox. - * - * barebox is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * barebox is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with barebox. If not, see . - */ - -/** @file - * Register and bit definitions for the MCF548X and MCF547x - * SDRAM Controller (SDRAMC) - */ -#ifndef __MCF548X_SDRAMC_H__ -#define __MCF548X_SDRAMC_H__ - -/* - * SDRAM Controller (SDRAMC) - */ - -/* Register read/write macros */ -#define MCF_SDRAMC_SDRAMDS (*(vuint32_t*)(&__MBAR[0x000004])) -#define MCF_SDRAMC_CS0CFG (*(vuint32_t*)(&__MBAR[0x000020])) -#define MCF_SDRAMC_CS1CFG (*(vuint32_t*)(&__MBAR[0x000024])) -#define MCF_SDRAMC_CS2CFG (*(vuint32_t*)(&__MBAR[0x000028])) -#define MCF_SDRAMC_CS3CFG (*(vuint32_t*)(&__MBAR[0x00002C])) -#define MCF_SDRAMC_CSnCFG(x) (*(vuint32_t*)(&__MBAR[0x000020+((x)*0x004)])) -#define MCF_SDRAMC_SDMR (*(vuint32_t*)(&__MBAR[0x000100])) -#define MCF_SDRAMC_SDCR (*(vuint32_t*)(&__MBAR[0x000104])) -#define MCF_SDRAMC_SDCFG1 (*(vuint32_t*)(&__MBAR[0x000108])) -#define MCF_SDRAMC_SDCFG2 (*(vuint32_t*)(&__MBAR[0x00010C])) - -/* Bit definitions and macros for MCF_SDRAMC_SDRAMDS */ -#define MCF_SDRAMC_SDRAMDS_SB_D(x) (((x)&0x00000003)<<0) -#define MCF_SDRAMC_SDRAMDS_SB_S(x) (((x)&0x00000003)<<2) -#define MCF_SDRAMC_SDRAMDS_SB_A(x) (((x)&0x00000003)<<4) -#define MCF_SDRAMC_SDRAMDS_SB_C(x) (((x)&0x00000003)<<6) -#define MCF_SDRAMC_SDRAMDS_SB_E(x) (((x)&0x00000003)<<8) -#define MCF_SDRAMC_SDRAMDS_DRIVE_8MA (0x02) -#define MCF_SDRAMC_SDRAMDS_DRIVE_16MA (0x01) -#define MCF_SDRAMC_SDRAMDS_DRIVE_24MA (0x00) -#define MCF_SDRAMC_SDRAMDS_DRIVE_NONE (0x03) - -/* Bit definitions and macros for MCF_SDRAMC_CSnCFG */ -#define MCF_SDRAMC_CSnCFG_CSSZ(x) (((x)&0x0000001F)<<0) -#define MCF_SDRAMC_CSnCFG_CSBA(x) (((x)&0x00000FFF)<<20) -#define MCF_SDRAMC_CSnCFG_CSSZ_DIABLE (0x00000000) -#define MCF_SDRAMC_CSnCFG_CSSZ_1MBYTE (0x00000013) -#define MCF_SDRAMC_CSnCFG_CSSZ_2MBYTE (0x00000014) -#define MCF_SDRAMC_CSnCFG_CSSZ_4MBYTE (0x00000015) -#define MCF_SDRAMC_CSnCFG_CSSZ_8MBYTE (0x00000016) -#define MCF_SDRAMC_CSnCFG_CSSZ_16MBYTE (0x00000017) -#define MCF_SDRAMC_CSnCFG_CSSZ_32MBYTE (0x00000018) -#define MCF_SDRAMC_CSnCFG_CSSZ_64MBYTE (0x00000019) -#define MCF_SDRAMC_CSnCFG_CSSZ_128MBYTE (0x0000001A) -#define MCF_SDRAMC_CSnCFG_CSSZ_256MBYTE (0x0000001B) -#define MCF_SDRAMC_CSnCFG_CSSZ_512MBYTE (0x0000001C) -#define MCF_SDRAMC_CSnCFG_CSSZ_1GBYTE (0x0000001D) -#define MCF_SDRAMC_CSnCFG_CSSZ_2GBYTE (0x0000001E) -#define MCF_SDRAMC_CSnCFG_CSSZ_4GBYTE (0x0000001F) - -/* Bit definitions and macros for MCF_SDRAMC_SDMR */ -#define MCF_SDRAMC_SDMR_CMD (0x00010000) -#define MCF_SDRAMC_SDMR_AD(x) (((x)&0x00000FFF)<<18) -#define MCF_SDRAMC_SDMR_BNKAD(x) (((x)&0x00000003)<<30) -#define MCF_SDRAMC_SDMR_BNKAD_LMR (0x00000000) -#define MCF_SDRAMC_SDMR_BNKAD_LEMR (0x40000000) - -/* Bit definitions and macros for MCF_SDRAMC_SDCR */ -#define MCF_SDRAMC_SDCR_IPALL (0x00000002) -#define MCF_SDRAMC_SDCR_IREF (0x00000004) -#define MCF_SDRAMC_SDCR_BUFF (0x00000010) -#define MCF_SDRAMC_SDCR_DQS_OE(x) (((x)&0x0000000F)<<8) -#define MCF_SDRAMC_SDCR_RCNT(x) (((x)&0x0000003F)<<16) -#define MCF_SDRAMC_SDCR_DRIVE (0x00400000) -#define MCF_SDRAMC_SDCR_AP (0x00800000) -#define MCF_SDRAMC_SDCR_MUX(x) (((x)&0x00000003)<<24) -#define MCF_SDRAMC_SDCR_REF (0x10000000) -#define MCF_SDRAMC_SDCR_DDR (0x20000000) -#define MCF_SDRAMC_SDCR_CKE (0x40000000) -#define MCF_SDRAMC_SDCR_MODE_EN (0x80000000) - -/* Bit definitions and macros for MCF_SDRAMC_SDCFG1 */ -#define MCF_SDRAMC_SDCFG1_WTLAT(x) (((x)&0x00000007)<<4) -#define MCF_SDRAMC_SDCFG1_REF2ACT(x) (((x)&0x0000000F)<<8) -#define MCF_SDRAMC_SDCFG1_PRE2ACT(x) (((x)&0x00000007)<<12) -#define MCF_SDRAMC_SDCFG1_ACT2RW(x) (((x)&0x00000007)<<16) -#define MCF_SDRAMC_SDCFG1_RDLAT(x) (((x)&0x0000000F)<<20) -#define MCF_SDRAMC_SDCFG1_SWT2RD(x) (((x)&0x00000007)<<24) -#define MCF_SDRAMC_SDCFG1_SRD2RW(x) (((x)&0x0000000F)<<28) - -/* Bit definitions and macros for MCF_SDRAMC_SDCFG2 */ -#define MCF_SDRAMC_SDCFG2_BL(x) (((x)&0x0000000F)<<16) -#define MCF_SDRAMC_SDCFG2_BRD2WT(x) (((x)&0x0000000F)<<20) -#define MCF_SDRAMC_SDCFG2_BWT2RW(x) (((x)&0x0000000F)<<24) -#define MCF_SDRAMC_SDCFG2_BRD2PRE(x) (((x)&0x0000000F)<<28) - -#endif /* __MCF548X_SDRAMC_H__ */ diff --git a/arch/m68k/include/asm/coldfire/mcf548x/mcf548x_sec.h b/arch/m68k/include/asm/coldfire/mcf548x/mcf548x_sec.h deleted file mode 100644 index 552527d38..000000000 --- a/arch/m68k/include/asm/coldfire/mcf548x/mcf548x_sec.h +++ /dev/null @@ -1,389 +0,0 @@ -/* - * Copyright (c) 2008 Carsten Schlote - * See file CREDITS for list of people who contributed to this project. - * - * This file is part of barebox. - * - * barebox is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * barebox is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with barebox. If not, see . - */ - -/** @file - * Register and bit definitions for the MCF548X and MCF547x - * Integrated Security Engine (SEC) - */ -#ifndef __MCF548X_SEC_H__ -#define __MCF548X_SEC_H__ - -/* - * Integrated Security Engine (SEC) - */ - -/* Register read/write macros */ -#define MCF_SEC_EUACRH (*(vuint32_t*)(&__MBAR[0x021000])) -#define MCF_SEC_EUACRL (*(vuint32_t*)(&__MBAR[0x021004])) -#define MCF_SEC_EUASRH (*(vuint32_t*)(&__MBAR[0x021028])) -#define MCF_SEC_EUASRL (*(vuint32_t*)(&__MBAR[0x02102C])) -#define MCF_SEC_SIMRH (*(vuint32_t*)(&__MBAR[0x021008])) -#define MCF_SEC_SIMRL (*(vuint32_t*)(&__MBAR[0x02100C])) -#define MCF_SEC_SISRH (*(vuint32_t*)(&__MBAR[0x021010])) -#define MCF_SEC_SISRL (*(vuint32_t*)(&__MBAR[0x021014])) -#define MCF_SEC_SICRH (*(vuint32_t*)(&__MBAR[0x021018])) -#define MCF_SEC_SICRL (*(vuint32_t*)(&__MBAR[0x02101C])) -#define MCF_SEC_SIDR (*(vuint32_t*)(&__MBAR[0x021020])) -#define MCF_SEC_SMCR (*(vuint32_t*)(&__MBAR[0x021030])) -#define MCF_SEC_MEAR (*(vuint32_t*)(&__MBAR[0x021038])) -#define MCF_SEC_CCCR0 (*(vuint32_t*)(&__MBAR[0x02200C])) -#define MCF_SEC_CCCR1 (*(vuint32_t*)(&__MBAR[0x02300C])) -#define MCF_SEC_CCPSRH0 (*(vuint32_t*)(&__MBAR[0x022010])) -#define MCF_SEC_CCPSRH1 (*(vuint32_t*)(&__MBAR[0x023010])) -#define MCF_SEC_CCPSRL0 (*(vuint32_t*)(&__MBAR[0x022014])) -#define MCF_SEC_CCPSRL1 (*(vuint32_t*)(&__MBAR[0x023014])) -#define MCF_SEC_CDPR0 (*(vuint32_t*)(&__MBAR[0x022044])) -#define MCF_SEC_CDPR1 (*(vuint32_t*)(&__MBAR[0x023044])) -#define MCF_SEC_FR0 (*(vuint32_t*)(&__MBAR[0x02204C])) -#define MCF_SEC_FR1 (*(vuint32_t*)(&__MBAR[0x02304C])) -#define MCF_SEC_AFRCR (*(vuint32_t*)(&__MBAR[0x028018])) -#define MCF_SEC_AFSR (*(vuint32_t*)(&__MBAR[0x028028])) -#define MCF_SEC_AFISR (*(vuint32_t*)(&__MBAR[0x028030])) -#define MCF_SEC_AFIMR (*(vuint32_t*)(&__MBAR[0x028038])) -#define MCF_SEC_DRCR (*(vuint32_t*)(&__MBAR[0x02A018])) -#define MCF_SEC_DSR (*(vuint32_t*)(&__MBAR[0x02A028])) -#define MCF_SEC_DISR (*(vuint32_t*)(&__MBAR[0x02A030])) -#define MCF_SEC_DIMR (*(vuint32_t*)(&__MBAR[0x02A038])) -#define MCF_SEC_MDRCR (*(vuint32_t*)(&__MBAR[0x02C018])) -#define MCF_SEC_MDSR (*(vuint32_t*)(&__MBAR[0x02C028])) -#define MCF_SEC_MDISR (*(vuint32_t*)(&__MBAR[0x02C030])) -#define MCF_SEC_MDIMR (*(vuint32_t*)(&__MBAR[0x02C038])) -#define MCF_SEC_RNGRCR (*(vuint32_t*)(&__MBAR[0x02E018])) -#define MCF_SEC_RNGSR (*(vuint32_t*)(&__MBAR[0x02E028])) -#define MCF_SEC_RNGISR (*(vuint32_t*)(&__MBAR[0x02E030])) -#define MCF_SEC_RNGIMR (*(vuint32_t*)(&__MBAR[0x02E038])) -#define MCF_SEC_AESRCR (*(vuint32_t*)(&__MBAR[0x032018])) -#define MCF_SEC_AESSR (*(vuint32_t*)(&__MBAR[0x032028])) -#define MCF_SEC_AESISR (*(vuint32_t*)(&__MBAR[0x032030])) -#define MCF_SEC_AESIMR (*(vuint32_t*)(&__MBAR[0x032038])) - -/* Bit definitions and macros for MCF_SEC_EUACRH */ -#define MCF_SEC_EUACRH_AFEU(x) (((x)&0x0000000F)<<0) -#define MCF_SEC_EUACRH_MDEU(x) (((x)&0x0000000F)<<8) -#define MCF_SEC_EUACRH_RNG(x) (((x)&0x0000000F)<<24) -#define MCF_SEC_EUACRH_RNG_NOASSIGN (0x00000000) -#define MCF_SEC_EUACRH_RNG_CHA0 (0x01000000) -#define MCF_SEC_EUACRH_RNG_CHA1 (0x02000000) -#define MCF_SEC_EUACRH_MDEU_NOASSIGN (0x00000000) -#define MCF_SEC_EUACRH_MDEU_CHA0 (0x00000100) -#define MCF_SEC_EUACRH_MDEU_CHA1 (0x00000200) -#define MCF_SEC_EUACRH_AFEU_NOASSIGN (0x00000000) -#define MCF_SEC_EUACRH_AFEU_CHA0 (0x00000001) -#define MCF_SEC_EUACRH_AFEU_CHA1 (0x00000002) - -/* Bit definitions and macros for MCF_SEC_EUACRL */ -#define MCF_SEC_EUACRL_AESU(x) (((x)&0x0000000F)<<16) -#define MCF_SEC_EUACRL_DEU(x) (((x)&0x0000000F)<<24) -#define MCF_SEC_EUACRL_DEU_NOASSIGN (0x00000000) -#define MCF_SEC_EUACRL_DEU_CHA0 (0x01000000) -#define MCF_SEC_EUACRL_DEU_CHA1 (0x02000000) -#define MCF_SEC_EUACRL_AESU_NOASSIGN (0x00000000) -#define MCF_SEC_EUACRL_AESU_CHA0 (0x00010000) -#define MCF_SEC_EUACRL_AESU_CHA1 (0x00020000) - -/* Bit definitions and macros for MCF_SEC_EUASRH */ -#define MCF_SEC_EUASRH_AFEU(x) (((x)&0x0000000F)<<0) -#define MCF_SEC_EUASRH_MDEU(x) (((x)&0x0000000F)<<8) -#define MCF_SEC_EUASRH_RNG(x) (((x)&0x0000000F)<<24) - -/* Bit definitions and macros for MCF_SEC_EUASRL */ -#define MCF_SEC_EUASRL_AESU(x) (((x)&0x0000000F)<<16) -#define MCF_SEC_EUASRL_DEU(x) (((x)&0x0000000F)<<24) - -/* Bit definitions and macros for MCF_SEC_SIMRH */ -#define MCF_SEC_SIMRH_AERR (0x08000000) -#define MCF_SEC_SIMRH_CHA0DN (0x10000000) -#define MCF_SEC_SIMRH_CHA0ERR (0x20000000) -#define MCF_SEC_SIMRH_CHA1DN (0x40000000) -#define MCF_SEC_SIMRH_CHA1ERR (0x80000000) - -/* Bit definitions and macros for MCF_SEC_SIMRL */ -#define MCF_SEC_SIMRL_TEA (0x00000040) -#define MCF_SEC_SIMRL_DEUDN (0x00000100) -#define MCF_SEC_SIMRL_DEUERR (0x00000200) -#define MCF_SEC_SIMRL_AESUDN (0x00001000) -#define MCF_SEC_SIMRL_AESUERR (0x00002000) -#define MCF_SEC_SIMRL_MDEUDN (0x00010000) -#define MCF_SEC_SIMRL_MDEUERR (0x00020000) -#define MCF_SEC_SIMRL_AFEUDN (0x00100000) -#define MCF_SEC_SIMRL_AFEUERR (0x00200000) -#define MCF_SEC_SIMRL_RNGDN (0x01000000) -#define MCF_SEC_SIMRL_RNGERR (0x02000000) - -/* Bit definitions and macros for MCF_SEC_SISRH */ -#define MCF_SEC_SISRH_AERR (0x08000000) -#define MCF_SEC_SISRH_CHA0DN (0x10000000) -#define MCF_SEC_SISRH_CHA0ERR (0x20000000) -#define MCF_SEC_SISRH_CHA1DN (0x40000000) -#define MCF_SEC_SISRH_CHA1ERR (0x80000000) - -/* Bit definitions and macros for MCF_SEC_SISRL */ -#define MCF_SEC_SISRL_TEA (0x00000040) -#define MCF_SEC_SISRL_DEUDN (0x00000100) -#define MCF_SEC_SISRL_DEUERR (0x00000200) -#define MCF_SEC_SISRL_AESUDN (0x00001000) -#define MCF_SEC_SISRL_AESUERR (0x00002000) -#define MCF_SEC_SISRL_MDEUDN (0x00010000) -#define MCF_SEC_SISRL_MDEUERR (0x00020000) -#define MCF_SEC_SISRL_AFEUDN (0x00100000) -#define MCF_SEC_SISRL_AFEUERR (0x00200000) -#define MCF_SEC_SISRL_RNGDN (0x01000000) -#define MCF_SEC_SISRL_RNGERR (0x02000000) - -/* Bit definitions and macros for MCF_SEC_SICRH */ -#define MCF_SEC_SICRH_AERR (0x08000000) -#define MCF_SEC_SICRH_CHA0DN (0x10000000) -#define MCF_SEC_SICRH_CHA0ERR (0x20000000) -#define MCF_SEC_SICRH_CHA1DN (0x40000000) -#define MCF_SEC_SICRH_CHA1ERR (0x80000000) - -/* Bit definitions and macros for MCF_SEC_SICRL */ -#define MCF_SEC_SICRL_TEA (0x00000040) -#define MCF_SEC_SICRL_DEUDN (0x00000100) -#define MCF_SEC_SICRL_DEUERR (0x00000200) -#define MCF_SEC_SICRL_AESUDN (0x00001000) -#define MCF_SEC_SICRL_AESUERR (0x00002000) -#define MCF_SEC_SICRL_MDEUDN (0x00010000) -#define MCF_SEC_SICRL_MDEUERR (0x00020000) -#define MCF_SEC_SICRL_AFEUDN (0x00100000) -#define MCF_SEC_SICRL_AFEUERR (0x00200000) -#define MCF_SEC_SICRL_RNGDN (0x01000000) -#define MCF_SEC_SICRL_RNGERR (0x02000000) - -/* Bit definitions and macros for MCF_SEC_SMCR */ -#define MCF_SEC_SMCR_CURR_CHAN(x) (((x)&0x0000000F)<<4) -#define MCF_SEC_SMCR_SWR (0x01000000) -#define MCF_SEC_SMCR_CURR_CHAN_1 (0x00000010) -#define MCF_SEC_SMCR_CURR_CHAN_2 (0x00000020) - -/* Bit definitions and macros for MCF_SEC_CCCRn */ -#define MCF_SEC_CCCRn_RST (0x00000001) -#define MCF_SEC_CCCRn_CDIE (0x00000002) -#define MCF_SEC_CCCRn_NT (0x00000004) -#define MCF_SEC_CCCRn_NE (0x00000008) -#define MCF_SEC_CCCRn_WE (0x00000010) -#define MCF_SEC_CCCRn_BURST_SIZE(x) (((x)&0x00000007)<<8) -#define MCF_SEC_CCCRn_BURST_SIZE_2 (0x00000000) -#define MCF_SEC_CCCRn_BURST_SIZE_8 (0x00000100) -#define MCF_SEC_CCCRn_BURST_SIZE_16 (0x00000200) -#define MCF_SEC_CCCRn_BURST_SIZE_24 (0x00000300) -#define MCF_SEC_CCCRn_BURST_SIZE_32 (0x00000400) -#define MCF_SEC_CCCRn_BURST_SIZE_40 (0x00000500) -#define MCF_SEC_CCCRn_BURST_SIZE_48 (0x00000600) -#define MCF_SEC_CCCRn_BURST_SIZE_56 (0x00000700) - -/* Bit definitions and macros for MCF_SEC_CCPSRHn */ -#define MCF_SEC_CCPSRHn_STATE(x) (((x)&0x000000FF)<<0) - -/* Bit definitions and macros for MCF_SEC_CCPSRLn */ -#define MCF_SEC_CCPSRLn_PAIR_PTR(x) (((x)&0x000000FF)<<0) -#define MCF_SEC_CCPSRLn_EUERR (0x00000100) -#define MCF_SEC_CCPSRLn_SERR (0x00000200) -#define MCF_SEC_CCPSRLn_DERR (0x00000400) -#define MCF_SEC_CCPSRLn_PERR (0x00001000) -#define MCF_SEC_CCPSRLn_TEA (0x00002000) -#define MCF_SEC_CCPSRLn_SD (0x00010000) -#define MCF_SEC_CCPSRLn_PD (0x00020000) -#define MCF_SEC_CCPSRLn_SRD (0x00040000) -#define MCF_SEC_CCPSRLn_PRD (0x00080000) -#define MCF_SEC_CCPSRLn_SG (0x00100000) -#define MCF_SEC_CCPSRLn_PG (0x00200000) -#define MCF_SEC_CCPSRLn_SR (0x00400000) -#define MCF_SEC_CCPSRLn_PR (0x00800000) -#define MCF_SEC_CCPSRLn_MO (0x01000000) -#define MCF_SEC_CCPSRLn_MI (0x02000000) -#define MCF_SEC_CCPSRLn_STAT (0x04000000) - -/* Bit definitions and macros for MCF_SEC_AFRCR */ -#define MCF_SEC_AFRCR_SR (0x01000000) -#define MCF_SEC_AFRCR_MI (0x02000000) -#define MCF_SEC_AFRCR_RI (0x04000000) - -/* Bit definitions and macros for MCF_SEC_AFSR */ -#define MCF_SEC_AFSR_RD (0x01000000) -#define MCF_SEC_AFSR_ID (0x02000000) -#define MCF_SEC_AFSR_IE (0x04000000) -#define MCF_SEC_AFSR_OFE (0x08000000) -#define MCF_SEC_AFSR_IFW (0x10000000) -#define MCF_SEC_AFSR_HALT (0x20000000) - -/* Bit definitions and macros for MCF_SEC_AFISR */ -#define MCF_SEC_AFISR_DSE (0x00010000) -#define MCF_SEC_AFISR_KSE (0x00020000) -#define MCF_SEC_AFISR_CE (0x00040000) -#define MCF_SEC_AFISR_ERE (0x00080000) -#define MCF_SEC_AFISR_IE (0x00100000) -#define MCF_SEC_AFISR_OFU (0x02000000) -#define MCF_SEC_AFISR_IFO (0x04000000) -#define MCF_SEC_AFISR_IFE (0x10000000) -#define MCF_SEC_AFISR_OFE (0x20000000) -#define MCF_SEC_AFISR_AE (0x40000000) -#define MCF_SEC_AFISR_ME (0x80000000) - -/* Bit definitions and macros for MCF_SEC_AFIMR */ -#define MCF_SEC_AFIMR_DSE (0x00010000) -#define MCF_SEC_AFIMR_KSE (0x00020000) -#define MCF_SEC_AFIMR_CE (0x00040000) -#define MCF_SEC_AFIMR_ERE (0x00080000) -#define MCF_SEC_AFIMR_IE (0x00100000) -#define MCF_SEC_AFIMR_OFU (0x02000000) -#define MCF_SEC_AFIMR_IFO (0x04000000) -#define MCF_SEC_AFIMR_IFE (0x10000000) -#define MCF_SEC_AFIMR_OFE (0x20000000) -#define MCF_SEC_AFIMR_AE (0x40000000) -#define MCF_SEC_AFIMR_ME (0x80000000) - -/* Bit definitions and macros for MCF_SEC_DRCR */ -#define MCF_SEC_DRCR_SR (0x01000000) -#define MCF_SEC_DRCR_MI (0x02000000) -#define MCF_SEC_DRCR_RI (0x04000000) - -/* Bit definitions and macros for MCF_SEC_DSR */ -#define MCF_SEC_DSR_RD (0x01000000) -#define MCF_SEC_DSR_ID (0x02000000) -#define MCF_SEC_DSR_IE (0x04000000) -#define MCF_SEC_DSR_OFR (0x08000000) -#define MCF_SEC_DSR_IFW (0x10000000) -#define MCF_SEC_DSR_HALT (0x20000000) - -/* Bit definitions and macros for MCF_SEC_DISR */ -#define MCF_SEC_DISR_DSE (0x00010000) -#define MCF_SEC_DISR_KSE (0x00020000) -#define MCF_SEC_DISR_CE (0x00040000) -#define MCF_SEC_DISR_ERE (0x00080000) -#define MCF_SEC_DISR_IE (0x00100000) -#define MCF_SEC_DISR_KPE (0x00200000) -#define MCF_SEC_DISR_OFU (0x02000000) -#define MCF_SEC_DISR_IFO (0x04000000) -#define MCF_SEC_DISR_IFE (0x10000000) -#define MCF_SEC_DISR_OFE (0x20000000) -#define MCF_SEC_DISR_AE (0x40000000) -#define MCF_SEC_DISR_ME (0x80000000) - -/* Bit definitions and macros for MCF_SEC_DIMR */ -#define MCF_SEC_DIMR_DSE (0x00010000) -#define MCF_SEC_DIMR_KSE (0x00020000) -#define MCF_SEC_DIMR_CE (0x00040000) -#define MCF_SEC_DIMR_ERE (0x00080000) -#define MCF_SEC_DIMR_IE (0x00100000) -#define MCF_SEC_DIMR_KPE (0x00200000) -#define MCF_SEC_DIMR_OFU (0x02000000) -#define MCF_SEC_DIMR_IFO (0x04000000) -#define MCF_SEC_DIMR_IFE (0x10000000) -#define MCF_SEC_DIMR_OFE (0x20000000) -#define MCF_SEC_DIMR_AE (0x40000000) -#define MCF_SEC_DIMR_ME (0x80000000) - -/* Bit definitions and macros for MCF_SEC_MDRCR */ -#define MCF_SEC_MDRCR_SR (0x01000000) -#define MCF_SEC_MDRCR_MI (0x02000000) -#define MCF_SEC_MDRCR_RI (0x04000000) - -/* Bit definitions and macros for MCF_SEC_MDSR */ -#define MCF_SEC_MDSR_RD (0x01000000) -#define MCF_SEC_MDSR_ID (0x02000000) -#define MCF_SEC_MDSR_IE (0x04000000) -#define MCF_SEC_MDSR_IFW (0x10000000) -#define MCF_SEC_MDSR_HALT (0x20000000) - -/* Bit definitions and macros for MCF_SEC_MDISR */ -#define MCF_SEC_MDISR_DSE (0x00010000) -#define MCF_SEC_MDISR_KSE (0x00020000) -#define MCF_SEC_MDISR_CE (0x00040000) -#define MCF_SEC_MDISR_ERE (0x00080000) -#define MCF_SEC_MDISR_IE (0x00100000) -#define MCF_SEC_MDISR_IFO (0x04000000) -#define MCF_SEC_MDISR_AE (0x40000000) -#define MCF_SEC_MDISR_ME (0x80000000) - -/* Bit definitions and macros for MCF_SEC_MDIMR */ -#define MCF_SEC_MDIMR_DSE (0x00010000) -#define MCF_SEC_MDIMR_KSE (0x00020000) -#define MCF_SEC_MDIMR_CE (0x00040000) -#define MCF_SEC_MDIMR_ERE (0x00080000) -#define MCF_SEC_MDIMR_IE (0x00100000) -#define MCF_SEC_MDIMR_IFO (0x04000000) -#define MCF_SEC_MDIMR_AE (0x40000000) -#define MCF_SEC_MDIMR_ME (0x80000000) - -/* Bit definitions and macros for MCF_SEC_RNGRCR */ -#define MCF_SEC_RNGRCR_SR (0x01000000) -#define MCF_SEC_RNGRCR_MI (0x02000000) -#define MCF_SEC_RNGRCR_RI (0x04000000) - -/* Bit definitions and macros for MCF_SEC_RNGSR */ -#define MCF_SEC_RNGSR_RD (0x01000000) -#define MCF_SEC_RNGSR_O (0x02000000) -#define MCF_SEC_RNGSR_IE (0x04000000) -#define MCF_SEC_RNGSR_OFR (0x08000000) -#define MCF_SEC_RNGSR_HALT (0x20000000) - -/* Bit definitions and macros for MCF_SEC_RNGISR */ -#define MCF_SEC_RNGISR_IE (0x00100000) -#define MCF_SEC_RNGISR_OFU (0x02000000) -#define MCF_SEC_RNGISR_AE (0x40000000) -#define MCF_SEC_RNGISR_ME (0x80000000) - -/* Bit definitions and macros for MCF_SEC_RNGIMR */ -#define MCF_SEC_RNGIMR_IE (0x00100000) -#define MCF_SEC_RNGIMR_OFU (0x02000000) -#define MCF_SEC_RNGIMR_AE (0x40000000) -#define MCF_SEC_RNGIMR_ME (0x80000000) - -/* Bit definitions and macros for MCF_SEC_AESRCR */ -#define MCF_SEC_AESRCR_SR (0x01000000) -#define MCF_SEC_AESRCR_MI (0x02000000) -#define MCF_SEC_AESRCR_RI (0x04000000) - -/* Bit definitions and macros for MCF_SEC_AESSR */ -#define MCF_SEC_AESSR_RD (0x01000000) -#define MCF_SEC_AESSR_ID (0x02000000) -#define MCF_SEC_AESSR_IE (0x04000000) -#define MCF_SEC_AESSR_OFR (0x08000000) -#define MCF_SEC_AESSR_IFW (0x10000000) -#define MCF_SEC_AESSR_HALT (0x20000000) - -/* Bit definitions and macros for MCF_SEC_AESISR */ -#define MCF_SEC_AESISR_DSE (0x00010000) -#define MCF_SEC_AESISR_KSE (0x00020000) -#define MCF_SEC_AESISR_CE (0x00040000) -#define MCF_SEC_AESISR_ERE (0x00080000) -#define MCF_SEC_AESISR_IE (0x00100000) -#define MCF_SEC_AESISR_OFU (0x02000000) -#define MCF_SEC_AESISR_IFO (0x04000000) -#define MCF_SEC_AESISR_IFE (0x10000000) -#define MCF_SEC_AESISR_OFE (0x20000000) -#define MCF_SEC_AESISR_AE (0x40000000) -#define MCF_SEC_AESISR_ME (0x80000000) - -/* Bit definitions and macros for MCF_SEC_AESIMR */ -#define MCF_SEC_AESIMR_DSE (0x00010000) -#define MCF_SEC_AESIMR_KSE (0x00020000) -#define MCF_SEC_AESIMR_CE (0x00040000) -#define MCF_SEC_AESIMR_ERE (0x00080000) -#define MCF_SEC_AESIMR_IE (0x00100000) -#define MCF_SEC_AESIMR_OFU (0x02000000) -#define MCF_SEC_AESIMR_IFO (0x04000000) -#define MCF_SEC_AESIMR_IFE (0x10000000) -#define MCF_SEC_AESIMR_OFE (0x20000000) -#define MCF_SEC_AESIMR_AE (0x40000000) -#define MCF_SEC_AESIMR_ME (0x80000000) - -#endif /* __MCF548X_SEC_H__ */ diff --git a/arch/m68k/include/asm/coldfire/mcf548x/mcf548x_siu.h b/arch/m68k/include/asm/coldfire/mcf548x/mcf548x_siu.h deleted file mode 100644 index 558530d34..000000000 --- a/arch/m68k/include/asm/coldfire/mcf548x/mcf548x_siu.h +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Copyright (c) 2008 Carsten Schlote - * See file CREDITS for list of people who contributed to this project. - * - * This file is part of barebox. - * - * barebox is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * barebox is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with barebox. If not, see . - */ - -/** @file - * Register and bit definitions for the MCF548X and MCF547x - * DMA Serial Peripheral Interface (DSPI) - */ -#ifndef __MCF548X_SIU_H__ -#define __MCF548X_SIU_H__ - -/* - * System Integration Unit (SIU) - */ - -/* Register read/write macros */ -#define MCF_SIU_SBCR (*(vuint32_t*)(&__MBAR[0x000010])) -#define MCF_SIU_SECSACR (*(vuint32_t*)(&__MBAR[0x000038])) -#define MCF_SIU_RSR (*(vuint32_t*)(&__MBAR[0x000044])) -#define MCF_SIU_JTAGID (*(vuint32_t*)(&__MBAR[0x000050])) - -/* Bit definitions and macros for MCF_SIU_SBCR */ -#define MCF_SIU_SBCR_PIN2DSPI (0x08000000) -#define MCF_SIU_SBCR_DMA2CPU (0x10000000) -#define MCF_SIU_SBCR_CPU2DMA (0x20000000) -#define MCF_SIU_SBCR_PIN2DMA (0x40000000) -#define MCF_SIU_SBCR_PIN2CPU (0x80000000) - -/* Bit definitions and macros for MCF_SIU_SECSACR */ -#define MCF_SIU_SECSACR_SEQEN (0x00000001) - -/* Bit definitions and macros for MCF_SIU_RSR */ -#define MCF_SIU_RSR_RST (0x00000001) -#define MCF_SIU_RSR_RSTWD (0x00000002) -#define MCF_SIU_RSR_RSTJTG (0x00000008) - -/* Bit definitions and macros for MCF_SIU_JTAGID */ -#define MCF_SIU_JTAGID_REV (0xF0000000) -#define MCF_SIU_JTAGID_PROCESSOR (0x0FFFFFFF) -#define MCF_SIU_JTAGID_MCF5485 (0x0800C01D) -#define MCF_SIU_JTAGID_MCF5484 (0x0800D01D) -#define MCF_SIU_JTAGID_MCF5483 (0x0800E01D) -#define MCF_SIU_JTAGID_MCF5482 (0x0800F01D) -#define MCF_SIU_JTAGID_MCF5481 (0x0801001D) -#define MCF_SIU_JTAGID_MCF5480 (0x0801101D) -#define MCF_SIU_JTAGID_MCF5475 (0x0801201D) -#define MCF_SIU_JTAGID_MCF5474 (0x0801301D) -#define MCF_SIU_JTAGID_MCF5473 (0x0801401D) -#define MCF_SIU_JTAGID_MCF5472 (0x0801501D) -#define MCF_SIU_JTAGID_MCF5471 (0x0801601D) -#define MCF_SIU_JTAGID_MCF5470 (0x0801701D) - -#endif /* __MCF548X_SIU_H__ */ diff --git a/arch/m68k/include/asm/coldfire/mcf548x/mcf548x_slt.h b/arch/m68k/include/asm/coldfire/mcf548x/mcf548x_slt.h deleted file mode 100644 index 10d94a411..000000000 --- a/arch/m68k/include/asm/coldfire/mcf548x/mcf548x_slt.h +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Copyright (c) 2008 Carsten Schlote - * See file CREDITS for list of people who contributed to this project. - * - * This file is part of barebox. - * - * barebox is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * barebox is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with barebox. If not, see . - */ - -/** @file - * Register and bit definitions for the MCF548X and MCF547x - * Slice Timers (SLT) - */ -#ifndef __MCF548X_SLT_H__ -#define __MCF548X_SLT_H__ - -/* - * Slice Timers (SLT) - */ - -/* Register read/write macros */ -#define MCF_SLT_SLTCNT0 (*(vuint32_t*)(&__MBAR[0x000900])) -#define MCF_SLT_SCR0 (*(vuint32_t*)(&__MBAR[0x000904])) -#define MCF_SLT_SCNT0 (*(vuint32_t*)(&__MBAR[0x000908])) -#define MCF_SLT_SSR0 (*(vuint32_t*)(&__MBAR[0x00090C])) - -#define MCF_SLT_SLTCNT1 (*(vuint32_t*)(&__MBAR[0x000910])) -#define MCF_SLT_SCR1 (*(vuint32_t*)(&__MBAR[0x000914])) -#define MCF_SLT_SCNT1 (*(vuint32_t*)(&__MBAR[0x000918])) -#define MCF_SLT_SSR1 (*(vuint32_t*)(&__MBAR[0x00091C])) - -#define MCF_SLT_SLTCNT(x) (*(vuint32_t*)(&__MBAR[0x000900+((x)*0x010)])) -#define MCF_SLT_SCR(x) (*(vuint32_t*)(&__MBAR[0x000904+((x)*0x010)])) -#define MCF_SLT_SCNT(x) (*(vuint32_t*)(&__MBAR[0x000908+((x)*0x010)])) -#define MCF_SLT_SSR(x) (*(vuint32_t*)(&__MBAR[0x00090C+((x)*0x010)])) - -/* Bit definitions and macros for MCF_SLT_SCR */ -#define MCF_SLT_SCR_TEN (0x01000000) -#define MCF_SLT_SCR_IEN (0x02000000) -#define MCF_SLT_SCR_RUN (0x04000000) - -/* Bit definitions and macros for MCF_SLT_SSR */ -#define MCF_SLT_SSR_ST (0x01000000) -#define MCF_SLT_SSR_BE (0x02000000) - - -#ifndef __ASSEMBLY__ - -#define MCF_SLT_Address(x) ((struct mcf5xxx_slt*)(void*)(&__MBAR[0x000900+((x)*0x010)])) - -struct mcf5xxx_slt { - vuint32_t STCNT; /* Slice Terminal Count */ - vuint32_t SCR; /* Slice Timer Control Register */ - vuint32_t SCNT; /* Slice Count Value */ - vuint32_t SSR; /* Slice Timer Status Register */ -}; - -#endif - -#endif /* __MCF548X_SLT_H__ */ diff --git a/arch/m68k/include/asm/coldfire/mcf548x/mcf548x_sram.h b/arch/m68k/include/asm/coldfire/mcf548x/mcf548x_sram.h deleted file mode 100644 index a706306f2..000000000 --- a/arch/m68k/include/asm/coldfire/mcf548x/mcf548x_sram.h +++ /dev/null @@ -1,66 +0,0 @@ -/* - * Copyright (c) 2008 Carsten Schlote - * See file CREDITS for list of people who contributed to this project. - * - * This file is part of barebox. - * - * barebox is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * barebox is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with barebox. If not, see . - */ - -/** @file - * Register and bit definitions for the MCF548X and MCF547x - * 32KByte System SRAM (SRAM) - */ -#ifndef __MCF548X_SRAM_H__ -#define __MCF548X_SRAM_H__ - -/* - * 32KByte System SRAM (SRAM) - */ - -/* Register read/write macros */ -#define MCF_SRAM_SSCR (*(vuint32_t*)(&__MBAR[0x01FFC0])) -#define MCF_SRAM_TCCR (*(vuint32_t*)(&__MBAR[0x01FFC4])) -#define MCF_SRAM_TCCRDR (*(vuint32_t*)(&__MBAR[0x01FFC8])) -#define MCF_SRAM_TCCRDW (*(vuint32_t*)(&__MBAR[0x01FFCC])) -#define MCF_SRAM_TCCRSEC (*(vuint32_t*)(&__MBAR[0x01FFD0])) - -/* Bit definitions and macros for MCF_SRAM_SSCR */ -#define MCF_SRAM_SSCR_INLV (0x00010000) - -/* Bit definitions and macros for MCF_SRAM_TCCR */ -#define MCF_SRAM_TCCR_BANK0_TC(x) (((x)&0x0000000F)<<0) -#define MCF_SRAM_TCCR_BANK1_TC(x) (((x)&0x0000000F)<<8) -#define MCF_SRAM_TCCR_BANK2_TC(x) (((x)&0x0000000F)<<16) -#define MCF_SRAM_TCCR_BANK3_TC(x) (((x)&0x0000000F)<<24) - -/* Bit definitions and macros for MCF_SRAM_TCCRDR */ -#define MCF_SRAM_TCCRDR_BANK0_TC(x) (((x)&0x0000000F)<<0) -#define MCF_SRAM_TCCRDR_BANK1_TC(x) (((x)&0x0000000F)<<8) -#define MCF_SRAM_TCCRDR_BANK2_TC(x) (((x)&0x0000000F)<<16) -#define MCF_SRAM_TCCRDR_BANK3_TC(x) (((x)&0x0000000F)<<24) - -/* Bit definitions and macros for MCF_SRAM_TCCRDW */ -#define MCF_SRAM_TCCRDW_BANK0_TC(x) (((x)&0x0000000F)<<0) -#define MCF_SRAM_TCCRDW_BANK1_TC(x) (((x)&0x0000000F)<<8) -#define MCF_SRAM_TCCRDW_BANK2_TC(x) (((x)&0x0000000F)<<16) -#define MCF_SRAM_TCCRDW_BANK3_TC(x) (((x)&0x0000000F)<<24) - -/* Bit definitions and macros for MCF_SRAM_TCCRSEC */ -#define MCF_SRAM_TCCRSEC_BANK0_TC(x) (((x)&0x0000000F)<<0) -#define MCF_SRAM_TCCRSEC_BANK1_TC(x) (((x)&0x0000000F)<<8) -#define MCF_SRAM_TCCRSEC_BANK2_TC(x) (((x)&0x0000000F)<<16) -#define MCF_SRAM_TCCRSEC_BANK3_TC(x) (((x)&0x0000000F)<<24) - -#endif /* __MCF548X_SRAM_H__ */ diff --git a/arch/m68k/include/asm/coldfire/mcf548x/mcf548x_uart.h b/arch/m68k/include/asm/coldfire/mcf548x/mcf548x_uart.h deleted file mode 100644 index 2fa25ce3b..000000000 --- a/arch/m68k/include/asm/coldfire/mcf548x/mcf548x_uart.h +++ /dev/null @@ -1,233 +0,0 @@ -/* - * Copyright (c) 2008 Carsten Schlote - * See file CREDITS for list of people who contributed to this project. - * - * This file is part of barebox. - * - * barebox is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * barebox is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with barebox. If not, see . - */ - -/** @file - * Register and bit definitions for the MCF548X and MCF547x - * Programmable Serial Controller (UART Compatible Definitions) (UART) - */ -#ifndef __MCF548X_UART_H__ -#define __MCF548X_UART_H__ - -/* - * Programmable Serial Controller (UART Compatible Definitions) (UART) - */ - -/* Register read/write macros */ -#define MCF_UART_UMR0 (*(vuint8_t *)(&__MBAR[0x008600])) -#define MCF_UART_USR0 (*(vuint8_t *)(&__MBAR[0x008604])) -#define MCF_UART_UCSR0 (*(vuint8_t *)(&__MBAR[0x008604])) -#define MCF_UART_UCR0 (*(vuint8_t *)(&__MBAR[0x008608])) -#define MCF_UART_URB0 (*(vuint8_t *)(&__MBAR[0x00860C])) -#define MCF_UART_UTB0 (*(vuint8_t *)(&__MBAR[0x00860C])) -#define MCF_UART_UIPCR0 (*(vuint8_t *)(&__MBAR[0x008610])) -#define MCF_UART_UACR0 (*(vuint8_t *)(&__MBAR[0x008610])) -#define MCF_UART_UISR0 (*(vuint8_t *)(&__MBAR[0x008614])) -#define MCF_UART_UIMR0 (*(vuint8_t *)(&__MBAR[0x008614])) -#define MCF_UART_UBG10 (*(vuint8_t *)(&__MBAR[0x008618])) -#define MCF_UART_UBG20 (*(vuint8_t *)(&__MBAR[0x00861C])) -#define MCF_UART_UIP0 (*(vuint8_t *)(&__MBAR[0x008634])) -#define MCF_UART_UOP10 (*(vuint8_t *)(&__MBAR[0x008638])) -#define MCF_UART_UOP00 (*(vuint8_t *)(&__MBAR[0x00863C])) - -#define MCF_UART_UMR1 (*(vuint8_t *)(&__MBAR[0x008700])) -#define MCF_UART_USR1 (*(vuint8_t *)(&__MBAR[0x008704])) -#define MCF_UART_UCSR1 (*(vuint8_t *)(&__MBAR[0x008704])) -#define MCF_UART_UCR1 (*(vuint8_t *)(&__MBAR[0x008708])) -#define MCF_UART_URB1 (*(vuint8_t *)(&__MBAR[0x00870C])) -#define MCF_UART_UTB1 (*(vuint8_t *)(&__MBAR[0x00870C])) -#define MCF_UART_UIPCR1 (*(vuint8_t *)(&__MBAR[0x008710])) -#define MCF_UART_UACR1 (*(vuint8_t *)(&__MBAR[0x008710])) -#define MCF_UART_UISR1 (*(vuint8_t *)(&__MBAR[0x008714])) -#define MCF_UART_UIMR1 (*(vuint8_t *)(&__MBAR[0x008714])) -#define MCF_UART_UBG11 (*(vuint8_t *)(&__MBAR[0x008718])) -#define MCF_UART_UBG21 (*(vuint8_t *)(&__MBAR[0x00871C])) -#define MCF_UART_UIP1 (*(vuint8_t *)(&__MBAR[0x008734])) -#define MCF_UART_UOP11 (*(vuint8_t *)(&__MBAR[0x008738])) -#define MCF_UART_UOP01 (*(vuint8_t *)(&__MBAR[0x00873C])) - -#define MCF_UART_UMR2 (*(vuint8_t *)(&__MBAR[0x008800])) -#define MCF_UART_USR2 (*(vuint8_t *)(&__MBAR[0x008804])) -#define MCF_UART_UCSR2 (*(vuint8_t *)(&__MBAR[0x008804])) -#define MCF_UART_UCR2 (*(vuint8_t *)(&__MBAR[0x008808])) -#define MCF_UART_URB2 (*(vuint8_t *)(&__MBAR[0x00880C])) -#define MCF_UART_UTB2 (*(vuint8_t *)(&__MBAR[0x00880C])) -#define MCF_UART_UIPCR2 (*(vuint8_t *)(&__MBAR[0x008810])) -#define MCF_UART_UACR2 (*(vuint8_t *)(&__MBAR[0x008810])) -#define MCF_UART_UISR2 (*(vuint8_t *)(&__MBAR[0x008814])) -#define MCF_UART_UIMR2 (*(vuint8_t *)(&__MBAR[0x008814])) -#define MCF_UART_UBG12 (*(vuint8_t *)(&__MBAR[0x008818])) -#define MCF_UART_UBG22 (*(vuint8_t *)(&__MBAR[0x00881C])) -#define MCF_UART_UIP2 (*(vuint8_t *)(&__MBAR[0x008834])) -#define MCF_UART_UOP12 (*(vuint8_t *)(&__MBAR[0x008838])) -#define MCF_UART_UOP02 (*(vuint8_t *)(&__MBAR[0x00883C])) - -#define MCF_UART_UMR3 (*(vuint8_t *)(&__MBAR[0x008900])) -#define MCF_UART_USR3 (*(vuint8_t *)(&__MBAR[0x008904])) -#define MCF_UART_UCSR3 (*(vuint8_t *)(&__MBAR[0x008904])) -#define MCF_UART_UCR3 (*(vuint8_t *)(&__MBAR[0x008908])) -#define MCF_UART_URB3 (*(vuint8_t *)(&__MBAR[0x00890C])) -#define MCF_UART_UTB3 (*(vuint8_t *)(&__MBAR[0x00890C])) -#define MCF_UART_UIPCR3 (*(vuint8_t *)(&__MBAR[0x008910])) -#define MCF_UART_UACR3 (*(vuint8_t *)(&__MBAR[0x008910])) -#define MCF_UART_UISR3 (*(vuint8_t *)(&__MBAR[0x008914])) -#define MCF_UART_UIMR3 (*(vuint8_t *)(&__MBAR[0x008914])) -#define MCF_UART_UBG13 (*(vuint8_t *)(&__MBAR[0x008918])) -#define MCF_UART_UBG23 (*(vuint8_t *)(&__MBAR[0x00891C])) -#define MCF_UART_UIP3 (*(vuint8_t *)(&__MBAR[0x008934])) -#define MCF_UART_UOP13 (*(vuint8_t *)(&__MBAR[0x008938])) -#define MCF_UART_UOP03 (*(vuint8_t *)(&__MBAR[0x00893C])) - - -#define MCF_UART_UMR(x) (*(vuint8_t *)(&__MBAR[0x008600+((x)*0x100)])) -#define MCF_UART_USR(x) (*(vuint8_t *)(&__MBAR[0x008604+((x)*0x100)])) -#define MCF_UART_UCSR(x) (*(vuint8_t *)(&__MBAR[0x008604+((x)*0x100)])) -#define MCF_UART_UCR(x) (*(vuint8_t *)(&__MBAR[0x008608+((x)*0x100)])) -#define MCF_UART_URB(x) (*(vuint8_t *)(&__MBAR[0x00860C+((x)*0x100)])) -#define MCF_UART_UTB(x) (*(vuint8_t *)(&__MBAR[0x00860C+((x)*0x100)])) -#define MCF_UART_UIPCR(x) (*(vuint8_t *)(&__MBAR[0x008610+((x)*0x100)])) -#define MCF_UART_UACR(x) (*(vuint8_t *)(&__MBAR[0x008610+((x)*0x100)])) -#define MCF_UART_UISR(x) (*(vuint8_t *)(&__MBAR[0x008614+((x)*0x100)])) -#define MCF_UART_UIMR(x) (*(vuint8_t *)(&__MBAR[0x008614+((x)*0x100)])) -#define MCF_UART_UBG1(x) (*(vuint8_t *)(&__MBAR[0x008618+((x)*0x100)])) -#define MCF_UART_UBG2(x) (*(vuint8_t *)(&__MBAR[0x00861C+((x)*0x100)])) -#define MCF_UART_UIP(x) (*(vuint8_t *)(&__MBAR[0x008634+((x)*0x100)])) -#define MCF_UART_UOP1(x) (*(vuint8_t *)(&__MBAR[0x008638+((x)*0x100)])) -#define MCF_UART_UOP0(x) (*(vuint8_t *)(&__MBAR[0x00863C+((x)*0x100)])) - -/* Bit definitions and macros for MCF_UART_UMR */ -#define MCF_UART_UMR_BC(x) (((x)&0x03)<<0) -#define MCF_UART_UMR_PT (0x04) -#define MCF_UART_UMR_PM(x) (((x)&0x03)<<3) -#define MCF_UART_UMR_ERR (0x20) -#define MCF_UART_UMR_RXIRQ (0x40) -#define MCF_UART_UMR_RXRTS (0x80) -#define MCF_UART_UMR_SB(x) (((x)&0x0F)<<0) -#define MCF_UART_UMR_TXCTS (0x10) -#define MCF_UART_UMR_TXRTS (0x20) -#define MCF_UART_UMR_CM(x) (((x)&0x03)<<6) -#define MCF_UART_UMR_PM_MULTI_ADDR (0x1C) -#define MCF_UART_UMR_PM_MULTI_DATA (0x18) -#define MCF_UART_UMR_PM_NONE (0x10) -#define MCF_UART_UMR_PM_FORCE_HI (0x0C) -#define MCF_UART_UMR_PM_FORCE_LO (0x08) -#define MCF_UART_UMR_PM_ODD (0x04) -#define MCF_UART_UMR_PM_EVEN (0x00) -#define MCF_UART_UMR_BC_5 (0x00) -#define MCF_UART_UMR_BC_6 (0x01) -#define MCF_UART_UMR_BC_7 (0x02) -#define MCF_UART_UMR_BC_8 (0x03) -#define MCF_UART_UMR_CM_NORMAL (0x00) -#define MCF_UART_UMR_CM_ECHO (0x40) -#define MCF_UART_UMR_CM_LOCAL_LOOP (0x80) -#define MCF_UART_UMR_CM_REMOTE_LOOP (0xC0) -#define MCF_UART_UMR_SB_STOP_BITS_1 (0x07) -#define MCF_UART_UMR_SB_STOP_BITS_15 (0x08) -#define MCF_UART_UMR_SB_STOP_BITS_2 (0x0F) - -/* Bit definitions and macros for MCF_UART_USR */ -#define MCF_UART_USR_RXRDY (0x01) -#define MCF_UART_USR_FFULL (0x02) -#define MCF_UART_USR_TXRDY (0x04) -#define MCF_UART_USR_TXEMP (0x08) -#define MCF_UART_USR_OE (0x10) -#define MCF_UART_USR_PE (0x20) -#define MCF_UART_USR_FE (0x40) -#define MCF_UART_USR_RB (0x80) - -/* Bit definitions and macros for MCF_UART_UCSR */ -#define MCF_UART_UCSR_TCS(x) (((x)&0x0F)<<0) -#define MCF_UART_UCSR_RCS(x) (((x)&0x0F)<<4) -#define MCF_UART_UCSR_RCS_SYS_CLK (0xD0) -#define MCF_UART_UCSR_RCS_CTM16 (0xE0) -#define MCF_UART_UCSR_RCS_CTM (0xF0) -#define MCF_UART_UCSR_TCS_SYS_CLK (0x0D) -#define MCF_UART_UCSR_TCS_CTM16 (0x0E) -#define MCF_UART_UCSR_TCS_CTM (0x0F) - -/* Bit definitions and macros for MCF_UART_UCR */ -#define MCF_UART_UCR_RXC(x) (((x)&0x03)<<0) -#define MCF_UART_UCR_TXC(x) (((x)&0x03)<<2) -#define MCF_UART_UCR_MISC(x) (((x)&0x07)<<4) -#define MCF_UART_UCR_NONE (0x00) -#define MCF_UART_UCR_STOP_BREAK (0x70) -#define MCF_UART_UCR_START_BREAK (0x60) -#define MCF_UART_UCR_BKCHGINT (0x50) -#define MCF_UART_UCR_RESET_ERROR (0x40) -#define MCF_UART_UCR_RESET_TX (0x30) -#define MCF_UART_UCR_RESET_RX (0x20) -#define MCF_UART_UCR_RESET_MR (0x10) -#define MCF_UART_UCR_TX_DISABLED (0x08) -#define MCF_UART_UCR_TX_ENABLED (0x04) -#define MCF_UART_UCR_RX_DISABLED (0x02) -#define MCF_UART_UCR_RX_ENABLED (0x01) - -/* Bit definitions and macros for MCF_UART_UIPCR */ -#define MCF_UART_UIPCR_CTS (0x01) -#define MCF_UART_UIPCR_COS (0x10) - -/* Bit definitions and macros for MCF_UART_UACR */ -#define MCF_UART_UACR_IEC (0x01) - -/* Bit definitions and macros for MCF_UART_UISR */ -#define MCF_UART_UISR_TXRDY (0x01) -#define MCF_UART_UISR_RXRDY_FU (0x02) -#define MCF_UART_UISR_DB (0x04) -#define MCF_UART_UISR_RXFTO (0x08) -#define MCF_UART_UISR_TXFIFO (0x10) -#define MCF_UART_UISR_RXFIFO (0x20) -#define MCF_UART_UISR_COS (0x80) - -/* Bit definitions and macros for MCF_UART_UIMR */ -#define MCF_UART_UIMR_TXRDY (0x01) -#define MCF_UART_UIMR_RXRDY_FU (0x02) -#define MCF_UART_UIMR_DB (0x04) -#define MCF_UART_UIMR_COS (0x80) - -/* Bit definitions and macros for MCF_UART_UIP */ -#define MCF_UART_UIP_CTS (0x01) - -/* Bit definitions and macros for MCF_UART_UOP1 */ -#define MCF_UART_UOP1_RTS (0x01) - -/* Bit definitions and macros for MCF_UART_UOP0 */ -#define MCF_UART_UOP0_RTS (0x01) - -/* The UART registers for mem mapped access */ -struct m5407uart -{ - vuint8_t umr; vuint24_t reserved0; - vuint8_t usr; vuint24_t reserved1; /* ucsr */ - vuint8_t ucr; vuint24_t reserved2; - vuint8_t urb; vuint24_t reserved3; /* utb */ - vuint8_t uipcr; vuint24_t reserved4; /* uacr */ - vuint8_t uisr; vuint24_t reserved5; /* uimr */ - vuint8_t udu; vuint24_t reserved6; - vuint8_t ubg1; vuint24_t reserved7; - vuint8_t ubg2; vuint24_t reserved8; - const uint8_t uip; vuint24_t reserved9; - vuint8_t uop1; vuint24_t reserved10; - vuint8_t uop0; vuint24_t reserved11; -} __attribute((packed)); - -#define MCF_UART(x) (*(struct m5407uart *)(&__MBAR[0x008600+((x)*0x100)])) - - -#endif /* __MCF548X_UART_H__ */ - diff --git a/arch/m68k/include/asm/coldfire/mcf548x/mcf548x_usb.h b/arch/m68k/include/asm/coldfire/mcf548x/mcf548x_usb.h deleted file mode 100644 index 0c256ef52..000000000 --- a/arch/m68k/include/asm/coldfire/mcf548x/mcf548x_usb.h +++ /dev/null @@ -1,509 +0,0 @@ -/* - * Copyright (c) 2008 Carsten Schlote - * See file CREDITS for list of people who contributed to this project. - * - * This file is part of barebox. - * - * barebox is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * barebox is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with barebox. If not, see . - */ - -/** @file - * Register and bit definitions for the MCF548X and MCF547x - * Universal Serial Bus (USB) - * - * @note According to FreeScale errata sheet, the USB controller - * isn't really usable on MCF54xx V4E CPUs. - * Check V4M cores or wait for errata fixed - * Last update: 25.02.2008 10:55:00 - */ -#ifndef __MCF548X_USB_H__ -#define __MCF548X_USB_H__ - -/* - * Universal Serial Bus (USB) - */ - -/* Register read/write macros */ -#define MCF_USB_USBAISR (*(vuint8_t *)(&__MBAR[0x00B000])) -#define MCF_USB_USBAIMR (*(vuint8_t *)(&__MBAR[0x00B001])) -#define MCF_USB_EPINFO (*(vuint8_t *)(&__MBAR[0x00B003])) -#define MCF_USB_CFGR (*(vuint8_t *)(&__MBAR[0x00B004])) -#define MCF_USB_CFGAR (*(vuint8_t *)(&__MBAR[0x00B005])) -#define MCF_USB_SPEEDR (*(vuint8_t *)(&__MBAR[0x00B006])) -#define MCF_USB_FRMNUMR (*(vuint16_t*)(&__MBAR[0x00B00E])) -#define MCF_USB_EPTNR (*(vuint16_t*)(&__MBAR[0x00B010])) -#define MCF_USB_IFUR (*(vuint16_t*)(&__MBAR[0x00B014])) -#define MCF_USB_IFR0 (*(vuint16_t*)(&__MBAR[0x00B040])) -#define MCF_USB_IFR1 (*(vuint16_t*)(&__MBAR[0x00B042])) -#define MCF_USB_IFR2 (*(vuint16_t*)(&__MBAR[0x00B044])) -#define MCF_USB_IFR3 (*(vuint16_t*)(&__MBAR[0x00B046])) -#define MCF_USB_IFR4 (*(vuint16_t*)(&__MBAR[0x00B048])) -#define MCF_USB_IFR5 (*(vuint16_t*)(&__MBAR[0x00B04A])) -#define MCF_USB_IFR6 (*(vuint16_t*)(&__MBAR[0x00B04C])) -#define MCF_USB_IFR7 (*(vuint16_t*)(&__MBAR[0x00B04E])) -#define MCF_USB_IFR8 (*(vuint16_t*)(&__MBAR[0x00B050])) -#define MCF_USB_IFR9 (*(vuint16_t*)(&__MBAR[0x00B052])) -#define MCF_USB_IFR10 (*(vuint16_t*)(&__MBAR[0x00B054])) -#define MCF_USB_IFR11 (*(vuint16_t*)(&__MBAR[0x00B056])) -#define MCF_USB_IFR12 (*(vuint16_t*)(&__MBAR[0x00B058])) -#define MCF_USB_IFR13 (*(vuint16_t*)(&__MBAR[0x00B05A])) -#define MCF_USB_IFR14 (*(vuint16_t*)(&__MBAR[0x00B05C])) -#define MCF_USB_IFR15 (*(vuint16_t*)(&__MBAR[0x00B05E])) -#define MCF_USB_IFR16 (*(vuint16_t*)(&__MBAR[0x00B060])) -#define MCF_USB_IFR17 (*(vuint16_t*)(&__MBAR[0x00B062])) -#define MCF_USB_IFR18 (*(vuint16_t*)(&__MBAR[0x00B064])) -#define MCF_USB_IFR19 (*(vuint16_t*)(&__MBAR[0x00B066])) -#define MCF_USB_IFR20 (*(vuint16_t*)(&__MBAR[0x00B068])) -#define MCF_USB_IFR21 (*(vuint16_t*)(&__MBAR[0x00B06A])) -#define MCF_USB_IFR22 (*(vuint16_t*)(&__MBAR[0x00B06C])) -#define MCF_USB_IFR23 (*(vuint16_t*)(&__MBAR[0x00B06E])) -#define MCF_USB_IFR24 (*(vuint16_t*)(&__MBAR[0x00B070])) -#define MCF_USB_IFR25 (*(vuint16_t*)(&__MBAR[0x00B072])) -#define MCF_USB_IFR26 (*(vuint16_t*)(&__MBAR[0x00B074])) -#define MCF_USB_IFR27 (*(vuint16_t*)(&__MBAR[0x00B076])) -#define MCF_USB_IFR28 (*(vuint16_t*)(&__MBAR[0x00B078])) -#define MCF_USB_IFR29 (*(vuint16_t*)(&__MBAR[0x00B07A])) -#define MCF_USB_IFR30 (*(vuint16_t*)(&__MBAR[0x00B07C])) -#define MCF_USB_IFR31 (*(vuint16_t*)(&__MBAR[0x00B07E])) -#define MCF_USB_IFRn(x) (*(vuint16_t*)(&__MBAR[0x00B040+((x)*0x002)])) -#define MCF_USB_PPCNT (*(vuint16_t*)(&__MBAR[0x00B080])) -#define MCF_USB_DPCNT (*(vuint16_t*)(&__MBAR[0x00B082])) -#define MCF_USB_CRCECNT (*(vuint16_t*)(&__MBAR[0x00B084])) -#define MCF_USB_BSECNT (*(vuint16_t*)(&__MBAR[0x00B086])) -#define MCF_USB_PIDECNT (*(vuint16_t*)(&__MBAR[0x00B088])) -#define MCF_USB_FRMECNT (*(vuint16_t*)(&__MBAR[0x00B08A])) -#define MCF_USB_TXPCNT (*(vuint16_t*)(&__MBAR[0x00B08C])) -#define MCF_USB_CNTOVR (*(vuint8_t *)(&__MBAR[0x00B08E])) -#define MCF_USB_EP0ACR (*(vuint8_t *)(&__MBAR[0x00B101])) -#define MCF_USB_EP0MPSR (*(vuint16_t*)(&__MBAR[0x00B102])) -#define MCF_USB_EP0IFR (*(vuint8_t *)(&__MBAR[0x00B104])) -#define MCF_USB_EP0SR (*(vuint8_t *)(&__MBAR[0x00B105])) -#define MCF_USB_BMRTR (*(vuint8_t *)(&__MBAR[0x00B106])) -#define MCF_USB_BRTR (*(vuint8_t *)(&__MBAR[0x00B107])) -#define MCF_USB_WVALUER (*(vuint16_t*)(&__MBAR[0x00B108])) -#define MCF_USB_WINDEXR (*(vuint16_t*)(&__MBAR[0x00B10A])) -#define MCF_USB_WLENGTH (*(vuint16_t*)(&__MBAR[0x00B10C])) -#define MCF_USB_EP1OUTACR (*(vuint8_t *)(&__MBAR[0x00B131])) -#define MCF_USB_EP2OUTACR (*(vuint8_t *)(&__MBAR[0x00B161])) -#define MCF_USB_EP3OUTACR (*(vuint8_t *)(&__MBAR[0x00B191])) -#define MCF_USB_EP4OUTACR (*(vuint8_t *)(&__MBAR[0x00B1C1])) -#define MCF_USB_EP5OUTACR (*(vuint8_t *)(&__MBAR[0x00B1F1])) -#define MCF_USB_EP6OUTACR (*(vuint8_t *)(&__MBAR[0x00B221])) -#define MCF_USB_EPnOUTACR(x) (*(vuint8_t *)(&__MBAR[0x00B131+((x)*0x030)])) -#define MCF_USB_EP1OUTMPSR (*(vuint16_t*)(&__MBAR[0x00B132])) -#define MCF_USB_EP2OUTMPSR (*(vuint16_t*)(&__MBAR[0x00B162])) -#define MCF_USB_EP3OUTMPSR (*(vuint16_t*)(&__MBAR[0x00B192])) -#define MCF_USB_EP4OUTMPSR (*(vuint16_t*)(&__MBAR[0x00B1C2])) -#define MCF_USB_EP5OUTMPSR (*(vuint16_t*)(&__MBAR[0x00B1F2])) -#define MCF_USB_EP6OUTMPSR (*(vuint16_t*)(&__MBAR[0x00B222])) -#define MCF_USB_EPnOUTMPSR(x) (*(vuint16_t*)(&__MBAR[0x00B132+((x)*0x030)])) -#define MCF_USB_EP1OUTIFR (*(vuint8_t *)(&__MBAR[0x00B134])) -#define MCF_USB_EP2OUTIFR (*(vuint8_t *)(&__MBAR[0x00B164])) -#define MCF_USB_EP3OUTIFR (*(vuint8_t *)(&__MBAR[0x00B194])) -#define MCF_USB_EP4OUTIFR (*(vuint8_t *)(&__MBAR[0x00B1C4])) -#define MCF_USB_EP5OUTIFR (*(vuint8_t *)(&__MBAR[0x00B1F4])) -#define MCF_USB_EP6OUTIFR (*(vuint8_t *)(&__MBAR[0x00B224])) -#define MCF_USB_EPnOUTIFR(x) (*(vuint8_t *)(&__MBAR[0x00B134+((x)*0x030)])) -#define MCF_USB_EP1OUTSR (*(vuint8_t *)(&__MBAR[0x00B135])) -#define MCF_USB_EP2OUTSR (*(vuint8_t *)(&__MBAR[0x00B165])) -#define MCF_USB_EP3OUTSR (*(vuint8_t *)(&__MBAR[0x00B195])) -#define MCF_USB_EP4OUTSR (*(vuint8_t *)(&__MBAR[0x00B1C5])) -#define MCF_USB_EP5OUTSR (*(vuint8_t *)(&__MBAR[0x00B1F5])) -#define MCF_USB_EP6OUTSR (*(vuint8_t *)(&__MBAR[0x00B225])) -#define MCF_USB_EPnOUTSR(x) (*(vuint8_t *)(&__MBAR[0x00B135+((x)*0x030)])) -#define MCF_USB_EP1OUTSFR (*(vuint16_t*)(&__MBAR[0x00B13E])) -#define MCF_USB_EP2OUTSFR (*(vuint16_t*)(&__MBAR[0x00B16E])) -#define MCF_USB_EP3OUTSFR (*(vuint16_t*)(&__MBAR[0x00B19E])) -#define MCF_USB_EP4OUTSFR (*(vuint16_t*)(&__MBAR[0x00B1CE])) -#define MCF_USB_EP5OUTSFR (*(vuint16_t*)(&__MBAR[0x00B1FE])) -#define MCF_USB_EP6OUTSFR (*(vuint16_t*)(&__MBAR[0x00B22E])) -#define MCF_USB_EPnOUTSFR(x) (*(vuint16_t*)(&__MBAR[0x00B13E+((x)*0x030)])) -#define MCF_USB_EP1INACR (*(vuint8_t *)(&__MBAR[0x00B149])) -#define MCF_USB_EP2INACR (*(vuint8_t *)(&__MBAR[0x00B179])) -#define MCF_USB_EP3INACR (*(vuint8_t *)(&__MBAR[0x00B1A9])) -#define MCF_USB_EP4INACR (*(vuint8_t *)(&__MBAR[0x00B1D9])) -#define MCF_USB_EP5INACR (*(vuint8_t *)(&__MBAR[0x00B209])) -#define MCF_USB_EP6INACR (*(vuint8_t *)(&__MBAR[0x00B239])) -#define MCF_USB_EPnINACR(x) (*(vuint8_t *)(&__MBAR[0x00B149+((x)*0x030)])) -#define MCF_USB_EP1INMPSR (*(vuint16_t*)(&__MBAR[0x00B14A])) -#define MCF_USB_EP2INMPSR (*(vuint16_t*)(&__MBAR[0x00B17A])) -#define MCF_USB_EP3INMPSR (*(vuint16_t*)(&__MBAR[0x00B1AA])) -#define MCF_USB_EP4INMPSR (*(vuint16_t*)(&__MBAR[0x00B1DA])) -#define MCF_USB_EP5INMPSR (*(vuint16_t*)(&__MBAR[0x00B20A])) -#define MCF_USB_EP6INMPSR (*(vuint16_t*)(&__MBAR[0x00B23A])) -#define MCF_USB_EPnINMPSR(x) (*(vuint16_t*)(&__MBAR[0x00B14A+((x)*0x030)])) -#define MCF_USB_EP1INIFR (*(vuint8_t *)(&__MBAR[0x00B14C])) -#define MCF_USB_EP2INIFR (*(vuint8_t *)(&__MBAR[0x00B17C])) -#define MCF_USB_EP3INIFR (*(vuint8_t *)(&__MBAR[0x00B1AC])) -#define MCF_USB_EP4INIFR (*(vuint8_t *)(&__MBAR[0x00B1DC])) -#define MCF_USB_EP5INIFR (*(vuint8_t *)(&__MBAR[0x00B20C])) -#define MCF_USB_EP6INIFR (*(vuint8_t *)(&__MBAR[0x00B23C])) -#define MCF_USB_EPnINIFR(x) (*(vuint8_t *)(&__MBAR[0x00B14C+((x)*0x030)])) -#define MCF_USB_EP1INSR (*(vuint8_t *)(&__MBAR[0x00B14D])) -#define MCF_USB_EP2INSR (*(vuint8_t *)(&__MBAR[0x00B17D])) -#define MCF_USB_EP3INSR (*(vuint8_t *)(&__MBAR[0x00B1AD])) -#define MCF_USB_EP4INSR (*(vuint8_t *)(&__MBAR[0x00B1DD])) -#define MCF_USB_EP5INSR (*(vuint8_t *)(&__MBAR[0x00B20D])) -#define MCF_USB_EP6INSR (*(vuint8_t *)(&__MBAR[0x00B23D])) -#define MCF_USB_EPnINSR(x) (*(vuint8_t *)(&__MBAR[0x00B14D+((x)*0x030)])) -#define MCF_USB_EP1INSFR (*(vuint16_t*)(&__MBAR[0x00B15A])) -#define MCF_USB_EP2INSFR (*(vuint16_t*)(&__MBAR[0x00B18A])) -#define MCF_USB_EP3INSFR (*(vuint16_t*)(&__MBAR[0x00B1BA])) -#define MCF_USB_EP4INSFR (*(vuint16_t*)(&__MBAR[0x00B1EA])) -#define MCF_USB_EP5INSFR (*(vuint16_t*)(&__MBAR[0x00B21A])) -#define MCF_USB_EP6INSFR (*(vuint16_t*)(&__MBAR[0x00B24A])) -#define MCF_USB_EPnINSFR(x) (*(vuint16_t*)(&__MBAR[0x00B15A+((x)*0x030)])) -#define MCF_USB_USBSR (*(vuint32_t*)(&__MBAR[0x00B400])) -#define MCF_USB_USBCR (*(vuint32_t*)(&__MBAR[0x00B404])) -#define MCF_USB_DRAMCR (*(vuint32_t*)(&__MBAR[0x00B408])) -#define MCF_USB_DRAMDR (*(vuint32_t*)(&__MBAR[0x00B40C])) -#define MCF_USB_USBISR (*(vuint32_t*)(&__MBAR[0x00B410])) -#define MCF_USB_USBIMR (*(vuint32_t*)(&__MBAR[0x00B414])) -#define MCF_USB_EP0STAT (*(vuint32_t*)(&__MBAR[0x00B440])) -#define MCF_USB_EP1STAT (*(vuint32_t*)(&__MBAR[0x00B470])) -#define MCF_USB_EP2STAT (*(vuint32_t*)(&__MBAR[0x00B4A0])) -#define MCF_USB_EP3STAT (*(vuint32_t*)(&__MBAR[0x00B4D0])) -#define MCF_USB_EP4STAT (*(vuint32_t*)(&__MBAR[0x00B500])) -#define MCF_USB_EP5STAT (*(vuint32_t*)(&__MBAR[0x00B530])) -#define MCF_USB_EP6STAT (*(vuint32_t*)(&__MBAR[0x00B560])) -#define MCF_USB_EPnSTAT(x) (*(vuint32_t*)(&__MBAR[0x00B440+((x)*0x030)])) -#define MCF_USB_EP0ISR (*(vuint32_t*)(&__MBAR[0x00B444])) -#define MCF_USB_EP1ISR (*(vuint32_t*)(&__MBAR[0x00B474])) -#define MCF_USB_EP2ISR (*(vuint32_t*)(&__MBAR[0x00B4A4])) -#define MCF_USB_EP3ISR (*(vuint32_t*)(&__MBAR[0x00B4D4])) -#define MCF_USB_EP4ISR (*(vuint32_t*)(&__MBAR[0x00B504])) -#define MCF_USB_EP5ISR (*(vuint32_t*)(&__MBAR[0x00B534])) -#define MCF_USB_EP6ISR (*(vuint32_t*)(&__MBAR[0x00B564])) -#define MCF_USB_EPnISR(x) (*(vuint32_t*)(&__MBAR[0x00B444+((x)*0x030)])) -#define MCF_USB_EP0IMR (*(vuint32_t*)(&__MBAR[0x00B448])) -#define MCF_USB_EP1IMR (*(vuint32_t*)(&__MBAR[0x00B478])) -#define MCF_USB_EP2IMR (*(vuint32_t*)(&__MBAR[0x00B4A8])) -#define MCF_USB_EP3IMR (*(vuint32_t*)(&__MBAR[0x00B4D8])) -#define MCF_USB_EP4IMR (*(vuint32_t*)(&__MBAR[0x00B508])) -#define MCF_USB_EP5IMR (*(vuint32_t*)(&__MBAR[0x00B538])) -#define MCF_USB_EP6IMR (*(vuint32_t*)(&__MBAR[0x00B568])) -#define MCF_USB_EPnIMR(x) (*(vuint32_t*)(&__MBAR[0x00B448+((x)*0x030)])) -#define MCF_USB_EP0FRCFGR (*(vuint32_t*)(&__MBAR[0x00B44C])) -#define MCF_USB_EP1FRCFGR (*(vuint32_t*)(&__MBAR[0x00B47C])) -#define MCF_USB_EP2FRCFGR (*(vuint32_t*)(&__MBAR[0x00B4AC])) -#define MCF_USB_EP3FRCFGR (*(vuint32_t*)(&__MBAR[0x00B4DC])) -#define MCF_USB_EP4FRCFGR (*(vuint32_t*)(&__MBAR[0x00B50C])) -#define MCF_USB_EP5FRCFGR (*(vuint32_t*)(&__MBAR[0x00B53C])) -#define MCF_USB_EP6FRCFGR (*(vuint32_t*)(&__MBAR[0x00B56C])) -#define MCF_USB_EPnFRCFGR(x) (*(vuint32_t*)(&__MBAR[0x00B44C+((x)*0x030)])) -#define MCF_USB_EP0FDR (*(vuint32_t*)(&__MBAR[0x00B450])) -#define MCF_USB_EP1FDR (*(vuint32_t*)(&__MBAR[0x00B480])) -#define MCF_USB_EP2FDR (*(vuint32_t*)(&__MBAR[0x00B4B0])) -#define MCF_USB_EP3FDR (*(vuint32_t*)(&__MBAR[0x00B4E0])) -#define MCF_USB_EP4FDR (*(vuint32_t*)(&__MBAR[0x00B510])) -#define MCF_USB_EP5FDR (*(vuint32_t*)(&__MBAR[0x00B540])) -#define MCF_USB_EP6FDR (*(vuint32_t*)(&__MBAR[0x00B570])) -#define MCF_USB_EPnFDR(x) (*(vuint32_t*)(&__MBAR[0x00B450+((x)*0x030)])) -#define MCF_USB_EP0FSR (*(vuint32_t*)(&__MBAR[0x00B454])) -#define MCF_USB_EP1FSR (*(vuint32_t*)(&__MBAR[0x00B484])) -#define MCF_USB_EP2FSR (*(vuint32_t*)(&__MBAR[0x00B4B4])) -#define MCF_USB_EP3FSR (*(vuint32_t*)(&__MBAR[0x00B4E4])) -#define MCF_USB_EP4FSR (*(vuint32_t*)(&__MBAR[0x00B514])) -#define MCF_USB_EP5FSR (*(vuint32_t*)(&__MBAR[0x00B544])) -#define MCF_USB_EP6FSR (*(vuint32_t*)(&__MBAR[0x00B574])) -#define MCF_USB_EPnFSR(x) (*(vuint32_t*)(&__MBAR[0x00B454+((x)*0x030)])) -#define MCF_USB_EP0FCR (*(vuint32_t*)(&__MBAR[0x00B458])) -#define MCF_USB_EP1FCR (*(vuint32_t*)(&__MBAR[0x00B488])) -#define MCF_USB_EP2FCR (*(vuint32_t*)(&__MBAR[0x00B4B8])) -#define MCF_USB_EP3FCR (*(vuint32_t*)(&__MBAR[0x00B4E8])) -#define MCF_USB_EP4FCR (*(vuint32_t*)(&__MBAR[0x00B518])) -#define MCF_USB_EP5FCR (*(vuint32_t*)(&__MBAR[0x00B548])) -#define MCF_USB_EP6FCR (*(vuint32_t*)(&__MBAR[0x00B578])) -#define MCF_USB_EPnFCR(x) (*(vuint32_t*)(&__MBAR[0x00B458+((x)*0x030)])) -#define MCF_USB_EP0FAR (*(vuint32_t*)(&__MBAR[0x00B45C])) -#define MCF_USB_EP1FAR (*(vuint32_t*)(&__MBAR[0x00B48C])) -#define MCF_USB_EP2FAR (*(vuint32_t*)(&__MBAR[0x00B4BC])) -#define MCF_USB_EP3FAR (*(vuint32_t*)(&__MBAR[0x00B4EC])) -#define MCF_USB_EP4FAR (*(vuint32_t*)(&__MBAR[0x00B51C])) -#define MCF_USB_EP5FAR (*(vuint32_t*)(&__MBAR[0x00B54C])) -#define MCF_USB_EP6FAR (*(vuint32_t*)(&__MBAR[0x00B57C])) -#define MCF_USB_EPnFAR(x) (*(vuint32_t*)(&__MBAR[0x00B45C+((x)*0x030)])) -#define MCF_USB_EP0FRP (*(vuint32_t*)(&__MBAR[0x00B460])) -#define MCF_USB_EP1FRP (*(vuint32_t*)(&__MBAR[0x00B490])) -#define MCF_USB_EP2FRP (*(vuint32_t*)(&__MBAR[0x00B4C0])) -#define MCF_USB_EP3FRP (*(vuint32_t*)(&__MBAR[0x00B4F0])) -#define MCF_USB_EP4FRP (*(vuint32_t*)(&__MBAR[0x00B520])) -#define MCF_USB_EP5FRP (*(vuint32_t*)(&__MBAR[0x00B550])) -#define MCF_USB_EP6FRP (*(vuint32_t*)(&__MBAR[0x00B580])) -#define MCF_USB_EPnFRP(x) (*(vuint32_t*)(&__MBAR[0x00B460+((x)*0x030)])) -#define MCF_USB_EP0FWP (*(vuint32_t*)(&__MBAR[0x00B464])) -#define MCF_USB_EP1FWP (*(vuint32_t*)(&__MBAR[0x00B494])) -#define MCF_USB_EP2FWP (*(vuint32_t*)(&__MBAR[0x00B4C4])) -#define MCF_USB_EP3FWP (*(vuint32_t*)(&__MBAR[0x00B4F4])) -#define MCF_USB_EP4FWP (*(vuint32_t*)(&__MBAR[0x00B524])) -#define MCF_USB_EP5FWP (*(vuint32_t*)(&__MBAR[0x00B554])) -#define MCF_USB_EP6FWP (*(vuint32_t*)(&__MBAR[0x00B584])) -#define MCF_USB_EPnFWP(x) (*(vuint32_t*)(&__MBAR[0x00B464+((x)*0x030)])) -#define MCF_USB_EP0LRFP (*(vuint32_t*)(&__MBAR[0x00B468])) -#define MCF_USB_EP1LRFP (*(vuint32_t*)(&__MBAR[0x00B498])) -#define MCF_USB_EP2LRFP (*(vuint32_t*)(&__MBAR[0x00B4C8])) -#define MCF_USB_EP3LRFP (*(vuint32_t*)(&__MBAR[0x00B4F8])) -#define MCF_USB_EP4LRFP (*(vuint32_t*)(&__MBAR[0x00B528])) -#define MCF_USB_EP5LRFP (*(vuint32_t*)(&__MBAR[0x00B558])) -#define MCF_USB_EP6LRFP (*(vuint32_t*)(&__MBAR[0x00B588])) -#define MCF_USB_EPnLRFP(x) (*(vuint32_t*)(&__MBAR[0x00B468+((x)*0x030)])) -#define MCF_USB_EP0LWFP (*(vuint32_t*)(&__MBAR[0x00B46C])) -#define MCF_USB_EP1LWFP (*(vuint32_t*)(&__MBAR[0x00B49C])) -#define MCF_USB_EP2LWFP (*(vuint32_t*)(&__MBAR[0x00B4CC])) -#define MCF_USB_EP3LWFP (*(vuint32_t*)(&__MBAR[0x00B4FC])) -#define MCF_USB_EP4LWFP (*(vuint32_t*)(&__MBAR[0x00B52C])) -#define MCF_USB_EP5LWFP (*(vuint32_t*)(&__MBAR[0x00B55C])) -#define MCF_USB_EP6LWFP (*(vuint32_t*)(&__MBAR[0x00B58C])) -#define MCF_USB_EPnLWFP(x) (*(vuint32_t*)(&__MBAR[0x00B46C+((x)*0x030)])) - -/* Bit definitions and macros for MCF_USB_USBAISR */ -#define MCF_USB_USBAISR_SETUP (0x01) -#define MCF_USB_USBAISR_IN (0x02) -#define MCF_USB_USBAISR_OUT (0x04) -#define MCF_USB_USBAISR_EPHALT (0x08) -#define MCF_USB_USBAISR_TRANSERR (0x10) -#define MCF_USB_USBAISR_ACK (0x20) -#define MCF_USB_USBAISR_CTROVFL (0x40) -#define MCF_USB_USBAISR_EPSTALL (0x80) - -/* Bit definitions and macros for MCF_USB_USBAIMR */ -#define MCF_USB_USBAIMR_SETUPEN (0x01) -#define MCF_USB_USBAIMR_INEN (0x02) -#define MCF_USB_USBAIMR_OUTEN (0x04) -#define MCF_USB_USBAIMR_EPHALTEN (0x08) -#define MCF_USB_USBAIMR_TRANSERREN (0x10) -#define MCF_USB_USBAIMR_ACKEN (0x20) -#define MCF_USB_USBAIMR_CTROVFLEN (0x40) -#define MCF_USB_USBAIMR_EPSTALLEN (0x80) - -/* Bit definitions and macros for MCF_USB_EPINFO */ -#define MCF_USB_EPINFO_EPDIR (0x01) -#define MCF_USB_EPINFO_EPNUM(x) (((x)&0x07)<<1) - -/* Bit definitions and macros for MCF_USB_CFGAR */ -#define MCF_USB_CFGAR_RESERVED (0xA0) -#define MCF_USB_CFGAR_RMTWKEUP (0xE0) - -/* Bit definitions and macros for MCF_USB_SPEEDR */ -#define MCF_USB_SPEEDR_HS (0x01) -#define MCF_USB_SPEEDR_FS (0x02) - -/* Bit definitions and macros for MCF_USB_FRMNUMR */ -#define MCF_USB_FRMNUMR_FRMNUM(x) (((x)&0x0FFF)<<0) - -/* Bit definitions and macros for MCF_USB_EPTNR */ -#define MCF_USB_EPTNR_EP1T(x) (((x)&0x0003)<<0) -#define MCF_USB_EPTNR_EP2T(x) (((x)&0x0003)<<2) -#define MCF_USB_EPTNR_EP3T(x) (((x)&0x0003)<<4) -#define MCF_USB_EPTNR_EP4T(x) (((x)&0x0003)<<6) -#define MCF_USB_EPTNR_EP5T(x) (((x)&0x0003)<<8) -#define MCF_USB_EPTNR_EP6T(x) (((x)&0x0003)<<10) -#define MCF_USB_EPTNR_EPnT1 (0) -#define MCF_USB_EPTNR_EPnT2 (1) -#define MCF_USB_EPTNR_EPnT3 (2) - -/* Bit definitions and macros for MCF_USB_IFUR */ -#define MCF_USB_IFUR_ALTSET(x) (((x)&0x00FF)<<0) -#define MCF_USB_IFUR_IFNUM(x) (((x)&0x00FF)<<8) - -/* Bit definitions and macros for MCF_USB_IFRn */ -#define MCF_USB_IFRn_ALTSET(x) (((x)&0x00FF)<<0) -#define MCF_USB_IFRn_IFNUM(x) (((x)&0x00FF)<<8) - -/* Bit definitions and macros for MCF_USB_CNTOVR */ -#define MCF_USB_CNTOVR_PPCNT (0x01) -#define MCF_USB_CNTOVR_DPCNT (0x02) -#define MCF_USB_CNTOVR_CRCECNT (0x04) -#define MCF_USB_CNTOVR_BSECNT (0x08) -#define MCF_USB_CNTOVR_PIDECNT (0x10) -#define MCF_USB_CNTOVR_FRMECNT (0x20) -#define MCF_USB_CNTOVR_TXPCNT (0x40) - -/* Bit definitions and macros for MCF_USB_EP0ACR */ -#define MCF_USB_EP0ACR_TTYPE(x) (((x)&0x03)<<0) -#define MCF_USB_EP0ACR_TTYPE_CTRL (0) -#define MCF_USB_EP0ACR_TTYPE_ISOC (1) -#define MCF_USB_EP0ACR_TTYPE_BULK (2) -#define MCF_USB_EP0ACR_TTYPE_INT (3) - -/* Bit definitions and macros for MCF_USB_EP0MPSR */ -#define MCF_USB_EP0MPSR_MAXPKTSZ(x) (((x)&0x07FF)<<0) -#define MCF_USB_EP0MPSR_ADDTRANS(x) (((x)&0x0003)<<11) - -/* Bit definitions and macros for MCF_USB_EP0SR */ -#define MCF_USB_EP0SR_HALT (0x01) -#define MCF_USB_EP0SR_ACTIVE (0x02) -#define MCF_USB_EP0SR_PSTALL (0x04) -#define MCF_USB_EP0SR_CCOMP (0x08) -#define MCF_USB_EP0SR_TXZERO (0x20) -#define MCF_USB_EP0SR_INT (0x80) - -/* Bit definitions and macros for MCF_USB_BMRTR */ -#define MCF_USB_BMRTR_DIR (0x80) -#define MCF_USB_BMRTR_TYPE_STANDARD (0x00) -#define MCF_USB_BMRTR_TYPE_CLASS (0x20) -#define MCF_USB_BMRTR_TYPE_VENDOR (0x40) -#define MCF_USB_BMRTR_REC_DEVICE (0x00) -#define MCF_USB_BMRTR_REC_INTERFACE (0x01) -#define MCF_USB_BMRTR_REC_ENDPOINT (0x02) -#define MCF_USB_BMRTR_REC_OTHER (0x03) - -/* Bit definitions and macros for MCF_USB_EPnOUTACR */ -#define MCF_USB_EPnOUTACR_TTYPE(x) (((x)&0x03)<<0) - -/* Bit definitions and macros for MCF_USB_EPnOUTMPSR */ -#define MCF_USB_EPnOUTMPSR_MAXPKTSZ(x) (((x)&0x07FF)<<0) -#define MCF_USB_EPnOUTMPSR_ADDTRANS(x) (((x)&0x0003)<<11) - -/* Bit definitions and macros for MCF_USB_EPnOUTSR */ -#define MCF_USB_EPnOUTSR_HALT (0x01) -#define MCF_USB_EPnOUTSR_ACTIVE (0x02) -#define MCF_USB_EPnOUTSR_PSTALL (0x04) -#define MCF_USB_EPnOUTSR_CCOMP (0x08) -#define MCF_USB_EPnOUTSR_TXZERO (0x20) -#define MCF_USB_EPnOUTSR_INT (0x80) - -/* Bit definitions and macros for MCF_USB_EPnOUTSFR */ -#define MCF_USB_EPnOUTSFR_FRMNUM(x) (((x)&0x07FF)<<0) - -/* Bit definitions and macros for MCF_USB_EPnINACR */ -#define MCF_USB_EPnINACR_TTYPE(x) (((x)&0x03)<<0) - -/* Bit definitions and macros for MCF_USB_EPnINMPSR */ -#define MCF_USB_EPnINMPSR_MAXPKTSZ(x) (((x)&0x07FF)<<0) -#define MCF_USB_EPnINMPSR_ADDTRANS(x) (((x)&0x0003)<<11) - -/* Bit definitions and macros for MCF_USB_EPnINSR */ -#define MCF_USB_EPnINSR_HALT (0x01) -#define MCF_USB_EPnINSR_ACTIVE (0x02) -#define MCF_USB_EPnINSR_PSTALL (0x04) -#define MCF_USB_EPnINSR_CCOMP (0x08) -#define MCF_USB_EPnINSR_TXZERO (0x20) -#define MCF_USB_EPnINSR_INT (0x80) - -/* Bit definitions and macros for MCF_USB_EPnINSFR */ -#define MCF_USB_EPnINSFR_FRMNUM(x) (((x)&0x07FF)<<0) - -/* Bit definitions and macros for MCF_USB_USBSR */ -#define MCF_USB_USBSR_SUSP (0x00000080) -#define MCF_USB_USBSR_ISOERREP (0x0000000F) - -/* Bit definitions and macros for MCF_USB_USBCR */ -#define MCF_USB_USBCR_RESUME (0x00000001) -#define MCF_USB_USBCR_APPLOCK (0x00000002) -#define MCF_USB_USBCR_RST (0x00000004) -#define MCF_USB_USBCR_RAMEN (0x00000008) -#define MCF_USB_USBCR_RAMSPLIT (0x00000020) - -/* Bit definitions and macros for MCF_USB_DRAMCR */ -#define MCF_USB_DRAMCR_DADR(x) (((x)&0x000003FF)<<0) -#define MCF_USB_DRAMCR_DSIZE(x) (((x)&0x000007FF)<<16) -#define MCF_USB_DRAMCR_BSY (0x40000000) -#define MCF_USB_DRAMCR_START (0x80000000) - -/* Bit definitions and macros for MCF_USB_DRAMDR */ -#define MCF_USB_DRAMDR_DDAT(x) (((x)&0x000000FF)<<0) - -/* Bit definitions and macros for MCF_USB_USBISR */ -#define MCF_USB_USBISR_ISOERR (0x00000001) -#define MCF_USB_USBISR_FTUNLCK (0x00000002) -#define MCF_USB_USBISR_SUSP (0x00000004) -#define MCF_USB_USBISR_RES (0x00000008) -#define MCF_USB_USBISR_UPDSOF (0x00000010) -#define MCF_USB_USBISR_RSTSTOP (0x00000020) -#define MCF_USB_USBISR_SOF (0x00000040) -#define MCF_USB_USBISR_MSOF (0x00000080) - -/* Bit definitions and macros for MCF_USB_USBIMR */ -#define MCF_USB_USBIMR_ISOERR (0x00000001) -#define MCF_USB_USBIMR_FTUNLCK (0x00000002) -#define MCF_USB_USBIMR_SUSP (0x00000004) -#define MCF_USB_USBIMR_RES (0x00000008) -#define MCF_USB_USBIMR_UPDSOF (0x00000010) -#define MCF_USB_USBIMR_RSTSTOP (0x00000020) -#define MCF_USB_USBIMR_SOF (0x00000040) -#define MCF_USB_USBIMR_MSOF (0x00000080) - -/* Bit definitions and macros for MCF_USB_EPnSTAT */ -#define MCF_USB_EPnSTAT_RST (0x00000001) -#define MCF_USB_EPnSTAT_FLUSH (0x00000002) -#define MCF_USB_EPnSTAT_DIR (0x00000080) -#define MCF_USB_EPnSTAT_BYTECNT(x) (((x)&0x00000FFF)<<16) - -/* Bit definitions and macros for MCF_USB_EPnISR */ -#define MCF_USB_EPnISR_EOF (0x00000001) -#define MCF_USB_EPnISR_EOT (0x00000004) -#define MCF_USB_EPnISR_FIFOLO (0x00000010) -#define MCF_USB_EPnISR_FIFOHI (0x00000020) -#define MCF_USB_EPnISR_ERR (0x00000040) -#define MCF_USB_EPnISR_EMT (0x00000080) -#define MCF_USB_EPnISR_FU (0x00000100) - -/* Bit definitions and macros for MCF_USB_EPnIMR */ -#define MCF_USB_EPnIMR_EOF (0x00000001) -#define MCF_USB_EPnIMR_EOT (0x00000004) -#define MCF_USB_EPnIMR_FIFOLO (0x00000010) -#define MCF_USB_EPnIMR_FIFOHI (0x00000020) -#define MCF_USB_EPnIMR_ERR (0x00000040) -#define MCF_USB_EPnIMR_EMT (0x00000080) -#define MCF_USB_EPnIMR_FU (0x00000100) - -/* Bit definitions and macros for MCF_USB_EPnFRCFGR */ -#define MCF_USB_EPnFRCFGR_DEPTH(x) (((x)&0x00001FFF)<<0) -#define MCF_USB_EPnFRCFGR_BASE(x) (((x)&0x00000FFF)<<16) - -/* Bit definitions and macros for MCF_USB_EPnFSR */ -#define MCF_USB_EPnFSR_EMT (0x00010000) -#define MCF_USB_EPnFSR_ALRM (0x00020000) -#define MCF_USB_EPnFSR_FR (0x00040000) -#define MCF_USB_EPnFSR_FU (0x00080000) -#define MCF_USB_EPnFSR_OF (0x00100000) -#define MCF_USB_EPnFSR_UF (0x00200000) -#define MCF_USB_EPnFSR_RXW (0x00400000) -#define MCF_USB_EPnFSR_FAE (0x00800000) -#define MCF_USB_EPnFSR_FRM(x) (((x)&0x0000000F)<<24) -#define MCF_USB_EPnFSR_TXW (0x40000000) -#define MCF_USB_EPnFSR_IP (0x80000000) - -/* Bit definitions and macros for MCF_USB_EPnFCR */ -#define MCF_USB_EPnFCR_COUNTER(x) (((x)&0x0000FFFF)<<0) -#define MCF_USB_EPnFCR_TXWMSK (0x00040000) -#define MCF_USB_EPnFCR_OFMSK (0x00080000) -#define MCF_USB_EPnFCR_UFMSK (0x00100000) -#define MCF_USB_EPnFCR_RXWMSK (0x00200000) -#define MCF_USB_EPnFCR_FAEMSK (0x00400000) -#define MCF_USB_EPnFCR_IPMSK (0x00800000) -#define MCF_USB_EPnFCR_GR(x) (((x)&0x00000007)<<24) -#define MCF_USB_EPnFCR_FRM (0x08000000) -#define MCF_USB_EPnFCR_TMR (0x10000000) -#define MCF_USB_EPnFCR_WFR (0x20000000) -#define MCF_USB_EPnFCR_SHAD (0x80000000) - -/* Bit definitions and macros for MCF_USB_EPnFAR */ -#define MCF_USB_EPnFAR_ALRMP(x) (((x)&0x00000FFF)<<0) - -/* Bit definitions and macros for MCF_USB_EPnFRP */ -#define MCF_USB_EPnFRP_RP(x) (((x)&0x00000FFF)<<0) - -/* Bit definitions and macros for MCF_USB_EPnFWP */ -#define MCF_USB_EPnFWP_WP(x) (((x)&0x00000FFF)<<0) - -/* Bit definitions and macros for MCF_USB_EPnLRFP */ -#define MCF_USB_EPnLRFP_LRFP(x) (((x)&0x00000FFF)<<0) - -/* Bit definitions and macros for MCF_USB_EPnLWFP */ -#define MCF_USB_EPnLWFP_LWFP(x) (((x)&0x00000FFF)<<0) - - -#endif /* __MCF548X_USB_H__ */ diff --git a/arch/m68k/include/asm/coldfire/mcf548x/mcf548x_xlbarb.h b/arch/m68k/include/asm/coldfire/mcf548x/mcf548x_xlbarb.h deleted file mode 100644 index f4df976b3..000000000 --- a/arch/m68k/include/asm/coldfire/mcf548x/mcf548x_xlbarb.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright (c) 2008 Carsten Schlote - * See file CREDITS for list of people who contributed to this project. - * - * This file is part of barebox. - * - * barebox is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * barebox is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with barebox. If not, see . - */ - -/** @file - * Register and bit definitions for the MCF548X and MCF547x - * XLB bus arbiter - */ -#ifndef __MCF548X_XLBARB_H__ -#define __MCF548X_XLBARB_H__ - -/* - * XLB arbiter register - */ -#define MCF_XLBARB_ACFG (*(vuint32*)(&__MBAR[0x000240])) -#define MCF_XLBARB_VER (*(vuint32*)(&__MBAR[0x000244])) -#define MCF_XLBARB_STA (*(vuint32*)(&__MBAR[0x000248])) -#define MCF_XLBARB_INTEN (*(vuint32*)(&__MBAR[0x00024C])) -#define MCF_XLBARB_ADRCAP (*(vuint32*)(&__MBAR[0x000250])) -#define MCF_XLBARB_SIGCAP (*(vuint32*)(&__MBAR[0x000254])) -#define MCF_XLBARB_ADRTO (*(vuint32*)(&__MBAR[0x000258])) -#define MCF_XLBARB_DATTO (*(vuint32*)(&__MBAR[0x00025C])) -#define MCF_XLBARB_BUSTO (*(vuint32*)(&__MBAR[0x000260])) -#define MCF_XLBARB_PRIEN (*(vuint32*)(&__MBAR[0x000264])) -#define MCF_XLBARB_PRI (*(vuint32*)(&__MBAR[0x000268])) -#define MCF_XLBARB_BAR (*(vuint32*)(&__MBAR[0x00026C])) - - -#endif /* __MCF548X_XLBARB_H__ */ diff --git a/arch/m68k/include/asm/coldfire/mcf5xxx.h b/arch/m68k/include/asm/coldfire/mcf5xxx.h deleted file mode 100644 index 5edde1e8b..000000000 --- a/arch/m68k/include/asm/coldfire/mcf5xxx.h +++ /dev/null @@ -1,258 +0,0 @@ -/* - * Copyright (c) 2008 Carsten Schlote - * See file CREDITS for list of people who contributed to this project. - * - * This file is part of barebox. - * - * barebox is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * barebox is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with barebox. If not, see . - */ - -/** @file - * Definitions common across all ColdFire processors - */ -#ifndef __MCF5XXX__H -#define __MCF5XXX__H - -/* - * Common M68K & ColdFire definitions - */ -#define ADDRESS uint32_t -#define INSTRUCTION uint16_t -#define ILLEGAL 0x4AFC -#define CPU_WORD_SIZE 16 - -/* - * Definitions for CPU status register (SR) - */ -#define MCF5XXX_SR_T (0x8000) -#define MCF5XXX_SR_S (0x2000) -#define MCF5XXX_SR_M (0x1000) -#define MCF5XXX_SR_IPL (0x0700) -#define MCF5XXX_SR_IPL_0 (0x0000) -#define MCF5XXX_SR_IPL_1 (0x0100) -#define MCF5XXX_SR_IPL_2 (0x0200) -#define MCF5XXX_SR_IPL_3 (0x0300) -#define MCF5XXX_SR_IPL_4 (0x0400) -#define MCF5XXX_SR_IPL_5 (0x0500) -#define MCF5XXX_SR_IPL_6 (0x0600) -#define MCF5XXX_SR_IPL_7 (0x0700) -#define MCF5XXX_SR_X (0x0010) -#define MCF5XXX_SR_N (0x0008) -#define MCF5XXX_SR_Z (0x0004) -#define MCF5XXX_SR_V (0x0002) -#define MCF5XXX_SR_C (0x0001) - -/* - * Definitions for CPU cache control register - */ -#define MCF5XXX_CACR_CENB (0x80000000) -#define MCF5XXX_CACR_DEC (0x80000000) -#define MCF5XXX_CACR_DW (0x40000000) -#define MCF5XXX_CACR_DESB (0x20000000) -#define MCF5XXX_CACR_CPDI (0x10000000) -#define MCF5XXX_CACR_DDPI (0x10000000) -#define MCF5XXX_CACR_CPD (0x10000000) -#define MCF5XXX_CACR_CFRZ (0x08000000) -#define MCF5XXX_CACR_DHLCK (0x08000000) -#define MCF5XXX_CACR_DDCM_WT (0x00000000) -#define MCF5XXX_CACR_DDCM_CB (0x02000000) -#define MCF5XXX_CACR_DDCM_IP (0x04000000) -#define MCF5XXX_CACR_DDCM_II (0x06000000) -#define MCF5XXX_CACR_CINV (0x01000000) -#define MCF5XXX_CACR_DCINVA (0x01000000) -#define MCF5XXX_CACR_DIDI (0x00800000) -#define MCF5XXX_CACR_DDSP (0x00800000) -#define MCF5XXX_CACR_DISD (0x00400000) -#define MCF5XXX_CACR_INVI (0x00200000) -#define MCF5XXX_CACR_INVD (0x00100000) -#define MCF5XXX_CACR_BEC (0x00080000) -#define MCF5XXX_CACR_BCINVA (0x00040000) -#define MCF5XXX_CACR_IEC (0x00008000) -#define MCF5XXX_CACR_DNFB (0x00002000) -#define MCF5XXX_CACR_IDPI (0x00001000) -#define MCF5XXX_CACR_IHLCK (0x00000800) -#define MCF5XXX_CACR_CEIB (0x00000400) -#define MCF5XXX_CACR_IDCM (0x00000400) -#define MCF5XXX_CACR_DCM_WR (0x00000000) -#define MCF5XXX_CACR_DCM_CB (0x00000100) -#define MCF5XXX_CACR_DCM_IP (0x00000200) -#define MCF5XXX_CACR_DCM (0x00000200) -#define MCF5XXX_CACR_DCM_II (0x00000300) -#define MCF5XXX_CACR_DBWE (0x00000100) -#define MCF5XXX_CACR_ICINVA (0x00000100) -#define MCF5XXX_CACR_IDSP (0x00000080) -#define MCF5XXX_CACR_DWP (0x00000020) -#define MCF5XXX_CACR_EUSP (0x00000020) -#define MCF5XXX_CACR_EUST (0x00000020) -#define MCF5XXX_CACR_DF (0x00000010) -#define MCF5XXX_CACR_CLNF_00 (0x00000000) -#define MCF5XXX_CACR_CLNF_01 (0x00000002) -#define MCF5XXX_CACR_CLNF_10 (0x00000004) -#define MCF5XXX_CACR_CLNF_11 (0x00000006) - -/* - * Definition for CPU access control register - */ -#define MCF5XXX_ACR_AB(a) ((a)&0xFF000000) -#define MCF5XXX_ACR_AM(a) (((a)&0xFF000000) >> 8) -#define MCF5XXX_ACR_EN (0x00008000) -#define MCF5XXX_ACR_SM_USER (0x00000000) -#define MCF5XXX_ACR_SM_SUPER (0x00002000) -#define MCF5XXX_ACR_SM_IGNORE (0x00006000) -#define MCF5XXX_ACR_ENIB (0x00000080) -#define MCF5XXX_ACR_CM (0x00000040) -#define MCF5XXX_ACR_DCM_WR (0x00000000) -#define MCF5XXX_ACR_DCM_CB (0x00000020) -#define MCF5XXX_ACR_DCM_IP (0x00000040) -#define MCF5XXX_ACR_DCM_II (0x00000060) -#define MCF5XXX_ACR_CM (0x00000040) -#define MCF5XXX_ACR_BWE (0x00000020) -#define MCF5XXX_ACR_WP (0x00000004) - -/* - * Definitions for CPU core sram control registers - */ -#define MCF5XXX_RAMBAR_BA(a) ((a)&0xFFFFC000) -#define MCF5XXX_RAMBAR_PRI_00 (0x00000000) -#define MCF5XXX_RAMBAR_PRI_01 (0x00004000) -#define MCF5XXX_RAMBAR_PRI_10 (0x00008000) -#define MCF5XXX_RAMBAR_PRI_11 (0x0000C000) -#define MCF5XXX_RAMBAR_WP (0x00000100) -#define MCF5XXX_RAMBAR_CI (0x00000020) -#define MCF5XXX_RAMBAR_SC (0x00000010) -#define MCF5XXX_RAMBAR_SD (0x00000008) -#define MCF5XXX_RAMBAR_UC (0x00000004) -#define MCF5XXX_RAMBAR_UD (0x00000002) -#define MCF5XXX_RAMBAR_V (0x00000001) - - -#ifndef __ASSEMBLY__ - -extern char __MBAR[]; - - -/* - * Extention to thhe basic POSIX data types - */ -typedef volatile uint8_t vuint8_t; /* 8 bits */ -typedef volatile uint16_t vuint16_t; /* 16 bits */ -typedef volatile uint32_t vuint32_t; /* 32 bits */ - -/* - * Routines and macros for accessing Input/Output devices - */ - -#define mcf_iord_8(ADDR) *((vuint8_t *)(ADDR)) -#define mcf_iord_16(ADDR) *((vuint16_t *)(ADDR)) -#define mcf_iord_32(ADDR) *((vuint32_t *)(ADDR)) - -#define mcf_iowr_8(ADDR,DATA) *((vuint8_t *)(ADDR)) = (DATA) -#define mcf_iowr_16(ADDR,DATA) *((vuint16_t *)(ADDR)) = (DATA) -#define mcf_iowr_32(ADDR,DATA) *((vuint32_t *)(ADDR)) = (DATA) - -/* - * The ColdFire family of processors has a simplified exception stack - * frame that looks like the following: - * - * 3322222222221111 111111 - * 1098765432109876 5432109876543210 - * 8 +----------------+----------------+ - * | Program Counter | - * 4 +----------------+----------------+ - * |FS/Fmt/Vector/FS| SR | - * SP --> 0 +----------------+----------------+ - * - * The stack self-aligns to a 4-byte boundary at an exception, with - * the FS/Fmt/Vector/FS field indicating the size of the adjustment - * (SP += 0,1,2,3 bytes). - */ -#define MCF5XXX_RD_SF_FORMAT(PTR) \ - ((*((uint16_t *)(PTR)) >> 12) & 0x00FF) - -#define MCF5XXX_RD_SF_VECTOR(PTR) \ - ((*((uint16_t *)(PTR)) >> 2) & 0x00FF) - -#define MCF5XXX_RD_SF_FS(PTR) \ - ( ((*((uint16_t *)(PTR)) & 0x0C00) >> 8) | (*((uint16_t *)(PTR)) & 0x0003) ) - -#define MCF5XXX_SF_SR(PTR) *((uint16_t *)(PTR)+1) -#define MCF5XXX_SF_PC(PTR) *((uint32_t *)(PTR)+1) - -/* - * Functions provided as inline code to access supervisor mode - * registers from C. - * - * Note: Most registers are write-only. So you must use shadow registers in - * RAM to track the state of each register! - */ -static __inline__ uint16_t mcf5xxx_rd_sr(void) { uint16_t rc; __asm__ __volatile__( "move.w %%sr,%0\n" : "=r" (rc) ); return rc; } -static __inline__ void mcf5xxx_wr_sr(uint16_t value) { __asm__ __volatile__( "move.w %0,%%sr\n" : : "r" (value) ); } - -static __inline__ int asm_set_ipl(uint32_t value) -{ - uint32_t oldipl,newipl; - value = (value & 0x7) << 8U; - oldipl = mcf5xxx_rd_sr(); - newipl = oldipl & ~0x0700U; - newipl |= value; - mcf5xxx_wr_sr(newipl); - oldipl = (oldipl & 0x0700U) >> 8U; - return oldipl; -} - -static __inline__ void mcf5xxx_cpushl_bc(uint32_t* value) { __asm__ __volatile__( " move.l %0,%%a0 \n .word 0xF4E8\n nop\n" : : "a" (value) : "a0"); } - // cpushl bc,%%a0@ ??? - -static __inline__ void mcf5xxx_wr_cacr(uint32_t value) { __asm__ __volatile__( "movec %0,%%cacr\n nop\n" : : "r" (value) ); } -static __inline__ void mcf5xxx_wr_asid(uint32_t value) { __asm__ __volatile__( "movec %0,%%asid\n nop\n" : : "r" (value) ); } -static __inline__ void mcf5xxx_wr_acr0(uint32_t value) { __asm__ __volatile__( "movec %0,#4\n nop\n" : : "r" (value) ); } -static __inline__ void mcf5xxx_wr_acr1(uint32_t value) { __asm__ __volatile__( "movec %0,#5\n nop\n" : : "r" (value) ); } -static __inline__ void mcf5xxx_wr_acr2(uint32_t value) { __asm__ __volatile__( "movec %0,#6\n nop\n" : : "r" (value) ); } -static __inline__ void mcf5xxx_wr_acr3(uint32_t value) { __asm__ __volatile__( "movec %0,#7\n nop\n" : : "r" (value) ); } -static __inline__ void mcf5xxx_wr_mmubar(uint32_t value) { __asm__ __volatile__( "movec %0,%%mmubar\n nop\n" : : "r" (value) ); } -static __inline__ void mcf5xxx_wr_other_a7(uint32_t value) { __asm__ __volatile__( "movec %0,%%other_sp\n nop\n" : : "r" (value) ); } -static __inline__ void mcf5xxx_wr_vbr(uint32_t value) { __asm__ __volatile__( "movec %0,%%vbr\n nop\n" : : "r" (value) ); } -static __inline__ void mcf5xxx_wr_macsr(uint32_t value) { __asm__ __volatile__( "movec %0,%%macsr\n nop\n" : : "r" (value) ); } -static __inline__ void mcf5xxx_wr_mask(uint32_t value) { __asm__ __volatile__( "movec %0,%%mask\n nop\n" : : "r" (value) ); } -static __inline__ void mcf5xxx_wr_acc0(uint32_t value) { __asm__ __volatile__( "movec %0,%%acc0\n nop\n" : : "r" (value) ); } -static __inline__ void mcf5xxx_wr_accext01(uint32_t value) { __asm__ __volatile__( "movec %0,%%accext01\n nop\n" : : "r" (value) ); } -static __inline__ void mcf5xxx_wr_accext23(uint32_t value) { __asm__ __volatile__( "movec %0,%%accext23\n nop\n" : : "r" (value) ); } -static __inline__ void mcf5xxx_wr_acc1(uint32_t value) { __asm__ __volatile__( "movec %0,%%acc1\n nop\n" : : "r" (value) ); } -static __inline__ void mcf5xxx_wr_acc2(uint32_t value) { __asm__ __volatile__( "movec %0,%%acc2\n nop\n" : : "r" (value) ); } -static __inline__ void mcf5xxx_wr_acc3(uint32_t value) { __asm__ __volatile__( "movec %0,%%acc3\n nop\n" : : "r" (value) ); } -//static __inline__ void mcf5xxx_wr_sr(uint32_t value) { __asm__ __volatile__( "movec %0,%%sr\n nop\n" : : "r" (value) ); } -//static __inline__ void mcf5xxx_wr_pc(uint32_t value) { __asm__ __volatile__( "movec %0,#0x080F\n nop\n" : : "r" (value) ); } -static __inline__ void mcf5xxx_wr_rombar0(uint32_t value) { __asm__ __volatile__( "movec %0,%%rombar0\n nop\n" : : "r" (value) ); } -static __inline__ void mcf5xxx_wr_rombar1(uint32_t value) { __asm__ __volatile__( "movec %0,%%rombar1\n nop\n" : : "r" (value) ); } -static __inline__ void mcf5xxx_wr_rambar0(uint32_t value) { __asm__ __volatile__( "movec %0,%%rambar0\n nop\n" : : "r" (value) ); } -static __inline__ void mcf5xxx_wr_rambar1(uint32_t value) { __asm__ __volatile__( "movec %0,%%rambar1\n nop\n" : : "r" (value) ); } -static __inline__ void mcf5xxx_wr_mpcr(uint32_t value) { __asm__ __volatile__( "movec %0,%%mpcr\n nop\n" : : "r" (value) ); } -static __inline__ void mcf5xxx_wr_secmbar(uint32_t value) { __asm__ __volatile__( "movec %0,%%mbar1\n nop\n" : : "r" (value) ); } -static __inline__ void mcf5xxx_wr_mbar(uint32_t value) { __asm__ __volatile__( "movec %0,%%mbar0\n nop\n" : : "r" (value) ); } - -#endif - -/* - * Now do specific ColdFire processor - */ - -#if (defined(CONFIG_ARCH_MCF54xx)) -#include "asm/coldfire/mcf548x.h" - -#else -#error "Error: Yet unsupported ColdFire processor." -#endif - - -#endif /* __MCF5XXX__H */ diff --git a/arch/m68k/include/asm/common.h b/arch/m68k/include/asm/common.h deleted file mode 100644 index 202ccad0b..000000000 --- a/arch/m68k/include/asm/common.h +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Copyright (c) 2008 Carsten Schlote - * See file CREDITS for list of people who contributed to this project. - * - * This file is part of barebox. - * - * barebox is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * barebox is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with barebox. If not, see . - */ - -/** @file - * Common include file wrapper for m68k architecture - */ - -/* nothing */ diff --git a/arch/m68k/include/asm/elf.h b/arch/m68k/include/asm/elf.h deleted file mode 100644 index 57fdcb263..000000000 --- a/arch/m68k/include/asm/elf.h +++ /dev/null @@ -1,146 +0,0 @@ -/* - * Copyright (c) 2008 Carsten Schlote - * See file CREDITS for list of people who contributed to this project. - * - * This file is part of barebox. - * - * barebox is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * barebox is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with barebox. If not, see . - */ - -/** @file - * Defines for M68k ELF Files - */ -#ifndef __ASMm68k_ELF_H -#define __ASMm68k_ELF_H - -/* - * ELF register definitions.. - */ - -//#include -#include -//#include - -/* - * 68k ELF relocation types - */ -#define R_68K_NONE 0 -#define R_68K_32 1 -#define R_68K_16 2 -#define R_68K_8 3 -#define R_68K_PC32 4 -#define R_68K_PC16 5 -#define R_68K_PC8 6 -#define R_68K_GOT32 7 -#define R_68K_GOT16 8 -#define R_68K_GOT8 9 -#define R_68K_GOT32O 10 -#define R_68K_GOT16O 11 -#define R_68K_GOT8O 12 -#define R_68K_PLT32 13 -#define R_68K_PLT16 14 -#define R_68K_PLT8 15 -#define R_68K_PLT32O 16 -#define R_68K_PLT16O 17 -#define R_68K_PLT8O 18 -#define R_68K_COPY 19 -#define R_68K_GLOB_DAT 20 -#define R_68K_JMP_SLOT 21 -#define R_68K_RELATIVE 22 - -typedef unsigned long elf_greg_t; - -//#define ELF_NGREG (sizeof(struct user_regs_struct) / sizeof(elf_greg_t)) -#define ELF_NGREG 20 -typedef elf_greg_t elf_gregset_t[ELF_NGREG]; - -typedef struct user_m68kfp_struct elf_fpregset_t; - -/* - * This is used to ensure we don't load something for the wrong architecture. - */ -#define elf_check_arch(x) ((x)->e_machine == EM_68K) - -/* - * These are used to set parameters in the core dumps. - */ -#define ELF_CLASS ELFCLASS32 -#define ELF_DATA ELFDATA2MSB -#define ELF_ARCH EM_68K - -/* For SVR4/m68k the function pointer to be registered with `atexit' is - passed in %a1. Although my copy of the ABI has no such statement, it - is actually used on ASV. */ -#define ELF_PLAT_INIT(_r, load_addr) _r->a1 = 0 - -#define USE_ELF_CORE_DUMP -#if !defined(CONFIG_SUN3) && !defined(CONFIG_COLDFIRE) -#define ELF_EXEC_PAGESIZE 4096 -#else -#define ELF_EXEC_PAGESIZE 8192 -#endif - -/* This is the location that an ET_DYN program is loaded if exec'ed. Typical - use of this is to invoke "./ld.so someprog" to test out a new version of - the loader. We need to make sure that it is out of the way of the program - that it will "exec", and that there is sufficient room for the brk. */ - -#ifndef CONFIG_SUN3 -#define ELF_ET_DYN_BASE 0xD0000000UL -#else -#define ELF_ET_DYN_BASE 0x0D800000UL -#endif - -#define ELF_CORE_COPY_REGS(pr_reg, regs) \ - /* Bleech. */ \ - pr_reg[0] = regs->d1; \ - pr_reg[1] = regs->d2; \ - pr_reg[2] = regs->d3; \ - pr_reg[3] = regs->d4; \ - pr_reg[4] = regs->d5; \ - pr_reg[7] = regs->a0; \ - pr_reg[8] = regs->a1; \ - pr_reg[9] = regs->a2; \ - pr_reg[14] = regs->d0; \ - pr_reg[15] = rdusp(); \ - pr_reg[16] = regs->orig_d0; \ - pr_reg[17] = regs->sr; \ - pr_reg[18] = regs->pc; \ - pr_reg[19] = (regs->format << 12) | regs->vector; \ - { \ - struct switch_stack *sw = ((struct switch_stack *)regs) - 1; \ - pr_reg[5] = sw->d6; \ - pr_reg[6] = sw->d7; \ - pr_reg[10] = sw->a3; \ - pr_reg[11] = sw->a4; \ - pr_reg[12] = sw->a5; \ - pr_reg[13] = sw->a6; \ - } - -/* This yields a mask that user programs can use to figure out what - instruction set this cpu supports. */ - -#define ELF_HWCAP (0) - -/* This yields a string that ld.so will use to load implementation - specific libraries for optimization. This is more specific in - intent than poking at uname or /proc/cpuinfo. */ - -#define ELF_PLATFORM (NULL) - -#ifdef __KERNEL__ -#define SET_PERSONALITY(ex, ibcs2) set_personality((ibcs2)?PER_SVR4:PER_LINUX) -#endif - -#endif diff --git a/arch/m68k/include/asm/hardware.h b/arch/m68k/include/asm/hardware.h deleted file mode 100644 index eeca64eb9..000000000 --- a/arch/m68k/include/asm/hardware.h +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright (c) 2008 Carsten Schlote - * See file CREDITS for list of people who contributed to this project. - * - * This file is part of barebox. - * - * barebox is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * barebox is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with barebox. If not, see . - */ - -/** @file - * Common hardware definitions - */ - -#ifndef __M68K_HARDWARE_H -#define __M68K_HARDWARE_H - -#include - -#endif diff --git a/arch/m68k/include/asm/io.h b/arch/m68k/include/asm/io.h deleted file mode 100644 index b6b01cb18..000000000 --- a/arch/m68k/include/asm/io.h +++ /dev/null @@ -1,304 +0,0 @@ -/* - * Copyright (c) 2008 Carsten Schlote - * See file CREDITS for list of people who contributed to this project. - * - * This file is part of barebox. - * - * barebox is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * barebox is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with barebox. If not, see . - */ - -/** @file - * Generic virtual read/write. Note that we don't support half-word - * read/writes. We define __arch_*[bl] here, and leave __arch_*w - * to the architecture specific code. - */ -#ifndef __ASM_M68K_IO_H -#define __ASM_M68K_IO_H - -#ifdef __KERNEL__ - -#include -#include -#include - -/* - */ -#define __arch_getb(a) (*(volatile unsigned char *)(a)) -#define __arch_getw(a) (*(volatile unsigned short *)(a)) -#define __arch_getl(a) (*(volatile unsigned int *)(a)) - -#define __arch_putb(v,a) (*(volatile unsigned char *)(a) = (v)) -#define __arch_putw(v,a) (*(volatile unsigned short *)(a) = (v)) -#define __arch_putl(v,a) (*(volatile unsigned int *)(a) = (v)) - -extern void __raw_writesb(unsigned int addr, const void *data, int bytelen); -extern void __raw_writesw(unsigned int addr, const void *data, int wordlen); -extern void __raw_writesl(unsigned int addr, const void *data, int longlen); - -extern void __raw_readsb(unsigned int addr, void *data, int bytelen); -extern void __raw_readsw(unsigned int addr, void *data, int wordlen); -extern void __raw_readsl(unsigned int addr, void *data, int longlen); - -#define __raw_writeb(v,a) __arch_putb(v,a) -#define __raw_writew(v,a) __arch_putw(v,a) -#define __raw_writel(v,a) __arch_putl(v,a) - -#define __raw_readb(a) __arch_getb(a) -#define __raw_readw(a) __arch_getw(a) -#define __raw_readl(a) __arch_getl(a) - -#define writeb(v,a) __arch_putb(v,a) -#define writew(v,a) __arch_putw(v,a) -#define writel(v,a) __arch_putl(v,a) - -#define readb(a) __arch_getb(a) -#define readw(a) __arch_getw(a) -#define readl(a) __arch_getl(a) - -/* - * The compiler seems to be incapable of optimising constants - * properly. Spell it out to the compiler in some cases. - * These are only valid for small values of "off" (< 1<<12) - */ -#define __raw_base_writeb(val,base,off) __arch_base_putb(val,base,off) -#define __raw_base_writew(val,base,off) __arch_base_putw(val,base,off) -#define __raw_base_writel(val,base,off) __arch_base_putl(val,base,off) - -#define __raw_base_readb(base,off) __arch_base_getb(base,off) -#define __raw_base_readw(base,off) __arch_base_getw(base,off) -#define __raw_base_readl(base,off) __arch_base_getl(base,off) - -/* - * Now, pick up the machine-defined IO definitions - */ - -/* - * IO port access primitives - * ------------------------- - * - * The M68k doesn't have special IO access instructions; all IO is memory - * mapped. Note that these are defined to perform little endian accesses - * only. Their primary purpose is to access PCI and ISA peripherals. - * - * Note that for a big endian machine, this implies that the following - * big endian mode connectivity is in place, as described by numerious - * ARM documents: - * - * PCI: D0-D7 D8-D15 D16-D23 D24-D31 - * ARM: D24-D31 D16-D23 D8-D15 D0-D7 - * - * The machine specific io.h include defines __io to translate an "IO" - * address to a memory address. - * - * Note that we prevent GCC re-ordering or caching values in expressions - * by introducing sequence points into the in*() definitions. Note that - * __raw_* do not guarantee this behaviour. - * - * The {in,out}[bwl] macros are for emulating x86-style PCI/ISA IO space. - */ -#ifdef __io -#define outb(v,p) __raw_writeb(v,__io(p)) -#define outw(v,p) __raw_writew(cpu_to_le16(v),__io(p)) -#define outl(v,p) __raw_writel(cpu_to_le32(v),__io(p)) - -#define inb(p) ({ unsigned int __v = __raw_readb(__io(p)); __v; }) -#define inw(p) ({ unsigned int __v = le16_to_cpu(__raw_readw(__io(p))); __v; }) -#define inl(p) ({ unsigned int __v = le32_to_cpu(__raw_readl(__io(p))); __v; }) - -#define outsb(p,d,l) __raw_writesb(__io(p),d,l) -#define outsw(p,d,l) __raw_writesw(__io(p),d,l) -#define outsl(p,d,l) __raw_writesl(__io(p),d,l) - -#define insb(p,d,l) __raw_readsb(__io(p),d,l) -#define insw(p,d,l) __raw_readsw(__io(p),d,l) -#define insl(p,d,l) __raw_readsl(__io(p),d,l) -#endif - -#define outb_p(val,port) outb((val),(port)) -#define outw_p(val,port) outw((val),(port)) -#define outl_p(val,port) outl((val),(port)) -#define inb_p(port) inb((port)) -#define inw_p(port) inw((port)) -#define inl_p(port) inl((port)) - -#define outsb_p(port,from,len) outsb(port,from,len) -#define outsw_p(port,from,len) outsw(port,from,len) -#define outsl_p(port,from,len) outsl(port,from,len) -#define insb_p(port,to,len) insb(port,to,len) -#define insw_p(port,to,len) insw(port,to,len) -#define insl_p(port,to,len) insl(port,to,len) - -/* - * ioremap and friends. - * - * ioremap takes a PCI memory address, as specified in - * linux/Documentation/IO-mapping.txt. If you want a - * physical address, use __ioremap instead. - */ -extern void * __ioremap(unsigned long offset, size_t size, unsigned long flags); -extern void __iounmap(void *addr); - -/* - * Generic ioremap support. - * - * Define: - * iomem_valid_addr(off,size) - * iomem_to_phys(off) - */ -#ifdef iomem_valid_addr -#define __arch_ioremap(off,sz,nocache) \ - ({ \ - unsigned long _off = (off), _size = (sz); \ - void *_ret = (void *)0; \ - if (iomem_valid_addr(_off, _size)) \ - _ret = __ioremap(iomem_to_phys(_off),_size,0); \ - _ret; \ - }) - -#define __arch_iounmap __iounmap -#endif - -#define ioremap(off,sz) __arch_ioremap((off),(sz),0) -#define ioremap_nocache(off,sz) __arch_ioremap((off),(sz),1) -#define iounmap(_addr) __arch_iounmap(_addr) - -/* - * DMA-consistent mapping functions. These allocate/free a region of - * uncached, unwrite-buffered mapped memory space for use with DMA - * devices. This is the "generic" version. The PCI specific version - * is in pci.h - */ -extern void *consistent_alloc(int gfp, size_t size, dma_addr_t *handle); -extern void consistent_free(void *vaddr, size_t size, dma_addr_t handle); -extern void consistent_sync(void *vaddr, size_t size, int rw); - -/* - * String version of IO memory access ops: - */ -extern void _memcpy_fromio(void *, unsigned long, size_t); -extern void _memcpy_toio(unsigned long, const void *, size_t); -extern void _memset_io(unsigned long, int, size_t); - -extern void __readwrite_bug(const char *fn); - -/* - * If this architecture has PCI memory IO, then define the read/write - * macros. These should only be used with the cookie passed from - * ioremap. - */ -#ifdef __mem_pci - -#define readb(c) ({ unsigned int __v = __raw_readb(__mem_pci(c)); __v; }) -#define readw(c) ({ unsigned int __v = le16_to_cpu(__raw_readw(__mem_pci(c))); __v; }) -#define readl(c) ({ unsigned int __v = le32_to_cpu(__raw_readl(__mem_pci(c))); __v; }) - -#define writeb(v,c) __raw_writeb(v,__mem_pci(c)) -#define writew(v,c) __raw_writew(cpu_to_le16(v),__mem_pci(c)) -#define writel(v,c) __raw_writel(cpu_to_le32(v),__mem_pci(c)) - -#define memset_io(c,v,l) _memset_io(__mem_pci(c),(v),(l)) -#define memcpy_fromio(a,c,l) _memcpy_fromio((a),__mem_pci(c),(l)) -#define memcpy_toio(c,a,l) _memcpy_toio(__mem_pci(c),(a),(l)) - -#define eth_io_copy_and_sum(s,c,l,b) \ - eth_copy_and_sum((s),__mem_pci(c),(l),(b)) - -static inline int -check_signature(unsigned long io_addr, const unsigned char *signature, - int length) -{ - int retval = 0; - do { - if (readb(io_addr) != *signature) - goto out; - io_addr++; - signature++; - length--; - } while (length); - retval = 1; -out: - return retval; -} - -#elif !defined(readb) - -#define readb(addr) (__readwrite_bug("readb"),0) -#define readw(addr) (__readwrite_bug("readw"),0) -#define readl(addr) (__readwrite_bug("readl"),0) -#define writeb(v,addr) __readwrite_bug("writeb") -#define writew(v,addr) __readwrite_bug("writew") -#define writel(v,addr) __readwrite_bug("writel") - -#define eth_io_copy_and_sum(a,b,c,d) __readwrite_bug("eth_io_copy_and_sum") - -#define check_signature(io,sig,len) (0) - -#endif /* __mem_pci */ - -/* - * If this architecture has ISA IO, then define the isa_read/isa_write - * macros. - */ -#ifdef __mem_isa - -#define isa_readb(addr) __raw_readb(__mem_isa(addr)) -#define isa_readw(addr) __raw_readw(__mem_isa(addr)) -#define isa_readl(addr) __raw_readl(__mem_isa(addr)) -#define isa_writeb(val,addr) __raw_writeb(val,__mem_isa(addr)) -#define isa_writew(val,addr) __raw_writew(val,__mem_isa(addr)) -#define isa_writel(val,addr) __raw_writel(val,__mem_isa(addr)) -#define isa_memset_io(a,b,c) _memset_io(__mem_isa(a),(b),(c)) -#define isa_memcpy_fromio(a,b,c) _memcpy_fromio((a),__mem_isa(b),(c)) -#define isa_memcpy_toio(a,b,c) _memcpy_toio(__mem_isa((a)),(b),(c)) - -#define isa_eth_io_copy_and_sum(a,b,c,d) \ - eth_copy_and_sum((a),__mem_isa(b),(c),(d)) - -static inline int -isa_check_signature(unsigned long io_addr, const unsigned char *signature, - int length) -{ - int retval = 0; - do { - if (isa_readb(io_addr) != *signature) - goto out; - io_addr++; - signature++; - length--; - } while (length); - retval = 1; -out: - return retval; -} - -#else /* __mem_isa */ - -#define isa_readb(addr) (__readwrite_bug("isa_readb"),0) -#define isa_readw(addr) (__readwrite_bug("isa_readw"),0) -#define isa_readl(addr) (__readwrite_bug("isa_readl"),0) -#define isa_writeb(val,addr) __readwrite_bug("isa_writeb") -#define isa_writew(val,addr) __readwrite_bug("isa_writew") -#define isa_writel(val,addr) __readwrite_bug("isa_writel") -#define isa_memset_io(a,b,c) __readwrite_bug("isa_memset_io") -#define isa_memcpy_fromio(a,b,c) __readwrite_bug("isa_memcpy_fromio") -#define isa_memcpy_toio(a,b,c) __readwrite_bug("isa_memcpy_toio") - -#define isa_eth_io_copy_and_sum(a,b,c,d) \ - __readwrite_bug("isa_eth_io_copy_and_sum") - -#define isa_check_signature(io,sig,len) (0) - -#endif /* __mem_isa */ -#endif /* __KERNEL__ */ -#endif /* __ASM_M68K_IO_H */ diff --git a/arch/m68k/include/asm/mach-types.h b/arch/m68k/include/asm/mach-types.h deleted file mode 100644 index d221fcc89..000000000 --- a/arch/m68k/include/asm/mach-types.h +++ /dev/null @@ -1,48 +0,0 @@ -/* - * This was automagically generated from arch/m68k/tools/mach-types! - * Do NOT edit - */ - -#ifndef __ASM_M68K_MACH_TYPE_H -#define __ASM_M68K_MACH_TYPE_H - -#ifndef __ASSEMBLY__ -/* The type of machine we're running on */ -extern unsigned int __machine_arch_type; -#endif - -/* see arch/m68k/kernel/arch.c for a description of these */ -#define MACH_TYPE_GENERIC 0 -#define MACH_TYPE_MCF54xx 1 -#define MACH_TYPE_MCF5445x 2 - -#ifdef CONFIG_ARCH_MCF54xx -# ifdef machine_arch_type -# undef machine_arch_type -# define machine_arch_type __machine_arch_type -# else -# define machine_arch_type MACH_TYPE_MCF54xx -# endif -# define machine_is_mcf54xx() (machine_arch_type == MACH_TYPE_MCF54xx) -#else -# define machine_is_mcf54xx() (0) -#endif - -#ifdef CONFIG_ARCH_MCF5445x -# ifdef machine_arch_type -# undef machine_arch_type -# define machine_arch_type __machine_arch_type -# else -# define machine_arch_type MACH_TYPE_MCF5445x -# endif -# define machine_is_mcf5445x() (machine_arch_type == MACH_TYPE_MCF5445x) -#else -# define machine_is_mcf5445x() (0) -#endif - - -#ifndef machine_arch_type -#define machine_arch_type __machine_arch_type -#endif - -#endif diff --git a/arch/m68k/include/asm/memory.h b/arch/m68k/include/asm/memory.h deleted file mode 100644 index 006ea3c68..000000000 --- a/arch/m68k/include/asm/memory.h +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Copyright (c) 2008 Carsten Schlote - * See file CREDITS for list of people who contributed to this project. - * - * This file is part of barebox. - * - * barebox is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * barebox is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with barebox. If not, see . - */ - -/** @file - * Note: this file should not be included by non-asm/.h files - */ -#ifndef __ASM_M68K_MEMORY_H -#define __ASM_M68K_MEMORY_H - - -#endif /* __ASM_M68K_MEMORY_H */ diff --git a/arch/m68k/include/asm/module.h b/arch/m68k/include/asm/module.h deleted file mode 100644 index f04d79457..000000000 --- a/arch/m68k/include/asm/module.h +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright (c) 2008 Carsten Schlote - * See file CREDITS for list of people who contributed to this project. - * - * This file is part of barebox. - * - * barebox is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * barebox is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with barebox. If not, see . - */ - -/** @file - * Defines for the ELF module loader - */ -#ifndef _ASM_M68K_MODULE_H -#define _ASM_M68K_MODULE_H - -struct mod_arch_specific -{ - int foo; -}; - -#define Elf_Shdr Elf32_Shdr -#define Elf_Sym Elf32_Sym -#define Elf_Ehdr Elf32_Ehdr - -#endif /* _ASM_M68K_MODULE_H */ diff --git a/arch/m68k/include/asm/posix_types.h b/arch/m68k/include/asm/posix_types.h deleted file mode 100644 index d83afe94a..000000000 --- a/arch/m68k/include/asm/posix_types.h +++ /dev/null @@ -1,86 +0,0 @@ -/* - * Copyright (c) 2008 Carsten Schlote - * See file CREDITS for list of people who contributed to this project. - * - * This file is part of barebox. - * - * barebox is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * barebox is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with barebox. If not, see . - */ - -/** @file - * This file is generally used by user-level software, so you need to - * be a little careful about namespace pollution etc. Also, we cannot - * assume GCC is being used. - */ -#ifndef __ARCH_M68K_POSIX_TYPES_H -#define __ARCH_M68K_POSIX_TYPES_H - - -typedef unsigned long __kernel_ino_t; -typedef unsigned short __kernel_mode_t; -typedef unsigned short __kernel_nlink_t; -typedef long __kernel_off_t; -typedef int __kernel_pid_t; -typedef unsigned short __kernel_ipc_pid_t; -typedef unsigned short __kernel_uid_t; -typedef unsigned short __kernel_gid_t; -typedef unsigned int __kernel_size_t; -typedef int __kernel_ssize_t; -typedef int __kernel_ptrdiff_t; -typedef long __kernel_time_t; -typedef long __kernel_suseconds_t; -typedef long __kernel_clock_t; -typedef int __kernel_daddr_t; -typedef char * __kernel_caddr_t; -typedef unsigned short __kernel_uid16_t; -typedef unsigned short __kernel_gid16_t; -typedef unsigned int __kernel_uid32_t; -typedef unsigned int __kernel_gid32_t; - -typedef unsigned short __kernel_old_uid_t; -typedef unsigned short __kernel_old_gid_t; - -#ifdef __GNUC__ -typedef long long __kernel_loff_t; -#endif - -typedef struct { -#if defined(__KERNEL__) || defined(__USE_ALL) - int val[2]; -#else /* !defined(__KERNEL__) && !defined(__USE_ALL) */ - int __val[2]; -#endif /* !defined(__KERNEL__) && !defined(__USE_ALL) */ -} __kernel_fsid_t; - -#if defined(__KERNEL__) || !defined(__GLIBC__) || (__GLIBC__ < 2) - -#undef __FD_SET -#define __FD_SET(fd, fdsetp) \ - (((fd_set *)fdsetp)->fds_bits[fd >> 5] |= (1<<(fd & 31))) - -#undef __FD_CLR -#define __FD_CLR(fd, fdsetp) \ - (((fd_set *)fdsetp)->fds_bits[fd >> 5] &= ~(1<<(fd & 31))) - -#undef __FD_ISSET -#define __FD_ISSET(fd, fdsetp) \ - ((((fd_set *)fdsetp)->fds_bits[fd >> 5] & (1<<(fd & 31))) != 0) - -#undef __FD_ZERO -#define __FD_ZERO(fdsetp) \ - (memset (fdsetp, 0, sizeof (*(fd_set *)fdsetp))) - -#endif - -#endif diff --git a/arch/m68k/include/asm/processor.h b/arch/m68k/include/asm/processor.h deleted file mode 100644 index b0f82d084..000000000 --- a/arch/m68k/include/asm/processor.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright (c) 2008 Carsten Schlote - * See file CREDITS for list of people who contributed to this project. - * - * This file is part of barebox. - * - * barebox is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * barebox is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with barebox. If not, see . - */ - -/** @file - * General processor specific definitions - */ -#ifndef __ASM_M68K_PROCESSOR_H -#define __ASM_M68K_PROCESSOR_H - -/* - * Default implementation of macro that returns current - * instruction pointer ("program counter"). - */ -#define current_text_addr() ({ __label__ _l; _l: &&_l;}) - -static inline unsigned long rdusp(void) -{ - unsigned long usp; - - __asm__ __volatile__("movel %/usp,%0" : "=a" (usp)); - return usp; -} - -static inline void wrusp(unsigned long usp) -{ - __asm__ __volatile__("movel %0,%/usp" : : "a" (usp)); -} - -#endif /* __ASM_M68K_PROCESSOR_H */ diff --git a/arch/m68k/include/asm/ptrace.h b/arch/m68k/include/asm/ptrace.h deleted file mode 100644 index 8f3d39aea..000000000 --- a/arch/m68k/include/asm/ptrace.h +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright (c) 2008 Carsten Schlote - * See file CREDITS for list of people who contributed to this project. - * - * This file is part of barebox. - * - * barebox is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * barebox is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with barebox. If not, see . - */ - -/** @file - * Remains of the pthread stuff... - * @todo Rework these headers.... - */ -#ifndef __ASM_M68K_PTRACE_H -#define __ASM_M68K_PTRACE_H - -#define PTRACE_GETREGS 12 -#define PTRACE_SETREGS 13 -#define PTRACE_GETFPREGS 14 -#define PTRACE_SETFPREGS 15 - -#define PTRACE_SETOPTIONS 21 - - -#include - -#ifndef __ASSEMBLY__ - -#ifndef PS_S -#define PS_S (0x2000) -#define PS_M (0x1000) -#endif - -//#define user_mode(regs) (!((regs)->sr & PS_S)) -#define instruction_pointer(regs) ((regs)->M68K_pc) -#define profile_pc(regs) instruction_pointer(regs) - -#ifdef __KERNEL__ -extern void show_regs(struct pt_regs *); -#endif - -#endif /* __ASSEMBLY__ */ - -#endif diff --git a/arch/m68k/include/asm/setup.h b/arch/m68k/include/asm/setup.h deleted file mode 100644 index ee0bde8b7..000000000 --- a/arch/m68k/include/asm/setup.h +++ /dev/null @@ -1,412 +0,0 @@ -/* - * Copyright (c) 2008 Carsten Schlote - * See file CREDITS for list of people who contributed to this project. - * - * This file is part of barebox. - * - * barebox is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * barebox is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with barebox. If not, see . - */ - -/** @file - * Arch dependant barebox defines about linux mach types - */ -#ifndef _M68K_SETUP_H -#define _M68K_SETUP_H - -#include - - -/* - * Linux/m68k Architectures - */ - -#define MACH_AMIGA 1 -#define MACH_ATARI 2 -#define MACH_MAC 3 -#define MACH_APOLLO 4 -#define MACH_SUN3 5 -#define MACH_MVME147 6 -#define MACH_MVME16x 7 -#define MACH_BVME6000 8 -#define MACH_HP300 9 -#define MACH_Q40 10 -#define MACH_SUN3X 11 - /* ColdFire boards */ -#define MACH_FIRE_ENGINE 12 - -#ifdef __KERNEL__ - -#ifndef __ASSEMBLY__ -extern unsigned long m68k_machtype; -#endif /* !__ASSEMBLY__ */ - -#if !defined(CONFIG_AMIGA) -# define MACH_IS_AMIGA (0) -#elif defined(CONFIG_ATARI) || defined(CONFIG_MAC) || defined(CONFIG_APOLLO) \ - || defined(CONFIG_MVME16x) || defined(CONFIG_BVME6000) \ - || defined(CONFIG_HP300) || defined(CONFIG_Q40) \ - || defined(CONFIG_SUN3X) || defined(CONFIG_MVME147) -# define MACH_IS_AMIGA (m68k_machtype == MACH_AMIGA) -#else -# define MACH_AMIGA_ONLY -# define MACH_IS_AMIGA (1) -# define MACH_TYPE (MACH_AMIGA) -#endif - -#if !defined(CONFIG_ATARI) -# define MACH_IS_ATARI (0) -#elif defined(CONFIG_AMIGA) || defined(CONFIG_MAC) || defined(CONFIG_APOLLO) \ - || defined(CONFIG_MVME16x) || defined(CONFIG_BVME6000) \ - || defined(CONFIG_HP300) || defined(CONFIG_Q40) \ - || defined(CONFIG_SUN3X) || defined(CONFIG_MVME147) -# define MACH_IS_ATARI (m68k_machtype == MACH_ATARI) -#else -# define MACH_ATARI_ONLY -# define MACH_IS_ATARI (1) -# define MACH_TYPE (MACH_ATARI) -#endif - -#if !defined(CONFIG_MAC) -# define MACH_IS_MAC (0) -#elif defined(CONFIG_AMIGA) || defined(CONFIG_ATARI) || defined(CONFIG_APOLLO) \ - || defined(CONFIG_MVME16x) || defined(CONFIG_BVME6000) \ - || defined(CONFIG_HP300) || defined(CONFIG_Q40) \ - || defined(CONFIG_SUN3X) || defined(CONFIG_MVME147) -# define MACH_IS_MAC (m68k_machtype == MACH_MAC) -#else -# define MACH_MAC_ONLY -# define MACH_IS_MAC (1) -# define MACH_TYPE (MACH_MAC) -#endif - -#if defined(CONFIG_SUN3) -#define MACH_IS_SUN3 (1) -#define MACH_SUN3_ONLY (1) -#define MACH_TYPE (MACH_SUN3) -#else -#define MACH_IS_SUN3 (0) -#endif - -#if !defined (CONFIG_APOLLO) -# define MACH_IS_APOLLO (0) -#elif defined(CONFIG_AMIGA) || defined(CONFIG_MAC) || defined(CONFIG_ATARI) \ - || defined(CONFIG_MVME16x) || defined(CONFIG_BVME6000) \ - || defined(CONFIG_HP300) || defined(CONFIG_Q40) \ - || defined(CONFIG_SUN3X) || defined(CONFIG_MVME147) -# define MACH_IS_APOLLO (m68k_machtype == MACH_APOLLO) -#else -# define MACH_APOLLO_ONLY -# define MACH_IS_APOLLO (1) -# define MACH_TYPE (MACH_APOLLO) -#endif - -#if !defined (CONFIG_MVME147) -# define MACH_IS_MVME147 (0) -#elif defined(CONFIG_AMIGA) || defined(CONFIG_MAC) || defined(CONFIG_ATARI) \ - || defined(CONFIG_APOLLO) || defined(CONFIG_BVME6000) \ - || defined(CONFIG_HP300) || defined(CONFIG_Q40) \ - || defined(CONFIG_SUN3X) || defined(CONFIG_MVME16x) -# define MACH_IS_MVME147 (m68k_machtype == MACH_MVME147) -#else -# define MACH_MVME147_ONLY -# define MACH_IS_MVME147 (1) -# define MACH_TYPE (MACH_MVME147) -#endif - -#if !defined (CONFIG_MVME16x) -# define MACH_IS_MVME16x (0) -#elif defined(CONFIG_AMIGA) || defined(CONFIG_MAC) || defined(CONFIG_ATARI) \ - || defined(CONFIG_APOLLO) || defined(CONFIG_BVME6000) \ - || defined(CONFIG_HP300) || defined(CONFIG_Q40) \ - || defined(CONFIG_SUN3X) || defined(CONFIG_MVME147) -# define MACH_IS_MVME16x (m68k_machtype == MACH_MVME16x) -#else -# define MACH_MVME16x_ONLY -# define MACH_IS_MVME16x (1) -# define MACH_TYPE (MACH_MVME16x) -#endif - -#if !defined (CONFIG_BVME6000) -# define MACH_IS_BVME6000 (0) -#elif defined(CONFIG_AMIGA) || defined(CONFIG_MAC) || defined(CONFIG_ATARI) \ - || defined(CONFIG_APOLLO) || defined(CONFIG_MVME16x) \ - || defined(CONFIG_HP300) || defined(CONFIG_Q40) \ - || defined(CONFIG_SUN3X) || defined(CONFIG_MVME147) -# define MACH_IS_BVME6000 (m68k_machtype == MACH_BVME6000) -#else -# define MACH_BVME6000_ONLY -# define MACH_IS_BVME6000 (1) -# define MACH_TYPE (MACH_BVME6000) -#endif - -#if !defined (CONFIG_HP300) -# define MACH_IS_HP300 (0) -#elif defined(CONFIG_AMIGA) || defined(CONFIG_MAC) || defined(CONFIG_ATARI) \ - || defined(CONFIG_APOLLO) || defined(CONFIG_MVME16x) \ - || defined(CONFIG_BVME6000) || defined(CONFIG_Q40) \ - || defined(CONFIG_SUN3X) || defined(CONFIG_MVME147) -# define MACH_IS_HP300 (m68k_machtype == MACH_HP300) -#else -# define MACH_HP300_ONLY -# define MACH_IS_HP300 (1) -# define MACH_TYPE (MACH_HP300) -#endif - -#if !defined (CONFIG_Q40) -# define MACH_IS_Q40 (0) -#elif defined(CONFIG_AMIGA) || defined(CONFIG_MAC) || defined(CONFIG_ATARI) \ - || defined(CONFIG_APOLLO) || defined(CONFIG_MVME16x) \ - || defined(CONFIG_BVME6000) || defined(CONFIG_HP300) \ - || defined(CONFIG_SUN3X) || defined(CONFIG_MVME147) -# define MACH_IS_Q40 (m68k_machtype == MACH_Q40) -#else -# define MACH_Q40_ONLY -# define MACH_IS_Q40 (1) -# define MACH_TYPE (MACH_Q40) -#endif - -#if !defined (CONFIG_SUN3X) -# define MACH_IS_SUN3X (0) -#elif defined(CONFIG_AMIGA) || defined(CONFIG_MAC) || defined(CONFIG_ATARI) \ - || defined(CONFIG_APOLLO) || defined(CONFIG_MVME16x) \ - || defined(CONFIG_BVME6000) || defined(CONFIG_HP300) \ - || defined(CONFIG_Q40) || defined(CONFIG_MVME147) -# define MACH_IS_SUN3X (m68k_machtype == MACH_SUN3X) -#else -# define CONFIG_SUN3X_ONLY -# define MACH_IS_SUN3X (1) -# define MACH_TYPE (MACH_SUN3X) -#endif - -/* - * We only support one ColdFire board for the moment, so we don't do the - * kind of complicated configuration this file does for the other 68k CPUs. --NL - */ -#if !defined (CONFIG_COLDFIRE) -# define MACH_IS_COLDFIRE (0) -#else -# define CONFIG_COLDFIRE_ONLY -# define MACH_IS_COLDFIRE (1) -# define MACH_TYPE (MACH_COLDFIRE) -#endif - -#ifndef MACH_TYPE -# define MACH_TYPE (m68k_machtype) -#endif - -#endif /* __KERNEL__ */ - - - /* - * CPU, FPU and MMU types - * - * Note: we may rely on the following equalities: - * - * CPU_68020 == MMU_68851 - * CPU_68030 == MMU_68030 - * CPU_68040 == FPU_68040 == MMU_68040 - * CPU_68060 == FPU_68060 == MMU_68060 - */ - -#define CPUB_68020 0 -#define CPUB_68030 1 -#define CPUB_68040 2 -#define CPUB_68060 3 -#define CPUB_CFV4E 4 - -#define CPU_68020 (1< - * See file CREDITS for list of people who contributed to this project. - * - * This file is part of barebox. - * - * barebox is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * barebox is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with barebox. If not, see . - */ - -/** @file - * Arch dependant configuration of std libc string and memory functions. - */ -#ifndef __ASM_M68K_STRING_H -#define __ASM_M68K_STRING_H - -/* - * We don't do inline string functions, since the - * optimised inline asm versions are not small. - */ - -#endif diff --git a/arch/m68k/include/asm/types.h b/arch/m68k/include/asm/types.h deleted file mode 100644 index 90e8bd7f7..000000000 --- a/arch/m68k/include/asm/types.h +++ /dev/null @@ -1,82 +0,0 @@ -/* - * Copyright (c) 2008 Carsten Schlote - * See file CREDITS for list of people who contributed to this project. - * - * This file is part of barebox. - * - * barebox is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * barebox is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with barebox. If not, see . - */ - -/** @file - * Arch dependant types definitions - */ -#ifndef __ASM_M68K_TYPES_H -#define __ASM_M68K_TYPES_H - -#ifndef __ASSEMBLY__ - -typedef unsigned short umode_t; - -/* - * __xx is ok: it doesn't pollute the POSIX namespace. Use these in the - * header files exported to user space - */ - -typedef __signed__ char __s8; -typedef unsigned char __u8; - -typedef __signed__ short __s16; -typedef unsigned short __u16; - -typedef __signed__ int __s32; -typedef unsigned int __u32; - -#if defined(__GNUC__) && !defined(__STRICT_ANSI__) -typedef __signed__ long long __s64; -typedef unsigned long long __u64; -#endif - -#endif /* __ASSEMBLY__ */ - -/* - * These aren't exported outside the kernel to avoid name space clashes - */ -#ifdef __KERNEL__ - -#define BITS_PER_LONG 32 - -#ifndef __ASSEMBLY__ - -typedef signed char s8; -typedef unsigned char u8; - -typedef signed short s16; -typedef unsigned short u16; - -typedef signed int s32; -typedef unsigned int u32; - -typedef signed long long s64; -typedef unsigned long long u64; - -/* Dma addresses are 32-bits wide. */ - -typedef u32 dma_addr_t; -typedef u32 dma64_addr_t; - -#endif /* __ASSEMBLY__ */ - -#endif /* __KERNEL__ */ - -#endif diff --git a/arch/m68k/lib/Makefile b/arch/m68k/lib/Makefile deleted file mode 100644 index 09cfb2984..000000000 --- a/arch/m68k/lib/Makefile +++ /dev/null @@ -1,31 +0,0 @@ -# -# (C) Copyright 2007 Carsten Schlote -# See file CREDITS for list of people who contributed to this project. -# -# This file is part of barebox. -# -# barebox is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# barebox is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with barebox. If not, see . -# - -# -# Architecture dependant stubs and callbacks -# - -obj-y += m68k-meminit.o - -obj-$(CONFIG_CMD_BOOTM) += m68k-linuxboot.o - -obj-$(CONFIG_MODULES) += m68k-module.o - -extra-$(CONFIG_GENERIC_LINKER_SCRIPT) += barebox.lds diff --git a/arch/m68k/lib/barebox.lds.S b/arch/m68k/lib/barebox.lds.S deleted file mode 100644 index fb6673dee..000000000 --- a/arch/m68k/lib/barebox.lds.S +++ /dev/null @@ -1,92 +0,0 @@ -/* - * Copyright (c) 2008 Carsten Schlote - * See file CREDITS for list of people who contributed to this project. - * - * This file is part of barebox. - * - * barebox is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * barebox is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with barebox. If not, see . - */ - -/** @file - * Generic Linker file for M68k targets - */ -#include - -OUTPUT_FORMAT("elf32-m68k", "elf32-m68k", - "elf32-m68k") -OUTPUT_ARCH(m68k) -ENTRY(_start) -SECTIONS -{ - . = TEXT_BASE; - . = ALIGN(4); - - /* Start of vector, text and rodata section */ - _stext = .; - _text = .; - - /* M68k/CF style vector table */ - .vectors : - { - *(.vectors) - } - - .text : - { - *(.text .stub .text.*) - } =0x4e754e75 - - . = ALIGN(4); - .rodata : - { - *(.rodata .rodata.*) - } =0xdeadbeef - - . = ALIGN(4); - __barebox_cmd_start = .; - .barebox_cmd : { BAREBOX_CMDS } - __barebox_cmd_end = .; - - __barebox_initcalls_start = .; - .barebox_initcalls : { INITCALLS } - __barebox_initcalls_end = .; - - __usymtab_start = .; - __usymtab : { BAREBOX_SYMS } - __usymtab_end = .; - - /* End of text and rodata section */ - . = ALIGN(4); - _etext = .; - - . = ALIGN(4); - .got : { *(.got) } - . = ALIGN(4); - - . = ALIGN(4); - __early_init_data_begin = .; - .early_init_data : { *(.early_init_data) } - __early_init_data_end = .; - - .data : { *(.data .data.*) } - - . = ALIGN(4); - __bss_start = .; - .bss (NOLOAD) : { *(.bss .bass.*) } - __bss_end =.; - _end = .; - - . = ALIGN(4); - _barebox_heap_start = .; -} diff --git a/arch/m68k/lib/m68k-linuxboot.c b/arch/m68k/lib/m68k-linuxboot.c deleted file mode 100644 index 144d5a30b..000000000 --- a/arch/m68k/lib/m68k-linuxboot.c +++ /dev/null @@ -1,177 +0,0 @@ -/* - * Copyright (c) 2008 Carsten Schlote - * See file CREDITS for list of people who contributed to this project. - * - * This file is part of barebox. - * - * barebox is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * barebox is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with barebox. If not, see . - */ - -/** @file - * @brief Linux boot preparation code. - * - * This file is responsible to start a linux kernel on - * Coldfire targets. - * - * @note Only Colilo mode supported yet. - */ -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include - - -static int m68k_architecture = MACH_TYPE_GENERIC; - - -/* - * Setup M68k/Coldfire bootrecord info - */ -#if defined (CONFIG_SETUP_MEMORY_TAGS) || \ - defined (CONFIG_CMDLINE_TAG) || \ - defined (CONFIG_INITRD_TAG) - - -static void setup_boot_record(char* start_boot_rec, const char* command_line) -{ - struct bi_record* record; - - *start_boot_rec++ = 'C'; - *start_boot_rec++ = 'o'; - *start_boot_rec++ = 'L'; - *start_boot_rec++ = 'i'; - *start_boot_rec++ = 'L'; - *start_boot_rec++ = 'o'; - - record = (struct bi_record*) start_boot_rec; - - /* specify memory layout */ -#ifdef CONFIG_SETUP_MEMORY_TAGS - record->tag = BI_MEMCHUNK; - record->data[0] = 0; - record->data[1] = 64 * 1024 * 1024; // TODO: to be changed for different boards - record->size = sizeof (record->tag) + sizeof (record->size) - + sizeof (record->data[0]) + sizeof (record->data[0]); - record = (struct bi_record *) ((void *) record + record->size); -#endif - - /* add a kernel command line */ -#ifdef CONFIG_CMDLINE_TAG - record->tag = BI_COMMAND_LINE; - strcpy ((char *) &record->data, command_line); - record->size = sizeof (record->tag) + sizeof (record->size) - + max (sizeof (record->data[0]), strlen (command_line)+1); - record = (struct bi_record *) ((void *) record + record->size); -#endif - - /* Add reference to initrd */ -#ifdef CONFIG_INITRD_TAG -#endif - - /* Mark end of tags */ - record->tag = 0; - record->data[0] = 0; - record->data[1] = 0; - record->size = sizeof(record->tag) + sizeof (record->size) - + sizeof (record->data[0]) + sizeof (record->data[0]); -} - -#else -#define setup_boot_record(start_boot_rec,command_line) while (0) { } - -#endif /* CONFIG_SETUP_MEMORY_TAGS || CONFIG_CMDLINE_TAG || CONFIG_INITRD_TAG */ - - -static int do_bootm_linux(struct image_data *data) -{ - image_header_t *os_header = &data->os->header; - void (*theKernel)(int zero, int arch, uint params); - const char *commandline = getenv ("bootargs"); - uint32_t loadaddr,loadsize; - - if (image_get_type(os_header) == IH_TYPE_MULTI) { - printf("Multifile images not handled at the moment\n"); - return -1; - } - - printf("commandline: %s\n", commandline); - - theKernel = (void (*)(int,int,uint))image_get_ep(os_header); - - debug ("## Transferring control to Linux (at address %08lx) ...\n", - (ulong) theKernel); - - loadaddr = (uint32_t)image_get_load(os_header); - loadsize = (uint32_t)image_get_size(os_header); - setup_boot_record( (char*)(loadaddr+loadsize),(char*)commandline); - - if (relocate_image(data->os, (void *)loadaddr)) - return -1; - - /* we assume that the kernel is in place */ - printf ("\nStarting kernel image at 0x%08x size 0x%08x eentry 0x%08x\n\n", - loadaddr, loadsize, (ulong) theKernel); - - /* Bring board into inactive post-reset state again */ - cleanup_before_linux (); - - /* Jump to kernel entry point */ - theKernel (0, m68k_architecture, 0xdeadbeaf); - - enable_interrupts(); - printf("Error: Loaded kernel returned. Probably it couldn't\n" - "find it's bootrecord.\n"); - return -1; -} - -/* - * Register handler for m68k Kernel Images - */ -static int image_handle_cmdline_parse(struct image_data *data, int opt, char *optarg) -{ - switch (opt) - { - case 'a': - m68k_architecture = simple_strtoul(optarg, NULL, 0); - return 0; - default: - return 1; - } -} - -static struct image_handler handler = -{ - .cmdline_options = "a:", - .cmdline_parse = image_handle_cmdline_parse, - .help_string = " -a use architecture number ", - - .bootm = do_bootm_linux, - .image_type = IH_OS_LINUX, -}; - -static int m68klinux_register_image_handler(void) -{ - return register_image_handler(&handler); -} - -late_initcall(m68klinux_register_image_handler); diff --git a/arch/m68k/lib/m68k-meminit.c b/arch/m68k/lib/m68k-meminit.c deleted file mode 100644 index 664ef509c..000000000 --- a/arch/m68k/lib/m68k-meminit.c +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright (c) 2008 Carsten Schlote - * See file CREDITS for list of people who contributed to this project. - * - * This file is part of barebox. - * - * barebox is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * barebox is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with barebox. If not, see . - */ - -/** @file - * Init for memory allocator on m68k/Coldfire - */ -#include -#include -#include -#include -#include -#include - -/** Initialize mem allocator on M68k/Coldfire - */ -int m68k_mem_malloc_init(void) -{ - /* Pass start and end address of managed memory */ - - mem_malloc_init((void *)MALLOC_BASE, - (void *)(MALLOC_BASE + MALLOC_SIZE)); - - return 0; -} - -core_initcall(m68k_mem_malloc_init); diff --git a/arch/m68k/lib/m68k-module.c b/arch/m68k/lib/m68k-module.c deleted file mode 100644 index 6a4a2bc1c..000000000 --- a/arch/m68k/lib/m68k-module.c +++ /dev/null @@ -1,110 +0,0 @@ -/* - * Copyright (c) 2008 Carsten Schlote - * See file CREDITS for list of people who contributed to this project. - * - * This file is part of barebox. - * - * barebox is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * barebox is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with barebox. If not, see . - */ - -/** @file - * Moduleloader Subsystem - * - * These relocation stubs are taken from Linux 2.6.10 They are used by the - * higher level ELF loader code to place ELF files to arbitrary addresses. - */ -#include -#include -#include -#include - -int apply_relocate(Elf32_Shdr *sechdrs, - const char *strtab, - unsigned int symindex, - unsigned int relsec, - struct module *me) -{ - unsigned int i; - Elf32_Rel *rel = (void *)sechdrs[relsec].sh_addr; - Elf32_Sym *sym; - uint32_t *location; - - DEBUGP("Applying relocate section %u to %u\n", relsec, - sechdrs[relsec].sh_info); - for (i = 0; i < sechdrs[relsec].sh_size / sizeof(*rel); i++) { - /* This is where to make the change */ - location = (void *)sechdrs[sechdrs[relsec].sh_info].sh_addr - + rel[i].r_offset; - /* This is the symbol it is referring to. Note that all - undefined symbols have been resolved. */ - sym = (Elf32_Sym *)sechdrs[symindex].sh_addr - + ELF32_R_SYM(rel[i].r_info); - - switch (ELF32_R_TYPE(rel[i].r_info)) { - case R_68K_32: - /* We add the value into the location given */ - *location += sym->st_value; - break; - case R_68K_PC32: - /* Add the value, subtract its postition */ - *location += sym->st_value - (uint32_t)location; - break; - default: - printk(KERN_ERR "module %s: Unknown relocation: %u\n", - me->name, ELF32_R_TYPE(rel[i].r_info)); - return -ENOEXEC; - } - } - return 0; -} - -int apply_relocate_add(Elf32_Shdr *sechdrs, - const char *strtab, - unsigned int symindex, - unsigned int relsec, - struct module *me) -{ - unsigned int i; - Elf32_Rela *rel = (void *)sechdrs[relsec].sh_addr; - Elf32_Sym *sym; - uint32_t *location; - - DEBUGP("Applying relocate_add section %u to %u\n", relsec, - sechdrs[relsec].sh_info); - for (i = 0; i < sechdrs[relsec].sh_size / sizeof(*rel); i++) { - /* This is where to make the change */ - location = (void *)sechdrs[sechdrs[relsec].sh_info].sh_addr - + rel[i].r_offset; - /* This is the symbol it is referring to. Note that all - undefined symbols have been resolved. */ - sym = (Elf32_Sym *)sechdrs[symindex].sh_addr - + ELF32_R_SYM(rel[i].r_info); - - switch (ELF32_R_TYPE(rel[i].r_info)) { - case R_68K_32: - /* We add the value into the location given */ - *location = rel[i].r_addend + sym->st_value; - break; - case R_68K_PC32: - /* Add the value, subtract its postition */ - *location = rel[i].r_addend + sym->st_value - (uint32_t)location; - break; - default: - printk(KERN_ERR "module %s: Unknown relocation: %u\n", - me->name, ELF32_R_TYPE(rel[i].r_info)); - return -ENOEXEC; - } - } - return 0; -} diff --git a/arch/m68k/mach-mcfv4e.dox b/arch/m68k/mach-mcfv4e.dox deleted file mode 100644 index c6dc8f692..000000000 --- a/arch/m68k/mach-mcfv4e.dox +++ /dev/null @@ -1,39 +0,0 @@ -/* This document is intended to provide the developer with information - * how to integrate a new CPU (MACH) into this part of the barebox tree - */ - -/** @page dev_m68k_mach M68k/Coldfire based CPU (MACH) into the tree - -FIXME - fill in further info about Coldfire and so on. Check code - for compliance with the specs given below - move code otherwise. - -@par What's happens when the reset signal is gone - -@note Code running immediately after reset runs at an address it is not linked - to: "runtime address != link address". You should only use branches and - do not refer to fixed data. This implies the use of assembler code only. - -The M68k CPU starts at lable \ in one of the corresponding start-*.S -files. After some basic hardware setup it can call a function -\ if not disabled. This call is intended to give all -developers a chance to use a standard reset vector file, but also do some -special things required only on their specific CPU. - -After handling some MMU, Stack or similiar issues, \ can -be called (if not disabled). This is a board specific function for SDRAM setup -for example. As its board specific, your can do whatever you need to bring -your board up. As stack is already set to internal core RAM, this routine can -be C. - -@note: You are not allowed to call other code here, because we are not running - at link address. - -When \ returns it will be assumed that there is now -working RAM that can be used for all further steps. - -Next step is relocation of barebox itself. It gets copied to the end of -available RAM and the last assembly instruction is a jump to \. - -At this point of time: "runtime address == link address". - -*/ diff --git a/arch/m68k/mach-mcfv4e/Kconfig b/arch/m68k/mach-mcfv4e/Kconfig deleted file mode 100644 index aaba27e5e..000000000 --- a/arch/m68k/mach-mcfv4e/Kconfig +++ /dev/null @@ -1,18 +0,0 @@ - -menu "M68k/Coldfire V4E specific settings" - -config COPY_LOWMEM_VECTORS - bool "Copy vectors to SDRAM address 0" - default y - help - This copies the vector table to SDRAM address 0 (default address) - -config USE_LOWMEM_VECTORS - bool "Use vectors at SDRAM address 0" - default n - depends on COPY_LOWMEM_VECTORS - help - This copies the vector table to SDRAM address 0 (default address) and - also uses this vector location - -endmenu diff --git a/arch/m68k/mach-mcfv4e/Makefile b/arch/m68k/mach-mcfv4e/Makefile deleted file mode 100644 index f75834be5..000000000 --- a/arch/m68k/mach-mcfv4e/Makefile +++ /dev/null @@ -1,19 +0,0 @@ -# -# Generic code for Coldfire V4E targets (MCF547x/MCF548x) -# -obj-y += mcf_clocksource.o -obj-y += mcf_reset_cpu.o - -# -# FEC support -# -obj-y += multichannel_dma.o -obj-y += dma_utils.o -obj-y += fec.o -obj-y += fecbd.o - -# -# FreeScale MultiDMA Library -# -obj-y += mcdapi/ -obj-y += net/ diff --git a/arch/m68k/mach-mcfv4e/dma_utils.c b/arch/m68k/mach-mcfv4e/dma_utils.c deleted file mode 100644 index adeefea3b..000000000 --- a/arch/m68k/mach-mcfv4e/dma_utils.c +++ /dev/null @@ -1,502 +0,0 @@ -/* - * File: dma_utils.c - * Purpose: General purpose utilities for the multi-channel DMA - * - * Notes: The methodology used in these utilities assumes that - * no single initiator will be tied to more than one - * task/channel - */ - -#include -#include -#include -#include -#include - -#include - -/* - * This global keeps track of which initiators have been - * used of the available assignments. Initiators 0-15 are - * hardwired. Initiators 16-31 are multiplexed and controlled - * via the Initiatior Mux Control Registe (IMCR). The - * assigned requestor is stored with the associated initiator - * number. - */ -static int8_t used_reqs[32] = -{ - DMA_ALWAYS, DMA_DSPI_RX, DMA_DSPI_TX, DMA_DREQ0, - DMA_PSC0_RX, DMA_PSC0_TX, DMA_USBEP0, DMA_USBEP1, - DMA_USBEP2, DMA_USBEP3, DMA_PCI_TX, DMA_PCI_RX, - DMA_PSC1_RX, DMA_PSC1_TX, DMA_I2C_RX, DMA_I2C_TX, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0 -}; - -/* - * This global keeps track of which channels have been assigned - * to tasks. This methology assumes that no single initiator - * will be tied to more than one task/channel - */ -typedef struct -{ - int req; - void (*handler)(void); -} DMA_CHANNEL_STRUCT; - -static DMA_CHANNEL_STRUCT dma_channel[NCHANNELS] = -{ - {-1,NULL}, {-1,NULL}, {-1,NULL}, {-1,NULL}, - {-1,NULL}, {-1,NULL}, {-1,NULL}, {-1,NULL}, - {-1,NULL}, {-1,NULL}, {-1,NULL}, {-1,NULL}, - {-1,NULL}, {-1,NULL}, {-1,NULL}, {-1,NULL} -}; - -/* - * Enable all DMA interrupts - * - * Parameters: - * pri Interrupt Priority - * lvl Interrupt Level - */ -void -dma_irq_enable(uint8_t lvl, uint8_t pri) -{ -//FIXME ASSERT(lvl > 0 && lvl < 8); -//FIXME ASSERT(pri < 8); - - /* Setup the DMA ICR (#48) */ - MCF_INTC_ICR48 = 0 - | MCF_INTC_ICRn_IP(pri) - | MCF_INTC_ICRn_IL(lvl); - - /* Unmask all task interrupts */ - MCF_DMA_DIMR = 0; - - /* Clear the interrupt pending register */ - MCF_DMA_DIPR = 0; - - /* Unmask the DMA interrupt in the interrupt controller */ - MCF_INTC_IMRH &= ~MCF_INTC_IMRH_INT_MASK48; -} - -/* - * Disable all DMA interrupts - */ -void -dma_irq_disable(void) -{ - /* Mask all task interrupts */ - MCF_DMA_DIMR = (uint32_t)~0; - - /* Clear any pending task interrupts */ - MCF_DMA_DIPR = (uint32_t)~0; - - /* Mask the DMA interrupt in the interrupt controller */ - MCF_INTC_IMRH |= MCF_INTC_IMRH_INT_MASK48; -} - -/* - * Attempt to enable the provided Initiator in the Initiator - * Mux Control Register - * - * Parameters: - * initiator Initiator identifier - * - * Return Value: - * 1 if unable to make the assignment - * 0 successful - */ -int -dma_set_initiator(int initiator) -{ - switch (initiator) - { - /* These initiators are always active */ - case DMA_ALWAYS: - case DMA_DSPI_RX: - case DMA_DSPI_TX: - case DMA_DREQ0: - case DMA_PSC0_RX: - case DMA_PSC0_TX: - case DMA_USBEP0: - case DMA_USBEP1: - case DMA_USBEP2: - case DMA_USBEP3: - case DMA_PCI_TX: - case DMA_PCI_RX: - case DMA_PSC1_RX: - case DMA_PSC1_TX: - case DMA_I2C_RX: - case DMA_I2C_TX: - break; - case DMA_FEC0_RX: - MCF_DMA_IMCR = (MCF_DMA_IMCR & ~MCF_DMA_IMCR_SRC16(3)) - | MCF_DMA_IMCR_SRC16_FEC0RX; - used_reqs[16] = DMA_FEC0_RX; - break; - case DMA_FEC0_TX: - MCF_DMA_IMCR = (MCF_DMA_IMCR & ~MCF_DMA_IMCR_SRC17(3)) - | MCF_DMA_IMCR_SRC17_FEC0TX; - used_reqs[17] = DMA_FEC0_TX; - break; - case DMA_FEC1_RX: - MCF_DMA_IMCR = (MCF_DMA_IMCR & ~MCF_DMA_IMCR_SRC20(3)) - | MCF_DMA_IMCR_SRC20_FEC1RX; - used_reqs[20] = DMA_FEC1_RX; - break; - case DMA_FEC1_TX: - if (used_reqs[21] == 0) - { - MCF_DMA_IMCR = (MCF_DMA_IMCR & ~MCF_DMA_IMCR_SRC21(3)) - | MCF_DMA_IMCR_SRC21_FEC1TX; - used_reqs[21] = DMA_FEC1_TX; - } - else if (used_reqs[25] == 0) - { - MCF_DMA_IMCR = (MCF_DMA_IMCR & ~MCF_DMA_IMCR_SRC25(3)) - | MCF_DMA_IMCR_SRC25_FEC1TX; - used_reqs[25] = DMA_FEC1_TX; - } - else if (used_reqs[31] == 0) - { - MCF_DMA_IMCR = (MCF_DMA_IMCR & ~MCF_DMA_IMCR_SRC31(3)) - | MCF_DMA_IMCR_SRC31_FEC1TX; - used_reqs[31] = DMA_FEC1_TX; - } - else /* No empty slots */ - return 1; - break; - case DMA_DREQ1: - if (used_reqs[29] == 0) - { - MCF_DMA_IMCR = (MCF_DMA_IMCR & ~MCF_DMA_IMCR_SRC29(3)) - | MCF_DMA_IMCR_SRC29_DREQ1; - used_reqs[29] = DMA_DREQ1; - } - else if (used_reqs[21] == 0) - { - MCF_DMA_IMCR = (MCF_DMA_IMCR & ~MCF_DMA_IMCR_SRC21(3)) - | MCF_DMA_IMCR_SRC21_DREQ1; - used_reqs[21] = DMA_DREQ1; - } - else /* No empty slots */ - return 1; - break; - case DMA_CTM0: - if (used_reqs[24] == 0) - { - MCF_DMA_IMCR = (MCF_DMA_IMCR & ~MCF_DMA_IMCR_SRC24(3)) - | MCF_DMA_IMCR_SRC24_CTM0; - used_reqs[24] = DMA_CTM0; - } - else /* No empty slots */ - return 1; - break; - case DMA_CTM1: - if (used_reqs[25] == 0) - { - MCF_DMA_IMCR = (MCF_DMA_IMCR & ~MCF_DMA_IMCR_SRC25(3)) - | MCF_DMA_IMCR_SRC25_CTM1; - used_reqs[25] = DMA_CTM1; - } - else /* No empty slots */ - return 1; - break; - case DMA_CTM2: - if (used_reqs[26] == 0) - { - MCF_DMA_IMCR = (MCF_DMA_IMCR & ~MCF_DMA_IMCR_SRC26(3)) - | MCF_DMA_IMCR_SRC26_CTM2; - used_reqs[26] = DMA_CTM2; - } - else /* No empty slots */ - return 1; - break; - case DMA_CTM3: - if (used_reqs[27] == 0) - { - MCF_DMA_IMCR = (MCF_DMA_IMCR & ~MCF_DMA_IMCR_SRC27(3)) - | MCF_DMA_IMCR_SRC27_CTM3; - used_reqs[27] = DMA_CTM3; - } - else /* No empty slots */ - return 1; - break; - case DMA_CTM4: - if (used_reqs[28] == 0) - { - MCF_DMA_IMCR = (MCF_DMA_IMCR & ~MCF_DMA_IMCR_SRC28(3)) - | MCF_DMA_IMCR_SRC28_CTM4; - used_reqs[28] = DMA_CTM4; - } - else /* No empty slots */ - return 1; - break; - case DMA_CTM5: - if (used_reqs[29] == 0) - { - MCF_DMA_IMCR = (MCF_DMA_IMCR & ~MCF_DMA_IMCR_SRC29(3)) - | MCF_DMA_IMCR_SRC29_CTM5; - used_reqs[29] = DMA_CTM5; - } - else /* No empty slots */ - return 1; - break; - case DMA_CTM6: - if (used_reqs[30] == 0) - { - MCF_DMA_IMCR = (MCF_DMA_IMCR & ~MCF_DMA_IMCR_SRC30(3)) - | MCF_DMA_IMCR_SRC30_CTM6; - used_reqs[30] = DMA_CTM6; - } - else /* No empty slots */ - return 1; - break; - case DMA_CTM7: - if (used_reqs[31] == 0) - { - MCF_DMA_IMCR = (MCF_DMA_IMCR & ~MCF_DMA_IMCR_SRC31(3)) - | MCF_DMA_IMCR_SRC31_CTM7; - used_reqs[31] = DMA_CTM7; - } - else /* No empty slots */ - return 1; - break; - case DMA_USBEP4: - if (used_reqs[26] == 0) - { - MCF_DMA_IMCR = (MCF_DMA_IMCR & ~MCF_DMA_IMCR_SRC26(3)) - | MCF_DMA_IMCR_SRC26_USBEP4; - used_reqs[26] = DMA_USBEP4; - } - else /* No empty slots */ - return 1; - break; - case DMA_USBEP5: - if (used_reqs[27] == 0) - { - MCF_DMA_IMCR = (MCF_DMA_IMCR & ~MCF_DMA_IMCR_SRC27(3)) - | MCF_DMA_IMCR_SRC27_USBEP5; - used_reqs[27] = DMA_USBEP5; - } - else /* No empty slots */ - return 1; - break; - case DMA_USBEP6: - if (used_reqs[28] == 0) - { - MCF_DMA_IMCR = (MCF_DMA_IMCR & ~MCF_DMA_IMCR_SRC28(3)) - | MCF_DMA_IMCR_SRC28_USBEP6; - used_reqs[28] = DMA_USBEP6; - } - else /* No empty slots */ - return 1; - break; - case DMA_PSC2_RX: - if (used_reqs[28] == 0) - { - MCF_DMA_IMCR = (MCF_DMA_IMCR & ~MCF_DMA_IMCR_SRC28(3)) - | MCF_DMA_IMCR_SRC28_PSC2RX; - used_reqs[28] = DMA_PSC2_RX; - } - else /* No empty slots */ - return 1; - break; - case DMA_PSC2_TX: - if (used_reqs[29] == 0) - { - MCF_DMA_IMCR = (MCF_DMA_IMCR & ~MCF_DMA_IMCR_SRC29(3)) - | MCF_DMA_IMCR_SRC29_PSC2TX; - used_reqs[29] = DMA_PSC2_TX; - } - else /* No empty slots */ - return 1; - break; - case DMA_PSC3_RX: - if (used_reqs[30] == 0) - { - MCF_DMA_IMCR = (MCF_DMA_IMCR & ~MCF_DMA_IMCR_SRC30(3)) - | MCF_DMA_IMCR_SRC30_PSC3RX; - used_reqs[30] = DMA_PSC3_RX; - } - else /* No empty slots */ - return 1; - break; - case DMA_PSC3_TX: - if (used_reqs[31] == 0) - { - MCF_DMA_IMCR = (MCF_DMA_IMCR & ~MCF_DMA_IMCR_SRC31(3)) - | MCF_DMA_IMCR_SRC31_PSC3TX; - used_reqs[31] = DMA_PSC3_TX; - } - else /* No empty slots */ - return 1; - break; - default: - return 1; - } - return 0; -} - -/* - * Return the initiator number for the given requestor - * - * Parameters: - * requestor Initiator/Requestor identifier - * - * Return Value: - * The initiator number (0-31) if initiator has been assigned - * 0 (always initiator) otherwise - */ -uint32_t -dma_get_initiator(int requestor) -{ - uint32_t i; - - for (i=0; i>=1) - { - if (interrupts & 0x1) - { - /* If there is a handler, call it */ - if (dma_channel[i].handler != NULL) - dma_channel[i].handler(); - } - } - - enable_interrupts(); // board_irq_enable(); - return 1; -} diff --git a/arch/m68k/mach-mcfv4e/fec.c b/arch/m68k/mach-mcfv4e/fec.c deleted file mode 100644 index 7619283f8..000000000 --- a/arch/m68k/mach-mcfv4e/fec.c +++ /dev/null @@ -1,1440 +0,0 @@ -/* - * File: fec.c - * Purpose: Driver for the Fast Ethernet Controller (FEC) - * - * Notes: - */ -#include -#include - -#include -#include -#include -#include -#include -#include - - -#define TRUE 1 -#define FALSE 0 -#define ASSERT(x) if (!(x)) hang(); -#define nop() __asm__ __volatile__("nop\n") - - -FEC_EVENT_LOG fec_log[2]; - -/* - * Write a value to a PHY's MII register. - * - * Parameters: - * ch FEC channel - * phy_addr Address of the PHY. - * reg_addr Address of the register in the PHY. - * data Data to be written to the PHY register. - * - * Return Values: - * 1 on failure - * 0 on success. - * - * Please refer to your PHY manual for registers and their meanings. - * mii_write() polls for the FEC's MII interrupt event (which should - * be masked from the interrupt handler) and clears it. If after a - * suitable amount of time the event isn't triggered, a value of 0 - * is returned. - */ -int -fec_mii_write(uint8_t ch, uint8_t phy_addr, uint8_t reg_addr, uint16_t data) -{ - int timeout; - uint32_t eimr; - - ASSERT(ch == 0 || ch == 1); - - /* - * Clear the MII interrupt bit - */ - MCF_FEC_EIR(ch) = MCF_FEC_EIR_MII; - - /* - * Write to the MII Management Frame Register to kick-off - * the MII write - */ - MCF_FEC_MMFR(ch) = 0 - | MCF_FEC_MMFR_ST_01 - | MCF_FEC_MMFR_OP_WRITE - | MCF_FEC_MMFR_PA(phy_addr) - | MCF_FEC_MMFR_RA(reg_addr) - | MCF_FEC_MMFR_TA_10 - | MCF_FEC_MMFR_DATA(data); - - /* - * Mask the MII interrupt - */ - eimr = MCF_FEC_EIMR(ch); - MCF_FEC_EIMR(ch) &= ~MCF_FEC_EIMR_MII; - - /* - * Poll for the MII interrupt (interrupt should be masked) - */ - for (timeout = 0; timeout < FEC_MII_TIMEOUT; timeout++) - { - if (MCF_FEC_EIR(ch) & MCF_FEC_EIR_MII) - break; - } - if(timeout == FEC_MII_TIMEOUT) - return 1; - - /* - * Clear the MII interrupt bit - */ - MCF_FEC_EIR(ch) = MCF_FEC_EIR_MII; - - /* - * Restore the EIMR - */ - MCF_FEC_EIMR(ch) = eimr; - - return 0; -} - -/* - * Read a value from a PHY's MII register. - * - * Parameters: - * ch FEC channel - * phy_addr Address of the PHY. - * reg_addr Address of the register in the PHY. - * data Pointer to storage for the Data to be read - * from the PHY register (passed by reference) - * - * Return Values: - * 1 on failure - * 0 on success. - * - * Please refer to your PHY manual for registers and their meanings. - * mii_read() polls for the FEC's MII interrupt event (which should - * be masked from the interrupt handler) and clears it. If after a - * suitable amount of time the event isn't triggered, a value of 0 - * is returned. - */ -int -fec_mii_read(uint8_t ch, uint8_t phy_addr, uint8_t reg_addr, uint16_t *data) -{ - int timeout; - - ASSERT(ch == 0 || ch == 1); - - /* - * Clear the MII interrupt bit - */ - MCF_FEC_EIR(ch) = MCF_FEC_EIR_MII; - - /* - * Write to the MII Management Frame Register to kick-off - * the MII read - */ - MCF_FEC_MMFR(ch) = 0 - | MCF_FEC_MMFR_ST_01 - | MCF_FEC_MMFR_OP_READ - | MCF_FEC_MMFR_PA(phy_addr) - | MCF_FEC_MMFR_RA(reg_addr) - | MCF_FEC_MMFR_TA_10; - - /* - * Poll for the MII interrupt (interrupt should be masked) - */ - for (timeout = 0; timeout < FEC_MII_TIMEOUT; timeout++) - { - if (MCF_FEC_EIR(ch) & MCF_FEC_EIR_MII) - break; - } - - if(timeout == FEC_MII_TIMEOUT) - return 1; - - /* - * Clear the MII interrupt bit - */ - MCF_FEC_EIR(ch) = MCF_FEC_EIR_MII; - - *data = (uint16_t)(MCF_FEC_MMFR(ch) & 0x0000FFFF); - - return 0; -} - -/* - * Initialize the MII interface controller - * - * Parameters: - * ch FEC channel - * sys_clk System Clock Frequency (in MHz) - */ -void -fec_mii_init(uint8_t ch, uint32_t sys_clk) -{ - ASSERT(ch == 0 || ch == 1); - - /* - * Initialize the MII clock (EMDC) frequency - * - * Desired MII clock is 2.5MHz - * MII Speed Setting = System_Clock / (2.5MHz * 2) - * (plus 1 to make sure we round up) - */ - MCF_FEC_MSCR(ch) = MCF_FEC_MSCR_MII_SPEED((sys_clk/5)+1); -} - -/* Initialize the MIB counters - * - * Parameters: - * ch FEC channel - */ -void -fec_mib_init(uint8_t ch) -{ - ASSERT(ch == 0 || ch == 1); -//To do -} - -/* Display the MIB counters - * - * Parameters: - * ch FEC channel - */ -void -fec_mib_dump(uint8_t ch) -{ - ASSERT(ch == 0 || ch == 1); -//To do -} - -/* Initialize the FEC log - * - * Parameters: - * ch FEC channel - */ -void -fec_log_init(uint8_t ch) -{ - ASSERT(ch == 0 || ch == 1); - memset(&fec_log[ch],0,sizeof(FEC_EVENT_LOG)); -} - -/* Display the FEC log - * - * Parameters: - * ch FEC channel - */ -void -fec_log_dump(uint8_t ch) -{ - ASSERT(ch == 0 || ch == 1); - printf("\n FEC%d Log\n---------------\n",ch); - printf("Total: %4d\n",fec_log[ch].total); - printf("hberr: %4d\n",fec_log[ch].hberr); - printf("babr: %4d\n",fec_log[ch].babr); - printf("babt: %4d\n",fec_log[ch].babt); - printf("gra: %4d\n",fec_log[ch].gra); - printf("txf: %4d\n",fec_log[ch].txf); - printf("mii: %4d\n",fec_log[ch].mii); - printf("lc: %4d\n",fec_log[ch].lc); - printf("rl: %4d\n",fec_log[ch].rl); - printf("xfun: %4d\n",fec_log[ch].xfun); - printf("xferr: %4d\n",fec_log[ch].xferr); - printf("rferr: %4d\n",fec_log[ch].rferr); - printf("dtxf: %4d\n",fec_log[ch].dtxf); - printf("drxf: %4d\n",fec_log[ch].drxf); - printf("\nRFSW:\n"); - printf("inv: %4d\n",fec_log[ch].rfsw_inv); - printf("m: %4d\n",fec_log[ch].rfsw_m); - printf("bc: %4d\n",fec_log[ch].rfsw_bc); - printf("mc: %4d\n",fec_log[ch].rfsw_mc); - printf("lg: %4d\n",fec_log[ch].rfsw_lg); - printf("no: %4d\n",fec_log[ch].rfsw_no); - printf("cr: %4d\n",fec_log[ch].rfsw_cr); - printf("ov: %4d\n",fec_log[ch].rfsw_ov); - printf("tr: %4d\n",fec_log[ch].rfsw_tr); - printf("---------------\n\n"); -} - -/* - * Display some of the registers for debugging - * - * Parameters: - * ch FEC channel - */ -void -fec_debug_dump(uint8_t ch) -{ - printf("\n------------- FEC%d -------------\n",ch); - printf("EIR %08x \n",MCF_FEC_EIR(ch)); - printf("EIMR %08x \n",MCF_FEC_EIMR(ch)); - printf("ECR %08x \n",MCF_FEC_ECR(ch)); - printf("RCR %08x \n",MCF_FEC_RCR(ch)); - printf("R_HASH %08x \n",MCF_FEC_R_HASH(ch)); - printf("TCR %08x \n",MCF_FEC_TCR(ch)); - printf("FECTFWR %08x \n",MCF_FEC_FECTFWR(ch)); - printf("FECRFSR %08x \n",MCF_FEC_FECRFSR(ch)); - printf("FECRFCR %08x \n",MCF_FEC_FECRFCR(ch)); - printf("FECRLRFP %08x \n",MCF_FEC_FECRLRFP(ch)); - printf("FECRLWFP %08x \n",MCF_FEC_FECRLWFP(ch)); - printf("FECRFAR %08x \n",MCF_FEC_FECRFAR(ch)); - printf("FECRFRP %08x \n",MCF_FEC_FECRFRP(ch)); - printf("FECRFWP %08x \n",MCF_FEC_FECRFWP(ch)); - printf("FECTFSR %08x \n",MCF_FEC_FECTFSR(ch)); - printf("FECTFCR %08x \n",MCF_FEC_FECTFCR(ch)); - printf("FECTLRFP %08x \n",MCF_FEC_FECTLRFP(ch)); - printf("FECTLWFP %08x \n",MCF_FEC_FECTLWFP(ch)); - printf("FECTFAR %08x \n",MCF_FEC_FECTFAR(ch)); - printf("FECTFRP %08x \n",MCF_FEC_FECTFRP(ch)); - printf("FECTFWP %08x \n",MCF_FEC_FECTFWP(ch)); - printf("FRST %08x \n",MCF_FEC_FRST(ch)); - printf("--------------------------------\n\n"); -} - -/* - * Set the duplex on the selected FEC controller - * - * Parameters: - * ch FEC channel - * duplex FEC_MII_FULL_DUPLEX or FEC_MII_HALF_DUPLEX - */ -void -fec_duplex (uint8_t ch, uint8_t duplex) -{ - ASSERT(ch == 0 || ch == 1); - - switch (duplex) - { - case FEC_MII_HALF_DUPLEX: - MCF_FEC_RCR(ch) |= MCF_FEC_RCR_DRT; - MCF_FEC_TCR(ch) &= (uint32_t)~MCF_FEC_TCR_FDEN; - break; - case FEC_MII_FULL_DUPLEX: - default: - MCF_FEC_RCR(ch) &= (uint32_t)~MCF_FEC_RCR_DRT; - MCF_FEC_TCR(ch) |= MCF_FEC_TCR_FDEN; - break; - } -} - -/* - * Generate the hash table settings for the given address - * - * Parameters: - * addr 48-bit (6 byte) Address to generate the hash for - * - * Return Value: - * The 6 most significant bits of the 32-bit CRC result - */ -uint8_t -fec_hash_address(const uint8_t *addr) -{ - uint32_t crc; - uint8_t byte; - int i, j; - - crc = 0xFFFFFFFF; - for(i=0; i<6; ++i) - { - byte = addr[i]; - for(j=0; j<8; ++j) - { - if((byte & 0x01)^(crc & 0x01)) - { - crc >>= 1; - crc = crc ^ 0xEDB88320; - } - else - crc >>= 1; - byte >>= 1; - } - } - return (uint8_t)(crc >> 26); -} - -/* - * Set the Physical (Hardware) Address and the Individual Address - * Hash in the selected FEC - * - * Parameters: - * ch FEC channel - * pa Physical (Hardware) Address for the selected FEC - */ -void -fec_set_address (uint8_t ch, const uint8_t *pa) -{ - uint8_t crc; - - ASSERT(ch == 0 || ch == 1); - - /* - * Set the Physical Address - */ - MCF_FEC_PALR(ch) = (uint32_t)((pa[0]<<24) | (pa[1]<<16) | (pa[2]<<8) | pa[3]); - MCF_FEC_PAUR(ch) = (uint32_t)((pa[4]<<24) | (pa[5]<<16)); - - /* - * Calculate and set the hash for given Physical Address - * in the Individual Address Hash registers - */ - crc = fec_hash_address(pa); - if(crc >= 32) - MCF_FEC_IAUR(ch) |= (uint32_t)(1 << (crc - 32)); - else - MCF_FEC_IALR(ch) |= (uint32_t)(1 << crc); -} - -/* - * Reset the selected FEC controller - * - * Parameters: - * ch FEC channel - */ -void -fec_reset (uint8_t ch) -{ - int i; - - ASSERT(ch == 0 || ch == 1); - - /* Clear any events in the FIFO status registers */ - MCF_FEC_FECRFSR(ch) = (0 - | MCF_FEC_FECRFSR_OF - | MCF_FEC_FECRFSR_UF - | MCF_FEC_FECRFSR_RXW - | MCF_FEC_FECRFSR_FAE - | MCF_FEC_FECRFSR_IP); - MCF_FEC_FECTFSR(ch) = (0 - | MCF_FEC_FECRFSR_OF - | MCF_FEC_FECRFSR_UF - | MCF_FEC_FECRFSR_RXW - | MCF_FEC_FECRFSR_FAE - | MCF_FEC_FECRFSR_IP); - - /* Reset the FIFOs */ - MCF_FEC_FRST(ch) |= MCF_FEC_FRST_SW_RST; - MCF_FEC_FRST(ch) &= ~MCF_FEC_FRST_SW_RST; - - /* Set the Reset bit and clear the Enable bit */ - MCF_FEC_ECR(ch) = MCF_FEC_ECR_RESET; - - /* Wait at least 8 clock cycles */ - for (i=0; i<10; ++i) - nop(); -} - -/* - * Initialize the selected FEC - * - * Parameters: - * ch FEC channel - * mode External interface mode (MII, 7-wire, or internal loopback) - * pa Physical (Hardware) Address for the selected FEC - */ -void -fec_init (uint8_t ch, uint8_t mode, const uint8_t *pa) -{ - ASSERT(ch == 0 || ch == 1); - - /* - * Enable all the external interface signals - */ - if (mode == FEC_MODE_7WIRE) - { - if (ch == 1) - MCF_GPIO_PAR_FECI2CIRQ |= MCF_GPIO_PAR_FECI2CIRQ_PAR_E17; - else - MCF_GPIO_PAR_FECI2CIRQ |= MCF_GPIO_PAR_FECI2CIRQ_PAR_E07; - } - else if (mode == FEC_MODE_MII) - { - if (ch == 1) - MCF_GPIO_PAR_FECI2CIRQ |= 0 - | MCF_GPIO_PAR_FECI2CIRQ_PAR_E1MDC_EMDC - | MCF_GPIO_PAR_FECI2CIRQ_PAR_E1MDIO_EMDIO - | MCF_GPIO_PAR_FECI2CIRQ_PAR_E1MII - | MCF_GPIO_PAR_FECI2CIRQ_PAR_E17; - else - MCF_GPIO_PAR_FECI2CIRQ |= 0 - | MCF_GPIO_PAR_FECI2CIRQ_PAR_E0MDC - | MCF_GPIO_PAR_FECI2CIRQ_PAR_E0MDIO - | MCF_GPIO_PAR_FECI2CIRQ_PAR_E0MII - | MCF_GPIO_PAR_FECI2CIRQ_PAR_E07; - } - - /* - * Clear the Individual and Group Address Hash registers - */ - MCF_FEC_IALR(ch) = 0; - MCF_FEC_IAUR(ch) = 0; - MCF_FEC_GALR(ch) = 0; - MCF_FEC_GAUR(ch) = 0; - - /* - * Set the Physical Address for the selected FEC - */ - fec_set_address(ch, pa); - - /* - * Mask all FEC interrupts - */ - MCF_FEC_EIMR(ch) = MCF_FEC_EIMR_MASK_ALL; - - /* - * Clear all FEC interrupt events - */ - MCF_FEC_EIR(ch) = MCF_FEC_EIR_CLEAR_ALL; - - /* - * Initialize the Receive Control Register - */ - MCF_FEC_RCR(ch) = 0 - | MCF_FEC_RCR_MAX_FL(ETH_MAX_FRM) - #ifdef FEC_PROMISCUOUS - | MCF_FEC_RCR_PROM - #endif - | MCF_FEC_RCR_FCE; - - if (mode == FEC_MODE_MII) - MCF_FEC_RCR(ch) |= MCF_FEC_RCR_MII_MODE; - - else if (mode == FEC_MODE_LOOPBACK) - MCF_FEC_RCR(ch) |= MCF_FEC_RCR_LOOP; - - /* - * Initialize the Transmit Control Register - */ - MCF_FEC_TCR(ch) = MCF_FEC_TCR_FDEN; - - /* - * Set Rx FIFO alarm and granularity - */ - MCF_FEC_FECRFCR(ch) = 0 - | MCF_FEC_FECRFCR_FRM - | MCF_FEC_FECRFCR_RXW_MSK - | MCF_FEC_FECRFCR_GR(7); - MCF_FEC_FECRFAR(ch) = MCF_FEC_FECRFAR_ALARM(768); - - /* - * Set Tx FIFO watermark, alarm and granularity - */ - MCF_FEC_FECTFCR(ch) = 0 - | MCF_FEC_FECTFCR_FRM - | MCF_FEC_FECTFCR_TXW_MSK - | MCF_FEC_FECTFCR_GR(7); - MCF_FEC_FECTFAR(ch) = MCF_FEC_FECTFAR_ALARM(256); - MCF_FEC_FECTFWR(ch) = MCF_FEC_FECTFWR_X_WMRK_256; - - /* - * Enable the transmitter to append the CRC - */ - MCF_FEC_CTCWR(ch) = 0 - | MCF_FEC_CTCWR_TFCW - | MCF_FEC_CTCWR_CRC; -} - -/* - * Start the FEC Rx DMA task - * - * Parameters: - * ch FEC channel - * rxbd First Rx buffer descriptor in the chain - */ -void -fec_rx_start(uint8_t ch, int8_t *rxbd) -{ - uint32_t initiator; - int channel, result; - - ASSERT(ch == 0 || ch == 1); - - /* - * Make the initiator assignment - */ - result = dma_set_initiator(DMA_FEC_RX(ch)); - ASSERT(result == 0); - - /* - * Grab the initiator number - */ - initiator = dma_get_initiator(DMA_FEC_RX(ch)); - - /* - * Determine the DMA channel running the task for the - * selected FEC - */ - channel = dma_set_channel(DMA_FEC_RX(ch), - (ch == 0) ? fec0_rx_frame : fec1_rx_frame); - ASSERT(channel != -1); - - /* - * Start the Rx DMA task - */ - /* - * Start the Rx DMA task - */ - MCD_startDma(channel, - (s8*)rxbd, - 0, - (s8*)MCF_FEC_FECRFDR_ADDR(ch), - 0, - RX_BUF_SZ, - 0, - initiator, - FECRX_DMA_PRI(ch), - 0 - | MCD_FECRX_DMA - | MCD_INTERRUPT - | MCD_TT_FLAGS_CW - | MCD_TT_FLAGS_RL - | MCD_TT_FLAGS_SP - , - 0 - | MCD_NO_CSUM - | MCD_NO_BYTE_SWAP - ); -} - -/* - * Continue the Rx DMA task - * - * This routine is called after the DMA task has halted after - * encountering an Rx buffer descriptor that wasn't marked as - * ready. There is no harm in calling the DMA continue routine - * if the DMA is not halted. - * - * Parameters: - * ch FEC channel - */ -void -fec_rx_continue(uint8_t ch) -{ - int channel; - - ASSERT(ch == 0 || ch == 1); - - /* - * Determine the DMA channel running the task for the - * selected FEC - */ - channel = dma_get_channel(DMA_FEC_RX(ch)); - ASSERT(channel != -1); - - /* - * Continue/restart the DMA task - */ - MCD_continDma(channel); -} - -/* - * Stop all frame receptions on the selected FEC - * - * Parameters: - * ch FEC channel - */ -void -fec_rx_stop (uint8_t ch) -{ - uint32_t mask; - int channel; - - ASSERT(ch == 0 || ch == 1); - - /* Save off the EIMR value */ - mask = MCF_FEC_EIMR(ch); - - /* Mask all interrupts */ - MCF_FEC_EIMR(ch) = 0; - - /* - * Determine the DMA channel running the task for the - * selected FEC - */ - channel = dma_get_channel(DMA_FEC_RX(ch)); - ASSERT(channel != -1); - - /* Kill the FEC Rx DMA task */ - MCD_killDma(channel); - - /* - * Free up the FEC requestor from the software maintained - * initiator list - */ - dma_free_initiator(DMA_FEC_RX(ch)); - - /* Free up the DMA channel */ - dma_free_channel(DMA_FEC_RX(ch)); - - /* Restore the interrupt mask register value */ - MCF_FEC_EIMR(ch) = mask; -} - -/* - * Receive Frame interrupt handler - this handler is called by the - * DMA interrupt handler indicating that a packet was successfully - * transferred out of the Rx FIFO. - * - * Parameters: - * nif Pointer to Network Interface structure - * ch FEC channel - */ -NBUF * -fec_rx_frame(uint8_t ch, NIF *nif) -{ -// ETH_HDR *eth_hdr; - FECBD *pRxBD; - NBUF *cur_nbuf, *new_nbuf; - int keep; - - while ((pRxBD = fecbd_rx_alloc(ch)) != NULL) - { - fec_log[ch].drxf++; - keep = TRUE; - - /* - * Check the Receive Frame Status Word for errors - * - The L bit should always be set - * - No undefined bits should be set - * - The upper 5 bits of the length should be cleared - */ - if (!(pRxBD->status & RX_BD_L) || (pRxBD->status & 0x0608) - || (pRxBD->length & 0xF800)) - { - keep = FALSE; - fec_log[ch].rfsw_inv++; - } - else if (pRxBD->status & RX_BD_ERROR) - { - keep = FALSE; - if (pRxBD->status & RX_BD_NO) - fec_log[ch].rfsw_no++; - if (pRxBD->status & RX_BD_CR) - fec_log[ch].rfsw_cr++; - if (pRxBD->status & RX_BD_OV) - fec_log[ch].rfsw_ov++; - if (pRxBD->status & RX_BD_TR) - fec_log[ch].rfsw_tr++; - } - else - { - if (pRxBD->status & RX_BD_LG) - fec_log[ch].rfsw_lg++; - if (pRxBD->status & RX_BD_M) - fec_log[ch].rfsw_m++; - if (pRxBD->status & RX_BD_BC) - fec_log[ch].rfsw_bc++; - if (pRxBD->status & RX_BD_MC) - fec_log[ch].rfsw_mc++; - } - - if (keep) - { - /* - * Pull the network buffer off the Rx ring queue - */ - cur_nbuf = nbuf_remove(NBUF_RX_RING); - ASSERT(cur_nbuf); - ASSERT(cur_nbuf->data == pRxBD->data); - - /* - * Copy the buffer descriptor information to the network buffer - */ -// cur_nbuf->length = (pRxBD->length - (ETH_HDR_LEN + ETH_CRC_LEN)); -// cur_nbuf->offset = ETH_HDR_LEN; - cur_nbuf->length = (pRxBD->length - (ETH_CRC_LEN)); - cur_nbuf->offset = 0; - - /* - * Get a new buffer pointer for this buffer descriptor - */ - new_nbuf = nbuf_alloc(); - if (new_nbuf == NULL) - { - #ifdef CONFIG_DRIVER_NET_MCF54XX_DEBUG - printf("nbuf_alloc() failed\n"); - #endif - /* - * Can't allocate a new network buffer, so we - * have to trash the received data and reuse the buffer - * hoping that some buffers will free up in the system - * and this frame will be re-transmitted by the host - */ - pRxBD->length = RX_BUF_SZ; - pRxBD->status &= (RX_BD_W | RX_BD_INTERRUPT); - pRxBD->status |= RX_BD_E; - nbuf_add(NBUF_RX_RING, cur_nbuf); - fec_rx_continue(ch); - continue; - } - - /* - * Add the new network buffer to the Rx ring queue - */ - nbuf_add(NBUF_RX_RING, new_nbuf); - - /* - * Re-initialize the buffer descriptor - pointing it - * to the new data buffer. The previous data buffer - * will be passed up the stack - */ - pRxBD->data = new_nbuf->data; - pRxBD->length = RX_BUF_SZ; - pRxBD->status &= (RX_BD_W | RX_BD_INTERRUPT); - pRxBD->status |= RX_BD_E; - - - /* - * Let the DMA know that there is a new Rx BD (in case the - * ring was full and the DMA was waiting for an empty one) - */ - fec_rx_continue(ch); - - /* - * Get pointer to the frame data inside the network buffer - */ -// eth_hdr = (ETH_HDR *)cur_nbuf->data; - - /* - * Pass the received packet up the network stack if the - * protocol is supported in our network interface (NIF) - */ -//FIXME if (nif_protocol_exist(nif,eth_hdr->type)) -// { -// nif_protocol_handler(nif, eth_hdr->type, cur_nbuf); -// } -// else -// nbuf_free(cur_nbuf); - return(cur_nbuf); - } - else - { - /* - * This frame isn't a keeper - * Reset the status and length, but don't need to get another - * buffer since we are trashing the data in the current one - */ - pRxBD->length = RX_BUF_SZ; - pRxBD->status &= (RX_BD_W | RX_BD_INTERRUPT); - pRxBD->status |= RX_BD_E; - - /* - * Move the current buffer from the beginning to the end of the - * Rx ring queue - */ - cur_nbuf = nbuf_remove(NBUF_RX_RING); - nbuf_add(NBUF_RX_RING, cur_nbuf); - - /* - * Let the DMA know that there are new Rx BDs (in case - * it is waiting for an empty one) - */ - fec_rx_continue(ch); - } - } - return NULL; -} - -void -fec0_rx_frame(void) -{ -// extern NIF nif1; -// fec_rx_frame(0, 0); -} - -void -fec1_rx_frame(void) -{ -// extern NIF nif1; -// fec_rx_frame(1, 0); -} - -/* - * Start the FEC Tx DMA task - * - * Parameters: - * ch FEC channel - * txbd First Tx buffer descriptor in the chain - */ -void -fec_tx_start(uint8_t ch, int8_t *txbd) -{ - uint32_t initiator; - int channel, result; - void fec0_tx_frame(void); - void fec1_tx_frame(void); - - /* - * Make the initiator assignment - */ - result = dma_set_initiator(DMA_FEC_TX(ch)); - ASSERT(result == 0); - - /* - * Grab the initiator number - */ - initiator = dma_get_initiator(DMA_FEC_TX(ch)); - ASSERT(initiator != 0); - - /* - * Determine the DMA channel running the task for the - * selected FEC - */ - channel = dma_set_channel(DMA_FEC_TX(ch), - (ch == 0) ? fec0_tx_frame : fec1_tx_frame); - ASSERT(channel != -1); - - /* - * Start the Tx DMA task - */ - MCD_startDma(channel, - (s8*)txbd, - 0, - (s8*)MCF_FEC_FECTFDR_ADDR(ch), - 0, - ETH_MTU, - 0, - initiator, - FECTX_DMA_PRI(ch), - 0 - | MCD_FECTX_DMA - | MCD_INTERRUPT - | MCD_TT_FLAGS_CW - | MCD_TT_FLAGS_RL - | MCD_TT_FLAGS_SP - , - 0 - | MCD_NO_CSUM - | MCD_NO_BYTE_SWAP - ); -} - -/* - * Continue the Tx DMA task - * - * This routine is called after the DMA task has halted after - * encountering an Tx buffer descriptor that wasn't marked as - * ready. There is no harm in calling the continue DMA routine - * if the DMA was not paused. - * - * Parameters: - * ch FEC channel - */ -void -fec_tx_continue(uint8_t ch) -{ - int channel; - - /* - * Determine the DMA channel running the task for the - * selected FEC - */ - channel = dma_get_channel(DMA_FEC_TX(ch)); - ASSERT(channel > 0); - - /* - * Continue/restart the DMA task - */ - MCD_continDma((int)channel); -} - -/* - * Stop all transmissions on the selected FEC and kill the DMA task - * - * Parameters: - * ch FEC channel - */ -void -fec_tx_stop (uint8_t ch) -{ - uint32_t mask; - int channel; - - ASSERT(ch == 0 || ch == 1); - - /* Save off the EIMR value */ - mask = MCF_FEC_EIMR(ch); - - /* Mask all interrupts */ - MCF_FEC_EIMR(ch) = 0; - - /* If the Ethernet is still enabled... */ - if (MCF_FEC_ECR(ch) & MCF_FEC_ECR_ETHER_EN) - { - /* Issue the Graceful Transmit Stop */ - MCF_FEC_TCR(ch) |= MCF_FEC_TCR_GTS; - - /* Wait for the Graceful Stop Complete interrupt */ - while(!(MCF_FEC_EIR(ch) & MCF_FEC_EIR_GRA)) - { - if (!(MCF_FEC_ECR(ch) & MCF_FEC_ECR_ETHER_EN)) - break; - } - - /* Clear the Graceful Stop Complete interrupt */ - MCF_FEC_EIR(ch) = MCF_FEC_EIR_GRA; - } - - /* - * Determine the DMA channel running the task for the - * selected FEC - */ - channel = dma_get_channel(DMA_FEC_TX(ch)); - ASSERT(channel > 0); - - /* Kill the FEC Tx DMA task */ - MCD_killDma(channel); - - /* - * Free up the FEC requestor from the software maintained - * initiator list - */ - dma_free_initiator(DMA_FEC_TX(ch)); - - /* Free up the DMA channel */ - dma_free_channel(DMA_FEC_TX(ch)); - - /* Restore the interrupt mask register value */ - MCF_FEC_EIMR(ch) = mask; -} - -/* - * Trasmit Frame interrupt handler - this handler is called by the - * DMA interrupt handler indicating that a packet was successfully - * transferred to the Tx FIFO. - * - * Parameters: - * ch FEC channel - */ -void -fec_tx_frame(uint8_t ch) -{ - FECBD *pTxBD; - NBUF *pNbuf; - - while ((pTxBD = fecbd_tx_free(ch)) != NULL) - { - fec_log[ch].dtxf++; - - /* - * Grab the network buffer associated with this buffer descriptor - */ - pNbuf = nbuf_remove(NBUF_TX_RING); - ASSERT(pNbuf); - ASSERT(pNbuf->data == pTxBD->data); - - /* - * Free up the network buffer that was just transmitted - */ - nbuf_free(pNbuf); - - /* - * Re-initialize the Tx BD - */ - pTxBD->data = NULL; - pTxBD->length = 0; - } -} - -void -fec0_tx_frame(void) -{ - fec_tx_frame(0); -} - -void -fec1_tx_frame(void) -{ - fec_tx_frame(1); -} - -/* - * Send a packet out the selected FEC - * - * Parameters: - * ch FEC channel - * nif Pointer to Network Interface (NIF) structure - * dst Destination MAC Address - * src Source MAC Address - * type Ethernet Frame Type - * length Number of bytes to be transmitted (doesn't include type, - * src, or dest byte count) - * pkt Pointer packet network buffer - * - * Return Value: - * 1 success - * 0 otherwise - */ -int -fec_send (uint8_t ch, NIF *nif, uint8_t *dst, uint8_t *src, uint16_t type, NBUF *nbuf) -{ - FECBD *pTxBD; - ASSERT(ch == 0 || ch == 1); - - /* Check the length */ - if ((nbuf->length + ETH_HDR_LEN) > ETH_MTU) - return 0; - - /* - * Copy the destination address, source address, and Ethernet - * type into the packet - */ -// memcpy(&nbuf->data[0], dst, 6); -// memcpy(&nbuf->data[6], src, 6); -// memcpy(&nbuf->data[12], &type, 2); - - /* - * Grab the next available Tx Buffer Descriptor - */ - while ((pTxBD = fecbd_tx_alloc(ch)) == NULL) {}; - - /* - * Put the network buffer into the Tx waiting queue - */ - nbuf_add(NBUF_TX_RING, nbuf); - - /* - * Setup the buffer descriptor for transmission - */ - pTxBD->data = nbuf->data; - pTxBD->length = nbuf->length; // + ETH_HDR_LEN; - pTxBD->status |= (TX_BD_R | TX_BD_L); - - /* - * Continue the Tx DMA task (in case it was waiting for a new - * TxBD to be ready - */ - fec_tx_continue(ch); - - return 1; -} - -int -fec0_send(NIF *nif, uint8_t *dst, uint8_t *src, uint16_t type, NBUF *nbuf) -{ - return fec_send(0, nif, dst, src, type, nbuf); -} - -int -fec1_send(NIF *nif, uint8_t *dst, uint8_t *src, uint16_t type, NBUF *nbuf) -{ - return fec_send(1, nif, dst, src, type, nbuf); -} - -/* - * Enable interrupts on the selected FEC - * - * Parameters: - * ch FEC channel - * pri Interrupt Priority - * lvl Interrupt Level - */ -void -fec_irq_enable(uint8_t ch, uint8_t lvl, uint8_t pri) -{ - ASSERT(ch == 0 || ch == 1); - ASSERT(lvl > 0 && lvl < 8); - ASSERT(pri < 8); - - /* - * Setup the appropriate ICR - */ - MCF_INTC_ICRn((ch == 0) ? 39 : 38) = (uint8_t)(0 - | MCF_INTC_ICRn_IP(pri) - | MCF_INTC_ICRn_IL(lvl)); - - /* - * Clear any pending FEC interrupt events - */ - MCF_FEC_EIR(ch) = MCF_FEC_EIR_CLEAR_ALL; - - /* - * Unmask all FEC interrupts - */ - MCF_FEC_EIMR(ch) = MCF_FEC_EIMR_UNMASK_ALL; - - /* - * Unmask the FEC interrupt in the interrupt controller - */ - if (ch == 0) - MCF_INTC_IMRH &= ~MCF_INTC_IMRH_INT_MASK39; - else - MCF_INTC_IMRH &= ~MCF_INTC_IMRH_INT_MASK38; -} - -/* - * Disable interrupts on the selected FEC - * - * Parameters: - * ch FEC channel - */ -void -fec_irq_disable(uint8_t ch) -{ - ASSERT(ch == 0 || ch == 1); - - /* - * Mask all FEC interrupts - */ - MCF_FEC_EIMR(ch) = MCF_FEC_EIMR_MASK_ALL; - - /* - * Mask the FEC interrupt in the interrupt controller - */ - if (ch == 0) - MCF_INTC_IMRH |= MCF_INTC_IMRH_INT_MASK39; - else - MCF_INTC_IMRH |= MCF_INTC_IMRH_INT_MASK38; -} - -/* - * FEC interrupt handler - * All interrupts are multiplexed into a single vector for each - * FEC module. The lower level interrupt handler passes in the - * channel to this handler. Note that the receive interrupt is - * generated by the Multi-channel DMA FEC Rx task. - * - * Parameters: - * ch FEC channel - */ -static void -fec_irq_handler(uint8_t ch) -{ - uint32_t event, eir; - - /* - * Determine which interrupt(s) asserted by AND'ing the - * pending interrupts with those that aren't masked. - */ - eir = MCF_FEC_EIR(ch); - event = eir & MCF_FEC_EIMR(ch); - - #ifdef CONFIG_DRIVER_NET_MCF54XX_DEBUG - if (event != eir) - printf("Pending but not enabled: 0x%08X\n",(event ^ eir)); - #endif - - /* - * Clear the event(s) in the EIR immediately - */ - MCF_FEC_EIR(ch) = event; - - if (event & MCF_FEC_EIR_RFERR) - { - fec_log[ch].total++; - fec_log[ch].rferr++; - #ifdef CONFIG_DRIVER_NET_MCF54XX_DEBUG - printf("RFERR\n"); - printf("FECRFSR%d = 0x%08x\n",ch,MCF_FEC_FECRFSR(ch)); - fec_eth_stop(ch); - #endif - } - if (event & MCF_FEC_EIR_XFERR) - { - fec_log[ch].total++; - fec_log[ch].xferr++; - #ifdef CONFIG_DRIVER_NET_MCF54XX_DEBUG - printf("XFERR\n"); - #endif - } - if (event & MCF_FEC_EIR_XFUN) - { - fec_log[ch].total++; - fec_log[ch].xfun++; - #ifdef CONFIG_DRIVER_NET_MCF54XX_DEBUG - printf("XFUN\n"); - fec_eth_stop(ch); - #endif - } - if (event & MCF_FEC_EIR_RL) - { - fec_log[ch].total++; - fec_log[ch].rl++; - #ifdef CONFIG_DRIVER_NET_MCF54XX_DEBUG - printf("RL\n"); - #endif - } - if (event & MCF_FEC_EIR_LC) - { - fec_log[ch].total++; - fec_log[ch].lc++; - #ifdef CONFIG_DRIVER_NET_MCF54XX_DEBUG - printf("LC\n"); - #endif - } - if (event & MCF_FEC_EIR_MII) - { - fec_log[ch].mii++; - } - if (event & MCF_FEC_EIR_TXF) - { - fec_log[ch].txf++; - } - if (event & MCF_FEC_EIR_GRA) - { - fec_log[ch].gra++; - } - if (event & MCF_FEC_EIR_BABT) - { - fec_log[ch].total++; - fec_log[ch].babt++; - #ifdef CONFIG_DRIVER_NET_MCF54XX_DEBUG - printf("BABT\n"); - #endif - } - if (event & MCF_FEC_EIR_BABR) - { - fec_log[ch].total++; - fec_log[ch].babr++; - #ifdef CONFIG_DRIVER_NET_MCF54XX_DEBUG - printf("BABR\n"); - #endif - } - if (event & MCF_FEC_EIR_HBERR) - { - fec_log[ch].total++; - fec_log[ch].hberr++; - #ifdef CONFIG_DRIVER_NET_MCF54XX_DEBUG - printf("HBERR\n"); - #endif - } -} - -int -fec0_interrupt_handler(void* arg1, void* arg2) -{ - (void) arg1; - (void) arg2; - fec_irq_handler(0); - return 1; -} - -int -fec1_interrupt_handler(void* arg1, void* arg2) -{ - (void) arg1; - (void) arg2; - fec_irq_handler(1); - return 1; -} - -/* - * Configure the selected Ethernet port and enable all operations - * - * Parameters: - * ch FEC channel - * trcvr Transceiver mode (MII, 7-Wire or internal loopback) - * speed Maximum operating speed (MII only) - * duplex Full or Half-duplex (MII only) - * mac Physical (MAC) Address - */ -void -fec_eth_setup(uint8_t ch, uint8_t trcvr, uint8_t speed, uint8_t duplex, const uint8_t *mac) -{ - ASSERT(ch == 0 || ch == 1); - - /* - * Disable FEC interrupts - */ - fec_irq_disable(ch); - - /* - * Initialize the event log - */ - fec_log_init(ch); - - /* - * Initialize the network buffers and fec buffer descriptors - */ - nbuf_init(); - fecbd_init(ch); - - /* - * Initialize the FEC - */ - fec_reset(ch); - fec_init(ch,trcvr,mac); - - if (trcvr == FEC_MODE_MII) - { - /* - * Initialize the MII interface - */ - fec_mii_init(ch, CFG_SYSTEM_CORE_CLOCK); - } - - /* - * Initialize and enable FEC interrupts - */ - fec_irq_enable(ch, FEC_INTC_LVL(ch), FEC_INTC_PRI(ch)); - - /* - * Enable the multi-channel DMA tasks - */ - fec_rx_start(ch, (int8_t*)fecbd_get_start(ch,Rx)); - fec_tx_start(ch, (int8_t*)fecbd_get_start(ch,Tx)); - - /* - * Enable the FEC channel - */ - MCF_FEC_ECR(ch) |= MCF_FEC_ECR_ETHER_EN; -} -/* - * Reset the selected Ethernet port - * - * Parameters: - * ch FEC channel - */ -void -fec_eth_reset(uint8_t ch) -{ -// To do -} - -/* - * Stop the selected Ethernet port - * - * Parameters: - * ch FEC channel - */ -void -fec_eth_stop(uint8_t ch) -{ - int level; - - /* - * Disable interrupts - */ - level = asm_set_ipl(7); - - /* - * Gracefully disable the receiver and transmitter - */ - fec_tx_stop(ch); - fec_rx_stop(ch); - - /* - * Disable FEC interrupts - */ - fec_irq_disable(ch); - - /* - * Disable the FEC channel - */ - MCF_FEC_ECR(ch) &= ~MCF_FEC_ECR_ETHER_EN; - - #ifdef CONFIG_DRIVER_NET_MCF54XX_DEBUG - nbuf_debug_dump(); - fec_log_dump(ch); - #endif - - /* - * Flush the network buffers - */ - nbuf_flush(); - - /* - * Restore interrupt level - */ - asm_set_ipl(level); -} diff --git a/arch/m68k/mach-mcfv4e/fecbd.c b/arch/m68k/mach-mcfv4e/fecbd.c deleted file mode 100644 index a8e732b3a..000000000 --- a/arch/m68k/mach-mcfv4e/fecbd.c +++ /dev/null @@ -1,232 +0,0 @@ -/* - * File: fecbd.c - * Purpose: Provide a simple buffer management driver - * - * Notes: - */ -#include -#include - -#include -#include -#include -#include -#include -#include - -#define ASSERT(x) if (!(x)) hang(); - -/* - * This implements a simple static buffer descriptor - * ring for each channel and each direction - * - * FEC Buffer Descriptors need to be aligned to a 4-byte boundary. - * In order to accomplish this, data is over-allocated and manually - * aligned at runtime - * - * Enough space is allocated for each of the two FEC channels to have - * NRXBD Rx BDs and NTXBD Tx BDs - * - */ -FECBD unaligned_bds[(2 * NRXBD) + (2 * NTXBD) + 1]; - -/* - * These pointers are used to reference into the chunck of data set - * aside for buffer descriptors - */ -FECBD *RxBD; -FECBD *TxBD; - -/* - * Macros to easier access to the BD ring - */ -#define RxBD(ch,i) RxBD[(ch * NRXBD) + i] -#define TxBD(ch,i) TxBD[(ch * NTXBD) + i] - -/* - * Buffer descriptor indexes - */ -static int iTxbd_new; -static int iTxbd_old; -static int iRxbd; - -/* - * Initialize the FEC Buffer Descriptor ring - * Buffer Descriptor format is defined by the MCDAPI - * - * Parameters: - * ch FEC channel - */ -void -fecbd_init(uint8_t ch) -{ - NBUF *nbuf; - int i; - - /* - * Align Buffer Descriptors to 4-byte boundary - */ - RxBD = (FECBD *)(((int)unaligned_bds + 3) & 0xFFFFFFFC); - TxBD = (FECBD *)((int)RxBD + (sizeof(FECBD) * 2 * NRXBD)); - - /* - * Initialize the Rx Buffer Descriptor ring - */ - for (i = 0; i < NRXBD; ++i) - { - /* Grab a network buffer from the free list */ - nbuf = nbuf_alloc(); - ASSERT(nbuf); - - /* Initialize the BD */ - RxBD(ch,i).status = RX_BD_E | RX_BD_INTERRUPT; - RxBD(ch,i).length = RX_BUF_SZ; - RxBD(ch,i).data = nbuf->data; - - /* Add the network buffer to the Rx queue */ - nbuf_add(NBUF_RX_RING, nbuf); - } - - /* - * Set the WRAP bit on the last one - */ - RxBD(ch,i-1).status |= RX_BD_W; - - /* - * Initialize the Tx Buffer Descriptor ring - */ - for (i = 0; i < NTXBD; ++i) - { - TxBD(ch,i).status = TX_BD_INTERRUPT; - TxBD(ch,i).length = 0; - TxBD(ch,i).data = NULL; - } - - /* - * Set the WRAP bit on the last one - */ - TxBD(ch,i-1).status |= TX_BD_W; - - /* - * Initialize the buffer descriptor indexes - */ - iTxbd_new = iTxbd_old = iRxbd = 0; -} - -void -fecbd_dump(uint8_t ch) -{ - #ifdef CONFIG_DRIVER_NET_MCF54XX_DEBUG - int i; - - printf("\n------------ FEC%d BDs -----------\n",ch); - printf("RxBD Ring\n"); - for (i=0; i - * See file CREDITS for list of people who contributed to this project. - * - * This file is part of barebox. - * - * barebox is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * barebox is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with barebox. If not, see . - */ - -/** @file - * This File contains functions to query clock settings for the actual - * board. - */ -#ifndef __ASM_ARCH_CLOCKS_H -#define __ASM_ARCH_CLOCKS_H - -ulong mcfv4e_get_bus_clk(void); - -#endif /* __ASM_ARCH_CLOCKS_H */ diff --git a/arch/m68k/mach-mcfv4e/include/mach/debug_ll.h b/arch/m68k/mach-mcfv4e/include/mach/debug_ll.h deleted file mode 100644 index c58be7033..000000000 --- a/arch/m68k/mach-mcfv4e/include/mach/debug_ll.h +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright (c) 2008 Carsten Schlote - * See file CREDITS for list of people who contributed to this project. - * - * This file is part of barebox. - * - * barebox is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * barebox is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with barebox. If not, see . - */ - -/** @file - * This File contains declaration for early output support - */ -#ifndef __INCLUDE_ARCH_DEBUG_LL_H__ -#define __INCLUDE_ARCH_DEBUG_LL_H__ - -extern __inline__ void putc( char ch ) -{ - //extern int early_console_putc( char ch); - early_console_putc(NULL,ch); -} - -#endif /* __INCLUDE_ARCH_DEBUG_LL_H__ */ diff --git a/arch/m68k/mach-mcfv4e/include/mach/hardware.h b/arch/m68k/mach-mcfv4e/include/mach/hardware.h deleted file mode 100644 index 118afa63a..000000000 --- a/arch/m68k/mach-mcfv4e/include/mach/hardware.h +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright (c) 2008 Carsten Schlote - * See file CREDITS for list of people who contributed to this project. - * - * This file is part of barebox. - * - * barebox is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * barebox is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with barebox. If not, see . - */ - -/** @file - * This File contains declaration for early output support - */ -#ifndef __ASM_ARCH_HARDWARE_H__ -#define __ASM_ARCH_HARDWARE_H__ - -#include - -#ifdef CONFIG_ARCH_MCF54xx -#include "mcf54xx-regs.h" -#endif - -#endif /* __ASM_ARCH_HARDWARE_H__ */ diff --git a/arch/m68k/mach-mcfv4e/include/mach/mcf54xx-regs.h b/arch/m68k/mach-mcfv4e/include/mach/mcf54xx-regs.h deleted file mode 100644 index 8dd5ed2c1..000000000 --- a/arch/m68k/mach-mcfv4e/include/mach/mcf54xx-regs.h +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright (c) 2008 Carsten Schlote - * See file CREDITS for list of people who contributed to this project. - * - * This file is part of barebox. - * - * barebox is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * barebox is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with barebox. If not, see . - */ - -/** @file - * This File contains declaration for early output support - */ -#ifndef __MCF54xx_REGS_H__ -#define __MCF54xx_REGS_H__ - -/* System Registers for V4E cores (MCF547x and MCF548x) */ -#include - -#endif /* __MCF54xx_REGS_H__ */ diff --git a/arch/m68k/mach-mcfv4e/include/proc/dma_utils.h b/arch/m68k/mach-mcfv4e/include/proc/dma_utils.h deleted file mode 100644 index 1cb27822b..000000000 --- a/arch/m68k/mach-mcfv4e/include/proc/dma_utils.h +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Copyright (c) 2008 Carsten Schlote - * See file CREDITS for list of people who contributed to this project. - * - * This file is part of barebox. - * - * barebox is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * barebox is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with barebox. If not, see . - */ - -/** @file - * Declaration of support function used with the MultiChannel DMA - */ -#ifndef _DMA_UTILS_H_ -#define _DMA_UTILS_H_ - - -void dma_irq_enable(uint8_t, uint8_t); -void dma_irq_disable(void); -int dma_set_initiator(int); -uint32_t dma_get_initiator(int); -void dma_free_initiator(int); -int dma_set_channel(int, void (*)(void)); -int dma_get_channel(int); -void dma_free_channel(int); -int dma_interrupt_handler(void *, void *); - -/* - * Create identifiers for each initiator/requestor - */ -#define DMA_ALWAYS (0) -#define DMA_DSPI_RX (1) -#define DMA_DSPI_TX (2) -#define DMA_DREQ0 (3) -#define DMA_PSC0_RX (4) -#define DMA_PSC0_TX (5) -#define DMA_USBEP0 (6) -#define DMA_USBEP1 (7) -#define DMA_USBEP2 (8) -#define DMA_USBEP3 (9) -#define DMA_PCI_TX (10) -#define DMA_PCI_RX (11) -#define DMA_PSC1_RX (12) -#define DMA_PSC1_TX (13) -#define DMA_I2C_RX (14) -#define DMA_I2C_TX (15) -#define DMA_FEC0_RX (16) -#define DMA_FEC0_TX (17) -#define DMA_FEC1_RX (18) -#define DMA_FEC1_TX (19) -#define DMA_DREQ1 (20) -#define DMA_CTM0 (21) -#define DMA_CTM1 (22) -#define DMA_CTM2 (23) -#define DMA_CTM3 (24) -#define DMA_CTM4 (25) -#define DMA_CTM5 (26) -#define DMA_CTM6 (27) -#define DMA_CTM7 (28) -#define DMA_USBEP4 (29) -#define DMA_USBEP5 (30) -#define DMA_USBEP6 (31) -#define DMA_PSC2_RX (32) -#define DMA_PSC2_TX (33) -#define DMA_PSC3_RX (34) -#define DMA_PSC3_TX (35) -#define DMA_FEC_RX(x) ((x == 0) ? DMA_FEC0_RX : DMA_FEC1_RX) -#define DMA_FEC_TX(x) ((x == 0) ? DMA_FEC0_TX : DMA_FEC1_TX) - -#endif /* _DMA_UTILS_H_ */ diff --git a/arch/m68k/mach-mcfv4e/include/proc/fec.h b/arch/m68k/mach-mcfv4e/include/proc/fec.h deleted file mode 100644 index 16bfaa6de..000000000 --- a/arch/m68k/mach-mcfv4e/include/proc/fec.h +++ /dev/null @@ -1,130 +0,0 @@ -/* - * Copyright (c) 2008 Carsten Schlote - * See file CREDITS for list of people who contributed to this project. - * - * This file is part of barebox. - * - * barebox is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * barebox is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with barebox. If not, see . - */ - -/** @file - * Declaration for the Fast Ethernet Controller (FEC) - */ -#ifndef _FEC_H_ -#define _FEC_H_ - -// FIXME -#define NIF void - -/********************************************************************/ -/* MII Speed Settings */ -#define FEC_MII_10BASE_T 0 -#define FEC_MII_100BASE_TX 1 - -/* MII Duplex Settings */ -#define FEC_MII_HALF_DUPLEX 0 -#define FEC_MII_FULL_DUPLEX 1 - -/* Timeout for MII communications */ -#define FEC_MII_TIMEOUT 0x10000 - -/* External Interface Modes */ -#define FEC_MODE_7WIRE 0 -#define FEC_MODE_MII 1 -#define FEC_MODE_LOOPBACK 2 /* Internal Loopback */ - -/* - * FEC Event Log - */ -typedef struct { - int total; /* total count of errors */ - int hberr; /* heartbeat error */ - int babr; /* babbling receiver */ - int babt; /* babbling transmitter */ - int gra; /* graceful stop complete */ - int txf; /* transmit frame */ - int mii; /* MII */ - int lc; /* late collision */ - int rl; /* collision retry limit */ - int xfun; /* transmit FIFO underrrun */ - int xferr; /* transmit FIFO error */ - int rferr; /* receive FIFO error */ - int dtxf; /* DMA transmit frame */ - int drxf; /* DMA receive frame */ - int rfsw_inv; /* Invalid bit in RFSW */ - int rfsw_l; /* RFSW Last in Frame */ - int rfsw_m; /* RFSW Miss */ - int rfsw_bc; /* RFSW Broadcast */ - int rfsw_mc; /* RFSW Multicast */ - int rfsw_lg; /* RFSW Length Violation */ - int rfsw_no; /* RFSW Non-octet */ - int rfsw_cr; /* RFSW Bad CRC */ - int rfsw_ov; /* RFSW Overflow */ - int rfsw_tr; /* RFSW Truncated */ -} FEC_EVENT_LOG; - - -int fec_mii_write(uint8_t , uint8_t , uint8_t , uint16_t ); -int fec_mii_read(uint8_t , uint8_t , uint8_t , uint16_t *x); -void fec_mii_init(uint8_t, uint32_t); - -void fec_mib_init(uint8_t); -void fec_mib_dump(uint8_t); - -void fec_log_init(uint8_t); -void fec_log_dump(uint8_t); - -void fec_debug_dump(uint8_t); -void fec_duplex (uint8_t, uint8_t); - -uint8_t fec_hash_address(const uint8_t *); -void fec_set_address (uint8_t ch, const uint8_t *); - -void fec_reset (uint8_t); -void fec_init (uint8_t, uint8_t, const uint8_t *); - -void fec_rx_start(uint8_t, int8_t *); -void fec_rx_restart(uint8_t); -void fec_rx_stop (uint8_t); - -NBUF * fec_rx_frame(uint8_t ch, NIF *nif); - -void fec0_rx_frame(void); -void fec1_rx_frame(void); - -void fec_tx_start(uint8_t, int8_t *); -void fec_tx_restart(uint8_t); -void fec_tx_stop (uint8_t); - -void fec0_tx_frame(void); -void fec1_tx_frame(void); - -int fec_send(uint8_t, NIF *, uint8_t *, uint8_t *, uint16_t , NBUF *); -int fec0_send(NIF *, uint8_t *, uint8_t *, uint16_t , NBUF *); -int fec1_send(NIF *, uint8_t *, uint8_t *, uint16_t , NBUF *); - -void fec_irq_enable(uint8_t, uint8_t, uint8_t); -void fec_irq_disable(uint8_t); - -void fec_interrupt_handler(uint8_t); -int fec0_interrupt_handler(void *, void *); -int fec1_interrupt_handler(void *, void *); - -void fec_eth_setup(uint8_t, uint8_t, uint8_t, uint8_t, const uint8_t *); - -void fec_eth_reset(uint8_t); - -void fec_eth_stop(uint8_t); - -#endif /* _FEC_H_ */ diff --git a/arch/m68k/mach-mcfv4e/include/proc/fecbd.h b/arch/m68k/mach-mcfv4e/include/proc/fecbd.h deleted file mode 100644 index d7551c658..000000000 --- a/arch/m68k/mach-mcfv4e/include/proc/fecbd.h +++ /dev/null @@ -1,115 +0,0 @@ -/* - * Copyright (c) 2008 Carsten Schlote - * See file CREDITS for list of people who contributed to this project. - * - * This file is part of barebox. - * - * barebox is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * barebox is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with barebox. If not, see . - */ - -/** @file - * Provide a simple buffer management driver - */ - -#ifndef _FECBD_H_ -#define _FECBD_H_ - -/********************************************************************/ - -#define Rx 1 -#define Tx 0 - -/* - * Buffer sizes in bytes - */ -#ifndef RX_BUF_SZ -#define RX_BUF_SZ NBUF_SZ -#endif -#ifndef TX_BUF_SZ -#define TX_BUF_SZ NBUF_SZ -#endif - -/* - * Number of Rx and Tx Buffers and Buffer Descriptors - */ -#ifndef NRXBD -#define NRXBD 10 -#endif -#ifndef NTXBD -#define NTXBD 4 -#endif - -/* - * Buffer Descriptor Format - */ -typedef struct -{ - uint16_t status; /* control and status */ - uint16_t length; /* transfer length */ - uint8_t *data; /* buffer address */ -} FECBD; - -/* - * Bit level definitions for status field of buffer descriptors - */ -#define TX_BD_R 0x8000 -#define TX_BD_TO1 0x4000 -#define TX_BD_W 0x2000 -#define TX_BD_TO2 0x1000 -#define TX_BD_INTERRUPT 0x1000 /* MCF547x/8x Only */ -#define TX_BD_L 0x0800 -#define TX_BD_TC 0x0400 -#define TX_BD_DEF 0x0200 /* MCF5272 Only */ -#define TX_BD_ABC 0x0200 -#define TX_BD_HB 0x0100 /* MCF5272 Only */ -#define TX_BD_LC 0x0080 /* MCF5272 Only */ -#define TX_BD_RL 0x0040 /* MCF5272 Only */ -#define TX_BD_UN 0x0002 /* MCF5272 Only */ -#define TX_BD_CSL 0x0001 /* MCF5272 Only */ - -#define RX_BD_E 0x8000 -#define RX_BD_R01 0x4000 -#define RX_BD_W 0x2000 -#define RX_BD_R02 0x1000 -#define RX_BD_INTERRUPT 0x1000 /* MCF547x/8x Only */ -#define RX_BD_L 0x0800 -#define RX_BD_M 0x0100 -#define RX_BD_BC 0x0080 -#define RX_BD_MC 0x0040 -#define RX_BD_LG 0x0020 -#define RX_BD_NO 0x0010 -#define RX_BD_CR 0x0004 -#define RX_BD_OV 0x0002 -#define RX_BD_TR 0x0001 -#define RX_BD_ERROR (RX_BD_NO | RX_BD_CR | RX_BD_OV | RX_BD_TR) - -/* - * Functions provided in fec_bd.c - */ -void -fecbd_init(uint8_t); - -uint32_t -fecbd_get_start(uint8_t, uint8_t); - -FECBD * -fecbd_rx_alloc(uint8_t); - -FECBD * -fecbd_tx_alloc(uint8_t); - -FECBD * -fecbd_tx_free(uint8_t); - -#endif /* _FECBD_H_ */ diff --git a/arch/m68k/mach-mcfv4e/include/proc/mcdapi/MCD_dma.h b/arch/m68k/mach-mcfv4e/include/proc/mcdapi/MCD_dma.h deleted file mode 100644 index ad7f1393c..000000000 --- a/arch/m68k/mach-mcfv4e/include/proc/mcdapi/MCD_dma.h +++ /dev/null @@ -1,379 +0,0 @@ -/* - * Copyright (c) 2008 Carsten Schlote - * See file CREDITS for list of people who contributed to this project. - * - * This file is part of barebox. - * - * barebox is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * barebox is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with barebox. If not, see . - */ - -/** @file - * Main header file for multi-channel DMA API. - */ -#ifndef _MCD_API_H -#define _MCD_API_H - -/* - * Turn Execution Unit tasks ON (#define) or OFF (#undef) - */ -#undef MCD_INCLUDE_EU - -/* - * Number of DMA channels - */ -#define NCHANNELS 16 - -/* - * Total number of variants - */ -#ifdef MCD_INCLUDE_EU -#define NUMOFVARIANTS 6 -#else -#define NUMOFVARIANTS 4 -#endif - -/* - * Define sizes of the various tables - */ -#define TASK_TABLE_SIZE (NCHANNELS*32) -#define VAR_TAB_SIZE (128) -#define CONTEXT_SAVE_SIZE (128) -#define FUNCDESC_TAB_SIZE (256) - -#ifdef MCD_INCLUDE_EU -#define FUNCDESC_TAB_NUM 16 -#else -#define FUNCDESC_TAB_NUM 1 -#endif - - -#ifndef DEFINESONLY - -/* - * Portability typedefs - */ -//typedef signed int s32; -//typedef unsigned int u32; -//typedef signed short s16; -//typedef unsigned short u16; -//typedef signed char s8; -//typedef unsigned char u8; -// -/* - * These structures represent the internal registers of the - * multi-channel DMA - */ -struct dmaRegs_s { - u32 taskbar; /* task table base address register */ - u32 currPtr; - u32 endPtr; - u32 varTablePtr; - u16 dma_rsvd0; - u16 ptdControl; /* ptd control */ - u32 intPending; /* interrupt pending register */ - u32 intMask; /* interrupt mask register */ - u16 taskControl[16]; /* task control registers */ - u8 priority[32]; /* priority registers */ - u32 initiatorMux; /* initiator mux control */ - u32 taskSize0; /* task size control register 0. */ - u32 taskSize1; /* task size control register 1. */ - u32 dma_rsvd1; /* reserved */ - u32 dma_rsvd2; /* reserved */ - u32 debugComp1; /* debug comparator 1 */ - u32 debugComp2; /* debug comparator 2 */ - u32 debugControl; /* debug control */ - u32 debugStatus; /* debug status */ - u32 ptdDebug; /* priority task decode debug */ - u32 dma_rsvd3[31]; /* reserved */ -}; -typedef volatile struct dmaRegs_s dmaRegs; - -#endif - -/* - * PTD contrl reg bits - */ -#define PTD_CTL_TSK_PRI 0x8000 -#define PTD_CTL_COMM_PREFETCH 0x0001 - -/* - * Task Control reg bits and field masks - */ -#define TASK_CTL_EN 0x8000 -#define TASK_CTL_VALID 0x4000 -#define TASK_CTL_ALWAYS 0x2000 -#define TASK_CTL_INIT_MASK 0x1f00 -#define TASK_CTL_ASTRT 0x0080 -#define TASK_CTL_HIPRITSKEN 0x0040 -#define TASK_CTL_HLDINITNUM 0x0020 -#define TASK_CTL_ASTSKNUM_MASK 0x000f - -/* - * Priority reg bits and field masks - */ -#define PRIORITY_HLD 0x80 -#define PRIORITY_PRI_MASK 0x07 - -/* - * Debug Control reg bits and field masks - */ -#define DBG_CTL_BLOCK_TASKS_MASK 0xffff0000 -#define DBG_CTL_AUTO_ARM 0x00008000 -#define DBG_CTL_BREAK 0x00004000 -#define DBG_CTL_COMP1_TYP_MASK 0x00003800 -#define DBG_CTL_COMP2_TYP_MASK 0x00000070 -#define DBG_CTL_EXT_BREAK 0x00000004 -#define DBG_CTL_INT_BREAK 0x00000002 - -/* - * PTD Debug reg selector addresses - * This reg must be written with a value to show the contents of - * one of the desired internal register. - */ -#define PTD_DBG_REQ 0x00 /* shows the state of 31 initiators */ -#define PTD_DBG_TSK_VLD_INIT 0x01 /* shows which 16 tasks are valid and - have initiators asserted */ - - -/* - * General return values - */ -#define MCD_OK 0 -#define MCD_ERROR -1 -#define MCD_TABLE_UNALIGNED -2 -#define MCD_CHANNEL_INVALID -3 - -/* - * MCD_initDma input flags - */ -#define MCD_RELOC_TASKS 0x00000001 -#define MCD_NO_RELOC_TASKS 0x00000000 -#define MCD_COMM_PREFETCH_EN 0x00000002 /* Commbus Prefetching - MCF547x/548x ONLY */ - -/* - * MCD_dmaStatus Status Values for each channel - */ -#define MCD_NO_DMA 1 /* No DMA has been requested since reset */ -#define MCD_IDLE 2 /* DMA active, but the initiator is currently inactive */ -#define MCD_RUNNING 3 /* DMA active, and the initiator is currently active */ -#define MCD_PAUSED 4 /* DMA active but it is currently paused */ -#define MCD_HALTED 5 /* the most recent DMA has been killed with MCD_killTask() */ -#define MCD_DONE 6 /* the most recent DMA has completed. */ - - -/* - * MCD_startDma parameter defines - */ - -/* - * Constants for the funcDesc parameter - */ -/* Byte swapping: */ -#define MCD_NO_BYTE_SWAP 0x00045670 /* to disable byte swapping. */ -#define MCD_BYTE_REVERSE 0x00076540 /* to reverse the bytes of each u32 of the DMAed data. */ -#define MCD_U16_REVERSE 0x00067450 /* to reverse the 16-bit halves of - each 32-bit data value being DMAed.*/ -#define MCD_U16_BYTE_REVERSE 0x00054760 /* to reverse the byte halves of each - 16-bit half of each 32-bit data value DMAed */ -#define MCD_NO_BIT_REV 0x00000000 /* do not reverse the bits of each byte DMAed. */ -#define MCD_BIT_REV 0x00088880 /* reverse the bits of each byte DMAed */ -/* CRCing: */ -#define MCD_CRC16 0xc0100000 /* to perform CRC-16 on DMAed data. */ -#define MCD_CRCCCITT 0xc0200000 /* to perform CRC-CCITT on DMAed data. */ -#define MCD_CRC32 0xc0300000 /* to perform CRC-32 on DMAed data. */ -#define MCD_CSUMINET 0xc0400000 /* to perform internet checksums on DMAed data.*/ -#define MCD_NO_CSUM 0xa0000000 /* to perform no checksumming. */ - -#define MCD_FUNC_NOEU1 (MCD_NO_BYTE_SWAP | MCD_NO_BIT_REV | MCD_NO_CSUM) -#define MCD_FUNC_NOEU2 (MCD_NO_BYTE_SWAP | MCD_NO_CSUM) - -/* - * Constants for the flags parameter - */ -#define MCD_TT_FLAGS_RL 0x00000001 /* Read line */ -#define MCD_TT_FLAGS_CW 0x00000002 /* Combine Writes */ -#define MCD_TT_FLAGS_SP 0x00000004 /* Speculative prefetch(XLB) MCF547x/548x ONLY */ -#define MCD_TT_FLAGS_MASK 0x000000ff -#define MCD_TT_FLAGS_DEF (MCD_TT_FLAGS_RL | MCD_TT_FLAGS_CW) - -#define MCD_SINGLE_DMA 0x00000100 /* Unchained DMA */ -#define MCD_CHAIN_DMA /* TBD */ -#define MCD_EU_DMA /* TBD */ -#define MCD_FECTX_DMA 0x00001000 /* FEC TX ring DMA */ -#define MCD_FECRX_DMA 0x00002000 /* FEC RX ring DMA */ - - -/* these flags are valid for MCD_startDma and the chained buffer descriptors */ -#define MCD_BUF_READY 0x80000000 /* indicates that this buffer is now under the DMA's control */ -#define MCD_WRAP 0x20000000 /* to tell the FEC Dmas to wrap to the first BD */ -#define MCD_INTERRUPT 0x10000000 /* to generate an interrupt after completion of the DMA. */ -#define MCD_END_FRAME 0x08000000 /* tell the DMA to end the frame when transferring - last byte of data in buffer */ -#define MCD_CRC_RESTART 0x40000000 /* to empty out the accumulated checksum - prior to performing the DMA. */ - -/* Defines for the FEC buffer descriptor control/status word*/ -#define MCD_FEC_BUF_READY 0x8000 -#define MCD_FEC_WRAP 0x2000 -#define MCD_FEC_INTERRUPT 0x1000 -#define MCD_FEC_END_FRAME 0x0800 - - -/* - * Defines for general intuitiveness - */ - -#define MCD_TRUE 1 -#define MCD_FALSE 0 - -/* - * Three different cases for destination and source. - */ -#define MINUS1 -1 -#define ZERO 0 -#define PLUS1 1 - -#ifndef DEFINESONLY - -/* Task Table Entry struct*/ -typedef struct { - u32 TDTstart; /* task descriptor table start */ - u32 TDTend; /* task descriptor table end */ - u32 varTab; /* variable table start */ - u32 FDTandFlags; /* function descriptor table start and flags */ - volatile u32 descAddrAndStatus; - volatile u32 modifiedVarTab; - u32 contextSaveSpace; /* context save space start */ - u32 literalBases; -} TaskTableEntry; - - -/* Chained buffer descriptor */ -typedef volatile struct MCD_bufDesc_struct MCD_bufDesc; -struct MCD_bufDesc_struct { - u32 flags; /* flags describing the DMA */ - u32 csumResult; /* checksum from checksumming performed since last checksum reset */ - s8 *srcAddr; /* the address to move data from */ - s8 *destAddr; /* the address to move data to */ - s8 *lastDestAddr; /* the last address written to */ - u32 dmaSize; /* the number of bytes to transfer independent of the transfer size */ - MCD_bufDesc *next; /* next buffer descriptor in chain */ - u32 info; /* private information about this descriptor; DMA does not affect it */ -}; - -/* Progress Query struct */ -typedef volatile struct MCD_XferProg_struct { - s8 *lastSrcAddr; /* the most-recent or last, post-increment source address */ - s8 *lastDestAddr; /* the most-recent or last, post-increment destination address */ - u32 dmaSize; /* the amount of data transferred for the current buffer */ - MCD_bufDesc *currBufDesc;/* pointer to the current buffer descriptor being DMAed */ -} MCD_XferProg; - - -/* FEC buffer descriptor */ -typedef volatile struct MCD_bufDescFec_struct { - u16 statCtrl; - u16 length; - u32 dataPointer; -} MCD_bufDescFec; - - -/*************************************************************************/ -/* - * API function Prototypes - see MCD_dmaApi.c for further notes - */ - -/* - * MCD_startDma starts a particular kind of DMA . - */ -int MCD_startDma ( - int channel, /* the channel on which to run the DMA */ - s8 *srcAddr, /* the address to move data from, or buffer-descriptor address */ - s16 srcIncr, /* the amount to increment the source address per transfer */ - s8 *destAddr, /* the address to move data to */ - s16 destIncr, /* the amount to increment the destination address per transfer */ - u32 dmaSize, /* the number of bytes to transfer independent of the transfer size */ - u32 xferSize, /* the number bytes in of each data movement (1, 2, or 4) */ - u32 initiator, /* what device initiates the DMA */ - int priority, /* priority of the DMA */ - u32 flags, /* flags describing the DMA */ - u32 funcDesc /* a description of byte swapping, bit swapping, and CRC actions */ -); - -/* - * MCD_initDma() initializes the DMA API by setting up a pointer to the DMA - * registers, relocating and creating the appropriate task structures, and - * setting up some global settings - */ -int MCD_initDma (dmaRegs *sDmaBarAddr, void *taskTableDest, u32 flags); - -/* - * MCD_dmaStatus() returns the status of the DMA on the requested channel. - */ -int MCD_dmaStatus (int channel); - -/* - * MCD_XferProgrQuery() returns progress of DMA on requested channel - */ -int MCD_XferProgrQuery (int channel, MCD_XferProg *progRep); - -/* - * MCD_killDma() halts the DMA on the requested channel, without any - * intention of resuming the DMA. - */ -int MCD_killDma (int channel); - -/* - * MCD_continDma() continues a DMA which as stopped due to encountering an - * unready buffer descriptor. - */ -int MCD_continDma (int channel); - -/* - * MCD_pauseDma() pauses the DMA on the given channel ( if any DMA is - * running on that channel). - */ -int MCD_pauseDma (int channel); - -/* - * MCD_resumeDma() resumes the DMA on a given channel (if any DMA is - * running on that channel). - */ -int MCD_resumeDma (int channel); - -/* - * MCD_csumQuery provides the checksum/CRC after performing a non-chained DMA - */ -int MCD_csumQuery (int channel, u32 *csum); - -/* - * MCD_getCodeSize provides the packed size required by the microcoded task - * and structures. - */ -int MCD_getCodeSize(void); - -/* - * MCD_getVersion provides a pointer to a version string and returns a - * version number. - */ -int MCD_getVersion(char **longVersion); - -/* macro for setting a location in the variable table */ -#define MCD_SET_VAR(taskTab,idx,value) ((u32 *)(taskTab)->varTab)[idx] = value - /* Note that MCD_SET_VAR() is invoked many times in firing up a DMA function, - so I'm avoiding surrounding it with "do {} while(0)" */ - -#endif /* DEFINESONLY */ - -#endif /* _MCD_API_H */ diff --git a/arch/m68k/mach-mcfv4e/include/proc/mcdapi/MCD_progCheck.h b/arch/m68k/mach-mcfv4e/include/proc/mcdapi/MCD_progCheck.h deleted file mode 100644 index a536f147c..000000000 --- a/arch/m68k/mach-mcfv4e/include/proc/mcdapi/MCD_progCheck.h +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright (c) 2008 Carsten Schlote - * See file CREDITS for list of people who contributed to this project. - * - * This file is part of barebox. - * - * barebox is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * barebox is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with barebox. If not, see . - */ - -/** @file - * This file is autogenerated. Do not change . - */ -#define CURRBD 4 -#define DCOUNT 6 -#define DESTPTR 5 -#define SRCPTR 7 diff --git a/arch/m68k/mach-mcfv4e/include/proc/mcdapi/MCD_tasksInit.h b/arch/m68k/mach-mcfv4e/include/proc/mcdapi/MCD_tasksInit.h deleted file mode 100644 index 6b19d0262..000000000 --- a/arch/m68k/mach-mcfv4e/include/proc/mcdapi/MCD_tasksInit.h +++ /dev/null @@ -1,66 +0,0 @@ -/* - * Copyright (c) 2008 Carsten Schlote - * See file CREDITS for list of people who contributed to this project. - * - * This file is part of barebox. - * - * barebox is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * barebox is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with barebox. If not, see . - */ - -/** @file - * Declaration for the MCD tasks. Do not edit. - */ -#ifndef MCD_TSK_INIT_H -#define MCD_TSK_INIT_H 1 - -/* - * Do not edit! - */ - -/* - * Task 0 - */ -void MCD_startDmaChainNoEu(int *currBD, short srcIncr, short destIncr, int xferSize, short xferSizeIncr, int *cSave, volatile TaskTableEntry *taskTable, int channel); - - -/* - * Task 1 - */ -void MCD_startDmaSingleNoEu(char *srcAddr, short srcIncr, char *destAddr, short destIncr, int dmaSize, short xferSizeIncr, int flags, int *currBD, int *cSave, volatile TaskTableEntry *taskTable, int channel); - - -/* - * Task 2 - */ -void MCD_startDmaChainEu(int *currBD, short srcIncr, short destIncr, int xferSize, short xferSizeIncr, int *cSave, volatile TaskTableEntry *taskTable, int channel); - - -/* - * Task 3 - */ -void MCD_startDmaSingleEu(char *srcAddr, short srcIncr, char *destAddr, short destIncr, int dmaSize, short xferSizeIncr, int flags, int *currBD, int *cSave, volatile TaskTableEntry *taskTable, int channel); - - -/* - * Task 4 - */ -void MCD_startDmaENetRcv(char *bDBase, char *currBD, char *rcvFifoPtr, volatile TaskTableEntry *taskTable, int channel); - - -/* - * Task 5 - */ -void MCD_startDmaENetXmit(char *bDBase, char *currBD, char *xmitFifoPtr, volatile TaskTableEntry *taskTable, int channel); - -#endif /* MCD_TSK_INIT_H */ diff --git a/arch/m68k/mach-mcfv4e/include/proc/net/eth.h b/arch/m68k/mach-mcfv4e/include/proc/net/eth.h deleted file mode 100644 index e86d0646c..000000000 --- a/arch/m68k/mach-mcfv4e/include/proc/net/eth.h +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright (c) 2008 Carsten Schlote - * See file CREDITS for list of people who contributed to this project. - * - * This file is part of barebox. - * - * barebox is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * barebox is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with barebox. If not, see . - */ - -/** @file - * Declaration for for Ethernet Frames. - */ - -#ifndef _ETH_H -#define _ETH_H - - -/* Ethernet standard lengths in bytes*/ -#define ETH_ADDR_LEN (6) -#define ETH_TYPE_LEN (2) -#define ETH_CRC_LEN (4) -#define ETH_MAX_DATA (1500) -#define ETH_MIN_DATA (46) -#define ETH_HDR_LEN (ETH_ADDR_LEN * 2 + ETH_TYPE_LEN) - -/* Defined Ethernet Frame Types */ -#define ETH_FRM_IP (0x0800) -#define ETH_FRM_ARP (0x0806) -#define ETH_FRM_RARP (0x8035) -#define ETH_FRM_TEST (0xA5A5) - -/* Maximum and Minimum Ethernet Frame Sizes */ -#define ETH_MAX_FRM (ETH_HDR_LEN + ETH_MAX_DATA + ETH_CRC_LEN) -#define ETH_MIN_FRM (ETH_HDR_LEN + ETH_MIN_DATA + ETH_CRC_LEN) -#define ETH_MTU (ETH_HDR_LEN + ETH_MAX_DATA) - -/* Ethernet Addresses */ -typedef uint8_t ETH_ADDR[ETH_ADDR_LEN]; - -/* 16-bit Ethernet Frame Type, ie. Protocol */ -typedef uint16_t ETH_FRM_TYPE; - -/* Ethernet Frame Header definition */ -typedef struct -{ - ETH_ADDR dest; - ETH_ADDR src; - ETH_FRM_TYPE type; -} ETH_HDR; - -/* Ethernet Frame definition */ -typedef struct -{ - ETH_HDR head; - uint8_t* data; -} ETH_FRAME; - - -#endif /* _ETH_H */ diff --git a/arch/m68k/mach-mcfv4e/include/proc/net/nbuf.h b/arch/m68k/mach-mcfv4e/include/proc/net/nbuf.h deleted file mode 100644 index 8b6a89c27..000000000 --- a/arch/m68k/mach-mcfv4e/include/proc/net/nbuf.h +++ /dev/null @@ -1,88 +0,0 @@ -/* - * Copyright (c) 2008 Carsten Schlote - * See file CREDITS for list of people who contributed to this project. - * - * This file is part of barebox. - * - * barebox is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * barebox is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with barebox. If not, see . - */ - -/** @file - * Definitions for network buffer management - */ - -#ifndef _MCFV4E_NBUF_H_ -#define _MCFV4E_NBUF_H_ - -/* - * Include the Queue structure definitions - */ -#include "queue.h" - -/* - * Number of network buffers to use - */ -#define NBUF_MAX 30 - -/* - * Size of each buffer in bytes - */ -#ifndef NBUF_SZ -#define NBUF_SZ 1520 -#endif - -/* - * Defines to identify all the buffer queues - * - FREE must always be defined as 0 - */ -#define NBUF_FREE 0 /* available buffers */ -#define NBUF_TX_RING 1 /* buffers in the Tx BD ring */ -#define NBUF_RX_RING 2 /* buffers in the Rx BD ring */ -#define NBUF_SCRATCH 3 /* misc */ -#define NBUF_MAXQ 4 /* total number of queueus */ - -/* - * Buffer Descriptor Format - * - * Fields: - * next Pointer to next node in the queue - * data Pointer to the data buffer - * offset Index into buffer - * length Remaining bytes in buffer from (data + offset) - */ -typedef struct -{ - QNODE node; - uint8_t *data; - uint16_t offset; - uint16_t length; -} NBUF; - -/* - * Functions to manipulate the network buffers. - */ -int nbuf_init(void); -void nbuf_flush(void); - -NBUF * nbuf_alloc (void); -void nbuf_free(NBUF *); - -NBUF *nbuf_remove(int); -void nbuf_add(int, NBUF *); - -void nbuf_reset(void); -void nbuf_debug_dump(void); - - -#endif /* _MCFV4E_NBUF_H_ */ diff --git a/arch/m68k/mach-mcfv4e/include/proc/net/net.h b/arch/m68k/mach-mcfv4e/include/proc/net/net.h deleted file mode 100644 index d6877596b..000000000 --- a/arch/m68k/mach-mcfv4e/include/proc/net/net.h +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright (c) 2008 Carsten Schlote - * See file CREDITS for list of people who contributed to this project. - * - * This file is part of barebox. - * - * barebox is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * barebox is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with barebox. If not, see . - */ - -/** @file - * Network definitions and prototypes for dBUG. - */ - -#ifndef _MCFV4E_NET_H -#define _MCFV4E_NET_H - -/* - * Include information and prototypes for all protocols - */ -#include "eth.h" -#include "nbuf.h" - -int netif_init(int channel); -int netif_setup(int channel); -int netif_done(int channel); - -#endif /* _MCFV4E_NET_H */ - diff --git a/arch/m68k/mach-mcfv4e/include/proc/net/queue.h b/arch/m68k/mach-mcfv4e/include/proc/net/queue.h deleted file mode 100644 index d5c13f8a5..000000000 --- a/arch/m68k/mach-mcfv4e/include/proc/net/queue.h +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright (c) 2008 Carsten Schlote - * See file CREDITS for list of people who contributed to this project. - * - * This file is part of barebox. - * - * barebox is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * barebox is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with barebox. If not, see . - */ - -/** @file - * Implement a first in, first out linked list - */ -#ifndef _QUEUE_H_ -#define _QUEUE_H_ - -/* - * Individual queue node - */ -typedef struct NODE -{ - struct NODE *next; -} QNODE; - -/* - * Queue Struture - linked list of qentry items - */ -typedef struct -{ - QNODE *head; - QNODE *tail; -} QUEUE; - -/* - * Functions provided by queue.c - */ -void queue_init(QUEUE *); -int queue_isempty(QUEUE *); -void queue_add(QUEUE *, QNODE *); -QNODE* queue_remove(QUEUE *); -QNODE* queue_peek(QUEUE *); -void queue_move(QUEUE *, QUEUE *); - -#endif /* _QUEUE_H_ */ diff --git a/arch/m68k/mach-mcfv4e/include/proc/processor.h b/arch/m68k/mach-mcfv4e/include/proc/processor.h deleted file mode 100644 index 4f196bda9..000000000 --- a/arch/m68k/mach-mcfv4e/include/proc/processor.h +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright (c) 2008 Carsten Schlote - * See file CREDITS for list of people who contributed to this project. - * - * This file is part of barebox. - * - * barebox is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * barebox is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with barebox. If not, see . - */ - -/** @file - * Coldfire V4e processor specific defines - */ - -/* Empty dummy FIXME */ - -/* interrupt management */ - -void mcf_interrupts_initialize (void); -int mcf_interrupts_register_handler (int vector, int (*handler)(void *, void *), void *hdev, void *harg); -void mcf_interrupts_remove_handler (int (*handler)(void *, void *)); -int mcf_execute_irq_handler (struct pt_regs *pt_regs,int); - diff --git a/arch/m68k/mach-mcfv4e/include/proc/ptrace.h b/arch/m68k/mach-mcfv4e/include/proc/ptrace.h deleted file mode 100644 index 5e120596d..000000000 --- a/arch/m68k/mach-mcfv4e/include/proc/ptrace.h +++ /dev/null @@ -1,119 +0,0 @@ -/* - * Copyright (c) 2008 Carsten Schlote - * See file CREDITS for list of people who contributed to this project. - * - * This file is part of barebox. - * - * barebox is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * barebox is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with barebox. If not, see . - */ - -/** @file - * Declaration and defines for M68k register frames - */ -#ifndef __ASM_PROC_PTRACE_H -#define __ASM_PROC_PTRACE_H - -#define TRACE_FLAG 0x8000 -#define SVR_MODE 0x2000 -#define MODE_MASK 0x2000 -#define MASTER_FLAG 0x1000 -#define IRQ_MASK 0x0700 -#define CC_MASK 0x00FF - -#define CC_X_BIT 0x0010 -#define CC_N_BIT 0x0008 -#define CC_Z_BIT 0x0004 -#define CC_V_BIT 0x0002 -#define CC_C_BIT 0x0001 - -#define PCMASK 0x0 - -#ifndef __ASSEMBLY__ - -/* this struct defines the way the registers are stored on the - stack during a system call. */ - -struct pt_regs { - long uregs[37]; -}; -#define M68K_sp uregs[37] -#define M68K_sr uregs[36] -#define M68K_pc uregs[35] -#define M68K_fpiar uregs[34] -#define M68K_fpsr uregs[33] -#define M68K_fpcr uregs[32] - -#define M68K_fp7 uregs[30] -#define M68K_fp6 uregs[28] -#define M68K_fp5 uregs[26] -#define M68K_fp4 uregs[24] -#define M68K_fp3 uregs[22] -#define M68K_fp2 uregs[20] -#define M68K_fp1 uregs[18] -#define M68K_fp0 uregs[16] - -#define M68K_a7 uregs[15] -#define M68K_a6 uregs[14] -#define M68K_a5 uregs[13] -#define M68K_a4 uregs[12] -#define M68K_a3 uregs[11] -#define M68K_a2 uregs[10] -#define M68K_a1 uregs[ 9] -#define M68K_a0 uregs[ 8] -#define M68K_d7 uregs[ 7] -#define M68K_d6 uregs[ 6] -#define M68K_d5 uregs[ 5] -#define M68K_d4 uregs[ 4] -#define M68K_d3 uregs[ 3] -#define M68K_d2 uregs[ 2] -#define M68K_d1 uregs[ 1] -#define M68K_d0 uregs[ 0] - - -#ifdef __KERNEL__ - -#define user_mode(regs) \ - (((regs)->M68K_sr & SVR_MODE) == 0) - -#define processor_mode(regs) \ - ((regs)->M68K_sr & SVR_MODE) - -#define interrupts_enabled(regs) \ - (!((regs)->M68K_sr & IRQ_MASK)) - -#define condition_codes(regs) \ - ((regs)->M68K_sr & CC_MASK) - -/* Are the current registers suitable for user mode? - * (used to maintain security in signal handlers) - */ -static inline int valid_user_regs(struct pt_regs *regs) -{ - if ((regs->M68K_sr & SVR_MODE) == 0 && - (regs->M68K_sr & IRQ_MASK) == 7) - return 1; - - /* - * Force SR to something logical... - */ - regs->M68K_sr &= ~(CC_MASK); - - return 0; -} - -#endif /* __KERNEL__ */ - -#endif /* __ASSEMBLY__ */ - -#endif diff --git a/arch/m68k/mach-mcfv4e/mcdapi/MCD_dmaApi.c b/arch/m68k/mach-mcfv4e/mcdapi/MCD_dmaApi.c deleted file mode 100644 index 60e2b6dd7..000000000 --- a/arch/m68k/mach-mcfv4e/mcdapi/MCD_dmaApi.c +++ /dev/null @@ -1,907 +0,0 @@ -/* - * File: MCD_dmaApi.c - * Purpose: Main C file for multi-channel DMA API. - * - * Notes: - */ - -#include -#include -#include -#include - -/* - * This is an API-internal pointer to the DMA's registers - */ -dmaRegs *MCD_dmaBar; - -/* - * These are the real and model task tables as generated by the - * build process - */ -extern TaskTableEntry MCD_realTaskTableSrc[NCHANNELS]; -extern TaskTableEntry MCD_modelTaskTableSrc[NUMOFVARIANTS]; - -/* - * However, this (usually) gets relocated to on-chip SRAM, at which - * point we access them as these tables - */ -volatile TaskTableEntry *MCD_taskTable; -TaskTableEntry *MCD_modelTaskTable; - - -/* - * MCD_chStatus[] is an array of status indicators for remembering - * whether a DMA has ever been attempted on each channel, pausing - * status, etc. - */ -static int MCD_chStatus[NCHANNELS] = -{ - MCD_NO_DMA, MCD_NO_DMA, MCD_NO_DMA, MCD_NO_DMA, - MCD_NO_DMA, MCD_NO_DMA, MCD_NO_DMA, MCD_NO_DMA, - MCD_NO_DMA, MCD_NO_DMA, MCD_NO_DMA, MCD_NO_DMA, - MCD_NO_DMA, MCD_NO_DMA, MCD_NO_DMA, MCD_NO_DMA -}; - -/* - * Prototypes for local functions - */ -static void MCD_memcpy (int *dest, int *src, u32 size); -static void MCD_resmActions (int channel); - -/* - * Buffer descriptors used for storage of progress info for single Dmas - * Also used as storage for the DMA for CRCs for single DMAs - * Otherwise, the DMA does not parse these buffer descriptors - */ -#ifdef MCD_INCLUDE_EU -extern MCD_bufDesc MCD_singleBufDescs[NCHANNELS]; -#else -MCD_bufDesc MCD_singleBufDescs[NCHANNELS]; -#endif -MCD_bufDesc *MCD_relocBuffDesc; - - -/* - * Defines for the debug control register's functions - */ -#define DBG_CTL_COMP1_TASK (0x00002000) /* have comparator 1 look for a task # */ -#define DBG_CTL_ENABLE (DBG_CTL_AUTO_ARM | \ - DBG_CTL_BREAK | \ - DBG_CTL_INT_BREAK | \ - DBG_CTL_COMP1_TASK) -#define DBG_CTL_DISABLE (DBG_CTL_AUTO_ARM | \ - DBG_CTL_INT_BREAK | \ - DBG_CTL_COMP1_TASK) -#define DBG_KILL_ALL_STAT (0xFFFFFFFF) - -/* - * Offset to context save area where progress info is stored - */ -#define CSAVE_OFFSET 10 - -/* - * Defines for Byte Swapping - */ -#define MCD_BYTE_SWAP_KILLER 0xFFF8888F -#define MCD_NO_BYTE_SWAP_ATALL 0x00040000 - -/* - * Execution Unit Identifiers - */ -#define MAC 0 /* legacy - not used */ -#define LUAC 1 /* legacy - not used */ -#define CRC 2 /* legacy - not used */ -#define LURC 3 /* Logic Unit with CRC */ - -/* - * Task Identifiers - */ -#define TASK_CHAINNOEU 0 -#define TASK_SINGLENOEU 1 -#ifdef MCD_INCLUDE_EU -#define TASK_CHAINEU 2 -#define TASK_SINGLEEU 3 -#define TASK_FECRX 4 -#define TASK_FECTX 5 -#else -#define TASK_CHAINEU 0 -#define TASK_SINGLEEU 1 -#define TASK_FECRX 2 -#define TASK_FECTX 3 -#endif - -/* - * Structure to remember which variant is on which channel - * TBD- need this? - */ -typedef struct MCD_remVariants_struct MCD_remVariant; -struct MCD_remVariants_struct -{ - int remDestRsdIncr[NCHANNELS]; /* -1,0,1 */ - int remSrcRsdIncr[NCHANNELS]; /* -1,0,1 */ - s16 remDestIncr[NCHANNELS]; /* DestIncr */ - s16 remSrcIncr[NCHANNELS]; /* srcIncr */ - u32 remXferSize[NCHANNELS]; /* xferSize */ -}; - -/* - * Structure to remember the startDma parameters for each channel - */ -MCD_remVariant MCD_remVariants; - -/* - * Function: MCD_initDma - * Purpose: Initializes the DMA API by setting up a pointer to the DMA - * registers, relocating and creating the appropriate task - * structures, and setting up some global settings - * Arguments: - * dmaBarAddr - pointer to the multichannel DMA registers - * taskTableDest - location to move DMA task code and structs to - * flags - operational parameters - * Return Value: - * MCD_TABLE_UNALIGNED if taskTableDest is not 512-byte aligned - * MCD_OK otherwise - */ -extern u32 MCD_funcDescTab0[]; - -int MCD_initDma (dmaRegs *dmaBarAddr, void *taskTableDest, u32 flags) -{ - int i; - TaskTableEntry *entryPtr; - - /* setup the local pointer to register set */ - MCD_dmaBar = dmaBarAddr; - - /* do we need to move/create a task table */ - if ((flags & MCD_RELOC_TASKS) != 0) - { - int fixedSize; - u32 *fixedPtr; - /*int *tablePtr = taskTableDest;TBD*/ - int varTabsOffset, funcDescTabsOffset, contextSavesOffset; - int taskDescTabsOffset; - int taskTableSize, varTabsSize, funcDescTabsSize, contextSavesSize; - int taskDescTabSize; - - int i; - - /* check if physical address is aligned on 512 byte boundary */ - if (((u32)taskTableDest & 0x000001ff) != 0) - return(MCD_TABLE_UNALIGNED); - - MCD_taskTable = taskTableDest; /* set up local pointer to task Table */ - - /* - * Create a task table: - * - compute aligned base offsets for variable tables and - * function descriptor tables, then - * - loop through the task table and setup the pointers - * - copy over model task table with the the actual task descriptor - * tables - */ - - taskTableSize = NCHANNELS * sizeof(TaskTableEntry); - /* align variable tables to size */ - varTabsOffset = taskTableSize + (u32)taskTableDest; - if ((varTabsOffset & (VAR_TAB_SIZE - 1)) != 0) - varTabsOffset = (varTabsOffset + VAR_TAB_SIZE) & (~VAR_TAB_SIZE); - /* align function descriptor tables */ - varTabsSize = NCHANNELS * VAR_TAB_SIZE; - funcDescTabsOffset = varTabsOffset + varTabsSize; - - if ((funcDescTabsOffset & (FUNCDESC_TAB_SIZE - 1)) != 0) - funcDescTabsOffset = (funcDescTabsOffset + FUNCDESC_TAB_SIZE) & - (~FUNCDESC_TAB_SIZE); - - funcDescTabsSize = FUNCDESC_TAB_NUM * FUNCDESC_TAB_SIZE; - contextSavesOffset = funcDescTabsOffset + funcDescTabsSize; - contextSavesSize = (NCHANNELS * CONTEXT_SAVE_SIZE); - fixedSize = taskTableSize + varTabsSize + funcDescTabsSize + - contextSavesSize; - - /* zero the thing out */ - fixedPtr = (u32 *)taskTableDest; - for (i = 0;i<(fixedSize/4);i++) - fixedPtr[i] = 0; - - entryPtr = (TaskTableEntry*)MCD_taskTable; - /* set up fixed pointers */ - for (i = 0; i < NCHANNELS; i++) - { - entryPtr[i].varTab = (u32)varTabsOffset; /* update ptr to local value */ - entryPtr[i].FDTandFlags = (u32)funcDescTabsOffset | MCD_TT_FLAGS_DEF; - entryPtr[i].contextSaveSpace = (u32)contextSavesOffset; - varTabsOffset += VAR_TAB_SIZE; -#ifdef MCD_INCLUDE_EU /* if not there is only one, just point to the same one */ - funcDescTabsOffset += FUNCDESC_TAB_SIZE; -#endif - contextSavesOffset += CONTEXT_SAVE_SIZE; - } - /* copy over the function descriptor table */ - for ( i = 0; i < FUNCDESC_TAB_NUM; i++) - { - MCD_memcpy((void*)(entryPtr[i].FDTandFlags & ~MCD_TT_FLAGS_MASK), - (void*)MCD_funcDescTab0, FUNCDESC_TAB_SIZE); - } - - /* copy model task table to where the context saves stuff leaves off*/ - MCD_modelTaskTable = (TaskTableEntry*)contextSavesOffset; - - MCD_memcpy ((void*)MCD_modelTaskTable, (void*)MCD_modelTaskTableSrc, - NUMOFVARIANTS * sizeof(TaskTableEntry)); - - entryPtr = MCD_modelTaskTable; /* point to local version of - model task table */ - taskDescTabsOffset = (u32)MCD_modelTaskTable + - (NUMOFVARIANTS * sizeof(TaskTableEntry)); - - /* copy actual task code and update TDT ptrs in local model task table */ - for (i = 0; i < NUMOFVARIANTS; i++) - { - taskDescTabSize = entryPtr[i].TDTend - entryPtr[i].TDTstart + 4; - MCD_memcpy ((void*)taskDescTabsOffset, (void*)entryPtr[i].TDTstart, taskDescTabSize); - entryPtr[i].TDTstart = (u32)taskDescTabsOffset; - taskDescTabsOffset += taskDescTabSize; - entryPtr[i].TDTend = (u32)taskDescTabsOffset - 4; - } -#ifdef MCD_INCLUDE_EU /* Tack single DMA BDs onto end of code so API controls - where they are since DMA might write to them */ - MCD_relocBuffDesc = (MCD_bufDesc*)(entryPtr[NUMOFVARIANTS - 1].TDTend + 4); -#else /* DMA does not touch them so they can be wherever and we don't need to - waste SRAM on them */ - MCD_relocBuffDesc = MCD_singleBufDescs; -#endif - } - else - { - /* point the would-be relocated task tables and the - buffer descriptors to the ones the linker generated */ - - if (((u32)MCD_realTaskTableSrc & 0x000001ff) != 0) - return(MCD_TABLE_UNALIGNED); - - /* need to add code to make sure that every thing else is aligned properly TBD*/ - /* this is problematic if we init more than once or after running tasks, - need to add variable to see if we have aleady init'd */ - entryPtr = MCD_realTaskTableSrc; - for (i = 0; i < NCHANNELS; i++) - { - if (((entryPtr[i].varTab & (VAR_TAB_SIZE - 1)) != 0) || - ((entryPtr[i].FDTandFlags & (FUNCDESC_TAB_SIZE - 1)) != 0)) - return(MCD_TABLE_UNALIGNED); - } - - MCD_taskTable = MCD_realTaskTableSrc; - MCD_modelTaskTable = MCD_modelTaskTableSrc; - MCD_relocBuffDesc = MCD_singleBufDescs; - } - - - /* Make all channels as totally inactive, and remember them as such: */ - - MCD_dmaBar->taskbar = (u32) MCD_taskTable; - for (i = 0; i < NCHANNELS; i++) - { - MCD_dmaBar->taskControl[i] = 0x0; - MCD_chStatus[i] = MCD_NO_DMA; - } - - /* Set up pausing mechanism to inactive state: */ - MCD_dmaBar->debugComp1 = 0; /* no particular values yet for either comparator registers */ - MCD_dmaBar->debugComp2 = 0; - MCD_dmaBar->debugControl = DBG_CTL_DISABLE; - MCD_dmaBar->debugStatus = DBG_KILL_ALL_STAT; - - /* enable or disable commbus prefetch, really need an ifdef or - something to keep from trying to set this in the 8220 */ - if ((flags & MCD_COMM_PREFETCH_EN) != 0) - MCD_dmaBar->ptdControl &= ~PTD_CTL_COMM_PREFETCH; - else - MCD_dmaBar->ptdControl |= PTD_CTL_COMM_PREFETCH; - - return(MCD_OK); -} - -/* Function: MCD_dmaStatus - * Purpose: Returns the status of the DMA on the requested channel - * Arguments: channel - channel number - * Returns: Predefined status indicators - */ -int MCD_dmaStatus (int channel) -{ - u16 tcrValue; - - if((channel < 0) || (channel >= NCHANNELS)) - return(MCD_CHANNEL_INVALID); - - tcrValue = MCD_dmaBar->taskControl[channel]; - if ((tcrValue & TASK_CTL_EN) == 0) - { /* nothing running */ - /* if last reported with task enabled */ - if ( MCD_chStatus[channel] == MCD_RUNNING - || MCD_chStatus[channel] == MCD_IDLE) - MCD_chStatus[channel] = MCD_DONE; - } - else /* something is running */ - { - /* There are three possibilities: paused, running or idle. */ - if ( MCD_chStatus[channel] == MCD_RUNNING - || MCD_chStatus[channel] == MCD_IDLE) - { - MCD_dmaBar->ptdDebug = PTD_DBG_TSK_VLD_INIT; - /* This register is selected to know which initiator is - actually asserted. */ - if ((MCD_dmaBar->ptdDebug >> channel ) & 0x1 ) - MCD_chStatus[channel] = MCD_RUNNING; - else - MCD_chStatus[channel] = MCD_IDLE; - /* do not change the status if it is already paused. */ - } - } - return MCD_chStatus[channel]; -} - -/* Function: MCD_startDma - * Ppurpose: Starts a particular kind of DMA - * Arguments: see below - * Returns: MCD_CHANNEL_INVALID if channel is invalid, else MCD_OK - */ - -int MCD_startDma ( - int channel, /* the channel on which to run the DMA */ - s8 *srcAddr, /* the address to move data from, or physical buffer-descriptor address */ - s16 srcIncr, /* the amount to increment the source address per transfer */ - s8 *destAddr, /* the address to move data to */ - s16 destIncr, /* the amount to increment the destination address per transfer */ - u32 dmaSize, /* the number of bytes to transfer independent of the transfer size */ - u32 xferSize, /* the number bytes in of each data movement (1, 2, or 4) */ - u32 initiator, /* what device initiates the DMA */ - int priority, /* priority of the DMA */ - u32 flags, /* flags describing the DMA */ - u32 funcDesc /* a description of byte swapping, bit swapping, and CRC actions */ -#ifdef MCD_NEED_ADDR_TRANS - s8 *srcAddrVirt /* virtual buffer descriptor address TBD*/ -#endif -) -{ - int srcRsdIncr, destRsdIncr; - int *cSave; - short xferSizeIncr; - int tcrCount = 0; -#ifdef MCD_INCLUDE_EU - u32 *realFuncArray; -#endif - - if((channel < 0) || (channel >= NCHANNELS)) - return(MCD_CHANNEL_INVALID); - - /* tbd - need to determine the proper response to a bad funcDesc when not - including EU functions, for now, assign a benign funcDesc, but maybe - should return an error */ -#ifndef MCD_INCLUDE_EU - funcDesc = MCD_FUNC_NOEU1; -#endif - -#ifdef MCD_DEBUG -printf("startDma:Setting up params\n"); -#endif - /* Set us up for task-wise priority. We don't technically need to do this on every start, but - since the register involved is in the same longword as other registers that users are in control - of, setting it more than once is probably preferable. That since the documentation doesn't seem - to be completely consistent about the nature of the PTD control register. */ - MCD_dmaBar->ptdControl |= (u16) 0x8000; -#if 1 /* Not sure what we need to keep here rtm TBD */ - /* Calculate additional parameters to the regular DMA calls. */ - srcRsdIncr = srcIncr < 0 ? -1 : (srcIncr > 0 ? 1 : 0); - destRsdIncr = destIncr < 0 ? -1 : (destIncr > 0 ? 1 : 0); - - xferSizeIncr = (xferSize & 0xffff) | 0x20000000; - - /* Remember for each channel which variant is running. */ - MCD_remVariants.remSrcRsdIncr[channel] = srcRsdIncr; - MCD_remVariants.remDestRsdIncr[channel] = destRsdIncr; - MCD_remVariants.remDestIncr[channel] = destIncr; - MCD_remVariants.remSrcIncr[channel] = srcIncr; - MCD_remVariants.remXferSize[channel] = xferSize; -#endif - - cSave = (int*)(MCD_taskTable[channel].contextSaveSpace) + CSAVE_OFFSET + CURRBD; - -#ifdef MCD_INCLUDE_EU /* may move this to EU specific calls */ - realFuncArray = (u32 *) (MCD_taskTable[channel].FDTandFlags & 0xffffff00); - /* Modify the LURC's normal and byte-residue-loop functions according to parameter. */ - realFuncArray[(LURC*16)] = xferSize == 4 ? - funcDesc : xferSize == 2 ? - funcDesc & 0xfffff00f : funcDesc & 0xffff000f; - realFuncArray[(LURC*16+1)] = (funcDesc & MCD_BYTE_SWAP_KILLER) | MCD_NO_BYTE_SWAP_ATALL; -#endif - /* Write the initiator field in the TCR, and also set the initiator-hold - bit. Note that,due to a hardware quirk, this could collide with an - MDE access to the initiator-register file, so we have to verify that the write - reads back correctly. */ - - MCD_dmaBar->taskControl[channel] = - (initiator << 8) | TASK_CTL_HIPRITSKEN | TASK_CTL_HLDINITNUM; - - while(((MCD_dmaBar->taskControl[channel] & 0x1fff) != - ((initiator << 8) | TASK_CTL_HIPRITSKEN | TASK_CTL_HLDINITNUM)) && - (tcrCount < 1000)) - { - tcrCount++; - /*MCD_dmaBar->ptd_tcr[channel] = (initiator << 8) | 0x0020;*/ - MCD_dmaBar->taskControl[channel] = - (initiator << 8) | TASK_CTL_HIPRITSKEN | TASK_CTL_HLDINITNUM; - } - - MCD_dmaBar->priority[channel] = (u8)priority & PRIORITY_PRI_MASK; - /* should be albe to handle this stuff with only one write to ts reg - tbd */ - if (channel < 8 && channel >= 0) - { - MCD_dmaBar->taskSize0 &= ~(0xf << (7-channel)*4); - MCD_dmaBar->taskSize0 |= (xferSize & 3) << (((7 - channel)*4) + 2); - MCD_dmaBar->taskSize0 |= (xferSize & 3) << ((7 - channel)*4); - } - else - { - MCD_dmaBar->taskSize1 &= ~(0xf << (15-channel)*4); - MCD_dmaBar->taskSize1 |= (xferSize & 3) << (((15 - channel)*4) + 2); - MCD_dmaBar->taskSize1 |= (xferSize & 3) << ((15 - channel)*4); - } - - /* setup task table flags/options which mostly control the line buffers */ - MCD_taskTable[channel].FDTandFlags &= ~MCD_TT_FLAGS_MASK; - MCD_taskTable[channel].FDTandFlags |= (MCD_TT_FLAGS_MASK & flags); - - if (flags & MCD_FECTX_DMA) - { - /* TDTStart and TDTEnd */ - MCD_taskTable[channel].TDTstart = MCD_modelTaskTable[TASK_FECTX].TDTstart; - MCD_taskTable[channel].TDTend = MCD_modelTaskTable[TASK_FECTX].TDTend; - MCD_startDmaENetXmit(srcAddr, srcAddr, destAddr, MCD_taskTable, channel); - } - else if (flags & MCD_FECRX_DMA) - { - /* TDTStart and TDTEnd */ - MCD_taskTable[channel].TDTstart = MCD_modelTaskTable[TASK_FECRX].TDTstart; - MCD_taskTable[channel].TDTend = MCD_modelTaskTable[TASK_FECRX].TDTend; - MCD_startDmaENetRcv(srcAddr, srcAddr, destAddr, MCD_taskTable, channel); - } - else if(flags & MCD_SINGLE_DMA) - { - /* this buffer descriptor is used for storing off initial parameters for later - progress query calculation and for the DMA to write the resulting checksum - The DMA does not use this to determine how to operate, that info is passed - with the init routine*/ - MCD_relocBuffDesc[channel].srcAddr = srcAddr; - MCD_relocBuffDesc[channel].destAddr = destAddr; - MCD_relocBuffDesc[channel].lastDestAddr = destAddr; /* definitely not its final value */ - MCD_relocBuffDesc[channel].dmaSize = dmaSize; - MCD_relocBuffDesc[channel].flags = 0; /* not used */ - MCD_relocBuffDesc[channel].csumResult = 0; /* not used */ - MCD_relocBuffDesc[channel].next = 0; /* not used */ - - /* Initialize the progress-querying stuff to show no progress:*/ - ((volatile int *)MCD_taskTable[channel].contextSaveSpace)[SRCPTR + CSAVE_OFFSET] = (int)srcAddr; - ((volatile int *)MCD_taskTable[channel].contextSaveSpace)[DESTPTR + CSAVE_OFFSET] = (int)destAddr; - ((volatile int *)MCD_taskTable[channel].contextSaveSpace)[DCOUNT + CSAVE_OFFSET] = 0; - ((volatile int *)MCD_taskTable[channel].contextSaveSpace)[CURRBD + CSAVE_OFFSET] = - (u32) &(MCD_relocBuffDesc[channel]); - /* tbd - need to keep the user from trying to call the EU routine - when MCD_INCLUDE_EU is not defined */ - if( funcDesc == MCD_FUNC_NOEU1 || funcDesc == MCD_FUNC_NOEU2) - { - /* TDTStart and TDTEnd */ - MCD_taskTable[channel].TDTstart = MCD_modelTaskTable[TASK_SINGLENOEU].TDTstart; - MCD_taskTable[channel].TDTend = MCD_modelTaskTable[TASK_SINGLENOEU].TDTend; - MCD_startDmaSingleNoEu(srcAddr, srcIncr, destAddr, destIncr, dmaSize, - xferSizeIncr, flags, (int *)&(MCD_relocBuffDesc[channel]), cSave, - MCD_taskTable, channel); - } - else - { - /* TDTStart and TDTEnd */ - MCD_taskTable[channel].TDTstart = MCD_modelTaskTable[TASK_SINGLEEU].TDTstart; - MCD_taskTable[channel].TDTend = MCD_modelTaskTable[TASK_SINGLEEU].TDTend; - MCD_startDmaSingleEu(srcAddr, srcIncr, destAddr, destIncr, dmaSize, - xferSizeIncr, flags, (int *)&(MCD_relocBuffDesc[channel]), cSave, - MCD_taskTable, channel); - } - } - else - { /* chained DMAS */ - /* Initialize the progress-querying stuff to show no progress:*/ -#if 1 /* (!defined(MCD_NEED_ADDR_TRANS)) */ - ((volatile int *)MCD_taskTable[channel].contextSaveSpace)[SRCPTR + CSAVE_OFFSET] - = (int)((MCD_bufDesc*) srcAddr)->srcAddr; - ((volatile int *)MCD_taskTable[channel].contextSaveSpace)[DESTPTR + CSAVE_OFFSET] - = (int)((MCD_bufDesc*) srcAddr)->destAddr; -#else /* if using address translation, need the virtual addr of the first buffdesc */ - ((volatile int *)MCD_taskTable[channel].contextSaveSpace)[SRCPTR + CSAVE_OFFSET] - = (int)((MCD_bufDesc*) srcAddrVirt)->srcAddr; - ((volatile int *)MCD_taskTable[channel].contextSaveSpace)[DESTPTR + CSAVE_OFFSET] - = (int)((MCD_bufDesc*) srcAddrVirt)->destAddr; -#endif - ((volatile int *)MCD_taskTable[channel].contextSaveSpace)[DCOUNT + CSAVE_OFFSET] = 0; - ((volatile int *)MCD_taskTable[channel].contextSaveSpace)[CURRBD + CSAVE_OFFSET] = (u32) srcAddr; - - if( funcDesc == MCD_FUNC_NOEU1 || funcDesc == MCD_FUNC_NOEU2) - { - /*TDTStart and TDTEnd*/ - MCD_taskTable[channel].TDTstart = MCD_modelTaskTable[TASK_CHAINNOEU].TDTstart; - MCD_taskTable[channel].TDTend = MCD_modelTaskTable[TASK_CHAINNOEU].TDTend; - MCD_startDmaChainNoEu((int *)srcAddr, srcIncr, destIncr, xferSize, - xferSizeIncr, cSave, MCD_taskTable, channel); - } - else - { - /*TDTStart and TDTEnd*/ - MCD_taskTable[channel].TDTstart = MCD_modelTaskTable[TASK_CHAINEU].TDTstart; - MCD_taskTable[channel].TDTend = MCD_modelTaskTable[TASK_CHAINEU].TDTend; - MCD_startDmaChainEu((int *)srcAddr, srcIncr, destIncr, xferSize, - xferSizeIncr, cSave, MCD_taskTable, channel); - } - } - MCD_chStatus[channel] = MCD_IDLE; - return(MCD_OK); -} - -/* Function: MCD_XferProgrQuery - * Purpose: Returns progress of DMA on requested channel - * Arguments: channel - channel to retrieve progress for - * progRep - pointer to user supplied MCD_XferProg struct - * Returns: MCD_CHANNEL_INVALID if channel is invalid, else MCD_OK - * - * Notes: - * MCD_XferProgrQuery() upon completing or after aborting a DMA, or - * while the DMA is in progress, this function returns the first - * DMA-destination address not (or not yet) used in the DMA. When - * encountering a non-ready buffer descriptor, the information for - * the last completed descriptor is returned. - * - * MCD_XferProgQuery() has to avoid the possibility of getting - * partially-updated information in the event that we should happen - * to query DMA progress just as the DMA is updating it. It does that - * by taking advantage of the fact context is not saved frequently for - * the most part. We therefore read it at least twice until we get the - * same information twice in a row. - * - * Because a small, but not insignificant, amount of time is required - * to write out the progress-query information, especially upon - * completion of the DMA, it would be wise to guarantee some time lag - * between successive readings of the progress-query information. - */ - -/* - * How many iterations of the loop below to execute to stabilize values - */ -#define STABTIME 0 - -int MCD_XferProgrQuery (int channel, MCD_XferProg *progRep) -{ - MCD_XferProg prevRep; - int again; /* true if we are to try again to get consistent results */ - int i; /* used as a time-waste counter */ - int destDiffBytes; /* Total number of bytes that we think actually got xfered. */ - int numIterations; /* number of iterations */ - int bytesNotXfered; /* bytes that did not get xfered. */ - s8 *LWAlignedInitDestAddr, *LWAlignedCurrDestAddr; - int subModVal, addModVal; /* Mode values to added and subtracted from the - final destAddr */ - - if((channel < 0) || (channel >= NCHANNELS)) - return(MCD_CHANNEL_INVALID); - - /* Read a trial value for the progress-reporting values*/ - prevRep.lastSrcAddr = - (s8 *) ((volatile int*) MCD_taskTable[channel].contextSaveSpace)[SRCPTR + CSAVE_OFFSET]; - prevRep.lastDestAddr = - (s8 *) ((volatile int*) MCD_taskTable[channel].contextSaveSpace)[DESTPTR + CSAVE_OFFSET]; - prevRep.dmaSize = ((volatile int*) MCD_taskTable[channel].contextSaveSpace)[DCOUNT + CSAVE_OFFSET]; - prevRep.currBufDesc = - (MCD_bufDesc*) ((volatile int*) MCD_taskTable[channel].contextSaveSpace)[CURRBD + CSAVE_OFFSET]; - /* Repeatedly reread those values until they match previous values: */ - do { - /* Waste a little bit of time to ensure stability: */ - for (i = 0; i < STABTIME; i++) - i += i >> 2; /* make sure this loop does something so that it doesn't get optimized out */ - /* Check them again: */ - progRep->lastSrcAddr = - (s8 *) ((volatile int*) MCD_taskTable[channel].contextSaveSpace)[SRCPTR + CSAVE_OFFSET]; - progRep->lastDestAddr = - (s8 *) ((volatile int*) MCD_taskTable[channel].contextSaveSpace)[DESTPTR + CSAVE_OFFSET]; - progRep->dmaSize = ((volatile int*) MCD_taskTable[channel].contextSaveSpace)[DCOUNT + CSAVE_OFFSET]; - progRep->currBufDesc = - (MCD_bufDesc*) ((volatile int*) MCD_taskTable[channel].contextSaveSpace)[CURRBD + CSAVE_OFFSET]; - /* See if they match: */ - if ( prevRep.lastSrcAddr != progRep->lastSrcAddr - || prevRep.lastDestAddr != progRep->lastDestAddr - || prevRep.dmaSize != progRep->dmaSize - || prevRep.currBufDesc != progRep->currBufDesc) - { - /* If they don't match, remember previous values and try again:*/ - prevRep.lastSrcAddr = progRep->lastSrcAddr; - prevRep.lastDestAddr = progRep->lastDestAddr; - prevRep.dmaSize = progRep->dmaSize; - prevRep.currBufDesc = progRep->currBufDesc; - again = MCD_TRUE; - } - else - again = MCD_FALSE; - } while (again == MCD_TRUE); - - - /* Update the dCount, srcAddr and destAddr */ - /* To calculate dmaCount, we consider destination address. C - overs M1,P1,Z for destination */ - switch(MCD_remVariants.remDestRsdIncr[channel]) { - case MINUS1: - subModVal = ((int)progRep->lastDestAddr) & ((MCD_remVariants.remXferSize[channel]) - 1); - addModVal = ((int)progRep->currBufDesc->destAddr) & ((MCD_remVariants.remXferSize[channel]) - 1); - LWAlignedInitDestAddr = (progRep->currBufDesc->destAddr) - addModVal; - LWAlignedCurrDestAddr = (progRep->lastDestAddr) - subModVal; - destDiffBytes = LWAlignedInitDestAddr - LWAlignedCurrDestAddr; - bytesNotXfered = (destDiffBytes/MCD_remVariants.remDestIncr[channel]) * - ( MCD_remVariants.remDestIncr[channel] - + MCD_remVariants.remXferSize[channel]); - progRep->dmaSize = destDiffBytes - bytesNotXfered + addModVal - subModVal; - break; - case ZERO: - progRep->lastDestAddr = progRep->currBufDesc->destAddr; - break; - case PLUS1: - /* This value has to be subtracted from the final calculated dCount. */ - subModVal = ((int)progRep->currBufDesc->destAddr) & ((MCD_remVariants.remXferSize[channel]) - 1); - /* These bytes are already in lastDestAddr. */ - addModVal = ((int)progRep->lastDestAddr) & ((MCD_remVariants.remXferSize[channel]) - 1); - LWAlignedInitDestAddr = (progRep->currBufDesc->destAddr) - subModVal; - LWAlignedCurrDestAddr = (progRep->lastDestAddr) - addModVal; - destDiffBytes = (progRep->lastDestAddr - LWAlignedInitDestAddr); - numIterations = ( LWAlignedCurrDestAddr - LWAlignedInitDestAddr)/MCD_remVariants.remDestIncr[channel]; - bytesNotXfered = numIterations * - ( MCD_remVariants.remDestIncr[channel] - - MCD_remVariants.remXferSize[channel]); - progRep->dmaSize = destDiffBytes - bytesNotXfered - subModVal; - break; - default: - break; - } - - /* This covers M1,P1,Z for source */ - switch(MCD_remVariants.remSrcRsdIncr[channel]) { - case MINUS1: - progRep->lastSrcAddr = - progRep->currBufDesc->srcAddr + - ( MCD_remVariants.remSrcIncr[channel] * - (progRep->dmaSize/MCD_remVariants.remXferSize[channel])); - break; - case ZERO: - progRep->lastSrcAddr = progRep->currBufDesc->srcAddr; - break; - case PLUS1: - progRep->lastSrcAddr = - progRep->currBufDesc->srcAddr + - ( MCD_remVariants.remSrcIncr[channel] * - (progRep->dmaSize/MCD_remVariants.remXferSize[channel])); - break; - default: break; - } - - return(MCD_OK); -} - -/* MCD_resmActions() does the majority of the actions of a DMA resume. - * It is called from MCD_killDma() and MCD_resumeDma(). It has to be - * a separate function because the kill function has to negate the task - * enable before resuming it, but the resume function has to do nothing - * if there is no DMA on that channel (i.e., if the enable bit is 0). - */ -static void MCD_resmActions (int channel) -{ - MCD_dmaBar->debugControl = DBG_CTL_DISABLE; - MCD_dmaBar->debugStatus = MCD_dmaBar->debugStatus; - MCD_dmaBar->ptdDebug = PTD_DBG_TSK_VLD_INIT; /* This register is selected to know - which initiator is actually asserted. */ - if((MCD_dmaBar->ptdDebug >> channel ) & 0x1) - MCD_chStatus[channel] = MCD_RUNNING; - else - MCD_chStatus[channel] = MCD_IDLE; -} - -/* Function: MCD_killDma - * Purpose: Halt the DMA on the requested channel, without any - * intention of resuming the DMA. - * Arguments: channel - requested channel - * Returns: MCD_CHANNEL_INVALID if channel is invalid, else MCD_OK - * - * Notes: - * A DMA may be killed from any state, including paused state, and it - * always goes to the MCD_HALTED state even if it is killed while in - * the MCD_NO_DMA or MCD_IDLE states. - */ -int MCD_killDma (int channel) -{ - /* MCD_XferProg progRep; */ - - if((channel < 0) || (channel >= NCHANNELS)) - return(MCD_CHANNEL_INVALID); - - MCD_dmaBar->taskControl[channel] = 0x0; - MCD_resumeDma (channel); - /* - * This must be after the write to the TCR so that the task doesn't - * start up again momentarily, and before the status assignment so - * as to override whatever MCD_resumeDma() may do to the channel - * status. - */ - MCD_chStatus[channel] = MCD_HALTED; - - /* - * Update the current buffer descriptor's lastDestAddr field - * - * MCD_XferProgrQuery (channel, &progRep); - * progRep.currBufDesc->lastDestAddr = progRep.lastDestAddr; - */ - return(MCD_OK); -} - -/* Function: MCD_continDma - * Purpose: Continue a DMA which as stopped due to encountering an - * unready buffer descriptor. - * Arguments: channel - channel to continue the DMA on - * Returns: MCD_CHANNEL_INVALID if channel is invalid, else MCD_OK - * - * Notes: - * This routine does not check to see if there is a task which can - * be continued. Also this routine should not be used with single DMAs. - */ -int MCD_continDma (int channel) -{ - if((channel < 0) || (channel >= NCHANNELS)) - return(MCD_CHANNEL_INVALID); - - MCD_dmaBar->taskControl[channel] |= TASK_CTL_EN; - MCD_chStatus[channel] = MCD_RUNNING; - - return(MCD_OK); -} - -/* - * MCD_pauseDma() and MCD_resumeDma() below use the DMA's debug unit - * to freeze a task and resume it. We freeze a task by breakpointing - * on the stated task. That is, not any specific place in the task, - * but any time that task executes. In particular, when that task - * executes, we want to freeze that task and only that task. - * - * The bits of the debug control register influence interrupts vs. - * breakpoints as follows: - * - Bits 14 and 0 enable or disable debug functions. If enabled, you - * will get the interrupt but you may or may not get a breakpoint. - * - Bits 2 and 1 decide whether you also get a breakpoint in addition - * to an interrupt. - * - * The debug unit can do these actions in response to either internally - * detected breakpoint conditions from the comparators, or in response - * to the external breakpoint pin, or both. - * - Bits 14 and 1 perform the above-described functions for - * internally-generated conditions, i.e., the debug comparators. - * - Bits 0 and 2 perform the above-described functions for external - * conditions, i.e., the breakpoint external pin. - * - * Note that, although you "always" get the interrupt when you turn - * the debug functions, the interrupt can nevertheless, if desired, be - * masked by the corresponding bit in the PTD's IMR. Note also that - * this means that bits 14 and 0 must enable debug functions before - * bits 1 and 2, respectively, have any effect. - * - * NOTE: It's extremely important to not pause more than one DMA channel - * at a time. - ********************************************************************/ - -/* Function: MCD_pauseDma - * Purpose: Pauses the DMA on a given channel (if any DMA is running - * on that channel). - * Arguments: channel - * Returns: MCD_CHANNEL_INVALID if channel is invalid, else MCD_OK - */ -int MCD_pauseDma (int channel) -{ - /* MCD_XferProg progRep; */ - - if((channel < 0) || (channel >= NCHANNELS)) - return(MCD_CHANNEL_INVALID); - - if (MCD_dmaBar->taskControl[channel] & TASK_CTL_EN) - { - MCD_dmaBar->debugComp1 = channel; - MCD_dmaBar->debugControl = DBG_CTL_ENABLE | (1 << (channel + 16)); - MCD_chStatus[channel] = MCD_PAUSED; - - /* - * Update the current buffer descriptor's lastDestAddr field - * - * MCD_XferProgrQuery (channel, &progRep); - * progRep.currBufDesc->lastDestAddr = progRep.lastDestAddr; - */ - } - return(MCD_OK); -} - -/* Function: MCD_resumeDma - * Purpose: Resumes the DMA on a given channel (if any DMA is - * running on that channel). - * Arguments: channel - channel on which to resume DMA - * Returns: MCD_CHANNEL_INVALID if channel is invalid, else MCD_OK - */ -int MCD_resumeDma (int channel) -{ - if((channel < 0) || (channel >= NCHANNELS)) - return(MCD_CHANNEL_INVALID); - - if (MCD_dmaBar->taskControl[channel] & TASK_CTL_EN) - MCD_resmActions (channel); - - return(MCD_OK); -} - -/* Function: MCD_csumQuery - * Purpose: Provide the checksum after performing a non-chained DMA - * Arguments: channel - channel to report on - * csum - pointer to where to write the checksum/CRC - * Returns: MCD_ERROR if the channel is invalid, else MCD_OK - * - * Notes: - * - */ -int MCD_csumQuery (int channel, u32 *csum) -{ -#ifdef MCD_INCLUDE_EU - if((channel < 0) || (channel >= NCHANNELS)) - return(MCD_CHANNEL_INVALID); - - *csum = MCD_relocBuffDesc[channel].csumResult; - return(MCD_OK); -#else - return(MCD_ERROR); -#endif -} - -/* Function: MCD_getCodeSize - * Purpose: Provide the size requirements of the microcoded tasks - * Returns: Size in bytes - */ -int MCD_getCodeSize(void) -{ -#ifdef MCD_INCLUDE_EU - return(0x2b5c); -#else - return(0x173c); -#endif -} - -/* Function: MCD_getVersion - * Purpose: Provide the version string and number - * Arguments: longVersion - user supplied pointer to a pointer to a char - * which points to the version string - * Returns: Version number and version string (by reference) - */ -char MCD_versionString[] = "Multi-channel DMA API Alpha v0.3 (2004-04-26)"; -#define MCD_REV_MAJOR 0x00 -#define MCD_REV_MINOR 0x03 - -int MCD_getVersion(char **longVersion) -{ - *longVersion = MCD_versionString; - return((MCD_REV_MAJOR << 8) | MCD_REV_MINOR); -} - -/* Private version of memcpy() - * Note that everything this is used for is longword-aligned. - */ -static void MCD_memcpy (int *dest, int *src, u32 size) -{ - u32 i; - - for (i = 0; i < size; i += sizeof(int), dest++, src++) - *dest = *src; -} diff --git a/arch/m68k/mach-mcfv4e/mcdapi/MCD_library.dox b/arch/m68k/mach-mcfv4e/mcdapi/MCD_library.dox deleted file mode 100644 index ec3a73073..000000000 --- a/arch/m68k/mach-mcfv4e/mcdapi/MCD_library.dox +++ /dev/null @@ -1,10 +0,0 @@ -/** @page mcfv4e_MCDlib MultiChannelDMA library for Coldfire V4e - * - * The MCD library is taken as is from sources publically available from - * FreeScale Semiconductors az http://www.freescale.com - * - * It is slight reformatted and cleaned up, but otherwise unchanged to support - * later merged with updated MCD library releases. - * - * See the PDF document supplied with the library for API documentation - */ diff --git a/arch/m68k/mach-mcfv4e/mcdapi/MCD_tasks.c b/arch/m68k/mach-mcfv4e/mcdapi/MCD_tasks.c deleted file mode 100644 index 812120dd7..000000000 --- a/arch/m68k/mach-mcfv4e/mcdapi/MCD_tasks.c +++ /dev/null @@ -1,2449 +0,0 @@ -/* - * File: MCD_tasks.c - * Purpose: Contains task code and structures for Multi-channel DMA - * - * Notes: - */ -#include -#include - -u32 MCD_varTab0[]; -u32 MCD_varTab1[]; -u32 MCD_varTab2[]; -u32 MCD_varTab3[]; -u32 MCD_varTab4[]; -u32 MCD_varTab5[]; -u32 MCD_varTab6[]; -u32 MCD_varTab7[]; -u32 MCD_varTab8[]; -u32 MCD_varTab9[]; -u32 MCD_varTab10[]; -u32 MCD_varTab11[]; -u32 MCD_varTab12[]; -u32 MCD_varTab13[]; -u32 MCD_varTab14[]; -u32 MCD_varTab15[]; - -u32 MCD_funcDescTab0[]; -#ifdef MCD_INCLUDE_EU -u32 MCD_funcDescTab1[]; -u32 MCD_funcDescTab2[]; -u32 MCD_funcDescTab3[]; -u32 MCD_funcDescTab4[]; -u32 MCD_funcDescTab5[]; -u32 MCD_funcDescTab6[]; -u32 MCD_funcDescTab7[]; -u32 MCD_funcDescTab8[]; -u32 MCD_funcDescTab9[]; -u32 MCD_funcDescTab10[]; -u32 MCD_funcDescTab11[]; -u32 MCD_funcDescTab12[]; -u32 MCD_funcDescTab13[]; -u32 MCD_funcDescTab14[]; -u32 MCD_funcDescTab15[]; -#endif - -u32 MCD_contextSave0[]; -u32 MCD_contextSave1[]; -u32 MCD_contextSave2[]; -u32 MCD_contextSave3[]; -u32 MCD_contextSave4[]; -u32 MCD_contextSave5[]; -u32 MCD_contextSave6[]; -u32 MCD_contextSave7[]; -u32 MCD_contextSave8[]; -u32 MCD_contextSave9[]; -u32 MCD_contextSave10[]; -u32 MCD_contextSave11[]; -u32 MCD_contextSave12[]; -u32 MCD_contextSave13[]; -u32 MCD_contextSave14[]; -u32 MCD_contextSave15[]; - -u32 MCD_realTaskTableSrc[] = -{ - 0x00000000, - 0x00000000, - (u32)MCD_varTab0, /* Task 0 Variable Table */ - (u32)MCD_funcDescTab0, /* Task 0 Function Descriptor Table & Flags */ - 0x00000000, - 0x00000000, - (u32)MCD_contextSave0, /* Task 0 context save space */ - 0x00000000, - 0x00000000, - 0x00000000, - (u32)MCD_varTab1, /* Task 1 Variable Table */ -#ifdef MCD_INCLUDE_EU - (u32)MCD_funcDescTab1, /* Task 1 Function Descriptor Table & Flags */ -#else - (u32)MCD_funcDescTab0, /* Task 0 Function Descriptor Table & Flags */ -#endif - 0x00000000, - 0x00000000, - (u32)MCD_contextSave1, /* Task 1 context save space */ - 0x00000000, - 0x00000000, - 0x00000000, - (u32)MCD_varTab2, /* Task 2 Variable Table */ -#ifdef MCD_INCLUDE_EU - (u32)MCD_funcDescTab2, /* Task 2 Function Descriptor Table & Flags */ -#else - (u32)MCD_funcDescTab0, /* Task 0 Function Descriptor Table & Flags */ -#endif - 0x00000000, - 0x00000000, - (u32)MCD_contextSave2, /* Task 2 context save space */ - 0x00000000, - 0x00000000, - 0x00000000, - (u32)MCD_varTab3, /* Task 3 Variable Table */ -#ifdef MCD_INCLUDE_EU - (u32)MCD_funcDescTab3, /* Task 3 Function Descriptor Table & Flags */ -#else - (u32)MCD_funcDescTab0, /* Task 0 Function Descriptor Table & Flags */ -#endif - 0x00000000, - 0x00000000, - (u32)MCD_contextSave3, /* Task 3 context save space */ - 0x00000000, - 0x00000000, - 0x00000000, - (u32)MCD_varTab4, /* Task 4 Variable Table */ -#ifdef MCD_INCLUDE_EU - (u32)MCD_funcDescTab4, /* Task 4 Function Descriptor Table & Flags */ -#else - (u32)MCD_funcDescTab0, /* Task 0 Function Descriptor Table & Flags */ -#endif - 0x00000000, - 0x00000000, - (u32)MCD_contextSave4, /* Task 4 context save space */ - 0x00000000, - 0x00000000, - 0x00000000, - (u32)MCD_varTab5, /* Task 5 Variable Table */ -#ifdef MCD_INCLUDE_EU - (u32)MCD_funcDescTab5, /* Task 5 Function Descriptor Table & Flags */ -#else - (u32)MCD_funcDescTab0, /* Task 0 Function Descriptor Table & Flags */ -#endif - 0x00000000, - 0x00000000, - (u32)MCD_contextSave5, /* Task 5 context save space */ - 0x00000000, - 0x00000000, - 0x00000000, - (u32)MCD_varTab6, /* Task 6 Variable Table */ -#ifdef MCD_INCLUDE_EU - (u32)MCD_funcDescTab6, /* Task 6 Function Descriptor Table & Flags */ -#else - (u32)MCD_funcDescTab0, /* Task 0 Function Descriptor Table & Flags */ -#endif - 0x00000000, - 0x00000000, - (u32)MCD_contextSave6, /* Task 6 context save space */ - 0x00000000, - 0x00000000, - 0x00000000, - (u32)MCD_varTab7, /* Task 7 Variable Table */ -#ifdef MCD_INCLUDE_EU - (u32)MCD_funcDescTab7, /* Task 7 Function Descriptor Table & Flags */ -#else - (u32)MCD_funcDescTab0, /* Task 0 Function Descriptor Table & Flags */ -#endif - 0x00000000, - 0x00000000, - (u32)MCD_contextSave7, /* Task 7 context save space */ - 0x00000000, - 0x00000000, - 0x00000000, - (u32)MCD_varTab8, /* Task 8 Variable Table */ -#ifdef MCD_INCLUDE_EU - (u32)MCD_funcDescTab8, /* Task 8 Function Descriptor Table & Flags */ -#else - (u32)MCD_funcDescTab0, /* Task 0 Function Descriptor Table & Flags */ -#endif - 0x00000000, - 0x00000000, - (u32)MCD_contextSave8, /* Task 8 context save space */ - 0x00000000, - 0x00000000, - 0x00000000, - (u32)MCD_varTab9, /* Task 9 Variable Table */ -#ifdef MCD_INCLUDE_EU - (u32)MCD_funcDescTab9, /* Task 9 Function Descriptor Table & Flags */ -#else - (u32)MCD_funcDescTab0, /* Task 0 Function Descriptor Table & Flags */ -#endif - 0x00000000, - 0x00000000, - (u32)MCD_contextSave9, /* Task 9 context save space */ - 0x00000000, - 0x00000000, - 0x00000000, - (u32)MCD_varTab10, /* Task 10 Variable Table */ -#ifdef MCD_INCLUDE_EU - (u32)MCD_funcDescTab10, /* Task 10 Function Descriptor Table & Flags */ -#else - (u32)MCD_funcDescTab0, /* Task 0 Function Descriptor Table & Flags */ -#endif - 0x00000000, - 0x00000000, - (u32)MCD_contextSave10, /* Task 10 context save space */ - 0x00000000, - 0x00000000, - 0x00000000, - (u32)MCD_varTab11, /* Task 11 Variable Table */ -#ifdef MCD_INCLUDE_EU - (u32)MCD_funcDescTab11, /* Task 11 Function Descriptor Table & Flags */ -#else - (u32)MCD_funcDescTab0, /* Task 0 Function Descriptor Table & Flags */ -#endif - 0x00000000, - 0x00000000, - (u32)MCD_contextSave11, /* Task 11 context save space */ - 0x00000000, - 0x00000000, - 0x00000000, - (u32)MCD_varTab12, /* Task 12 Variable Table */ -#ifdef MCD_INCLUDE_EU - (u32)MCD_funcDescTab12, /* Task 12 Function Descriptor Table & Flags */ -#else - (u32)MCD_funcDescTab0, /* Task 0 Function Descriptor Table & Flags */ -#endif - 0x00000000, - 0x00000000, - (u32)MCD_contextSave12, /* Task 12 context save space */ - 0x00000000, - 0x00000000, - 0x00000000, - (u32)MCD_varTab13, /* Task 13 Variable Table */ -#ifdef MCD_INCLUDE_EU - (u32)MCD_funcDescTab13, /* Task 13 Function Descriptor Table & Flags */ -#else - (u32)MCD_funcDescTab0, /* Task 0 Function Descriptor Table & Flags */ -#endif - 0x00000000, - 0x00000000, - (u32)MCD_contextSave13, /* Task 13 context save space */ - 0x00000000, - 0x00000000, - 0x00000000, - (u32)MCD_varTab14, /* Task 14 Variable Table */ -#ifdef MCD_INCLUDE_EU - (u32)MCD_funcDescTab14, /* Task 14 Function Descriptor Table & Flags */ -#else - (u32)MCD_funcDescTab0, /* Task 0 Function Descriptor Table & Flags */ -#endif - 0x00000000, - 0x00000000, - (u32)MCD_contextSave14, /* Task 14 context save space */ - 0x00000000, - 0x00000000, - 0x00000000, - (u32)MCD_varTab15, /* Task 15 Variable Table */ -#ifdef MCD_INCLUDE_EU - (u32)MCD_funcDescTab15, /* Task 15 Function Descriptor Table & Flags */ -#else - (u32)MCD_funcDescTab0, /* Task 0 Function Descriptor Table & Flags */ -#endif - 0x00000000, - 0x00000000, - (u32)MCD_contextSave15, /* Task 15 context save space */ - 0x00000000, -}; - - -u32 MCD_varTab0[] = -{ /* Task 0 Variable Table */ - 0x00000000, /* var[0] */ - 0x00000000, /* var[1] */ - 0x00000000, /* var[2] */ - 0x00000000, /* var[3] */ - 0x00000000, /* var[4] */ - 0x00000000, /* var[5] */ - 0x00000000, /* var[6] */ - 0x00000000, /* var[7] */ - 0x00000000, /* var[8] */ - 0x00000000, /* var[9] */ - 0x00000000, /* var[10] */ - 0x00000000, /* var[11] */ - 0x00000000, /* var[12] */ - 0x00000000, /* var[13] */ - 0x00000000, /* var[14] */ - 0x00000000, /* var[15] */ - 0x00000000, /* var[16] */ - 0x00000000, /* var[17] */ - 0x00000000, /* var[18] */ - 0x00000000, /* var[19] */ - 0x00000000, /* var[20] */ - 0x00000000, /* var[21] */ - 0x00000000, /* var[22] */ - 0x00000000, /* var[23] */ - 0xe0000000, /* inc[0] */ - 0x20000000, /* inc[1] */ - 0x2000ffff, /* inc[2] */ - 0x00000000, /* inc[3] */ - 0x00000000, /* inc[4] */ - 0x00000000, /* inc[5] */ - 0x00000000, /* inc[6] */ - 0x00000000, /* inc[7] */ -}; - - -u32 MCD_varTab1[] = -{ /* Task 1 Variable Table */ - 0x00000000, /* var[0] */ - 0x00000000, /* var[1] */ - 0x00000000, /* var[2] */ - 0x00000000, /* var[3] */ - 0x00000000, /* var[4] */ - 0x00000000, /* var[5] */ - 0x00000000, /* var[6] */ - 0x00000000, /* var[7] */ - 0x00000000, /* var[8] */ - 0x00000000, /* var[9] */ - 0x00000000, /* var[10] */ - 0x00000000, /* var[11] */ - 0x00000000, /* var[12] */ - 0x00000000, /* var[13] */ - 0x00000000, /* var[14] */ - 0x00000000, /* var[15] */ - 0x00000000, /* var[16] */ - 0x00000000, /* var[17] */ - 0x00000000, /* var[18] */ - 0x00000000, /* var[19] */ - 0x00000000, /* var[20] */ - 0x00000000, /* var[21] */ - 0x00000000, /* var[22] */ - 0x00000000, /* var[23] */ - 0xe0000000, /* inc[0] */ - 0x20000000, /* inc[1] */ - 0x2000ffff, /* inc[2] */ - 0x00000000, /* inc[3] */ - 0x00000000, /* inc[4] */ - 0x00000000, /* inc[5] */ - 0x00000000, /* inc[6] */ - 0x00000000, /* inc[7] */ -}; - -u32 MCD_varTab2[]= -{ /* Task 2 Variable Table */ - 0x00000000, /* var[0] */ - 0x00000000, /* var[1] */ - 0x00000000, /* var[2] */ - 0x00000000, /* var[3] */ - 0x00000000, /* var[4] */ - 0x00000000, /* var[5] */ - 0x00000000, /* var[6] */ - 0x00000000, /* var[7] */ - 0x00000000, /* var[8] */ - 0x00000000, /* var[9] */ - 0x00000000, /* var[10] */ - 0x00000000, /* var[11] */ - 0x00000000, /* var[12] */ - 0x00000000, /* var[13] */ - 0x00000000, /* var[14] */ - 0x00000000, /* var[15] */ - 0x00000000, /* var[16] */ - 0x00000000, /* var[17] */ - 0x00000000, /* var[18] */ - 0x00000000, /* var[19] */ - 0x00000000, /* var[20] */ - 0x00000000, /* var[21] */ - 0x00000000, /* var[22] */ - 0x00000000, /* var[23] */ - 0xe0000000, /* inc[0] */ - 0x20000000, /* inc[1] */ - 0x2000ffff, /* inc[2] */ - 0x00000000, /* inc[3] */ - 0x00000000, /* inc[4] */ - 0x00000000, /* inc[5] */ - 0x00000000, /* inc[6] */ - 0x00000000, /* inc[7] */ -}; - -u32 MCD_varTab3[]= -{ /* Task 3 Variable Table */ - 0x00000000, /* var[0] */ - 0x00000000, /* var[1] */ - 0x00000000, /* var[2] */ - 0x00000000, /* var[3] */ - 0x00000000, /* var[4] */ - 0x00000000, /* var[5] */ - 0x00000000, /* var[6] */ - 0x00000000, /* var[7] */ - 0x00000000, /* var[8] */ - 0x00000000, /* var[9] */ - 0x00000000, /* var[10] */ - 0x00000000, /* var[11] */ - 0x00000000, /* var[12] */ - 0x00000000, /* var[13] */ - 0x00000000, /* var[14] */ - 0x00000000, /* var[15] */ - 0x00000000, /* var[16] */ - 0x00000000, /* var[17] */ - 0x00000000, /* var[18] */ - 0x00000000, /* var[19] */ - 0x00000000, /* var[20] */ - 0x00000000, /* var[21] */ - 0x00000000, /* var[22] */ - 0x00000000, /* var[23] */ - 0xe0000000, /* inc[0] */ - 0x20000000, /* inc[1] */ - 0x2000ffff, /* inc[2] */ - 0x00000000, /* inc[3] */ - 0x00000000, /* inc[4] */ - 0x00000000, /* inc[5] */ - 0x00000000, /* inc[6] */ - 0x00000000, /* inc[7] */ -}; - -u32 MCD_varTab4[]= -{ /* Task 4 Variable Table */ - 0x00000000, /* var[0] */ - 0x00000000, /* var[1] */ - 0x00000000, /* var[2] */ - 0x00000000, /* var[3] */ - 0x00000000, /* var[4] */ - 0x00000000, /* var[5] */ - 0x00000000, /* var[6] */ - 0x00000000, /* var[7] */ - 0x00000000, /* var[8] */ - 0x00000000, /* var[9] */ - 0x00000000, /* var[10] */ - 0x00000000, /* var[11] */ - 0x00000000, /* var[12] */ - 0x00000000, /* var[13] */ - 0x00000000, /* var[14] */ - 0x00000000, /* var[15] */ - 0x00000000, /* var[16] */ - 0x00000000, /* var[17] */ - 0x00000000, /* var[18] */ - 0x00000000, /* var[19] */ - 0x00000000, /* var[20] */ - 0x00000000, /* var[21] */ - 0x00000000, /* var[22] */ - 0x00000000, /* var[23] */ - 0xe0000000, /* inc[0] */ - 0x20000000, /* inc[1] */ - 0x2000ffff, /* inc[2] */ - 0x00000000, /* inc[3] */ - 0x00000000, /* inc[4] */ - 0x00000000, /* inc[5] */ - 0x00000000, /* inc[6] */ - 0x00000000, /* inc[7] */ -}; - -u32 MCD_varTab5[]= -{ /* Task 5 Variable Table */ - 0x00000000, /* var[0] */ - 0x00000000, /* var[1] */ - 0x00000000, /* var[2] */ - 0x00000000, /* var[3] */ - 0x00000000, /* var[4] */ - 0x00000000, /* var[5] */ - 0x00000000, /* var[6] */ - 0x00000000, /* var[7] */ - 0x00000000, /* var[8] */ - 0x00000000, /* var[9] */ - 0x00000000, /* var[10] */ - 0x00000000, /* var[11] */ - 0x00000000, /* var[12] */ - 0x00000000, /* var[13] */ - 0x00000000, /* var[14] */ - 0x00000000, /* var[15] */ - 0x00000000, /* var[16] */ - 0x00000000, /* var[17] */ - 0x00000000, /* var[18] */ - 0x00000000, /* var[19] */ - 0x00000000, /* var[20] */ - 0x00000000, /* var[21] */ - 0x00000000, /* var[22] */ - 0x00000000, /* var[23] */ - 0xe0000000, /* inc[0] */ - 0x20000000, /* inc[1] */ - 0x2000ffff, /* inc[2] */ - 0x00000000, /* inc[3] */ - 0x00000000, /* inc[4] */ - 0x00000000, /* inc[5] */ - 0x00000000, /* inc[6] */ - 0x00000000, /* inc[7] */ -}; - -u32 MCD_varTab6[]= -{ /* Task 6 Variable Table */ - 0x00000000, /* var[0] */ - 0x00000000, /* var[1] */ - 0x00000000, /* var[2] */ - 0x00000000, /* var[3] */ - 0x00000000, /* var[4] */ - 0x00000000, /* var[5] */ - 0x00000000, /* var[6] */ - 0x00000000, /* var[7] */ - 0x00000000, /* var[8] */ - 0x00000000, /* var[9] */ - 0x00000000, /* var[10] */ - 0x00000000, /* var[11] */ - 0x00000000, /* var[12] */ - 0x00000000, /* var[13] */ - 0x00000000, /* var[14] */ - 0x00000000, /* var[15] */ - 0x00000000, /* var[16] */ - 0x00000000, /* var[17] */ - 0x00000000, /* var[18] */ - 0x00000000, /* var[19] */ - 0x00000000, /* var[20] */ - 0x00000000, /* var[21] */ - 0x00000000, /* var[22] */ - 0x00000000, /* var[23] */ - 0xe0000000, /* inc[0] */ - 0x20000000, /* inc[1] */ - 0x2000ffff, /* inc[2] */ - 0x00000000, /* inc[3] */ - 0x00000000, /* inc[4] */ - 0x00000000, /* inc[5] */ - 0x00000000, /* inc[6] */ - 0x00000000, /* inc[7] */ -}; - -u32 MCD_varTab7[]= -{ /* Task 7 Variable Table */ - 0x00000000, /* var[0] */ - 0x00000000, /* var[1] */ - 0x00000000, /* var[2] */ - 0x00000000, /* var[3] */ - 0x00000000, /* var[4] */ - 0x00000000, /* var[5] */ - 0x00000000, /* var[6] */ - 0x00000000, /* var[7] */ - 0x00000000, /* var[8] */ - 0x00000000, /* var[9] */ - 0x00000000, /* var[10] */ - 0x00000000, /* var[11] */ - 0x00000000, /* var[12] */ - 0x00000000, /* var[13] */ - 0x00000000, /* var[14] */ - 0x00000000, /* var[15] */ - 0x00000000, /* var[16] */ - 0x00000000, /* var[17] */ - 0x00000000, /* var[18] */ - 0x00000000, /* var[19] */ - 0x00000000, /* var[20] */ - 0x00000000, /* var[21] */ - 0x00000000, /* var[22] */ - 0x00000000, /* var[23] */ - 0xe0000000, /* inc[0] */ - 0x20000000, /* inc[1] */ - 0x2000ffff, /* inc[2] */ - 0x00000000, /* inc[3] */ - 0x00000000, /* inc[4] */ - 0x00000000, /* inc[5] */ - 0x00000000, /* inc[6] */ - 0x00000000, /* inc[7] */ -}; - -u32 MCD_varTab8[]= -{ /* Task 8 Variable Table */ - 0x00000000, /* var[0] */ - 0x00000000, /* var[1] */ - 0x00000000, /* var[2] */ - 0x00000000, /* var[3] */ - 0x00000000, /* var[4] */ - 0x00000000, /* var[5] */ - 0x00000000, /* var[6] */ - 0x00000000, /* var[7] */ - 0x00000000, /* var[8] */ - 0x00000000, /* var[9] */ - 0x00000000, /* var[10] */ - 0x00000000, /* var[11] */ - 0x00000000, /* var[12] */ - 0x00000000, /* var[13] */ - 0x00000000, /* var[14] */ - 0x00000000, /* var[15] */ - 0x00000000, /* var[16] */ - 0x00000000, /* var[17] */ - 0x00000000, /* var[18] */ - 0x00000000, /* var[19] */ - 0x00000000, /* var[20] */ - 0x00000000, /* var[21] */ - 0x00000000, /* var[22] */ - 0x00000000, /* var[23] */ - 0xe0000000, /* inc[0] */ - 0x20000000, /* inc[1] */ - 0x2000ffff, /* inc[2] */ - 0x00000000, /* inc[3] */ - 0x00000000, /* inc[4] */ - 0x00000000, /* inc[5] */ - 0x00000000, /* inc[6] */ - 0x00000000, /* inc[7] */ -}; - -u32 MCD_varTab9[]= -{ /* Task 9 Variable Table */ - 0x00000000, /* var[0] */ - 0x00000000, /* var[1] */ - 0x00000000, /* var[2] */ - 0x00000000, /* var[3] */ - 0x00000000, /* var[4] */ - 0x00000000, /* var[5] */ - 0x00000000, /* var[6] */ - 0x00000000, /* var[7] */ - 0x00000000, /* var[8] */ - 0x00000000, /* var[9] */ - 0x00000000, /* var[10] */ - 0x00000000, /* var[11] */ - 0x00000000, /* var[12] */ - 0x00000000, /* var[13] */ - 0x00000000, /* var[14] */ - 0x00000000, /* var[15] */ - 0x00000000, /* var[16] */ - 0x00000000, /* var[17] */ - 0x00000000, /* var[18] */ - 0x00000000, /* var[19] */ - 0x00000000, /* var[20] */ - 0x00000000, /* var[21] */ - 0x00000000, /* var[22] */ - 0x00000000, /* var[23] */ - 0xe0000000, /* inc[0] */ - 0x20000000, /* inc[1] */ - 0x2000ffff, /* inc[2] */ - 0x00000000, /* inc[3] */ - 0x00000000, /* inc[4] */ - 0x00000000, /* inc[5] */ - 0x00000000, /* inc[6] */ - 0x00000000, /* inc[7] */ -}; - -u32 MCD_varTab10[]= -{ /* Task 10 Variable Table */ - 0x00000000, /* var[0] */ - 0x00000000, /* var[1] */ - 0x00000000, /* var[2] */ - 0x00000000, /* var[3] */ - 0x00000000, /* var[4] */ - 0x00000000, /* var[5] */ - 0x00000000, /* var[6] */ - 0x00000000, /* var[7] */ - 0x00000000, /* var[8] */ - 0x00000000, /* var[9] */ - 0x00000000, /* var[10] */ - 0x00000000, /* var[11] */ - 0x00000000, /* var[12] */ - 0x00000000, /* var[13] */ - 0x00000000, /* var[14] */ - 0x00000000, /* var[15] */ - 0x00000000, /* var[16] */ - 0x00000000, /* var[17] */ - 0x00000000, /* var[18] */ - 0x00000000, /* var[19] */ - 0x00000000, /* var[20] */ - 0x00000000, /* var[21] */ - 0x00000000, /* var[22] */ - 0x00000000, /* var[23] */ - 0xe0000000, /* inc[0] */ - 0x20000000, /* inc[1] */ - 0x2000ffff, /* inc[2] */ - 0x00000000, /* inc[3] */ - 0x00000000, /* inc[4] */ - 0x00000000, /* inc[5] */ - 0x00000000, /* inc[6] */ - 0x00000000, /* inc[7] */ -}; - -u32 MCD_varTab11[]= -{ /* Task 11 Variable Table */ - 0x00000000, /* var[0] */ - 0x00000000, /* var[1] */ - 0x00000000, /* var[2] */ - 0x00000000, /* var[3] */ - 0x00000000, /* var[4] */ - 0x00000000, /* var[5] */ - 0x00000000, /* var[6] */ - 0x00000000, /* var[7] */ - 0x00000000, /* var[8] */ - 0x00000000, /* var[9] */ - 0x00000000, /* var[10] */ - 0x00000000, /* var[11] */ - 0x00000000, /* var[12] */ - 0x00000000, /* var[13] */ - 0x00000000, /* var[14] */ - 0x00000000, /* var[15] */ - 0x00000000, /* var[16] */ - 0x00000000, /* var[17] */ - 0x00000000, /* var[18] */ - 0x00000000, /* var[19] */ - 0x00000000, /* var[20] */ - 0x00000000, /* var[21] */ - 0x00000000, /* var[22] */ - 0x00000000, /* var[23] */ - 0xe0000000, /* inc[0] */ - 0x20000000, /* inc[1] */ - 0x2000ffff, /* inc[2] */ - 0x00000000, /* inc[3] */ - 0x00000000, /* inc[4] */ - 0x00000000, /* inc[5] */ - 0x00000000, /* inc[6] */ - 0x00000000, /* inc[7] */ -}; - -u32 MCD_varTab12[]= -{ /* Task 12 Variable Table */ - 0x00000000, /* var[0] */ - 0x00000000, /* var[1] */ - 0x00000000, /* var[2] */ - 0x00000000, /* var[3] */ - 0x00000000, /* var[4] */ - 0x00000000, /* var[5] */ - 0x00000000, /* var[6] */ - 0x00000000, /* var[7] */ - 0x00000000, /* var[8] */ - 0x00000000, /* var[9] */ - 0x00000000, /* var[10] */ - 0x00000000, /* var[11] */ - 0x00000000, /* var[12] */ - 0x00000000, /* var[13] */ - 0x00000000, /* var[14] */ - 0x00000000, /* var[15] */ - 0x00000000, /* var[16] */ - 0x00000000, /* var[17] */ - 0x00000000, /* var[18] */ - 0x00000000, /* var[19] */ - 0x00000000, /* var[20] */ - 0x00000000, /* var[21] */ - 0x00000000, /* var[22] */ - 0x00000000, /* var[23] */ - 0xe0000000, /* inc[0] */ - 0x20000000, /* inc[1] */ - 0x2000ffff, /* inc[2] */ - 0x00000000, /* inc[3] */ - 0x00000000, /* inc[4] */ - 0x00000000, /* inc[5] */ - 0x00000000, /* inc[6] */ - 0x00000000, /* inc[7] */ -}; - -u32 MCD_varTab13[]= -{ /* Task 13 Variable Table */ - 0x00000000, /* var[0] */ - 0x00000000, /* var[1] */ - 0x00000000, /* var[2] */ - 0x00000000, /* var[3] */ - 0x00000000, /* var[4] */ - 0x00000000, /* var[5] */ - 0x00000000, /* var[6] */ - 0x00000000, /* var[7] */ - 0x00000000, /* var[8] */ - 0x00000000, /* var[9] */ - 0x00000000, /* var[10] */ - 0x00000000, /* var[11] */ - 0x00000000, /* var[12] */ - 0x00000000, /* var[13] */ - 0x00000000, /* var[14] */ - 0x00000000, /* var[15] */ - 0x00000000, /* var[16] */ - 0x00000000, /* var[17] */ - 0x00000000, /* var[18] */ - 0x00000000, /* var[19] */ - 0x00000000, /* var[20] */ - 0x00000000, /* var[21] */ - 0x00000000, /* var[22] */ - 0x00000000, /* var[23] */ - 0xe0000000, /* inc[0] */ - 0x20000000, /* inc[1] */ - 0x2000ffff, /* inc[2] */ - 0x00000000, /* inc[3] */ - 0x00000000, /* inc[4] */ - 0x00000000, /* inc[5] */ - 0x00000000, /* inc[6] */ - 0x00000000, /* inc[7] */ -}; - -u32 MCD_varTab14[]= -{ /* Task 14 Variable Table */ - 0x00000000, /* var[0] */ - 0x00000000, /* var[1] */ - 0x00000000, /* var[2] */ - 0x00000000, /* var[3] */ - 0x00000000, /* var[4] */ - 0x00000000, /* var[5] */ - 0x00000000, /* var[6] */ - 0x00000000, /* var[7] */ - 0x00000000, /* var[8] */ - 0x00000000, /* var[9] */ - 0x00000000, /* var[10] */ - 0x00000000, /* var[11] */ - 0x00000000, /* var[12] */ - 0x00000000, /* var[13] */ - 0x00000000, /* var[14] */ - 0x00000000, /* var[15] */ - 0x00000000, /* var[16] */ - 0x00000000, /* var[17] */ - 0x00000000, /* var[18] */ - 0x00000000, /* var[19] */ - 0x00000000, /* var[20] */ - 0x00000000, /* var[21] */ - 0x00000000, /* var[22] */ - 0x00000000, /* var[23] */ - 0xe0000000, /* inc[0] */ - 0x20000000, /* inc[1] */ - 0x2000ffff, /* inc[2] */ - 0x00000000, /* inc[3] */ - 0x00000000, /* inc[4] */ - 0x00000000, /* inc[5] */ - 0x00000000, /* inc[6] */ - 0x00000000, /* inc[7] */ -}; - -u32 MCD_varTab15[]= -{ /* Task 15 Variable Table */ - 0x00000000, /* var[0] */ - 0x00000000, /* var[1] */ - 0x00000000, /* var[2] */ - 0x00000000, /* var[3] */ - 0x00000000, /* var[4] */ - 0x00000000, /* var[5] */ - 0x00000000, /* var[6] */ - 0x00000000, /* var[7] */ - 0x00000000, /* var[8] */ - 0x00000000, /* var[9] */ - 0x00000000, /* var[10] */ - 0x00000000, /* var[11] */ - 0x00000000, /* var[12] */ - 0x00000000, /* var[13] */ - 0x00000000, /* var[14] */ - 0x00000000, /* var[15] */ - 0x00000000, /* var[16] */ - 0x00000000, /* var[17] */ - 0x00000000, /* var[18] */ - 0x00000000, /* var[19] */ - 0x00000000, /* var[20] */ - 0x00000000, /* var[21] */ - 0x00000000, /* var[22] */ - 0x00000000, /* var[23] */ - 0xe0000000, /* inc[0] */ - 0x20000000, /* inc[1] */ - 0x2000ffff, /* inc[2] */ - 0x00000000, /* inc[3] */ - 0x00000000, /* inc[4] */ - 0x00000000, /* inc[5] */ - 0x00000000, /* inc[6] */ - 0x00000000, /* inc[7] */ -}; - -u32 MCD_funcDescTab0[]= -{ /* Task 0 Function Descriptor Table */ - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0xa0045670, /* mainFunc(), EU# 3 */ - 0xa0000000, /* rsduFunc(), EU# 3 */ - 0xa0000000, /* crcAccumVal(), EU# 3 */ - 0x20000000, /* setCrcAccum(), EU# 3 */ - 0x21800000, /* and(), EU# 3 */ - 0x21e00000, /* or(), EU# 3 */ - 0x20400000, /* add(), EU# 3 */ - 0x20500000, /* sub(), EU# 3 */ - 0x205a0000, /* andNot(), EU# 3 */ - 0x20a00000, /* shiftR(), EU# 3 */ - 0x202fa000, /* andReadyBit(), EU# 3 */ - 0x202f9000, /* andNotReadyBit(), EU# 3 */ - 0x202ea000, /* andWrapBit(), EU# 3 */ - 0x202da000, /* andLastBit(), EU# 3 */ - 0x202e2000, /* andInterruptBit(), EU# 3 */ - 0x202f2000, /* andCrcRestartBit(), EU# 3 */ -}; - -#ifdef MCD_INCLUDE_EU -u32 MCD_funcDescTab1[]= -{ /* Task 1 Function Descriptor Table */ - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0xa0045670, /* mainFunc(), EU# 3 */ - 0xa0000000, /* rsduFunc(), EU# 3 */ - 0xa0000000, /* crcAccumVal(), EU# 3 */ - 0x20000000, /* setCrcAccum(), EU# 3 */ - 0x21800000, /* and(), EU# 3 */ - 0x21e00000, /* or(), EU# 3 */ - 0x20400000, /* add(), EU# 3 */ - 0x20500000, /* sub(), EU# 3 */ - 0x205a0000, /* andNot(), EU# 3 */ - 0x20a00000, /* shiftR(), EU# 3 */ - 0x202fa000, /* andReadyBit(), EU# 3 */ - 0x202f9000, /* andNotReadyBit(), EU# 3 */ - 0x202ea000, /* andWrapBit(), EU# 3 */ - 0x202da000, /* andLastBit(), EU# 3 */ - 0x202e2000, /* andInterruptBit(), EU# 3 */ - 0x202f2000, /* andCrcRestartBit(), EU# 3 */ -}; - -u32 MCD_funcDescTab2[]= -{ /* Task 2 Function Descriptor Table */ - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0xa0045670, /* mainFunc(), EU# 3 */ - 0xa0000000, /* rsduFunc(), EU# 3 */ - 0xa0000000, /* crcAccumVal(), EU# 3 */ - 0x20000000, /* setCrcAccum(), EU# 3 */ - 0x21800000, /* and(), EU# 3 */ - 0x21e00000, /* or(), EU# 3 */ - 0x20400000, /* add(), EU# 3 */ - 0x20500000, /* sub(), EU# 3 */ - 0x205a0000, /* andNot(), EU# 3 */ - 0x20a00000, /* shiftR(), EU# 3 */ - 0x202fa000, /* andReadyBit(), EU# 3 */ - 0x202f9000, /* andNotReadyBit(), EU# 3 */ - 0x202ea000, /* andWrapBit(), EU# 3 */ - 0x202da000, /* andLastBit(), EU# 3 */ - 0x202e2000, /* andInterruptBit(), EU# 3 */ - 0x202f2000, /* andCrcRestartBit(), EU# 3 */ -}; - -u32 MCD_funcDescTab3[]= -{ /* Task 3 Function Descriptor Table */ - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0xa0045670, /* mainFunc(), EU# 3 */ - 0xa0000000, /* rsduFunc(), EU# 3 */ - 0xa0000000, /* crcAccumVal(), EU# 3 */ - 0x20000000, /* setCrcAccum(), EU# 3 */ - 0x21800000, /* and(), EU# 3 */ - 0x21e00000, /* or(), EU# 3 */ - 0x20400000, /* add(), EU# 3 */ - 0x20500000, /* sub(), EU# 3 */ - 0x205a0000, /* andNot(), EU# 3 */ - 0x20a00000, /* shiftR(), EU# 3 */ - 0x202fa000, /* andReadyBit(), EU# 3 */ - 0x202f9000, /* andNotReadyBit(), EU# 3 */ - 0x202ea000, /* andWrapBit(), EU# 3 */ - 0x202da000, /* andLastBit(), EU# 3 */ - 0x202e2000, /* andInterruptBit(), EU# 3 */ - 0x202f2000, /* andCrcRestartBit(), EU# 3 */ -}; - -u32 MCD_funcDescTab4[]= -{ /* Task 4 Function Descriptor Table */ - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0xa0045670, /* mainFunc(), EU# 3 */ - 0xa0000000, /* rsduFunc(), EU# 3 */ - 0xa0000000, /* crcAccumVal(), EU# 3 */ - 0x20000000, /* setCrcAccum(), EU# 3 */ - 0x21800000, /* and(), EU# 3 */ - 0x21e00000, /* or(), EU# 3 */ - 0x20400000, /* add(), EU# 3 */ - 0x20500000, /* sub(), EU# 3 */ - 0x205a0000, /* andNot(), EU# 3 */ - 0x20a00000, /* shiftR(), EU# 3 */ - 0x202fa000, /* andReadyBit(), EU# 3 */ - 0x202f9000, /* andNotReadyBit(), EU# 3 */ - 0x202ea000, /* andWrapBit(), EU# 3 */ - 0x202da000, /* andLastBit(), EU# 3 */ - 0x202e2000, /* andInterruptBit(), EU# 3 */ - 0x202f2000, /* andCrcRestartBit(), EU# 3 */ -}; - -u32 MCD_funcDescTab5[]= -{ /* Task 5 Function Descriptor Table */ - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0xa0045670, /* mainFunc(), EU# 3 */ - 0xa0000000, /* rsduFunc(), EU# 3 */ - 0xa0000000, /* crcAccumVal(), EU# 3 */ - 0x20000000, /* setCrcAccum(), EU# 3 */ - 0x21800000, /* and(), EU# 3 */ - 0x21e00000, /* or(), EU# 3 */ - 0x20400000, /* add(), EU# 3 */ - 0x20500000, /* sub(), EU# 3 */ - 0x205a0000, /* andNot(), EU# 3 */ - 0x20a00000, /* shiftR(), EU# 3 */ - 0x202fa000, /* andReadyBit(), EU# 3 */ - 0x202f9000, /* andNotReadyBit(), EU# 3 */ - 0x202ea000, /* andWrapBit(), EU# 3 */ - 0x202da000, /* andLastBit(), EU# 3 */ - 0x202e2000, /* andInterruptBit(), EU# 3 */ - 0x202f2000, /* andCrcRestartBit(), EU# 3 */ -}; - -u32 MCD_funcDescTab6[]= -{ /* Task 6 Function Descriptor Table */ - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0xa0045670, /* mainFunc(), EU# 3 */ - 0xa0000000, /* rsduFunc(), EU# 3 */ - 0xa0000000, /* crcAccumVal(), EU# 3 */ - 0x20000000, /* setCrcAccum(), EU# 3 */ - 0x21800000, /* and(), EU# 3 */ - 0x21e00000, /* or(), EU# 3 */ - 0x20400000, /* add(), EU# 3 */ - 0x20500000, /* sub(), EU# 3 */ - 0x205a0000, /* andNot(), EU# 3 */ - 0x20a00000, /* shiftR(), EU# 3 */ - 0x202fa000, /* andReadyBit(), EU# 3 */ - 0x202f9000, /* andNotReadyBit(), EU# 3 */ - 0x202ea000, /* andWrapBit(), EU# 3 */ - 0x202da000, /* andLastBit(), EU# 3 */ - 0x202e2000, /* andInterruptBit(), EU# 3 */ - 0x202f2000, /* andCrcRestartBit(), EU# 3 */ -}; - -u32 MCD_funcDescTab7[]= -{ /* Task 7 Function Descriptor Table */ - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0xa0045670, /* mainFunc(), EU# 3 */ - 0xa0000000, /* rsduFunc(), EU# 3 */ - 0xa0000000, /* crcAccumVal(), EU# 3 */ - 0x20000000, /* setCrcAccum(), EU# 3 */ - 0x21800000, /* and(), EU# 3 */ - 0x21e00000, /* or(), EU# 3 */ - 0x20400000, /* add(), EU# 3 */ - 0x20500000, /* sub(), EU# 3 */ - 0x205a0000, /* andNot(), EU# 3 */ - 0x20a00000, /* shiftR(), EU# 3 */ - 0x202fa000, /* andReadyBit(), EU# 3 */ - 0x202f9000, /* andNotReadyBit(), EU# 3 */ - 0x202ea000, /* andWrapBit(), EU# 3 */ - 0x202da000, /* andLastBit(), EU# 3 */ - 0x202e2000, /* andInterruptBit(), EU# 3 */ - 0x202f2000, /* andCrcRestartBit(), EU# 3 */ -}; - -u32 MCD_funcDescTab8[]= -{ /* Task 8 Function Descriptor Table */ - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0xa0045670, /* mainFunc(), EU# 3 */ - 0xa0000000, /* rsduFunc(), EU# 3 */ - 0xa0000000, /* crcAccumVal(), EU# 3 */ - 0x20000000, /* setCrcAccum(), EU# 3 */ - 0x21800000, /* and(), EU# 3 */ - 0x21e00000, /* or(), EU# 3 */ - 0x20400000, /* add(), EU# 3 */ - 0x20500000, /* sub(), EU# 3 */ - 0x205a0000, /* andNot(), EU# 3 */ - 0x20a00000, /* shiftR(), EU# 3 */ - 0x202fa000, /* andReadyBit(), EU# 3 */ - 0x202f9000, /* andNotReadyBit(), EU# 3 */ - 0x202ea000, /* andWrapBit(), EU# 3 */ - 0x202da000, /* andLastBit(), EU# 3 */ - 0x202e2000, /* andInterruptBit(), EU# 3 */ - 0x202f2000, /* andCrcRestartBit(), EU# 3 */ -}; - -u32 MCD_funcDescTab9[]= -{ /* Task 9 Function Descriptor Table */ - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0xa0045670, /* mainFunc(), EU# 3 */ - 0xa0000000, /* rsduFunc(), EU# 3 */ - 0xa0000000, /* crcAccumVal(), EU# 3 */ - 0x20000000, /* setCrcAccum(), EU# 3 */ - 0x21800000, /* and(), EU# 3 */ - 0x21e00000, /* or(), EU# 3 */ - 0x20400000, /* add(), EU# 3 */ - 0x20500000, /* sub(), EU# 3 */ - 0x205a0000, /* andNot(), EU# 3 */ - 0x20a00000, /* shiftR(), EU# 3 */ - 0x202fa000, /* andReadyBit(), EU# 3 */ - 0x202f9000, /* andNotReadyBit(), EU# 3 */ - 0x202ea000, /* andWrapBit(), EU# 3 */ - 0x202da000, /* andLastBit(), EU# 3 */ - 0x202e2000, /* andInterruptBit(), EU# 3 */ - 0x202f2000, /* andCrcRestartBit(), EU# 3 */ -}; - -u32 MCD_funcDescTab10[]= -{ /* Task 10 Function Descriptor Table */ - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0xa0045670, /* mainFunc(), EU# 3 */ - 0xa0000000, /* rsduFunc(), EU# 3 */ - 0xa0000000, /* crcAccumVal(), EU# 3 */ - 0x20000000, /* setCrcAccum(), EU# 3 */ - 0x21800000, /* and(), EU# 3 */ - 0x21e00000, /* or(), EU# 3 */ - 0x20400000, /* add(), EU# 3 */ - 0x20500000, /* sub(), EU# 3 */ - 0x205a0000, /* andNot(), EU# 3 */ - 0x20a00000, /* shiftR(), EU# 3 */ - 0x202fa000, /* andReadyBit(), EU# 3 */ - 0x202f9000, /* andNotReadyBit(), EU# 3 */ - 0x202ea000, /* andWrapBit(), EU# 3 */ - 0x202da000, /* andLastBit(), EU# 3 */ - 0x202e2000, /* andInterruptBit(), EU# 3 */ - 0x202f2000, /* andCrcRestartBit(), EU# 3 */ -}; - -u32 MCD_funcDescTab11[]= -{ /* Task 11 Function Descriptor Table */ - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0xa0045670, /* mainFunc(), EU# 3 */ - 0xa0000000, /* rsduFunc(), EU# 3 */ - 0xa0000000, /* crcAccumVal(), EU# 3 */ - 0x20000000, /* setCrcAccum(), EU# 3 */ - 0x21800000, /* and(), EU# 3 */ - 0x21e00000, /* or(), EU# 3 */ - 0x20400000, /* add(), EU# 3 */ - 0x20500000, /* sub(), EU# 3 */ - 0x205a0000, /* andNot(), EU# 3 */ - 0x20a00000, /* shiftR(), EU# 3 */ - 0x202fa000, /* andReadyBit(), EU# 3 */ - 0x202f9000, /* andNotReadyBit(), EU# 3 */ - 0x202ea000, /* andWrapBit(), EU# 3 */ - 0x202da000, /* andLastBit(), EU# 3 */ - 0x202e2000, /* andInterruptBit(), EU# 3 */ - 0x202f2000, /* andCrcRestartBit(), EU# 3 */ -}; - -u32 MCD_funcDescTab12[]= -{ /* Task 12 Function Descriptor Table */ - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0xa0045670, /* mainFunc(), EU# 3 */ - 0xa0000000, /* rsduFunc(), EU# 3 */ - 0xa0000000, /* crcAccumVal(), EU# 3 */ - 0x20000000, /* setCrcAccum(), EU# 3 */ - 0x21800000, /* and(), EU# 3 */ - 0x21e00000, /* or(), EU# 3 */ - 0x20400000, /* add(), EU# 3 */ - 0x20500000, /* sub(), EU# 3 */ - 0x205a0000, /* andNot(), EU# 3 */ - 0x20a00000, /* shiftR(), EU# 3 */ - 0x202fa000, /* andReadyBit(), EU# 3 */ - 0x202f9000, /* andNotReadyBit(), EU# 3 */ - 0x202ea000, /* andWrapBit(), EU# 3 */ - 0x202da000, /* andLastBit(), EU# 3 */ - 0x202e2000, /* andInterruptBit(), EU# 3 */ - 0x202f2000, /* andCrcRestartBit(), EU# 3 */ -}; - -u32 MCD_funcDescTab13[]= -{ /* Task 13 Function Descriptor Table */ - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0xa0045670, /* mainFunc(), EU# 3 */ - 0xa0000000, /* rsduFunc(), EU# 3 */ - 0xa0000000, /* crcAccumVal(), EU# 3 */ - 0x20000000, /* setCrcAccum(), EU# 3 */ - 0x21800000, /* and(), EU# 3 */ - 0x21e00000, /* or(), EU# 3 */ - 0x20400000, /* add(), EU# 3 */ - 0x20500000, /* sub(), EU# 3 */ - 0x205a0000, /* andNot(), EU# 3 */ - 0x20a00000, /* shiftR(), EU# 3 */ - 0x202fa000, /* andReadyBit(), EU# 3 */ - 0x202f9000, /* andNotReadyBit(), EU# 3 */ - 0x202ea000, /* andWrapBit(), EU# 3 */ - 0x202da000, /* andLastBit(), EU# 3 */ - 0x202e2000, /* andInterruptBit(), EU# 3 */ - 0x202f2000, /* andCrcRestartBit(), EU# 3 */ -}; - -u32 MCD_funcDescTab14[]= -{ /* Task 14 Function Descriptor Table */ - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0xa0045670, /* mainFunc(), EU# 3 */ - 0xa0000000, /* rsduFunc(), EU# 3 */ - 0xa0000000, /* crcAccumVal(), EU# 3 */ - 0x20000000, /* setCrcAccum(), EU# 3 */ - 0x21800000, /* and(), EU# 3 */ - 0x21e00000, /* or(), EU# 3 */ - 0x20400000, /* add(), EU# 3 */ - 0x20500000, /* sub(), EU# 3 */ - 0x205a0000, /* andNot(), EU# 3 */ - 0x20a00000, /* shiftR(), EU# 3 */ - 0x202fa000, /* andReadyBit(), EU# 3 */ - 0x202f9000, /* andNotReadyBit(), EU# 3 */ - 0x202ea000, /* andWrapBit(), EU# 3 */ - 0x202da000, /* andLastBit(), EU# 3 */ - 0x202e2000, /* andInterruptBit(), EU# 3 */ - 0x202f2000, /* andCrcRestartBit(), EU# 3 */ -}; - -u32 MCD_funcDescTab15[]= -{ /* Task 15 Function Descriptor Table */ - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0xa0045670, /* mainFunc(), EU# 3 */ - 0xa0000000, /* rsduFunc(), EU# 3 */ - 0xa0000000, /* crcAccumVal(), EU# 3 */ - 0x20000000, /* setCrcAccum(), EU# 3 */ - 0x21800000, /* and(), EU# 3 */ - 0x21e00000, /* or(), EU# 3 */ - 0x20400000, /* add(), EU# 3 */ - 0x20500000, /* sub(), EU# 3 */ - 0x205a0000, /* andNot(), EU# 3 */ - 0x20a00000, /* shiftR(), EU# 3 */ - 0x202fa000, /* andReadyBit(), EU# 3 */ - 0x202f9000, /* andNotReadyBit(), EU# 3 */ - 0x202ea000, /* andWrapBit(), EU# 3 */ - 0x202da000, /* andLastBit(), EU# 3 */ - 0x202e2000, /* andInterruptBit(), EU# 3 */ - 0x202f2000, /* andCrcRestartBit(), EU# 3 */ -}; -#endif /*MCD_INCLUDE_EU*/ - -u32 MCD_contextSave0[128]; /* Task 0 context save space */ -u32 MCD_contextSave1[128]; /* Task 1 context save space */ -u32 MCD_contextSave2[128]; /* Task 2 context save space */ -u32 MCD_contextSave3[128]; /* Task 3 context save space */ -u32 MCD_contextSave4[128]; /* Task 4 context save space */ -u32 MCD_contextSave5[128]; /* Task 5 context save space */ -u32 MCD_contextSave6[128]; /* Task 6 context save space */ -u32 MCD_contextSave7[128]; /* Task 7 context save space */ -u32 MCD_contextSave8[128]; /* Task 8 context save space */ -u32 MCD_contextSave9[128]; /* Task 9 context save space */ -u32 MCD_contextSave10[128]; /* Task 10 context save space */ -u32 MCD_contextSave11[128]; /* Task 11 context save space */ -u32 MCD_contextSave12[128]; /* Task 12 context save space */ -u32 MCD_contextSave13[128]; /* Task 13 context save space */ -u32 MCD_contextSave14[128]; /* Task 14 context save space */ -u32 MCD_contextSave15[128]; /* Task 15 context save space */ - - -u32 MCD_ChainNoEu_TDT[]; -u32 MCD_SingleNoEu_TDT[]; -#ifdef MCD_INCLUDE_EU -u32 MCD_ChainEu_TDT[]; -u32 MCD_SingleEu_TDT[]; -#endif -u32 MCD_ENetRcv_TDT[]; -u32 MCD_ENetXmit_TDT[]; - -u32 MCD_modelTaskTableSrc[]= -{ - (u32)MCD_ChainNoEu_TDT, - (u32)&((u8*)MCD_ChainNoEu_TDT)[0x0000016c], - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - (u32)MCD_SingleNoEu_TDT, - (u32)&((u8*)MCD_SingleNoEu_TDT)[0x000000d4], - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, -#ifdef MCD_INCLUDE_EU - (u32)MCD_ChainEu_TDT, - (u32)&((u8*)MCD_ChainEu_TDT)[0x000001b4], - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - (u32)MCD_SingleEu_TDT, - (u32)&((u8*)MCD_SingleEu_TDT)[0x00000124], - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, -#endif - (u32)MCD_ENetRcv_TDT, - (u32)&((u8*)MCD_ENetRcv_TDT)[0x0000009c], - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - (u32)MCD_ENetXmit_TDT, - (u32)&((u8*)MCD_ENetXmit_TDT)[0x000000d0], - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, -}; -u32 MCD_ChainNoEu_TDT[]= -{ - 0x80004000, /* 0000(:370): LCDEXT: idx0 = 0x00000000; ; */ - 0x8118801b, /* 0004(:370): LCD: idx1 = var2; idx1 once var0; idx1 += inc3 */ - 0xb8c60018, /* 0008(:371): LCD: idx2 = *(idx1 + var12); idx2 once var0; idx2 += inc3 */ - 0x10002b10, /* 000C(:372): DRD1A: var10 = idx2; FN=0 MORE init=0 WS=0 RS=0 */ - 0x7000000d, /* 0010(:373): DRD2A: EU0=0 EU1=0 EU2=0 EU3=13 EXT MORE init=0 WS=0 RS=0 */ - 0x018cf89f, /* 0014(:373): DRD2B1: var6 = EU3(); EU3(idx2) */ - 0x6000000a, /* 0018(:374): DRD2A: EU0=0 EU1=0 EU2=0 EU3=10 EXT init=0 WS=0 RS=0 */ - 0x080cf89f, /* 001C(:374): DRD2B1: idx0 = EU3(); EU3(idx2) */ - 0x000001f8, /* 0020(:0): NOP */ - 0x98180364, /* 0024(:378): LCD: idx0 = idx0; idx0 == var13; idx0 += inc4 */ - 0x8118801b, /* 0028(:380): LCD: idx1 = var2; idx1 once var0; idx1 += inc3 */ - 0xf8c6001a, /* 002C(:381): LCDEXT: idx2 = *(idx1 + var12 + 8); idx2 once var0; idx2 += inc3 */ - 0xb8c6601b, /* 0030(:382): LCD: idx3 = *(idx1 + var12 + 12); ; idx3 += inc3 */ - 0x10002710, /* 0034(:384): DRD1A: var9 = idx2; FN=0 MORE init=0 WS=0 RS=0 */ - 0x00000f18, /* 0038(:385): DRD1A: var3 = idx3; FN=0 init=0 WS=0 RS=0 */ - 0xb8c6001d, /* 003C(:387): LCD: idx2 = *(idx1 + var12 + 20); idx2 once var0; idx2 += inc3 */ - 0x10001310, /* 0040(:388): DRD1A: var4 = idx2; FN=0 MORE init=0 WS=0 RS=0 */ - 0x60000007, /* 0044(:389): DRD2A: EU0=0 EU1=0 EU2=0 EU3=7 EXT init=0 WS=0 RS=0 */ - 0x014cf88b, /* 0048(:389): DRD2B1: var5 = EU3(); EU3(idx2,var11) */ - 0x98c6001c, /* 004C(:391): LCD: idx2 = idx1 + var12 + 4; idx2 once var0; idx2 += inc3 */ - 0x00000710, /* 0050(:392): DRD1A: var1 = idx2; FN=0 init=0 WS=0 RS=0 */ - 0x98c70018, /* 0054(:393): LCD: idx2 = idx1 + var14; idx2 once var0; idx2 += inc3 */ - 0x10001f10, /* 0058(:394): DRD1A: var7 = idx2; FN=0 MORE init=0 WS=0 RS=0 */ - 0x0000c818, /* 005C(:395): DRD1A: *idx2 = var3; FN=0 init=0 WS=0 RS=0 */ - 0x000001f8, /* 0060(:0): NOP */ - 0xc1476018, /* 0064(:399): LCDEXT: idx1 = var2 + var14; ; idx1 += inc3 */ - 0xc003231d, /* 0068(:399): LCDEXT: idx2 = var0, idx3 = var6; idx3 == var12; idx2 += inc3, idx3 += inc5 */ - 0x811a601b, /* 006C(:400): LCD: idx4 = var2; ; idx4 += inc3 */ - 0xc1862102, /* 0070(:403): LCDEXT: idx5 = var3, idx6 = var12; idx6 < var4; idx5 += inc0, idx6 += inc2 */ - 0x849be009, /* 0074(:403): LCD: idx7 = var9; ; idx7 += inc1 */ - 0x03fed7b8, /* 0078(:406): DRD1A: *idx7; FN=0 init=31 WS=3 RS=3 */ - 0xda9b001b, /* 007C(:408): LCDEXT: idx5 = idx5, idx6 = idx6; idx5 once var0; idx5 += inc3, idx6 += inc3 */ - 0x9b9be01b, /* 0080(:408): LCD: idx7 = idx7; ; idx7 += inc3 */ - 0x1000cb20, /* 0084(:409): DRD1A: *idx2 = idx4; FN=0 MORE init=0 WS=0 RS=0 */ - 0x70000006, /* 0088(:410): DRD2A: EU0=0 EU1=0 EU2=0 EU3=6 EXT MORE init=0 WS=0 RS=0 */ - 0x088cf88f, /* 008C(:410): DRD2B1: idx2 = EU3(); EU3(idx2,var15) */ - 0x1000cb28, /* 0090(:411): DRD1A: *idx2 = idx5; FN=0 MORE init=0 WS=0 RS=0 */ - 0x70000006, /* 0094(:412): DRD2A: EU0=0 EU1=0 EU2=0 EU3=6 EXT MORE init=0 WS=0 RS=0 */ - 0x088cf88f, /* 0098(:412): DRD2B1: idx2 = EU3(); EU3(idx2,var15) */ - 0x1000cb30, /* 009C(:413): DRD1A: *idx2 = idx6; FN=0 MORE init=0 WS=0 RS=0 */ - 0x70000006, /* 00A0(:414): DRD2A: EU0=0 EU1=0 EU2=0 EU3=6 EXT MORE init=0 WS=0 RS=0 */ - 0x088cf88f, /* 00A4(:414): DRD2B1: idx2 = EU3(); EU3(idx2,var15) */ - 0x1000cb38, /* 00A8(:415): DRD1A: *idx2 = idx7; FN=0 MORE init=0 WS=0 RS=0 */ - 0x0000c728, /* 00AC(:416): DRD1A: *idx1 = idx5; FN=0 init=0 WS=0 RS=0 */ - 0x000001f8, /* 00B0(:0): NOP */ - 0xc1476018, /* 00B4(:420): LCDEXT: idx1 = var2 + var14; ; idx1 += inc3 */ - 0xc003241d, /* 00B8(:420): LCDEXT: idx2 = var0, idx3 = var6; idx3 == var16; idx2 += inc3, idx3 += inc5 */ - 0x811a601b, /* 00BC(:421): LCD: idx4 = var2; ; idx4 += inc3 */ - 0xda9b001b, /* 00C0(:424): LCDEXT: idx5 = idx5, idx6 = idx6; idx5 once var0; idx5 += inc3, idx6 += inc3 */ - 0x9b9be01b, /* 00C4(:424): LCD: idx7 = idx7; ; idx7 += inc3 */ - 0x0000d3a0, /* 00C8(:425): DRD1A: *idx4; FN=0 init=0 WS=0 RS=0 */ - 0xc1862102, /* 00CC(:427): LCDEXT: idx5 = var3, idx6 = var12; idx6 < var4; idx5 += inc0, idx6 += inc2 */ - 0x849be009, /* 00D0(:427): LCD: idx7 = var9; ; idx7 += inc1 */ - 0x0bfed7b8, /* 00D4(:430): DRD1A: *idx7; FN=0 TFD init=31 WS=3 RS=3 */ - 0xda9b001b, /* 00D8(:432): LCDEXT: idx5 = idx5, idx6 = idx6; idx5 once var0; idx5 += inc3, idx6 += inc3 */ - 0x9b9be01b, /* 00DC(:432): LCD: idx7 = idx7; ; idx7 += inc3 */ - 0x1000cb20, /* 00E0(:433): DRD1A: *idx2 = idx4; FN=0 MORE init=0 WS=0 RS=0 */ - 0x70000006, /* 00E4(:434): DRD2A: EU0=0 EU1=0 EU2=0 EU3=6 EXT MORE init=0 WS=0 RS=0 */ - 0x088cf88f, /* 00E8(:434): DRD2B1: idx2 = EU3(); EU3(idx2,var15) */ - 0x1000cb28, /* 00EC(:435): DRD1A: *idx2 = idx5; FN=0 MORE init=0 WS=0 RS=0 */ - 0x70000006, /* 00F0(:436): DRD2A: EU0=0 EU1=0 EU2=0 EU3=6 EXT MORE init=0 WS=0 RS=0 */ - 0x088cf88f, /* 00F4(:436): DRD2B1: idx2 = EU3(); EU3(idx2,var15) */ - 0x1000cb30, /* 00F8(:437): DRD1A: *idx2 = idx6; FN=0 MORE init=0 WS=0 RS=0 */ - 0x70000006, /* 00FC(:438): DRD2A: EU0=0 EU1=0 EU2=0 EU3=6 EXT MORE init=0 WS=0 RS=0 */ - 0x088cf88f, /* 0100(:438): DRD2B1: idx2 = EU3(); EU3(idx2,var15) */ - 0x1000cb38, /* 0104(:439): DRD1A: *idx2 = idx7; FN=0 MORE init=0 WS=0 RS=0 */ - 0x0000c728, /* 0108(:440): DRD1A: *idx1 = idx5; FN=0 init=0 WS=0 RS=0 */ - 0x000001f8, /* 010C(:0): NOP */ - 0x8118801b, /* 0110(:444): LCD: idx1 = var2; idx1 once var0; idx1 += inc3 */ - 0xd8c60018, /* 0114(:446): LCDEXT: idx2 = idx1 + var12; idx2 once var0; idx2 += inc3 */ - 0x98c6601c, /* 0118(:446): LCD: idx3 = idx1 + var12 + 4; ; idx3 += inc3 */ - 0x6000000b, /* 011C(:447): DRD2A: EU0=0 EU1=0 EU2=0 EU3=11 EXT init=0 WS=0 RS=0 */ - 0x0c8cfc9f, /* 0120(:447): DRD2B1: *idx2 = EU3(); EU3(*idx2) */ - 0x000001f8, /* 0124(:0): NOP */ - 0xa146001e, /* 0128(:450): LCD: idx1 = *(var2 + var12 + 24); idx1 once var0; idx1 += inc3 */ - 0x10000b08, /* 012C(:451): DRD1A: var2 = idx1; FN=0 MORE init=0 WS=0 RS=0 */ - 0x10002050, /* 0130(:452): DRD1A: var8 = var10; FN=0 MORE init=0 WS=0 RS=0 */ - 0xb8c60018, /* 0134(:453): LCD: idx2 = *(idx1 + var12); idx2 once var0; idx2 += inc3 */ - 0x10002b10, /* 0138(:454): DRD1A: var10 = idx2; FN=0 MORE init=0 WS=0 RS=0 */ - 0x7000000a, /* 013C(:455): DRD2A: EU0=0 EU1=0 EU2=0 EU3=10 EXT MORE init=0 WS=0 RS=0 */ - 0x080cf89f, /* 0140(:455): DRD2B1: idx0 = EU3(); EU3(idx2) */ - 0x6000000d, /* 0144(:456): DRD2A: EU0=0 EU1=0 EU2=0 EU3=13 EXT init=0 WS=0 RS=0 */ - 0x018cf89f, /* 0148(:456): DRD2B1: var6 = EU3(); EU3(idx2) */ - 0x000001f8, /* 014C(:0): NOP */ - 0x8618801b, /* 0150(:462): LCD: idx1 = var12; idx1 once var0; idx1 += inc3 */ - 0x7000000e, /* 0154(:463): DRD2A: EU0=0 EU1=0 EU2=0 EU3=14 EXT MORE init=0 WS=0 RS=0 */ - 0x084cf21f, /* 0158(:463): DRD2B1: idx1 = EU3(); EU3(var8) */ - 0xd8990336, /* 015C(:464): LCDEXT: idx2 = idx1; idx2 > var12; idx2 += inc6 */ - 0x8019801b, /* 0160(:464): LCD: idx3 = var0; idx3 once var0; idx3 += inc3 */ - 0x040001f8, /* 0164(:465): DRD1A: FN=0 INT init=0 WS=0 RS=0 */ - 0x000001f8, /* 0168(:0): NOP */ - 0x000001f8, /* 016C(:0): NOP */ -}; -u32 MCD_SingleNoEu_TDT[]= -{ - 0x8198001b, /* 0000(:657): LCD: idx0 = var3; idx0 once var0; idx0 += inc3 */ - 0x7000000d, /* 0004(:658): DRD2A: EU0=0 EU1=0 EU2=0 EU3=13 EXT MORE init=0 WS=0 RS=0 */ - 0x080cf81f, /* 0008(:658): DRD2B1: idx0 = EU3(); EU3(idx0) */ - 0x8198801b, /* 000C(:659): LCD: idx1 = var3; idx1 once var0; idx1 += inc3 */ - 0x6000000e, /* 0010(:660): DRD2A: EU0=0 EU1=0 EU2=0 EU3=14 EXT init=0 WS=0 RS=0 */ - 0x084cf85f, /* 0014(:660): DRD2B1: idx1 = EU3(); EU3(idx1) */ - 0x000001f8, /* 0018(:0): NOP */ - 0x8298001b, /* 001C(:664): LCD: idx0 = var5; idx0 once var0; idx0 += inc3 */ - 0x7000000d, /* 0020(:665): DRD2A: EU0=0 EU1=0 EU2=0 EU3=13 EXT MORE init=0 WS=0 RS=0 */ - 0x010cf81f, /* 0024(:665): DRD2B1: var4 = EU3(); EU3(idx0) */ - 0x6000000e, /* 0028(:666): DRD2A: EU0=0 EU1=0 EU2=0 EU3=14 EXT init=0 WS=0 RS=0 */ - 0x018cf81f, /* 002C(:666): DRD2B1: var6 = EU3(); EU3(idx0) */ - 0xc202601b, /* 0030(:669): LCDEXT: idx0 = var4, idx1 = var4; ; idx0 += inc3, idx1 += inc3 */ - 0xc002221c, /* 0034(:669): LCDEXT: idx2 = var0, idx3 = var4; idx3 == var8; idx2 += inc3, idx3 += inc4 */ - 0x809a601b, /* 0038(:670): LCD: idx4 = var1; ; idx4 += inc3 */ - 0xc10420c2, /* 003C(:673): LCDEXT: idx5 = var2, idx6 = var8; idx6 < var3; idx5 += inc0, idx6 += inc2 */ - 0x839be009, /* 0040(:673): LCD: idx7 = var7; ; idx7 += inc1 */ - 0x03fed7b8, /* 0044(:676): DRD1A: *idx7; FN=0 init=31 WS=3 RS=3 */ - 0xda9b001b, /* 0048(:678): LCDEXT: idx5 = idx5, idx6 = idx6; idx5 once var0; idx5 += inc3, idx6 += inc3 */ - 0x9b9be01b, /* 004C(:678): LCD: idx7 = idx7; ; idx7 += inc3 */ - 0x70000006, /* 0050(:680): DRD2A: EU0=0 EU1=0 EU2=0 EU3=6 EXT MORE init=0 WS=0 RS=0 */ - 0x088cf889, /* 0054(:680): DRD2B1: idx2 = EU3(); EU3(idx2,var9) */ - 0x1000cb28, /* 0058(:681): DRD1A: *idx2 = idx5; FN=0 MORE init=0 WS=0 RS=0 */ - 0x70000006, /* 005C(:682): DRD2A: EU0=0 EU1=0 EU2=0 EU3=6 EXT MORE init=0 WS=0 RS=0 */ - 0x088cf889, /* 0060(:682): DRD2B1: idx2 = EU3(); EU3(idx2,var9) */ - 0x1000cb30, /* 0064(:683): DRD1A: *idx2 = idx6; FN=0 MORE init=0 WS=0 RS=0 */ - 0x70000006, /* 0068(:684): DRD2A: EU0=0 EU1=0 EU2=0 EU3=6 EXT MORE init=0 WS=0 RS=0 */ - 0x088cf889, /* 006C(:684): DRD2B1: idx2 = EU3(); EU3(idx2,var9) */ - 0x0000cb38, /* 0070(:685): DRD1A: *idx2 = idx7; FN=0 init=0 WS=0 RS=0 */ - 0x000001f8, /* 0074(:0): NOP */ - 0xc202601b, /* 0078(:689): LCDEXT: idx0 = var4, idx1 = var4; ; idx0 += inc3, idx1 += inc3 */ - 0xc002229c, /* 007C(:689): LCDEXT: idx2 = var0, idx3 = var4; idx3 == var10; idx2 += inc3, idx3 += inc4 */ - 0x809a601b, /* 0080(:690): LCD: idx4 = var1; ; idx4 += inc3 */ - 0xda9b001b, /* 0084(:693): LCDEXT: idx5 = idx5, idx6 = idx6; idx5 once var0; idx5 += inc3, idx6 += inc3 */ - 0x9b9be01b, /* 0088(:693): LCD: idx7 = idx7; ; idx7 += inc3 */ - 0x0000d3a0, /* 008C(:694): DRD1A: *idx4; FN=0 init=0 WS=0 RS=0 */ - 0xc10420c2, /* 0090(:696): LCDEXT: idx5 = var2, idx6 = var8; idx6 < var3; idx5 += inc0, idx6 += inc2 */ - 0x839be009, /* 0094(:696): LCD: idx7 = var7; ; idx7 += inc1 */ - 0x0bfed7b8, /* 0098(:699): DRD1A: *idx7; FN=0 TFD init=31 WS=3 RS=3 */ - 0xda9b001b, /* 009C(:701): LCDEXT: idx5 = idx5, idx6 = idx6; idx5 once var0; idx5 += inc3, idx6 += inc3 */ - 0x9b9be01b, /* 00A0(:701): LCD: idx7 = idx7; ; idx7 += inc3 */ - 0x70000006, /* 00A4(:703): DRD2A: EU0=0 EU1=0 EU2=0 EU3=6 EXT MORE init=0 WS=0 RS=0 */ - 0x088cf889, /* 00A8(:703): DRD2B1: idx2 = EU3(); EU3(idx2,var9) */ - 0x1000cb28, /* 00AC(:704): DRD1A: *idx2 = idx5; FN=0 MORE init=0 WS=0 RS=0 */ - 0x70000006, /* 00B0(:705): DRD2A: EU0=0 EU1=0 EU2=0 EU3=6 EXT MORE init=0 WS=0 RS=0 */ - 0x088cf889, /* 00B4(:705): DRD2B1: idx2 = EU3(); EU3(idx2,var9) */ - 0x1000cb30, /* 00B8(:706): DRD1A: *idx2 = idx6; FN=0 MORE init=0 WS=0 RS=0 */ - 0x70000006, /* 00BC(:707): DRD2A: EU0=0 EU1=0 EU2=0 EU3=6 EXT MORE init=0 WS=0 RS=0 */ - 0x088cf889, /* 00C0(:707): DRD2B1: idx2 = EU3(); EU3(idx2,var9) */ - 0x0000cb38, /* 00C4(:708): DRD1A: *idx2 = idx7; FN=0 init=0 WS=0 RS=0 */ - 0x000001f8, /* 00C8(:0): NOP */ - 0xc318022d, /* 00CC(:712): LCDEXT: idx0 = var6; idx0 > var8; idx0 += inc5 */ - 0x8018801b, /* 00D0(:712): LCD: idx1 = var0; idx1 once var0; idx1 += inc3 */ - 0x040001f8, /* 00D4(:713): DRD1A: FN=0 INT init=0 WS=0 RS=0 */ -}; -#ifdef MCD_INCLUDE_EU -u32 MCD_ChainEu_TDT[]= -{ - 0x80004000, /* 0000(:947): LCDEXT: idx0 = 0x00000000; ; */ - 0x8198801b, /* 0004(:947): LCD: idx1 = var3; idx1 once var0; idx1 += inc3 */ - 0xb8c68018, /* 0008(:948): LCD: idx2 = *(idx1 + var13); idx2 once var0; idx2 += inc3 */ - 0x10002f10, /* 000C(:949): DRD1A: var11 = idx2; FN=0 MORE init=0 WS=0 RS=0 */ - 0x7000000d, /* 0010(:950): DRD2A: EU0=0 EU1=0 EU2=0 EU3=13 EXT MORE init=0 WS=0 RS=0 */ - 0x01ccf89f, /* 0014(:950): DRD2B1: var7 = EU3(); EU3(idx2) */ - 0x6000000a, /* 0018(:951): DRD2A: EU0=0 EU1=0 EU2=0 EU3=10 EXT init=0 WS=0 RS=0 */ - 0x080cf89f, /* 001C(:951): DRD2B1: idx0 = EU3(); EU3(idx2) */ - 0x000001f8, /* 0020(:0): NOP */ - 0x981803a4, /* 0024(:955): LCD: idx0 = idx0; idx0 == var14; idx0 += inc4 */ - 0x8198801b, /* 0028(:957): LCD: idx1 = var3; idx1 once var0; idx1 += inc3 */ - 0xf8c6801a, /* 002C(:958): LCDEXT: idx2 = *(idx1 + var13 + 8); idx2 once var0; idx2 += inc3 */ - 0xb8c6e01b, /* 0030(:959): LCD: idx3 = *(idx1 + var13 + 12); ; idx3 += inc3 */ - 0x10002b10, /* 0034(:961): DRD1A: var10 = idx2; FN=0 MORE init=0 WS=0 RS=0 */ - 0x00001318, /* 0038(:962): DRD1A: var4 = idx3; FN=0 init=0 WS=0 RS=0 */ - 0xb8c6801d, /* 003C(:964): LCD: idx2 = *(idx1 + var13 + 20); idx2 once var0; idx2 += inc3 */ - 0x10001710, /* 0040(:965): DRD1A: var5 = idx2; FN=0 MORE init=0 WS=0 RS=0 */ - 0x60000007, /* 0044(:966): DRD2A: EU0=0 EU1=0 EU2=0 EU3=7 EXT init=0 WS=0 RS=0 */ - 0x018cf88c, /* 0048(:966): DRD2B1: var6 = EU3(); EU3(idx2,var12) */ - 0x98c6801c, /* 004C(:968): LCD: idx2 = idx1 + var13 + 4; idx2 once var0; idx2 += inc3 */ - 0x00000b10, /* 0050(:969): DRD1A: var2 = idx2; FN=0 init=0 WS=0 RS=0 */ - 0x98c78018, /* 0054(:970): LCD: idx2 = idx1 + var15; idx2 once var0; idx2 += inc3 */ - 0x10002310, /* 0058(:971): DRD1A: var8 = idx2; FN=0 MORE init=0 WS=0 RS=0 */ - 0x0000c820, /* 005C(:972): DRD1A: *idx2 = var4; FN=0 init=0 WS=0 RS=0 */ - 0x000001f8, /* 0060(:0): NOP */ - 0x8698801b, /* 0064(:976): LCD: idx1 = var13; idx1 once var0; idx1 += inc3 */ - 0x7000000f, /* 0068(:977): DRD2A: EU0=0 EU1=0 EU2=0 EU3=15 EXT MORE init=0 WS=0 RS=0 */ - 0x084cf2df, /* 006C(:977): DRD2B1: idx1 = EU3(); EU3(var11) */ - 0xd899042d, /* 0070(:978): LCDEXT: idx2 = idx1; idx2 >= var16; idx2 += inc5 */ - 0x8019801b, /* 0074(:978): LCD: idx3 = var0; idx3 once var0; idx3 += inc3 */ - 0x60000003, /* 0078(:979): DRD2A: EU0=0 EU1=0 EU2=0 EU3=3 EXT init=0 WS=0 RS=0 */ - 0x2cd7c7df, /* 007C(:979): DRD2B2: EU3(var13) */ - 0xd8990364, /* 0080(:980): LCDEXT: idx2 = idx1; idx2 == var13; idx2 += inc4 */ - 0x8019801b, /* 0084(:980): LCD: idx3 = var0; idx3 once var0; idx3 += inc3 */ - 0x60000003, /* 0088(:981): DRD2A: EU0=0 EU1=0 EU2=0 EU3=3 EXT init=0 WS=0 RS=0 */ - 0x2c17c7df, /* 008C(:981): DRD2B2: EU3(var1) */ - 0x000001f8, /* 0090(:0): NOP */ - 0xc1c7e018, /* 0094(:984): LCDEXT: idx1 = var3 + var15; ; idx1 += inc3 */ - 0xc003a35e, /* 0098(:984): LCDEXT: idx2 = var0, idx3 = var7; idx3 == var13; idx2 += inc3, idx3 += inc6 */ - 0x819a601b, /* 009C(:985): LCD: idx4 = var3; ; idx4 += inc3 */ - 0xc206a142, /* 00A0(:988): LCDEXT: idx5 = var4, idx6 = var13; idx6 < var5; idx5 += inc0, idx6 += inc2 */ - 0x851be009, /* 00A4(:988): LCD: idx7 = var10; ; idx7 += inc1 */ - 0x63fe0000, /* 00A8(:991): DRD2A: EU0=0 EU1=0 EU2=0 EU3=0 EXT init=31 WS=3 RS=3 */ - 0x0d4cfddf, /* 00AC(:991): DRD2B1: *idx5 = EU3(); EU3(*idx7) */ - 0xda9b001b, /* 00B0(:993): LCDEXT: idx5 = idx5, idx6 = idx6; idx5 once var0; idx5 += inc3, idx6 += inc3 */ - 0x9b9be01b, /* 00B4(:993): LCD: idx7 = idx7; ; idx7 += inc3 */ - 0x70000002, /* 00B8(:994): DRD2A: EU0=0 EU1=0 EU2=0 EU3=2 EXT MORE init=0 WS=0 RS=0 */ - 0x004cf81f, /* 00BC(:994): DRD2B1: var1 = EU3(); EU3(idx0) */ - 0x1000cb20, /* 00C0(:995): DRD1A: *idx2 = idx4; FN=0 MORE init=0 WS=0 RS=0 */ - 0x70000006, /* 00C4(:996): DRD2A: EU0=0 EU1=0 EU2=0 EU3=6 EXT MORE init=0 WS=0 RS=0 */ - 0x088cf891, /* 00C8(:996): DRD2B1: idx2 = EU3(); EU3(idx2,var17) */ - 0x1000cb28, /* 00CC(:997): DRD1A: *idx2 = idx5; FN=0 MORE init=0 WS=0 RS=0 */ - 0x70000006, /* 00D0(:998): DRD2A: EU0=0 EU1=0 EU2=0 EU3=6 EXT MORE init=0 WS=0 RS=0 */ - 0x088cf891, /* 00D4(:998): DRD2B1: idx2 = EU3(); EU3(idx2,var17) */ - 0x1000cb30, /* 00D8(:999): DRD1A: *idx2 = idx6; FN=0 MORE init=0 WS=0 RS=0 */ - 0x70000006, /* 00DC(:1000): DRD2A: EU0=0 EU1=0 EU2=0 EU3=6 EXT MORE init=0 WS=0 RS=0 */ - 0x088cf891, /* 00E0(:1000): DRD2B1: idx2 = EU3(); EU3(idx2,var17) */ - 0x1000cb38, /* 00E4(:1001): DRD1A: *idx2 = idx7; FN=0 MORE init=0 WS=0 RS=0 */ - 0x0000c728, /* 00E8(:1002): DRD1A: *idx1 = idx5; FN=0 init=0 WS=0 RS=0 */ - 0x000001f8, /* 00EC(:0): NOP */ - 0xc1c7e018, /* 00F0(:1006): LCDEXT: idx1 = var3 + var15; ; idx1 += inc3 */ - 0xc003a49e, /* 00F4(:1006): LCDEXT: idx2 = var0, idx3 = var7; idx3 == var18; idx2 += inc3, idx3 += inc6 */ - 0x819a601b, /* 00F8(:1007): LCD: idx4 = var3; ; idx4 += inc3 */ - 0xda9b001b, /* 00FC(:1010): LCDEXT: idx5 = idx5, idx6 = idx6; idx5 once var0; idx5 += inc3, idx6 += inc3 */ - 0x9b9be01b, /* 0100(:1010): LCD: idx7 = idx7; ; idx7 += inc3 */ - 0x0000d3a0, /* 0104(:1011): DRD1A: *idx4; FN=0 init=0 WS=0 RS=0 */ - 0xc206a142, /* 0108(:1013): LCDEXT: idx5 = var4, idx6 = var13; idx6 < var5; idx5 += inc0, idx6 += inc2 */ - 0x851be009, /* 010C(:1013): LCD: idx7 = var10; ; idx7 += inc1 */ - 0x6bfe0000, /* 0110(:1016): DRD2A: EU0=0 EU1=0 EU2=0 EU3=0 TFD EXT init=31 WS=3 RS=3 */ - 0x0d4cfddf, /* 0114(:1016): DRD2B1: *idx5 = EU3(); EU3(*idx7) */ - 0xda9b001b, /* 0118(:1018): LCDEXT: idx5 = idx5, idx6 = idx6; idx5 once var0; idx5 += inc3, idx6 += inc3 */ - 0x9b9be01b, /* 011C(:1018): LCD: idx7 = idx7; ; idx7 += inc3 */ - 0x70000002, /* 0120(:1019): DRD2A: EU0=0 EU1=0 EU2=0 EU3=2 EXT MORE init=0 WS=0 RS=0 */ - 0x004cf81f, /* 0124(:1019): DRD2B1: var1 = EU3(); EU3(idx0) */ - 0x1000cb20, /* 0128(:1020): DRD1A: *idx2 = idx4; FN=0 MORE init=0 WS=0 RS=0 */ - 0x70000006, /* 012C(:1021): DRD2A: EU0=0 EU1=0 EU2=0 EU3=6 EXT MORE init=0 WS=0 RS=0 */ - 0x088cf891, /* 0130(:1021): DRD2B1: idx2 = EU3(); EU3(idx2,var17) */ - 0x1000cb28, /* 0134(:1022): DRD1A: *idx2 = idx5; FN=0 MORE init=0 WS=0 RS=0 */ - 0x70000006, /* 0138(:1023): DRD2A: EU0=0 EU1=0 EU2=0 EU3=6 EXT MORE init=0 WS=0 RS=0 */ - 0x088cf891, /* 013C(:1023): DRD2B1: idx2 = EU3(); EU3(idx2,var17) */ - 0x1000cb30, /* 0140(:1024): DRD1A: *idx2 = idx6; FN=0 MORE init=0 WS=0 RS=0 */ - 0x70000006, /* 0144(:1025): DRD2A: EU0=0 EU1=0 EU2=0 EU3=6 EXT MORE init=0 WS=0 RS=0 */ - 0x088cf891, /* 0148(:1025): DRD2B1: idx2 = EU3(); EU3(idx2,var17) */ - 0x1000cb38, /* 014C(:1026): DRD1A: *idx2 = idx7; FN=0 MORE init=0 WS=0 RS=0 */ - 0x0000c728, /* 0150(:1027): DRD1A: *idx1 = idx5; FN=0 init=0 WS=0 RS=0 */ - 0x000001f8, /* 0154(:0): NOP */ - 0x8198801b, /* 0158(:1031): LCD: idx1 = var3; idx1 once var0; idx1 += inc3 */ - 0xd8c68018, /* 015C(:1033): LCDEXT: idx2 = idx1 + var13; idx2 once var0; idx2 += inc3 */ - 0x98c6e01c, /* 0160(:1033): LCD: idx3 = idx1 + var13 + 4; ; idx3 += inc3 */ - 0x6000000b, /* 0164(:1034): DRD2A: EU0=0 EU1=0 EU2=0 EU3=11 EXT init=0 WS=0 RS=0 */ - 0x0c8cfc9f, /* 0168(:1034): DRD2B1: *idx2 = EU3(); EU3(*idx2) */ - 0x0000cc08, /* 016C(:1035): DRD1A: *idx3 = var1; FN=0 init=0 WS=0 RS=0 */ - 0xa1c6801e, /* 0170(:1038): LCD: idx1 = *(var3 + var13 + 24); idx1 once var0; idx1 += inc3 */ - 0x10000f08, /* 0174(:1039): DRD1A: var3 = idx1; FN=0 MORE init=0 WS=0 RS=0 */ - 0x10002458, /* 0178(:1040): DRD1A: var9 = var11; FN=0 MORE init=0 WS=0 RS=0 */ - 0xb8c68018, /* 017C(:1041): LCD: idx2 = *(idx1 + var13); idx2 once var0; idx2 += inc3 */ - 0x10002f10, /* 0180(:1042): DRD1A: var11 = idx2; FN=0 MORE init=0 WS=0 RS=0 */ - 0x7000000a, /* 0184(:1043): DRD2A: EU0=0 EU1=0 EU2=0 EU3=10 EXT MORE init=0 WS=0 RS=0 */ - 0x080cf89f, /* 0188(:1043): DRD2B1: idx0 = EU3(); EU3(idx2) */ - 0x6000000d, /* 018C(:1044): DRD2A: EU0=0 EU1=0 EU2=0 EU3=13 EXT init=0 WS=0 RS=0 */ - 0x01ccf89f, /* 0190(:1044): DRD2B1: var7 = EU3(); EU3(idx2) */ - 0x000001f8, /* 0194(:0): NOP */ - 0x8698801b, /* 0198(:1050): LCD: idx1 = var13; idx1 once var0; idx1 += inc3 */ - 0x7000000e, /* 019C(:1051): DRD2A: EU0=0 EU1=0 EU2=0 EU3=14 EXT MORE init=0 WS=0 RS=0 */ - 0x084cf25f, /* 01A0(:1051): DRD2B1: idx1 = EU3(); EU3(var9) */ - 0xd899037f, /* 01A4(:1052): LCDEXT: idx2 = idx1; idx2 > var13; idx2 += inc7 */ - 0x8019801b, /* 01A8(:1052): LCD: idx3 = var0; idx3 once var0; idx3 += inc3 */ - 0x040001f8, /* 01AC(:1053): DRD1A: FN=0 INT init=0 WS=0 RS=0 */ - 0x000001f8, /* 01B0(:0): NOP */ - 0x000001f8, /* 01B4(:0): NOP */ -}; -u32 MCD_SingleEu_TDT[]= -{ - 0x8218001b, /* 0000(:1248): LCD: idx0 = var4; idx0 once var0; idx0 += inc3 */ - 0x7000000d, /* 0004(:1249): DRD2A: EU0=0 EU1=0 EU2=0 EU3=13 EXT MORE init=0 WS=0 RS=0 */ - 0x080cf81f, /* 0008(:1249): DRD2B1: idx0 = EU3(); EU3(idx0) */ - 0x8218801b, /* 000C(:1250): LCD: idx1 = var4; idx1 once var0; idx1 += inc3 */ - 0x6000000e, /* 0010(:1251): DRD2A: EU0=0 EU1=0 EU2=0 EU3=14 EXT init=0 WS=0 RS=0 */ - 0x084cf85f, /* 0014(:1251): DRD2B1: idx1 = EU3(); EU3(idx1) */ - 0x000001f8, /* 0018(:0): NOP */ - 0x8318001b, /* 001C(:1255): LCD: idx0 = var6; idx0 once var0; idx0 += inc3 */ - 0x7000000d, /* 0020(:1256): DRD2A: EU0=0 EU1=0 EU2=0 EU3=13 EXT MORE init=0 WS=0 RS=0 */ - 0x014cf81f, /* 0024(:1256): DRD2B1: var5 = EU3(); EU3(idx0) */ - 0x6000000e, /* 0028(:1257): DRD2A: EU0=0 EU1=0 EU2=0 EU3=14 EXT init=0 WS=0 RS=0 */ - 0x01ccf81f, /* 002C(:1257): DRD2B1: var7 = EU3(); EU3(idx0) */ - 0x8498001b, /* 0030(:1260): LCD: idx0 = var9; idx0 once var0; idx0 += inc3 */ - 0x7000000f, /* 0034(:1261): DRD2A: EU0=0 EU1=0 EU2=0 EU3=15 EXT MORE init=0 WS=0 RS=0 */ - 0x080cf19f, /* 0038(:1261): DRD2B1: idx0 = EU3(); EU3(var6) */ - 0xd81882a4, /* 003C(:1262): LCDEXT: idx1 = idx0; idx1 >= var10; idx1 += inc4 */ - 0x8019001b, /* 0040(:1262): LCD: idx2 = var0; idx2 once var0; idx2 += inc3 */ - 0x60000003, /* 0044(:1263): DRD2A: EU0=0 EU1=0 EU2=0 EU3=3 EXT init=0 WS=0 RS=0 */ - 0x2c97c7df, /* 0048(:1263): DRD2B2: EU3(var9) */ - 0xd818826d, /* 004C(:1264): LCDEXT: idx1 = idx0; idx1 == var9; idx1 += inc5 */ - 0x8019001b, /* 0050(:1264): LCD: idx2 = var0; idx2 once var0; idx2 += inc3 */ - 0x60000003, /* 0054(:1265): DRD2A: EU0=0 EU1=0 EU2=0 EU3=3 EXT init=0 WS=0 RS=0 */ - 0x2c17c7df, /* 0058(:1265): DRD2B2: EU3(var1) */ - 0x000001f8, /* 005C(:0): NOP */ - 0xc282e01b, /* 0060(:1268): LCDEXT: idx0 = var5, idx1 = var5; ; idx0 += inc3, idx1 += inc3 */ - 0xc002a25e, /* 0064(:1268): LCDEXT: idx2 = var0, idx3 = var5; idx3 == var9; idx2 += inc3, idx3 += inc6 */ - 0x811a601b, /* 0068(:1269): LCD: idx4 = var2; ; idx4 += inc3 */ - 0xc184a102, /* 006C(:1272): LCDEXT: idx5 = var3, idx6 = var9; idx6 < var4; idx5 += inc0, idx6 += inc2 */ - 0x841be009, /* 0070(:1272): LCD: idx7 = var8; ; idx7 += inc1 */ - 0x63fe0000, /* 0074(:1275): DRD2A: EU0=0 EU1=0 EU2=0 EU3=0 EXT init=31 WS=3 RS=3 */ - 0x0d4cfddf, /* 0078(:1275): DRD2B1: *idx5 = EU3(); EU3(*idx7) */ - 0xda9b001b, /* 007C(:1277): LCDEXT: idx5 = idx5, idx6 = idx6; idx5 once var0; idx5 += inc3, idx6 += inc3 */ - 0x9b9be01b, /* 0080(:1277): LCD: idx7 = idx7; ; idx7 += inc3 */ - 0x70000002, /* 0084(:1279): DRD2A: EU0=0 EU1=0 EU2=0 EU3=2 EXT MORE init=0 WS=0 RS=0 */ - 0x004cf99f, /* 0088(:1279): DRD2B1: var1 = EU3(); EU3(idx6) */ - 0x70000006, /* 008C(:1280): DRD2A: EU0=0 EU1=0 EU2=0 EU3=6 EXT MORE init=0 WS=0 RS=0 */ - 0x088cf88b, /* 0090(:1280): DRD2B1: idx2 = EU3(); EU3(idx2,var11) */ - 0x1000cb28, /* 0094(:1281): DRD1A: *idx2 = idx5; FN=0 MORE init=0 WS=0 RS=0 */ - 0x70000006, /* 0098(:1282): DRD2A: EU0=0 EU1=0 EU2=0 EU3=6 EXT MORE init=0 WS=0 RS=0 */ - 0x088cf88b, /* 009C(:1282): DRD2B1: idx2 = EU3(); EU3(idx2,var11) */ - 0x1000cb30, /* 00A0(:1283): DRD1A: *idx2 = idx6; FN=0 MORE init=0 WS=0 RS=0 */ - 0x70000006, /* 00A4(:1284): DRD2A: EU0=0 EU1=0 EU2=0 EU3=6 EXT MORE init=0 WS=0 RS=0 */ - 0x088cf88b, /* 00A8(:1284): DRD2B1: idx2 = EU3(); EU3(idx2,var11) */ - 0x0000cb38, /* 00AC(:1285): DRD1A: *idx2 = idx7; FN=0 init=0 WS=0 RS=0 */ - 0x000001f8, /* 00B0(:0): NOP */ - 0xc282e01b, /* 00B4(:1289): LCDEXT: idx0 = var5, idx1 = var5; ; idx0 += inc3, idx1 += inc3 */ - 0xc002a31e, /* 00B8(:1289): LCDEXT: idx2 = var0, idx3 = var5; idx3 == var12; idx2 += inc3, idx3 += inc6 */ - 0x811a601b, /* 00BC(:1290): LCD: idx4 = var2; ; idx4 += inc3 */ - 0xda9b001b, /* 00C0(:1293): LCDEXT: idx5 = idx5, idx6 = idx6; idx5 once var0; idx5 += inc3, idx6 += inc3 */ - 0x9b9be01b, /* 00C4(:1293): LCD: idx7 = idx7; ; idx7 += inc3 */ - 0x0000d3a0, /* 00C8(:1294): DRD1A: *idx4; FN=0 init=0 WS=0 RS=0 */ - 0xc184a102, /* 00CC(:1296): LCDEXT: idx5 = var3, idx6 = var9; idx6 < var4; idx5 += inc0, idx6 += inc2 */ - 0x841be009, /* 00D0(:1296): LCD: idx7 = var8; ; idx7 += inc1 */ - 0x6bfe0000, /* 00D4(:1299): DRD2A: EU0=0 EU1=0 EU2=0 EU3=0 TFD EXT init=31 WS=3 RS=3 */ - 0x0d4cfddf, /* 00D8(:1299): DRD2B1: *idx5 = EU3(); EU3(*idx7) */ - 0xda9b001b, /* 00DC(:1301): LCDEXT: idx5 = idx5, idx6 = idx6; idx5 once var0; idx5 += inc3, idx6 += inc3 */ - 0x9b9be01b, /* 00E0(:1301): LCD: idx7 = idx7; ; idx7 += inc3 */ - 0x70000002, /* 00E4(:1303): DRD2A: EU0=0 EU1=0 EU2=0 EU3=2 EXT MORE init=0 WS=0 RS=0 */ - 0x004cf99f, /* 00E8(:1303): DRD2B1: var1 = EU3(); EU3(idx6) */ - 0x70000006, /* 00EC(:1304): DRD2A: EU0=0 EU1=0 EU2=0 EU3=6 EXT MORE init=0 WS=0 RS=0 */ - 0x088cf88b, /* 00F0(:1304): DRD2B1: idx2 = EU3(); EU3(idx2,var11) */ - 0x1000cb28, /* 00F4(:1305): DRD1A: *idx2 = idx5; FN=0 MORE init=0 WS=0 RS=0 */ - 0x70000006, /* 00F8(:1306): DRD2A: EU0=0 EU1=0 EU2=0 EU3=6 EXT MORE init=0 WS=0 RS=0 */ - 0x088cf88b, /* 00FC(:1306): DRD2B1: idx2 = EU3(); EU3(idx2,var11) */ - 0x1000cb30, /* 0100(:1307): DRD1A: *idx2 = idx6; FN=0 MORE init=0 WS=0 RS=0 */ - 0x70000006, /* 0104(:1308): DRD2A: EU0=0 EU1=0 EU2=0 EU3=6 EXT MORE init=0 WS=0 RS=0 */ - 0x088cf88b, /* 0108(:1308): DRD2B1: idx2 = EU3(); EU3(idx2,var11) */ - 0x0000cb38, /* 010C(:1309): DRD1A: *idx2 = idx7; FN=0 init=0 WS=0 RS=0 */ - 0x000001f8, /* 0110(:0): NOP */ - 0x8144801c, /* 0114(:1312): LCD: idx0 = var2 + var9 + 4; idx0 once var0; idx0 += inc3 */ - 0x0000c008, /* 0118(:1313): DRD1A: *idx0 = var1; FN=0 init=0 WS=0 RS=0 */ - 0xc398027f, /* 011C(:1315): LCDEXT: idx0 = var7; idx0 > var9; idx0 += inc7 */ - 0x8018801b, /* 0120(:1315): LCD: idx1 = var0; idx1 once var0; idx1 += inc3 */ - 0x040001f8, /* 0124(:1316): DRD1A: FN=0 INT init=0 WS=0 RS=0 */ -}; -#endif -u32 MCD_ENetRcv_TDT[]= -{ - 0x80004000, /* 0000(:1389): LCDEXT: idx0 = 0x00000000; ; */ - 0x81988000, /* 0004(:1389): LCD: idx1 = var3; idx1 once var0; idx1 += inc0 */ - 0x10000788, /* 0008(:1390): DRD1A: var1 = *idx1; FN=0 MORE init=0 WS=0 RS=0 */ - 0x6000000a, /* 000C(:1391): DRD2A: EU0=0 EU1=0 EU2=0 EU3=10 EXT init=0 WS=0 RS=0 */ - 0x080cf05f, /* 0010(:1391): DRD2B1: idx0 = EU3(); EU3(var1) */ - 0x98180209, /* 0014(:1394): LCD: idx0 = idx0; idx0 != var8; idx0 += inc1 */ - 0x81c40004, /* 0018(:1396): LCD: idx1 = var3 + var8 + 4; idx1 once var0; idx1 += inc0 */ - 0x7000000e, /* 001C(:1397): DRD2A: EU0=0 EU1=0 EU2=0 EU3=14 EXT MORE init=0 WS=0 RS=0 */ - 0x010cf05f, /* 0020(:1397): DRD2B1: var4 = EU3(); EU3(var1) */ - 0x7000000c, /* 0024(:1398): DRD2A: EU0=0 EU1=0 EU2=0 EU3=12 EXT MORE init=0 WS=0 RS=0 */ - 0x01ccf05f, /* 0028(:1398): DRD2B1: var7 = EU3(); EU3(var1) */ - 0x70000004, /* 002C(:1399): DRD2A: EU0=0 EU1=0 EU2=0 EU3=4 EXT MORE init=0 WS=0 RS=0 */ - 0x014cf049, /* 0030(:1399): DRD2B1: var5 = EU3(); EU3(var1,var9) */ - 0x70000004, /* 0034(:1400): DRD2A: EU0=0 EU1=0 EU2=0 EU3=4 EXT MORE init=0 WS=0 RS=0 */ - 0x004cf04a, /* 0038(:1400): DRD2B1: var1 = EU3(); EU3(var1,var10) */ - 0x00000b88, /* 003C(:1403): DRD1A: var2 = *idx1; FN=0 init=0 WS=0 RS=0 */ - 0xc4030150, /* 0040(:1406): LCDEXT: idx1 = var8, idx2 = var6; idx1 < var5; idx1 += inc2, idx2 += inc0 */ - 0x8119e012, /* 0044(:1406): LCD: idx3 = var2; ; idx3 += inc2 */ - 0x03e0cf90, /* 0048(:1409): DRD1A: *idx3 = *idx2; FN=0 init=31 WS=0 RS=0 */ - 0x81188000, /* 004C(:1412): LCD: idx1 = var2; idx1 once var0; idx1 += inc0 */ - 0x000ac788, /* 0050(:1413): DRD1A: *idx1 = *idx1; FN=0 init=0 WS=1 RS=1 */ - 0xc4030000, /* 0054(:1415): LCDEXT: idx1 = var8, idx2 = var6; idx1 once var0; idx1 += inc0, idx2 += inc0 */ - 0x8199e000, /* 0058(:1415): LCD: idx3 = var3; ; idx3 += inc0 */ - 0x70000004, /* 005C(:1421): DRD2A: EU0=0 EU1=0 EU2=0 EU3=4 EXT MORE init=0 WS=0 RS=0 */ - 0x084cfc8b, /* 0060(:1421): DRD2B1: idx1 = EU3(); EU3(*idx2,var11) */ - 0x60000005, /* 0064(:1422): DRD2A: EU0=0 EU1=0 EU2=0 EU3=5 EXT init=0 WS=0 RS=0 */ - 0x0cccf841, /* 0068(:1422): DRD2B1: *idx3 = EU3(); EU3(idx1,var1) */ - 0x81c60000, /* 006C(:1428): LCD: idx1 = var3 + var12; idx1 once var0; idx1 += inc0 */ - 0xc399021b, /* 0070(:1430): LCDEXT: idx2 = var7; idx2 > var8; idx2 += inc3 */ - 0x80198000, /* 0074(:1430): LCD: idx3 = var0; idx3 once var0; idx3 += inc0 */ - 0x00008400, /* 0078(:1431): DRD1A: idx1 = var0; FN=0 init=0 WS=0 RS=0 */ - 0x00000f08, /* 007C(:1432): DRD1A: var3 = idx1; FN=0 init=0 WS=0 RS=0 */ - 0x81988000, /* 0080(:1435): LCD: idx1 = var3; idx1 once var0; idx1 += inc0 */ - 0x10000788, /* 0084(:1436): DRD1A: var1 = *idx1; FN=0 MORE init=0 WS=0 RS=0 */ - 0x6000000a, /* 0088(:1437): DRD2A: EU0=0 EU1=0 EU2=0 EU3=10 EXT init=0 WS=0 RS=0 */ - 0x080cf05f, /* 008C(:1437): DRD2B1: idx0 = EU3(); EU3(var1) */ - 0xc2188209, /* 0090(:1440): LCDEXT: idx1 = var4; idx1 != var8; idx1 += inc1 */ - 0x80190000, /* 0094(:1440): LCD: idx2 = var0; idx2 once var0; idx2 += inc0 */ - 0x040001f8, /* 0098(:1441): DRD1A: FN=0 INT init=0 WS=0 RS=0 */ - 0x000001f8, /* 009C(:0): NOP */ -}; -u32 MCD_ENetXmit_TDT[]= -{ - 0x80004000, /* 0000(:1516): LCDEXT: idx0 = 0x00000000; ; */ - 0x81988000, /* 0004(:1516): LCD: idx1 = var3; idx1 once var0; idx1 += inc0 */ - 0x10000788, /* 0008(:1517): DRD1A: var1 = *idx1; FN=0 MORE init=0 WS=0 RS=0 */ - 0x6000000a, /* 000C(:1518): DRD2A: EU0=0 EU1=0 EU2=0 EU3=10 EXT init=0 WS=0 RS=0 */ - 0x080cf05f, /* 0010(:1518): DRD2B1: idx0 = EU3(); EU3(var1) */ - 0x98180309, /* 0014(:1521): LCD: idx0 = idx0; idx0 != var12; idx0 += inc1 */ - 0x80004003, /* 0018(:1523): LCDEXT: idx1 = 0x00000003; ; */ - 0x81c60004, /* 001C(:1523): LCD: idx2 = var3 + var12 + 4; idx2 once var0; idx2 += inc0 */ - 0x7000000e, /* 0020(:1524): DRD2A: EU0=0 EU1=0 EU2=0 EU3=14 EXT MORE init=0 WS=0 RS=0 */ - 0x014cf05f, /* 0024(:1524): DRD2B1: var5 = EU3(); EU3(var1) */ - 0x7000000c, /* 0028(:1525): DRD2A: EU0=0 EU1=0 EU2=0 EU3=12 EXT MORE init=0 WS=0 RS=0 */ - 0x028cf05f, /* 002C(:1525): DRD2B1: var10 = EU3(); EU3(var1) */ - 0x7000000d, /* 0030(:1526): DRD2A: EU0=0 EU1=0 EU2=0 EU3=13 EXT MORE init=0 WS=0 RS=0 */ - 0x018cf05f, /* 0034(:1526): DRD2B1: var6 = EU3(); EU3(var1) */ - 0x70000004, /* 0038(:1527): DRD2A: EU0=0 EU1=0 EU2=0 EU3=4 EXT MORE init=0 WS=0 RS=0 */ - 0x01ccf04d, /* 003C(:1527): DRD2B1: var7 = EU3(); EU3(var1,var13) */ - 0x10000b90, /* 0040(:1528): DRD1A: var2 = *idx2; FN=0 MORE init=0 WS=0 RS=0 */ - 0x60000004, /* 0044(:1529): DRD2A: EU0=0 EU1=0 EU2=0 EU3=4 EXT init=0 WS=0 RS=0 */ - 0x020cf0a1, /* 0048(:1529): DRD2B1: var8 = EU3(); EU3(var2,idx1) */ - 0xc3188312, /* 004C(:1532): LCDEXT: idx1 = var6; idx1 > var12; idx1 += inc2 */ - 0x83c70000, /* 0050(:1532): LCD: idx2 = var7 + var14; idx2 once var0; idx2 += inc0 */ - 0x00001f10, /* 0054(:1533): DRD1A: var7 = idx2; FN=0 init=0 WS=0 RS=0 */ - 0xc583a3c3, /* 0058(:1535): LCDEXT: idx1 = var11, idx2 = var7; idx2 >= var15; idx1 += inc0, idx2 += inc3 */ - 0x81042325, /* 005C(:1535): LCD: idx3 = var2, idx4 = var8; idx4 == var12; idx3 += inc4, idx4 += inc5 */ - 0x03e0c798, /* 0060(:1540): DRD1A: *idx1 = *idx3; FN=0 init=31 WS=0 RS=0 */ - 0xd8990000, /* 0064(:1543): LCDEXT: idx1 = idx1, idx2 = idx2; idx1 once var0; idx1 += inc0, idx2 += inc0 */ - 0x9999e000, /* 0068(:1543): LCD: idx3 = idx3; ; idx3 += inc0 */ - 0x000acf98, /* 006C(:1544): DRD1A: *idx3 = *idx3; FN=0 init=0 WS=1 RS=1 */ - 0xd8992306, /* 0070(:1546): LCDEXT: idx1 = idx1, idx2 = idx2; idx2 > var12; idx1 += inc0, idx2 += inc6 */ - 0x9999e03f, /* 0074(:1546): LCD: idx3 = idx3; ; idx3 += inc7 */ - 0x03eac798, /* 0078(:1549): DRD1A: *idx1 = *idx3; FN=0 init=31 WS=1 RS=1 */ - 0xd8990000, /* 007C(:1552): LCDEXT: idx1 = idx1, idx2 = idx2; idx1 once var0; idx1 += inc0, idx2 += inc0 */ - 0x9999e000, /* 0080(:1552): LCD: idx3 = idx3; ; idx3 += inc0 */ - 0x000acf98, /* 0084(:1553): DRD1A: *idx3 = *idx3; FN=0 init=0 WS=1 RS=1 */ - 0xd8990000, /* 0088(:1555): LCDEXT: idx1 = idx1, idx2 = idx2; idx1 once var0; idx1 += inc0, idx2 += inc0 */ - 0x99832302, /* 008C(:1555): LCD: idx3 = idx3, idx4 = var6; idx4 > var12; idx3 += inc0, idx4 += inc2 */ - 0x0beac798, /* 0090(:1558): DRD1A: *idx1 = *idx3; FN=0 TFD init=31 WS=1 RS=1 */ - 0x81988000, /* 0094(:1560): LCD: idx1 = var3; idx1 once var0; idx1 += inc0 */ - 0x6000000b, /* 0098(:1561): DRD2A: EU0=0 EU1=0 EU2=0 EU3=11 EXT init=0 WS=0 RS=0 */ - 0x0c4cfc5f, /* 009C(:1561): DRD2B1: *idx1 = EU3(); EU3(*idx1) */ - 0x81c80000, /* 00A0(:1563): LCD: idx1 = var3 + var16; idx1 once var0; idx1 += inc0 */ - 0xc5190312, /* 00A4(:1565): LCDEXT: idx2 = var10; idx2 > var12; idx2 += inc2 */ - 0x80198000, /* 00A8(:1565): LCD: idx3 = var0; idx3 once var0; idx3 += inc0 */ - 0x00008400, /* 00AC(:1566): DRD1A: idx1 = var0; FN=0 init=0 WS=0 RS=0 */ - 0x00000f08, /* 00B0(:1567): DRD1A: var3 = idx1; FN=0 init=0 WS=0 RS=0 */ - 0x81988000, /* 00B4(:1570): LCD: idx1 = var3; idx1 once var0; idx1 += inc0 */ - 0x10000788, /* 00B8(:1571): DRD1A: var1 = *idx1; FN=0 MORE init=0 WS=0 RS=0 */ - 0x6000000a, /* 00BC(:1572): DRD2A: EU0=0 EU1=0 EU2=0 EU3=10 EXT init=0 WS=0 RS=0 */ - 0x080cf05f, /* 00C0(:1572): DRD2B1: idx0 = EU3(); EU3(var1) */ - 0xc2988309, /* 00C4(:1575): LCDEXT: idx1 = var5; idx1 != var12; idx1 += inc1 */ - 0x80190000, /* 00C8(:1575): LCD: idx2 = var0; idx2 once var0; idx2 += inc0 */ - 0x040001f8, /* 00CC(:1576): DRD1A: FN=0 INT init=0 WS=0 RS=0 */ - 0x000001f8, /* 00D0(:0): NOP */ -}; - -#ifdef MCD_INCLUDE_EU -MCD_bufDesc MCD_singleBufDescs[NCHANNELS]; -#endif diff --git a/arch/m68k/mach-mcfv4e/mcdapi/MCD_tasksInit.c b/arch/m68k/mach-mcfv4e/mcdapi/MCD_tasksInit.c deleted file mode 100644 index 8d82b471f..000000000 --- a/arch/m68k/mach-mcfv4e/mcdapi/MCD_tasksInit.c +++ /dev/null @@ -1,225 +0,0 @@ -/* - * File: MCD_tasksInit.c - * Purpose: Functions for initializing variable tables of different - * types of tasks. - * - * Notes: - */ - -/* - * Do not edit! - */ - -#include -#include - -extern dmaRegs *MCD_dmaBar; - - -/* - * Task 0 - */ - -void MCD_startDmaChainNoEu(int *currBD, short srcIncr, short destIncr, int xferSize, short xferSizeIncr, int *cSave, volatile TaskTableEntry *taskTable, int channel) -{ - - MCD_SET_VAR(taskTable+channel, 2, (u32)currBD); /* var[2] */ - MCD_SET_VAR(taskTable+channel, 25, (u32)(0xe000 << 16) | (0xffff & srcIncr)); /* inc[1] */ - MCD_SET_VAR(taskTable+channel, 24, (u32)(0xe000 << 16) | (0xffff & destIncr)); /* inc[0] */ - MCD_SET_VAR(taskTable+channel, 11, (u32)xferSize); /* var[11] */ - MCD_SET_VAR(taskTable+channel, 26, (u32)(0x2000 << 16) | (0xffff & xferSizeIncr)); /* inc[2] */ - MCD_SET_VAR(taskTable+channel, 0, (u32)cSave); /* var[0] */ - MCD_SET_VAR(taskTable+channel, 1, (u32)0x00000000); /* var[1] */ - MCD_SET_VAR(taskTable+channel, 3, (u32)0x00000000); /* var[3] */ - MCD_SET_VAR(taskTable+channel, 4, (u32)0x00000000); /* var[4] */ - MCD_SET_VAR(taskTable+channel, 5, (u32)0x00000000); /* var[5] */ - MCD_SET_VAR(taskTable+channel, 6, (u32)0x00000000); /* var[6] */ - MCD_SET_VAR(taskTable+channel, 7, (u32)0x00000000); /* var[7] */ - MCD_SET_VAR(taskTable+channel, 8, (u32)0x00000000); /* var[8] */ - MCD_SET_VAR(taskTable+channel, 9, (u32)0x00000000); /* var[9] */ - MCD_SET_VAR(taskTable+channel, 10, (u32)0x00000000); /* var[10] */ - MCD_SET_VAR(taskTable+channel, 12, (u32)0x00000000); /* var[12] */ - MCD_SET_VAR(taskTable+channel, 13, (u32)0x80000000); /* var[13] */ - MCD_SET_VAR(taskTable+channel, 14, (u32)0x00000010); /* var[14] */ - MCD_SET_VAR(taskTable+channel, 15, (u32)0x00000004); /* var[15] */ - MCD_SET_VAR(taskTable+channel, 16, (u32)0x08000000); /* var[16] */ - MCD_SET_VAR(taskTable+channel, 27, (u32)0x00000000); /* inc[3] */ - MCD_SET_VAR(taskTable+channel, 28, (u32)0x80000000); /* inc[4] */ - MCD_SET_VAR(taskTable+channel, 29, (u32)0x80000001); /* inc[5] */ - MCD_SET_VAR(taskTable+channel, 30, (u32)0x40000000); /* inc[6] */ - - /* Set the task's Enable bit in its Task Control Register */ - MCD_dmaBar->taskControl[channel] |= (u16)0x8000; -} - - -/* - * Task 1 - */ - -void MCD_startDmaSingleNoEu(char *srcAddr, short srcIncr, char *destAddr, short destIncr, int dmaSize, short xferSizeIncr, int flags, int *currBD, int *cSave, volatile TaskTableEntry *taskTable, int channel) -{ - - MCD_SET_VAR(taskTable+channel, 7, (u32)srcAddr); /* var[7] */ - MCD_SET_VAR(taskTable+channel, 25, (u32)(0xe000 << 16) | (0xffff & srcIncr)); /* inc[1] */ - MCD_SET_VAR(taskTable+channel, 2, (u32)destAddr); /* var[2] */ - MCD_SET_VAR(taskTable+channel, 24, (u32)(0xe000 << 16) | (0xffff & destIncr)); /* inc[0] */ - MCD_SET_VAR(taskTable+channel, 3, (u32)dmaSize); /* var[3] */ - MCD_SET_VAR(taskTable+channel, 26, (u32)(0x2000 << 16) | (0xffff & xferSizeIncr)); /* inc[2] */ - MCD_SET_VAR(taskTable+channel, 5, (u32)flags); /* var[5] */ - MCD_SET_VAR(taskTable+channel, 1, (u32)currBD); /* var[1] */ - MCD_SET_VAR(taskTable+channel, 0, (u32)cSave); /* var[0] */ - MCD_SET_VAR(taskTable+channel, 4, (u32)0x00000000); /* var[4] */ - MCD_SET_VAR(taskTable+channel, 6, (u32)0x00000000); /* var[6] */ - MCD_SET_VAR(taskTable+channel, 8, (u32)0x00000000); /* var[8] */ - MCD_SET_VAR(taskTable+channel, 9, (u32)0x00000004); /* var[9] */ - MCD_SET_VAR(taskTable+channel, 10, (u32)0x08000000); /* var[10] */ - MCD_SET_VAR(taskTable+channel, 27, (u32)0x00000000); /* inc[3] */ - MCD_SET_VAR(taskTable+channel, 28, (u32)0x80000001); /* inc[4] */ - MCD_SET_VAR(taskTable+channel, 29, (u32)0x40000000); /* inc[5] */ - - /* Set the task's Enable bit in its Task Control Register */ - MCD_dmaBar->taskControl[channel] |= (u16)0x8000; -} - - -/* - * Task 2 - */ - -void MCD_startDmaChainEu(int *currBD, short srcIncr, short destIncr, int xferSize, short xferSizeIncr, int *cSave, volatile TaskTableEntry *taskTable, int channel) -{ - - MCD_SET_VAR(taskTable+channel, 3, (u32)currBD); /* var[3] */ - MCD_SET_VAR(taskTable+channel, 25, (u32)(0xe000 << 16) | (0xffff & srcIncr)); /* inc[1] */ - MCD_SET_VAR(taskTable+channel, 24, (u32)(0xe000 << 16) | (0xffff & destIncr)); /* inc[0] */ - MCD_SET_VAR(taskTable+channel, 12, (u32)xferSize); /* var[12] */ - MCD_SET_VAR(taskTable+channel, 26, (u32)(0x2000 << 16) | (0xffff & xferSizeIncr)); /* inc[2] */ - MCD_SET_VAR(taskTable+channel, 0, (u32)cSave); /* var[0] */ - MCD_SET_VAR(taskTable+channel, 1, (u32)0x00000000); /* var[1] */ - MCD_SET_VAR(taskTable+channel, 2, (u32)0x00000000); /* var[2] */ - MCD_SET_VAR(taskTable+channel, 4, (u32)0x00000000); /* var[4] */ - MCD_SET_VAR(taskTable+channel, 5, (u32)0x00000000); /* var[5] */ - MCD_SET_VAR(taskTable+channel, 6, (u32)0x00000000); /* var[6] */ - MCD_SET_VAR(taskTable+channel, 7, (u32)0x00000000); /* var[7] */ - MCD_SET_VAR(taskTable+channel, 8, (u32)0x00000000); /* var[8] */ - MCD_SET_VAR(taskTable+channel, 9, (u32)0x00000000); /* var[9] */ - MCD_SET_VAR(taskTable+channel, 10, (u32)0x00000000); /* var[10] */ - MCD_SET_VAR(taskTable+channel, 11, (u32)0x00000000); /* var[11] */ - MCD_SET_VAR(taskTable+channel, 13, (u32)0x00000000); /* var[13] */ - MCD_SET_VAR(taskTable+channel, 14, (u32)0x80000000); /* var[14] */ - MCD_SET_VAR(taskTable+channel, 15, (u32)0x00000010); /* var[15] */ - MCD_SET_VAR(taskTable+channel, 16, (u32)0x00000001); /* var[16] */ - MCD_SET_VAR(taskTable+channel, 17, (u32)0x00000004); /* var[17] */ - MCD_SET_VAR(taskTable+channel, 18, (u32)0x08000000); /* var[18] */ - MCD_SET_VAR(taskTable+channel, 27, (u32)0x00000000); /* inc[3] */ - MCD_SET_VAR(taskTable+channel, 28, (u32)0x80000000); /* inc[4] */ - MCD_SET_VAR(taskTable+channel, 29, (u32)0xc0000000); /* inc[5] */ - MCD_SET_VAR(taskTable+channel, 30, (u32)0x80000001); /* inc[6] */ - MCD_SET_VAR(taskTable+channel, 31, (u32)0x40000000); /* inc[7] */ - - /* Set the task's Enable bit in its Task Control Register */ - MCD_dmaBar->taskControl[channel] |= (u16)0x8000; -} - - -/* - * Task 3 - */ - -void MCD_startDmaSingleEu(char *srcAddr, short srcIncr, char *destAddr, short destIncr, int dmaSize, short xferSizeIncr, int flags, int *currBD, int *cSave, volatile TaskTableEntry *taskTable, int channel) -{ - - MCD_SET_VAR(taskTable+channel, 8, (u32)srcAddr); /* var[8] */ - MCD_SET_VAR(taskTable+channel, 25, (u32)(0xe000 << 16) | (0xffff & srcIncr)); /* inc[1] */ - MCD_SET_VAR(taskTable+channel, 3, (u32)destAddr); /* var[3] */ - MCD_SET_VAR(taskTable+channel, 24, (u32)(0xe000 << 16) | (0xffff & destIncr)); /* inc[0] */ - MCD_SET_VAR(taskTable+channel, 4, (u32)dmaSize); /* var[4] */ - MCD_SET_VAR(taskTable+channel, 26, (u32)(0x2000 << 16) | (0xffff & xferSizeIncr)); /* inc[2] */ - MCD_SET_VAR(taskTable+channel, 6, (u32)flags); /* var[6] */ - MCD_SET_VAR(taskTable+channel, 2, (u32)currBD); /* var[2] */ - MCD_SET_VAR(taskTable+channel, 0, (u32)cSave); /* var[0] */ - MCD_SET_VAR(taskTable+channel, 1, (u32)0x00000000); /* var[1] */ - MCD_SET_VAR(taskTable+channel, 5, (u32)0x00000000); /* var[5] */ - MCD_SET_VAR(taskTable+channel, 7, (u32)0x00000000); /* var[7] */ - MCD_SET_VAR(taskTable+channel, 9, (u32)0x00000000); /* var[9] */ - MCD_SET_VAR(taskTable+channel, 10, (u32)0x00000001); /* var[10] */ - MCD_SET_VAR(taskTable+channel, 11, (u32)0x00000004); /* var[11] */ - MCD_SET_VAR(taskTable+channel, 12, (u32)0x08000000); /* var[12] */ - MCD_SET_VAR(taskTable+channel, 27, (u32)0x00000000); /* inc[3] */ - MCD_SET_VAR(taskTable+channel, 28, (u32)0xc0000000); /* inc[4] */ - MCD_SET_VAR(taskTable+channel, 29, (u32)0x80000000); /* inc[5] */ - MCD_SET_VAR(taskTable+channel, 30, (u32)0x80000001); /* inc[6] */ - MCD_SET_VAR(taskTable+channel, 31, (u32)0x40000000); /* inc[7] */ - - /* Set the task's Enable bit in its Task Control Register */ - MCD_dmaBar->taskControl[channel] |= (u16)0x8000; -} - - -/* - * Task 4 - */ - -void MCD_startDmaENetRcv(char *bDBase, char *currBD, char *rcvFifoPtr, volatile TaskTableEntry *taskTable, int channel) -{ - - MCD_SET_VAR(taskTable+channel, 0, (u32)bDBase); /* var[0] */ - MCD_SET_VAR(taskTable+channel, 3, (u32)currBD); /* var[3] */ - MCD_SET_VAR(taskTable+channel, 6, (u32)rcvFifoPtr); /* var[6] */ - MCD_SET_VAR(taskTable+channel, 1, (u32)0x00000000); /* var[1] */ - MCD_SET_VAR(taskTable+channel, 2, (u32)0x00000000); /* var[2] */ - MCD_SET_VAR(taskTable+channel, 4, (u32)0x00000000); /* var[4] */ - MCD_SET_VAR(taskTable+channel, 5, (u32)0x00000000); /* var[5] */ - MCD_SET_VAR(taskTable+channel, 7, (u32)0x00000000); /* var[7] */ - MCD_SET_VAR(taskTable+channel, 8, (u32)0x00000000); /* var[8] */ - MCD_SET_VAR(taskTable+channel, 9, (u32)0x0000ffff); /* var[9] */ - MCD_SET_VAR(taskTable+channel, 10, (u32)0x30000000); /* var[10] */ - MCD_SET_VAR(taskTable+channel, 11, (u32)0x0fffffff); /* var[11] */ - MCD_SET_VAR(taskTable+channel, 12, (u32)0x00000008); /* var[12] */ - MCD_SET_VAR(taskTable+channel, 24, (u32)0x00000000); /* inc[0] */ - MCD_SET_VAR(taskTable+channel, 25, (u32)0x60000000); /* inc[1] */ - MCD_SET_VAR(taskTable+channel, 26, (u32)0x20000004); /* inc[2] */ - MCD_SET_VAR(taskTable+channel, 27, (u32)0x40000000); /* inc[3] */ - - /* Set the task's Enable bit in its Task Control Register */ - MCD_dmaBar->taskControl[channel] |= (u16)0x8000; -} - - -/* - * Task 5 - */ - -void MCD_startDmaENetXmit(char *bDBase, char *currBD, char *xmitFifoPtr, volatile TaskTableEntry *taskTable, int channel) -{ - - MCD_SET_VAR(taskTable+channel, 0, (u32)bDBase); /* var[0] */ - MCD_SET_VAR(taskTable+channel, 3, (u32)currBD); /* var[3] */ - MCD_SET_VAR(taskTable+channel, 11, (u32)xmitFifoPtr); /* var[11] */ - MCD_SET_VAR(taskTable+channel, 1, (u32)0x00000000); /* var[1] */ - MCD_SET_VAR(taskTable+channel, 2, (u32)0x00000000); /* var[2] */ - MCD_SET_VAR(taskTable+channel, 4, (u32)0x00000000); /* var[4] */ - MCD_SET_VAR(taskTable+channel, 5, (u32)0x00000000); /* var[5] */ - MCD_SET_VAR(taskTable+channel, 6, (u32)0x00000000); /* var[6] */ - MCD_SET_VAR(taskTable+channel, 7, (u32)0x00000000); /* var[7] */ - MCD_SET_VAR(taskTable+channel, 8, (u32)0x00000000); /* var[8] */ - MCD_SET_VAR(taskTable+channel, 9, (u32)0x00000000); /* var[9] */ - MCD_SET_VAR(taskTable+channel, 10, (u32)0x00000000); /* var[10] */ - MCD_SET_VAR(taskTable+channel, 12, (u32)0x00000000); /* var[12] */ - MCD_SET_VAR(taskTable+channel, 13, (u32)0x0000ffff); /* var[13] */ - MCD_SET_VAR(taskTable+channel, 14, (u32)0xffffffff); /* var[14] */ - MCD_SET_VAR(taskTable+channel, 15, (u32)0x00000004); /* var[15] */ - MCD_SET_VAR(taskTable+channel, 16, (u32)0x00000008); /* var[16] */ - MCD_SET_VAR(taskTable+channel, 24, (u32)0x00000000); /* inc[0] */ - MCD_SET_VAR(taskTable+channel, 25, (u32)0x60000000); /* inc[1] */ - MCD_SET_VAR(taskTable+channel, 26, (u32)0x40000000); /* inc[2] */ - MCD_SET_VAR(taskTable+channel, 27, (u32)0xc000fffc); /* inc[3] */ - MCD_SET_VAR(taskTable+channel, 28, (u32)0xe0000004); /* inc[4] */ - MCD_SET_VAR(taskTable+channel, 29, (u32)0x80000000); /* inc[5] */ - MCD_SET_VAR(taskTable+channel, 30, (u32)0x4000ffff); /* inc[6] */ - MCD_SET_VAR(taskTable+channel, 31, (u32)0xe0000001); /* inc[7] */ - - /* Set the task's Enable bit in its Task Control Register */ - MCD_dmaBar->taskControl[channel] |= (u16)0x8000; -} diff --git a/arch/m68k/mach-mcfv4e/mcdapi/Makefile b/arch/m68k/mach-mcfv4e/mcdapi/Makefile deleted file mode 100644 index 52ddaf858..000000000 --- a/arch/m68k/mach-mcfv4e/mcdapi/Makefile +++ /dev/null @@ -1,26 +0,0 @@ -# -# (C) Copyright 2007 Carsten Schlote -# See file CREDITS for list of people who contributed to this project. -# -# This file is part of barebox. -# -# barebox is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# barebox is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with barebox. If not, see . -# - -# -# FreeScale MultiDMA Library -# -obj-y += MCD_dmaApi.o MCD_tasks.o MCD_tasksInit.o - - diff --git a/arch/m68k/mach-mcfv4e/mcdapi/ReleaseNotes.txt b/arch/m68k/mach-mcfv4e/mcdapi/ReleaseNotes.txt deleted file mode 100644 index bc10e713f..000000000 --- a/arch/m68k/mach-mcfv4e/mcdapi/ReleaseNotes.txt +++ /dev/null @@ -1,27 +0,0 @@ - -Multi-channel DMA API Release Notes - -Version 0.3 - -* MCD_INCLUDE_EU functionality supported(microcode changes for all tasks -except ethernet). -* Fixed bug when using MCD_END_FRAME which would cause the DMA to transfer -zero bytes and then complete. -* Code cleanup. - - -Version 0.2 (Slight Update) - -* Modified casts and task table implementations that were causing -warnings (and even errors on certain compilers) -* Cosmetic changes to clean up MCD_dmaApi.c and MCD_dma.h -* Fixed table declarations so that MCD_tasks.c will compile if - MCD_INCLUDE_EU is defined (Note: EU functionality still not supported) - -Version 0.1 (Initial release) - -Alpha version -MCD_INCLUDE_EU functionality not supported. -MCD_INCLUDE_JBIG not supported. - - diff --git a/arch/m68k/mach-mcfv4e/mcf_clocksource.c b/arch/m68k/mach-mcfv4e/mcf_clocksource.c deleted file mode 100644 index 8fb2fba2e..000000000 --- a/arch/m68k/mach-mcfv4e/mcf_clocksource.c +++ /dev/null @@ -1,138 +0,0 @@ -/* - * Copyright (c) 2008 Carsten Schlote - * See file CREDITS for list of people who contributed to this project. - * - * This file is part of barebox. - * - * barebox is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * barebox is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with barebox. If not, see . - */ - -/** @file - * Implements the clocksource for Coldfire V4E - */ -#include -#include -#include -#include -#include -#include //FIXME - move to other file - -#ifdef CONFIG_USE_IRQ - -static uint32_t mcf_sltirq_hits; // FIXME: test code - -static int slt_timer_default_isr(void *not_used, void *t) -{ - struct mcf5xxx_slt *slt = MCF_SLT_Address(0); - if ( MCF_INTC_IPRH | MCF_INTC_IPRH_INT54 ) - { - if (slt->SSR & MCF_SLT_SSR_ST) - { - slt->SSR = 0UL - | MCF_SLT_SSR_ST; - } - mcf_sltirq_hits++; - return 1; - } - return 0; -} -#endif - - -static uint64_t mcf_clocksource_read(void) -{ - struct mcf5xxx_slt *slt = MCF_SLT_Address(0); - uint32_t sltcnt; - uint64_t rc = 0; - - if (slt->SSR & MCF_SLT_SSR_ST) - { -#ifndef CONFIG_USE_IRQ - slt->SSR = 0UL - | MCF_SLT_SSR_ST; -#endif - - rc = 0xffffffffULL + 1; - } - - sltcnt = 0xffffffffUL - slt->SCNT; - - rc += sltcnt; - - return rc; -} - - -static struct clocksource cs = { - .read = mcf_clocksource_read, - .mask = 0xffffffff, - .mult = 1, - .shift = 0, -}; - -static int clocksource_init (void) -{ - struct mcf5xxx_slt *slt = MCF_SLT_Address(0); - uint32_t sltclk = mcfv4e_get_bus_clk() * 1000000; - - /* Setup a slice timer terminal count */ - slt->STCNT = 0xffffffff; - - /* Reset status bits */ - slt->SSR = 0UL - | MCF_SLT_SSR_ST - | MCF_SLT_SSR_BE; - - /* Start timer to run continously */ - slt->SCR = 0UL - | MCF_SLT_SCR_TEN - | MCF_SLT_SCR_RUN - | MCF_SLT_SCR_IEN; // FIXME - add irq handler - - /* Setup up multiplier */ - cs.mult = clocksource_hz2mult(sltclk, cs.shift); - - /* - * Register the timer interrupt handler - */ - init_clock(&cs); - - return 0; -} - -core_initcall(clocksource_init); - -#ifdef CONFIG_USE_IRQ - -static int clocksource_irq_init(void) -{ - if (!mcf_interrupts_register_handler( - 118, // FIXME! - (int (*)(void*,void*))slt_timer_default_isr, - NULL, - NULL) - ) - { - return 1; - } - // Setup ICR - MCF_INTC_ICR54 = MCF_INTC_ICRn_IL(1) | MCF_INTC_ICRn_IP(0); - // Enable IRQ source - MCF_INTC_IMRH &= ~MCF_INTC_IMRH_INT_MASK54; - return 0; -} - -postcore_initcall(clocksource_irq_init); - -#endif diff --git a/arch/m68k/mach-mcfv4e/mcf_reset_cpu.c b/arch/m68k/mach-mcfv4e/mcf_reset_cpu.c deleted file mode 100644 index d4659d22a..000000000 --- a/arch/m68k/mach-mcfv4e/mcf_reset_cpu.c +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright (c) 2008 Carsten Schlote - * See file CREDITS for list of people who contributed to this project. - * - * This file is part of barebox. - * - * barebox is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * barebox is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with barebox. If not, see . - */ - -/** @file - * Implements a watchdog triggered reset for V4e Coldfire cores - */ -#include -#include - -/** - * Reset the cpu by setting up the watchdog timer and let it time out - */ -void __noreturn reset_cpu (unsigned long addr) -{ - while ( ignored ) { ; }; - - /* Disable watchdog and set Time-Out field to minimum timeout value */ - MCF_GPT_GMS0 = 0; - MCF_GPT_GCIR0 = MCF_GPT_GCIR_PRE(1) | MCF_GPT_GCIR_CNT(0xffff); - - /* Enable watchdog */ - MCF_GPT_GMS0 = MCF_GPT_GMS_OCPW(0xA5) | MCF_GPT_GMS_WDEN | MCF_GPT_GMS_CE | MCF_GPT_GMS_TMS_GPIO; - - while (1); - /*NOTREACHED*/ -} -EXPORT_SYMBOL(reset_cpu); - diff --git a/arch/m68k/mach-mcfv4e/multichannel_dma.c b/arch/m68k/mach-mcfv4e/multichannel_dma.c deleted file mode 100644 index acc104e4a..000000000 --- a/arch/m68k/mach-mcfv4e/multichannel_dma.c +++ /dev/null @@ -1,51 +0,0 @@ -/* - * barebox Header File - * - * Generic Clocksource for V4E - * - * Copyright (c) 2007 Carsten Schlote - * - * See file CREDITS for list of people who contributed to this - * project. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, - * MA 02111-1307 USA - */ -#include -#include -#include -#include -#include - - -static int mcdapi_init(void) -{ - /* - * Initialize the Multi-channel DMA - */ - MCD_initDma ((dmaRegs*)(__MBAR+0x8000), - (void *)CFG_SYS_SRAM_ADDRESS, - MCD_COMM_PREFETCH_EN | MCD_RELOC_TASKS); - - /* - * Enable interrupts in DMA and INTC - */ - dma_irq_enable(DMA_INTC_LVL, DMA_INTC_PRI); - - return 0; -} - -postcore_initcall(mcdapi_init); - diff --git a/arch/m68k/mach-mcfv4e/net/Makefile b/arch/m68k/mach-mcfv4e/net/Makefile deleted file mode 100644 index 78c528f25..000000000 --- a/arch/m68k/mach-mcfv4e/net/Makefile +++ /dev/null @@ -1,26 +0,0 @@ -# -# (C) Copyright 2007 Carsten Schlote -# See file CREDITS for list of people who contributed to this project. -# -# This file is part of barebox. -# -# barebox is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# barebox is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with barebox. If not, see . -# - -# -# Support code for current FEC driver code - must be eliminated later... -# -obj-y += nbuf.o queue.o net.o - - diff --git a/arch/m68k/mach-mcfv4e/net/nbuf.c b/arch/m68k/mach-mcfv4e/net/nbuf.c deleted file mode 100644 index 234e75821..000000000 --- a/arch/m68k/mach-mcfv4e/net/nbuf.c +++ /dev/null @@ -1,239 +0,0 @@ -/* - * Copyright (c) 2008 Carsten Schlote - * See file CREDITS for list of people who contributed to this project. - * - * This file is part of barebox. - * - * barebox is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * barebox is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with barebox. If not, see . - */ - -/** @file - * Implementation of network buffer scheme. - * @todo Obsolete this file - */ -#include -#include -#include - -#include -#include - -#include - - -#define ASSERT(x) - -/** - * Queues used for network buffer storage - */ -QUEUE nbuf_queue[NBUF_MAXQ]; - -/* - * Some devices require line-aligned buffers. In order to accomplish - * this, the nbuf data is over-allocated and adjusted. The following - * array keeps track of the original data pointer returned by malloc - */ -ADDRESS unaligned_buffers[NBUF_MAX]; - -/** - * Initialize all the network buffer queues - * - * Return Value: - * 0 success - * 1 failure - */ -int -nbuf_init(void) -{ - int i; - NBUF *nbuf; - - for (i=0; idata = (uint8_t *)((uint32_t)(unaligned_buffers[i] + 15) & 0xFFFFFFF0); - if (!nbuf->data) - { - ASSERT(nbuf->data); - return 1; - } - - /* Initialize the network buffer */ - nbuf->offset = 0; - nbuf->length = 0; - - /* Add the network buffer to the free list */ - queue_add(&nbuf_queue[NBUF_FREE], (QNODE *)nbuf); - } - - #ifdef CONFIG_DRIVER_NET_MCF54XX_DEBUG - printf("NBUF allocation complete\n"); - nbuf_debug_dump(); - #endif - - return 0; -} -/** - * Return all the allocated memory to the heap - */ -void -nbuf_flush(void) -{ - NBUF *nbuf; - int i, level = asm_set_ipl(7); - int n = 0; - - for (i=0; ioffset = 0; - nbuf->length = NBUF_SZ; - queue_add(&nbuf_queue[NBUF_FREE],(QNODE *)nbuf); - - asm_set_ipl(level); -} -/** - * Remove a network buffer from the specified queue - * - * Parameters: - * q The index that identifies the queue to pull the buffer from - */ -NBUF * -nbuf_remove(int q) -{ - NBUF *nbuf; - int level = asm_set_ipl(7); - - nbuf = (NBUF *)queue_remove(&nbuf_queue[q]); - asm_set_ipl(level); - return nbuf; -} -/** - * Add a network buffer to the specified queue - * - * Parameters: - * q The index that identifies the queue to add the buffer to - */ -void -nbuf_add(int q, NBUF *nbuf) -{ - int level = asm_set_ipl(7); - queue_add(&nbuf_queue[q],(QNODE *)nbuf); - asm_set_ipl(level); -} -/** - * Put all the network buffers back into the free list - */ -void -nbuf_reset(void) -{ - NBUF *nbuf; - int i, level = asm_set_ipl(7); - - for (i=1; idata, - nbuf->offset, - nbuf->length); - nbuf = (NBUF *)nbuf->node.next; - } - } - - asm_set_ipl(level); -#endif -} diff --git a/arch/m68k/mach-mcfv4e/net/net.c b/arch/m68k/mach-mcfv4e/net/net.c deleted file mode 100644 index febabfeda..000000000 --- a/arch/m68k/mach-mcfv4e/net/net.c +++ /dev/null @@ -1,156 +0,0 @@ -/* - * Copyright (c) 2008 Carsten Schlote - * See file CREDITS for list of people who contributed to this project. - * - * This file is part of barebox. - * - * barebox is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * barebox is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with barebox. If not, see . - */ - -/** @file - * Network initialization for MCF V4E FEC support code - * @todo Obsolete this file - */ -#include -#include -#include - -#include -#include -#include -#include -#include -#include - -#include //FIXME - move to other file - -int netif_init(int channel) -{ - uint8_t* board_get_ethaddr(uint8_t*); - -#ifdef CONFIG_USE_IRQ - int vector; - int (*handler)(void *, void *); - - disable_interrupts(); - - /* - * Register the FEC0 interrupt handler - */ - handler = (channel == 0) ? fec0_interrupt_handler - : fec1_interrupt_handler; - vector = (channel == 0) ? 103 : 102; - - if (!mcf_interrupts_register_handler( - vector,handler, NULL,(void *)0xdeadbeef)) - { - printf("Error: Unable to register handler\n"); - return 0; - } - - /* - * Register the DMA interrupt handler - */ - handler = dma_interrupt_handler; - vector = 112; - - if (!mcf_interrupts_register_handler( - vector,handler, NULL,NULL)) - { - printf("Error: Unable to register handler\n"); - return 0; - } -#endif - /* - * Enable interrupts - */ - enable_interrupts(); - - return 1; -} - -int netif_setup(int channel) -{ - uint8_t mac[6]; - /* - * Get user programmed MAC address - */ -// board_get_ethaddr(mac); - - - /* - * Initialize the network interface structure - */ -// nif_init(&nif1); -// nif1.mtu = ETH_MTU; -// nif1.send = (DBUG_ETHERNET_PORT == 0) ? fec0_send : fec1_send; - - /* - * Initialize the dBUG Ethernet port - */ - fec_eth_setup(channel, /* Which FEC to use */ - FEC_MODE_MII, /* Use MII mode */ - FEC_MII_100BASE_TX, /* Allow 10 and 100Mbps */ - FEC_MII_FULL_DUPLEX, /* Allow Full and Half Duplex */ - mac); - - /* - * Copy the Ethernet address to the NIF structure - */ -// memcpy(nif1.hwa, mac, 6); - - #ifdef DEBUG - printf("Ethernet Address is %02X:%02X:%02X:%02X:%02X:%02X\n",\ - mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]); - #endif - - return 1; -} - -int netif_done(int channel) -{ - /* - * Download complete, clean up - */ -#ifdef CONFIG_USE_IRQ - int (*handler)(void *, void *); -#endif - /* - * Disable interrupts - */ - disable_interrupts(); - - /* - * Disable the Instruction Cache - */ - mcf5xxx_wr_cacr(MCF5XXX_CACR_ICINVA); - - /* - * Disable the dBUG Ethernet port - */ - fec_eth_stop(channel); - - /* - * Remove the interrupt handlers - */ -#ifdef CONFIG_USE_IRQ - handler = (channel == 0) ? fec0_interrupt_handler - : fec1_interrupt_handler; - mcf_interrupts_remove_handler(handler); - mcf_interrupts_remove_handler(dma_interrupt_handler); -#endif - return 1; -} - - diff --git a/arch/m68k/mach-mcfv4e/net/queue.c b/arch/m68k/mach-mcfv4e/net/queue.c deleted file mode 100644 index 9f779474e..000000000 --- a/arch/m68k/mach-mcfv4e/net/queue.c +++ /dev/null @@ -1,128 +0,0 @@ -/* - * Copyright (c) 2008 Carsten Schlote - * See file CREDITS for list of people who contributed to this project. - * - * This file is part of barebox. - * - * barebox is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * barebox is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with barebox. If not, see . - */ - -/** @file - * Implements a first in, first out linked list - * - * @note Simple selfcontaining basic code - * @todo Replace by barebox standard list functions - */ -#include -#include - -/** Initialize the specified queue to an empty state - * - * @param[in] - * q Pointer to queue structure - */ -void queue_init(QUEUE *q) -{ - q->head = NULL; -} - -/** - * Check for an empty queue - * - * @param[in] q Pointer to queue structure - * @return - * 1 if Queue is empty - * 0 otherwise - */ -int -queue_isempty(QUEUE *q) -{ - return (q->head == NULL); -} - -/** - * Add an item to the end of the queue - * - * @param[in] q Pointer to queue structure - * @param[in] node New node to add to the queue - */ -void queue_add(QUEUE *q, QNODE *node) -{ - if (queue_isempty(q)) - { - q->head = q->tail = node; - } - else - { - q->tail->next = node; - q->tail = node; - } - - node->next = NULL; -} - -/** Remove and return first (oldest) entry from the specified queue - * - * @param[in] q Pointer to queue structure - * @return - * Node at head of queue - NULL if queue is empty - */ -QNODE* -queue_remove(QUEUE *q) -{ - QNODE *oldest; - - if (queue_isempty(q)) - return NULL; - - oldest = q->head; - q->head = oldest->next; - return oldest; -} - -/** Peek into the queue and return pointer to first (oldest) entry. - * - * The queue is not modified - * - * @param[in] q Pointer to queue structure - * @return - * Node at head of queue - NULL if queue is empty - */ -QNODE* -queue_peek(QUEUE *q) -{ - return q->head; -} - -/** Move entire contents of one queue to the other - * - * @param[in] src Pointer to source queue - * @param[in] dst Pointer to destination queue - */ -void -queue_move(QUEUE *dst, QUEUE *src) -{ - if (queue_isempty(src)) - return; - - if (queue_isempty(dst)) - dst->head = src->head; - else - dst->tail->next = src->head; - - dst->tail = src->tail; - src->head = NULL; - return; -} - diff --git a/commands/bootm.c b/commands/bootm.c index 991431bf7..34164bcf0 100644 --- a/commands/bootm.c +++ b/commands/bootm.c @@ -481,5 +481,4 @@ void bz_internal_error(int errcode) * - @subpage arm_boot_preparation * - @subpage ppc_boot_preparation * - @subpage x86_boot_preparation - * - @subpage m68k_boot_preparation */