This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
MPC860 and IMMR location
- From: Barton Meeks <bartonm2002 at yahoo dot com>
- To: ecos-discuss at sources dot redhat dot com
- Date: Thu, 18 Jul 2002 08:54:49 -0700 (PDT)
- Subject: [ECOS] MPC860 and IMMR location
As I stared writing this, I was thinking there was a
problem with the viper HAL, but it may just be a
matter of me being confused by the comments. In the
code below, I believe 0xff000000 is indeed the MCP
registers for just a brief period, until viper.S gets
going. Then the internal memory is moved to
0xfa020000, which is listed in the comments below as
"Control/Status+LEDs."
This is from viper/current/src/hal_aux.c:
CYGARC_MEMDESC_TABLE CYGBLD_ATTRIB_WEAK = {
// Mapping for the Viper 855/860 development
boards
CYGARC_MEMDESC_CACHE( 0xfe000000, 0x00800000 ),
// ROM region
CYGARC_MEMDESC_NOCACHE( 0xff000000, 0x00100000 ),
// MCP registers
CYGARC_MEMDESC_NOCACHE( 0xfa000000, 0x00400000 ),
// Control/Status+LEDs
CYGARC_MEMDESC_CACHE( CYGMEM_REGION_ram,
CYGMEM_REGION_ram_SIZE ), // Main memory
CYGARC_MEMDESC_TABLE_END
};
Background information:
At reset time, the 860 family has a configuration (via
device pins) as to the location of the internal memory
space. This controls the initialization of the IMMR
register, which can be later changed by software.
This setting of the IMMR is changed by ecos based on
the setting here:
mpc8xx/current/include/var_regs.h:
#define CYGARC_REG_IMM_BASE 0xfa200000
I'm guessing that the initial (at reset) value doesn't
really matter, since the value listed above is written
to the IMMR first thing in hal_hardware_init (such as
in the files mbx.S or viper.S.)
__________________________________________________
Do You Yahoo!?
Yahoo! Autos - Get free new car price quotes
http://autos.yahoo.com
--
Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos
and search the list archive: http://sources.redhat.com/ml/ecos-discuss