forked from Imagelibrary/rtems
2001-05-14 Till Straumann <strauman@slac.stanford.edu>
* rtems/powerpc/registers.h, rtems/score/ppc.h: Per PR213, add the following: - support for the MPC74000 (AKA G4); there is no AltiVec support yet, however. - the cache flushing assembly code uses hardware-flush on the G4. Also, a couple of hardcoded numerical values were replaced by more readable symbolic constants. - extended interrupt-disabled code section so enclose the entire cache flush/invalidate procedure (as recommended by the book). This is not (latency) critical as it is only used by init code but prevents possible corruption. - Trivial page table support as been added. (1:1 effective-virtual-physical address mapping which is only useful only on CPUs which feature hardware TLB replacement, e.g. >604. This allows for write-protecting memory regions, e.g. text/ro-data which makes catching corruptors a lot easier. It also frees one DBAT/IBAT and gives more flexibility for setting up address maps :-) - setdbat() allows changing BAT0 also (since the BSP may use a page table, BAT0 could be available...). - asm_setdbatX() violated the SVR ABI by using r20 as a scratch register; changed for r0 - according to the book, a context synchronizing instruction is necessary prior to and after changing a DBAT -> isync added
This commit is contained in:
@@ -27,6 +27,7 @@ typedef enum
|
||||
PPC_750 = 0x8,
|
||||
PPC_604e = 0x9,
|
||||
PPC_604r = 0xA,
|
||||
PPC_7400 = 0xA,
|
||||
PPC_620 = 0x16,
|
||||
PPC_860 = 0x50,
|
||||
PPC_821 = PPC_860,
|
||||
@@ -38,6 +39,7 @@ typedef unsigned short ppc_cpu_revision_t;
|
||||
|
||||
extern ppc_cpu_id_t get_ppc_cpu_type ();
|
||||
extern ppc_cpu_id_t current_ppc_cpu;
|
||||
extern char *get_ppc_cpu_type_name(ppc_cpu_id_t cpu);
|
||||
extern ppc_cpu_revision_t get_ppc_cpu_revision ();
|
||||
extern ppc_cpu_revision_t current_ppc_revision;
|
||||
#endif /* ASM */
|
||||
|
||||
Reference in New Issue
Block a user