mirror of
https://github.com/Fishwaldo/u-boot.git
synced 2025-03-31 03:21:32 +00:00
Patches by Jon Loeliger, 11 May 2004:
(partially, as they contained a lot of crap)
This commit is contained in:
parent
97d80fc391
commit
547b4cb25e
5 changed files with 70 additions and 36 deletions
|
@ -2,7 +2,7 @@
|
||||||
Changes since U-Boot 1.1.1:
|
Changes since U-Boot 1.1.1:
|
||||||
======================================================================
|
======================================================================
|
||||||
|
|
||||||
* Patches Part 1 by Jon Loeliger, 11 May 2004:
|
* Patches by Jon Loeliger, 11 May 2004:
|
||||||
Dynamically handle REV1 and REV2 MPC85xx parts.
|
Dynamically handle REV1 and REV2 MPC85xx parts.
|
||||||
(Jon Loeliger, 10-May-2004).
|
(Jon Loeliger, 10-May-2004).
|
||||||
New consistent memory map and Local Access Window across MPC85xx line.
|
New consistent memory map and Local Access Window across MPC85xx line.
|
||||||
|
|
|
@ -13,36 +13,44 @@ use the newest binutils-2.14.tar.bz2 from http://ftp.gnu.org/gnu/binutils.
|
||||||
shipped with your board. Then apply the following changes:
|
shipped with your board. Then apply the following changes:
|
||||||
SW3[1-6]="all OFF" (boot from 32bit flash, no boot sequence is used)
|
SW3[1-6]="all OFF" (boot from 32bit flash, no boot sequence is used)
|
||||||
SW10[2-6]="all OFF" (turn on CPM SCC for serial port,works for 8540/8560)
|
SW10[2-6]="all OFF" (turn on CPM SCC for serial port,works for 8540/8560)
|
||||||
SW11[2]='OFF for dracom, ON for draco' (single switch to toggle draco.dracom mode)
|
SW11[2]='OFF for 8560, ON for 8540' (single switch to toggle 8540.8560 mode)
|
||||||
|
SW11[7]='ON' (rev2), 'OFF' (rev1)
|
||||||
SW4[7-8]="OFF OFF" (enable serial ports,I'm using the top serial connector)
|
SW4[7-8]="OFF OFF" (enable serial ports,I'm using the top serial connector)
|
||||||
SW22[1-4]="OFF OFF ON OFF"
|
SW22[1-4]="OFF OFF ON OFF"
|
||||||
SW5[1-10[="ON ON OFF OFF OFF OFF OFF OFF OFF OFF"
|
SW5[1-10[="ON ON OFF OFF OFF OFF OFF OFF OFF OFF"
|
||||||
J1 = "Enable Prog" (Make sure your flash is programmable for development)
|
J1 = "Enable Prog" (Make sure your flash is programmable for development)
|
||||||
Ethernet PHY connectors(J47,J56) should be removed if you want to use the ethernet.
|
1.2 If you want to test PCI functionality with a 33Mhz PCI card, you will
|
||||||
1.2 If you want to test PCI functionality with a 33Mhz PCI card, you will have to change
|
have to change the system clock from the default 66Mhz to 33Mhz by
|
||||||
the system clock from the default 66Mhz to 33Mhz by setting SW15[1]="OFF" and
|
setting SW15[1]="OFF" and SW17[8]="OFF". After that you may also need
|
||||||
SW17[8]="OFF". After that you may also need double your platform clock(SW6) because
|
double your platform clock(SW6) because the system clock is now only
|
||||||
the system clock is now only half of its original value.
|
half of its original value.
|
||||||
1.3 SW6 is a very important switch, it decides your platform clock and CPU clock based on
|
1.3 SW6 is a very important switch, it decides your platform clock and CPU
|
||||||
the on-board system clock(default 66MHz). Check the document along with your board
|
clock based on the on-board system clock(default 66MHz). Check the
|
||||||
for details.
|
document along with your board for details.
|
||||||
|
|
||||||
|
|
||||||
2. MEMORY MAP TO WORK WITH LINUX KERNEL
|
2. MEMORY MAP TO WORK WITH LINUX KERNEL
|
||||||
2.1. For the initial bringup, we adopted a consistent memory scheme between u-boot and
|
|
||||||
linux kernel, you can customize it based on your system requirements:
|
2.1. For the initial bringup, we adopted a consistent memory scheme
|
||||||
DDR: 0x00000000-0x1fffffff (max 512MB)
|
between u-boot and linux kernel, you can customize it based on your
|
||||||
PCI: 0xe0000000-0xefffffff (256MB)
|
system requirements:
|
||||||
RIO: 0xf0000000-0xf7ffffff (128MB)
|
|
||||||
Local SDRAM: 0xf8000000-0xfbffffff (64MB)
|
0x0000_0000 0x7fff_ffff DDR 2G
|
||||||
Local CSx: 0xfc000000-0xfdefffff (31MB) BCSR,RTC,ATM config,etc.
|
0x8000_0000 0x9fff_ffff PCI MEM 512M
|
||||||
CCSRBAR: 0xfdf00000-0xfdffffff (1MB)
|
0xc000_0000 0xdfff_ffff Rapid IO 512M
|
||||||
Flash: 0xfe000000-0xffffffff (max 32MB)
|
0xe000_0000 0xe000_ffff CCSR 1M
|
||||||
2.2 We are submitting Linux kernel patches for MPC8540 and MPC8560. Hope you will be
|
0xe200_0000 0xe2ff_ffff PCI IO 16M
|
||||||
able to download them from linuxppc-2.4 public source by the time you are reading
|
0xf000_0000 0xf7ff_ffff SDRAM 128M
|
||||||
this. Please make sure the kernel's ppcboot.h is consistent with U-Boot's u-boot.h,
|
0xf800_0000 0xf80f_ffff BCSR 1M
|
||||||
then you can use two default configuration files in the kernel source as a test:
|
0xff00_0000 0xffff_ffff FLASH (boot bank) 16M
|
||||||
arch/ppc/configs/mpc8540ads_defconfig
|
|
||||||
arch/ppc/configs/mpc8560ads_defconfig
|
2.2 We are submitting Linux kernel patches for MPC8540 and MPC8560. You
|
||||||
|
can download them from linuxppc-2.4 public source. Please make sure the
|
||||||
|
kernel's ppcboot.h is consistent with U-Boot's u-boot.h. You can use two
|
||||||
|
default configuration files as your starting points to configure the
|
||||||
|
kernel:
|
||||||
|
arch/ppc/configs/mpc8540_ads_defconfig
|
||||||
|
arch/ppc/configs/mpc8560_ads_defconfig
|
||||||
|
|
||||||
3. DEFINITIONS AND COMPILATION
|
3. DEFINITIONS AND COMPILATION
|
||||||
3.1 Explanation on NEW definitions in include/configs/MPC8540ADS.h and include/
|
3.1 Explanation on NEW definitions in include/configs/MPC8540ADS.h and include/
|
||||||
|
@ -50,9 +58,6 @@ use the newest binutils-2.14.tar.bz2 from http://ftp.gnu.org/gnu/binutils.
|
||||||
CONFIG_BOOKE BOOKE(e.g. Motorola MPC85xx, IBM 440, etc)
|
CONFIG_BOOKE BOOKE(e.g. Motorola MPC85xx, IBM 440, etc)
|
||||||
CONFIG_E500 BOOKE e500 family(Motorola)
|
CONFIG_E500 BOOKE e500 family(Motorola)
|
||||||
CONFIG_MPC85xx MPC8540,MPC8560 and their derivatives
|
CONFIG_MPC85xx MPC8540,MPC8560 and their derivatives
|
||||||
CONFIG_MPC85xx_REV1 MPC85xx Rev 1 Chip, in general you will use a Rev2
|
|
||||||
chip from Nov.2003. If you still see this definition
|
|
||||||
while you have a Rev2(and newer) chip,undef this.
|
|
||||||
CONFIG_MPC8540 MPC8540 specific
|
CONFIG_MPC8540 MPC8540 specific
|
||||||
CONFIG_MPC8560 MPC8560 specific
|
CONFIG_MPC8560 MPC8560 specific
|
||||||
CONFIG_MPC8540ADS MPC8540ADS board specific
|
CONFIG_MPC8540ADS MPC8540ADS board specific
|
||||||
|
@ -61,8 +66,7 @@ use the newest binutils-2.14.tar.bz2 from http://ftp.gnu.org/gnu/binutils.
|
||||||
CONFIG_SPD_EEPROM Use SPD EEPROM for DDR auto configuration, you can also
|
CONFIG_SPD_EEPROM Use SPD EEPROM for DDR auto configuration, you can also
|
||||||
manual config the DDR after undef this definition.
|
manual config the DDR after undef this definition.
|
||||||
CONFIG_DDR_ECC only for ECC DDR module
|
CONFIG_DDR_ECC only for ECC DDR module
|
||||||
CONFIG_DDR_DLL possible DLL fix needed for Rev1 chip for more stability.
|
CONFIG_DDR_DLL DLL fix on some ADS boards needed for more stability.
|
||||||
you can disable this if you're having a newer chip.
|
|
||||||
CONFIG_RAM_AS_FLASH after define this, you can load U-Boot into localbus
|
CONFIG_RAM_AS_FLASH after define this, you can load U-Boot into localbus
|
||||||
SDRAM and treat localbus SDRAM as a flash. We use this
|
SDRAM and treat localbus SDRAM as a flash. We use this
|
||||||
memory based U-Boot before flash is working while Metrowerks
|
memory based U-Boot before flash is working while Metrowerks
|
||||||
|
@ -78,8 +82,19 @@ use the newest binutils-2.14.tar.bz2 from http://ftp.gnu.org/gnu/binutils.
|
||||||
make MPC8560ADS_config (or make MPC8540ADS_config)
|
make MPC8560ADS_config (or make MPC8540ADS_config)
|
||||||
make
|
make
|
||||||
|
|
||||||
4. Note on the 10/100/1000 Ethernet controller:
|
4. Notes:
|
||||||
4.1 Sometimes after U-Boot is up, the 'tftp' won't work well with TSEC ethernet. If that
|
4.1 When connecting with kermit, the following commands must be present.in
|
||||||
|
your .kermrc file. These are especially important when booting as
|
||||||
|
MPC8560, as the serial console will not work without them:
|
||||||
|
|
||||||
|
set speed 115200
|
||||||
|
set carrier-watch off
|
||||||
|
set handshake none
|
||||||
|
set flow-control none
|
||||||
|
robust
|
||||||
|
|
||||||
|
|
||||||
|
4.2 Sometimes after U-Boot is up, the 'tftp' won't work well with TSEC ethernet. If that
|
||||||
happens, you can try the following steps to make network work:
|
happens, you can try the following steps to make network work:
|
||||||
MPC8560ADS>tftp 1000000 pImage
|
MPC8560ADS>tftp 1000000 pImage
|
||||||
(if it hangs, use Ctrl-C to quit)
|
(if it hangs, use Ctrl-C to quit)
|
||||||
|
@ -88,6 +103,17 @@ use the newest binutils-2.14.tar.bz2 from http://ftp.gnu.org/gnu/binutils.
|
||||||
>1
|
>1
|
||||||
>. (to quit this memory operation)
|
>. (to quit this memory operation)
|
||||||
MPC8560ADS>tftp 1000000 pImage
|
MPC8560ADS>tftp 1000000 pImage
|
||||||
|
4.3 If you're one of the early developers using the Rev1 8540/8560 chips, please use U-Boot
|
||||||
|
1.0.0, as the newer silicon will only support Rev2 and future revisions of 8540/8560.
|
||||||
|
|
||||||
|
|
||||||
|
4.4 Reflash U-boot Image using U-boot
|
||||||
|
|
||||||
|
=> tftp 0 u-boot.bin
|
||||||
|
=> protect off fff80000 ffffffff
|
||||||
|
=> erase fff80000 ffffffff
|
||||||
|
=> cp.b 0 fff80000 80000
|
||||||
|
|
||||||
|
|
||||||
5. Screen dump:
|
5. Screen dump:
|
||||||
5.1 MPC8540ADS board
|
5.1 MPC8540ADS board
|
||||||
|
|
|
@ -89,7 +89,13 @@ typedef struct ccsr_ddr {
|
||||||
uint sdram_mode; /* 0x2118 - DDR SDRAM Mode Configuration */
|
uint sdram_mode; /* 0x2118 - DDR SDRAM Mode Configuration */
|
||||||
char res7[8];
|
char res7[8];
|
||||||
uint sdram_interval; /* 0x2124 - DDR SDRAM Interval Configuration */
|
uint sdram_interval; /* 0x2124 - DDR SDRAM Interval Configuration */
|
||||||
|
#ifdef MPC85xx_DDR_SDRAM_CLK_CNTL
|
||||||
|
char res7_5[8];
|
||||||
|
uint sdram_clk_cntl; /* 0x2130 - DDR SDRAM Clock Control */
|
||||||
|
char res8[3276];
|
||||||
|
#else
|
||||||
char res8[3288];
|
char res8[3288];
|
||||||
|
#endif
|
||||||
uint data_err_inject_hi; /* 0x2e00 - DDR Memory Data Path Error Injection Mask High */
|
uint data_err_inject_hi; /* 0x2e00 - DDR Memory Data Path Error Injection Mask High */
|
||||||
uint data_err_inject_lo; /* 0x2e04 - DDR Memory Data Path Error Injection Mask Low */
|
uint data_err_inject_lo; /* 0x2e04 - DDR Memory Data Path Error Injection Mask Low */
|
||||||
uint ecc_err_inject; /* 0x2e08 - DDR Memory Data Path Error Injection Mask ECC */
|
uint ecc_err_inject; /* 0x2e08 - DDR Memory Data Path Error Injection Mask ECC */
|
||||||
|
@ -150,7 +156,7 @@ typedef struct ccsr_i2c {
|
||||||
char res6[4075];
|
char res6[4075];
|
||||||
} ccsr_i2c_t;
|
} ccsr_i2c_t;
|
||||||
|
|
||||||
#ifdef CONFIG_MPC8540
|
#if defined (CONFIG_MPC8540) || defined (CONFIG_MPC8555)
|
||||||
/* DUART Registers(0x4000-0x5000) */
|
/* DUART Registers(0x4000-0x5000) */
|
||||||
typedef struct ccsr_duart {
|
typedef struct ccsr_duart {
|
||||||
char res1[1280];
|
char res1[1280];
|
||||||
|
@ -1015,7 +1021,7 @@ typedef struct ccsr_pic {
|
||||||
} ccsr_pic_t;
|
} ccsr_pic_t;
|
||||||
|
|
||||||
/* CPM Block(0x8_0000-0xc_0000) */
|
/* CPM Block(0x8_0000-0xc_0000) */
|
||||||
#ifdef CONFIG_MPC8540
|
#if defined (CONFIG_MPC8540) || defined (CONFIG_MPC8555)
|
||||||
typedef struct ccsr_cpm {
|
typedef struct ccsr_cpm {
|
||||||
char res[262144];
|
char res[262144];
|
||||||
} ccsr_cpm_t;
|
} ccsr_cpm_t;
|
||||||
|
|
|
@ -83,6 +83,7 @@ typedef struct bd_info {
|
||||||
defined(CONFIG_SXNI855T) || \
|
defined(CONFIG_SXNI855T) || \
|
||||||
defined(CONFIG_SVM_SC8xx) || \
|
defined(CONFIG_SVM_SC8xx) || \
|
||||||
defined(CONFIG_MPC8540ADS) || \
|
defined(CONFIG_MPC8540ADS) || \
|
||||||
|
defined(CONFIG_MPC8555CDS) || \
|
||||||
defined(CONFIG_MPC8560ADS) || \
|
defined(CONFIG_MPC8560ADS) || \
|
||||||
defined(CONFIG_440_GX)
|
defined(CONFIG_440_GX)
|
||||||
/* second onboard ethernet port */
|
/* second onboard ethernet port */
|
||||||
|
@ -90,7 +91,7 @@ typedef struct bd_info {
|
||||||
#endif
|
#endif
|
||||||
#if defined(CFG_GT_6426x) || defined(CONFIG_SVM_SC8xx) || \
|
#if defined(CFG_GT_6426x) || defined(CONFIG_SVM_SC8xx) || \
|
||||||
defined(CONFIG_MPC8540ADS) || defined(CONFIG_MPC8560ADS) || \
|
defined(CONFIG_MPC8540ADS) || defined(CONFIG_MPC8560ADS) || \
|
||||||
defined(CONFIG_440_GX)
|
defined(CONFIG_MPC8555CDS) || defined(CONFIG_440_GX)
|
||||||
/* third onboard ethernet port */
|
/* third onboard ethernet port */
|
||||||
unsigned char bi_enet2addr[6];
|
unsigned char bi_enet2addr[6];
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -316,6 +316,7 @@ uint get_immr (uint);
|
||||||
#endif
|
#endif
|
||||||
uint get_pir (void);
|
uint get_pir (void);
|
||||||
uint get_pvr (void);
|
uint get_pvr (void);
|
||||||
|
uint get_svr (void);
|
||||||
uint rd_ic_cst (void);
|
uint rd_ic_cst (void);
|
||||||
void wr_ic_cst (uint);
|
void wr_ic_cst (uint);
|
||||||
void wr_ic_adr (uint);
|
void wr_ic_adr (uint);
|
||||||
|
|
Loading…
Add table
Reference in a new issue