summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/arm/csb336
diff options
context:
space:
mode:
authorChris Johns <chrisj@rtems.org>2017-12-23 18:18:56 +1100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2018-01-25 08:45:26 +0100
commit2afb22b7e1ebcbe40373ff7e0efae7d207c655a9 (patch)
tree44759efe9374f13200a97e96d91bd9a2b7e5ce2a /c/src/lib/libbsp/arm/csb336
parentMAINTAINERS: Add myself to Write After Approval. (diff)
downloadrtems-2afb22b7e1ebcbe40373ff7e0efae7d207c655a9.tar.bz2
Remove make preinstall
A speciality of the RTEMS build system was the make preinstall step. It copied header files from arbitrary locations into the build tree. The header files were included via the -Bsome/build/tree/path GCC command line option. This has at least seven problems: * The make preinstall step itself needs time and disk space. * Errors in header files show up in the build tree copy. This makes it hard for editors to open the right file to fix the error. * There is no clear relationship between source and build tree header files. This makes an audit of the build process difficult. * The visibility of all header files in the build tree makes it difficult to enforce API barriers. For example it is discouraged to use BSP-specifics in the cpukit. * An introduction of a new build system is difficult. * Include paths specified by the -B option are system headers. This may suppress warnings. * The parallel build had sporadic failures on some hosts. This patch removes the make preinstall step. All installed header files are moved to dedicated include directories in the source tree. Let @RTEMS_CPU@ be the target architecture, e.g. arm, powerpc, sparc, etc. Let @RTEMS_BSP_FAMILIY@ be a BSP family base directory, e.g. erc32, imx, qoriq, etc. The new cpukit include directories are: * cpukit/include * cpukit/score/cpu/@RTEMS_CPU@/include * cpukit/libnetworking The new BSP include directories are: * bsps/include * bsps/@RTEMS_CPU@/include * bsps/@RTEMS_CPU@/@RTEMS_BSP_FAMILIY@/include There are build tree include directories for generated files. The include directory order favours the most general header file, e.g. it is not possible to override general header files via the include path order. The "bootstrap -p" option was removed. The new "bootstrap -H" option should be used to regenerate the "headers.am" files. Update #3254.
Diffstat (limited to 'c/src/lib/libbsp/arm/csb336')
-rw-r--r--c/src/lib/libbsp/arm/csb336/Makefile.am18
-rw-r--r--c/src/lib/libbsp/arm/csb336/configure.ac3
-rw-r--r--c/src/lib/libbsp/arm/csb336/include/bsp.h68
-rw-r--r--c/src/lib/libbsp/arm/csb336/include/bsp/irq.h95
-rw-r--r--c/src/lib/libbsp/arm/csb336/include/mc9328mxl.h486
-rw-r--r--c/src/lib/libbsp/arm/csb336/include/tm27.h1
-rw-r--r--c/src/lib/libbsp/arm/csb336/preinstall.am79
-rw-r--r--c/src/lib/libbsp/arm/csb336/startup/bsp_specs (renamed from c/src/lib/libbsp/arm/csb336/bsp_specs)0
8 files changed, 6 insertions, 744 deletions
diff --git a/c/src/lib/libbsp/arm/csb336/Makefile.am b/c/src/lib/libbsp/arm/csb336/Makefile.am
index 12cab14fa8..0dc5c54fa0 100644
--- a/c/src/lib/libbsp/arm/csb336/Makefile.am
+++ b/c/src/lib/libbsp/arm/csb336/Makefile.am
@@ -4,19 +4,10 @@ EXTRA_DIST =
include $(top_srcdir)/../../../../automake/compile.am
include $(top_srcdir)/../../bsp.am
-include_bspdir = $(includedir)/bsp
+dist_project_lib_DATA = startup/bsp_specs
-dist_project_lib_DATA = bsp_specs
+libbsp_a_CPPFLAGS = $(AM_CPPFLAGS)
-include_HEADERS = include/bsp.h
-include_HEADERS += include/tm27.h
-include_HEADERS += include/mc9328mxl.h
-
-include_bsp_HEADERS =
-libbsp_a_CPPFLAGS =
-
-nodist_include_HEADERS = include/bspopts.h
-nodist_include_bsp_HEADERS = ../../shared/include/bootcard.h
DISTCLEANFILES = include/bspopts.h
noinst_PROGRAMS =
@@ -45,9 +36,6 @@ libbsp_a_SOURCES += timer/timer.c
# console
libbsp_a_SOURCES += console/uart.c
# IRQ
-include_bsp_HEADERS += ../../shared/include/irq-generic.h \
- ../../shared/include/irq-info.h
-include_bsp_HEADERS += include/bsp/irq.h
libbsp_a_SOURCES += ../../shared/src/irq-default-handler.c
libbsp_a_SOURCES += ../../shared/src/irq-generic.c
libbsp_a_SOURCES += ../../shared/src/irq-info.c
@@ -76,5 +64,5 @@ if HAS_NETWORKING
libbsp_a_LIBADD += network.rel
endif
-include $(srcdir)/preinstall.am
include $(top_srcdir)/../../../../automake/local.am
+include $(srcdir)/../../../../../../bsps/arm/csb336/headers.am
diff --git a/c/src/lib/libbsp/arm/csb336/configure.ac b/c/src/lib/libbsp/arm/csb336/configure.ac
index bbdf556328..11ccabf036 100644
--- a/c/src/lib/libbsp/arm/csb336/configure.ac
+++ b/c/src/lib/libbsp/arm/csb336/configure.ac
@@ -4,6 +4,9 @@ AC_PREREQ([2.69])
AC_INIT([rtems-c-src-lib-libbsp-arm-csb336],[_RTEMS_VERSION],[https://devel.rtems.org/newticket])
AC_CONFIG_SRCDIR([make/custom/csb336.cfg])
RTEMS_TOP(../../../../../..)
+RTEMS_SOURCE_TOP
+RTEMS_BUILD_TOP
+RTEMS_BSP_LINKCMDS
RTEMS_CANONICAL_TARGET_CPU
AM_INIT_AUTOMAKE([no-define nostdinc foreign 1.12.2])
diff --git a/c/src/lib/libbsp/arm/csb336/include/bsp.h b/c/src/lib/libbsp/arm/csb336/include/bsp.h
deleted file mode 100644
index ed036d5454..0000000000
--- a/c/src/lib/libbsp/arm/csb336/include/bsp.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/**
- * @file
- *
- * @ingroup arm_csb336
- *
- * @brief Global BSP definitions.
- */
-
-/*
- * BSP CSB336 header file
- *
- * Copyright (c) 2004 Cogent Computer Systems
- * Written by Jay Monkman <jtm@lopingdog.com>
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
-*/
-#ifndef LIBBSP_ARM_CSB336_BSP_H
-#define LIBBSP_ARM_CSB336_BSP_H
-
-#include <bspopts.h>
-#include <bsp/default-initial-extension.h>
-
-#include <rtems.h>
-#include <mc9328mxl.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @defgroup arm_csb336 CSB336 Support
- *
- * @ingroup bsp_arm
- *
- * @brief CSB336 support package.
- *
- * @{
- */
-
-#define BSP_FEATURE_IRQ_EXTENSION
-
-/* What is the input clock freq in hertz? */
-#define BSP_OSC_FREQ 16000000 /* 16 MHz oscillator */
-#define BSP_XTAL_FREQ 32768 /* 32.768 KHz crystal */
-
-int get_perclk1_freq(void);
-
-/**
- * @brief Network driver configuration
- */
-extern struct rtems_bsdnet_ifconfig *config;
-
-/* Change these to match your board */
-int rtems_mc9328mxl_enet_attach(struct rtems_bsdnet_ifconfig *config,
- void *chip);
-#define RTEMS_BSP_NETWORK_DRIVER_NAME "eth0"
-#define RTEMS_BSP_NETWORK_DRIVER_ATTACH rtems_mc9328mxl_enet_attach
-
-/** @} */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _BSP_H */
-
diff --git a/c/src/lib/libbsp/arm/csb336/include/bsp/irq.h b/c/src/lib/libbsp/arm/csb336/include/bsp/irq.h
deleted file mode 100644
index eb56fdd887..0000000000
--- a/c/src/lib/libbsp/arm/csb336/include/bsp/irq.h
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * Interrupt handler Header file
- *
- * Copyright (c) 2010 embedded brains GmbH.
- *
- * Copyright (c) 2004 by Jay Monkman <jtm@lopingdog.com>
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-#ifndef __IRQ_H__
-#define __IRQ_H__
-
-#ifndef __asm__
-
-#include <rtems.h>
-#include <rtems/irq.h>
-#include <rtems/irq-extension.h>
-
-#endif /* __asm__ */
-
-/* possible interrupt sources on the MC9328MXL */
-#define BSP_INT_UART3_PFERR 0
-#define BSP_INT_UART3_RTS 1
-#define BSP_INT_UART3_DTR 2
-#define BSP_INT_UART3_UARTC 3
-#define BSP_INT_UART3_TX 4
-#define BSP_INT_PEN_UP 5
-#define BSP_INT_CSI 6
-#define BSP_INT_MMA_MAC 7
-#define BSP_INT_MMA 8
-#define BSP_INT_COMP 9
-#define BSP_INT_MSIRQ 10
-#define BSP_INT_GPIO_PORTA 11
-#define BSP_INT_GPIO_PORTB 12
-#define BSP_INT_GPIO_PORTC 13
-#define BSP_INT_LCDC 14
-#define BSP_INT_SIM_IRQ 15
-#define BSP_INT_SIM_DATA 16
-#define BSP_INT_RTC 17
-#define BSP_INT_RTC_SAM 18
-#define BSP_INT_UART2_PFERR 19
-#define BSP_INT_UART2_RTS 20
-#define BSP_INT_UART2_DTR 21
-#define BSP_INT_UART2_UARTC 22
-#define BSP_INT_UART2_TX 23
-#define BSP_INT_UART2_RX 24
-#define BSP_INT_UART1_PFERR 25
-#define BSP_INT_UART1_RTS 26
-#define BSP_INT_UART1_DTR 27
-#define BSP_INT_UART1_UARTC 28
-#define BSP_INT_UART1_TX 29
-#define BSP_INT_UART1_RX 30
-#define BSP_INT_RES31 31
-#define BSP_INT_RES32 32
-#define BSP_INT_PEN_DATA 33
-#define BSP_INT_PWM 34
-#define BSP_INT_MMC_IRQ 35
-#define BSP_INT_SSI2_TX 36
-#define BSP_INT_SSI2_RX 37
-#define BSP_INT_SSI2_ERR 38
-#define BSP_INT_I2C 39
-#define BSP_INT_SPI2 40
-#define BSP_INT_SPI1 41
-#define BSP_INT_SSI_TX 42
-#define BSP_INT_SSI_TX_ERR 43
-#define BSP_INT_SSI_RX 44
-#define BSP_INT_SSI_RX_ERR 45
-#define BSP_INT_TOUCH 46
-#define BSP_INT_USBD0 47
-#define BSP_INT_USBD1 48
-#define BSP_INT_USBD2 49
-#define BSP_INT_USBD3 50
-#define BSP_INT_USBD4 51
-#define BSP_INT_USBD5 52
-#define BSP_INT_USBD6 53
-#define BSP_INT_UART3_RX 54
-#define BSP_INT_BTSYS 55
-#define BSP_INT_BTTIM 56
-#define BSP_INT_BTWUI 57
-#define BSP_INT_TIMER2 58
-#define BSP_INT_TIMER1 59
-#define BSP_INT_DMA_ERR 60
-#define BSP_INT_DMA 61
-#define BSP_INT_GPIO_PORTD 62
-#define BSP_INT_WDT 63
-#define BSP_MAX_INT 64
-
-#define BSP_INTERRUPT_VECTOR_MIN 0
-
-#define BSP_INTERRUPT_VECTOR_MAX (BSP_MAX_INT - 1)
-
-#endif /* __IRQ_H__ */
diff --git a/c/src/lib/libbsp/arm/csb336/include/mc9328mxl.h b/c/src/lib/libbsp/arm/csb336/include/mc9328mxl.h
deleted file mode 100644
index dd0516283a..0000000000
--- a/c/src/lib/libbsp/arm/csb336/include/mc9328mxl.h
+++ /dev/null
@@ -1,486 +0,0 @@
-/*
- * Motorola MC9328MXL Register definitions
- *
- * Copyright (c) 2003 by Cogent Computer Systems
- * Written by Jay Monkman <jtm@lopingdog.com>
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-#ifndef __MC9328MXL_H__
-#define __MC9328MXL_H__
-
-#include <stdint.h>
-
-#define bit(_x_) (1 << (_x_))
-
-/* Define some constants relating to the CPU */
-#define MC9328MXL_NUM_INTS 64 /* CPU supports 64 interrupts */
-
-/* Define the base addresses of the internal registers */
-#define MC9328MXL_AIPI1_BASE 0x00200000
-#define MC9328MXL_AIPI2_BASE 0x00210000
-#define MC9328MXL_WDOG_BASE 0x00201000
-#define MC9328MXL_TMR1_BASE 0x00202000
-#define MC9328MXL_TMR2_BASE 0x00203000
-#define MC9328MXL_RTC_BASE 0x00204000
-#define MC9328MXL_LCDC_BASE 0x00205000
-#define MC9328MXL_UART1_BASE 0x00206000
-#define MC9328MXL_UART2_BASE 0x00207000
-#define MC9328MXL_PWM_BASE 0x00208000
-#define MC9328MXL_DMAC_BASE 0x00209000
-#define MC9328MXL_USBD_BASE 0x00212000
-#define MC9328MXL_SPI1_BASE 0x00213000
-#define MC9328MXL_SPI2_BASE 0x00219000
-#define MC9328MXL_MMC_BASE 0x00214000
-#define MC9328MXL_I2C_BASE 0x00217000
-#define MC9328MXL_SSI_BASE 0x00218000
-#define MC9328MXL_MSHC_BASE 0x0021a000
-#define MC9328MXL_PLL_BASE 0x0021b000
-#define MC9328MXL_RESET_BASE 0x0021b800
-#define MC9328MXL_SYSCTRL_BASE 0x0021b804
-#define MC9328MXL_GPIOA_BASE 0x0021c000
-#define MC9328MXL_GPIOB_BASE 0x0021c100
-#define MC9328MXL_GPIOC_BASE 0x0021c200
-#define MC9328MXL_GPIOD_BASE 0x0021c300
-#define MC9328MXL_EIM_BASE 0x00220000
-#define MC9328MXL_SDRAM_BASE 0x00221000
-#define MC9328MXL_MMA_BASE 0x00222000
-#define MC9328MXL_AITC_BASE 0x00223000
-#define MC9328MXL_CSI_BASE 0x00224000
-
-
-#define MC9328MXL_TMR1_TCTL (*((volatile uint32_t *)((MC9328MXL_TMR1_BASE) + 0x00)))
-#define MC9328MXL_TMR1_TPRER (*((volatile uint32_t *)((MC9328MXL_TMR1_BASE) + 0x04)))
-#define MC9328MXL_TMR1_TCMP (*((volatile uint32_t *)((MC9328MXL_TMR1_BASE) + 0x08)))
-#define MC9328MXL_TMR1_TCR (*((volatile uint32_t *)((MC9328MXL_TMR1_BASE) + 0x0c)))
-#define MC9328MXL_TMR1_TCN (*((volatile uint32_t *)((MC9328MXL_TMR1_BASE) + 0x10)))
-#define MC9328MXL_TMR1_TSTAT (*((volatile uint32_t *)((MC9328MXL_TMR1_BASE) + 0x14)))
-
-#define MC9328MXL_TMR2_TCTL (*((volatile uint32_t *)((MC9328MXL_TMR2_BASE) + 0x00)))
-#define MC9328MXL_TMR2_TPRER (*((volatile uint32_t *)((MC9328MXL_TMR2_BASE) + 0x04)))
-#define MC9328MXL_TMR2_TCMP (*((volatile uint32_t *)((MC9328MXL_TMR2_BASE) + 0x08)))
-#define MC9328MXL_TMR2_TCR (*((volatile uint32_t *)((MC9328MXL_TMR2_BASE) + 0x0c)))
-#define MC9328MXL_TMR2_TCN (*((volatile uint32_t *)((MC9328MXL_TMR2_BASE) + 0x10)))
-#define MC9328MXL_TMR2_TSTAT (*((volatile uint32_t *)((MC9328MXL_TMR2_BASE) + 0x14)))
-
-#define MC9328MXL_TMR_TCTL_SWR (bit(15))
-#define MC9328MXL_TMR_TCTL_FRR (bit(8))
-#define MC9328MXL_TMR_TCTL_CAP_DIS (0 << 6)
-#define MC9328MXL_TMR_TCTL_CAP_RISE (1 << 6)
-#define MC9328MXL_TMR_TCTL_CAP_FALL (2 << 6)
-#define MC9328MXL_TMR_TCTL_CAP_ANY (3 << 6)
-#define MC9328MXL_TMR_TCTL_OM (bit(5))
-#define MC9328MXL_TMR_TCTL_IRQEN (bit(4))
-#define MC9328MXL_TMR_TCTL_CLKSRC_STOP (0 << 1)
-#define MC9328MXL_TMR_TCTL_CLKSRC_PCLK1 (1 << 1)
-#define MC9328MXL_TMR_TCTL_CLKSRC_PCLK_DIV16 (2 << 1)
-#define MC9328MXL_TMR_TCTL_CLKSRC_TIN (3 << 1)
-#define MC9328MXL_TMR_TCTL_CLKSRC_32KHX (4 << 1)
-#define MC9328MXL_TMR_TCTL_TEN (bit(0))
-
-#define MC9328MXL_UART1_RXD (*((volatile uint32_t *)((MC9328MXL_UART1_BASE) + 0x00)))
-#define MC9328MXL_UART1_TXD (*((volatile uint32_t *)((MC9328MXL_UART1_BASE) + 0x40)))
-#define MC9328MXL_UART1_CR1 (*((volatile uint32_t *)((MC9328MXL_UART1_BASE) + 0x80)))
-#define MC9328MXL_UART1_CR2 (*((volatile uint32_t *)((MC9328MXL_UART1_BASE) + 0x84)))
-#define MC9328MXL_UART1_CR3 (*((volatile uint32_t *)((MC9328MXL_UART1_BASE) + 0x88)))
-#define MC9328MXL_UART1_CR4 (*((volatile uint32_t *)((MC9328MXL_UART1_BASE) + 0x8c)))
-#define MC9328MXL_UART1_FCR (*((volatile uint32_t *)((MC9328MXL_UART1_BASE) + 0x90)))
-#define MC9328MXL_UART1_SR1 (*((volatile uint32_t *)((MC9328MXL_UART1_BASE) + 0x94)))
-#define MC9328MXL_UART1_SR2 (*((volatile uint32_t *)((MC9328MXL_UART1_BASE) + 0x98)))
-#define MC9328MXL_UART1_ESC (*((volatile uint32_t *)((MC9328MXL_UART1_BASE) + 0x9c)))
-#define MC9328MXL_UART1_TIM (*((volatile uint32_t *)((MC9328MXL_UART1_BASE) + 0xa0)))
-#define MC9328MXL_UART1_BIR (*((volatile uint32_t *)((MC9328MXL_UART1_BASE) + 0xa4)))
-#define MC9328MXL_UART1_BMR (*((volatile uint32_t *)((MC9328MXL_UART1_BASE) + 0xa8)))
-#define MC9328MXL_UART1_BRC (*((volatile uint32_t *)((MC9328MXL_UART1_BASE) + 0xac)))
-#define MC9328MXL_UART1_IPR1 (*((volatile uint32_t *)((MC9328MXL_UART1_BASE) + 0xb0)))
-#define MC9328MXL_UART1_IPR2 (*((volatile uint32_t *)((MC9328MXL_UART1_BASE) + 0xb4)))
-#define MC9328MXL_UART1_IPR3 (*((volatile uint32_t *)((MC9328MXL_UART1_BASE) + 0xb8)))
-#define MC9328MXL_UART1_IPR4 (*((volatile uint32_t *)((MC9328MXL_UART1_BASE) + 0xbc)))
-#define MC9328MXL_UART1_MPR1 (*((volatile uint32_t *)((MC9328MXL_UART1_BASE) + 0xc0)))
-#define MC9328MXL_UART1_MPR2 (*((volatile uint32_t *)((MC9328MXL_UART1_BASE) + 0xc4)))
-#define MC9328MXL_UART1_MPR3 (*((volatile uint32_t *)((MC9328MXL_UART1_BASE) + 0xc8)))
-#define MC9328MXL_UART1_MPR4 (*((volatile uint32_t *)((MC9328MXL_UART1_BASE) + 0xcc)))
-#define MC9328MXL_UART1_TS (*((volatile uint32_t *)((MC9328MXL_UART1_BASE) + 0xd0)))
-
-#define MC9328MXL_UART2_RXD (*((volatile uint32_t *)((MC9328MXL_UART2_BASE) + 0x00)))
-#define MC9328MXL_UART2_TXD (*((volatile uint32_t *)((MC9328MXL_UART2_BASE) + 0x40)))
-#define MC9328MXL_UART2_CR1 (*((volatile uint32_t *)((MC9328MXL_UART2_BASE) + 0x80)))
-#define MC9328MXL_UART2_CR2 (*((volatile uint32_t *)((MC9328MXL_UART2_BASE) + 0x84)))
-#define MC9328MXL_UART2_CR3 (*((volatile uint32_t *)((MC9328MXL_UART2_BASE) + 0x88)))
-#define MC9328MXL_UART2_CR4 (*((volatile uint32_t *)((MC9328MXL_UART2_BASE) + 0x8c)))
-#define MC9328MXL_UART2_FCR (*((volatile uint32_t *)((MC9328MXL_UART2_BASE) + 0x90)))
-#define MC9328MXL_UART2_SR1 (*((volatile uint32_t *)((MC9328MXL_UART2_BASE) + 0x94)))
-#define MC9328MXL_UART2_SR2 (*((volatile uint32_t *)((MC9328MXL_UART2_BASE) + 0x98)))
-#define MC9328MXL_UART2_ESC (*((volatile uint32_t *)((MC9328MXL_UART2_BASE) + 0x9c)))
-#define MC9328MXL_UART2_TIM (*((volatile uint32_t *)((MC9328MXL_UART2_BASE) + 0xa0)))
-#define MC9328MXL_UART2_BIR (*((volatile uint32_t *)((MC9328MXL_UART2_BASE) + 0xa4)))
-#define MC9328MXL_UART2_BMR (*((volatile uint32_t *)((MC9328MXL_UART2_BASE) + 0xa8)))
-#define MC9328MXL_UART2_BRC (*((volatile uint32_t *)((MC9328MXL_UART2_BASE) + 0xac)))
-#define MC9328MXL_UART2_IPR1 (*((volatile uint32_t *)((MC9328MXL_UART2_BASE) + 0xb0)))
-#define MC9328MXL_UART2_IPR2 (*((volatile uint32_t *)((MC9328MXL_UART2_BASE) + 0xb4)))
-#define MC9328MXL_UART2_IPR3 (*((volatile uint32_t *)((MC9328MXL_UART2_BASE) + 0xb8)))
-#define MC9328MXL_UART2_IPR4 (*((volatile uint32_t *)((MC9328MXL_UART2_BASE) + 0xbc)))
-#define MC9328MXL_UART2_MPR1 (*((volatile uint32_t *)((MC9328MXL_UART2_BASE) + 0xc0)))
-#define MC9328MXL_UART2_MPR2 (*((volatile uint32_t *)((MC9328MXL_UART2_BASE) + 0xc4)))
-#define MC9328MXL_UART2_MPR3 (*((volatile uint32_t *)((MC9328MXL_UART2_BASE) + 0xc8)))
-#define MC9328MXL_UART2_MPR4 (*((volatile uint32_t *)((MC9328MXL_UART2_BASE) + 0xcc)))
-#define MC9328MXL_UART2_TS (*((volatile uint32_t *)((MC9328MXL_UART2_BASE) + 0xd0)))
-
-typedef struct {
- volatile uint32_t rxd;
- volatile uint32_t _res0[15];
- volatile uint32_t txd;
- volatile uint32_t _res1[15];
- volatile uint32_t cr1;
- volatile uint32_t cr2;
- volatile uint32_t cr3;
- volatile uint32_t cr4;
- volatile uint32_t fcr;
- volatile uint32_t sr1;
- volatile uint32_t sr2;
- volatile uint32_t esc;
- volatile uint32_t tim;
- volatile uint32_t bir;
- volatile uint32_t bmr;
- volatile uint32_t brc;
- volatile uint32_t ipr1;
- volatile uint32_t ipr2;
- volatile uint32_t ipr3;
- volatile uint32_t ipr4;
- volatile uint32_t mpr1;
- volatile uint32_t mpr2;
- volatile uint32_t mpr3;
- volatile uint32_t mpr4;
- volatile uint32_t ts;
-} mc9328mxl_uart_regs_t;
-
-#define MC9328MXL_UART_RXD_CHARRDY (bit(15))
-#define MC9328MXL_UART_RXD_ERR (bit(14))
-#define MC9328MXL_UART_RXD_OVRRUN (bit(13))
-#define MC9328MXL_UART_RXD_FRMERR (bit(12))
-#define MC9328MXL_UART_RXD_BRK (bit(11))
-#define MC9328MXL_UART_RXD_PRERR (bit(10))
-#define MC9328MXL_UART_RXD_CHARMASK (0xff)
-
-#define MC9328MXL_UART_CR1_ADEN (bit(15))
-#define MC9328MXL_UART_CR1_ADBR (bit(14))
-#define MC9328MXL_UART_CR1_TRDYEN (bit(13))
-#define MC9328MXL_UART_CR1_IDEN (bit(12))
-#define MC9328MXL_UART_CR1_ICD4 (0x0 << 10)
-#define MC9328MXL_UART_CR1_ICD8 (0x1 << 10)
-#define MC9328MXL_UART_CR1_ICD16 (0x2 << 10)
-#define MC9328MXL_UART_CR1_ICD32 (0x3 << 10)
-#define MC9328MXL_UART_CR1_RRDYEN (bit(9))
-#define MC9328MXL_UART_CR1_RDMAEN (bit(8))
-#define MC9328MXL_UART_CR1_IREN (bit(7))
-#define MC9328MXL_UART_CR1_TXMPTYEN (bit(6))
-#define MC9328MXL_UART_CR1_RTSDEN (bit(5))
-#define MC9328MXL_UART_CR1_SNDBRK (bit(4))
-#define MC9328MXL_UART_CR1_TDMAEN (bit(3))
-#define MC9328MXL_UART_CR1_UARTCLKEN (bit(2))
-#define MC9328MXL_UART_CR1_DOZE (bit(1))
-#define MC9328MXL_UART_CR1_UARTEN (bit(0))
-
-
-#define MC9328MXL_UART_CR2_ESCI (bit(15))
-#define MC9328MXL_UART_CR2_IRTS (bit(14))
-#define MC9328MXL_UART_CR2_CTSC (bit(13))
-#define MC9328MXL_UART_CR2_CTS (bit(12))
-#define MC9328MXL_UART_CR2_ESCEN (bit(11))
-#define MC9328MXL_UART_CR2_RTEC_RE (0 << 9)
-#define MC9328MXL_UART_CR2_RTEC_FE (1 << 9)
-#define MC9328MXL_UART_CR2_RTEC_ANY (2 << 9)
-#define MC9328MXL_UART_CR2_PREN (bit(8))
-#define MC9328MXL_UART_CR2_PROE (bit(7))
-#define MC9328MXL_UART_CR2_STPB (bit(6))
-#define MC9328MXL_UART_CR2_WS (bit(5))
-#define MC9328MXL_UART_CR2_RTSEN (bit(4))
-#define MC9328MXL_UART_CR2_TXEN (bit(2))
-#define MC9328MXL_UART_CR2_RXEN (bit(1))
-#define MC9328MXL_UART_CR2_SRST (bit(0))
-
-#define MC9328MXL_UART_CR3_DPEC_RE (0 << 14) /* UART2 only */
-#define MC9328MXL_UART_CR3_DPEC_FE (1 << 14) /* UART2 only */
-#define MC9328MXL_UART_CR3_DPEC_ANY (2 << 14) /* UART2 only */
-#define MC9328MXL_UART_CR3_DTREN (bit(13)) /* UART2 only */
-#define MC9328MXL_UART_CR3_PARERREN (bit(12))
-#define MC9328MXL_UART_CR3_FRAERREN (bit(11))
-#define MC9328MXL_UART_CR3_DSR (bit(10)) /* UART2 only */
-#define MC9328MXL_UART_CR3_DCD (bit(9)) /* UART2 only */
-#define MC9328MXL_UART_CR3_RI (bit(8)) /* UART2 only */
-#define MC9328MXL_UART_CR3_RXDSEN (bit(6))
-#define MC9328MXL_UART_CR3_AIRINTEN (bit(5))
-#define MC9328MXL_UART_CR3_AWAKEN (bit(4))
-#define MC9328MXL_UART_CR3_REF25 (bit(3))
-#define MC9328MXL_UART_CR3_REF30 (bit(2))
-#define MC9328MXL_UART_CR3_INVT (bit(1))
-#define MC9328MXL_UART_CR3_BPEN (bit(0))
-
-#define MC9328MXL_UART_CR4_CTSTL(_x_) (((_x_) & 0x3f) << 10)
-#define MC9328MXL_UART_CR4_INVR (bit(9))
-#define MC9328MXL_UART_CR4_ENIRI (bit(8))
-#define MC9328MXL_UART_CR4_WKEN (bit(7))
-#define MC9328MXL_UART_CR4_REF16 (bit(6))
-#define MC9328MXL_UART_CR4_IRSC (bit(5))
-#define MC9328MXL_UART_CR4_TCEN (bit(3))
-#define MC9328MXL_UART_CR4_BKEN (bit(2))
-#define MC9328MXL_UART_CR4_OREN (bit(1))
-#define MC9328MXL_UART_CR4_DREN (bit(0))
-
-#define MC9328MXL_UART_FCR_TXTL(x) (((x) & 0x3f) << 10)
-#define MC9328MXL_UART_FCR_RFDIV_1 (5 << 7)
-#define MC9328MXL_UART_FCR_RFDIV_2 (4 << 7)
-#define MC9328MXL_UART_FCR_RFDIV_3 (3 << 7)
-#define MC9328MXL_UART_FCR_RFDIV_4 (2 << 7)
-#define MC9328MXL_UART_FCR_RFDIV_5 (1 << 7)
-#define MC9328MXL_UART_FCR_RFDIV_6 (0 << 7)
-#define MC9328MXL_UART_FCR_RFDIV_7 (6 << 7)
-#define MC9328MXL_UART_FCR_RFDIV_MASK (7 << 7)
-#define MC9328MXL_UART_FCR_RXTL(x) (((x) & 0x3f) << 0)
-
-#define MC9328MXL_UART_SR1_PARERR (bit(15))
-#define MC9328MXL_UART_SR1_RTSS (bit(14))
-#define MC9328MXL_UART_SR1_TRDY (bit(13))
-#define MC9328MXL_UART_SR1_RTSD (bit(12))
-#define MC9328MXL_UART_SR1_ESCF (bit(11))
-#define MC9328MXL_UART_SR1_FRMERR (bit(10))
-#define MC9328MXL_UART_SR1_RRDY (bit(9))
-#define MC9328MXL_UART_SR1_RXDS (bit(6))
-#define MC9328MXL_UART_SR1_AIRINT (bit(5))
-#define MC9328MXL_UART_SR1_AWAKE (bit(4))
-
-#define MC9328MXL_UART_SR2_ADET (bit(15))
-#define MC9328MXL_UART_SR2_TXFE (bit(14))
-#define MC9328MXL_UART_SR2_DTRF (bit(13))
-#define MC9328MXL_UART_SR2_IDLE (bit(12))
-#define MC9328MXL_UART_SR2_IRINT (bit(8))
-#define MC9328MXL_UART_SR2_WAKE (bit(7))
-#define MC9328MXL_UART_SR2_RTSF (bit(4))
-#define MC9328MXL_UART_SR2_TXDC (bit(3))
-#define MC9328MXL_UART_SR2_BRCD (bit(2))
-#define MC9328MXL_UART_SR2_ORE (bit(1))
-#define MC9328MXL_UART_SR2_RDR (bit(0))
-
-
-#define MC9328MXL_PLL_CSCR (*((volatile uint32_t *)((MC9328MXL_PLL_BASE) + 0x00)))
-#define MC9328MXL_PLL_MPCTL0 (*((volatile uint32_t *)((MC9328MXL_PLL_BASE) + 0x04)))
-#define MC9328MXL_PLL_MPCTL1 (*((volatile uint32_t *)((MC9328MXL_PLL_BASE) + 0x08)))
-#define MC9328MXL_PLL_SPCTL0 (*((volatile uint32_t *)((MC9328MXL_PLL_BASE) + 0x0c)))
-#define MC9328MXL_PLL_SPCTL1 (*((volatile uint32_t *)((MC9328MXL_PLL_BASE) + 0x10)))
-#define MC9328MXL_PLL_PCDR (*((volatile uint32_t *)((MC9328MXL_PLL_BASE) + 0x20)))
-
-#define MC9328MXL_PLL_CSCR_CLKOSEL_PERCLK1 (0 << 29)
-#define MC9328MXL_PLL_CSCR_CLKOSEL_HCLK (1 << 29)
-#define MC9328MXL_PLL_CSCR_CLKOSEL_CLK48M (2 << 29)
-#define MC9328MXL_PLL_CSCR_CLKOSEL_CLK16M (3 << 29)
-#define MC9328MXL_PLL_CSCR_CLKOSEL_PREMCLK (4 << 29)
-#define MC9328MXL_PLL_CSCR_CLKOSEL_FCLK (5 << 29)
-
-#define MC9328MXL_PLL_CSCR_USBDIV(_x_) (((_x_) & 0x7) << 26)
-#define MC9328MXL_PLL_CSCR_SDCNT_1 (0 << 24)
-#define MC9328MXL_PLL_CSCR_SDCNT_2 (1 << 24)
-#define MC9328MXL_PLL_CSCR_SDCNT_3 (2 << 24)
-#define MC9328MXL_PLL_CSCR_SDCNT_4 (3 << 24)
-
-#define MC9328MXL_PLL_CSCR_SPLLRSTRT (bit(22))
-#define MC9328MXL_PLL_CSCR_MPLLRSTRT (bit(21))
-#define MC9328MXL_PLL_CSCR_CLK16SEL (bit(18))
-#define MC9328MXL_PLL_CSCR_OSCEN (bit(17))
-#define MC9328MXL_PLL_CSCR_SYSSEL (bit(16))
-#define MC9328MXL_PLL_CSCR_PRESC (bit(15))
-#define MC9328MXL_PLL_CSCR_BLKDIV(_x_) (((_x_) & 0xf) << 10)
-#define MC9328MXL_PLL_CSCR_SPEN (bit(1))
-#define MC9328MXL_PLL_CSCR_MPEN (bit(0))
-
-#define MC9328MXL_PLL_PCDR_PCLK1_MASK (0x0000000f)
-#define MC9328MXL_PLL_PCDR_PCLK1_SHIFT (0)
-#define MC9328MXL_PLL_PCDR_PCLK2_MASK (0x000000f0)
-#define MC9328MXL_PLL_PCDR_PCLK2_SHIFT (4)
-#define MC9328MXL_PLL_PCDR_PCLK3_MASK (0x007f0000)
-#define MC9328MXL_PLL_PCDR_PCLK3_SHIFT (16)
-
-
-#define MC9328MXL_PLL_SPCTL_PD_MASK (0x3c000000)
-#define MC9328MXL_PLL_SPCTL_PD_SHIFT (26)
-#define MC9328MXL_PLL_SPCTL_MFD_MASK (0x03ff0000)
-#define MC9328MXL_PLL_SPCTL_MFD_SHIFT (16)
-#define MC9328MXL_PLL_SPCTL_MFI_MASK (0x00003c00)
-#define MC9328MXL_PLL_SPCTL_MFI_SHIFT (10)
-#define MC9328MXL_PLL_SPCTL_MFN_MASK (0x000003ff)
-#define MC9328MXL_PLL_SPCTL_MFN_SHIFT (0)
-
-
-#define MC9328MXL_GPIOA_DDIR (*((volatile uint32_t *)((MC9328MXL_GPIOA_BASE) + 0x00)))
-#define MC9328MXL_GPIOA_OCR1 (*((volatile uint32_t *)((MC9328MXL_GPIOA_BASE) + 0x04)))
-#define MC9328MXL_GPIOA_OCR2 (*((volatile uint32_t *)((MC9328MXL_GPIOA_BASE) + 0x08)))
-#define MC9328MXL_GPIOA_ICONFA1 (*((volatile uint32_t *)((MC9328MXL_GPIOA_BASE) + 0x0c)))
-#define MC9328MXL_GPIOA_ICONFA2 (*((volatile uint32_t *)((MC9328MXL_GPIOA_BASE) + 0x10)))
-#define MC9328MXL_GPIOA_ICONFB1 (*((volatile uint32_t *)((MC9328MXL_GPIOA_BASE) + 0x14)))
-#define MC9328MXL_GPIOA_ICONFB2 (*((volatile uint32_t *)((MC9328MXL_GPIOA_BASE) + 0x18)))
-#define MC9328MXL_GPIOA_DR (*((volatile uint32_t *)((MC9328MXL_GPIOA_BASE) + 0x1c)))
-#define MC9328MXL_GPIOA_GIUS (*((volatile uint32_t *)((MC9328MXL_GPIOA_BASE) + 0x20)))
-#define MC9328MXL_GPIOA_SSR (*((volatile uint32_t *)((MC9328MXL_GPIOA_BASE) + 0x24)))
-#define MC9328MXL_GPIOA_ICR1 (*((volatile uint32_t *)((MC9328MXL_GPIOA_BASE) + 0x28)))
-#define MC9328MXL_GPIOA_ICR2 (*((volatile uint32_t *)((MC9328MXL_GPIOA_BASE) + 0x2c)))
-#define MC9328MXL_GPIOA_IMR (*((volatile uint32_t *)((MC9328MXL_GPIOA_BASE) + 0x30)))
-#define MC9328MXL_GPIOA_ISR (*((volatile uint32_t *)((MC9328MXL_GPIOA_BASE) + 0x34)))
-#define MC9328MXL_GPIOA_GPR (*((volatile uint32_t *)((MC9328MXL_GPIOA_BASE) + 0x38)))
-#define MC9328MXL_GPIOA_SWR (*((volatile uint32_t *)((MC9328MXL_GPIOA_BASE) + 0x3c)))
-#define MC9328MXL_GPIOA_PUEN (*((volatile uint32_t *)((MC9328MXL_GPIOA_BASE) + 0x40)))
-
-#define MC9328MXL_GPIOB_DDIR (*((volatile uint32_t *)((MC9328MXL_GPIOB_BASE) + 0x00)))
-#define MC9328MXL_GPIOB_OCR1 (*((volatile uint32_t *)((MC9328MXL_GPIOB_BASE) + 0x04)))
-#define MC9328MXL_GPIOB_OCR2 (*((volatile uint32_t *)((MC9328MXL_GPIOB_BASE) + 0x08)))
-#define MC9328MXL_GPIOB_ICONFA1 (*((volatile uint32_t *)((MC9328MXL_GPIOB_BASE) + 0x0c)))
-#define MC9328MXL_GPIOB_ICONFA2 (*((volatile uint32_t *)((MC9328MXL_GPIOB_BASE) + 0x10)))
-#define MC9328MXL_GPIOB_ICONFB1 (*((volatile uint32_t *)((MC9328MXL_GPIOB_BASE) + 0x14)))
-#define MC9328MXL_GPIOB_ICONFB2 (*((volatile uint32_t *)((MC9328MXL_GPIOB_BASE) + 0x18)))
-#define MC9328MXL_GPIOB_DR (*((volatile uint32_t *)((MC9328MXL_GPIOB_BASE) + 0x1c)))
-#define MC9328MXL_GPIOB_GIUS (*((volatile uint32_t *)((MC9328MXL_GPIOB_BASE) + 0x20)))
-#define MC9328MXL_GPIOB_SSR (*((volatile uint32_t *)((MC9328MXL_GPIOB_BASE) + 0x24)))
-#define MC9328MXL_GPIOB_ICR1 (*((volatile uint32_t *)((MC9328MXL_GPIOB_BASE) + 0x28)))
-#define MC9328MXL_GPIOB_ICR2 (*((volatile uint32_t *)((MC9328MXL_GPIOB_BASE) + 0x2c)))
-#define MC9328MXL_GPIOB_IMR (*((volatile uint32_t *)((MC9328MXL_GPIOB_BASE) + 0x30)))
-#define MC9328MXL_GPIOB_ISR (*((volatile uint32_t *)((MC9328MXL_GPIOB_BASE) + 0x34)))
-#define MC9328MXL_GPIOB_GPR (*((volatile uint32_t *)((MC9328MXL_GPIOB_BASE) + 0x38)))
-#define MC9328MXL_GPIOB_SWR (*((volatile uint32_t *)((MC9328MXL_GPIOB_BASE) + 0x3c)))
-#define MC9328MXL_GPIOB_PUEN (*((volatile uint32_t *)((MC9328MXL_GPIOB_BASE) + 0x40)))
-
-#define MC9328MXL_GPIOC_DDIR (*((volatile uint32_t *)((MC9328MXL_GPIOC_BASE) + 0x00)))
-#define MC9328MXL_GPIOC_OCR1 (*((volatile uint32_t *)((MC9328MXL_GPIOC_BASE) + 0x04)))
-#define MC9328MXL_GPIOC_OCR2 (*((volatile uint32_t *)((MC9328MXL_GPIOC_BASE) + 0x08)))
-#define MC9328MXL_GPIOC_ICONFA1 (*((volatile uint32_t *)((MC9328MXL_GPIOC_BASE) + 0x0c)))
-#define MC9328MXL_GPIOC_ICONFA2 (*((volatile uint32_t *)((MC9328MXL_GPIOC_BASE) + 0x10)))
-#define MC9328MXL_GPIOC_ICONFB1 (*((volatile uint32_t *)((MC9328MXL_GPIOC_BASE) + 0x14)))
-#define MC9328MXL_GPIOC_ICONFB2 (*((volatile uint32_t *)((MC9328MXL_GPIOC_BASE) + 0x18)))
-#define MC9328MXL_GPIOC_DR (*((volatile uint32_t *)((MC9328MXL_GPIOC_BASE) + 0x1c)))
-#define MC9328MXL_GPIOC_GIUS (*((volatile uint32_t *)((MC9328MXL_GPIOC_BASE) + 0x20)))
-#define MC9328MXL_GPIOC_SSR (*((volatile uint32_t *)((MC9328MXL_GPIOC_BASE) + 0x24)))
-#define MC9328MXL_GPIOC_ICR1 (*((volatile uint32_t *)((MC9328MXL_GPIOC_BASE) + 0x28)))
-#define MC9328MXL_GPIOC_ICR2 (*((volatile uint32_t *)((MC9328MXL_GPIOC_BASE) + 0x2c)))
-#define MC9328MXL_GPIOC_IMR (*((volatile uint32_t *)((MC9328MXL_GPIOC_BASE) + 0x30)))
-#define MC9328MXL_GPIOC_ISR (*((volatile uint32_t *)((MC9328MXL_GPIOC_BASE) + 0x34)))
-#define MC9328MXL_GPIOC_GPR (*((volatile uint32_t *)((MC9328MXL_GPIOC_BASE) + 0x38)))
-#define MC9328MXL_GPIOC_SWR (*((volatile uint32_t *)((MC9328MXL_GPIOC_BASE) + 0x3c)))
-#define MC9328MXL_GPIOC_PUEN (*((volatile uint32_t *)((MC9328MXL_GPIOC_BASE) + 0x40)))
-
-#define MC9328MXL_GPIOD_DDIR (*((volatile uint32_t *)((MC9328MXL_GPIOD_BASE) + 0x00)))
-#define MC9328MXL_GPIOD_OCR1 (*((volatile uint32_t *)((MC9328MXL_GPIOD_BASE) + 0x04)))
-#define MC9328MXL_GPIOD_OCR2 (*((volatile uint32_t *)((MC9328MXL_GPIOD_BASE) + 0x08)))
-#define MC9328MXL_GPIOD_ICONFA1 (*((volatile uint32_t *)((MC9328MXL_GPIOD_BASE) + 0x0c)))
-#define MC9328MXL_GPIOD_ICONFA2 (*((volatile uint32_t *)((MC9328MXL_GPIOD_BASE) + 0x10)))
-#define MC9328MXL_GPIOD_ICONFB1 (*((volatile uint32_t *)((MC9328MXL_GPIOD_BASE) + 0x14)))
-#define MC9328MXL_GPIOD_ICONFB2 (*((volatile uint32_t *)((MC9328MXL_GPIOD_BASE) + 0x18)))
-#define MC9328MXL_GPIOD_DR (*((volatile uint32_t *)((MC9328MXL_GPIOD_BASE) + 0x1c)))
-#define MC9328MXL_GPIOD_GIUS (*((volatile uint32_t *)((MC9328MXL_GPIOD_BASE) + 0x20)))
-#define MC9328MXL_GPIOD_SSR (*((volatile uint32_t *)((MC9328MXL_GPIOD_BASE) + 0x24)))
-#define MC9328MXL_GPIOD_ICR1 (*((volatile uint32_t *)((MC9328MXL_GPIOD_BASE) + 0x28)))
-#define MC9328MXL_GPIOD_ICR2 (*((volatile uint32_t *)((MC9328MXL_GPIOD_BASE) + 0x2c)))
-#define MC9328MXL_GPIOD_IMR (*((volatile uint32_t *)((MC9328MXL_GPIOD_BASE) + 0x30)))
-#define MC9328MXL_GPIOD_ISR (*((volatile uint32_t *)((MC9328MXL_GPIOD_BASE) + 0x34)))
-#define MC9328MXL_GPIOD_GPR (*((volatile uint32_t *)((MC9328MXL_GPIOD_BASE) + 0x38)))
-#define MC9328MXL_GPIOD_SWR (*((volatile uint32_t *)((MC9328MXL_GPIOD_BASE) + 0x3c)))
-#define MC9328MXL_GPIOD_PUEN (*((volatile uint32_t *)((MC9328MXL_GPIOD_BASE) + 0x40)))
-
-#define MC9328MXL_AITC_INTCNTL (*((volatile uint32_t *)((MC9328MXL_AITC_BASE) + 0x00)))
-#define MC9328MXL_AITC_NIMASK (*((volatile uint32_t *)((MC9328MXL_AITC_BASE) + 0x04)))
-#define MC9328MXL_AITC_INTENNUM (*((volatile uint32_t *)((MC9328MXL_AITC_BASE)+ 0x08)))
-#define MC9328MXL_AITC_INTDISNUM (*((volatile uint32_t *)((MC9328MXL_AITC_BASE)+ 0x0c)))
-#define MC9328MXL_AITC_INTENABLEH (*((volatile uint32_t *)((MC9328MXL_AITC_BASE)+ 0x10)))
-#define MC9328MXL_AITC_INTENABLEL (*((volatile uint32_t *)((MC9328MXL_AITC_BASE)+ 0x14)))
-#define MC9328MXL_AITC_INTTYPEH (*((volatile uint32_t *)((MC9328MXL_AITC_BASE)+ 0x18)))
-#define MC9328MXL_AITC_INTTYPEL (*((volatile uint32_t *)((MC9328MXL_AITC_BASE)+ 0x1c)))
-#define MC9328MXL_AITC_NIPIR7 (*((volatile uint32_t *)((MC9328MXL_AITC_BASE)+ 0x20)))
-#define MC9328MXL_AITC_NIPRI6 (*((volatile uint32_t *)((MC9328MXL_AITC_BASE)+ 0x24)))
-#define MC9328MXL_AITC_NIPRI5 (*((volatile uint32_t *)((MC9328MXL_AITC_BASE)+ 0x28)))
-#define MC9328MXL_AITC_NIPRI4 (*((volatile uint32_t *)((MC9328MXL_AITC_BASE)+ 0x2c)))
-#define MC9328MXL_AITC_NIPRI3 (*((volatile uint32_t *)((MC9328MXL_AITC_BASE)+ 0x30)))
-#define MC9328MXL_AITC_NIPRI2 (*((volatile uint32_t *)((MC9328MXL_AITC_BASE)+ 0x34)))
-#define MC9328MXL_AITC_NIPRI1 (*((volatile uint32_t *)((MC9328MXL_AITC_BASE)+ 0x38)))
-#define MC9328MXL_AITC_NIPRI0 (*((volatile uint32_t *)((MC9328MXL_AITC_BASE)+ 0x3c)))
-#define MC9328MXL_AITC_NIVECSR (*((volatile uint32_t *)((MC9328MXL_AITC_BASE)+ 0x40)))
-#define MC9328MXL_AITC_FIVECSR (*((volatile uint32_t *)((MC9328MXL_AITC_BASE)+ 0x44)))
-#define MC9328MXL_AITC_INTSRCH (*((volatile uint32_t *)((MC9328MXL_AITC_BASE)+ 0x48)))
-#define MC9328MXL_AITC_INTSRCL (*((volatile uint32_t *)((MC9328MXL_AITC_BASE)+ 0x4c)))
-#define MC9328MXL_AITC_INTFRCH (*((volatile uint32_t *)((MC9328MXL_AITC_BASE)+ 0x50)))
-#define MC9328MXL_AITC_INTFRCL (*((volatile uint32_t *)((MC9328MXL_AITC_BASE)+ 0x54)))
-#define MC9328MXL_AITC_NIPNDH (*((volatile uint32_t *)((MC9328MXL_AITC_BASE)+ 0x58)))
-#define MC9328MXL_AITC_NIPNDL (*((volatile uint32_t *)((MC9328MXL_AITC_BASE)+ 0x5c)))
-#define MC9328MXL_AITC_FIPNDH (*((volatile uint32_t *)((MC9328MXL_AITC_BASE)+ 0x60)))
-#define MC9328MXL_AITC_FIPNDL (*((volatile uint32_t *)((MC9328MXL_AITC_BASE)+ 0x64)))
-
-#define MC9328MXL_INT_UART3_PFERR (0)
-#define MC9328MXL_INT_UART3_RTS (1)
-#define MC9328MXL_INT_UART3_DTR (2)
-#define MC9328MXL_INT_UART3_UARTC (3)
-#define MC9328MXL_INT_UART3_TX (4)
-#define MC9328MXL_INT_PEN_UP (5)
-#define MC9328MXL_INT_CSI (6)
-#define MC9328MXL_INT_MMA_MAC (7)
-#define MC9328MXL_INT_MMA (8)
-#define MC9328MXL_INT_COMP (9)
-#define MC9328MXL_INT_MSIRQ (10)
-#define MC9328MXL_INT_GPIO_PORTA (11)
-#define MC9328MXL_INT_GPIO_PORTB (12)
-#define MC9328MXL_INT_GPIO_PORTC (13)
-#define MC9328MXL_INT_LCDC (14)
-#define MC9328MXL_INT_SIM_IRQ (15)
-#define MC9328MXL_INT_SIM_DATA (16)
-#define MC9328MXL_INT_RTC (17)
-#define MC9328MXL_INT_RTC_SAM (18)
-#define MC9328MXL_INT_UART2_PFERR (19)
-#define MC9328MXL_INT_UART2_RTS (20)
-#define MC9328MXL_INT_UART2_DTR (21)
-#define MC9328MXL_INT_UART2_UARTC (22)
-#define MC9328MXL_INT_UART2_TX (23)
-#define MC9328MXL_INT_UART2_RX (24)
-#define MC9328MXL_INT_UART1_PFERR (25)
-#define MC9328MXL_INT_UART1_RTS (26)
-#define MC9328MXL_INT_UART1_DTR (27)
-#define MC9328MXL_INT_UART1_UARTC (28)
-#define MC9328MXL_INT_UART1_TX (29)
-#define MC9328MXL_INT_UART1_RX (30)
-#define MC9328MXL_INT_PEN_DATA (33)
-#define MC9328MXL_INT_PWM (34)
-#define MC9328MXL_INT_MMC_IRQ (35)
-#define MC9328MXL_INT_SSI2_TX (36)
-#define MC9328MXL_INT_SSI2_RX (37)
-#define MC9328MXL_INT_SSI2_ERR (38)
-#define MC9328MXL_INT_I2C (39)
-#define MC9328MXL_INT_SPI2 (40)
-#define MC9328MXL_INT_SPI1 (41)
-#define MC9328MXL_INT_SSI_TX (42)
-#define MC9328MXL_INT_SSI_TX_ERR (43)
-#define MC9328MXL_INT_SSI_RX (44)
-#define MC9328MXL_INT_SSI_RX_ERR (45)
-#define MC9328MXL_INT_TOUCH (46)
-#define MC9328MXL_INT_USBD0 (47)
-#define MC9328MXL_INT_USBD1 (48)
-#define MC9328MXL_INT_USBD2 (49)
-#define MC9328MXL_INT_USBD3 (50)
-#define MC9328MXL_INT_USBD4 (51)
-#define MC9328MXL_INT_USBD5 (52)
-#define MC9328MXL_INT_USBD6 (53)
-#define MC9328MXL_INT_UART3_RX (54)
-#define MC9328MXL_INT_BTSYS (55)
-#define MC9328MXL_INT_BTTIM (56)
-#define MC9328MXL_INT_BTWUI (57)
-#define MC9328MXL_INT_TIMER2 (58)
-#define MC9328MXL_INT_TIMER1 (59)
-#define MC9328MXL_INT_DMA_ERR (60)
-#define MC9328MXL_INT_DMA (61)
-#define MC9328MXL_INT_GPIO_PORTD (62)
-#define MC9328MXL_INT_WDT (63)
-
-#define MC9328MXL_AITC_INTCTL_NIAD BIT(20)
-#define MC9328MXL_AITC_INTCTL_FIAD BIT(19)
-#define MC9328MXL_AITC_NIMASK_MASK (0X1F)
-#define MC9328MXL_AITC_INTENNUM_MASK (0X3F)
-#define MC9328MXL_AITC_INTDISNUM_MASK (0X3F)
-#define MC9328MXL_AITC_NIPRIORITY(_int_, _pri_) \
- (((_pri_) & 0xf) << ((_int_) & 0x7) * 4)
-
-
-#endif /* __MC9328MXL_H__ */
diff --git a/c/src/lib/libbsp/arm/csb336/include/tm27.h b/c/src/lib/libbsp/arm/csb336/include/tm27.h
deleted file mode 100644
index 0dfa7bf628..0000000000
--- a/c/src/lib/libbsp/arm/csb336/include/tm27.h
+++ /dev/null
@@ -1 +0,0 @@
-#include <rtems/tm27-default.h>
diff --git a/c/src/lib/libbsp/arm/csb336/preinstall.am b/c/src/lib/libbsp/arm/csb336/preinstall.am
deleted file mode 100644
index dbdb788360..0000000000
--- a/c/src/lib/libbsp/arm/csb336/preinstall.am
+++ /dev/null
@@ -1,79 +0,0 @@
-## Automatically generated by ampolish3 - Do not edit
-
-if AMPOLISH3
-$(srcdir)/preinstall.am: Makefile.am
- $(AMPOLISH3) $(srcdir)/Makefile.am > $(srcdir)/preinstall.am
-endif
-
-PREINSTALL_DIRS =
-DISTCLEANFILES += $(PREINSTALL_DIRS)
-
-all-am: $(PREINSTALL_FILES)
-
-PREINSTALL_FILES =
-CLEANFILES = $(PREINSTALL_FILES)
-
-all-local: $(TMPINSTALL_FILES)
-
-TMPINSTALL_FILES =
-CLEANFILES += $(TMPINSTALL_FILES)
-
-$(PROJECT_LIB)/$(dirstamp):
- @$(MKDIR_P) $(PROJECT_LIB)
- @: > $(PROJECT_LIB)/$(dirstamp)
-PREINSTALL_DIRS += $(PROJECT_LIB)/$(dirstamp)
-
-$(PROJECT_INCLUDE)/$(dirstamp):
- @$(MKDIR_P) $(PROJECT_INCLUDE)
- @: > $(PROJECT_INCLUDE)/$(dirstamp)
-PREINSTALL_DIRS += $(PROJECT_INCLUDE)/$(dirstamp)
-
-$(PROJECT_INCLUDE)/bsp/$(dirstamp):
- @$(MKDIR_P) $(PROJECT_INCLUDE)/bsp
- @: > $(PROJECT_INCLUDE)/bsp/$(dirstamp)
-PREINSTALL_DIRS += $(PROJECT_INCLUDE)/bsp/$(dirstamp)
-
-$(PROJECT_LIB)/bsp_specs: bsp_specs $(PROJECT_LIB)/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_LIB)/bsp_specs
-PREINSTALL_FILES += $(PROJECT_LIB)/bsp_specs
-
-$(PROJECT_INCLUDE)/bsp.h: include/bsp.h $(PROJECT_INCLUDE)/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp.h
-
-$(PROJECT_INCLUDE)/tm27.h: include/tm27.h $(PROJECT_INCLUDE)/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/tm27.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/tm27.h
-
-$(PROJECT_INCLUDE)/mc9328mxl.h: include/mc9328mxl.h $(PROJECT_INCLUDE)/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/mc9328mxl.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/mc9328mxl.h
-
-$(PROJECT_INCLUDE)/bspopts.h: include/bspopts.h $(PROJECT_INCLUDE)/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bspopts.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/bspopts.h
-
-$(PROJECT_INCLUDE)/bsp/bootcard.h: ../../shared/include/bootcard.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/bootcard.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/bootcard.h
-
-$(PROJECT_LIB)/start.$(OBJEXT): start.$(OBJEXT) $(PROJECT_LIB)/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_LIB)/start.$(OBJEXT)
-TMPINSTALL_FILES += $(PROJECT_LIB)/start.$(OBJEXT)
-
-$(PROJECT_LIB)/linkcmds: startup/linkcmds $(PROJECT_LIB)/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_LIB)/linkcmds
-PREINSTALL_FILES += $(PROJECT_LIB)/linkcmds
-
-$(PROJECT_INCLUDE)/bsp/irq-generic.h: ../../shared/include/irq-generic.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/irq-generic.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/irq-generic.h
-
-$(PROJECT_INCLUDE)/bsp/irq-info.h: ../../shared/include/irq-info.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/irq-info.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/irq-info.h
-
-$(PROJECT_INCLUDE)/bsp/irq.h: include/bsp/irq.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/irq.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/irq.h
-
diff --git a/c/src/lib/libbsp/arm/csb336/bsp_specs b/c/src/lib/libbsp/arm/csb336/startup/bsp_specs
index 47dd31d46b..47dd31d46b 100644
--- a/c/src/lib/libbsp/arm/csb336/bsp_specs
+++ b/c/src/lib/libbsp/arm/csb336/startup/bsp_specs