mirror of
https://github.com/Stichting-MINIX-Research-Foundation/u-boot.git
synced 2025-09-10 04:26:19 -04:00
PPC4xx:HCU4/5 cleanup
Minor cleanups to confirm to the u-boot coding style. Some german expressions -> english. HCU5 enforces a unique IP adress for a given slot in the rack. Signed-off-by: Niklaus Giger <niklaus.giger@netstal.com>
This commit is contained in:
parent
1e6b07c649
commit
07bc20560c
@ -43,7 +43,7 @@ enum {
|
|||||||
HW_GENERATION_MCU25 = 0x09,
|
HW_GENERATION_MCU25 = 0x09,
|
||||||
};
|
};
|
||||||
|
|
||||||
void sysLedSet(u32 value);
|
void hcu_led_set(u32 value);
|
||||||
long int spd_sdram(int(read_spd)(uint addr));
|
long int spd_sdram(int(read_spd)(uint addr));
|
||||||
|
|
||||||
#ifdef CONFIG_SPD_EEPROM
|
#ifdef CONFIG_SPD_EEPROM
|
||||||
@ -121,22 +121,24 @@ int checkboard (void)
|
|||||||
printf ("HCU3: index %d\n\n", index);
|
printf ("HCU3: index %d\n\n", index);
|
||||||
else if (generation == HW_GENERATION_HCU4)
|
else if (generation == HW_GENERATION_HCU4)
|
||||||
printf ("HCU4: index %d\n\n", index);
|
printf ("HCU4: index %d\n\n", index);
|
||||||
/* GPIO here noch nicht richtig initialisert !!! */
|
hcu_led_set(0);
|
||||||
sysLedSet(0);
|
|
||||||
for (j = 0; j < 7; j++) {
|
for (j = 0; j < 7; j++) {
|
||||||
sysLedSet(1 << j);
|
hcu_led_set(1 << j);
|
||||||
udelay(50 * 1000);
|
udelay(50 * 1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
u32 sysLedGet(void)
|
u32 hcu_led_get(void)
|
||||||
{
|
{
|
||||||
return (~((*(u32 *)GPIO0_OR)) >> 23) & 0xff;
|
return (~((*(u32 *)GPIO0_OR)) >> 23) & 0xff;
|
||||||
}
|
}
|
||||||
|
|
||||||
void sysLedSet(u32 value /* value to place in LEDs */)
|
/*---------------------------------------------------------------------------+
|
||||||
|
* hcu_led_set value to be placed into the LEDs (max 6 bit)
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
void hcu_led_set(u32 value)
|
||||||
{
|
{
|
||||||
u32 tmp = ~value;
|
u32 tmp = ~value;
|
||||||
u32 *ledReg;
|
u32 *ledReg;
|
||||||
@ -243,9 +245,9 @@ long int fixed_hcu4_sdram (int board_type)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------+
|
/*---------------------------------------------------------------------------+
|
||||||
* getSerialNr
|
* hcu_serial_number
|
||||||
*---------------------------------------------------------------------------*/
|
*---------------------------------------------------------------------------*/
|
||||||
static u32 getSerialNr(void)
|
static u32 hcu_serial_number(void)
|
||||||
{
|
{
|
||||||
u32 *serial = (u32 *)CFG_FLASH_BASE;
|
u32 *serial = (u32 *)CFG_FLASH_BASE;
|
||||||
|
|
||||||
@ -265,7 +267,7 @@ int misc_init_r(void)
|
|||||||
char *s = getenv("ethaddr");
|
char *s = getenv("ethaddr");
|
||||||
char *e;
|
char *e;
|
||||||
int i;
|
int i;
|
||||||
u32 serial = getSerialNr();
|
u32 serial = hcu_serial_number();
|
||||||
|
|
||||||
for (i = 0; i < 6; ++i) {
|
for (i = 0; i < 6; ++i) {
|
||||||
gd->bd->bi_enetaddr[i] = s ? simple_strtoul (s, &e, 16) : 0;
|
gd->bd->bi_enetaddr[i] = s ? simple_strtoul (s, &e, 16) : 0;
|
||||||
|
@ -22,10 +22,11 @@
|
|||||||
#include <asm/processor.h>
|
#include <asm/processor.h>
|
||||||
#include <ppc440.h>
|
#include <ppc440.h>
|
||||||
#include <asm/mmu.h>
|
#include <asm/mmu.h>
|
||||||
|
#include <net.h>
|
||||||
|
|
||||||
DECLARE_GLOBAL_DATA_PTR;
|
DECLARE_GLOBAL_DATA_PTR;
|
||||||
|
|
||||||
void sysLedSet(u32 value);
|
void hcu_led_set(u32 value);
|
||||||
|
|
||||||
extern flash_info_t flash_info[CFG_MAX_FLASH_BANKS];
|
extern flash_info_t flash_info[CFG_MAX_FLASH_BANKS];
|
||||||
|
|
||||||
@ -41,7 +42,8 @@ extern flash_info_t flash_info[CFG_MAX_FLASH_BANKS];
|
|||||||
#define SDR0_ECID2 0x0082
|
#define SDR0_ECID2 0x0082
|
||||||
#define SDR0_ECID3 0x0083
|
#define SDR0_ECID3 0x0083
|
||||||
|
|
||||||
#define SYS_IO_ADDRESS 0xcce00000
|
#define SYS_IO_ADDRESS (CFG_CS_2 + 0x00e00000)
|
||||||
|
#define SYS_SLOT_ADDRESS (CFG_CPLD + 0x00400000)
|
||||||
|
|
||||||
#define DEFAULT_ETH_ADDR "ethaddr"
|
#define DEFAULT_ETH_ADDR "ethaddr"
|
||||||
/* ethaddr for first or etha1ddr for second ethernet */
|
/* ethaddr for first or etha1ddr for second ethernet */
|
||||||
@ -182,11 +184,14 @@ int board_early_init_f(void)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef CONFIG_BOARD_PRE_INIT
|
||||||
int board_pre_init(void)
|
int board_pre_init(void)
|
||||||
{
|
{
|
||||||
return board_early_init_f();
|
return board_early_init_f();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
int checkboard(void)
|
int checkboard(void)
|
||||||
{
|
{
|
||||||
unsigned int j;
|
unsigned int j;
|
||||||
@ -211,37 +216,50 @@ int checkboard(void)
|
|||||||
|
|
||||||
printf("Chip ID 0x%x 0x%x 0x%x 0x%x\n", ecid0, ecid1, ecid2, ecid3);
|
printf("Chip ID 0x%x 0x%x 0x%x 0x%x\n", ecid0, ecid1, ecid2, ecid3);
|
||||||
for (j = 0;j < 6; j++) {
|
for (j = 0;j < 6; j++) {
|
||||||
sysLedSet(1 << j);
|
hcu_led_set(1 << j);
|
||||||
udelay(200 * 1000);
|
udelay(200 * 1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
u32 sysLedGet(void)
|
u32 hcu_led_get(void)
|
||||||
{
|
{
|
||||||
return in16(SYS_IO_ADDRESS) & 0x3f;
|
return in16(SYS_IO_ADDRESS) & 0x3f;
|
||||||
}
|
}
|
||||||
|
|
||||||
void sysLedSet(u32 value /* value to place in LEDs */)
|
/*---------------------------------------------------------------------------+
|
||||||
|
* hcu_led_set value to be placed into the LEDs (max 6 bit)
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
void hcu_led_set(u32 value)
|
||||||
{
|
{
|
||||||
out16(SYS_IO_ADDRESS, value);
|
out16(SYS_IO_ADDRESS, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------+
|
/*---------------------------------------------------------------------------+
|
||||||
* getSerialNr
|
* get_serial_number
|
||||||
*---------------------------------------------------------------------------*/
|
*---------------------------------------------------------------------------*/
|
||||||
static u32 getSerialNr(void)
|
static u32 get_serial_number(void)
|
||||||
{
|
{
|
||||||
u32 *serial = (u32 *)CFG_FLASH_BASE;
|
u32 *serial = (u32 *)CFG_FLASH_BASE;
|
||||||
|
|
||||||
if (*serial == 0xffffffff)
|
if (*serial == 0xffffffff)
|
||||||
return get_ticks();
|
return 0;
|
||||||
|
|
||||||
return *serial;
|
return *serial;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------+
|
||||||
|
* hcu_get_slot
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
u32 hcu_get_slot(void)
|
||||||
|
{
|
||||||
|
u16 *slot = (u16 *)SYS_SLOT_ADDRESS;
|
||||||
|
return (*slot) & 0x7f;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------+
|
/*---------------------------------------------------------------------------+
|
||||||
* misc_init_r.
|
* misc_init_r.
|
||||||
*---------------------------------------------------------------------------*/
|
*---------------------------------------------------------------------------*/
|
||||||
@ -250,7 +268,7 @@ int misc_init_r(void)
|
|||||||
char *s = getenv(DEFAULT_ETH_ADDR);
|
char *s = getenv(DEFAULT_ETH_ADDR);
|
||||||
char *e;
|
char *e;
|
||||||
int i;
|
int i;
|
||||||
u32 serial = getSerialNr();
|
u32 serial = get_serial_number();
|
||||||
unsigned long usb2d0cr = 0;
|
unsigned long usb2d0cr = 0;
|
||||||
unsigned long usb2phy0cr, usb2h0cr = 0;
|
unsigned long usb2phy0cr, usb2h0cr = 0;
|
||||||
unsigned long sdr0_pfc1;
|
unsigned long sdr0_pfc1;
|
||||||
@ -272,8 +290,7 @@ int misc_init_r(void)
|
|||||||
gd->bd->bi_enetaddr[2] = 0x13;
|
gd->bd->bi_enetaddr[2] = 0x13;
|
||||||
gd->bd->bi_enetaddr[3] = (serial >> 16) & 0xff;
|
gd->bd->bi_enetaddr[3] = (serial >> 16) & 0xff;
|
||||||
gd->bd->bi_enetaddr[4] = (serial >> 8) & 0xff;
|
gd->bd->bi_enetaddr[4] = (serial >> 8) & 0xff;
|
||||||
/* byte[5].bit 0 must be zero */
|
gd->bd->bi_enetaddr[5] = hcu_get_slot();
|
||||||
gd->bd->bi_enetaddr[5] = (serial >> 0) & 0xfe;
|
|
||||||
sprintf(ethaddr, "%02X:%02X:%02X:%02X:%02X:%02X\0",
|
sprintf(ethaddr, "%02X:%02X:%02X:%02X:%02X:%02X\0",
|
||||||
gd->bd->bi_enetaddr[0], gd->bd->bi_enetaddr[1],
|
gd->bd->bi_enetaddr[0], gd->bd->bi_enetaddr[1],
|
||||||
gd->bd->bi_enetaddr[2], gd->bd->bi_enetaddr[3],
|
gd->bd->bi_enetaddr[2], gd->bd->bi_enetaddr[3],
|
||||||
@ -283,6 +300,25 @@ int misc_init_r(void)
|
|||||||
setenv(DEFAULT_ETH_ADDR, ethaddr);
|
setenv(DEFAULT_ETH_ADDR, ethaddr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* IP-Adress update */
|
||||||
|
{
|
||||||
|
IPaddr_t ipaddr;
|
||||||
|
char *ipstring;
|
||||||
|
|
||||||
|
ipstring = getenv("ipaddr");
|
||||||
|
if (ipstring == 0)
|
||||||
|
ipaddr = string_to_ip("172.25.1.99");
|
||||||
|
else
|
||||||
|
ipaddr = string_to_ip(ipstring);
|
||||||
|
if ((ipaddr & 0xff) != (32 + hcu_get_slot())) {
|
||||||
|
char tmp[22];
|
||||||
|
|
||||||
|
ipaddr = (ipaddr & 0xffffff00) + 32 + hcu_get_slot();
|
||||||
|
ip_to_string (ipaddr, tmp);
|
||||||
|
printf("%s: enforce %s\n", __FUNCTION__, tmp);
|
||||||
|
setenv("ipaddr", tmp);
|
||||||
|
}
|
||||||
|
}
|
||||||
#ifdef CFG_ENV_IS_IN_FLASH
|
#ifdef CFG_ENV_IS_IN_FLASH
|
||||||
/* Monitor protection ON by default */
|
/* Monitor protection ON by default */
|
||||||
(void)flash_protect(FLAG_PROTECT_SET,
|
(void)flash_protect(FLAG_PROTECT_SET,
|
||||||
@ -346,6 +382,7 @@ int misc_init_r(void)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if defined(CONFIG_PCI)
|
||||||
/*************************************************************************
|
/*************************************************************************
|
||||||
* pci_pre_init
|
* pci_pre_init
|
||||||
*
|
*
|
||||||
@ -358,7 +395,6 @@ int misc_init_r(void)
|
|||||||
* certain pre-initialization actions.
|
* certain pre-initialization actions.
|
||||||
*
|
*
|
||||||
************************************************************************/
|
************************************************************************/
|
||||||
#if defined(CONFIG_PCI)
|
|
||||||
int pci_pre_init(struct pci_controller *hose)
|
int pci_pre_init(struct pci_controller *hose)
|
||||||
{
|
{
|
||||||
unsigned long addr;
|
unsigned long addr;
|
||||||
@ -411,7 +447,6 @@ int pci_pre_init(struct pci_controller *hose)
|
|||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
#endif /* defined(CONFIG_PCI) */
|
|
||||||
|
|
||||||
/*************************************************************************
|
/*************************************************************************
|
||||||
* pci_target_init
|
* pci_target_init
|
||||||
@ -421,7 +456,6 @@ int pci_pre_init(struct pci_controller *hose)
|
|||||||
* may not be sufficient for a given board.
|
* may not be sufficient for a given board.
|
||||||
*
|
*
|
||||||
************************************************************************/
|
************************************************************************/
|
||||||
#if defined(CONFIG_PCI) && defined(CFG_PCI_TARGET_INIT)
|
|
||||||
void pci_target_init(struct pci_controller *hose)
|
void pci_target_init(struct pci_controller *hose)
|
||||||
{
|
{
|
||||||
/*-------------------------------------------------------------+
|
/*-------------------------------------------------------------+
|
||||||
@ -478,13 +512,11 @@ void pci_target_init(struct pci_controller *hose)
|
|||||||
|
|
||||||
pci_write_config_dword(0, PCI_BRDGOPT2, 0x00000101);
|
pci_write_config_dword(0, PCI_BRDGOPT2, 0x00000101);
|
||||||
}
|
}
|
||||||
#endif /* defined(CONFIG_PCI) && defined(CFG_PCI_TARGET_INIT) */
|
|
||||||
|
|
||||||
/*************************************************************************
|
/*************************************************************************
|
||||||
* pci_master_init
|
* pci_master_init
|
||||||
*
|
*
|
||||||
************************************************************************/
|
************************************************************************/
|
||||||
#if defined(CONFIG_PCI) && defined(CFG_PCI_MASTER_INIT)
|
|
||||||
void pci_master_init(struct pci_controller *hose)
|
void pci_master_init(struct pci_controller *hose)
|
||||||
{
|
{
|
||||||
unsigned short temp_short;
|
unsigned short temp_short;
|
||||||
@ -499,8 +531,6 @@ void pci_master_init(struct pci_controller *hose)
|
|||||||
temp_short | PCI_COMMAND_MASTER |
|
temp_short | PCI_COMMAND_MASTER |
|
||||||
PCI_COMMAND_MEMORY);
|
PCI_COMMAND_MEMORY);
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
/* defined(CONFIG_PCI) && defined(CFG_PCI_MASTER_INIT) */
|
|
||||||
|
|
||||||
/*************************************************************************
|
/*************************************************************************
|
||||||
* is_pci_host
|
* is_pci_host
|
||||||
@ -517,9 +547,8 @@ void pci_master_init(struct pci_controller *hose)
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
************************************************************************/
|
************************************************************************/
|
||||||
#if defined(CONFIG_PCI)
|
|
||||||
int is_pci_host(struct pci_controller *hose)
|
int is_pci_host(struct pci_controller *hose)
|
||||||
{
|
{
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
#endif /* defined(CONFIG_PCI) */
|
#endif /* defined(CONFIG_PCI) */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user