mirror of
https://github.com/Stichting-MINIX-Research-Foundation/u-boot.git
synced 2025-09-09 12:13:00 -04:00
ZOOM2 detect the version of the zoom2 board at runtime.
There are currently 3 versions of the zoom2 board. The production board, that is currently being released. The beta board, similar in form to the production board but not released. The alpha board, a set of PCBs with a very limited circulation. GPIO 94 is used to determine the version of the board. If GPIO 94 is clear, the board is a production board, otherwise it is a beta board. The alpha board will likely be mistaken for a beta board. An alpha board was unavailible for testing. This has been tested on the beta and production boards. Signed-off-by: Tom Rix <Tom.Rix@windriver.com> Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
This commit is contained in:
parent
718763c474
commit
a30f519bd0
@ -33,6 +33,7 @@
|
|||||||
#include <status_led.h>
|
#include <status_led.h>
|
||||||
#endif
|
#endif
|
||||||
#include <asm/io.h>
|
#include <asm/io.h>
|
||||||
|
#include <asm/arch/gpio.h>
|
||||||
#include <asm/arch/mem.h>
|
#include <asm/arch/mem.h>
|
||||||
#include <asm/arch/mux.h>
|
#include <asm/arch/mux.h>
|
||||||
#include <asm/arch/sys_proto.h>
|
#include <asm/arch/sys_proto.h>
|
||||||
@ -60,6 +61,60 @@ static u32 gpmc_serial_TL16CP754C[GPMC_MAX_REG] = {
|
|||||||
0x1D0904C4, 0
|
0x1D0904C4, 0
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/* Used to track the revision of the board */
|
||||||
|
static zoom2_revision revision = ZOOM2_REVISION_UNKNOWN;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Routine: zoom2_get_revision
|
||||||
|
* Description: Return the revision of the Zoom2 this code is running on.
|
||||||
|
*/
|
||||||
|
zoom2_revision zoom2_get_revision(void)
|
||||||
|
{
|
||||||
|
return revision;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Routine: zoom2_identify
|
||||||
|
* Description: Detect which version of Zoom2 we are running on.
|
||||||
|
*/
|
||||||
|
void zoom2_identify(void)
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
* To check for production board vs beta board,
|
||||||
|
* check if gpio 94 is clear.
|
||||||
|
*
|
||||||
|
* No way yet to check for alpha board identity.
|
||||||
|
* Alpha boards were produced in very limited quantities
|
||||||
|
* and they are not commonly used. They are mentioned here
|
||||||
|
* only for completeness.
|
||||||
|
*/
|
||||||
|
if (!omap_request_gpio(94)) {
|
||||||
|
unsigned int val;
|
||||||
|
|
||||||
|
omap_set_gpio_direction(94, 1);
|
||||||
|
val = omap_get_gpio_datain(94);
|
||||||
|
omap_free_gpio(94);
|
||||||
|
|
||||||
|
if (val)
|
||||||
|
revision = ZOOM2_REVISION_BETA;
|
||||||
|
else
|
||||||
|
revision = ZOOM2_REVISION_PRODUCTION;
|
||||||
|
}
|
||||||
|
|
||||||
|
printf("Board revision ");
|
||||||
|
switch (revision) {
|
||||||
|
case ZOOM2_REVISION_PRODUCTION:
|
||||||
|
printf("Production\n");
|
||||||
|
break;
|
||||||
|
case ZOOM2_REVISION_BETA:
|
||||||
|
printf("Beta\n");
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
printf("Unknown\n");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Routine: board_init
|
* Routine: board_init
|
||||||
* Description: Early hardware init.
|
* Description: Early hardware init.
|
||||||
@ -96,10 +151,11 @@ int board_init (void)
|
|||||||
* Routine: misc_init_r
|
* Routine: misc_init_r
|
||||||
* Description: Configure zoom board specific configurations
|
* Description: Configure zoom board specific configurations
|
||||||
*/
|
*/
|
||||||
int misc_init_r (void)
|
int misc_init_r(void)
|
||||||
{
|
{
|
||||||
power_init_r ();
|
zoom2_identify();
|
||||||
dieid_num_r ();
|
power_init_r();
|
||||||
|
dieid_num_r();
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -32,6 +32,15 @@ const omap3_sysinfo sysinfo = {
|
|||||||
"NAND",
|
"NAND",
|
||||||
};
|
};
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
ZOOM2_REVISION_UNKNOWN = 0,
|
||||||
|
ZOOM2_REVISION_ALPHA,
|
||||||
|
ZOOM2_REVISION_BETA,
|
||||||
|
ZOOM2_REVISION_PRODUCTION
|
||||||
|
} zoom2_revision;
|
||||||
|
|
||||||
|
zoom2_revision zoom2_get_revision(void);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* IEN - Input Enable
|
* IEN - Input Enable
|
||||||
* IDIS - Input Disable
|
* IDIS - Input Disable
|
||||||
|
Loading…
x
Reference in New Issue
Block a user