summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/powerpc/gen5200/include
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/powerpc/gen5200/include
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/powerpc/gen5200/include')
-rw-r--r--c/src/lib/libbsp/powerpc/gen5200/include/ata.h338
-rw-r--r--c/src/lib/libbsp/powerpc/gen5200/include/bestcomm.h370
-rw-r--r--c/src/lib/libbsp/powerpc/gen5200/include/bestcomm_ops.h224
-rw-r--r--c/src/lib/libbsp/powerpc/gen5200/include/bsp.h266
-rw-r--r--c/src/lib/libbsp/powerpc/gen5200/include/i2c.h243
-rw-r--r--c/src/lib/libbsp/powerpc/gen5200/include/i2cdrv.h35
-rw-r--r--c/src/lib/libbsp/powerpc/gen5200/include/irq.h212
-rw-r--r--c/src/lib/libbsp/powerpc/gen5200/include/mpc5200.h1369
-rw-r--r--c/src/lib/libbsp/powerpc/gen5200/include/mscan-base.h284
-rw-r--r--c/src/lib/libbsp/powerpc/gen5200/include/tm27.h66
-rw-r--r--c/src/lib/libbsp/powerpc/gen5200/include/u-boot-config.h20
11 files changed, 0 insertions, 3427 deletions
diff --git a/c/src/lib/libbsp/powerpc/gen5200/include/ata.h b/c/src/lib/libbsp/powerpc/gen5200/include/ata.h
deleted file mode 100644
index 3d8ccfc49a..0000000000
--- a/c/src/lib/libbsp/powerpc/gen5200/include/ata.h
+++ /dev/null
@@ -1,338 +0,0 @@
-/*
- * Copyright (c) 2010-2013 embedded brains GmbH. All rights reserved.
- *
- * embedded brains GmbH
- * Dornierstr. 4
- * 82178 Puchheim
- * Germany
- * <rtems@embedded-brains.de>
- *
- * 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 GEN5200_ATA_H
-#define GEN5200_ATA_H
-
-#include "bestcomm.h"
-
-#include <assert.h>
-
-#include <rtems.h>
-#include <rtems/diskdevs.h>
-#include <rtems/bdbuf.h>
-
-#include <libchip/ata_internal.h>
-#include <libchip/ide_ctrl_io.h>
-#include <libchip/ide_ctrl_cfg.h>
-
-#include <libcpu/powerpc-utility.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-#define DCTRL_SRST BSP_BBIT8(5)
-#define DCTRL_NIEN BSP_BBIT8(6)
-
-#define DAST_BSY BSP_BBIT8(0)
-#define DAST_DRDY BSP_BBIT8(1)
-#define DAST_DRQ BSP_BBIT8(4)
-#define DAST_ERR BSP_BBIT8(7)
-
-#define DST_BSY BSP_BBIT16(0)
-#define DST_DRDY BSP_BBIT16(1)
-#define DST_DRQ BSP_BBIT16(4)
-#define DST_ERR BSP_BBIT16(7)
-
-#define DDMA_HUT BSP_BBIT8(1)
-#define DDMA_FR BSP_BBIT8(2)
-#define DDMA_FE BSP_BBIT8(3)
-#define DDMA_IE BSP_BBIT8(4)
-#define DDMA_UDMA BSP_BBIT8(5)
-#define DDMA_READ BSP_BBIT8(6)
-#define DDMA_WRITE BSP_BBIT8(7)
-
-#define ATA_SECTOR_SHIFT 9
-
-#define ATA_PER_TRANSFER_SECTOR_COUNT_MAX 256
-
-typedef union {
- struct {
- uint8_t alternate_status;
- uint8_t reserved_0[3];
- uint16_t data;
- uint8_t reserved_1[2];
- uint8_t error;
- uint8_t reserved_2[3];
- uint8_t sector_count;
- uint8_t reserved_3[3];
- uint8_t sector;
- uint8_t reserved_4[3];
- uint8_t cylinder_low;
- uint8_t reserved_5[3];
- uint8_t cylinder_high;
- uint8_t reserved_6[3];
- uint8_t head;
- uint8_t reserved_7[3];
- uint16_t status;
- uint8_t reserved_8[2];
- } read;
-
- struct {
- uint8_t control;
- uint8_t reserved_0[3];
- uint16_t data;
- uint8_t reserved_1[2];
- uint8_t feature;
- uint8_t reserved_2[3];
- uint8_t sector_count;
- uint8_t reserved_3[3];
- uint8_t sector;
- uint8_t reserved_4[3];
- uint8_t cylinder_low;
- uint8_t reserved_5[3];
- uint8_t cylinder_high;
- uint8_t reserved_6[3];
- uint8_t head;
- uint8_t reserved_7[3];
- uint8_t command;
- uint8_t dma_control;
- uint8_t reserved_8[2];
- } write;
-} ata_drive_registers;
-
-#define ATA ((volatile ata_drive_registers *) 0xf0003a5c)
-
-static inline bool ata_is_data_request(void)
-{
- return (ATA->read.alternate_status & DAST_DRQ) != 0;
-}
-
-static inline bool ata_is_drive_ready_for_selection(void)
-{
- return (ATA->read.alternate_status & (DAST_BSY | DAST_DRQ)) == 0;
-}
-
-static inline void ata_wait_400_nano_seconds(void)
-{
- ATA->read.alternate_status;
-}
-
-static inline void ata_wait_for_drive_ready(void)
-{
- while ((ATA->read.alternate_status & (DAST_BSY | DAST_DRQ | DAST_DRDY)) != DAST_DRDY) {
- /* Wait */
- }
-}
-
-static inline void ata_wait_for_not_busy(void)
-{
- ata_wait_400_nano_seconds();
-
- while ((ATA->read.alternate_status & DAST_BSY) != 0) {
- /* Wait */
- }
-}
-
-static inline bool ata_wait_for_data_request(void)
-{
- ata_wait_400_nano_seconds();
-
- uint8_t alternate_status;
- do {
- alternate_status = ATA->read.alternate_status;
- } while ((alternate_status & DAST_BSY) == DAST_BSY);
-
- return (alternate_status & (DAST_ERR | DAST_DRQ)) == DAST_DRQ;
-}
-
-static inline bool ata_check_status(void)
-{
- return (ATA->read.status & (DST_BSY | DST_ERR)) == 0;
-}
-
-static inline void ata_clear_interrupts(void)
-{
- ATA->read.status;
-}
-
-static inline uint8_t ata_read_or_write_sectors_command(bool read)
-{
- return read ? 0x20 : 0x30;
-}
-
-static inline rtems_blkdev_bnum ata_max_transfer_count(rtems_blkdev_bnum sector_count)
-{
- return sector_count > ATA_PER_TRANSFER_SECTOR_COUNT_MAX ?
- ATA_PER_TRANSFER_SECTOR_COUNT_MAX
- : sector_count;
-}
-
-static inline void ata_flush_sector(uint16_t *begin)
-{
- /* XXX: The dcbi operation does not work properly */
- rtems_cache_flush_multiple_data_lines(begin, ATA_SECTOR_SIZE);
-}
-
-void ata_reset_device(void);
-
-bool ata_set_transfer_mode(uint8_t mode);
-
-bool ata_execute_io_command(uint8_t command, uint32_t lba, uint32_t sector_count);
-
-static inline bool ata_execute_io_command_with_sg(uint8_t command, const rtems_blkdev_sg_buffer *sg)
-{
- uint32_t lba = sg->block;
- uint32_t sector_count = sg->length / ATA_SECTOR_SIZE;
- return ata_execute_io_command(command, lba, sector_count);
-}
-
-typedef struct {
- const rtems_blkdev_sg_buffer *sg;
-
- size_t sg_count;
-
- rtems_blkdev_bnum sg_buffer_offset_mask;
-
- int sg_index_shift;
-} ata_sg_context;
-
-static inline void ata_sg_reset(ata_sg_context *self, const rtems_blkdev_sg_buffer *sg, size_t sg_count)
-{
- self->sg = sg;
- self->sg_count = sg_count;
- uint32_t sectors_per_buffer = self->sg[0].length >> ATA_SECTOR_SHIFT;
- self->sg_buffer_offset_mask = sectors_per_buffer - 1;
- self->sg_index_shift = __builtin_ffs((int) sectors_per_buffer) - 1;
-}
-
-static inline void ata_sg_create_default(ata_sg_context *self)
-{
- ata_sg_reset(self, NULL, 0);
-}
-
-static inline void ata_sg_create(ata_sg_context *self, const rtems_blkdev_sg_buffer *sg, size_t sg_count)
-{
- ata_sg_reset(self, sg, sg_count);
-}
-
-static inline rtems_blkdev_bnum ata_sg_get_start_sector(const ata_sg_context *self)
-{
- return self->sg[0].block;
-}
-
-static inline rtems_blkdev_bnum ata_sg_get_sector_count(const ata_sg_context *self)
-{
- return (self->sg_buffer_offset_mask + 1) * self->sg_count;
-}
-
-static inline uint16_t *ata_sg_get_sector_data_begin(const ata_sg_context *self, rtems_blkdev_bnum relative_sector)
-{
- uint16_t *begin = (uint16_t *)(self->sg[relative_sector >> self->sg_index_shift].buffer);
-
- return begin + ((relative_sector & self->sg_buffer_offset_mask) << (ATA_SECTOR_SHIFT - 1));
-}
-
-static inline uint16_t *ata_sg_get_sector_data_end(const ata_sg_context *self, uint16_t *begin)
-{
- return begin + ATA_SECTOR_SIZE / 2;
-}
-
-typedef struct {
- rtems_id lock;
-
- bool card_present;
-} ata_driver;
-
-void ata_driver_create(ata_driver *self, const char *device_file_path, rtems_block_device_ioctl io_control);
-
-void ata_driver_destroy(ata_driver *self);
-
-static inline void ata_driver_lock(const ata_driver *self)
-{
- rtems_status_code sc = rtems_semaphore_obtain(self->lock, RTEMS_WAIT, RTEMS_NO_TIMEOUT);
- assert(sc == RTEMS_SUCCESSFUL);
-}
-
-static inline void ata_driver_unlock(const ata_driver *self)
-{
- rtems_status_code sc = rtems_semaphore_release(self->lock);
- assert(sc == RTEMS_SUCCESSFUL);
-}
-
-static inline bool ata_driver_is_card_present(const ata_driver *self)
-{
- return self->card_present;
-}
-
-static inline void ata_driver_io_request(
- ata_driver *self,
- rtems_blkdev_request *request,
- bool (*transfer)(ata_driver *, bool, rtems_blkdev_sg_buffer *, size_t)
-)
-{
- assert(request->req == RTEMS_BLKDEV_REQ_READ || request->req == RTEMS_BLKDEV_REQ_WRITE);
- bool read = request->req != RTEMS_BLKDEV_REQ_WRITE;
- rtems_blkdev_sg_buffer *sg = &request->bufs[0];
- uint32_t sg_count = request->bufnum;
- ata_driver_lock(self);
- bool ok = (*transfer)(self, read, sg, sg_count);
- ata_driver_unlock(self);
- rtems_status_code sc = ok ? RTEMS_SUCCESSFUL : RTEMS_IO_ERROR;
- rtems_blkdev_request_done(request, sc);
-}
-
-static inline int ata_driver_io_control(
- rtems_disk_device *dd,
- uint32_t cmd,
- void *arg,
- bool (*transfer)(ata_driver *, bool, rtems_blkdev_sg_buffer *, size_t)
-)
-{
- ata_driver *self = (ata_driver *) rtems_disk_get_driver_data(dd);
-
- switch (cmd) {
- case RTEMS_BLKIO_REQUEST:
- ata_driver_io_request(self, (rtems_blkdev_request *) arg, transfer);
- return 0;
- case RTEMS_BLKIO_CAPABILITIES:
- *(uint32_t *) arg = RTEMS_BLKDEV_CAP_MULTISECTOR_CONT;
- return 0;
- default:
- return rtems_blkdev_ioctl(dd, cmd, arg);
- }
-}
-
-int ata_driver_io_control_pio_polled(
- rtems_disk_device *dd,
- uint32_t cmd,
- void *arg
-);
-
-typedef struct {
- ata_driver super;
-
- bestcomm_task task;
-
- bool read;
-
- ata_sg_context sg_context;
-
- rtems_blkdev_bnum transfer_current;
-
- rtems_blkdev_bnum transfer_end;
-} ata_driver_dma_pio_single;
-
-void ata_driver_dma_pio_single_create(
- ata_driver_dma_pio_single *self,
- const char *device_file_path,
- TaskId task_index
-);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif /* GEN5200_ATA_H */
diff --git a/c/src/lib/libbsp/powerpc/gen5200/include/bestcomm.h b/c/src/lib/libbsp/powerpc/gen5200/include/bestcomm.h
deleted file mode 100644
index 366465565a..0000000000
--- a/c/src/lib/libbsp/powerpc/gen5200/include/bestcomm.h
+++ /dev/null
@@ -1,370 +0,0 @@
-/*
- * Copyright (c) 2010-2013 embedded brains GmbH. All rights reserved.
- *
- * embedded brains GmbH
- * Dornierstr. 4
- * 82178 Puchheim
- * Germany
- * <rtems@embedded-brains.de>
- *
- * 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 GEN5200_BESTCOMM_H
-#define GEN5200_BESTCOMM_H
-
-#include "bestcomm_ops.h"
-
-#include <assert.h>
-
-#include <rtems.h>
-
-#include <bsp/mpc5200.h>
-#include <bsp/bestcomm/bestcomm_api.h>
-#include <bsp/bestcomm/bestcomm_glue.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-/**
- * @defgroup BestComm BestComm Support
- *
- * @ingroup BestCommm
- *
- * @brief BestComm support.
- *
- * @{
- */
-
-typedef struct {
- uint32_t *tdt_begin;
- uint32_t *tdt_last;
- volatile uint32_t (*var_table)[32];
- uint32_t fdt_and_pragmas;
- uint32_t reserved_0;
- uint32_t reserved_1;
- uint32_t *context_begin;
- uint32_t reserved_2;
-} bestcomm_task_entry;
-
-#define BESTCOMM_TASK_ENTRY_TABLE ((volatile bestcomm_task_entry *) 0xf0008000)
-
-#define BESTCOMM_IRQ_EVENT RTEMS_EVENT_13
-
-typedef struct {
- int task_index;
- rtems_id event_task_id;
-} bestcomm_irq;
-
-void bestcomm_irq_create(bestcomm_irq *self, int task_index);
-
-void bestcomm_irq_destroy(const bestcomm_irq *self);
-
-static inline void bestcomm_irq_enable(const bestcomm_irq *self)
-{
- bestcomm_glue_irq_enable(self->task_index);
-}
-
-static inline void bestcomm_irq_disable(const bestcomm_irq *self)
-{
- bestcomm_glue_irq_disable(self->task_index);
-}
-
-static inline void bestcomm_irq_clear(const bestcomm_irq *self)
-{
- SDMA_CLEAR_IEVENT(&mpc5200.sdma.IntPend, self->task_index);
-}
-
-static inline int bestcomm_irq_get_task_index(const bestcomm_irq *self)
-{
- return self->task_index;
-}
-
-static inline rtems_id bestcomm_irq_get_event_task_id(const bestcomm_irq *self)
-{
- return self->event_task_id;
-}
-
-static inline void bestcomm_irq_set_event_task_id(bestcomm_irq *self, rtems_id id)
-{
- self->event_task_id = id;
-}
-
-static inline void bestcomm_irq_wakeup_event_task(const bestcomm_irq *self)
-{
- rtems_status_code sc = rtems_event_send(self->event_task_id, BESTCOMM_IRQ_EVENT);
- assert(sc == RTEMS_SUCCESSFUL);
-}
-
-static inline void bestcomm_irq_wait(const bestcomm_irq *self)
-{
- rtems_event_set events;
- rtems_status_code sc = rtems_event_receive(
- BESTCOMM_IRQ_EVENT,
- RTEMS_EVENT_ALL | RTEMS_WAIT,
- RTEMS_NO_TIMEOUT,
- &events
- );
- assert(sc == RTEMS_SUCCESSFUL);
- assert(events == BESTCOMM_IRQ_EVENT);
-}
-
-static inline bool bestcomm_irq_peek(const bestcomm_irq *self)
-{
- rtems_event_set events;
- rtems_status_code sc = rtems_event_receive(0, 0, 0, &events);
- assert(sc == RTEMS_SUCCESSFUL);
-
- return (events & BESTCOMM_IRQ_EVENT) != 0;
-}
-
-typedef struct {
- volatile uint16_t *task_control_register;
-
- volatile uint32_t (*variable_table)[32];
-
- TaskId task_index;
-
- bestcomm_irq irq;
-
- uint32_t *tdt_begin;
-
- size_t tdt_opcode_count;
-} bestcomm_task;
-
-void bestcomm_task_create(bestcomm_task *self, TaskId task_index);
-
-void bestcomm_task_create_and_load(
- bestcomm_task *self,
- TaskId task_index,
- const uint32_t *tdt_source_begin,
- size_t tdt_size
-);
-
-void bestcomm_task_destroy(bestcomm_task *self);
-
-void bestcomm_task_load(bestcomm_task *self, const uint32_t *tdt_source_begin, size_t tdt_size);
-
-static inline void bestcomm_task_set_priority(bestcomm_task *self, int priority)
-{
- /* Allow higher priority initiator to block current initiator */
- mpc5200.sdma.ipr[self->task_index] = SDMA_IPR_PRIOR(priority);
-}
-
-static inline void bestcomm_task_irq_enable(const bestcomm_task *self)
-{
- bestcomm_irq_enable(&self->irq);
-}
-
-static inline void bestcomm_task_irq_disable(const bestcomm_task *self)
-{
- bestcomm_irq_disable(&self->irq);
-}
-
-static inline void bestcomm_task_irq_clear(const bestcomm_task *self)
-{
- bestcomm_irq_clear(&self->irq);
-}
-
-static inline rtems_id bestcomm_task_get_event_task_id(const bestcomm_task *self)
-{
- return bestcomm_irq_get_event_task_id(&self->irq);
-}
-
-static inline void bestcomm_task_set_event_task_id(bestcomm_task *self, rtems_id id)
-{
- bestcomm_irq_set_event_task_id(&self->irq, id);
-}
-
-static inline void bestcomm_task_associate_with_current_task(bestcomm_task *self)
-{
- bestcomm_task_set_event_task_id(self, rtems_task_self());
-}
-
-static inline void bestcomm_task_start(const bestcomm_task *self)
-{
- *self->task_control_register = SDMA_TCR_EN | SDMA_TCR_HIGH_EN;
-}
-
-static inline void bestcomm_task_start_with_autostart(const bestcomm_task *self)
-{
- *self->task_control_register = (uint16_t)
- (SDMA_TCR_EN | SDMA_TCR_HIGH_EN | SDMA_TCR_AUTO_START | SDMA_TCR_AS(self->task_index));
-}
-
-static inline void bestcomm_task_stop(const bestcomm_task *self)
-{
- *self->task_control_register = 0;
-}
-
-static inline void bestcomm_task_wakeup_event_task(const bestcomm_task *self)
-{
- bestcomm_irq_wakeup_event_task(&self->irq);
-}
-
-static inline void bestcomm_task_wait(const bestcomm_task *self)
-{
- bestcomm_irq_wait(&self->irq);
-}
-
-static inline bool bestcomm_task_peek(const bestcomm_task *self)
-{
- return bestcomm_irq_peek(&self->irq);
-}
-
-static inline bool bestcomm_task_is_running(const bestcomm_task *self)
-{
- return (*self->task_control_register & SDMA_TCR_EN) != 0;
-}
-
-static inline uint32_t bestcomm_get_task_variable(const bestcomm_task *self, size_t index)
-{
- assert(index < VAR_COUNT);
- return (*self->variable_table)[index];
-}
-
-static inline volatile uint32_t *bestcomm_task_get_address_of_variable(const bestcomm_task *self, size_t index)
-{
- assert(index < VAR_COUNT);
- return &(*self->variable_table)[index];
-}
-
-static inline void bestcomm_task_set_variable(const bestcomm_task *self, size_t index, uint32_t value)
-{
- assert(index < VAR_COUNT);
- (*self->variable_table)[index] = value;
-}
-
-static inline uint32_t bestcomm_task_get_increment_and_condition(const bestcomm_task *self, size_t index)
-{
- assert(index < INC_COUNT);
- return (*self->variable_table)[INC(index)];
-}
-
-static inline void bestcomm_task_set_increment_and_condition_32(
- const bestcomm_task *self,
- size_t index,
- uint32_t inc_and_cond
-)
-{
- assert(index < INC_COUNT);
- (*self->variable_table)[INC(index)] = inc_and_cond;
-}
-
-static inline void bestcomm_task_set_increment_and_condition(
- const bestcomm_task *self,
- size_t index,
- int16_t inc,
- int cond
-)
-{
- bestcomm_task_set_increment_and_condition_32(self, index, INC_INIT(cond, inc));
-}
-
-static inline void bestcomm_task_set_increment(const bestcomm_task *self, size_t index, int16_t inc)
-{
- bestcomm_task_set_increment_and_condition_32(self, index, INC_INIT(0, inc));
-}
-
-void bestcomm_task_clear_variables(const bestcomm_task *self);
-
-static inline uint32_t bestcomm_task_get_opcode(const bestcomm_task *self, size_t index)
-{
- assert(index < self->tdt_opcode_count);
- return self->tdt_begin[index];
-}
-
-static inline void bestcomm_task_set_opcode(bestcomm_task *self, size_t index, uint32_t opcode)
-{
- assert(index < self->tdt_opcode_count);
- self->tdt_begin[index] = opcode;
-}
-
-static inline void bestcomm_task_set_initiator(const bestcomm_task *self, int initiator)
-{
- rtems_interrupt_level level;
- rtems_interrupt_disable(level);
- *self->task_control_register = BSP_BFLD16SET(*self->task_control_register, initiator, 3, 7);
- rtems_interrupt_enable(level);
-}
-
-static inline volatile bestcomm_task_entry *bestcomm_task_get_task_entry(const bestcomm_task *self)
-{
- return &BESTCOMM_TASK_ENTRY_TABLE[self->task_index];
-}
-
-static inline void bestcomm_task_set_pragma(const bestcomm_task *self, int bit_pos, bool enable)
-{
- volatile bestcomm_task_entry *entry = bestcomm_task_get_task_entry(self);
- uint32_t mask = BSP_BIT32(bit_pos);
- uint32_t bit = enable ? mask : 0;
- entry->fdt_and_pragmas = (entry->fdt_and_pragmas & ~mask) | bit;
-}
-
-static inline void bestcomm_task_enable_precise_increment(const bestcomm_task *self, bool enable)
-{
- bestcomm_task_set_pragma(self, SDMA_PRAGMA_BIT_PRECISE_INC, enable);
-}
-
-static inline void bestcomm_task_enable_error_reset(const bestcomm_task *self, bool enable)
-{
- bestcomm_task_set_pragma(self, SDMA_PRAGMA_BIT_RST_ERROR_NO, !enable);
-}
-
-static inline void bestcomm_task_enable_pack_data(const bestcomm_task *self, bool enable)
-{
- bestcomm_task_set_pragma(self, SDMA_PRAGMA_BIT_PACK, enable);
-}
-
-static inline void bestcomm_task_enable_integer_mode(const bestcomm_task *self, bool enable)
-{
- bestcomm_task_set_pragma(self, SDMA_PRAGMA_BIT_INTEGER, enable);
-}
-
-static inline void bestcomm_task_enable_speculative_read(const bestcomm_task *self, bool enable)
-{
- bestcomm_task_set_pragma(self, SDMA_PRAGMA_BIT_SPECREAD, enable);
-}
-
-static inline void bestcomm_task_enable_combined_write(const bestcomm_task *self, bool enable)
-{
- bestcomm_task_set_pragma(self, SDMA_PRAGMA_BIT_CW, enable);
-}
-
-static inline void bestcomm_task_enable_read_buffer(const bestcomm_task *self, bool enable)
-{
- bestcomm_task_set_pragma(self, SDMA_PRAGMA_BIT_RL, enable);
-}
-
-static inline volatile uint16_t *bestcomm_task_get_task_control_register(const bestcomm_task *self)
-{
- return self->task_control_register;
-}
-
-static inline int bestcomm_task_get_task_index(const bestcomm_task *self)
-{
- return self->task_index;
-}
-
-static inline void bestcomm_task_free_tdt(bestcomm_task *self)
-{
- bestcomm_free(self->tdt_begin);
- self->tdt_begin = NULL;
-}
-
-static inline void bestcomm_task_clear_pragmas(const bestcomm_task *self)
-{
- volatile bestcomm_task_entry *entry = bestcomm_task_get_task_entry(self);
- entry->fdt_and_pragmas &= ~0xffU;
-}
-
-/** @} */
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif /* GEN5200_BESTCOMM_H */
diff --git a/c/src/lib/libbsp/powerpc/gen5200/include/bestcomm_ops.h b/c/src/lib/libbsp/powerpc/gen5200/include/bestcomm_ops.h
deleted file mode 100644
index 2b74adf366..0000000000
--- a/c/src/lib/libbsp/powerpc/gen5200/include/bestcomm_ops.h
+++ /dev/null
@@ -1,224 +0,0 @@
-/*
- * Copyright (c) 2010-2013 embedded brains GmbH. All rights reserved.
- *
- * embedded brains GmbH
- * Dornierstr. 4
- * 82178 Puchheim
- * Germany
- * <rtems@embedded-brains.de>
- *
- * 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 BESTCOMM_OPS_H
-#define BESTCOMM_OPS_H
-
-#include <bsp/utility.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-/**
- * @defgroup BestCommOps BestComm Ops
- *
- * @ingroup BestComm
- *
- * @brief BestComm ops.
- *
- * @{
- */
-
-#define VAR(i) (i)
-#define VAR_COUNT 24
-#define INC(i) (24 + (i))
-#define INC_COUNT 8
-#define IDX(i) (48 + (i))
-#define IDX_COUNT 8
-
-#define COND_ONCE 0
-#define COND_LT 1
-#define COND_GT 2
-#define COND_NE 3
-#define COND_EQ 4
-#define COND_LE 5
-#define COND_GE 6
-#define COND_FOREVER 7
-
-#define INC_INIT(cond, val) \
- (BSP_FLD32(cond, 29, 31) \
- | BSP_FLD32((int16_t) (val), 0, 15))
-
-#define TERM_FIRST 0
-#define TERM_SECOND 1
-#define TERM_INIT 2
-#define TERM_UNUSED 3
-
-#define DEREF 1
-
-#define LCD_TERM(val) BSP_FLD32(val, 13, 14)
-
-#define LCD(deref0, iniidx0, deref1, iniidx1, term, termop, inc0, inc1) \
- (BSP_BIT32(31) \
- | BSP_FLD32(deref0, 29, 29) \
- | BSP_FLD32(iniidx0, 23, 28) \
- | BSP_FLD32(deref1, 21, 21) \
- | BSP_FLD32(iniidx1, 15, 20) \
- | LCD_TERM(term) \
- | BSP_FLD32(termop, 6, 11) \
- | BSP_FLD32(inc0, 3, 5) \
- | BSP_FLD32(inc1, 0, 2))
-
-#define LCDEXT(deref0, iniidx0, deref1, iniidx1, term, termop, inc0, inc1) \
- (BSP_BIT32(30) \
- | LCD(deref0, iniidx0, deref1, iniidx1, term, termop, inc0, inc1))
-
-#define LCDPLUS(deref0, iniidx0, deref1, iniidx1, term, termop, inc0, inc1) \
- (BSP_BIT32(22) \
- | LCD(deref0, iniidx0, deref1, iniidx1, term, termop, inc0, inc1))
-
-#define LCDINIT(val) \
- (BSP_BIT32(31) \
- | BSP_FLD32((val) >> 13, 15, 29) \
- | LCD_TERM(TERM_INIT) \
- | BSP_FLD32(val, 0, 12))
-
-#define MORE 0x4
-
-#define TFD 0x2
-
-#define INT 0x1
-
-#define DRD_FLAGS(val) BSP_FLD32(val, 26, 28)
-
-#define INIT_ALWAYS 0
-#define INIT_SCTMR_0 1
-#define INIT_SCTMR_1 2
-#define INIT_FEC_RX 3
-#define INIT_FEC_TX 4
-#define INIT_ATA_RX 5
-#define INIT_ATA_TX 6
-#define INIT_SCPCI_RX 7
-#define INIT_SCPCI_TX 8
-#define INIT_PSC3_RX 9
-#define INIT_PSC3_TX 10
-#define INIT_PSC2_RX 11
-#define INIT_PSC2_TX 12
-#define INIT_PSC1_RX 13
-#define INIT_PSC1_TX 14
-#define INIT_SCTMR_2 15
-#define INIT_SCLPC 16
-#define INIT_PSC5_RX 17
-#define INIT_PSC5_TX 18
-#define INIT_PSC4_RX 19
-#define INIT_PSC4_TX 20
-#define INIT_I2C2_RX 21
-#define INIT_I2C2_TX 22
-#define INIT_I2C1_RX 23
-#define INIT_I2C1_TX 24
-#define INIT_PSC6_RX 25
-#define INIT_PSC6_TX 26
-#define INIT_IRDA_RX 25
-#define INIT_IRDA_TX 26
-#define INIT_SCTMR_3 27
-#define INIT_SCTMR_4 28
-#define INIT_SCTMR_5 29
-#define INIT_SCTMR_6 30
-#define INIT_SCTMR_7 31
-
-#define DRD_INIT(val) BSP_FLD32(val, 21, 25)
-
-#define SZ_8 1
-#define SZ_16 2
-#define SZ_32 0
-#define SZ_DYN 3
-
-#define DRD_RS(val) BSP_FLD32(val, 19, 20)
-
-#define DRD_WS(val) BSP_FLD32(val, 17, 18)
-
-#define DEST_VAR(val) (val)
-#define DEST_IDX(val) (BSP_BIT32(5) | (val))
-#define DEST_DEREF_IDX(val) (BSP_BIT32(5) | BSP_BIT32(4) | (val))
-
-#define SRC_VAR(val) (val)
-#define SRC_INC(val) (BSP_BIT32(5) | (val))
-#define SRC_EU_RESULT (BSP_BIT32(5) | BSP_BIT32(4) | BSP_BIT32(1) | BSP_BIT32(0))
-#define SRC_DEREF_EU_RESULT (BSP_BIT32(6) | BSP_BIT32(4) | BSP_BIT32(1) | BSP_BIT32(0))
-#define SRC_IDX(val) (BSP_BIT32(6) | BSP_BIT32(5) | (val))
-#define SRC_DEREF_IDX(val) (BSP_BIT32(6) | BSP_BIT32(5) | BSP_BIT32(4) | (val))
-#define SRC_NONE (BSP_BIT32(5) | BSP_BIT32(4) | BSP_BIT32(3) | BSP_BIT32(2) | BSP_BIT32(1) | BSP_BIT32(0))
-
-#define DRD1A(flags, init, dest, ws, src, rs) \
- (DRD_FLAGS(flags) \
- | DRD_INIT(init) \
- | DRD_RS(rs) \
- | DRD_WS(ws) \
- | BSP_FLD32(dest, 10, 15) \
- | BSP_FLD32(src, 3, 9))
-
-#define DRD1AEURESULT(flags, init, dest, ws, rs) \
- (DRD1A(flags, init, rs, ws, dest, SRC_EU_RESULT) \
- | BSP_FLD32(1, 0, 3))
-
-#define FUNC_LOAD_ACC 0
-#define FUNC_UNLOAD_ACC 1
-#define FUNC_AND 2
-#define FUNC_OR 3
-#define FUNC_XOR 4
-#define FUNC_ANDN 5
-#define FUNC_NOT 6
-#define FUNC_ADD 7
-#define FUNC_SUB 8
-#define FUNC_LSH 9
-#define FUNC_RSH 10
-#define FUNC_CRC8 11
-#define FUNC_CRC16 12
-#define FUNC_CRC32 13
-#define FUNC_ENDIAN32 14
-#define FUNC_ENDIAN16 15
-
-#define DRD2A(flags, func) \
- (BSP_BIT32(30) | BSP_BIT32(29) \
- | DRD_FLAGS(flags) \
- | BSP_FLD32(func, 0, 3))
-
-#define DRD2A5(flags, init, func, ws, rs) \
- (DRD2A(flags, func) \
- | DRD_RS(rs) \
- | DRD_WS(ws) \
- | DRD_INIT(init))
-
-#define OP_VAR(val) (val)
-#define OP_EU_RESULT (BSP_BIT32(4) | BSP_BIT32(3) | BSP_BIT32(1) | BSP_BIT32(0))
-#define OP_NONE (BSP_BIT32(4) | BSP_BIT32(3) | BSP_BIT32(2) | BSP_BIT32(1) | BSP_BIT32(0))
-#define OP_IDX(val) (BSP_BIT32(5) | (val))
-#define OP_DEREF_IDX(val) (BSP_BIT32(5) | BSP_BIT32(4) | (val))
-
-#define DRD2B1(dest, op0, op1) \
- (BSP_FLD32(dest, 22, 27) \
- | BSP_FLD32(SRC_EU_RESULT, 14, 20) \
- | BSP_FLD32(3, 12, 13) \
- | BSP_FLD32(op0, 6, 11) \
- | BSP_FLD32(op1, 0, 5))
-
-#define DRD2B2(op0, op1) \
- (BSP_BIT32(29) \
- | BSP_FLD32(3, 26, 27) \
- | BSP_FLD32(op0, 20, 25) \
- | BSP_FLD32(op1, 14, 19) \
- | BSP_FLD32(0, 12, 13) \
- | BSP_FLD32(OP_NONE, 6, 11) \
- | BSP_FLD32(OP_NONE, 0, 5))
-
-#define NOP 0x1f8
-
-/** @} */
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif /* BESTCOMM_OPS_H */
diff --git a/c/src/lib/libbsp/powerpc/gen5200/include/bsp.h b/c/src/lib/libbsp/powerpc/gen5200/include/bsp.h
deleted file mode 100644
index 40ac1116c5..0000000000
--- a/c/src/lib/libbsp/powerpc/gen5200/include/bsp.h
+++ /dev/null
@@ -1,266 +0,0 @@
-/*===============================================================*\
-| Project: RTEMS generic MPC5200 BSP |
-+-----------------------------------------------------------------+
-| Partially based on the code references which are named below. |
-| Adaptions, modifications, enhancements and any recent parts of |
-| the code are: |
-| Copyright (c) 2005 |
-| Embedded Brains GmbH |
-| Obere Lagerstr. 30 |
-| D-82178 Puchheim |
-| Germany |
-| rtems@embedded-brains.de |
-+-----------------------------------------------------------------+
-| 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. |
-| |
-+-----------------------------------------------------------------+
-| this file contains board specific definitions |
-\*===============================================================*/
-
-#ifndef LIBBSP_POWERPC_GEN5200_BSP_H
-#define LIBBSP_POWERPC_GEN5200_BSP_H
-
-#include <bspopts.h>
-
-#include <libcpu/powerpc-utility.h>
-
-/*
- * Some symbols defined in the linker command file.
- */
-
-LINKER_SYMBOL(bsp_ram_start);
-LINKER_SYMBOL(bsp_ram_end);
-LINKER_SYMBOL(bsp_ram_size);
-
-LINKER_SYMBOL(bsp_rom_start);
-LINKER_SYMBOL(bsp_rom_end);
-LINKER_SYMBOL(bsp_rom_size);
-
-LINKER_SYMBOL(bsp_dpram_start);
-LINKER_SYMBOL(bsp_dpram_end);
-LINKER_SYMBOL(bsp_dpram_size);
-
-LINKER_SYMBOL(bsp_section_text_start);
-LINKER_SYMBOL(bsp_section_text_end);
-LINKER_SYMBOL(bsp_section_text_size);
-
-LINKER_SYMBOL(bsp_section_data_start);
-LINKER_SYMBOL(bsp_section_data_end);
-LINKER_SYMBOL(bsp_section_data_size);
-
-LINKER_SYMBOL(bsp_section_bss_start);
-LINKER_SYMBOL(bsp_section_bss_end);
-LINKER_SYMBOL(bsp_section_bss_size);
-
-LINKER_SYMBOL(bsp_interrupt_stack_start);
-LINKER_SYMBOL(bsp_interrupt_stack_end);
-LINKER_SYMBOL(bsp_interrupt_stack_size);
-
-LINKER_SYMBOL(bsp_work_area_start);
-
-LINKER_SYMBOL(MBAR);
-
-/* Provide legacy defines */
-
-#ifdef MPC5200_BOARD_PM520_ZE30
-#define PM520_ZE30
-#endif
-
-#ifdef MPC5200_BOARD_PM520_CR825
-#define PM520_CR825
-#endif
-
-#ifdef MPC5200_BOARD_ICECUBE
-#define icecube
-#endif
-
-#ifdef MPC5200_BOARD_BRS5L
-#define BRS5L
-#endif
-
-/*
- * distinguish board characteristics
- */
-/*
- * for PM520 mdule on a ZE30 carrier
- */
-#if defined(MPC5200_BOARD_PM520_ZE30)
-#define PM520
-#endif
-/*
- * for PM520 mdule on a CR825 carrier
- */
-#if defined(MPC5200_BOARD_PM520_CR825)
-#define PM520
-#endif
-
-#if !defined(HAS_UBOOT)
- /* we need the low level initialization in start.S*/
- #define NEED_LOW_LEVEL_INIT
-#endif
-
-#if defined(MPC5200_BOARD_BRS5L)
-/*
- * IMD Custom Board BRS5L
- */
-
-#define HAS_NVRAM_93CXX
-
-#elif defined(MPC5200_BOARD_BRS6L)
- #define MPC5200_BRS6L_FPGA_BEGIN 0x800000
- #define MPC5200_BRS6L_FPGA_SIZE (64 * 1024)
- #define MPC5200_BRS6L_FPGA_END \
- (MPC5200_BRS6L_FPGA_BEGIN + MPC5200_BRS6L_FPGA_SIZE)
-
- #define MPC5200_BRS6L_MRAM_BEGIN 0xff000000
- #define MPC5200_BRS6L_MRAM_SIZE (4 * 1024 * 1024)
- #define MPC5200_BRS6L_MRAM_END \
- (MPC5200_BRS6L_MRAM_BEGIN + MPC5200_BRS6L_MRAM_SIZE)
-#elif defined (PM520)
-
-/* Nothing special */
-
-#elif defined (MPC5200_BOARD_ICECUBE)
-/*
- * Codename: IceCube
- * Compatible Boards:
- * Freescape MPC5200LITE
- * Embedded Planet EP5200
- */
-
-#elif defined (MPC5200_BOARD_DP2)
-
-/* Nothing special */
-
-#else
-#error "board type not defined"
-#endif
-
-#ifndef ASM
-
-#include <rtems.h>
-#include <bsp/i2cdrv.h>
-#include <bsp/irq.h>
-#include <bsp/vectors.h>
-#include <bsp/u-boot.h>
-#include <bsp/default-initial-extension.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- * Network driver configuration
- */
-struct rtems_bsdnet_ifconfig;
-extern int rtems_mpc5200_fec_driver_attach_detach (struct rtems_bsdnet_ifconfig *config, int attaching);
-#define RTEMS_BSP_NETWORK_DRIVER_NAME "eth1"
-#define RTEMS_BSP_NETWORK_DRIVER_ATTACH rtems_mpc5200_fec_driver_attach_detach
-
-/* miscellaneous stuff assumed to exist */
-
-/*
- * We need to decide how much memory will be non-cacheable. This
- * will mainly be memory that will be used in DMA (network and serial
- * buffers).
- */
-/*
-#define NOCACHE_MEM_SIZE 512*1024
-*/
-
-/*
- * Device Driver Table Entries
- */
-
-#ifdef HAS_NVRAM_93CXX
-#define NVRAM_DRIVER_TABLE_ENTRY \
- { nvram_driver_initialize, nvram_driver_open, nvram_driver_close, \
- nvram_driver_read, nvram_driver_write, NULL }
-#endif
-
-/*
- * indicate, that BSP has IDE driver
- */
-#define RTEMS_BSP_HAS_IDE_DRIVER
-
-/* functions */
-
-/* #define SHOW_MORE_INIT_SETTINGS 1 */
-
-/* ata modes */
-/* #undef ATA_USE_INT */
-#define ATA_USE_INT
-
-/* clock settings */
-#if defined(HAS_UBOOT)
-#define IPB_CLOCK (bsp_uboot_board_info.bi_ipbfreq)
-#define XLB_CLOCK (bsp_uboot_board_info.bi_busfreq)
-#define G2_CLOCK (bsp_uboot_board_info.bi_intfreq)
-#elif defined(MPC5200_BOARD_BRS5L) || defined(MPC5200_BOARD_BRS6L)
-#define IPB_CLOCK 66000000 /* 66 MHz */
-#define XLB_CLOCK 132000000 /* 132 MHz */
-#define G2_CLOCK 396000000 /* 396 MHz */
-#else
-#define IPB_CLOCK 33000000 /* 33 MHz */
-#define XLB_CLOCK 66000000 /* 66 MHz */
-#define G2_CLOCK 231000000 /* 231 MHz */
-#endif
-
-#if defined(HAS_UBOOT)
-#define GEN5200_CONSOLE_BAUD (bsp_uboot_board_info.bi_baudrate)
-#else
-#define GEN5200_CONSOLE_BAUD 115200
-#endif
-
-/*
- * Convert decrement value to tenths of microsecnds (used by
- * shared timer driver).
- *
- * + CPU has a XLB_CLOCK bus,
- * + There are 4 bus cycles per click
- * + We return value in 1/10 microsecond units.
- * Modified following equation to integer equation to remove
- * floating point math.
- * (int) ((float)(_value) / ((XLB_CLOCK/1000000 * 0.1) / 4.0))
- */
-
-#define BSP_Convert_decrementer( _value ) \
- (int) (((_value) * 4000) / (XLB_CLOCK/10000))
-
-/* slicetimer settings */
-#define USE_SLICETIMER_0 TRUE
-#define USE_SLICETIMER_1 FALSE
-
-void *bsp_idle_thread( uintptr_t ignored );
-#define BSP_IDLE_TASK_BODY bsp_idle_thread
-
-/* BSP specific IRQ Benchmarking support */
-void BSP_IRQ_Benchmarking_Reset(void);
-void BSP_IRQ_Benchmarking_Report(void);
-
-#if defined(HAS_UBOOT)
- /* Routine to obtain U-Boot environment variables */
- const char *bsp_uboot_getenv(
- const char *name
- );
-#endif
-
-void cpu_init(void);
-
-int mpc5200_eth_mii_read(
- int phyAddr,
- void *arg,
- unsigned regAddr,
- uint32_t *retVal
-);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* ASM */
-
-#endif /* GEN5200 */
diff --git a/c/src/lib/libbsp/powerpc/gen5200/include/i2c.h b/c/src/lib/libbsp/powerpc/gen5200/include/i2c.h
deleted file mode 100644
index e5d7d472dd..0000000000
--- a/c/src/lib/libbsp/powerpc/gen5200/include/i2c.h
+++ /dev/null
@@ -1,243 +0,0 @@
-/*
- * Generic I2C bus interface for RTEMS
- *
- * Copyright (C) 2000 OKTET Ltd., St.-Petersburg, Russia
- * Author: Victor V. Vengerov <vvv@oktet.ru>
- *
- * 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 __RTEMS__I2C_H__
-#define __RTEMS__I2C_H__
-
-#include <rtems.h>
-#include <bsp.h>
-/* This header file define the generic interface to i2c buses available in
- * system. This interface may be used by user applications or i2c-device
- * drivers (like RTC, NVRAM, etc).
- *
- * Functions i2c_initialize and i2c_transfer declared in this header usually
- * implemented in particular board support package. Usually this
- * implementation is a simple wrapper or multiplexor to I2C controller
- * driver which is available in system. It may be generic "software
- * controller" I2C driver which control SDA and SCL signals directly (if SDA
- * and SCL is general-purpose I/O pins), or driver for hardware I2C
- * controller (standalone or integrated with processors: MBus controller in
- * ColdFire processors, I2C controller in PowerQUICC and so on).
- *
- * i2c_transfer is a very generic low-level function. Higher-level function
- * i2c_write, i2c_read, i2c_wrrd, i2c_wbrd is defined here too.
- */
-
-/* I2C Bus Number type */
-typedef uint32_t i2c_bus_number;
-
-/* I2C device address */
-typedef uint16_t i2c_address;
-
-/* I2C error codes generated during message transfer */
-typedef enum i2c_message_status {
- I2C_SUCCESSFUL = 0,
- I2C_TIMEOUT,
- I2C_NO_DEVICE,
- I2C_ARBITRATION_LOST,
- I2C_NO_ACKNOWLEDGE,
- I2C_NO_DATA,
- I2C_RESOURCE_NOT_AVAILABLE
-} i2c_message_status;
-
-/* I2C Message */
-typedef struct i2c_message {
- i2c_address addr; /* I2C slave device address */
- uint16_t flags; /* message flags (see below) */
- i2c_message_status status; /* message transfer status code */
- uint16_t len; /* Number of bytes to read or write */
- uint8_t *buf; /* pointer to data array */
-} i2c_message;
-
-/* I2C message flag */
-#define I2C_MSG_ADDR_10 (0x01) /* 10-bit address */
-#define I2C_MSG_WR (0x02) /* transfer direction for this message
- from master to slave */
-#define I2C_MSG_ERRSKIP (0x04) /* Skip message if last transfered message
- is failed */
-/* Type for function which is called when transfer over I2C bus is finished */
-typedef void (*i2c_transfer_done) (void * arg);
-
-/* i2c_initialize --
- * I2C driver initialization. This function usually called on device
- * driver initialization state, before initialization task. All I2C
- * buses are initialized; reasonable slow data transfer rate is
- * selected for each bus.
- *
- * PARAMETERS:
- * major - I2C device major number
- * minor - I2C device minor number
- * arg - RTEMS driver initialization argument
- *
- * RETURNS:
- * RTEMS status code
- */
-rtems_device_driver
-i2c_initialize(rtems_device_major_number major,
- rtems_device_minor_number minor,
- void *arg);
-
-/* i2c_select_clock_rate --
- * select I2C bus clock rate for specified bus. Some bus controller do not
- * allow to select arbitrary clock rate; in this case nearest possible
- * slower clock rate is selected.
- *
- * PARAMETERS:
- * bus - I2C bus number
- * bps - data transfer rate for this bytes in bits per second
- *
- * RETURNS:
- * RTEMS_SUCCESSFUL, if operation performed successfully,
- * RTEMS_INVALID_NUMBER, if wrong bus number is specified,
- * RTEMS_UNSATISFIED, if bus do not support data transfer rate selection
- * or specified data transfer rate could not be used.
- */
-rtems_status_code
-i2c_select_clock_rate(i2c_bus_number bus, int bps);
-
-/* i2c_transfer --
- * Initiate multiple-messages transfer over specified I2C bus or
- * put request into queue if bus or some other resource is busy. (This
- * is non-blocking function).
- *
- * PARAMETERS:
- * bus - I2C bus number
- * nmsg - number of messages
- * msg - pointer to messages array
- * done - function which is called when transfer is finished
- * done_arg_ptr - arbitrary argument ptr passed to done funciton
- *
- * RETURNS:
- * RTEMS_SUCCESSFUL if transfer initiated successfully, or error
- * code if something failed.
- */
-rtems_status_code
-i2c_transfer(i2c_bus_number bus, int nmsg, i2c_message *msg,
- i2c_transfer_done done, void *done_arg);
-
-/* i2c_transfer_wait --
- * Initiate I2C bus transfer and block until this transfer will be
- * finished. This function wait the semaphore if system in
- * SYSTEM_STATE_UP state, or poll done flag in other states.
- *
- * PARAMETERS:
- * bus - I2C bus number
- * msg - pointer to transfer messages array
- * nmsg - number of messages in transfer
- *
- * RETURNS:
- * I2C_SUCCESSFUL, if tranfer finished successfully,
- * I2C_RESOURCE_NOT_AVAILABLE, if semaphore operations has failed,
- * value of status field of first error-finished message in transfer,
- * if something wrong.
- */
-i2c_message_status
-i2c_transfer_wait(i2c_bus_number bus, i2c_message *msg, int nmsg);
-
-/* i2c_poll --
- * Poll I2C bus controller for events and hanle it. This function is
- * used when I2C driver operates in poll-driven mode.
- *
- * PARAMETERS:
- * bus - bus number to be polled
- *
- * RETURNS:
- * none
- */
-void
-i2c_poll(i2c_bus_number bus);
-
-/* i2c_write --
- * Send single message over specified I2C bus to addressed device and
- * wait while transfer is finished.
- *
- * PARAMETERS:
- * bus - I2C bus number
- * addr - address of I2C device
- * buf - data to be sent to device
- * size - data buffer size
- *
- * RETURNS:
- * transfer status
- */
-i2c_message_status
-i2c_write(i2c_bus_number bus, i2c_address addr, void *buf, int size);
-
-/* i2c_wrbyte --
- * Send single one-byte long message over specified I2C bus to
- * addressed device and wait while transfer is finished.
- *
- * PARAMETERS:
- * bus - I2C bus number
- * addr - address of I2C device
- * cmd - byte message to be sent to device
- *
- * RETURNS:
- * transfer status
- */
-i2c_message_status
-i2c_wrbyte(i2c_bus_number bus, i2c_address addr, uint8_t cmd);
-
-/* i2c_read --
- * receive single message over specified I2C bus from addressed device.
- * This call will wait while transfer is finished.
- *
- * PARAMETERS:
- * bus - I2C bus number
- * addr - address of I2C device
- * buf - buffer for received message
- * size - receive buffer size
- *
- * RETURNS:
- * transfer status
- */
-i2c_message_status
-i2c_read(i2c_bus_number bus, i2c_address addr, void *buf, int size);
-
-/* i2c_wrrd --
- * Send message over I2C bus to specified device and receive message
- * from the same device during single transfer.
- *
- * PARAMETERS:
- * bus - I2C bus number
- * addr - address of I2C device
- * bufw - data to be sent to device
- * sizew - send data buffer size
- * bufr - buffer for received message
- * sizer - receive buffer size
- *
- * RETURNS:
- * transfer status
- */
-i2c_message_status
-i2c_wrrd(i2c_bus_number bus, i2c_address addr, void *bufw, int sizew,
- void *bufr, int sizer);
-
-/* i2c_wbrd --
- * Send one-byte message over I2C bus to specified device and receive
- * message from the same device during single transfer.
- *
- * PARAMETERS:
- * bus - I2C bus number
- * addr - address of I2C device
- * cmd - one-byte message to be sent over I2C bus
- * bufr - buffer for received message
- * sizer - receive buffer size
- *
- * RETURNS:
- * transfer status
- */
-i2c_message_status
-i2c_wbrd(i2c_bus_number bus, i2c_address addr, uint8_t cmd,
- void *bufr, int sizer);
-
-#endif
diff --git a/c/src/lib/libbsp/powerpc/gen5200/include/i2cdrv.h b/c/src/lib/libbsp/powerpc/gen5200/include/i2cdrv.h
deleted file mode 100644
index 4b4a1ec141..0000000000
--- a/c/src/lib/libbsp/powerpc/gen5200/include/i2cdrv.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * i2cdrv.h -- I2C bus driver prototype and definitions
- *
- * Copyright (C) 2000 OKTET Ltd., St.-Petersburg, Russia
- * Author: Victor V. Vengerov <vvv@oktet.ru>
- *
- * 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 __I2CDRV_H__
-#define __I2CDRV_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define I2C_DRIVER_TABLE_ENTRY \
- { i2cdrv_initialize, NULL, NULL, NULL, NULL, NULL }
-
-/* i2cdrv_initialize --
- * I2C driver initialization (rtems I/O driver primitive)
- */
-rtems_device_driver
-i2cdrv_initialize(rtems_device_major_number major,
- rtems_device_minor_number minor,
- void *arg);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __I2CDRV_H__ */
diff --git a/c/src/lib/libbsp/powerpc/gen5200/include/irq.h b/c/src/lib/libbsp/powerpc/gen5200/include/irq.h
deleted file mode 100644
index 5a0b3bd29e..0000000000
--- a/c/src/lib/libbsp/powerpc/gen5200/include/irq.h
+++ /dev/null
@@ -1,212 +0,0 @@
-/*===============================================================*\
-| Project: RTEMS generic MPC5200 BSP |
-+-----------------------------------------------------------------+
-| Partially based on the code references which are named below. |
-| Adaptions, modifications, enhancements and any recent parts of |
-| the code are: |
-| Copyright (c) 2005, 2010 |
-| Embedded Brains GmbH |
-| Obere Lagerstr. 30 |
-| D-82178 Puchheim |
-| Germany |
-| rtems@embedded-brains.de |
-+-----------------------------------------------------------------+
-| 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. |
-| |
-+-----------------------------------------------------------------+
-| this file contains declarations for the irq controller handler |
-\*===============================================================*/
-/***********************************************************************/
-/* */
-/* Module: irq.h */
-/* Date: 07/17/2003 */
-/* Purpose: RTEMS MPC5x00 CPU interrupt header file */
-/* */
-/*---------------------------------------------------------------------*/
-/* */
-/* Description: This include file describe the data structure and */
-/* the functions implemented by rtems to write */
-/* interrupt handlers. */
-/* */
-/*---------------------------------------------------------------------*/
-/* */
-/* Code */
-/* References: MPC8260ads CPU interrupt header file */
-/* Module: irq.h */
-/* Project: RTEMS 4.6.0pre1 / MCF8260ads BSP */
-/* Version 1.1 */
-/* Date: 10/10/2002 */
-/* */
-/* Author(s) / Copyright(s): */
-/* */
-/* Copyright (C) 1999 valette@crf.canon.fr */
-/* */
-/* This code is heavilly inspired by the public specification of */
-/* STREAM V2 that can be found at: */
-/* */
-/* <http://www.chorus.com/Documentation/index.html> by following */
-/* the STREAM API Specification Document link. */
-/* */
-/* Modified for mpc8260 by Andy Dachs <a.dachs@sstl.co.uk> */
-/* Surrey Satellite Technology Limited */
-/* The interrupt handling on the mpc8260 seems quite different from */
-/* the 860 (I don't know the 860 well). Although some interrupts */
-/* are routed via the CPM irq and some are direct to the SIU they */
-/* all appear logically the same.Therefore I removed the distinction */
-/* between SIU and CPM interrupts. */
-/* */
-/* 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. */
-/* */
-/*---------------------------------------------------------------------*/
-/* */
-/* Partially based on the code references which are named above. */
-/* Adaptions, modifications, enhancements and any recent parts of */
-/* the code are under the right of */
-/* */
-/* IPR Engineering, Dachauer Straße 38, D-80335 München */
-/* Copyright(C) 2003 */
-/* */
-/*---------------------------------------------------------------------*/
-/* */
-/* IPR Engineering makes no representation or warranties with */
-/* respect to the performance of this computer program, and */
-/* specifically disclaims any responsibility for any damages, */
-/* special or consequential, connected with the use of this program. */
-/* */
-/*---------------------------------------------------------------------*/
-/* */
-/* Version history: 1.0 */
-/* */
-/***********************************************************************/
-
-#ifndef LIBBSP_POWERPC_GEN5200_IRQ_H
-#define LIBBSP_POWERPC_GEN5200_IRQ_H
-
-#define PMCE_CE_SHADOW (1U << (31 - 31))
-#define PMCE_CSE_STICKY (1U << (31 - 21))
-#define PMCE_MSE_STICKY (1U << (31 - 10))
-#define PMCE_PSE_STICKY (1U << (31 - 2))
-#define PMCE_CSE_SOURCE(_pmce) (((_pmce) >> 8) & 0x3U)
-#define PMCE_MSE_SOURCE(_pmce) (((_pmce) >> 16) & 0x1fU)
-#define PMCE_PSE_SOURCE(_pmce) (((_pmce) >> 24) & 0x1fU)
-
-/*
- * Peripheral IRQ handlers related definitions
- */
-#define BSP_PER_IRQ_NUMBER 22
-#define BSP_PER_IRQ_LOWEST_OFFSET 0
-#define BSP_PER_IRQ_MAX_OFFSET \
- (BSP_PER_IRQ_LOWEST_OFFSET + BSP_PER_IRQ_NUMBER - 1) /* 21 */
-/*
- * Main IRQ handlers related definitions
- */
-#define BSP_MAIN_IRQ_NUMBER 17
-#define BSP_MAIN_IRQ_LOWEST_OFFSET BSP_PER_IRQ_MAX_OFFSET + 1 /* 22 */
-#define BSP_MAIN_IRQ_MAX_OFFSET \
- (BSP_MAIN_IRQ_LOWEST_OFFSET + BSP_MAIN_IRQ_NUMBER - 1) /* 38 */
-/*
- * Critical IRQ handlers related definitions
- */
-#define BSP_CRIT_IRQ_NUMBER 4
-#define BSP_CRIT_IRQ_LOWEST_OFFSET BSP_MAIN_IRQ_MAX_OFFSET + 1 /* 39 */
-#define BSP_CRIT_IRQ_MAX_OFFSET \
- (BSP_CRIT_IRQ_LOWEST_OFFSET + BSP_CRIT_IRQ_NUMBER - 1) /* 42 */
-/*
- * Summary of SIU interrupts
- */
-#define BSP_SIU_IRQ_NUMBER BSP_CRIT_IRQ_MAX_OFFSET + 1 /* 43 */
-#define BSP_SIU_IRQ_LOWEST_OFFSET BSP_PER_IRQ_LOWEST_OFFSET /* 0 */
-#define BSP_SIU_IRQ_MAX_OFFSET BSP_CRIT_IRQ_MAX_OFFSET /* 42 */
-/*
- * Processor IRQ handlers related definitions
- */
-#define BSP_PROCESSOR_IRQ_NUMBER 3
-#define BSP_PROCESSOR_IRQ_LOWEST_OFFSET BSP_CRIT_IRQ_MAX_OFFSET + 1 /* 44 */
-#define BSP_PROCESSOR_IRQ_MAX_OFFSET \
- (BSP_PROCESSOR_IRQ_LOWEST_OFFSET + BSP_PROCESSOR_IRQ_NUMBER - 1) /* 46 */
-/*
- * Summary
- */
-#define BSP_IRQ_NUMBER BSP_PROCESSOR_IRQ_MAX_OFFSET + 1 /* 47 */
-#define BSP_LOWEST_OFFSET BSP_PER_IRQ_LOWEST_OFFSET /* 0 */
-#define BSP_MAX_OFFSET BSP_PROCESSOR_IRQ_MAX_OFFSET /* 46 */
-
-#ifndef ASM
-
-#include <rtems.h>
-#include <rtems/irq.h>
-#include <rtems/irq-extension.h>
-
-/*
- * index table for the module specific handlers, a few entries are only placeholders
- */
-typedef enum {
- BSP_SIU_IRQ_SMARTCOMM = BSP_PER_IRQ_LOWEST_OFFSET + 0,
- BSP_SIU_IRQ_PSC1 = BSP_PER_IRQ_LOWEST_OFFSET + 1,
- BSP_SIU_IRQ_PSC2 = BSP_PER_IRQ_LOWEST_OFFSET + 2,
- BSP_SIU_IRQ_PSC3 = BSP_PER_IRQ_LOWEST_OFFSET + 3,
- BSP_SIU_IRQ_PSC6 = BSP_PER_IRQ_LOWEST_OFFSET + 4,
- BSP_SIU_IRQ_ETH = BSP_PER_IRQ_LOWEST_OFFSET + 5,
- BSP_SIU_IRQ_USB = BSP_PER_IRQ_LOWEST_OFFSET + 6,
- BSP_SIU_IRQ_ATA = BSP_PER_IRQ_LOWEST_OFFSET + 7,
- BSP_SIU_IRQ_PCI_CRT = BSP_PER_IRQ_LOWEST_OFFSET + 8,
- BSP_SIU_IRQ_PCI_SC_RX = BSP_PER_IRQ_LOWEST_OFFSET + 9,
- BSP_SIU_IRQ_PCI_SC_TX = BSP_PER_IRQ_LOWEST_OFFSET + 10,
- BSP_SIU_IRQ_PSC4 = BSP_PER_IRQ_LOWEST_OFFSET + 11,
- BSP_SIU_IRQ_PSC5 = BSP_PER_IRQ_LOWEST_OFFSET + 12,
- BSP_SIU_IRQ_SPI_MODF = BSP_PER_IRQ_LOWEST_OFFSET + 13,
- BSP_SIU_IRQ_SPI_SPIF = BSP_PER_IRQ_LOWEST_OFFSET + 14,
- BSP_SIU_IRQ_I2C1 = BSP_PER_IRQ_LOWEST_OFFSET + 15,
- BSP_SIU_IRQ_I2C2 = BSP_PER_IRQ_LOWEST_OFFSET + 16,
- BSP_SIU_IRQ_MSCAN1 = BSP_PER_IRQ_LOWEST_OFFSET + 17,
- BSP_SIU_IRQ_MSCAN2 = BSP_PER_IRQ_LOWEST_OFFSET + 18,
- BSP_SIU_IRQ_IR_RX = BSP_PER_IRQ_LOWEST_OFFSET + 19,
- BSP_SIU_IRQ_IR_TX = BSP_PER_IRQ_LOWEST_OFFSET + 20,
- BSP_SIU_IRQ_XLB_ARB = BSP_PER_IRQ_LOWEST_OFFSET + 21,
-
- /* SL_TIMER1 -- handler entry only used in case of SMI */
- BSP_SIU_IRQ_SL_TIMER1 = BSP_MAIN_IRQ_LOWEST_OFFSET + 0,
- BSP_SIU_IRQ_IRQ1 = BSP_MAIN_IRQ_LOWEST_OFFSET + 1,
- BSP_SIU_IRQ_IRQ2 = BSP_MAIN_IRQ_LOWEST_OFFSET + 2,
- BSP_SIU_IRQ_IRQ3 = BSP_MAIN_IRQ_LOWEST_OFFSET + 3,
- /* LO_INT -- handler entry never used (only placeholder) */
- BSP_SIU_IRQ_LO_INT = BSP_MAIN_IRQ_LOWEST_OFFSET + 4,
- BSP_SIU_IRQ_RTC_PER = BSP_MAIN_IRQ_LOWEST_OFFSET + 5,
- BSP_SIU_IRQ_RTC_STW = BSP_MAIN_IRQ_LOWEST_OFFSET + 6,
- BSP_SIU_IRQ_GPIO_STD = BSP_MAIN_IRQ_LOWEST_OFFSET + 7,
- BSP_SIU_IRQ_GPIO_WKUP = BSP_MAIN_IRQ_LOWEST_OFFSET + 8,
- BSP_SIU_IRQ_TMR0 = BSP_MAIN_IRQ_LOWEST_OFFSET + 9,
- BSP_SIU_IRQ_TMR1 = BSP_MAIN_IRQ_LOWEST_OFFSET + 10,
- BSP_SIU_IRQ_TMR2 = BSP_MAIN_IRQ_LOWEST_OFFSET + 1,
- BSP_SIU_IRQ_TMR3 = BSP_MAIN_IRQ_LOWEST_OFFSET + 12,
- BSP_SIU_IRQ_TMR4 = BSP_MAIN_IRQ_LOWEST_OFFSET + 13,
- BSP_SIU_IRQ_TMR5 = BSP_MAIN_IRQ_LOWEST_OFFSET + 14,
- BSP_SIU_IRQ_TMR6 = BSP_MAIN_IRQ_LOWEST_OFFSET + 15,
- BSP_SIU_IRQ_TMR7 = BSP_MAIN_IRQ_LOWEST_OFFSET + 16,
-
- BSP_SIU_IRQ_IRQ0 = BSP_CRIT_IRQ_LOWEST_OFFSET + 0,
- BSP_SIU_IRQ_SL_TIMER0 = BSP_CRIT_IRQ_LOWEST_OFFSET + 1,
- /* HI_INT -- handler entry never used (only placeholder) */
- BSP_SIU_IRQ_HI_INT = BSP_CRIT_IRQ_LOWEST_OFFSET + 2,
- BSP_SIU_IRQ_CSS_WKUP = BSP_CRIT_IRQ_LOWEST_OFFSET + 3,
-
- BSP_DECREMENTER = BSP_PROCESSOR_IRQ_LOWEST_OFFSET + 0,
- BSP_SYSMGMT = BSP_PROCESSOR_IRQ_LOWEST_OFFSET + 1,
- BSP_EXT = BSP_PROCESSOR_IRQ_LOWEST_OFFSET + 2
-} rtems_irq_symbolic_name;
-
-#define BSP_CRIT_IRQ_PRIO_LEVELS 4
-#define BSP_PERIODIC_TIMER BSP_SIU_IRQ_TMR6
-
-#define BSP_INTERRUPT_VECTOR_MIN BSP_LOWEST_OFFSET
-
-#define BSP_INTERRUPT_VECTOR_MAX BSP_MAX_OFFSET
-
-#endif
-
-#endif /* LIBBSP_POWERPC_GEN5200_IRQ_H */
diff --git a/c/src/lib/libbsp/powerpc/gen5200/include/mpc5200.h b/c/src/lib/libbsp/powerpc/gen5200/include/mpc5200.h
deleted file mode 100644
index 263e66fb9e..0000000000
--- a/c/src/lib/libbsp/powerpc/gen5200/include/mpc5200.h
+++ /dev/null
@@ -1,1369 +0,0 @@
-/*===============================================================*\
-| Project: RTEMS generic MPC5200 BSP |
-+-----------------------------------------------------------------+
-| Partially based on the code references which are named below. |
-| Adaptions, modifications, enhancements and any recent parts of |
-| the code are: |
-| Copyright (c) 2005 |
-| Embedded Brains GmbH |
-| Obere Lagerstr. 30 |
-| D-82178 Puchheim |
-| Germany |
-| rtems@embedded-brains.de |
-+-----------------------------------------------------------------+
-| 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. |
-| |
-+-----------------------------------------------------------------+
-| this file contains definitions for the mpc5200 hw registers |
-\*===============================================================*/
-
-#ifndef __MPC5200_h__
-#define __MPC5200_h__
-
-/* Additional Harpo Core SPR definitions (603le only) */
-#define CSRR0 58 /* Critical Interrupt SRR0 */
-#define CSRR1 59 /* Critical Interrupt SRR1 */
-#define DABR2 1000 /* Data Address Breakpoint #2 */
-#define DBCR 1001 /* Data Address Breakpoint Control */
-#define IBCR 1002 /* Instruction Breakpoint Control */
-#define IABR2 1018 /* Instruction Breakpoint #2 */
-
-/*
- * Initial post-reset location of MGT5100 module base address register (MBAR)
- */
-#define MBAR_RESET 0x80000000
-
-/*
- * Location and size of onchip SRAM (relative to MBAR)
- */
-#define ONCHIP_SRAM_OFFSET 0x8000
-#define ONCHIP_SRAM_SIZE 0x4000
-
-#ifndef ASM
-#include <rtems.h>
-
-#include <bsp/utility.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define MPC5200_CAN_NO 2
-#define MPC5200_PSC_NO 6
- /* XXX: there are only 6 PSCs, but PSC6 has an extra register gap
- * from PSC5, therefore we instantiate seven(!) PSC register sets
- */
-#define MPC5200_PSC_REG_SETS 7
-
-#define MPC5200_GPT_NO 8
-#define MPC5200_SLT_NO 2
-
-/*
- * Bit fields for FEC interrupts, ievent and imask above.
- */
-#define FEC_INTR_HBERR 0x80000000 /* heartbeat error */
-#define FEC_INTR_BABR 0x40000000 /* babbling receive error */
-#define FEC_INTR_BABT 0x20000000 /* babbling transmit error */
-#define FEC_INTR_GRA 0x10000000 /* graceful stop complete */
-#define FEC_INTR_TFINT 0x08000000 /* transmit frame interrupt */
-/* 0x04000000 reserved */
-/* 0x02000000 reserved */
-/* 0x01000000 reserved */
-#define FEC_INTR_MII 0x00800000 /* MII interrupt */
-/* 0x00400000 reserved */
-#define FEC_INTR_LATE_COL 0x00200000 /* late collision */
-#define FEC_INTR_COL_RETRY 0x00100000 /* collision retry limit */
-#define FEC_INTR_XFIFO_UN 0x00080000 /* transmit FIFO error */
-#define FEC_INTR_XFIFO_ERR 0x00040000 /* transmit FIFO error */
-#define FEC_INTR_RFIFO_ERR 0x00020000 /* receive FIFO error */
-/* 0x00010000 reserved */
-/* 0x0000ffff reserved */
-#define FEC_INTR_HBEEN FEC_INTR_HBERR
-#define FEC_INTR_BREN FEC_INTR_BABR
-#define FEC_INTR_BTEN FEC_INTR_BABT
-#define FEC_INTR_GRAEN FEC_INTR_GRA
-#define FEC_INTR_TFINTEN FEC_INTR_TFINT
-#define FEC_INTR_MIIEN FEC_INTR_MII
-#define FEC_INTR_LCEN FEC_INTR_LATE_COL
-#define FEC_INTR_CRLEN FEC_INTR_COL_RETRY
-#define FEC_INTR_XFUNEN FEC_INTR_XFIFO_UN
-#define FEC_INTR_XFERREN FEC_INTR_XFIFO_ERR
-#define FEC_INTR_RFERREN FEC_INTR_RFIFO_ERR
-#define FEC_INTR_CLEAR_ALL 0xffffffff /* clear all interrupt events */
-#define FEC_INTR_MASK_ALL 0x00000000 /* mask all interrupt events */
-
-/*
- * Bit fields for FEC ethernet control, ecntrl above.
- */
-#define FEC_ECNTRL_TAG 0xf0000000 /* TBUS tag bits */
-/* 0x08000000 reserved */
-#define FEC_ECNTRL_TESTMD 0x04000000 /* test mode */
-/* 0x03fffff8 reserved */
-#define FEC_ECNTRL_OE 0x00000004 /* FEC output enable */
-#define FEC_ECNTRL_EN 0x00000002 /* ethernet enable */
-#define FEC_ECNTRL_RESET 0x00000001 /* ethernet controller reset */
-
-/*
- * Bit fields for FEC receive control, r_cntrl above.
- */
-/* 0xf1000000 reserved */
-#define FEC_RCNTRL_MAX_FL 0x07ff0000 /* maximum frame length */
-#define FEC_RCNTRL_MAX_FL_SHIFT 16
-/* 0x0000ffc0 reserved */
-#define FEC_RCNTRL_FCE 0x00000020 /* flow control enable */
-#define FEC_RCNTRL_BC_REJ 0x00000010 /* broadcast frame reject */
-#define FEC_RCNTRL_PROM 0x00000008 /* promiscuous mode */
-#define FEC_RCNTRL_MII_MODE 0x00000004 /* select 18-wire (MII) mode */
-#define FEC_RCNTRL_DRT 0x00000002 /* disable receive on transmit */
-#define FEC_RCNTRL_LOOP 0x00000001 /* internal loopback */
-
-/*
- * Bit fields for FEC transmit control, x_cntrl above.
- */
-/* 0xffffffe0 reserved */
-#define FEC_XCNTRL_RFC_PAUS 0x00000010 /* FDX flow control pause rx */
-#define FEC_XCNTRL_TFC_PAUS 0x00000008 /* assert a PAUSE frame */
-#define FEC_XCNTRL_FDEN 0x00000004 /* full duplex enable */
-#define FEC_XCNTRL_HBC 0x00000002 /* heartbeat control */
-#define FEC_XCNTRL_GTS 0x00000001 /* graceful transmit stop */
-
-/*
- * Bit fields for FEC transmit status, x_status above.
- */
-/* 0xfc000000 reserved */
-#define FEC_XSTAT_DEF 0x02000000 /* defer */
-#define FEC_XSTAT_HB 0x01000000 /* heartbeat error */
-#define FEC_XSTAT_LC 0x00800000 /* late collision */
-#define FEC_XSTAT_RL 0x00400000 /* retry limit */
-#define FEC_XSTAT_RC 0x003c0000 /* retry count */
-#define FEC_XSTAT_UN 0x00020000 /* underrun */
-#define FEX_XSTAT_CSL 0x00010000 /* carrier sense lost */
-/* 0x0000ffff reserved */
-
-/*
- * Bit fields for FEC transmit FIFO watermark, x_wmrk above.
- */
-#define FEC_XWMRK_64 0x00000000 /* 64 bytes written to TxFIFO */
-#define FEC_XWMRK_128 0x00000001 /* 128 bytes written to TxFIFO */
-#define FEC_XWMRK_192 0x00000002 /* 192 bytes written to TxFIFO */
-#define FEC_XWMRK_256 0x00000003 /* 256 bytes written to TxFIFO */
-#define FEC_XWMRK_320 0x00000004 /* 320 bytes written to TxFIFO */
-#define FEC_XWMRK_384 0x00000005 /* 384 bytes written to TxFIFO */
-#define FEC_XWMRK_448 0x00000006 /* 448 bytes written to TxFIFO */
-#define FEC_XWMRK_512 0x00000007 /* 512 bytes written to TxFIFO */
-#define FEC_XWMRK_576 0x00000008 /* 576 bytes written to TxFIFO */
-#define FEC_XWMRK_640 0x00000009 /* 640 bytes written to TxFIFO */
-#define FEC_XWMRK_704 0x0000000a /* 704 bytes written to TxFIFO */
-#define FEC_XWMRK_768 0x0000000b /* 768 bytes written to TxFIFO */
-#define FEC_XWMRK_832 0x0000000c /* 832 bytes written to TxFIFO */
-#define FEC_XWMRK_896 0x0000000d /* 896 bytes written to TxFIFO */
-#define FEC_XWMRK_960 0x0000000e /* 960 bytes written to TxFIFO */
-#define FEC_XWMRK_1024 0x0000000f /* 1024 bytes written to TxFIFO */
-
-/*
- * Bit fields for FEC transmit finite state machine.
- */
-/* 0xfc000000 reserved */
-#define FEC_FSM_CRC 0x02000000 /* append CRC (typical use) */
-#define FEC_FSM_ENFSM 0x01000000 /* enable CRC FSM (typical use) */
-/* 0x00ffffff reserved */
-
-/*
- * Bit fields for FEC FIFOs, rfifo_status, rfifo_cntrl, tfifo_status
- * and tfifo_cntrl.
- */
-#define FEC_FIFO_STAT_IP 0x80000000 /* illegal pointer, sticky */
-/* 0x70000000 reserved */
-#define FEC_FIFO_STAT_FRAME 0x0f000000 /* frame indicator */
-#define FEC_FIFO_STAT_FAE 0x00800000 /* frame accept error */
-#define FEC_FIFO_STAT_RXW 0x00400000 /* receive wait condition */
-#define FEC_FIFO_STAT_UF 0x00200000 /* underflow */
-#define FEC_FIFO_STAT_OF 0x00100000 /* overflow */
-#define FEC_FIFO_STAT_FR 0x00080000 /* frame ready, read-only */
-#define FEC_FIFO_STAT_FULL 0x00040000 /* full alarm, read-only */
-#define FEC_FIFO_STAT_ALARM 0x00020000 /* fifo alarm */
-#define FEC_FIFO_STAT_EMPTY 0x00010000 /* empty, read-only */
-/* 0x0000ffff reserved */
-#define FEC_FIFO_STAT_ERROR ( FEC_FIFO_STAT_IP \
- | FEC_FIFO_STAT_FAE \
- | FEC_FIFO_STAT_RXW \
- | FEC_FIFO_STAT_UF \
- | FEC_FIFO_STAT_OF \
- )
-
-/* 0x80000000 reserved */
-#define FEC_FIFO_CNTRL_WCTL 0x40000000 /* write control */
-#define FEC_FIFO_CNTRL_WFR 0x20000000 /* write frame */
-/* 0x10000000 reserved */
-#define FEC_FIFO_CNTRL_FRAME 0x08000000 /* frame mode enable */
-#define FEC_FIFO_CNTRL_GR 0x07000000 /* last transfer granularity */
-#define FEC_FIFO_CNTRL_GR_SHIFT 24
-#define FEC_FIFO_CNTRL_IP_MASK 0x00800000 /* illegal pointer mask */
-#define FEC_FIFO_CNTRL_FAE_MASK 0x00400000 /* frame accept mask */
-#define FEC_FIFO_CNTRL_RXW_MASK 0x00200000 /* receive wait mask */
-#define FEC_FIFO_CNTRL_UF_MASK 0x00100000 /* underflow mask */
-#define FEC_FIFO_CNTRL_OF_MASK 0x00080000 /* overflow mask */
-/* 0x0007ffff reserved */
-
-#define SDMA_TCR_EN BSP_BBIT16(0)
-#define SDMA_TCR_VAL BSP_BBIT16(1)
-#define SDMA_TCR_ALW_INIT BSP_BBIT16(2)
-#define SDMA_TCR_IN(val) BSP_BFLD16(val, 3, 7)
-#define SDMA_TCR_AUTO_START BSP_BBIT16(8)
-#define SDMA_TCR_HIGH_EN BSP_BBIT16(9)
-#define SDMA_TCR_HOLD BSP_BBIT16(10)
-#define SDMA_TCR_AS(val) BSP_BFLD16(val, 12, 15)
-
-#define SDMA_IPR_HOLD BSP_BBIT8(0)
-#define SDMA_IPR_PRIOR(val) BSP_BFLD8(val, 5, 7)
-
-#define SDMA_REQMUX_SET_31(reg, val) BSP_BFLD32SET(reg, val, 0, 1)
-#define SDMA_REQMUX_SET_30(reg, val) BSP_BFLD32SET(reg, val, 2, 3)
-#define SDMA_REQMUX_SET_29(reg, val) BSP_BFLD32SET(reg, val, 4, 5)
-#define SDMA_REQMUX_SET_28(reg, val) BSP_BFLD32SET(reg, val, 6, 7)
-#define SDMA_REQMUX_SET_27(reg, val) BSP_BFLD32SET(reg, val, 8, 9)
-#define SDMA_REQMUX_SET_26(reg, val) BSP_BFLD32SET(reg, val, 10, 11)
-#define SDMA_REQMUX_SET_25(reg, val) BSP_BFLD32SET(reg, val, 12, 13)
-#define SDMA_REQMUX_SET_24(reg, val) BSP_BFLD32SET(reg, val, 14, 15)
-#define SDMA_REQMUX_SET_23(reg, val) BSP_BFLD32SET(reg, val, 16, 17)
-#define SDMA_REQMUX_SET_22(reg, val) BSP_BFLD32SET(reg, val, 18, 19)
-#define SDMA_REQMUX_SET_21(reg, val) BSP_BFLD32SET(reg, val, 20, 21)
-#define SDMA_REQMUX_SET_20(reg, val) BSP_BFLD32SET(reg, val, 22, 23)
-#define SDMA_REQMUX_SET_19(reg, val) BSP_BFLD32SET(reg, val, 24, 25)
-#define SDMA_REQMUX_SET_18(reg, val) BSP_BFLD32SET(reg, val, 26, 27)
-#define SDMA_REQMUX_SET_17(reg, val) BSP_BFLD32SET(reg, val, 28, 29)
-#define SDMA_REQMUX_SET_16(reg, val) BSP_BFLD32SET(reg, val, 30, 31)
-
-/* SDMA / BestComm */
-typedef struct {
- uint32_t taskBar;
- uint32_t currentPointer;
- uint32_t endPointer;
- uint32_t variablePointer;
- uint8_t IntVect1;
- uint8_t IntVect2;
- uint16_t PtdCntrl;
- uint32_t IntPend;
- uint32_t IntMask;
- uint16_t tcr [16];
- uint8_t ipr [32];
- uint32_t cReqSelect;
- uint32_t task_size0;
- uint32_t task_size1;
- uint32_t reserved_0;
- uint32_t reserved_1;
- uint32_t Value1;
- uint32_t Value2;
- uint32_t Control;
- uint32_t Status;
-} mpc5200_sdma;
-
-typedef struct {
-#define CSC_CFG_WAITP(val) BSP_BFLD32(val, 0, 7)
-#define CSC_CFG_WAITX(val) BSP_BFLD32(val, 8, 15)
-#define CSC_CFG_MX BSP_BBIT32(16)
-#define CSC_CFG_AA BSP_BBIT32(18)
-#define CSC_CFG_CE BSP_BBIT32(19)
-#define CSC_CFG_AS(val) BSP_BFLD32(val, 20, 21)
-#define CSC_CFG_DS(val) BSP_BFLD32(val, 22, 23)
-#define CSC_CFG_BANK(val) BSP_BFLD32(val, 24, 25)
-#define CSC_CFG_WTYP(val) BSP_BFLD32(val, 26, 27)
-#define CSC_CFG_WS BSP_BBIT32(28)
-#define CSC_CFG_RS BSP_BBIT32(29)
-#define CSC_CFG_WO BSP_BBIT32(30)
-#define CSC_CFG_RO BSP_BBIT32(31)
- uint32_t config_0;
- uint32_t config_1;
- uint32_t config_2;
- uint32_t config_3;
- uint32_t config_4;
- uint32_t config_5;
-
-#define CSC_CTRL_ME BSP_BBIT32(7)
- uint32_t control;
-
-#define CSC_STAT_WOERR BSP_BBIT32(2)
-#define CSC_STAT_ROERR BSP_BBIT32(3)
-#define CSC_STAT_GET_CSXERR(reg) BSP_BFLD32GET(reg, 5, 7)
- uint32_t status;
-
- uint32_t config_6;
- uint32_t config_7;
-
-#define CSC_BST_CTRL_CW7 BSP_BBIT32(0)
-#define CSC_BST_CTRL_SLB7 BSP_BBIT32(1)
-#define CSC_BST_CTRL_BRE7 BSP_BBIT32(3)
-#define CSC_BST_CTRL_CW6 BSP_BBIT32(4)
-#define CSC_BST_CTRL_SLB6 BSP_BBIT32(5)
-#define CSC_BST_CTRL_BRE6 BSP_BBIT32(7)
-#define CSC_BST_CTRL_CW5 BSP_BBIT32(8)
-#define CSC_BST_CTRL_SLB5 BSP_BBIT32(9)
-#define CSC_BST_CTRL_BRE5 BSP_BBIT32(11)
-#define CSC_BST_CTRL_CW4 BSP_BBIT32(12)
-#define CSC_BST_CTRL_SLB4 BSP_BBIT32(13)
-#define CSC_BST_CTRL_BRE4 BSP_BBIT32(15)
-#define CSC_BST_CTRL_CW3 BSP_BBIT32(16)
-#define CSC_BST_CTRL_SLB3 BSP_BBIT32(17)
-#define CSC_BST_CTRL_BRE3 BSP_BBIT32(19)
-#define CSC_BST_CTRL_CW2 BSP_BBIT32(20)
-#define CSC_BST_CTRL_SLB2 BSP_BBIT32(21)
-#define CSC_BST_CTRL_BRE2 BSP_BBIT32(23)
-#define CSC_BST_CTRL_CW1 BSP_BBIT32(24)
-#define CSC_BST_CTRL_SLB1 BSP_BBIT32(25)
-#define CSC_BST_CTRL_BRE1 BSP_BBIT32(27)
-#define CSC_BST_CTRL_CW0 BSP_BBIT32(28)
-#define CSC_BST_CTRL_SLB0 BSP_BBIT32(29)
-#define CSC_BST_CTRL_BRE0 BSP_BBIT32(31)
- uint32_t burst_control;
-
-#define CSC_DCYC_CTRL_DC7(val) BSP_BFLD32(val, 2, 3)
-#define CSC_DCYC_CTRL_SET_DC7(reg, val) BSP_BFLD32SET(reg, val, 2, 3)
-#define CSC_DCYC_CTRL_DC6(val) BSP_BFLD32(val, 6, 7)
-#define CSC_DCYC_CTRL_SET_DC6(reg, val) BSP_BFLD32SET(reg, val, 6, 7)
-#define CSC_DCYC_CTRL_DC5(val) BSP_BFLD32(val, 10, 11)
-#define CSC_DCYC_CTRL_SET_DC5(reg, val) BSP_BFLD32SET(reg, val, 10, 11)
-#define CSC_DCYC_CTRL_DC4(val) BSP_BFLD32(val, 14, 15)
-#define CSC_DCYC_CTRL_SET_DC4(reg, val) BSP_BFLD32SET(reg, val, 14, 15)
-#define CSC_DCYC_CTRL_DC3(val) BSP_BFLD32(val, 18, 19)
-#define CSC_DCYC_CTRL_SET_DC3(reg, val) BSP_BFLD32SET(reg, val, 18, 19)
-#define CSC_DCYC_CTRL_DC2(val) BSP_BFLD32(val, 22, 23)
-#define CSC_DCYC_CTRL_SET_DC2(reg, val) BSP_BFLD32SET(reg, val, 22, 23)
-#define CSC_DCYC_CTRL_DC1(val) BSP_BFLD32(val, 26, 27)
-#define CSC_DCYC_CTRL_SET_DC1(reg, val) BSP_BFLD32SET(reg, val, 26, 27)
-#define CSC_DCYC_CTRL_DC0(val) BSP_BFLD32(val, 30, 31)
-#define CSC_DCYC_CTRL_SET_DC0(reg, val) BSP_BFLD32SET(reg, val, 30, 31)
- uint32_t deadcycle_control;
-
- uint8_t reserved [208];
-} mpc5200_csc;
-
-typedef struct {
- uint32_t memory_address_base;
- uint32_t cs0_start_address;
- uint32_t cs0_stop_address;
- uint32_t cs1_start_address;
- uint32_t cs1_stop_address;
- uint32_t cs2_start_address;
- uint32_t cs2_stop_address;
- uint32_t cs3_start_address;
- uint32_t cs3_stop_address;
- uint32_t cs4_start_address;
- uint32_t cs4_stop_address;
- uint32_t cs5_start_address;
- uint32_t cs5_stop_address;
- uint32_t sdram_chip_select_0;
- uint32_t sdram_chip_select_1;
- uint8_t reserved_0 [16];
- uint32_t boot_start_address;
- uint32_t boot_stop_address;
-
-#define MM_IPBI_CTRL_CS7ENA BSP_BBIT16(4)
-#define MM_IPBI_CTRL_CS6ENA BSP_BBIT16(5)
-#define MM_IPBI_CTRL_BOOTENA BSP_BBIT16(6)
-#define MM_IPBI_CTRL_CS5ENA BSP_BBIT16(10)
-#define MM_IPBI_CTRL_CS4ENA BSP_BBIT16(11)
-#define MM_IPBI_CTRL_CS3ENA BSP_BBIT16(12)
-#define MM_IPBI_CTRL_CS2ENA BSP_BBIT16(13)
-#define MM_IPBI_CTRL_CS1ENA BSP_BBIT16(14)
-#define MM_IPBI_CTRL_CS0ENA BSP_BBIT16(15)
- uint16_t ipbi_control;
-
- uint16_t wait_state_enable;
- uint32_t cs6_start_address;
- uint32_t cs6_stop_address;
- uint32_t cs7_start_address;
- uint32_t cs7_stop_address;
- uint8_t reserved_1 [152];
-} mpc5200_mm;
-
-/*
-*************************************************************************
-* MPC5x00 internal register memory map *
-*************************************************************************
-*/
-typedef struct mpc5200_ {
- /*
- * memory map registers (MBAR + 0)
- */
- volatile mpc5200_mm mm;
-
- /*
- * SDRAM memory controller registers (MBAR + 0x100)
- */
- volatile uint8_t mc[0x100];
-
- /*
- * clock distribution module registers (MBAR + 0x200)
- */
- volatile uint8_t cdm[0x100];
-
- /*
- * chip selct controller registers(MBAR + 0x300)
- */
- volatile mpc5200_csc csc;
-
- /*
- * SmartComm timer registers (MBAR + 0x400)
- */
- volatile uint8_t sct[0x100];
-
- /*
- * interrupt controller registers (MBAR + 0x500)
- */
- volatile uint32_t per_mask; /* + 0x00 */
- volatile uint32_t per_pri_1; /* + 0x04 */
- volatile uint32_t per_pri_2; /* + 0x08 */
- volatile uint32_t per_pri_3; /* + 0x0C */
-
-#define ICTL_EET_ECLR0 BSP_BBIT32(4)
-#define ICTL_EET_ECLR1 BSP_BBIT32(5)
-#define ICTL_EET_ECLR2 BSP_BBIT32(6)
-#define ICTL_EET_ECLR3 BSP_BBIT32(7)
-#define ICTL_EET_ETYPE0(val) BSP_BFLD32(val, 8, 9)
-#define ICTL_EET_ETYPE1(val) BSP_BFLD32(val, 10, 11)
-#define ICTL_EET_ETYPE2(val) BSP_BFLD32(val, 12, 13)
-#define ICTL_EET_ETYPE3(val) BSP_BFLD32(val, 14, 15)
-#define ICTL_EET_SET_ETYPE0(reg, val) BSP_BFLD32SET(reg, val, 8, 9)
-#define ICTL_EET_SET_ETYPE1(reg, val) BSP_BFLD32SET(reg, val, 10, 11)
-#define ICTL_EET_SET_ETYPE2(reg, val) BSP_BFLD32SET(reg, val, 12, 13)
-#define ICTL_EET_SET_ETYPE3(reg, val) BSP_BFLD32SET(reg, val, 14, 15)
-#define ICTL_EET_MEE BSP_BBIT32(19)
-#define ICTL_EET_EENA0 BSP_BBIT32(20)
-#define ICTL_EET_EENA1 BSP_BBIT32(21)
-#define ICTL_EET_EENA2 BSP_BBIT32(22)
-#define ICTL_EET_EENA3 BSP_BBIT32(23)
-#define ICTL_EET_CEB BSP_BBIT32(31)
-
- volatile uint32_t ext_en_type; /* + 0x10 */
- volatile uint32_t crit_pri_main_mask;/* + 0x14 */
- volatile uint32_t main_pri_1; /* + 0x18 */
- volatile uint32_t main_pri_2; /* + 0x1C */
- volatile uint32_t res1; /* + 0x20 */
- volatile uint32_t pmce; /* + 0x24 */
- volatile uint32_t csa; /* + 0x28 */
- volatile uint32_t msa; /* + 0x2C */
- volatile uint32_t psa; /* + 0x30 */
- volatile uint32_t res2; /* + 0x34 */
- volatile uint32_t psa_be; /* + 0x38 */
- volatile uint8_t res3[0xC4]; /* + 0x3C */
-
- /*
- * general pupose timer registers (MBAR + 0x600/+ 0x610/+ 0x620/+ 0x630/+ 0x640/+ 0x650/+ 0x660/+ 0x670)
- */
- struct mpc5200_gpt {
- volatile uint32_t emsel; /* + 0x00 */
- volatile uint32_t count_in; /* + 0x04 */
- volatile uint32_t pwm_conf; /* + 0x08 */
- volatile uint32_t status; /* + 0x0C */
- } gpt[MPC5200_GPT_NO];
-
-#define GPT_STATUS_RESET 0x0000000F
-#define GPT_STATUS_TEXP (1 << 3)
-#define GPT_STATUS_PIN (1 << 8)
-#define GPT_EMSEL_GPIO_DIR (2 << 4)
-#define GPT_EMSEL_GPIO_OUT (1 << 4)
-#define GPT_EMSEL_GPIO_OUT_HIGH (3 << 4)
-#define GPT_EMSEL_TIMER_MS_GPIO (4 << 0)
-#define GPT_EMSEL_GPIO_IN (0 << 0)
-#define GPT_EMSEL_CE (1 << 12)
-#define GPT_EMSEL_ST_CONT (1 << 10)
-#define GPT_EMSEL_INTEN (1 << 8)
-#define GPT_EMSEL_WDEN (1 << 15)
-
-#define GPT0 0
-#define GPT1 1
-#define GPT2 2
-#define GPT3 3
-#define GPT4 4
-#define GPT5 5
-#define GPT6 6
-#define GPT7 7
-
- volatile uint8_t gpt_res[0x80];
-
- /*
- * slice time registers (MBAR + 0x700/+ 0x710)
- */
- struct mpc5200_slt {
- volatile uint32_t tcr; /* + 0x00 */
- volatile uint32_t cntrl; /* + 0x04 */
- volatile uint32_t cvr; /* + 0x08 */
- volatile uint32_t tsr; /* + 0x0C */
- } slt[MPC5200_SLT_NO];
-
- volatile uint8_t slt_res[0xE0];
-
- /*
- * real time clock registers (MBAR + 0x800)
- */
- volatile uint8_t rtc[0x100];
-
-
- /*
- * MSCAN registers (MBAR + 0x900 /+ 0x980)
- */
- struct mpc5200_mscan {
- volatile uint8_t ctl0; /* + 0x0 */
- volatile uint8_t ctl1; /* + 0x1 */
- volatile uint8_t res1; /* + 0x2 */
- volatile uint8_t res2; /* + 0x3 */
- volatile uint8_t btr0; /* + 0x4 */
- volatile uint8_t btr1; /* + 0x5 */
- volatile uint8_t res3; /* + 0x6 */
- volatile uint8_t res4; /* + 0x7 */
- volatile uint8_t rflg; /* + 0x8 */
- volatile uint8_t rier; /* + 0x9 */
- volatile uint8_t res5; /* + 0xA */
- volatile uint8_t res6; /* + 0xB */
- volatile uint8_t tflg; /* + 0xC */
- volatile uint8_t tier; /* + 0xD */
- volatile uint8_t res7; /* + 0xE */
- volatile uint8_t res8; /* + 0xF */
- volatile uint8_t tarq; /* + 0x10 */
- volatile uint8_t taak; /* + 0x11 */
- volatile uint8_t res9; /* + 0x12 */
- volatile uint8_t res10; /* + 0x13 */
- volatile uint8_t bsel; /* + 0x14 */
- volatile uint8_t idac; /* + 0x15 */
- volatile uint8_t res11; /* + 0x16 */
- volatile uint8_t res12; /* + 0x17 */
- volatile uint8_t res13; /* + 0x18 */
- volatile uint8_t res14; /* + 0x19 */
- volatile uint8_t res15; /* + 0x1A */
- volatile uint8_t res16; /* + 0x1B */
- volatile uint8_t rxerr; /* + 0x1C */
- volatile uint8_t txerr; /* + 0x1D */
- volatile uint8_t res17; /* + 0x1E */
- volatile uint8_t res18; /* + 0x1F */
- volatile uint8_t idar0; /* + 0x20 */
- volatile uint8_t idar1; /* + 0x21 */
- volatile uint8_t res19; /* + 0x22 */
- volatile uint8_t res20; /* + 0x23 */
- volatile uint8_t idar2; /* + 0x24 */
- volatile uint8_t idar3; /* + 0x25 */
- volatile uint8_t res21; /* + 0x26 */
- volatile uint8_t res22; /* + 0x27 */
- volatile uint8_t idmr0; /* + 0x28 */
- volatile uint8_t idmr1; /* + 0x29 */
- volatile uint8_t res23; /* + 0x2A */
- volatile uint8_t res24; /* + 0x2B */
- volatile uint8_t idmr2; /* + 0x2C */
- volatile uint8_t idmr3; /* + 0x2D */
- volatile uint8_t res25; /* + 0x2E */
- volatile uint8_t res26; /* + 0x2F */
- volatile uint8_t idar4; /* + 0x30 */
- volatile uint8_t idar5; /* + 0x31 */
- volatile uint8_t res27; /* + 0x32 */
- volatile uint8_t res28; /* + 0x33 */
- volatile uint8_t idar6; /* + 0x34 */
- volatile uint8_t idar7; /* + 0x35 */
- volatile uint8_t res29; /* + 0x36 */
- volatile uint8_t res30; /* + 0x37 */
- volatile uint8_t idmr4; /* + 0x38 */
- volatile uint8_t idmr5; /* + 0x39 */
- volatile uint8_t res31; /* + 0x3A */
- volatile uint8_t res32; /* + 0x3B */
- volatile uint8_t idmr6; /* + 0x3C */
- volatile uint8_t idmr7; /* + 0x3D */
- volatile uint8_t res33; /* + 0x3E */
- volatile uint8_t res34; /* + 0x3F */
- volatile uint8_t rxidr0; /* + 0x40 */
- volatile uint8_t rxidr1; /* + 0x41 */
- volatile uint8_t res35; /* + 0x42 */
- volatile uint8_t res36; /* + 0x43 */
- volatile uint8_t rxidr2; /* + 0x44 */
- volatile uint8_t rxidr3; /* + 0x45 */
- volatile uint8_t res37; /* + 0x46 */
- volatile uint8_t res38; /* + 0x47 */
- volatile uint8_t rxdsr0; /* + 0x48 */
- volatile uint8_t rxdsr1; /* + 0x49 */
- volatile uint8_t res39; /* + 0x4A */
- volatile uint8_t res40; /* + 0x4B */
- volatile uint8_t rxdsr2; /* + 0x4C */
- volatile uint8_t rxdsr3; /* + 0x4D */
- volatile uint8_t res41; /* + 0x4E */
- volatile uint8_t res42; /* + 0x4F */
- volatile uint8_t rxdsr4; /* + 0x50 */
- volatile uint8_t rxdsr5; /* + 0x51 */
- volatile uint8_t res43; /* + 0x52 */
- volatile uint8_t res44; /* + 0x53 */
- volatile uint8_t rxdsr6; /* + 0x54 */
- volatile uint8_t rxdsr7; /* + 0x55 */
- volatile uint8_t res45; /* + 0x56 */
- volatile uint8_t res46; /* + 0x57 */
- volatile uint8_t rxdlr; /* + 0x58 */
- volatile uint8_t res47; /* + 0x59 */
- volatile uint8_t res48; /* + 0x5A */
- volatile uint8_t res49; /* + 0x5B */
- volatile uint8_t rxtimh; /* + 0x5C */
- volatile uint8_t rxtiml; /* + 0x5D */
- volatile uint8_t res50; /* + 0x5E */
- volatile uint8_t res51; /* + 0x5F */
- volatile uint8_t txidr0; /* + 0x60 */
- volatile uint8_t txidr1; /* + 0x61 */
- volatile uint8_t res52; /* + 0x62 */
- volatile uint8_t res53; /* + 0x63 */
- volatile uint8_t txidr2; /* + 0x64 */
- volatile uint8_t txidr3; /* + 0x65 */
- volatile uint8_t res54; /* + 0x66 */
- volatile uint8_t res55; /* + 0x67 */
- volatile uint8_t txdsr0; /* + 0x68 */
- volatile uint8_t txdsr1; /* + 0x69 */
- volatile uint8_t res56; /* + 0x6A */
- volatile uint8_t res57; /* + 0x6B */
- volatile uint8_t txdsr2; /* + 0x6C */
- volatile uint8_t txdsr3; /* + 0x6D */
- volatile uint8_t res58; /* + 0x6E */
- volatile uint8_t res59; /* + 0x6F */
- volatile uint8_t txdsr4; /* + 0x70 */
- volatile uint8_t txdsr5; /* + 0x71 */
- volatile uint8_t res60; /* + 0x72 */
- volatile uint8_t res61; /* + 0x73 */
- volatile uint8_t txdsr6; /* + 0x74 */
- volatile uint8_t txdsr7; /* + 0x75 */
- volatile uint8_t res62; /* + 0x76 */
- volatile uint8_t res63; /* + 0x77 */
- volatile uint8_t txdlr; /* + 0x78 */
- volatile uint8_t txtbpr; /* + 0x79 */
- volatile uint8_t res64; /* + 0x7A */
- volatile uint8_t res65; /* + 0x7B */
- volatile uint8_t txtimh; /* + 0x7C */
- volatile uint8_t txtiml; /* + 0x7D */
- volatile uint8_t res66; /* + 0x7E */
- volatile uint8_t res67; /* + 0x7F */
- } mscan[MPC5200_CAN_NO];
-
- volatile uint8_t res[0x100];
-
- /*
- * GPIO standard registers (MBAR + 0xB00)
- */
- volatile uint32_t gpiopcr; /* + 0x00 */
- #define GPIO_PCR_CHIP_SELECT_1 0x80000000
- #define GPIO_PCR_CHIP_ALTS 0x30000000
- #define GPIO_PCR_CHIP_ALTS_NONE 0x00000000
- #define GPIO_PCR_CHIP_ALTS_CAN 0x10000000
- #define GPIO_PCR_CHIP_ALTS_SPI 0x20000000
- #define GPIO_PCR_CHIP_ALTS_BOTH 0x30000000
- #define GPIO_PCR_CHIP_SELECT_7 0x08000000
- #define GPIO_PCR_CHIP_SELECT_6 0x04000000
- #define GPIO_PCR_CHIP_SELECT_ATA 0x03000000
- #define GPIO_PCR_CHIP_SELECT_IR_USB_CLK 0x00800000
- #define GPIO_PCR_IRDA 0x00700000
- #define GPIO_PCR_ETHERNET 0x000F0000
- #define GPIO_PCR_PCI_DIS 0x00008000
- #define GPIO_PCR_USB_SE 0x00004000
- #define GPIO_PCR_USB_GPIO 0x00003000
- #define GPIO_PCR_PSC3 0x00000F00
- #define GPIO_PCR_PSC2 0x00000070
- #define GPIO_PCR_PSC1 0x00000007
-
- #define GPIO_S_PIN_IR_USB_CLK BSP_BBIT32(2)
- #define GPIO_S_PIN_IRDA_TX BSP_BBIT32(3)
- #define GPIO_S_PIN_ETH_11 BSP_BBIT32(4)
- #define GPIO_S_PIN_ETH_10 BSP_BBIT32(5)
- #define GPIO_S_PIN_ETH_9 BSP_BBIT32(6)
- #define GPIO_S_PIN_ETH_8 BSP_BBIT32(7)
- #define GPIO_S_PIN_USB1_8 BSP_BBIT32(12)
- #define GPIO_S_PIN_USB1_7 BSP_BBIT32(13)
- #define GPIO_S_PIN_USB1_6 BSP_BBIT32(14)
- #define GPIO_S_PIN_USB1_0 BSP_BBIT32(15)
- #define GPIO_S_PIN_PSC3_7 BSP_BBIT32(18)
- #define GPIO_S_PIN_PSC3_6 BSP_BBIT32(19)
- #define GPIO_S_PIN_PSC3_3 BSP_BBIT32(20)
- #define GPIO_S_PIN_PSC3_2 BSP_BBIT32(21)
- #define GPIO_S_PIN_PSC3_1 BSP_BBIT32(22)
- #define GPIO_S_PIN_PSC3_0 BSP_BBIT32(23)
- #define GPIO_S_PIN_PSC2_3 BSP_BBIT32(24)
- #define GPIO_S_PIN_PSC2_2 BSP_BBIT32(25)
- #define GPIO_S_PIN_PSC2_1 BSP_BBIT32(26)
- #define GPIO_S_PIN_PSC2_0 BSP_BBIT32(27)
- #define GPIO_S_PIN_PSC1_3 BSP_BBIT32(28)
- #define GPIO_S_PIN_PSC1_2 BSP_BBIT32(29)
- #define GPIO_S_PIN_PSC1_1 BSP_BBIT32(30)
- #define GPIO_S_PIN_PSC1_0 BSP_BBIT32(31)
-
- volatile uint32_t gpiosen; /* + 0x04 */
- volatile uint32_t gpiosod; /* + 0x08 */
- volatile uint32_t gpiosdd; /* + 0x0C */
- volatile uint32_t gpiosdo; /* + 0x10 */
- volatile uint32_t gpiosdi; /* + 0x14 */
-
- #define GPIO_O_PIN_ETH_7 BSP_BBIT32(0)
- #define GPIO_O_PIN_ETH_6 BSP_BBIT32(1)
- #define GPIO_O_PIN_ETH_5 BSP_BBIT32(2)
- #define GPIO_O_PIN_ETH_4 BSP_BBIT32(3)
- #define GPIO_O_PIN_ETH_3 BSP_BBIT32(4)
- #define GPIO_O_PIN_ETH_2 BSP_BBIT32(5)
- #define GPIO_O_PIN_ETH_1 BSP_BBIT32(6)
- #define GPIO_O_PIN_ETH_0 BSP_BBIT32(7)
- #define GPIO_O_PIN_I2C_3 BSP_BBIT32(13)
- #define GPIO_O_PIN_I2C_0 BSP_BBIT32(14)
- #define GPIO_O_PIN_I2C_1 BSP_BBIT32(15)
-
- volatile uint32_t gpiooe; /* + 0x18 */
- volatile uint32_t gpioodo; /* + 0x1C */
-
- #define GPIO_I_PIN_ETH_16 BSP_BBIT32(0)
- #define GPIO_I_PIN_ETH_15 BSP_BBIT32(1)
- #define GPIO_I_PIN_ETH_14 BSP_BBIT32(2)
- #define GPIO_I_PIN_ETH_13 BSP_BBIT32(3)
- #define GPIO_I_PIN_USB1_9 BSP_BBIT32(4)
- #define GPIO_I_PIN_PSC3_8 BSP_BBIT32(5)
- #define GPIO_I_PIN_PSC3_5 BSP_BBIT32(6)
- #define GPIO_I_PIN_PSC3_4 BSP_BBIT32(7)
-
- volatile uint32_t gpiosie; /* + 0x20 */
- #define GPIO_SIE_SINT_7_ETH_16_PIN 0x80000000
- #define GPIO_SIE_SINT_6_ETH_15_PIN 0x40000000
- #define GPIO_SIE_SINT_5_ETH_14_PIN 0x20000000
- #define GPIO_SIE_SINT_4_ETH_13_PIN 0x10000000
- #define GPIO_SIE_SINT_3_USB1_9_PIN 0x08000000
- #define GPIO_SIE_SINT_2_PSC3_8_PIN 0x04000000
- #define GPIO_SIE_SINT_1_PSC3_5_PIN 0x02000000
- #define GPIO_SIE_SINT_0_PSC3_4_PIN 0x01000000
-
- volatile uint32_t gpiosiod; /* + 0x24 */
-
- volatile uint32_t gpiosidd; /* + 0x28 */
- #define GPIO_SIDD_SINT_7_ETH_16_PIN 0x80000000
- #define GPIO_SIDD_SINT_6_ETH_15_PIN 0x40000000
- #define GPIO_SIDD_SINT_5_ETH_14_PIN 0x20000000
- #define GPIO_SIDD_SINT_4_ETH_13_PIN 0x10000000
- #define GPIO_SIDD_SINT_3_USB1_9_PIN 0x08000000
- #define GPIO_SIDD_SINT_2_PSC3_8_PIN 0x04000000
- #define GPIO_SIDD_SINT_1_PSC3_5_PIN 0x02000000
- #define GPIO_SIDD_SINT_0_PSC3_4_PIN 0x01000000
-
- volatile uint32_t gpiosido; /* + 0x2C */
-
- volatile uint32_t gpiosiie; /* + 0x30 */
- #define GPIO_SIIE_SINT_7_ETH_16_PIN 0x80000000
- #define GPIO_SIIE_SINT_6_ETH_15_PIN 0x40000000
- #define GPIO_SIIE_SINT_5_ETH_14_PIN 0x20000000
- #define GPIO_SIIE_SINT_4_ETH_13_PIN 0x10000000
- #define GPIO_SIIE_SINT_3_USB1_9_PIN 0x08000000
- #define GPIO_SIIE_SINT_2_PSC3_8_PIN 0x04000000
- #define GPIO_SIIE_SINT_1_PSC3_5_PIN 0x02000000
- #define GPIO_SIIE_SINT_0_PSC3_4_PIN 0x01000000
-
- volatile uint32_t gpiosiit; /* + 0x34 */
- #define GPIO_SIIT_SET_ETH_16_PIN(reg, val) BSP_BFLD32SET(reg, val, 0, 1)
- #define GPIO_SIIT_SET_ETH_15_PIN(reg, val) BSP_BFLD32SET(reg, val, 2, 3)
- #define GPIO_SIIT_SET_ETH_14_PIN(reg, val) BSP_BFLD32SET(reg, val, 4, 5)
- #define GPIO_SIIT_SET_ETH_13_PIN(reg, val) BSP_BFLD32SET(reg, val, 6, 7)
- #define GPIO_SIIT_SET_USB1_9_PIN(reg, val) BSP_BFLD32SET(reg, val, 8, 9)
- #define GPIO_SIIT_SET_PSC3_8_PIN(reg, val) BSP_BFLD32SET(reg, val, 10, 11)
- #define GPIO_SIIT_SET_PSC3_5_PIN(reg, val) BSP_BFLD32SET(reg, val, 12, 13)
- #define GPIO_SIIT_SET_PSC3_4_PIN(reg, val) BSP_BFLD32SET(reg, val, 14, 15)
-
- #define GPIO_SIIT_SINT_7_ETH_16_PIN_MASK 0xc0000000
- #define GPIO_SIIT_SINT_6_ETH_15_PIN_MASK 0x30000000
- #define GPIO_SIIT_SINT_5_ETH_14_PIN_MASK 0x0c000000
- #define GPIO_SIIT_SINT_4_ETH_13_PIN_MASK 0x03000000
- #define GPIO_SIIT_SINT_3_USB1_9_PIN_MASK 0x00c00000
- #define GPIO_SIIT_SINT_2_PSC3_8_PIN_MASK 0x00300000
- #define GPIO_SIIT_SINT_1_PSC3_5_PIN_MASK 0x000c0000
- #define GPIO_SIIT_SINT_0_PSC3_4_PIN_MASK 0x00030000
-
- #define GPIO_SIIT_ON_ANY_TRANSITION 0x00000000
- #define GPIO_SIIT_ON_RISING_EDGE 0x00000001
- #define GPIO_SIIT_ON_FALLING_EDGE 0x00000002
- #define GPIO_SIIT_ON_PULSE 0x00000003
-
- #define GPIO_SIIT_SINT_7_ETH_16_PIN_SHIFT 16
- #define GPIO_SIIT_SINT_6_ETH_15_PIN_SHIFT 18
- #define GPIO_SIIT_SINT_5_ETH_14_PIN_SHIFT 20
- #define GPIO_SIIT_SINT_4_ETH_13_PIN_SHIFT 22
- #define GPIO_SIIT_SINT_3_USB1_9_PIN_SHIFT 24
- #define GPIO_SIIT_SINT_2_PSC3_8_PIN_SHIFT 26
- #define GPIO_SIIT_SINT_1_PSC3_5_PIN_SHIFT 28
- #define GPIO_SIIT_SINT_0_PSC3_4_PIN_SHIFT 30
-
- volatile uint32_t gpiosime; /* + 0x38 */
- #define GPIO_SIME_MASTER_ENABLE 0x10000000
-
- volatile uint32_t gpiosist; /* + 0x3C */
- #define GPIO_SIST_SINT_7_ETH_16_PIN_STATUS 0x80000000
- #define GPIO_SIST_SINT_6_ETH_15_PIN_STATUS 0x40000000
- #define GPIO_SIST_SINT_5_ETH_14_PIN_STATUS 0x20000000
- #define GPIO_SIST_SINT_4_ETH_13_PIN_STATUS 0x10000000
- #define GPIO_SIST_SINT_3_USB1_9_PIN_STATUS 0x08000000
- #define GPIO_SIST_SINT_2_PSC3_8_PIN_STATUS 0x04000000
- #define GPIO_SIST_SINT_1_PSC3_5_PIN_STATUS 0x02000000
- #define GPIO_SIST_SINT_0_PSC3_4_PIN_STATUS 0x01000000
- #define GPIO_SIST_SINT_7_ETH_16_PIN_VALUE 0x00800000
- #define GPIO_SIST_SINT_6_ETH_15_PIN_VALUE 0x00400000
- #define GPIO_SIST_SINT_5_ETH_14_PIN_VALUE 0x00200000
- #define GPIO_SIST_SINT_4_ETH_13_PIN_VALUE 0x00100000
- #define GPIO_SIST_SINT_3_USB1_9_PIN_VALUE 0x00080000
- #define GPIO_SIST_SINT_2_PSC3_8_PIN_VALUE 0x00040000
- #define GPIO_SIST_SINT_1_PSC3_5_PIN_VALUE 0x00020000
- #define GPIO_SIST_SINT_0_PSC3_4_PIN_VALUE 0x00010000
-
- #define GPIO_SIST_SINT_CLEAR_ALL 0xff000000
-
- volatile uint8_t res4[0xC0];
-
- /*
- * GPIO wakeup registers (MBAR + 0xC00)
- */
-
- #define GPIO_W_PIN_GPIO_WKUP_7 BSP_BBIT32(0)
- #define GPIO_W_PIN_GPIO_WKUP_6 BSP_BBIT32(1)
- #define GPIO_W_PIN_PSC6_1 BSP_BBIT32(2)
- #define GPIO_W_PIN_PSC6_0 BSP_BBIT32(3)
- #define GPIO_W_PIN_ETH_17 BSP_BBIT32(4)
- #define GPIO_W_PIN_PSC3_9 BSP_BBIT32(5)
- #define GPIO_W_PIN_PSC2_4 BSP_BBIT32(6)
- #define GPIO_W_PIN_PSC1_4 BSP_BBIT32(7)
-
- volatile uint32_t gpiowe; /* + 0x00 */
- volatile uint32_t gpiowod; /* + 0x04 */
- volatile uint32_t gpiowdd; /* + 0x08 */
- volatile uint32_t gpiowdo; /* + 0x0C */
- volatile uint32_t gpiowue; /* + 0x10 */
- volatile uint32_t gpiowsie; /* + 0x14 */
- volatile uint32_t gpiowt; /* + 0x18 */
- volatile uint32_t gpiowme; /* + 0x1C */
- volatile uint32_t gpiowi; /* + 0x20 */
- volatile uint32_t gpiows; /* + 0x24 */
- volatile uint8_t gpiow_res[0xD8];
-
- /*
- * PPC PCI registers (MBAR + 0xD00)
- */
- volatile uint8_t ppci[0x100];
-
- /*
- * consumer infrared registers (MBAR + 0xE00)
- */
- volatile uint8_t ir[0x100];
-
- /*
- * serial peripheral interface registers (MBAR + 0xF00)
- */
- volatile uint8_t spi[0x100];
-
- /*
- * universal serial bus registers (MBAR + 0x1000)
- */
- volatile uint8_t usb[0x200];
-
- /*
- * SmartComm DMA registers (MBAR + 0x1200)
- */
- volatile mpc5200_sdma sdma;
-
- volatile uint32_t EU00; /* + 0x80 sdMac macer reg */
- volatile uint32_t EU01; /* + 0x84 sdMac macemr reg */
- volatile uint32_t EU02; /* + 0x88 unused */
- volatile uint32_t EU03; /* + 0x8c unused */
- volatile uint32_t EU04; /* + 0x90 unused */
- volatile uint32_t EU05; /* + 0x94 unused */
- volatile uint32_t EU06; /* + 0x98 unused */
- volatile uint32_t EU07; /* + 0x9c unused */
- volatile uint32_t EU10; /* + 0xa0 unused */
- volatile uint32_t EU11; /* + 0xa4 unused */
- volatile uint32_t EU12; /* + 0xa8 unused */
- volatile uint32_t EU13; /* + 0xac unused */
- volatile uint32_t EU14; /* + 0xb0 unused */
- volatile uint32_t EU15; /* + 0xb4 unused */
- volatile uint32_t EU16; /* + 0xb8 unused */
- volatile uint32_t EU17; /* + 0xbc unused */
- volatile uint32_t EU20; /* + 0xc0 unused */
- volatile uint32_t EU21; /* + 0xc4 unused */
- volatile uint32_t EU22; /* + 0xc8 unused */
- volatile uint32_t EU23; /* + 0xcc unused */
- volatile uint32_t EU24; /* + 0xd0 unused */
- volatile uint32_t EU25; /* + 0xd4 unused */
- volatile uint32_t EU26; /* + 0xd8 unused */
- volatile uint32_t EU27; /* + 0xdc unused */
- volatile uint32_t EU30; /* + 0xe0 unused */
- volatile uint32_t EU31; /* + 0xe4 unused */
- volatile uint32_t EU32; /* + 0xe8 unused */
- volatile uint32_t EU33; /* + 0xec unused */
- volatile uint32_t EU34; /* + 0xf0 unused */
- volatile uint32_t EU35; /* + 0xf4 unused */
- volatile uint32_t EU36; /* + 0xf8 unused */
- volatile uint32_t EU37; /* + 0xfc unused */
-#if 0
- volatile uint32_t res8[0x340];
-#else
- volatile uint8_t res_1300[0xc00];
-
- volatile uint32_t reserved0; /* MBAR_XLB_ARB + 0x0000 reserved */
- volatile uint32_t reserved1; /* MBAR_XLB_ARB + 0x0004 reserved */
- volatile uint32_t reserved2; /* MBAR_XLB_ARB + 0x0008 reserved */
- volatile uint32_t reserved3; /* MBAR_XLB_ARB + 0x000c reserved */
- volatile uint32_t reserved4; /* MBAR_XLB_ARB + 0x0010 reserved */
- volatile uint32_t reserved5; /* MBAR_XLB_ARB + 0x0014 reserved */
- volatile uint32_t reserved6; /* MBAR_XLB_ARB + 0x0018 reserved */
- volatile uint32_t reserved7; /* MBAR_XLB_ARB + 0x001c reserved */
- volatile uint32_t reserved8; /* MBAR_XLB_ARB + 0x0020 reserved */
- volatile uint32_t reserved9; /* MBAR_XLB_ARB + 0x0024 reserved */
- volatile uint32_t reserved10; /* MBAR_XLB_ARB + 0x0028 reserved */
- volatile uint32_t reserved11; /* MBAR_XLB_ARB + 0x002c reserved */
- volatile uint32_t reserved12; /* MBAR_XLB_ARB + 0x0030 reserved */
- volatile uint32_t reserved13; /* MBAR_XLB_ARB + 0x0034 reserved */
- volatile uint32_t reserved14; /* MBAR_XLB_ARB + 0x0038 reserved */
- volatile uint32_t reserved15; /* MBAR_XLB_ARB + 0x003c reserved */
-
-#define XLB_CFG_PLDIS BSP_BBIT32(0)
-#define XLB_CFG_BSDIS BSP_BBIT32(15)
-#define XLB_CFG_SE BSP_BBIT32(16)
-#define XLB_CFG_USE_WWF BSP_BBIT32(17)
-#define XLB_CFG_TBEN BSP_BBIT32(18)
-#define XLB_CFG_WS BSP_BBIT32(20)
-#define XLB_CFG_SP(val) BSP_BFLD32(val, 21, 23)
-#define XLB_CFG_SET_SP(reg, val) BSP_BFLD32SET(reg, val, 21, 23)
-#define XLB_CFG_PM(val) BSP_BFLD32(val, 25, 26)
-#define XLB_CFG_SET_PM(reg, val) BSP_BFLD32SET(reg, val, 25, 26)
-#define XLB_CFG_BA BSP_BBIT32(28)
-#define XLB_CFG_DT BSP_BBIT32(29)
-#define XLB_CFG_AT BSP_BBIT32(30)
-
- volatile uint32_t config; /* MBAR_XLB_ARB + 0x0040 */
- volatile uint32_t version; /* MBAR_XLB_ARB + 0x0044 */
-
-#define XLB_ST_SEA BSP_BBIT32(23)
-#define XLB_ST_MM BSP_BBIT32(24)
-#define XLB_ST_TTA BSP_BBIT32(25)
-#define XLB_ST_TTR BSP_BBIT32(26)
-#define XLB_ST_ECW BSP_BBIT32(27)
-#define XLB_ST_TTM BSP_BBIT32(28)
-#define XLB_ST_BA BSP_BBIT32(29)
-#define XLB_ST_DT BSP_BBIT32(30)
-#define XLB_ST_AT BSP_BBIT32(31)
- /* read only = 0x0001 */
- volatile uint32_t xlb_status; /* MBAR_XLB_ARB + 0x0048 */
- volatile uint32_t int_enable; /* MBAR_XLB_ARB + 0x004c */
- volatile uint32_t add_capture; /* MBAR_XLB_ARB + 0x0050 read only */
- volatile uint32_t bus_sig_capture; /* MBAR_XLB_ARB + 0x0054 read only */
- volatile uint32_t add_time_out; /* MBAR_XLB_ARB + 0x0058 */
- volatile uint32_t data_time_out; /* MBAR_XLB_ARB + 0x005c */
- volatile uint32_t bus_time_out; /* MBAR_XLB_ARB + 0x0060 */
- volatile uint32_t priority_enable; /* MBAR_XLB_ARB + 0x0064 */
- volatile uint32_t priority; /* MBAR_XLB_ARB + 0x0068 */
- volatile uint32_t arb_base_addr2; /* MBAR_XLB_ARB + 0x006c */
- volatile uint32_t snoop_window; /* MBAR_XLB_ARB + 0x0070 */
-
- volatile uint32_t reserved16; /* MBAR_XLB_ARB + 0x0074 reserved */
- volatile uint32_t reserved17; /* MBAR_XLB_ARB + 0x0078 reserved */
- volatile uint32_t reserved18; /* MBAR_XLB_ARB + 0x007c reserved */
-
- volatile uint32_t control; /* MBAR_XLB_ARB + 0x0080 */
- volatile uint32_t init_total_count; /* MBAR_XLB_ARB + 0x0084 */
- volatile uint32_t int_total_count; /* MBAR_XLB_ARB + 0x0088 */
-
- volatile uint32_t reserved19; /* MBAR_XLB_ARB + 0x008c reserved */
-
- volatile uint32_t lower_address; /* MBAR_XLB_ARB + 0x0090 */
- volatile uint32_t higher_address; /* MBAR_XLB_ARB + 0x0094 */
- volatile uint32_t int_window_count; /* MBAR_XLB_ARB + 0x0098 */
- volatile uint32_t window_ter_count; /* MBAR_XLB_ARB + 0x009c */
- volatile uint8_t res_0x1fa0[0x60];
-
-
-#endif
- /*
- * programmable serial controller 1 (MBAR + 0x2000)
- */
-
- struct mpc5200_psc {
- volatile uint8_t mr; /* + 0x00 */
- volatile uint8_t res1[3];
- volatile uint16_t sr_csr; /* + 0x04 */
- volatile uint16_t res2[1];
- volatile uint16_t cr; /* + 0x08 */
- volatile uint16_t res3[1];
- volatile uint32_t rb_tb; /* + 0x0c */
- volatile uint16_t ipcr_acr; /* + 0x10 */
- volatile uint16_t res4[1];
- volatile uint16_t isr_imr; /* + 0x14 */
-#define ISR_TX_RDY (1 << 8)
-#define ISR_RX_RDY_FULL (1 << 9)
-#define ISR_RB (1 << 15)
-#define ISR_FE (1 << 14)
-#define ISR_PE (1 << 13)
-#define ISR_OE (1 << 12)
-#define ISR_ERROR (ISR_FE | ISR_PE | ISR_OE)
-
-#define IMR_TX_RDY (1 << 8)
-#define IMR_RX_RDY_FULL (1 << 9)
- volatile uint16_t res5[1];
- volatile uint8_t ctur; /* + 0x18 */
- volatile uint8_t res6[3];
- volatile uint8_t ctlr; /* + 0x1C */
- volatile uint8_t res7[0x13];
- volatile uint8_t ivr; /* + 0x30 */
- volatile uint8_t res8[3];
- volatile uint8_t ip; /* + 0x34 */
- volatile uint8_t res9[3];
- volatile uint8_t op1; /* + 0x38 */
- volatile uint8_t res10[3];
- volatile uint8_t op0; /* + 0x3C */
- volatile uint8_t res11[3];
- volatile uint8_t sicr; /* + 0x40 */
- volatile uint8_t res12[0x17];
- volatile uint16_t rfnum; /* + 0x58 */
- volatile uint16_t res13[1];
- volatile uint16_t tfnum; /* + 0x5C */
- volatile uint16_t res14[1];
- volatile uint16_t rfdata; /* + 0x60 */
- volatile uint16_t res15[1];
- volatile uint16_t rfstat; /* + 0x64 */
- volatile uint16_t res16[1];
- volatile uint8_t rfcntl; /* + 0x68 */
- volatile uint8_t res17[5];
- volatile uint16_t rfalarm; /* + 0x6E */
- volatile uint8_t res18[2];
- volatile uint16_t rfrptr; /* + 0x72 */
- volatile uint16_t res19[1];
- volatile uint16_t rfwptr; /* + 0x76 */
- volatile uint16_t res20[1];
- volatile uint16_t rflrfptr; /* + 0x7A */
- volatile uint16_t rflwfptr; /* + 0x7C */
- volatile uint16_t res21[1];
- volatile uint16_t tfdata; /* + 0x80 */
- volatile uint16_t res22[1];
- volatile uint16_t tfstat; /* + 0x84 */
- volatile uint16_t res23[1];
- volatile uint8_t tfcntl; /* + 0x88 */
- volatile uint8_t res24[5];
- volatile uint16_t tfalarm; /* + 0x8E */
- volatile uint8_t res25[2];
- volatile uint16_t tfrptr; /* + 0x92 */
- volatile uint16_t res26[1];
- volatile uint16_t tfwptr; /* + 0x96 */
- volatile uint16_t res27[1];
- volatile uint16_t tflrfptr; /* + 0x96 */
- volatile uint16_t tflwfptr; /* + 0x9C */
- volatile uint16_t res28[1]; /* end at offset 0x9F */
- volatile uint8_t res29[0x160];
- } psc[MPC5200_PSC_REG_SETS];
- /* XXX: there are only 6 PSCs, but PSC6 has an extra register gap
- * from PSC5, therefore we instantiate seven(!) PSC register sets
- */
-
-#define TX_FIFO_SIZE 256
-#define RX_FIFO_SIZE 512
-
-
- volatile uint8_t irda[0x200];
-
- /*
- * ethernet registers (MBAR + 0x3000)
- */
-
- /* Control and status Registers (offset 000-1FF) */
-
- volatile uint32_t fec_id; /* + 0x000 */
- volatile uint32_t ievent; /* + 0x004 */
- volatile uint32_t imask; /* + 0x008 */
-
- volatile uint32_t res9[1]; /* + 0x00C */
- volatile uint32_t r_des_active; /* + 0x010 */
- volatile uint32_t x_des_active; /* + 0x014 */
- volatile uint32_t r_des_active_cl; /* + 0x018 */
- volatile uint32_t x_des_active_cl; /* + 0x01C */
- volatile uint32_t ivent_set; /* + 0x020 */
- volatile uint32_t ecntrl; /* + 0x024 */
-
- volatile uint32_t res10[6]; /* + 0x028-03C */
- volatile uint32_t mii_data; /* + 0x040 */
- volatile uint32_t mii_speed; /* + 0x044 */
- volatile uint32_t mii_status; /* + 0x048 */
-
- volatile uint32_t res11[5]; /* + 0x04C-05C */
- volatile uint32_t mib_data; /* + 0x060 */
- volatile uint32_t mib_control; /* + 0x064 */
-
- volatile uint32_t res12[6]; /* + 0x068-7C */
- volatile uint32_t r_activate; /* + 0x080 */
- volatile uint32_t r_cntrl; /* + 0x084 */
- volatile uint32_t r_hash; /* + 0x088 */
- volatile uint32_t r_data; /* + 0x08C */
- volatile uint32_t ar_done; /* + 0x090 */
- volatile uint32_t r_test; /* + 0x094 */
- volatile uint32_t r_mib; /* + 0x098 */
- volatile uint32_t r_da_low; /* + 0x09C */
- volatile uint32_t r_da_high; /* + 0x0A0 */
-
- volatile uint32_t res13[7]; /* + 0x0A4-0BC */
- volatile uint32_t x_activate; /* + 0x0C0 */
- volatile uint32_t x_cntrl; /* + 0x0C4 */
- volatile uint32_t backoff; /* + 0x0C8 */
- volatile uint32_t x_data; /* + 0x0CC */
- volatile uint32_t x_status; /* + 0x0D0 */
- volatile uint32_t x_mib; /* + 0x0D4 */
- volatile uint32_t x_test; /* + 0x0D8 */
- volatile uint32_t fdxfc_da1; /* + 0x0DC */
- volatile uint32_t fdxfc_da2; /* + 0x0E0 */
- volatile uint32_t paddr1; /* + 0x0E4 */
- volatile uint32_t paddr2; /* + 0x0E8 */
- volatile uint32_t op_pause; /* + 0x0EC */
-
- volatile uint32_t res14[4]; /* + 0x0F0-0FC */
- volatile uint32_t instr_reg; /* + 0x100 */
- volatile uint32_t context_reg; /* + 0x104 */
- volatile uint32_t test_cntrl; /* + 0x108 */
- volatile uint32_t acc_reg; /* + 0x10C */
- volatile uint32_t ones; /* + 0x110 */
- volatile uint32_t zeros; /* + 0x114 */
- volatile uint32_t iaddr1; /* + 0x118 */
- volatile uint32_t iaddr2; /* + 0x11C */
- volatile uint32_t gaddr1; /* + 0x120 */
- volatile uint32_t gaddr2; /* + 0x124 */
- volatile uint32_t random; /* + 0x128 */
- volatile uint32_t rand1; /* + 0x12C */
- volatile uint32_t tmp; /* + 0x130 */
-
- volatile uint32_t res15[3]; /* + 0x134-13C */
- volatile uint32_t fifo_id; /* + 0x140 */
- volatile uint32_t x_wmrk; /* + 0x144 */
- volatile uint32_t fcntrl; /* + 0x148 */
- volatile uint32_t r_bound; /* + 0x14C */
- volatile uint32_t r_fstart; /* + 0x150 */
- volatile uint32_t r_count; /* + 0x154 */
- volatile uint32_t r_lag; /* + 0x158 */
- volatile uint32_t r_read; /* + 0x15C */
- volatile uint32_t r_write; /* + 0x160 */
- volatile uint32_t x_count; /* + 0x164 */
- volatile uint32_t x_lag; /* + 0x168 */
- volatile uint32_t x_retry; /* + 0x16C */
- volatile uint32_t x_write; /* + 0x170 */
- volatile uint32_t x_read; /* + 0x174 */
-
- volatile uint32_t res16[2]; /* + 0x178-17C */
- volatile uint32_t fm_cntrl; /* + 0x180 */
- volatile uint32_t rfifo_data; /* + 0x184 */
- volatile uint32_t rfifo_status; /* + 0x188 */
- volatile uint32_t rfifo_cntrl; /* + 0x18C */
- volatile uint32_t rfifo_lrf_ptr; /* + 0x190 */
- volatile uint32_t rfifo_lwf_ptr; /* + 0x194 */
- volatile uint32_t rfifo_alarm; /* + 0x198 */
- volatile uint32_t rfifo_rdptr; /* + 0x19C */
- volatile uint32_t rfifo_wrptr; /* + 0x1A0 */
- volatile uint32_t tfifo_data; /* + 0x1A4 */
- volatile uint32_t tfifo_status; /* + 0x1A8 */
- volatile uint32_t tfifo_cntrl; /* + 0x1AC */
- volatile uint32_t tfifo_lrf_ptr; /* + 0x1B0 */
- volatile uint32_t tfifo_lwf_ptr; /* + 0x1B4 */
- volatile uint32_t tfifo_alarm; /* + 0x1B8 */
- volatile uint32_t tfifo_rdptr; /* + 0x1BC */
- volatile uint32_t tfifo_wrptr; /* + 0x1C0 */
-
- volatile uint32_t reset_cntrl; /* + 0x1C4 */
- volatile uint32_t xmit_fsm; /* + 0x1C8 */
-
- volatile uint32_t res17[3]; /* + 0x1CC-1D4 */
- volatile uint32_t rdes_data0; /* + 0x1D8 */
- volatile uint32_t rdes_data1; /* + 0x1DC */
- volatile uint32_t r_length; /* + 0x1E0 */
- volatile uint32_t x_length; /* + 0x1E4 */
- volatile uint32_t x_addr; /* + 0x1E8 */
- volatile uint32_t cdes_data; /* + 0x1EC */
- volatile uint32_t status; /* + 0x1F0 */
- volatile uint32_t dma_control; /* + 0x1F4 */
- volatile uint32_t des_cmnd; /* + 0x1F8 */
- volatile uint32_t data; /* + 0x1FC */
-
- volatile uint8_t RES[0x600];
-
-
-#if 0
- /* MIB COUNTERS (Offset 200-2FF) */
-
- volatile uint32_t rmon_t_drop; /* + 0x200 */
- volatile uint32_t rmon_t_packets; /* + 0x204 */
- volatile uint32_t rmon_t_bc_pkt; /* + 0x208 */
- volatile uint32_t rmon_t_mc_pkt; /* + 0x20C */
- volatile uint32_t rmon_t_crc_align; /* + 0x210 */
- volatile uint32_t rmon_t_undersize; /* + 0x214 */
- volatile uint32_t rmon_t_oversize; /* + 0x218 */
- volatile uint32_t rmon_t_frag; /* + 0x21C */
- volatile uint32_t rmon_t_jab; /* + 0x220 */
- volatile uint32_t rmon_t_col; /* + 0x224 */
- volatile uint32_t rmon_t_p64; /* + 0x228 */
- volatile uint32_t rmon_t_p65to127; /* + 0x22C */
- volatile uint32_t rmon_t_p128to255; /* + 0x230 */
- volatile uint32_t rmon_t_p256to511; /* + 0x234 */
- volatile uint32_t rmon_t_p512to1023; /* + 0x238 */
- volatile uint32_t rmon_t_p1024to2047; /* + 0x23C */
- volatile uint32_t rmon_t_p_gte2048; /* + 0x240 */
- volatile uint32_t rmon_t_octets; /* + 0x244 */
- volatile uint32_t ieee_t_drop; /* + 0x248 */
- volatile uint32_t ieee_t_frame_ok; /* + 0x24C */
- volatile uint32_t ieee_t_1col; /* + 0x250 */
- volatile uint32_t ieee_t_mcol; /* + 0x254 */
- volatile uint32_t ieee_t_def; /* + 0x258 */
- volatile uint32_t ieee_t_lcol; /* + 0x25C */
- volatile uint32_t ieee_t_excol; /* + 0x260 */
- volatile uint32_t ieee_t_macerr; /* + 0x264 */
- volatile uint32_t ieee_t_cserr; /* + 0x268 */
- volatile uint32_t ieee_t_sqe; /* + 0x26C */
- volatile uint32_t t_fdxfc; /* + 0x270 */
- volatile uint32_t ieee_t_octets_ok; /* + 0x274 */
-
- volatile uint32_t res18[2]; /* + 0x278-27C */
- volatile uint32_t rmon_r_drop; /* + 0x280 */
- volatile uint32_t rmon_r_packets; /* + 0x284 */
- volatile uint32_t rmon_r_bc_pkt; /* + 0x288 */
- volatile uint32_t rmon_r_mc_pkt; /* + 0x28C */
- volatile uint32_t rmon_r_crc_align; /* + 0x290 */
- volatile uint32_t rmon_r_undersize; /* + 0x294 */
- volatile uint32_t rmon_r_oversize; /* + 0x298 */
- volatile uint32_t rmon_r_frag; /* + 0x29C */
- volatile uint32_t rmon_r_jab; /* + 0x2A0 */
-
- volatile uint32_t rmon_r_resvd_0; /* + 0x2A4 */
-
- volatile uint32_t rmon_r_p64; /* + 0x2A8 */
- volatile uint32_t rmon_r_p65to127; /* + 0x2AC */
- volatile uint32_t rmon_r_p128to255; /* + 0x2B0 */
- volatile uint32_t rmon_r_p256to511; /* + 0x2B4 */
- volatile uint32_t rmon_r_p512to1023; /* + 0x2B8 */
- volatile uint32_t rmon_r_p1024to2047; /* + 0x2BC */
- volatile uint32_t rmon_r_p_gte2048; /* + 0x2C0 */
- volatile uint32_t rmon_r_octets; /* + 0x2C4 */
- volatile uint32_t ieee_r_drop; /* + 0x2C8 */
- volatile uint32_t ieee_r_frame_ok; /* + 0x2CC */
- volatile uint32_t ieee_r_crc; /* + 0x2D0 */
- volatile uint32_t ieee_r_align; /* + 0x2D4 */
- volatile uint32_t r_macerr; /* + 0x2D8 */
- volatile uint32_t r_fdxfc; /* + 0x2DC */
- volatile uint32_t ieee_r_octets_ok; /* + 0x2E0 */
-
- volatile uint32_t res19[6]; /* + 0x2E4-2FC */
-
- volatile uint32_t res20[64]; /* + 0x300-3FF */
-
- volatile uint32_t res21[256]; /* + 0x400-800 */
-#endif
-
- /*
- * SmartComm DMA PCI registers (MBAR + 0x3800)
- */
- volatile uint8_t pci[0x200];
-
- /*
- * advanced technology attachment registers (MBAR + 0x3A00)
- */
-
- /* ATA host registers (offset 0x00-0x28) */
- volatile uint32_t ata_hcfg; /* + 0x00 */
- volatile uint32_t ata_hsr; /* + 0x04 */
- volatile uint32_t ata_pio1; /* + 0x08 */
- volatile uint32_t ata_pio2; /* + 0x0C */
- volatile uint32_t ata_dma1; /* + 0x10 */
- volatile uint32_t ata_dma2; /* + 0x14 */
- volatile uint32_t ata_udma1; /* + 0x18 */
- volatile uint32_t ata_udma2; /* + 0x1C */
- volatile uint32_t ata_udma3; /* + 0x20 */
- volatile uint32_t ata_udma4; /* + 0x24 */
- volatile uint32_t ata_udma5; /* + 0x28 */
- volatile uint32_t ata_res1[4]; /* + 0x2C-0x3C */
-
- /* ATA FIFO registers (offset 0x3C-0x50) */
- volatile uint32_t ata_rtfdwr; /* + 0x3C */
-
-#define ATA_RTFSR_ERR BSP_BBIT32(9)
-#define ATA_RTFSR_UF BSP_BBIT32(10)
-#define ATA_RTFSR_OF BSP_BBIT32(11)
-#define ATA_RTFSR_FULL BSP_BBIT32(12)
-#define ATA_RTFSR_HI BSP_BBIT32(13)
-#define ATA_RTFSR_LO BSP_BBIT32(14)
-#define ATA_RTFSR_EMPTY BSP_BBIT32(15)
-
- volatile uint32_t ata_rtfsr; /* + 0x40 */
-
-#define ATA_RTFCR_WFR BSP_BBIT32(2)
-#define ATA_RTFCR_GR(val) BSP_BFLD32(val, 5, 7)
-
- volatile uint32_t ata_rtfcr; /* + 0x44 */
- volatile uint32_t ata_rtfar; /* + 0x48 */
- volatile uint32_t ata_rtfrpr; /* + 0x4C */
- volatile uint32_t ata_rtfwpr; /* + 0x50 */
- volatile uint32_t ata_res2[2]; /* + 0x54-0x5C */
-
- /* ATA drive registers (offset 0x5C-0x80) */
- volatile uint32_t ata_dctr_dasr; /* + 0x5C */
- volatile uint32_t ata_ddr; /* + 0x60 */
- volatile uint32_t ata_dfr_der; /* + 0x64 */
- volatile uint32_t ata_dscr; /* + 0x68 */
- volatile uint32_t ata_dsnr; /* + 0x6C */
- volatile uint32_t ata_dclr; /* + 0x70 */
- volatile uint32_t ata_dchr; /* + 0x74 */
- volatile uint32_t ata_ddhr; /* + 0x78 */
- volatile uint32_t ata_dcr_dsr; /* + 0x7C */
- volatile uint32_t ata_res3[0xA0]; /* + 0x80-0x200 */
-
- /*
- * inter-integrated circuit registers (MBAR + 0x3D00)
- */
- struct mpc5200_i2c_regs_s {
- volatile uint8_t madr; /* i2c address reg. + 0x00 */
- volatile uint8_t res_1[3];
- volatile uint8_t mfdr; /* i2c freq. divider reg. + 0x04 */
- volatile uint8_t res_5[3];
- volatile uint8_t mcr; /* i2c control reg. + 0x08 */
- volatile uint8_t res_9[3];
-
-#define MPC5200_I2C_MCR_MEN (1 << (7-0))
-#define MPC5200_I2C_MCR_MIEN (1 << (7-1))
-#define MPC5200_I2C_MCR_MSTA (1 << (7-2))
-#define MPC5200_I2C_MCR_MTX (1 << (7-3))
-#define MPC5200_I2C_MCR_TXAK (1 << (7-4))
-#define MPC5200_I2C_MCR_RSTA (1 << (7-5))
-
- volatile uint8_t msr; /* i2c status reg. + 0x0C */
- volatile uint8_t res_d[3];
-#define MPC5200_I2C_MSR_CF (1 << (7-0))
-#define MPC5200_I2C_MSR_MAAS (1 << (7-1))
-#define MPC5200_I2C_MSR_BB (1 << (7-2))
-#define MPC5200_I2C_MSR_MAL (1 << (7-3))
-#define MPC5200_I2C_MSR_SRW (1 << (7-5))
-#define MPC5200_I2C_MSR_MIF (1 << (7-6))
-#define MPC5200_I2C_MSR_RXAK (1 << (7-7))
- volatile uint8_t mdr; /* i2c data I/O reg. + 0x10 */
- volatile uint8_t res_11[3];
- volatile uint8_t res_14[12]; /* reserved + 0x14 */
- volatile uint8_t icr; /* i2c irq ctrl reg. + 0x20 */
-#define MPC5200_I2C_ICR_BNBE2 (1 << (7-0))
-#define MPC5200_I2C_ICR_TE2 (1 << (7-1))
-#define MPC5200_I2C_ICR_RE2 (1 << (7-2))
-#define MPC5200_I2C_ICR_IE2 (1 << (7-3))
-#define MPC5200_I2C_ICR_MASK2 (MPC5200_I2C_ICR_BNBE2|MPC5200_I2C_ICR_TE2\
- |MPC5200_I2C_ICR_RE2|MPC5200_I2C_ICR_IE2)
-#define MPC5200_I2C_ICR_BNBE1 (1 << (7-4))
-#define MPC5200_I2C_ICR_TE1 (1 << (7-5))
-#define MPC5200_I2C_ICR_RE1 (1 << (7-6))
-#define MPC5200_I2C_ICR_IE1 (1 << (7-7))
-#define MPC5200_I2C_ICR_MASK1 (MPC5200_I2C_ICR_BNBE1|MPC5200_I2C_ICR_TE1\
- |MPC5200_I2C_ICR_RE1|MPC5200_I2C_ICR_IE1)
- volatile uint8_t res_21[3];
- volatile uint32_t res_24[7]; /* reserved + 0x24 */
- } i2c_regs[2];
- volatile uint8_t res_3d80[0x280];
-
- /*
- * on-chip static RAM memory locations (MBAR + 0x4000)
- */
- volatile uint8_t sram_res0x4000[0x4000];
- volatile uint8_t sram[0x4000];
-
-} mpc5200_t;
-
-extern volatile mpc5200_t mpc5200;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /*ASM*/
-
-#endif /* __MPC5200_h__ */
diff --git a/c/src/lib/libbsp/powerpc/gen5200/include/mscan-base.h b/c/src/lib/libbsp/powerpc/gen5200/include/mscan-base.h
deleted file mode 100644
index a2b8737d8e..0000000000
--- a/c/src/lib/libbsp/powerpc/gen5200/include/mscan-base.h
+++ /dev/null
@@ -1,284 +0,0 @@
-/**
- * @file
- *
- * @ingroup m
- *
- * @brief MSCAN register definitions and support functions.
- */
-
-/*
- * Copyright (c) 2008
- * Embedded Brains GmbH
- * Obere Lagerstr. 30
- * D-82178 Puchheim
- * Germany
- * rtems@embedded-brains.de
- *
- * 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_MSCAN_BASE_H
-#define LIBBSP_MSCAN_BASE_H
-
-#include <stdbool.h>
-
-#include <bsp/mpc5200.h>
-
-/**
- * @defgroup m MSCAN
- *
- * @{
- */
-
-#define MSCAN_BIT_RATE_MIN 10000
-
-#define MSCAN_BIT_RATE_MAX 1000000
-
-#define MSCAN_BIT_RATE_DEFAULT 125000
-
-#define MSCAN_FILTER_NUMBER_MIN 0
-
-#define MSCAN_FILTER_NUMBER_2 2
-
-#define MSCAN_FILTER_NUMBER_4 4
-
-#define MSCAN_FILTER_NUMBER_MAX 8
-
-#define MSCAN_FILTER_ID_DEFAULT 0U
-
-#define MSCAN_FILTER_MASK_DEFAULT 0xffffffffU
-
-#define MSCAN_TRANSMIT_BUFFER_NUMBER 3
-
-/**
- * @name MSCAN Control Register 0 (CANCTL0)
- *
- * @{
- */
-
-#define CTL0_RXFRM (1 << 7)
-#define CTL0_RXACT (1 << 6)
-#define CTL0_CSWAI (1 << 5)
-#define CTL0_SYNCH (1 << 4)
-#define CTL0_TIME (1 << 3)
-#define CTL0_WUPE (1 << 2)
-#define CTL0_SLPRQ (1 << 1)
-#define CTL0_INITRQ (1 << 0)
-
-/** @} */
-
-/**
- * @name MSCAN Control Register 1 (CANCTL1)
- *
- * @{
- */
-
-#define CTL1_CANE (1 << 7)
-#define CTL1_CLKSRC (1 << 6)
-#define CTL1_LOOPB (1 << 5)
-#define CTL1_LISTEN (1 << 4)
-#define CTL1_WUPM (1 << 2)
-#define CTL1_SLPAK (1 << 1)
-#define CTL1_INITAK (1 << 0)
-
-/** @} */
-
-/**
- * @name MSCAN Bus Timing Register 0 (CANBTR0)
- *
- * @{
- */
-
-#define BTR0_SJW_MASK 0xc0
-#define BTR0_BRP_MASK 0x3f
-
-#define BTR0_SJW( btr0) ((btr0) << 6)
-#define BTR0_BRP( btr0) ((btr0) << 0)
-
-#define BTR0_GET_SJW( btr0) (((btr0) & BTR0_SJW_MASK) >> 6)
-#define BTR0_GET_BRP( btr0) (((btr0) & BTR0_BRP_MASK) >> 0)
-
-/** @} */
-
-/**
- * @name MSCAN Bus Timing Register 1 (CANBTR1)
- *
- * @{
- */
-
-#define BTR1_SAMP_MASK 0x80
-#define BTR1_TSEG1_MASK 0x0f
-#define BTR1_TSEG2_MASK 0x70
-
-#define BTR1_SAMP (1 << 7)
-#define BTR1_TSEG1( btr1) ((btr1) << 0)
-#define BTR1_TSEG2( btr1) ((btr1) << 4)
-
-#define BTR1_GET_TSEG1( btr0) (((btr0) & BTR1_TSEG1_MASK) >> 0)
-#define BTR1_GET_TSEG2( btr0) (((btr0) & BTR1_TSEG2_MASK) >> 4)
-
-/** @} */
-
-/**
- * @name MSCAN Receiver Flag Register (CANRFLG)
- *
- * @{
- */
-
-#define RFLG_WUPIF (1 << 7)
-#define RFLG_CSCIF (1 << 6)
-#define RFLG_RSTAT_MASK (3 << 4)
-#define RFLG_RSTAT_OK (0 << 4)
-#define RFLG_RSTAT_WRN (1 << 4)
-#define RFLG_RSTAT_ERR (2 << 4)
-#define RFLG_RSTAT_OFF (3 << 4)
-#define RFLG_TSTAT_MASK (3 << 2)
-#define RFLG_TSTAT_OK (0 << 2)
-#define RFLG_TSTAT_WRN (1 << 2)
-#define RFLG_TSTAT_ERR (2 << 2)
-#define RFLG_TSTAT_OFF (3 << 2)
-#define RFLG_OVRIF (1 << 1)
-#define RFLG_RXF (1 << 0)
-#define RFLG_GET_RX_STATE(rflg) (((rflg) >> 4) & 0x03)
-#define RFLG_GET_TX_STATE(rflg) (((rflg) >> 2) & 0x03)
-
-/** @} */
-
-/**
- * @name MSCAN Receiver Interrupt Enable Register (CANRIER)
- *
- * @{
- */
-
-#define RIER_WUPIE (1 << 7)
-#define RIER_CSCIE (1 << 6)
-#define RIER_RSTAT(rier) ((rier) << 4)
-#define RIER_TSTAT(rier) ((rier) << 2)
-#define RIER_OVRIE (1 << 1)
-#define RIER_RXFIE (1 << 0)
-
-/** @} */
-
-/**
- * @name MSCAN Transmitter Flag Register (CANTFLG)
- *
- * @{
- */
-
-#define TFLG_TXE2 (1 << 2)
-#define TFLG_TXE1 (1 << 1)
-#define TFLG_TXE0 (1 << 0)
-
-/** @} */
-
-/**
- * @name MSCAN Transmitter Interrupt Enable Register (CANTIER)
- *
- * @{
- */
-
-#define TIER_TXEI2 (1 << 2)
-#define TIER_TXEI1 (1 << 1)
-#define TIER_TXEI0 (1 << 0)
-
-/** @} */
-
-/**
- * @name MSCAN Transmitter Message Abort Request (CANTARQ)
- *
- * @{
- */
-
-#define TARQ_ABTRQ2 (1 << 2)
-#define TARQ_ABTRQ1 (1 << 1)
-#define TARQ_ABTRQ0 (1 << 0)
-
-/** @} */
-
-/**
- * @name MSCAN Transmitter Message Abort Acknoledge (CANTAAK)
- *
- * @{
- */
-
-#define TAAK_ABTRQ2 (1 << 2)
-#define TAAK_ABTRQ1 (1 << 1)
-#define TAAK_ABTRQ0 (1 << 0)
-
-/** @} */
-
-/**
- * @name MSCAN Transmit Buffer Selection (CANBSEL)
- *
- * @{
- */
-
-#define BSEL_TX2 (1 << 2)
-#define BSEL_TX1 (1 << 1)
-#define BSEL_TX0 (1 << 0)
-
-/** @} */
-
-/**
- * @name MSCAN ID Acceptance Control Register (CANIDAC)
- *
- * @{
- */
-
-#define IDAC_IDAM1 (1 << 5)
-#define IDAC_IDAM0 (1 << 4)
-#define IDAC_IDAM (IDAC_IDAM1 | IDAC_IDAM0)
-#define IDAC_IDHIT( idac) ((idac) & 0x7)
-
-/** @} */
-
-/**
- * @brief MSCAN registers.
- */
-typedef struct mpc5200_mscan mscan;
-
-/**
- * @brief MSCAN context that has to be saved throughout the initialization
- * mode.
- */
-typedef struct {
- uint8_t ctl0;
- uint8_t rier;
- uint8_t tier;
-} mscan_context;
-
-bool mscan_enable( volatile mscan *m, unsigned bit_rate);
-
-void mscan_disable( volatile mscan *m);
-
-void mscan_interrupts_disable( volatile mscan *m);
-
-bool mscan_set_bit_rate( volatile mscan *m, unsigned bit_rate);
-
-void mscan_initialization_mode_enter( volatile mscan *m, mscan_context *context);
-
-void mscan_initialization_mode_leave( volatile mscan *m, const mscan_context *context);
-
-void mscan_sleep_mode_enter( volatile mscan *m);
-
-void mscan_sleep_mode_leave( volatile mscan *m);
-
-volatile uint8_t *mscan_id_acceptance_register( volatile mscan *m, unsigned i);
-
-volatile uint8_t *mscan_id_mask_register( volatile mscan *m, unsigned i);
-
-unsigned mscan_filter_number( volatile mscan *m);
-
-bool mscan_set_filter_number( volatile mscan *m, unsigned number);
-
-bool mscan_filter_operation( volatile mscan *m, bool set, unsigned index, uint32_t *id, uint32_t *mask);
-
-void mscan_filter_clear( volatile mscan *m);
-
-void mscan_get_error_counters( volatile mscan *m, unsigned *rec, unsigned *tec);
-
-/** @} */
-
-#endif /* LIBBSP_MSCAN_BASE_H */
diff --git a/c/src/lib/libbsp/powerpc/gen5200/include/tm27.h b/c/src/lib/libbsp/powerpc/gen5200/include/tm27.h
deleted file mode 100644
index ff43cc9ab6..0000000000
--- a/c/src/lib/libbsp/powerpc/gen5200/include/tm27.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * @file
- * @ingroup powerpc_gen5200
- * @brief Implementations for interrupt mechanisms for Time Test 27
- */
-
-/*
- * 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 _RTEMS_TMTEST27
-#error "This is an RTEMS internal file you must not include directly."
-#endif
-
-#ifndef __tm27_h
-#define __tm27_h
-
-#include <bsp/fatal.h>
-#include <bsp/irq.h>
-
-/*
- * Stuff for Time Test 27
- */
-
-#define MUST_WAIT_FOR_INTERRUPT 1
-
-void nullFunc() {}
-
-static rtems_irq_connect_data clockIrqData = {BSP_DECREMENTER,
- 0,
- (rtems_irq_enable)nullFunc,
- (rtems_irq_disable)nullFunc,
- (rtems_irq_is_enabled) nullFunc};
-void Install_tm27_vector(void (*_handler)())
-{
- clockIrqData.hdl = _handler;
- if (!BSP_install_rtems_irq_handler (&clockIrqData)) {
- printk("Error installing clock interrupt handler!\n");
- bsp_fatal(MPC5200_FATAL_TM27_IRQ_INSTALL);
- }
-}
-
-#define Cause_tm27_intr() \
- do { \
- uint32_t _clicks = 8; \
- __asm__ volatile( "mtdec %0" : "=r" ((_clicks)) : "r" ((_clicks)) ); \
- } while (0)
-
-#define Clear_tm27_intr() \
- do { \
- uint32_t _clicks = 0xffffffff; \
- __asm__ volatile( "mtdec %0" : "=r" ((_clicks)) : "r" ((_clicks)) ); \
- } while (0)
-
-#define Lower_tm27_intr() \
- do { \
- uint32_t _msr = 0; \
- _ISR_Set_level( 0 ); \
- __asm__ volatile( "mfmsr %0 ;" : "=r" (_msr) : "r" (_msr) ); \
- _msr |= 0x8002; \
- __asm__ volatile( "mtmsr %0 ;" : "=r" (_msr) : "r" (_msr) ); \
- } while (0)
-
-#endif
diff --git a/c/src/lib/libbsp/powerpc/gen5200/include/u-boot-config.h b/c/src/lib/libbsp/powerpc/gen5200/include/u-boot-config.h
deleted file mode 100644
index 2fee83bce9..0000000000
--- a/c/src/lib/libbsp/powerpc/gen5200/include/u-boot-config.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- * Copyright (c) 2010 embedded brains GmbH. All rights reserved.
- *
- * embedded brains GmbH
- * Obere Lagerstr. 30
- * 82178 Puchheim
- * Germany
- * <rtems@embedded-brains.de>
- *
- * 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_POWERPC_GEN52XX_U_BOOT_CONFIG_H
-#define LIBBSP_POWERPC_GEN52XX_U_BOOT_CONFIG_H
-
-#define CONFIG_MPC5xxx
-
-#endif /* LIBBSP_POWERPC_GEN52XX_U_BOOT_CONFIG_H */