File indexing completed on 2025-05-11 08:23:56
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018 #ifndef LIBBSP_POWERPC_MVME3100_BSP_H
0019 #define LIBBSP_POWERPC_MVME3100_BSP_H
0020
0021 #ifndef ASM
0022
0023 #include <bspopts.h>
0024 #include <bsp/default-initial-extension.h>
0025
0026 #include <rtems.h>
0027 #include <libcpu/io.h>
0028 #include <bsp/vectors.h>
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039
0040 #define BSP_INTERRUPT_STACK_SIZE (16 * 1024)
0041
0042
0043
0044
0045
0046
0047
0048
0049
0050
0051
0052
0053
0054
0055
0056
0057
0058
0059
0060
0061
0062
0063
0064
0065
0066
0067
0068
0069
0070
0071
0072
0073
0074
0075
0076
0077
0078
0079
0080
0081
0082
0083
0084
0085
0086
0087
0088
0089
0090
0091 #define _IO_BASE 0xe0000000
0092 #define _ISA_MEM_BASE CHRP_ISA_MEM_BASE
0093
0094 #define PCI_DRAM_OFFSET CHRP_PCI_DRAM_OFFSET
0095
0096 #define PCI_MEM_BASE 0
0097
0098 #define PCI_MEM_WIN0 0x80000000
0099
0100
0101
0102
0103
0104 #define BSP_OPEN_PIC_BASE_OFFSET 0x40000
0105 #define BSP_OPEN_PIC_BIG_ENDIAN
0106
0107 #define BSP_8540_CCSR_BASE (0xe1000000)
0108
0109 #define BSP_UART_IOBASE_COM1 (BSP_8540_CCSR_BASE+0x4500)
0110 #define BSP_UART_IOBASE_COM2 (BSP_8540_CCSR_BASE+0x4600)
0111 #define PCI_CONFIG_ADDR (BSP_8540_CCSR_BASE+0x8000)
0112 #define PCI_CONFIG_DATA (BSP_8540_CCSR_BASE+0x8004)
0113 #define PCI_CONFIG_WR_ADDR( addr, val ) out_be32((uint32_t*)(addr), (val))
0114
0115 #define BSP_CONSOLE_PORT BSP_UART_COM1
0116 #define BSP_UART_BAUD_BASE (-9600)
0117 #define BSP_UART_USE_SHARED_IRQS
0118
0119 #define BSP_MVME3100_IRQ_DETECT_REG ((volatile uint8_t *)0xe2000007)
0120
0121
0122
0123
0124
0125 #define BSP_VPD_I2C_ADDR (0xA8>>1)
0126 #define BSP_USR0_I2C_ADDR (0xA4>>1)
0127 #define BSP_USR1_I2C_ADDR (0xA6>>1)
0128 #define BSP_THM_I2C_ADDR (0x90>>1)
0129 #define BSP_RTC_I2C_ADDR (0xD0>>1)
0130
0131 #define BSP_I2C_BUS_DESCRIPTOR mpc8540_i2c_bus_descriptor
0132
0133 #define BSP_I2C_BUS0_NAME "/dev/i2c0"
0134
0135 #define BSP_I2C_VPD_EEPROM_NAME "vpd-eeprom"
0136 #define BSP_I2C_USR_EEPROM_NAME "usr-eeprom"
0137 #define BSP_I2C_USR1_EEPROM_NAME "usr1-eeprom"
0138 #define BSP_I2C_DS1621_NAME "ds1621"
0139 #define BSP_I2C_THM_NAME BSP_I2C_DS1621_NAME
0140 #define BSP_I2C_DS1621_RAW_NAME "ds1621-raw"
0141 #define BSP_I2C_DS1375_RAW_NAME "ds1375-raw"
0142 #define BSP_I2C_RTC_RAW_NAME BSP_I2C_DS1375_RAW_NAME
0143
0144 #define BSP_I2C_VPD_EEPROM_DEV_NAME (BSP_I2C_BUS0_NAME "." BSP_I2C_VPD_EEPROM_NAME)
0145 #define BSP_I2C_USR_EEPROM_DEV_NAME (BSP_I2C_BUS0_NAME "." BSP_I2C_USR_EEPROM_NAME)
0146 #define BSP_I2C_USR1_EEPROM_DEV_NAME (BSP_I2C_BUS0_NAME "." BSP_I2C_USR1_EEPROM_NAME)
0147 #define BSP_I2C_DS1621_DEV_NAME (BSP_I2C_BUS0_NAME "." BSP_I2C_DS1621_NAME)
0148 #define BSP_I2C_THM_DEV_NAME BSP_I2C_DS1621_DEV_NAME
0149 #define BSP_I2C_DS1621_RAW_DEV_NAME (BSP_I2C_BUS0_NAME "." BSP_I2C_DS1621_RAW_NAME)
0150 #define BSP_I2C_DS1375_RAW_DEV_NAME (BSP_I2C_BUS0_NAME "." BSP_I2C_DS1375_RAW_NAME)
0151
0152
0153
0154
0155 #define BSP_EEPROM_BOOTPARMS_NAME BSP_I2C_USR1_EEPROM_DEV_NAME
0156 #define BSP_EEPROM_BOOTPARMS_SIZE 1024
0157 #define BSP_EEPROM_BOOTPARMS_OFFSET 0
0158 #define BSP_BOOTPARMS_WRITE_ENABLE() do { BSP_eeprom_write_enable(); } while (0)
0159 #define BSP_BOOTPARMS_WRITE_DISABLE() do { BSP_eeprom_write_protect();} while (0)
0160
0161
0162 #ifdef __cplusplus
0163 extern "C" {
0164 #endif
0165
0166
0167
0168
0169
0170
0171
0172
0173
0174
0175
0176
0177
0178
0179
0180 int BSP_i2c_initialize(void);
0181
0182
0183 #define BSP_MVME3100_SYS_CR ((volatile uint8_t *)0xe2000001)
0184 #define BSP_MVME3100_SYS_CR_RESET_MSK (7<<5)
0185 #define BSP_MVME3100_SYS_CR_RESET (5<<5)
0186 #define BSP_MVME3100_SYS_CR_EEPROM_WP (1<<1)
0187 #define BSP_MVME3100_SYS_CR_TSTAT_MSK (1<<0)
0188
0189
0190 #define BSP_MVME3100_SYS_IND_REG ((volatile uint8_t *)0xe2000002)
0191 #define BSP_LED_BRD_FAIL (1<<0)
0192 #define BSP_LED_USR1 (1<<1)
0193 #define BSP_LED_USR2 (1<<2)
0194 #define BSP_LED_USR3 (1<<3)
0195
0196
0197 #define BSP_MVME3100_FLASH_CSR ((volatile uint8_t *)0xe2000003)
0198 #define BSP_MVME3100_FLASH_CSR_FLASH_RDY (1<<0)
0199 #define BSP_MVME3100_FLASH_CSR_FBT_BLK_SEL (1<<1)
0200 #define BSP_MVME3100_FLASH_CSR_F_WP_HW (1<<2)
0201 #define BSP_MVME3100_FLASH_CSR_F_WP_SW (1<<3)
0202 #define BSP_MVME3100_FLASH_CSR_MAP_SEL (1<<4)
0203
0204
0205 #define BSP_MVME3100_IRQ_DETECT_REG ((volatile uint8_t *)0xe2000007)
0206
0207
0208
0209
0210
0211
0212
0213
0214
0215
0216 uint8_t BSP_setSysReg(volatile uint8_t *r, uint8_t mask);
0217
0218
0219
0220
0221
0222
0223
0224
0225
0226
0227
0228 uint8_t BSP_clrSysReg(volatile uint8_t *r, uint8_t mask);
0229
0230
0231
0232
0233
0234
0235 uint8_t BSP_eeprom_write_protect(void);
0236
0237
0238
0239
0240 uint8_t BSP_eeprom_write_enable(void);
0241
0242
0243
0244
0245
0246
0247
0248
0249
0250 uint8_t BSP_setLEDs(uint8_t mask);
0251
0252
0253
0254
0255
0256
0257
0258 uint8_t BSP_clrLEDs(uint8_t mask);
0259
0260 #if 0
0261 #define outport_byte(port,value) outb(value,port)
0262 #define outport_word(port,value) outw(value,port)
0263 #define outport_long(port,value) outl(value,port)
0264
0265 #define inport_byte(port,value) (value = inb(port))
0266 #define inport_word(port,value) (value = inw(port))
0267 #define inport_long(port,value) (value = inl(port))
0268 #endif
0269
0270
0271
0272
0273 extern unsigned int BSP_mem_size;
0274
0275
0276
0277 extern unsigned int BSP_bus_frequency;
0278
0279
0280
0281 extern unsigned int BSP_processor_frequency;
0282
0283
0284
0285 extern unsigned int BSP_time_base_divisor;
0286
0287
0288
0289 extern char *BSP_commandline_string;
0290
0291 #define BSP_Convert_decrementer( _value ) \
0292 ((unsigned long long) ((((unsigned long long)BSP_time_base_divisor) * 1000000ULL) /((unsigned long long) BSP_bus_frequency)) * ((unsigned long long) (_value)))
0293
0294 extern int BSP_disconnect_clock_handler (void);
0295 extern int BSP_connect_clock_handler (void);
0296
0297
0298
0299
0300
0301
0302
0303
0304
0305
0306
0307 extern unsigned long _BSP_clear_hostbridge_errors(int enableMCP, int quiet);
0308 extern void BSP_motload_pci_fixup(void);
0309
0310 struct rtems_bsdnet_ifconfig;
0311
0312 int
0313 rtems_tsec_attach(struct rtems_bsdnet_ifconfig *ifcfg, int attaching);
0314
0315 #define RTEMS_BSP_NETWORK_DRIVER_NAME "tse1"
0316 #define RTEMS_BSP_NETWORK_DRIVER_ATTACH rtems_tsec_attach
0317
0318
0319
0320
0321 char *save_boot_params(
0322 void *r3,
0323 void *r4,
0324 void *r5,
0325 char *cmdline_start,
0326 char *cmdline_end
0327 );
0328 void zero_bss(void);
0329
0330
0331
0332
0333 extern void BSP_vme_config(void);
0334 extern void BSP_pciConfigDump_early( void );
0335
0336 #ifdef __cplusplus
0337 }
0338 #endif
0339
0340 #endif
0341
0342
0343
0344 #endif