mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-10 23:24:38 +00:00
powerpc/83xx: configure CONFIG_POST for kmcoge5ne
kmcoge5ne starts the post tests if the testpin on the board was enabled. Currently it does simply a memory test. Signed-off-by: Thomas Herzmann <thomas.herzmann@keymile.com> Signed-off-by: Holger Brunck <holger.brunck@keymile.com> Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
This commit is contained in:
parent
5758dd7633
commit
95209b6684
3 changed files with 50 additions and 1 deletions
|
@ -32,7 +32,11 @@ struct km_bec_fpga {
|
|||
unsigned char res1[3];
|
||||
unsigned char bprth;
|
||||
unsigned char bprtl;
|
||||
unsigned char res2[6];
|
||||
unsigned char gprt3;
|
||||
unsigned char gprt2;
|
||||
unsigned char gprt1;
|
||||
unsigned char gprt0;
|
||||
unsigned char res2[2];
|
||||
unsigned char prst;
|
||||
unsigned char res3[0xfff0];
|
||||
unsigned char pgy_id;
|
||||
|
|
|
@ -27,6 +27,7 @@
|
|||
#include <asm/processor.h>
|
||||
#include <pci.h>
|
||||
#include <libfdt.h>
|
||||
#include <post.h>
|
||||
|
||||
#include "../common/common.h"
|
||||
|
||||
|
@ -288,3 +289,39 @@ int hush_init_var(void)
|
|||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_POST)
|
||||
int post_hotkeys_pressed(void)
|
||||
{
|
||||
int testpin = 0;
|
||||
struct km_bec_fpga *base =
|
||||
(struct km_bec_fpga *)CONFIG_SYS_KMBEC_FPGA_BASE;
|
||||
int testpin_reg = in_8(&base->CONFIG_TESTPIN_REG);
|
||||
testpin = (testpin_reg & CONFIG_TESTPIN_MASK) != 0;
|
||||
debug("post_hotkeys_pressed: %d\n", !testpin);
|
||||
return testpin;
|
||||
}
|
||||
|
||||
ulong post_word_load(void)
|
||||
{
|
||||
void* addr = (ulong *) (CPM_POST_WORD_ADDR);
|
||||
debug("post_word_load 0x%08lX: 0x%08X\n", (ulong)addr, in_le32(addr));
|
||||
return in_le32(addr);
|
||||
|
||||
}
|
||||
void post_word_store(ulong value)
|
||||
{
|
||||
void* addr = (ulong *) (CPM_POST_WORD_ADDR);
|
||||
debug("post_word_store 0x%08lX: 0x%08lX\n", (ulong)addr, value);
|
||||
out_le32(addr, value);
|
||||
}
|
||||
|
||||
int arch_memory_test_prepare(u32 *vstart, u32 *size, phys_addr_t *phys_offset)
|
||||
{
|
||||
*vstart = CONFIG_SYS_MEMTEST_START;
|
||||
*size = CONFIG_SYS_MEMTEST_END - CONFIG_SYS_MEMTEST_START;
|
||||
debug("arch_memory_test_prepare 0x%08X 0x%08X\n", *vstart, *size);
|
||||
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -266,6 +266,14 @@
|
|||
BATU_BL_256M |\
|
||||
BATU_VS |\
|
||||
BATU_VP)
|
||||
/* enable POST tests */
|
||||
#define CONFIG_POST (CONFIG_SYS_POST_MEMORY|CONFIG_SYS_POST_MEM_REGIONS)
|
||||
#define CONFIG_POST_EXTERNAL_WORD_FUNCS /* use own functions, not generic */
|
||||
#define CPM_POST_WORD_ADDR CONFIG_SYS_MEMTEST_END
|
||||
#define CONFIG_TESTPIN_REG gprt3 /* for kmcoge5ne */
|
||||
#define CONFIG_TESTPIN_MASK 0x20 /* for kmcoge5ne */
|
||||
#define CONFIG_CMD_DIAG /* so that testpin is inquired for POST test */
|
||||
|
||||
#else
|
||||
#define CONFIG_SYS_IBAT6L (0)
|
||||
#define CONFIG_SYS_IBAT6U (0)
|
||||
|
|
Loading…
Reference in a new issue