forked from Imagelibrary/rtems
Patch from John S. Gwynne <jgwynne@mrcday.com> to correct minor
problems that prevented the 19990302 snapshot from running on
the efi332.
I'm happy to report that rtems-19990302 is running on the efi332
board. I have enclosed a few minor patches below to the efi332 bsp. All
patches are within that library but one. make/custom/efi332.cfg has a
patch to select the right CPU_CFLAGS (at one time -m68332 was a
problem... -mcpu32 or -m68332 work fine now).
This commit is contained in:
@@ -328,7 +328,7 @@ rtems_device_driver console_read(
|
|||||||
rtems_libio_rw_args_t *rw_args;
|
rtems_libio_rw_args_t *rw_args;
|
||||||
char *buffer;
|
char *buffer;
|
||||||
int maximum;
|
int maximum;
|
||||||
int count = 0;
|
int count;
|
||||||
|
|
||||||
rw_args = (rtems_libio_rw_args_t *) arg;
|
rw_args = (rtems_libio_rw_args_t *) arg;
|
||||||
|
|
||||||
|
|||||||
@@ -43,12 +43,10 @@
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* This prototype really should have the noreturn attribute but
|
* This prototype really should have the noreturn attribute but
|
||||||
* that causes a warning since it appears that the routine does
|
* that causes a warning. Not sure how to fix that.
|
||||||
* return.
|
|
||||||
*
|
|
||||||
* void reboot(void) __attribute__ ((noreturn));
|
|
||||||
*/
|
*/
|
||||||
|
/* static void reboot(void) __attribute__ ((noreturn)); */
|
||||||
void reboot(void);
|
static void reboot(void);
|
||||||
|
__inline__ static void reboot() {asm("trap #15");}
|
||||||
|
|
||||||
#endif /* _EFI332_H_ */
|
#endif /* _EFI332_H_ */
|
||||||
|
|||||||
@@ -10,19 +10,17 @@
|
|||||||
m68k_isr_entry M68Kvec[256];
|
m68k_isr_entry M68Kvec[256];
|
||||||
m68k_isr_entry vectors[256];
|
m68k_isr_entry vectors[256];
|
||||||
char * const __argv[]= {"main", ""};
|
char * const __argv[]= {"main", ""};
|
||||||
char * const __env[]= {""};
|
|
||||||
|
void boot_card(int argc, char * const argv[]);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* This prototype really should have the noreturn attribute but
|
* This prototype really should have the noreturn attribute but
|
||||||
* that causes a warning since it appears that the routine does
|
* that causes a warning. Not sure how to fix that.
|
||||||
* return.
|
|
||||||
*
|
|
||||||
* void dumby_start () __attribute__ ((noreturn));
|
|
||||||
*/
|
*/
|
||||||
|
/* void dumby_start () __attribute__ ((noreturn)); */
|
||||||
void dumby_start ();
|
void dumby_start ();
|
||||||
|
|
||||||
void dumby_start() {
|
void dumby_start() {
|
||||||
void boot_card();
|
|
||||||
|
|
||||||
/* We need to by-pass the link instruction since the RAM chip-
|
/* We need to by-pass the link instruction since the RAM chip-
|
||||||
select pins are not yet configured. */
|
select pins are not yet configured. */
|
||||||
@@ -36,7 +34,7 @@ void boot_card();
|
|||||||
movel #_end, %d0;
|
movel #_end, %d0;
|
||||||
addl " STACK_SIZE ",%d0;
|
addl " STACK_SIZE ",%d0;
|
||||||
movel %d0,%sp;
|
movel %d0,%sp;
|
||||||
link %a6, #0"
|
movel %d0,%a6"
|
||||||
);
|
);
|
||||||
|
|
||||||
/* include in ram_init.S */
|
/* include in ram_init.S */
|
||||||
@@ -91,16 +89,34 @@ void boot_card();
|
|||||||
*CSBAR1 = (unsigned short int)
|
*CSBAR1 = (unsigned short int)
|
||||||
(((0x080000 >> 8)&0xfff8) | BS_256K ); /* 256k bytes located at 0x80000 */
|
(((0x080000 >> 8)&0xfff8) | BS_256K ); /* 256k bytes located at 0x80000 */
|
||||||
*CSBAR2 = (unsigned short int)
|
*CSBAR2 = (unsigned short int)
|
||||||
(((0x080000 >> 8)&0xfff8) | BS_256K ); /* 256 bytes located at 0x80000 */
|
(((0x080000 >> 8)&0xfff8) | BS_256K ); /* 256k bytes located at 0x80000 */
|
||||||
*CSBAR3 = (unsigned short int)
|
*CSBAR3 = (unsigned short int)
|
||||||
|
(((0x0C0000 >> 8)&0xfff8) | BS_256K ); /* 256k bytes located at 0xC0000 */
|
||||||
|
*CSBAR4 = (unsigned short int)
|
||||||
|
(((0x0C0000 >> 8)&0xfff8) | BS_256K ); /* 256 bytes located at 0xC0000 */
|
||||||
|
*CSBAR5 = (unsigned short int)
|
||||||
(0xfff8 | BS_64K); /* AVEC interrupts */
|
(0xfff8 | BS_64K); /* AVEC interrupts */
|
||||||
|
#ifdef EFI332_v040b
|
||||||
|
*CSBAR6 = (unsigned short int)
|
||||||
|
(((0x000000 >> 8)&0xfff8) | BS_512K ); /* 512k bytes located at 0x0000 */
|
||||||
|
*CSBAR8 = (unsigned short int) /* PCMCIA IOCS */
|
||||||
|
(((0x0c0000 >> 8)&0xfff8) | BS_64K ); /* 64k bytes located at 0xc0000 */
|
||||||
|
*CSBAR9 = (unsigned short int) /* PCMCIA MEMCS */
|
||||||
|
(((0x0D0000 >> 8)&0xfff8) | BS_64K ); /* 64k bytes located at 0xd0000 */
|
||||||
|
#else /* EFI332_v040b */
|
||||||
*CSBAR10 = (unsigned short int)
|
*CSBAR10 = (unsigned short int)
|
||||||
(((0x000000 >> 8)&0xfff8) | BS_512K ); /* 512k bytes located at 0x0000 */
|
(((0x000000 >> 8)&0xfff8) | BS_512K ); /* 512k bytes located at 0x0000 */
|
||||||
|
#endif /* EFI332_v040b */
|
||||||
|
|
||||||
/* Chip-Select Options Registers */
|
/* Chip-Select Options Registers */
|
||||||
/* see section 7 of the SIM Reference Manual */
|
/* see section 7 of the SIM Reference Manual */
|
||||||
|
#ifdef FLASHWRITE
|
||||||
*CSORBT = (unsigned short int)
|
*CSORBT = (unsigned short int)
|
||||||
( BothBytes | ReadWrite | SyncAS | WaitStates_13 | UserSupSpace );
|
( BothBytes | ReadWrite | SyncAS | WaitStates_2 | UserSupSpace );
|
||||||
|
#else /* FLASHWRITE */
|
||||||
|
*CSORBT = (unsigned short int)
|
||||||
|
( BothBytes | ReadOnly | SyncAS | WaitStates_2 | UserSupSpace );
|
||||||
|
#endif /* FLASHWRITE */
|
||||||
*CSOR0 = (unsigned short int)
|
*CSOR0 = (unsigned short int)
|
||||||
( BothBytes | ReadOnly | SyncAS | External | UserSupSpace );
|
( BothBytes | ReadOnly | SyncAS | External | UserSupSpace );
|
||||||
*CSOR1 = (unsigned short int)
|
*CSOR1 = (unsigned short int)
|
||||||
@@ -108,31 +124,54 @@ void boot_card();
|
|||||||
*CSOR2 = (unsigned short int)
|
*CSOR2 = (unsigned short int)
|
||||||
( UpperByte | ReadWrite | SyncAS | FastTerm | UserSupSpace );
|
( UpperByte | ReadWrite | SyncAS | FastTerm | UserSupSpace );
|
||||||
*CSOR3 = (unsigned short int)
|
*CSOR3 = (unsigned short int)
|
||||||
|
( LowerByte | ReadWrite | SyncAS | FastTerm | UserSupSpace );
|
||||||
|
*CSOR4 = (unsigned short int)
|
||||||
|
( UpperByte | ReadWrite | SyncAS | FastTerm | UserSupSpace );
|
||||||
|
*CSOR5 = (unsigned short int)
|
||||||
( BothBytes | ReadWrite | SyncAS | CPUSpace | IPLevel_any | AVEC );
|
( BothBytes | ReadWrite | SyncAS | CPUSpace | IPLevel_any | AVEC );
|
||||||
|
#ifdef EFI332_v040b
|
||||||
|
*CSOR6 = (unsigned short int)
|
||||||
|
( BothBytes | ReadOnly | SyncAS | External | UserSupSpace );
|
||||||
|
*CSOR8 = (unsigned short int)
|
||||||
|
( BothBytes | ReadWrite | SyncAS | External | UserSupSpace );
|
||||||
|
*CSOR9 = (unsigned short int)
|
||||||
|
( BothBytes | ReadWrite | SyncAS | External | UserSupSpace );
|
||||||
|
#else /* EFI332_v040b */
|
||||||
*CSOR10 = (unsigned short int)
|
*CSOR10 = (unsigned short int)
|
||||||
( BothBytes | ReadOnly | SyncAS | External | UserSupSpace );
|
( BothBytes | ReadOnly | SyncAS | External | UserSupSpace );
|
||||||
|
#endif /* EFI332_v040b */
|
||||||
|
|
||||||
/* Chip Select Pin Assignment Register 0 */
|
/* Chip Select Pin Assignment Register 0 */
|
||||||
/* see section 7 of the SIM Reference Manual */
|
/* see section 7 of the SIM Reference Manual */
|
||||||
*CSPAR0 = (unsigned short int)(
|
*CSPAR0 = (unsigned short int)(
|
||||||
SAM(DisOut,CS_5,0x3000) | /* PC2 */
|
SAM(DisOut,CS_5,0x3000) | /* AVEC (internally) */
|
||||||
SAM(DisOut,CS_4,0x0c00) | /* PC1 */
|
SAM(CS16bit,CS_4,0x0c00) | /* RAM UDS, bank2 */
|
||||||
SAM(DisOut,CS_3,0x0300) | /* AVEC (internally) */
|
SAM(CS16bit,CS_3,0x0300) | /* RAM LDS, bank2 */
|
||||||
SAM(CS16bit,CS_2,0x00c0)| /* RAM UDS */
|
SAM(CS16bit,CS_2,0x00c0)| /* RAM UDS, bank1 */
|
||||||
SAM(CS16bit,CS_1,0x0030)| /* RAM LDS */
|
SAM(CS16bit,CS_1,0x0030)| /* RAM LDS, bank1 */
|
||||||
SAM(CS16bit,CS_0,0x000c)| /* W/!R */
|
SAM(CS16bit,CS_0,0x000c)| /* W/!R */
|
||||||
SAM(CS16bit,CSBOOT,0x0003) /* ROM DS */
|
SAM(CS16bit,CSBOOT,0x0003) /* ROM CS */
|
||||||
);
|
);
|
||||||
|
|
||||||
/* Chip Select Pin Assignment Register 1 */
|
/* Chip Select Pin Assignment Register 1 */
|
||||||
/* see section 7 of the SIM Reference Manual */
|
/* see section 7 of the SIM Reference Manual */
|
||||||
|
#ifdef EFI332_v040b
|
||||||
*CSPAR1 = (unsigned short int)(
|
*CSPAR1 = (unsigned short int)(
|
||||||
SAM(CS16bit,CS_10,0x300)| /* ECLK */
|
SAM(DisOut,CS_10,0x300)| /* ECLK */
|
||||||
|
SAM(CS16bit,CS_9,0x0c0) | /* PCMCIA MEMCS */
|
||||||
|
SAM(CS16bit,CS_8,0x030) | /* PCMCIA IOCS */
|
||||||
|
SAM(DisOut,CS_7,0x00c) | /* PC4 */
|
||||||
|
SAM(CS16bit,CS_6,0x003) /* ROM !OE */
|
||||||
|
);
|
||||||
|
#else /* EFI332_v040b */
|
||||||
|
*CSPAR1 = (unsigned short int)(
|
||||||
|
SAM(CS16bit,CS_10,0x300)| /* ROM !OE */
|
||||||
SAM(DisOut,CS_9,0x0c0) | /* PC6 */
|
SAM(DisOut,CS_9,0x0c0) | /* PC6 */
|
||||||
SAM(DisOut,CS_8,0x030) | /* PC5 */
|
SAM(DisOut,CS_8,0x030) | /* PC5 */
|
||||||
SAM(DisOut,CS_7,0x00c) | /* PC4 */
|
SAM(DisOut,CS_7,0x00c) | /* PC4 */
|
||||||
SAM(DisOut,CS_6,0x003) /* PC3 */
|
SAM(DisOut,CS_6,0x003) /* PC3 */
|
||||||
);
|
);
|
||||||
|
#endif /* EFI332_v040b */
|
||||||
|
|
||||||
/* Port E and F Data Register */
|
/* Port E and F Data Register */
|
||||||
/* see section 9 of the SIM Reference Manual */
|
/* see section 9 of the SIM Reference Manual */
|
||||||
@@ -179,14 +218,10 @@ void boot_card();
|
|||||||
console_init();
|
console_init();
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Execute main with arguments argv and environment env
|
* Execute main with arguments argc and agrv.
|
||||||
*/
|
*/
|
||||||
/* main(1, __argv, __env); */
|
boot_card(1,__argv);
|
||||||
|
|
||||||
boot_card();
|
|
||||||
|
|
||||||
reboot();
|
reboot();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void reboot() {asm("trap #15");}
|
|
||||||
|
|
||||||
|
|||||||
@@ -10,19 +10,17 @@
|
|||||||
m68k_isr_entry M68Kvec[256];
|
m68k_isr_entry M68Kvec[256];
|
||||||
m68k_isr_entry vectors[256];
|
m68k_isr_entry vectors[256];
|
||||||
char * const __argv[]= {"main", ""};
|
char * const __argv[]= {"main", ""};
|
||||||
char * const __env[]= {""};
|
|
||||||
|
void boot_card(int argc, char * const argv[]);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* This prototype really should have the noreturn attribute but
|
* This prototype really should have the noreturn attribute but
|
||||||
* that causes a warning since it appears that the routine does
|
* that causes a warning. Not sure how to fix that.
|
||||||
* return.
|
|
||||||
*
|
|
||||||
* void dumby_start () __attribute__ ((noreturn));
|
|
||||||
*/
|
*/
|
||||||
|
/* void dumby_start () __attribute__ ((noreturn)); */
|
||||||
void dumby_start ();
|
void dumby_start ();
|
||||||
|
|
||||||
void dumby_start() {
|
void dumby_start() {
|
||||||
void boot_card();
|
|
||||||
|
|
||||||
/* We need to by-pass the link instruction since the RAM chip-
|
/* We need to by-pass the link instruction since the RAM chip-
|
||||||
select pins are not yet configured. */
|
select pins are not yet configured. */
|
||||||
@@ -36,7 +34,7 @@ void boot_card();
|
|||||||
movel #_end, %d0;
|
movel #_end, %d0;
|
||||||
addl " STACK_SIZE ",%d0;
|
addl " STACK_SIZE ",%d0;
|
||||||
movel %d0,%sp;
|
movel %d0,%sp;
|
||||||
link %a6, #0"
|
movel %d0,%a6"
|
||||||
);
|
);
|
||||||
|
|
||||||
/* include in ram_init.S */
|
/* include in ram_init.S */
|
||||||
@@ -91,16 +89,34 @@ void boot_card();
|
|||||||
*CSBAR1 = (unsigned short int)
|
*CSBAR1 = (unsigned short int)
|
||||||
(((0x080000 >> 8)&0xfff8) | BS_256K ); /* 256k bytes located at 0x80000 */
|
(((0x080000 >> 8)&0xfff8) | BS_256K ); /* 256k bytes located at 0x80000 */
|
||||||
*CSBAR2 = (unsigned short int)
|
*CSBAR2 = (unsigned short int)
|
||||||
(((0x080000 >> 8)&0xfff8) | BS_256K ); /* 256 bytes located at 0x80000 */
|
(((0x080000 >> 8)&0xfff8) | BS_256K ); /* 256k bytes located at 0x80000 */
|
||||||
*CSBAR3 = (unsigned short int)
|
*CSBAR3 = (unsigned short int)
|
||||||
|
(((0x0C0000 >> 8)&0xfff8) | BS_256K ); /* 256k bytes located at 0xC0000 */
|
||||||
|
*CSBAR4 = (unsigned short int)
|
||||||
|
(((0x0C0000 >> 8)&0xfff8) | BS_256K ); /* 256 bytes located at 0xC0000 */
|
||||||
|
*CSBAR5 = (unsigned short int)
|
||||||
(0xfff8 | BS_64K); /* AVEC interrupts */
|
(0xfff8 | BS_64K); /* AVEC interrupts */
|
||||||
|
#ifdef EFI332_v040b
|
||||||
|
*CSBAR6 = (unsigned short int)
|
||||||
|
(((0x000000 >> 8)&0xfff8) | BS_512K ); /* 512k bytes located at 0x0000 */
|
||||||
|
*CSBAR8 = (unsigned short int) /* PCMCIA IOCS */
|
||||||
|
(((0x0c0000 >> 8)&0xfff8) | BS_64K ); /* 64k bytes located at 0xc0000 */
|
||||||
|
*CSBAR9 = (unsigned short int) /* PCMCIA MEMCS */
|
||||||
|
(((0x0D0000 >> 8)&0xfff8) | BS_64K ); /* 64k bytes located at 0xd0000 */
|
||||||
|
#else /* EFI332_v040b */
|
||||||
*CSBAR10 = (unsigned short int)
|
*CSBAR10 = (unsigned short int)
|
||||||
(((0x000000 >> 8)&0xfff8) | BS_512K ); /* 512k bytes located at 0x0000 */
|
(((0x000000 >> 8)&0xfff8) | BS_512K ); /* 512k bytes located at 0x0000 */
|
||||||
|
#endif /* EFI332_v040b */
|
||||||
|
|
||||||
/* Chip-Select Options Registers */
|
/* Chip-Select Options Registers */
|
||||||
/* see section 7 of the SIM Reference Manual */
|
/* see section 7 of the SIM Reference Manual */
|
||||||
|
#ifdef FLASHWRITE
|
||||||
*CSORBT = (unsigned short int)
|
*CSORBT = (unsigned short int)
|
||||||
( BothBytes | ReadWrite | SyncAS | WaitStates_13 | UserSupSpace );
|
( BothBytes | ReadWrite | SyncAS | WaitStates_2 | UserSupSpace );
|
||||||
|
#else /* FLASHWRITE */
|
||||||
|
*CSORBT = (unsigned short int)
|
||||||
|
( BothBytes | ReadOnly | SyncAS | WaitStates_2 | UserSupSpace );
|
||||||
|
#endif /* FLASHWRITE */
|
||||||
*CSOR0 = (unsigned short int)
|
*CSOR0 = (unsigned short int)
|
||||||
( BothBytes | ReadOnly | SyncAS | External | UserSupSpace );
|
( BothBytes | ReadOnly | SyncAS | External | UserSupSpace );
|
||||||
*CSOR1 = (unsigned short int)
|
*CSOR1 = (unsigned short int)
|
||||||
@@ -108,31 +124,54 @@ void boot_card();
|
|||||||
*CSOR2 = (unsigned short int)
|
*CSOR2 = (unsigned short int)
|
||||||
( UpperByte | ReadWrite | SyncAS | FastTerm | UserSupSpace );
|
( UpperByte | ReadWrite | SyncAS | FastTerm | UserSupSpace );
|
||||||
*CSOR3 = (unsigned short int)
|
*CSOR3 = (unsigned short int)
|
||||||
|
( LowerByte | ReadWrite | SyncAS | FastTerm | UserSupSpace );
|
||||||
|
*CSOR4 = (unsigned short int)
|
||||||
|
( UpperByte | ReadWrite | SyncAS | FastTerm | UserSupSpace );
|
||||||
|
*CSOR5 = (unsigned short int)
|
||||||
( BothBytes | ReadWrite | SyncAS | CPUSpace | IPLevel_any | AVEC );
|
( BothBytes | ReadWrite | SyncAS | CPUSpace | IPLevel_any | AVEC );
|
||||||
|
#ifdef EFI332_v040b
|
||||||
|
*CSOR6 = (unsigned short int)
|
||||||
|
( BothBytes | ReadOnly | SyncAS | External | UserSupSpace );
|
||||||
|
*CSOR8 = (unsigned short int)
|
||||||
|
( BothBytes | ReadWrite | SyncAS | External | UserSupSpace );
|
||||||
|
*CSOR9 = (unsigned short int)
|
||||||
|
( BothBytes | ReadWrite | SyncAS | External | UserSupSpace );
|
||||||
|
#else /* EFI332_v040b */
|
||||||
*CSOR10 = (unsigned short int)
|
*CSOR10 = (unsigned short int)
|
||||||
( BothBytes | ReadOnly | SyncAS | External | UserSupSpace );
|
( BothBytes | ReadOnly | SyncAS | External | UserSupSpace );
|
||||||
|
#endif /* EFI332_v040b */
|
||||||
|
|
||||||
/* Chip Select Pin Assignment Register 0 */
|
/* Chip Select Pin Assignment Register 0 */
|
||||||
/* see section 7 of the SIM Reference Manual */
|
/* see section 7 of the SIM Reference Manual */
|
||||||
*CSPAR0 = (unsigned short int)(
|
*CSPAR0 = (unsigned short int)(
|
||||||
SAM(DisOut,CS_5,0x3000) | /* PC2 */
|
SAM(DisOut,CS_5,0x3000) | /* AVEC (internally) */
|
||||||
SAM(DisOut,CS_4,0x0c00) | /* PC1 */
|
SAM(CS16bit,CS_4,0x0c00) | /* RAM UDS, bank2 */
|
||||||
SAM(DisOut,CS_3,0x0300) | /* AVEC (internally) */
|
SAM(CS16bit,CS_3,0x0300) | /* RAM LDS, bank2 */
|
||||||
SAM(CS16bit,CS_2,0x00c0)| /* RAM UDS */
|
SAM(CS16bit,CS_2,0x00c0)| /* RAM UDS, bank1 */
|
||||||
SAM(CS16bit,CS_1,0x0030)| /* RAM LDS */
|
SAM(CS16bit,CS_1,0x0030)| /* RAM LDS, bank1 */
|
||||||
SAM(CS16bit,CS_0,0x000c)| /* W/!R */
|
SAM(CS16bit,CS_0,0x000c)| /* W/!R */
|
||||||
SAM(CS16bit,CSBOOT,0x0003) /* ROM DS */
|
SAM(CS16bit,CSBOOT,0x0003) /* ROM CS */
|
||||||
);
|
);
|
||||||
|
|
||||||
/* Chip Select Pin Assignment Register 1 */
|
/* Chip Select Pin Assignment Register 1 */
|
||||||
/* see section 7 of the SIM Reference Manual */
|
/* see section 7 of the SIM Reference Manual */
|
||||||
|
#ifdef EFI332_v040b
|
||||||
*CSPAR1 = (unsigned short int)(
|
*CSPAR1 = (unsigned short int)(
|
||||||
SAM(CS16bit,CS_10,0x300)| /* ECLK */
|
SAM(DisOut,CS_10,0x300)| /* ECLK */
|
||||||
|
SAM(CS16bit,CS_9,0x0c0) | /* PCMCIA MEMCS */
|
||||||
|
SAM(CS16bit,CS_8,0x030) | /* PCMCIA IOCS */
|
||||||
|
SAM(DisOut,CS_7,0x00c) | /* PC4 */
|
||||||
|
SAM(CS16bit,CS_6,0x003) /* ROM !OE */
|
||||||
|
);
|
||||||
|
#else /* EFI332_v040b */
|
||||||
|
*CSPAR1 = (unsigned short int)(
|
||||||
|
SAM(CS16bit,CS_10,0x300)| /* ROM !OE */
|
||||||
SAM(DisOut,CS_9,0x0c0) | /* PC6 */
|
SAM(DisOut,CS_9,0x0c0) | /* PC6 */
|
||||||
SAM(DisOut,CS_8,0x030) | /* PC5 */
|
SAM(DisOut,CS_8,0x030) | /* PC5 */
|
||||||
SAM(DisOut,CS_7,0x00c) | /* PC4 */
|
SAM(DisOut,CS_7,0x00c) | /* PC4 */
|
||||||
SAM(DisOut,CS_6,0x003) /* PC3 */
|
SAM(DisOut,CS_6,0x003) /* PC3 */
|
||||||
);
|
);
|
||||||
|
#endif /* EFI332_v040b */
|
||||||
|
|
||||||
/* Port E and F Data Register */
|
/* Port E and F Data Register */
|
||||||
/* see section 9 of the SIM Reference Manual */
|
/* see section 9 of the SIM Reference Manual */
|
||||||
@@ -179,14 +218,10 @@ void boot_card();
|
|||||||
console_init();
|
console_init();
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Execute main with arguments argv and environment env
|
* Execute main with arguments argc and agrv.
|
||||||
*/
|
*/
|
||||||
/* main(1, __argv, __env); */
|
boot_card(1,__argv);
|
||||||
|
|
||||||
boot_card();
|
|
||||||
|
|
||||||
reboot();
|
reboot();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void reboot() {asm("trap #15");}
|
|
||||||
|
|
||||||
|
|||||||
@@ -19,8 +19,13 @@ C_O_FILES=$(C_PIECES:%=${ARCH}/%.o)
|
|||||||
|
|
||||||
H_FILES=
|
H_FILES=
|
||||||
|
|
||||||
SRCS=$(C_FILES) $(H_FILES)
|
# Assembly source names, if any, go here -- minus the .S
|
||||||
OBJS=$(C_O_FILES)
|
S_PIECES= except_vect_332_ROM
|
||||||
|
S_FILES=$(S_PIECES:%=%.S)
|
||||||
|
S_O_FILES=$(S_FILES:%.S=${ARCH}/%.o)
|
||||||
|
|
||||||
|
SRCS=$(C_FILES) $(H_FILES) $(S_FILES)
|
||||||
|
OBJS=$(C_O_FILES) $(S_O_FILES)
|
||||||
|
|
||||||
include $(RTEMS_ROOT)/make/custom/$(RTEMS_BSP).cfg
|
include $(RTEMS_ROOT)/make/custom/$(RTEMS_BSP).cfg
|
||||||
include $(RTEMS_ROOT)/make/leaf.cfg
|
include $(RTEMS_ROOT)/make/leaf.cfg
|
||||||
@@ -52,6 +57,8 @@ ${PGM}: ${SRCS} ${OBJS}
|
|||||||
|
|
||||||
all: ${ARCH} $(SRCS) $(PGM)
|
all: ${ARCH} $(SRCS) $(PGM)
|
||||||
$(INSTALL_CHANGE) $(srcdir)/linkcmds ${PROJECT_RELEASE}/lib
|
$(INSTALL_CHANGE) $(srcdir)/linkcmds ${PROJECT_RELEASE}/lib
|
||||||
|
$(INSTALL_CHANGE) $(srcdir)/linkcmds_ROM ${PROJECT_RELEASE}/lib
|
||||||
|
$(INSTALL_CHANGE) ${ARCH}/except_vect_332_ROM.o ${PROJECT_RELEASE}/lib
|
||||||
|
|
||||||
# the .rel file built here will be put into libbsp.a by ../wrapup/Makefile
|
# the .rel file built here will be put into libbsp.a by ../wrapup/Makefile
|
||||||
|
|
||||||
|
|||||||
@@ -32,10 +32,10 @@ __DYNAMIC = 0;
|
|||||||
|
|
||||||
MEMORY
|
MEMORY
|
||||||
{
|
{
|
||||||
ram : ORIGIN = 0x80000, LENGTH = 256K
|
ram : ORIGIN = 0x80000, LENGTH = 512K
|
||||||
}
|
}
|
||||||
|
|
||||||
__end_of_ram = 0xc0000;
|
__end_of_ram = 0x100000;
|
||||||
_copy_data_from_rom = 0;
|
_copy_data_from_rom = 0;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -48,8 +48,10 @@ SECTIONS
|
|||||||
CREATE_OBJECT_SYMBOLS
|
CREATE_OBJECT_SYMBOLS
|
||||||
text_start = .;
|
text_start = .;
|
||||||
_text_start = .;
|
_text_start = .;
|
||||||
|
|
||||||
*(.text)
|
*(.text)
|
||||||
. = ALIGN (16);
|
. = ALIGN (16);
|
||||||
|
|
||||||
*(.eh_fram)
|
*(.eh_fram)
|
||||||
. = ALIGN (16);
|
. = ALIGN (16);
|
||||||
|
|
||||||
@@ -69,6 +71,10 @@ SECTIONS
|
|||||||
*(.shdata)
|
*(.shdata)
|
||||||
_endtext = .;
|
_endtext = .;
|
||||||
} > ram
|
} > ram
|
||||||
|
.gcc_exc :
|
||||||
|
{
|
||||||
|
*(.gcc_exc)
|
||||||
|
} > ram
|
||||||
.data :
|
.data :
|
||||||
{
|
{
|
||||||
data_start = .;
|
data_start = .;
|
||||||
|
|||||||
@@ -40,10 +40,10 @@ __DYNAMIC = 0;
|
|||||||
MEMORY
|
MEMORY
|
||||||
{
|
{
|
||||||
rom : ORIGIN = 0x00000, LENGTH = 256K
|
rom : ORIGIN = 0x00000, LENGTH = 256K
|
||||||
ram : ORIGIN = 0x80000, LENGTH = 256K
|
ram : ORIGIN = 0x80000, LENGTH = 512K
|
||||||
}
|
}
|
||||||
|
|
||||||
__end_of_ram = 0xc0000;
|
__end_of_ram = 0x100000;
|
||||||
_copy_data_from_rom = 1;
|
_copy_data_from_rom = 1;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -57,6 +57,11 @@ SECTIONS
|
|||||||
text_start = .;
|
text_start = .;
|
||||||
_text_start = .;
|
_text_start = .;
|
||||||
*(.text)
|
*(.text)
|
||||||
|
. = ALIGN (16);
|
||||||
|
|
||||||
|
*(.eh_fram)
|
||||||
|
. = ALIGN (16);
|
||||||
|
|
||||||
etext = ALIGN(0x10);
|
etext = ALIGN(0x10);
|
||||||
_etext = .;
|
_etext = .;
|
||||||
__CTOR_LIST__ = .;
|
__CTOR_LIST__ = .;
|
||||||
@@ -73,8 +78,12 @@ SECTIONS
|
|||||||
*(.shdata)
|
*(.shdata)
|
||||||
_endtext = .;
|
_endtext = .;
|
||||||
} > rom
|
} > rom
|
||||||
.data :
|
.gcc_exc :
|
||||||
AT ( ADDR(.text) + SIZEOF( .text ) )
|
AT ( ADDR(.text) + SIZEOF( .text ) )
|
||||||
|
{
|
||||||
|
*(.gcc_exc)
|
||||||
|
} > ram
|
||||||
|
.data :
|
||||||
{
|
{
|
||||||
data_start = .;
|
data_start = .;
|
||||||
_data_start = .;
|
_data_start = .;
|
||||||
|
|||||||
@@ -14,10 +14,7 @@ RTEMS_BSP_FAMILY=efi332
|
|||||||
|
|
||||||
# This contains the compiler options necessary to select the CPU model
|
# This contains the compiler options necessary to select the CPU model
|
||||||
# and (hopefully) optimize for it.
|
# and (hopefully) optimize for it.
|
||||||
#
|
CPU_CFLAGS = -mcpu32
|
||||||
# XXX JRS - my gas does not grok -m68332
|
|
||||||
#CPU_CFLAGS = -m68332
|
|
||||||
CPU_CFLAGS = -m68020
|
|
||||||
|
|
||||||
# optimize flag: typically -0, could use -O4 or -fast, -O4 is ok for RTEMS
|
# optimize flag: typically -0, could use -O4 or -fast, -O4 is ok for RTEMS
|
||||||
CFLAGS_OPTIMIZE_V=-O4 -fomit-frame-pointer
|
CFLAGS_OPTIMIZE_V=-O4 -fomit-frame-pointer
|
||||||
|
|||||||
Reference in New Issue
Block a user