mirror of
https://github.com/Stichting-MINIX-Research-Foundation/u-boot.git
synced 2025-09-19 08:54:48 -04:00
SPEAr: Eliminate dependency on Xloader table
Xloader table was used primarily to inform u-boot about the DDR size. However, now the ddr size is calculated at runtime which eliminates any need for the Xloader table. So removing this unnecessary code. Signed-off-by: Amit Virdi <amit.virdi@st.com> Acked-by: Stefan Roese <sr@denx.de> Signed-off-by: Stefan Roese <sr@denx.de>
This commit is contained in:
parent
5cca72f8b3
commit
70fdbefc6c
@ -28,13 +28,6 @@ extern int spear_board_init(ulong);
|
|||||||
extern void setfreq(unsigned int, unsigned int);
|
extern void setfreq(unsigned int, unsigned int);
|
||||||
extern unsigned int setfreq_sz;
|
extern unsigned int setfreq_sz;
|
||||||
|
|
||||||
struct chip_data {
|
|
||||||
int cpufreq;
|
|
||||||
int dramfreq;
|
|
||||||
int dramtype;
|
|
||||||
uchar version[32];
|
|
||||||
};
|
|
||||||
|
|
||||||
/* HW mac id in i2c memory definitions */
|
/* HW mac id in i2c memory definitions */
|
||||||
#define MAGIC_OFF 0x0
|
#define MAGIC_OFF 0x0
|
||||||
#define MAGIC_LEN 0x2
|
#define MAGIC_LEN 0x2
|
||||||
|
@ -1,67 +0,0 @@
|
|||||||
/*
|
|
||||||
* (C) Copyright 2009
|
|
||||||
* Vipin Kumar, ST Micoelectronics, vipin.kumar@st.com.
|
|
||||||
*
|
|
||||||
* See file CREDITS for list of people who contributed to this
|
|
||||||
* project.
|
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or
|
|
||||||
* modify it under the terms of the GNU General Public License as
|
|
||||||
* published by the Free Software Foundation; either version 2 of
|
|
||||||
* the License, or (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
|
||||||
* MA 02111-1307 USA
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _SPR_XLOADER_TABLE_H
|
|
||||||
#define _SPR_XLOADER_TABLE_H
|
|
||||||
|
|
||||||
#define XLOADER_TABLE_VERSION_1_1 2
|
|
||||||
#define XLOADER_TABLE_VERSION_1_2 3
|
|
||||||
|
|
||||||
#define XLOADER_TABLE_ADDRESS 0xD2801FF0
|
|
||||||
|
|
||||||
#define DDRMOBILE 1
|
|
||||||
#define DDR2 2
|
|
||||||
|
|
||||||
#define REV_BA 1
|
|
||||||
#define REV_AA 2
|
|
||||||
#define REV_AB 3
|
|
||||||
|
|
||||||
struct xloader_table_1_1 {
|
|
||||||
unsigned short ddrfreq;
|
|
||||||
unsigned char ddrsize;
|
|
||||||
unsigned char ddrtype;
|
|
||||||
|
|
||||||
unsigned char soc_rev;
|
|
||||||
} __attribute__ ((packed));
|
|
||||||
|
|
||||||
struct xloader_table_1_2 {
|
|
||||||
unsigned const char *version;
|
|
||||||
|
|
||||||
unsigned short ddrfreq;
|
|
||||||
unsigned char ddrsize;
|
|
||||||
unsigned char ddrtype;
|
|
||||||
|
|
||||||
unsigned char soc_rev;
|
|
||||||
} __attribute__ ((packed));
|
|
||||||
|
|
||||||
union table_contents {
|
|
||||||
struct xloader_table_1_1 table_1_1;
|
|
||||||
struct xloader_table_1_2 table_1_2;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct xloader_table {
|
|
||||||
unsigned char table_version;
|
|
||||||
union table_contents table;
|
|
||||||
} __attribute__ ((packed));
|
|
||||||
|
|
||||||
#endif
|
|
@ -28,7 +28,6 @@
|
|||||||
#include <asm/io.h>
|
#include <asm/io.h>
|
||||||
#include <asm/arch/hardware.h>
|
#include <asm/arch/hardware.h>
|
||||||
#include <asm/arch/spr_emi.h>
|
#include <asm/arch/spr_emi.h>
|
||||||
#include <asm/arch/spr_xloader_table.h>
|
|
||||||
#include <asm/arch/spr_defs.h>
|
#include <asm/arch/spr_defs.h>
|
||||||
|
|
||||||
#define CPU 0
|
#define CPU 0
|
||||||
@ -36,7 +35,6 @@
|
|||||||
#define SRAM_REL 0xD2801000
|
#define SRAM_REL 0xD2801000
|
||||||
|
|
||||||
DECLARE_GLOBAL_DATA_PTR;
|
DECLARE_GLOBAL_DATA_PTR;
|
||||||
static struct chip_data chip_data;
|
|
||||||
|
|
||||||
int dram_init(void)
|
int dram_init(void)
|
||||||
{
|
{
|
||||||
@ -127,25 +125,11 @@ void spear_emi_init(void)
|
|||||||
|
|
||||||
int spear_board_init(ulong mach_type)
|
int spear_board_init(ulong mach_type)
|
||||||
{
|
{
|
||||||
struct xloader_table *xloader_tb =
|
|
||||||
(struct xloader_table *)XLOADER_TABLE_ADDRESS;
|
|
||||||
struct xloader_table_1_2 *table_1_2;
|
|
||||||
struct chip_data *chip = &chip_data;
|
|
||||||
|
|
||||||
gd->bd->bi_arch_number = mach_type;
|
gd->bd->bi_arch_number = mach_type;
|
||||||
|
|
||||||
/* adress of boot parameters */
|
/* adress of boot parameters */
|
||||||
gd->bd->bi_boot_params = CONFIG_BOOT_PARAMS_ADDR;
|
gd->bd->bi_boot_params = CONFIG_BOOT_PARAMS_ADDR;
|
||||||
|
|
||||||
/* CPU is initialized to work at 333MHz in Xloader */
|
|
||||||
chip->cpufreq = 333;
|
|
||||||
|
|
||||||
if (XLOADER_TABLE_VERSION_1_2 == xloader_tb->table_version) {
|
|
||||||
table_1_2 = &xloader_tb->table.table_1_2;
|
|
||||||
memcpy(chip->version, table_1_2->version,
|
|
||||||
sizeof(chip->version));
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef CONFIG_SPEAR_EMI
|
#ifdef CONFIG_SPEAR_EMI
|
||||||
spear_emi_init();
|
spear_emi_init();
|
||||||
#endif
|
#endif
|
||||||
@ -195,7 +179,6 @@ static int write_mac(uchar *mac)
|
|||||||
int do_chip_config(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
|
int do_chip_config(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
|
||||||
{
|
{
|
||||||
void (*sram_setfreq) (unsigned int, unsigned int);
|
void (*sram_setfreq) (unsigned int, unsigned int);
|
||||||
struct chip_data *chip = &chip_data;
|
|
||||||
unsigned char mac[6];
|
unsigned char mac[6];
|
||||||
unsigned int reg, frequency;
|
unsigned int reg, frequency;
|
||||||
char *s, *e;
|
char *s, *e;
|
||||||
@ -218,13 +201,9 @@ int do_chip_config(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
|
|||||||
if (!strcmp(argv[1], "cpufreq")) {
|
if (!strcmp(argv[1], "cpufreq")) {
|
||||||
sram_setfreq(CPU, frequency);
|
sram_setfreq(CPU, frequency);
|
||||||
printf("CPU frequency changed to %u\n", frequency);
|
printf("CPU frequency changed to %u\n", frequency);
|
||||||
|
|
||||||
chip->cpufreq = frequency;
|
|
||||||
} else {
|
} else {
|
||||||
sram_setfreq(DDR, frequency);
|
sram_setfreq(DDR, frequency);
|
||||||
printf("DDR frequency changed to %u\n", frequency);
|
printf("DDR frequency changed to %u\n", frequency);
|
||||||
|
|
||||||
chip->dramfreq = frequency;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
@ -240,24 +219,6 @@ int do_chip_config(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
|
|||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
} else if (!strcmp(argv[1], "print")) {
|
} else if (!strcmp(argv[1], "print")) {
|
||||||
|
|
||||||
if (chip->cpufreq == -1)
|
|
||||||
printf("CPU Freq = Not Known\n");
|
|
||||||
else
|
|
||||||
printf("CPU Freq = %d MHz\n", chip->cpufreq);
|
|
||||||
|
|
||||||
if (chip->dramfreq == -1)
|
|
||||||
printf("DDR Freq = Not Known\n");
|
|
||||||
else
|
|
||||||
printf("DDR Freq = %d MHz\n", chip->dramfreq);
|
|
||||||
|
|
||||||
if (chip->dramtype == DDRMOBILE)
|
|
||||||
printf("DDR Type = MOBILE\n");
|
|
||||||
else if (chip->dramtype == DDR2)
|
|
||||||
printf("DDR Type = DDR2\n");
|
|
||||||
else
|
|
||||||
printf("DDR Type = Not Known\n");
|
|
||||||
|
|
||||||
if (!i2c_read_mac(mac)) {
|
if (!i2c_read_mac(mac)) {
|
||||||
sprintf(i2c_mac, "%pM", mac);
|
sprintf(i2c_mac, "%pM", mac);
|
||||||
printf("Ethaddr (from i2c mem) = %s\n", i2c_mac);
|
printf("Ethaddr (from i2c mem) = %s\n", i2c_mac);
|
||||||
@ -265,8 +226,6 @@ int do_chip_config(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
|
|||||||
printf("Ethaddr (from i2c mem) = Not set\n");
|
printf("Ethaddr (from i2c mem) = Not set\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
printf("Xloader Rev = %s\n", chip->version);
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user