Merge patch series "Miscellaneous fixes"
Jerome Forissier <jerome.forissier@linaro.org> says: Miscellaneous fixes made when developing the lwIP series [1]. They are posted separately since they make sense on their own. Subsequent versions of the lwIP series will contain a squashed version of this one. [1] http://patchwork.ozlabs.org/project/uboot/list/?series=420712&state=%2A&archive=both
This commit is contained in:
@@ -28,7 +28,7 @@ void at91_pllb_init(u32 pllar);
|
|||||||
void at91_mck_init(u32 mckr);
|
void at91_mck_init(u32 mckr);
|
||||||
void at91_mck_init_down(u32 mckr);
|
void at91_mck_init_down(u32 mckr);
|
||||||
void at91_pmc_init(void);
|
void at91_pmc_init(void);
|
||||||
void mem_init(void);
|
void at91_mem_init(void);
|
||||||
void at91_phy_reset(void);
|
void at91_phy_reset(void);
|
||||||
void at91_sdram_hw_init(void);
|
void at91_sdram_hw_init(void);
|
||||||
void at91_mck_init(u32 mckr);
|
void at91_mck_init(u32 mckr);
|
||||||
|
@@ -142,7 +142,7 @@ void board_init_f(ulong dummy)
|
|||||||
preloader_console_init();
|
preloader_console_init();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
mem_init();
|
at91_mem_init();
|
||||||
|
|
||||||
at91_spl_board_init();
|
at91_spl_board_init();
|
||||||
}
|
}
|
||||||
|
@@ -134,7 +134,7 @@ void board_init_f(ulong dummy)
|
|||||||
|
|
||||||
board_early_init_f();
|
board_early_init_f();
|
||||||
|
|
||||||
mem_init();
|
at91_mem_init();
|
||||||
|
|
||||||
ret = spl_init();
|
ret = spl_init();
|
||||||
if (ret) {
|
if (ret) {
|
||||||
|
@@ -9,6 +9,7 @@
|
|||||||
#include <net.h>
|
#include <net.h>
|
||||||
#include <asm/io.h>
|
#include <asm/io.h>
|
||||||
#include <asm/arch/am35x_def.h>
|
#include <asm/arch/am35x_def.h>
|
||||||
|
#include <netdev.h>
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Initializes on-chip ethernet controllers.
|
* Initializes on-chip ethernet controllers.
|
||||||
|
@@ -125,7 +125,7 @@ static void ddr2_conf(struct atmel_mpddrc_config *ddr2)
|
|||||||
2 << ATMEL_MPDDRC_TPR2_TXARD_OFFSET);
|
2 << ATMEL_MPDDRC_TPR2_TXARD_OFFSET);
|
||||||
}
|
}
|
||||||
|
|
||||||
void mem_init(void)
|
void at91_mem_init(void)
|
||||||
{
|
{
|
||||||
struct atmel_mpddrc_config ddr2;
|
struct atmel_mpddrc_config ddr2;
|
||||||
|
|
||||||
|
@@ -167,7 +167,7 @@ static void ddr2_conf(struct atmel_mpddrc_config *ddr2)
|
|||||||
2 << ATMEL_MPDDRC_TPR2_TXARD_OFFSET);
|
2 << ATMEL_MPDDRC_TPR2_TXARD_OFFSET);
|
||||||
}
|
}
|
||||||
|
|
||||||
void mem_init(void)
|
void at91_mem_init(void)
|
||||||
{
|
{
|
||||||
struct at91_pmc *pmc = (struct at91_pmc *)ATMEL_BASE_PMC;
|
struct at91_pmc *pmc = (struct at91_pmc *)ATMEL_BASE_PMC;
|
||||||
struct at91_matrix *matrix = (struct at91_matrix *)ATMEL_BASE_MATRIX;
|
struct at91_matrix *matrix = (struct at91_matrix *)ATMEL_BASE_MATRIX;
|
||||||
|
@@ -181,7 +181,7 @@ static void ddr2_conf(struct atmel_mpddrc_config *ddr2)
|
|||||||
2 << ATMEL_MPDDRC_TPR2_TXARD_OFFSET);
|
2 << ATMEL_MPDDRC_TPR2_TXARD_OFFSET);
|
||||||
}
|
}
|
||||||
|
|
||||||
void mem_init(void)
|
void at91_mem_init(void)
|
||||||
{
|
{
|
||||||
struct at91_pmc *pmc = (struct at91_pmc *)ATMEL_BASE_PMC;
|
struct at91_pmc *pmc = (struct at91_pmc *)ATMEL_BASE_PMC;
|
||||||
struct at91_matrix *matrix = (struct at91_matrix *)ATMEL_BASE_MATRIX;
|
struct at91_matrix *matrix = (struct at91_matrix *)ATMEL_BASE_MATRIX;
|
||||||
|
@@ -146,7 +146,7 @@ static void ddrc_conf(struct atmel_mpddrc_config *ddrc)
|
|||||||
(8 << ATMEL_MPDDRC_TPR2_TFAW_OFFSET));
|
(8 << ATMEL_MPDDRC_TPR2_TFAW_OFFSET));
|
||||||
}
|
}
|
||||||
|
|
||||||
void mem_init(void)
|
void at91_mem_init(void)
|
||||||
{
|
{
|
||||||
struct at91_pmc *pmc = (struct at91_pmc *)ATMEL_BASE_PMC;
|
struct at91_pmc *pmc = (struct at91_pmc *)ATMEL_BASE_PMC;
|
||||||
struct atmel_mpddr *mpddrc = (struct atmel_mpddr *)ATMEL_BASE_MPDDRC;
|
struct atmel_mpddr *mpddrc = (struct atmel_mpddr *)ATMEL_BASE_MPDDRC;
|
||||||
|
@@ -208,7 +208,7 @@ static void ddrc_conf(struct atmel_mpddrc_config *ddrc)
|
|||||||
ddrc->cal_mr4 |= ATMEL_MPDDRC_CAL_MR4_MR4R(0xFFFE);
|
ddrc->cal_mr4 |= ATMEL_MPDDRC_CAL_MR4_MR4R(0xFFFE);
|
||||||
}
|
}
|
||||||
|
|
||||||
void mem_init(void)
|
void at91_mem_init(void)
|
||||||
{
|
{
|
||||||
struct at91_pmc *pmc = (struct at91_pmc *)ATMEL_BASE_PMC;
|
struct at91_pmc *pmc = (struct at91_pmc *)ATMEL_BASE_PMC;
|
||||||
struct atmel_mpddr *mpddrc = (struct atmel_mpddr *)ATMEL_BASE_MPDDRC;
|
struct atmel_mpddr *mpddrc = (struct atmel_mpddr *)ATMEL_BASE_MPDDRC;
|
||||||
|
@@ -180,7 +180,7 @@ static void ddrc_conf(struct atmel_mpddrc_config *ddrc)
|
|||||||
(7 << ATMEL_MPDDRC_TPR2_TFAW_OFFSET));
|
(7 << ATMEL_MPDDRC_TPR2_TFAW_OFFSET));
|
||||||
}
|
}
|
||||||
|
|
||||||
void mem_init(void)
|
void at91_mem_init(void)
|
||||||
{
|
{
|
||||||
struct at91_pmc *pmc = (struct at91_pmc *)ATMEL_BASE_PMC;
|
struct at91_pmc *pmc = (struct at91_pmc *)ATMEL_BASE_PMC;
|
||||||
struct atmel_mpddr *mpddrc = (struct atmel_mpddr *)ATMEL_BASE_MPDDRC;
|
struct atmel_mpddr *mpddrc = (struct atmel_mpddr *)ATMEL_BASE_MPDDRC;
|
||||||
|
@@ -146,7 +146,7 @@ static void ddrc_conf(struct atmel_mpddrc_config *ddrc)
|
|||||||
7 << ATMEL_MPDDRC_TPR2_TFAW_OFFSET);
|
7 << ATMEL_MPDDRC_TPR2_TFAW_OFFSET);
|
||||||
}
|
}
|
||||||
|
|
||||||
void mem_init(void)
|
void at91_mem_init(void)
|
||||||
{
|
{
|
||||||
struct at91_pmc *pmc = (struct at91_pmc *)ATMEL_BASE_PMC;
|
struct at91_pmc *pmc = (struct at91_pmc *)ATMEL_BASE_PMC;
|
||||||
struct atmel_mpddr *mpddrc = (struct atmel_mpddr *)ATMEL_BASE_MPDDRC;
|
struct atmel_mpddr *mpddrc = (struct atmel_mpddr *)ATMEL_BASE_MPDDRC;
|
||||||
|
@@ -175,7 +175,7 @@ static void ddr2_conf(struct atmel_mpddrc_config *ddr2)
|
|||||||
8 << ATMEL_MPDDRC_TPR2_TXARD_OFFSET);
|
8 << ATMEL_MPDDRC_TPR2_TXARD_OFFSET);
|
||||||
}
|
}
|
||||||
|
|
||||||
void mem_init(void)
|
void at91_mem_init(void)
|
||||||
{
|
{
|
||||||
struct atmel_mpddrc_config ddr2;
|
struct atmel_mpddrc_config ddr2;
|
||||||
|
|
||||||
|
@@ -241,7 +241,7 @@ static void ddr2_conf(struct atmel_mpddrc_config *ddr2)
|
|||||||
8 << ATMEL_MPDDRC_TPR2_TXARD_OFFSET);
|
8 << ATMEL_MPDDRC_TPR2_TXARD_OFFSET);
|
||||||
}
|
}
|
||||||
|
|
||||||
void mem_init(void)
|
void at91_mem_init(void)
|
||||||
{
|
{
|
||||||
struct atmel_mpddrc_config ddr2;
|
struct atmel_mpddrc_config ddr2;
|
||||||
|
|
||||||
|
@@ -184,7 +184,7 @@ static void ddr2_conf(struct atmel_mpddrc_config *ddr2)
|
|||||||
8 << ATMEL_MPDDRC_TPR2_TXARD_OFFSET);
|
8 << ATMEL_MPDDRC_TPR2_TXARD_OFFSET);
|
||||||
}
|
}
|
||||||
|
|
||||||
void mem_init(void)
|
void at91_mem_init(void)
|
||||||
{
|
{
|
||||||
struct atmel_mpddrc_config ddr2;
|
struct atmel_mpddrc_config ddr2;
|
||||||
|
|
||||||
|
@@ -169,7 +169,7 @@ static void ddr2_conf(struct atmel_mpddrc_config *ddr2)
|
|||||||
8 << ATMEL_MPDDRC_TPR2_TXARD_OFFSET);
|
8 << ATMEL_MPDDRC_TPR2_TXARD_OFFSET);
|
||||||
}
|
}
|
||||||
|
|
||||||
void mem_init(void)
|
void at91_mem_init(void)
|
||||||
{
|
{
|
||||||
struct atmel_mpddrc_config ddr2;
|
struct atmel_mpddrc_config ddr2;
|
||||||
const struct atmel_mpddr *mpddr = (struct atmel_mpddr *)ATMEL_BASE_MPDDRC;
|
const struct atmel_mpddr *mpddr = (struct atmel_mpddr *)ATMEL_BASE_MPDDRC;
|
||||||
|
@@ -135,22 +135,22 @@ int flash_erase(flash_info_t *info, int s_first, int s_last)
|
|||||||
{
|
{
|
||||||
ulong result;
|
ulong result;
|
||||||
int iflag, cflag, prot, sect;
|
int iflag, cflag, prot, sect;
|
||||||
int rc = ERR_OK;
|
int rc = FL_ERR_OK;
|
||||||
int chip1;
|
int chip1;
|
||||||
ulong start;
|
ulong start;
|
||||||
|
|
||||||
/* first look for protection bits */
|
/* first look for protection bits */
|
||||||
|
|
||||||
if (info->flash_id == FLASH_UNKNOWN)
|
if (info->flash_id == FLASH_UNKNOWN)
|
||||||
return ERR_UNKNOWN_FLASH_TYPE;
|
return FL_ERR_UNKNOWN_FLASH_TYPE;
|
||||||
|
|
||||||
if ((s_first < 0) || (s_first > s_last)) {
|
if ((s_first < 0) || (s_first > s_last)) {
|
||||||
return ERR_INVAL;
|
return FL_ERR_INVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((info->flash_id & FLASH_VENDMASK) !=
|
if ((info->flash_id & FLASH_VENDMASK) !=
|
||||||
(AMD_MANUFACT & FLASH_VENDMASK)) {
|
(AMD_MANUFACT & FLASH_VENDMASK)) {
|
||||||
return ERR_UNKNOWN_FLASH_VENDOR;
|
return FL_ERR_UNKNOWN_FLASH_VENDOR;
|
||||||
}
|
}
|
||||||
|
|
||||||
prot = 0;
|
prot = 0;
|
||||||
@@ -160,7 +160,7 @@ int flash_erase(flash_info_t *info, int s_first, int s_last)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (prot)
|
if (prot)
|
||||||
return ERR_PROTECTED;
|
return FL_ERR_PROTECTED;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Disable interrupts which might cause a timeout
|
* Disable interrupts which might cause a timeout
|
||||||
@@ -217,11 +217,11 @@ int flash_erase(flash_info_t *info, int s_first, int s_last)
|
|||||||
MEM_FLASH_ADDR1 = CMD_READ_ARRAY;
|
MEM_FLASH_ADDR1 = CMD_READ_ARRAY;
|
||||||
|
|
||||||
if (chip1 == ERR) {
|
if (chip1 == ERR) {
|
||||||
rc = ERR_PROG_ERROR;
|
rc = FL_ERR_PROG_ERROR;
|
||||||
goto outahere;
|
goto outahere;
|
||||||
}
|
}
|
||||||
if (chip1 == TMO) {
|
if (chip1 == TMO) {
|
||||||
rc = ERR_TIMEOUT;
|
rc = FL_ERR_TIMEOUT;
|
||||||
goto outahere;
|
goto outahere;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -252,7 +252,7 @@ static int write_word(flash_info_t *info, ulong dest, ulong data)
|
|||||||
{
|
{
|
||||||
volatile u16 *addr = (volatile u16 *) dest;
|
volatile u16 *addr = (volatile u16 *) dest;
|
||||||
ulong result;
|
ulong result;
|
||||||
int rc = ERR_OK;
|
int rc = FL_ERR_OK;
|
||||||
int cflag, iflag;
|
int cflag, iflag;
|
||||||
int chip1;
|
int chip1;
|
||||||
ulong start;
|
ulong start;
|
||||||
@@ -262,7 +262,7 @@ static int write_word(flash_info_t *info, ulong dest, ulong data)
|
|||||||
*/
|
*/
|
||||||
result = *addr;
|
result = *addr;
|
||||||
if ((result & data) != data)
|
if ((result & data) != data)
|
||||||
return ERR_NOT_ERASED;
|
return FL_ERR_NOT_ERASED;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Disable interrupts which might cause a timeout
|
* Disable interrupts which might cause a timeout
|
||||||
@@ -302,7 +302,7 @@ static int write_word(flash_info_t *info, ulong dest, ulong data)
|
|||||||
*addr = CMD_READ_ARRAY;
|
*addr = CMD_READ_ARRAY;
|
||||||
|
|
||||||
if (chip1 == ERR || *addr != data)
|
if (chip1 == ERR || *addr != data)
|
||||||
rc = ERR_PROG_ERROR;
|
rc = FL_ERR_PROG_ERROR;
|
||||||
|
|
||||||
if (iflag)
|
if (iflag)
|
||||||
enable_interrupts();
|
enable_interrupts();
|
||||||
@@ -320,13 +320,13 @@ int write_buff(flash_info_t *info, uchar *src, ulong addr, ulong cnt)
|
|||||||
|
|
||||||
if (addr & 1) {
|
if (addr & 1) {
|
||||||
printf ("unaligned destination not supported\n");
|
printf ("unaligned destination not supported\n");
|
||||||
return ERR_ALIGN;
|
return FL_ERR_ALIGN;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
if (cnt & 1) {
|
if (cnt & 1) {
|
||||||
printf ("odd transfer sizes not supported\n");
|
printf ("odd transfer sizes not supported\n");
|
||||||
return ERR_ALIGN;
|
return FL_ERR_ALIGN;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -364,5 +364,5 @@ int write_buff(flash_info_t *info, uchar *src, ulong addr, ulong cnt)
|
|||||||
cnt -= 1;
|
cnt -= 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
return ERR_OK;
|
return FL_ERR_OK;
|
||||||
}
|
}
|
||||||
|
@@ -182,7 +182,7 @@ static void ddrc_conf(struct atmel_mpddrc_config *ddrc)
|
|||||||
(8 << ATMEL_MPDDRC_TPR2_TFAW_OFFSET));
|
(8 << ATMEL_MPDDRC_TPR2_TFAW_OFFSET));
|
||||||
}
|
}
|
||||||
|
|
||||||
void mem_init(void)
|
void at91_mem_init(void)
|
||||||
{
|
{
|
||||||
struct at91_pmc *pmc = (struct at91_pmc *)ATMEL_BASE_PMC;
|
struct at91_pmc *pmc = (struct at91_pmc *)ATMEL_BASE_PMC;
|
||||||
struct atmel_mpddr *mpddrc = (struct atmel_mpddr *)ATMEL_BASE_MPDDRC;
|
struct atmel_mpddr *mpddrc = (struct atmel_mpddr *)ATMEL_BASE_MPDDRC;
|
||||||
|
@@ -72,7 +72,7 @@ int flash_get_offsets(ulong base, flash_info_t * info)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return ERR_OK;
|
return FL_ERR_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
void flash_print_info(flash_info_t * info)
|
void flash_print_info(flash_info_t * info)
|
||||||
@@ -369,9 +369,9 @@ int write_buff(flash_info_t * info, uchar * src, ulong addr, ulong cnt)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (cnt == 0)
|
if (cnt == 0)
|
||||||
return ERR_OK;
|
return FL_ERR_OK;
|
||||||
|
|
||||||
return ERR_OK;
|
return FL_ERR_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*-----------------------------------------------------------------------
|
/*-----------------------------------------------------------------------
|
||||||
|
@@ -110,7 +110,7 @@ static void ddr2_conf(struct atmel_mpddrc_config *ddr2)
|
|||||||
2 << ATMEL_MPDDRC_TPR2_TXARD_OFFSET);
|
2 << ATMEL_MPDDRC_TPR2_TXARD_OFFSET);
|
||||||
}
|
}
|
||||||
|
|
||||||
void mem_init(void)
|
void at91_mem_init(void)
|
||||||
{
|
{
|
||||||
struct at91_matrix *matrix = (struct at91_matrix *)ATMEL_BASE_MATRIX;
|
struct at91_matrix *matrix = (struct at91_matrix *)ATMEL_BASE_MATRIX;
|
||||||
struct at91_pmc *pmc = (struct at91_pmc *)ATMEL_BASE_PMC;
|
struct at91_pmc *pmc = (struct at91_pmc *)ATMEL_BASE_PMC;
|
||||||
|
@@ -187,7 +187,7 @@ static void ddr2_conf(struct atmel_mpddrc_config *ddr2)
|
|||||||
2 << ATMEL_MPDDRC_TPR2_TXARD_OFFSET);
|
2 << ATMEL_MPDDRC_TPR2_TXARD_OFFSET);
|
||||||
}
|
}
|
||||||
|
|
||||||
void mem_init(void)
|
void at91_mem_init(void)
|
||||||
{
|
{
|
||||||
struct atmel_mpddrc_config ddr2;
|
struct atmel_mpddrc_config ddr2;
|
||||||
|
|
||||||
|
@@ -238,7 +238,7 @@ void at91_spl_board_init(void)
|
|||||||
| AT91_SDRAMC_TRP_VAL(2) | AT91_SDRAMC_TRCD_VAL(2) \
|
| AT91_SDRAMC_TRP_VAL(2) | AT91_SDRAMC_TRCD_VAL(2) \
|
||||||
| AT91_SDRAMC_TRAS_VAL(5) | AT91_SDRAMC_TXSR_VAL(8))
|
| AT91_SDRAMC_TRAS_VAL(5) | AT91_SDRAMC_TXSR_VAL(8))
|
||||||
|
|
||||||
void mem_init(void)
|
void at91_mem_init(void)
|
||||||
{
|
{
|
||||||
struct at91_matrix *ma = (struct at91_matrix *)ATMEL_BASE_MATRIX;
|
struct at91_matrix *ma = (struct at91_matrix *)ATMEL_BASE_MATRIX;
|
||||||
struct at91_port *port = (struct at91_port *)ATMEL_BASE_PIOC;
|
struct at91_port *port = (struct at91_port *)ATMEL_BASE_PIOC;
|
||||||
|
@@ -177,7 +177,7 @@ void sdramc_configure(unsigned int mask)
|
|||||||
sdramc_initialize(ATMEL_BASE_CS1, &setting);
|
sdramc_initialize(ATMEL_BASE_CS1, &setting);
|
||||||
}
|
}
|
||||||
|
|
||||||
void mem_init(void)
|
void at91_mem_init(void)
|
||||||
{
|
{
|
||||||
unsigned int ram_size = 0;
|
unsigned int ram_size = 0;
|
||||||
|
|
||||||
|
@@ -2109,6 +2109,7 @@ config CMD_ETHSW
|
|||||||
config CMD_PXE
|
config CMD_PXE
|
||||||
bool "pxe"
|
bool "pxe"
|
||||||
select PXE_UTILS
|
select PXE_UTILS
|
||||||
|
imply CMD_TFTPBOOT
|
||||||
help
|
help
|
||||||
Boot image via network using PXE protocol
|
Boot image via network using PXE protocol
|
||||||
|
|
||||||
|
@@ -934,6 +934,7 @@ menu "Update support"
|
|||||||
config UPDATE_COMMON
|
config UPDATE_COMMON
|
||||||
bool
|
bool
|
||||||
select DFU_WRITE_ALT
|
select DFU_WRITE_ALT
|
||||||
|
imply CMD_TFTPBOOT
|
||||||
|
|
||||||
config UPDATE_TFTP
|
config UPDATE_TFTP
|
||||||
bool "Auto-update using fitImage via TFTP"
|
bool "Auto-update using fitImage via TFTP"
|
||||||
|
@@ -110,13 +110,13 @@ addr2info(ulong addr)
|
|||||||
* Make sure all target addresses are within Flash bounds,
|
* Make sure all target addresses are within Flash bounds,
|
||||||
* and no protected sectors are hit.
|
* and no protected sectors are hit.
|
||||||
* Returns:
|
* Returns:
|
||||||
* ERR_OK 0 - OK
|
* FL_ERR_OK 0 - OK
|
||||||
* ERR_TIMEOUT 1 - write timeout
|
* FL_ERR_TIMEOUT 1 - write timeout
|
||||||
* ERR_NOT_ERASED 2 - Flash not erased
|
* FL_ERR_NOT_ERASED 2 - Flash not erased
|
||||||
* ERR_PROTECTED 4 - target range includes protected sectors
|
* FL_ERR_PROTECTED 4 - target range includes protected sectors
|
||||||
* ERR_INVAL 8 - target address not in Flash memory
|
* FL_ERR_INVAL 8 - target address not in Flash memory
|
||||||
* ERR_ALIGN 16 - target address not aligned on boundary
|
* FL_ERR_ALIGN 16 - target address not aligned on boundary
|
||||||
* (only some targets require alignment)
|
* (only some targets require alignment)
|
||||||
*/
|
*/
|
||||||
int
|
int
|
||||||
flash_write(char *src, ulong addr, ulong cnt)
|
flash_write(char *src, ulong addr, ulong cnt)
|
||||||
@@ -131,11 +131,11 @@ flash_write(char *src, ulong addr, ulong cnt)
|
|||||||
__maybe_unused ulong cnt_orig = cnt;
|
__maybe_unused ulong cnt_orig = cnt;
|
||||||
|
|
||||||
if (cnt == 0) {
|
if (cnt == 0) {
|
||||||
return (ERR_OK);
|
return (FL_ERR_OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!info_first || !info_last) {
|
if (!info_first || !info_last) {
|
||||||
return (ERR_INVAL);
|
return (FL_ERR_INVAL);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (info = info_first; info <= info_last; ++info) {
|
for (info = info_first; info <= info_last; ++info) {
|
||||||
@@ -146,7 +146,7 @@ flash_write(char *src, ulong addr, ulong cnt)
|
|||||||
|
|
||||||
if ((end >= info->start[i]) && (addr < e_addr) &&
|
if ((end >= info->start[i]) && (addr < e_addr) &&
|
||||||
(info->protect[i] != 0) ) {
|
(info->protect[i] != 0) ) {
|
||||||
return (ERR_PROTECTED);
|
return (FL_ERR_PROTECTED);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -169,11 +169,11 @@ flash_write(char *src, ulong addr, ulong cnt)
|
|||||||
#if defined(CONFIG_FLASH_VERIFY)
|
#if defined(CONFIG_FLASH_VERIFY)
|
||||||
if (memcmp(src_orig, addr_orig, cnt_orig)) {
|
if (memcmp(src_orig, addr_orig, cnt_orig)) {
|
||||||
printf("\nVerify failed!\n");
|
printf("\nVerify failed!\n");
|
||||||
return ERR_PROG_ERROR;
|
return FL_ERR_PROG_ERROR;
|
||||||
}
|
}
|
||||||
#endif /* CONFIG_SYS_FLASH_VERIFY_AFTER_WRITE */
|
#endif /* CONFIG_SYS_FLASH_VERIFY_AFTER_WRITE */
|
||||||
|
|
||||||
return (ERR_OK);
|
return (FL_ERR_OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*-----------------------------------------------------------------------
|
/*-----------------------------------------------------------------------
|
||||||
@@ -182,33 +182,33 @@ flash_write(char *src, ulong addr, ulong cnt)
|
|||||||
void flash_perror(int err)
|
void flash_perror(int err)
|
||||||
{
|
{
|
||||||
switch (err) {
|
switch (err) {
|
||||||
case ERR_OK:
|
case FL_ERR_OK:
|
||||||
break;
|
break;
|
||||||
case ERR_TIMEOUT:
|
case FL_ERR_TIMEOUT:
|
||||||
puts ("Timeout writing to Flash\n");
|
puts ("Timeout writing to Flash\n");
|
||||||
break;
|
break;
|
||||||
case ERR_NOT_ERASED:
|
case FL_ERR_NOT_ERASED:
|
||||||
puts ("Flash not Erased\n");
|
puts ("Flash not Erased\n");
|
||||||
break;
|
break;
|
||||||
case ERR_PROTECTED:
|
case FL_ERR_PROTECTED:
|
||||||
puts ("Can't write to protected Flash sectors\n");
|
puts ("Can't write to protected Flash sectors\n");
|
||||||
break;
|
break;
|
||||||
case ERR_INVAL:
|
case FL_ERR_INVAL:
|
||||||
puts ("Outside available Flash\n");
|
puts ("Outside available Flash\n");
|
||||||
break;
|
break;
|
||||||
case ERR_ALIGN:
|
case FL_ERR_ALIGN:
|
||||||
puts ("Start and/or end address not on sector boundary\n");
|
puts ("Start and/or end address not on sector boundary\n");
|
||||||
break;
|
break;
|
||||||
case ERR_UNKNOWN_FLASH_VENDOR:
|
case FL_ERR_UNKNOWN_FLASH_VENDOR:
|
||||||
puts ("Unknown Vendor of Flash\n");
|
puts ("Unknown Vendor of Flash\n");
|
||||||
break;
|
break;
|
||||||
case ERR_UNKNOWN_FLASH_TYPE:
|
case FL_ERR_UNKNOWN_FLASH_TYPE:
|
||||||
puts ("Unknown Type of Flash\n");
|
puts ("Unknown Type of Flash\n");
|
||||||
break;
|
break;
|
||||||
case ERR_PROG_ERROR:
|
case FL_ERR_PROG_ERROR:
|
||||||
puts ("General Flash Programming Error\n");
|
puts ("General Flash Programming Error\n");
|
||||||
break;
|
break;
|
||||||
case ERR_ABORTED:
|
case FL_ERR_ABORTED:
|
||||||
puts("Flash Programming Aborted\n");
|
puts("Flash Programming Aborted\n");
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
@@ -96,7 +96,7 @@ int flash_erase(flash_info_t *info, int s_first, int s_last)
|
|||||||
ret = mtd_erase(mtd, &instr);
|
ret = mtd_erase(mtd, &instr);
|
||||||
flash_set_verbose(0);
|
flash_set_verbose(0);
|
||||||
if (ret)
|
if (ret)
|
||||||
return ERR_PROTECTED;
|
return FL_ERR_PROTECTED;
|
||||||
|
|
||||||
puts(" done\n");
|
puts(" done\n");
|
||||||
return 0;
|
return 0;
|
||||||
@@ -114,7 +114,7 @@ int write_buff(flash_info_t *info, uchar *src, ulong addr, ulong cnt)
|
|||||||
|
|
||||||
ret = mtd_write(mtd, to, cnt, &retlen, src);
|
ret = mtd_write(mtd, to, cnt, &retlen, src);
|
||||||
if (ret)
|
if (ret)
|
||||||
return ERR_PROTECTED;
|
return FL_ERR_PROTECTED;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@@ -593,11 +593,11 @@ static int flash_status_check(flash_info_t *info, flash_sect_t sector,
|
|||||||
flash_read_long(info, sector, 0));
|
flash_read_long(info, sector, 0));
|
||||||
flash_write_cmd(info, sector, 0, info->cmd_reset);
|
flash_write_cmd(info, sector, 0, info->cmd_reset);
|
||||||
udelay(1);
|
udelay(1);
|
||||||
return ERR_TIMEOUT;
|
return FL_ERR_TIMEOUT;
|
||||||
}
|
}
|
||||||
udelay(1); /* also triggers watchdog */
|
udelay(1); /* also triggers watchdog */
|
||||||
}
|
}
|
||||||
return ERR_OK;
|
return FL_ERR_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*-----------------------------------------------------------------------
|
/*-----------------------------------------------------------------------
|
||||||
@@ -616,9 +616,9 @@ static int flash_full_status_check(flash_info_t *info, flash_sect_t sector,
|
|||||||
case CFI_CMDSET_INTEL_PROG_REGIONS:
|
case CFI_CMDSET_INTEL_PROG_REGIONS:
|
||||||
case CFI_CMDSET_INTEL_EXTENDED:
|
case CFI_CMDSET_INTEL_EXTENDED:
|
||||||
case CFI_CMDSET_INTEL_STANDARD:
|
case CFI_CMDSET_INTEL_STANDARD:
|
||||||
if (retcode == ERR_OK &&
|
if (retcode == FL_ERR_OK &&
|
||||||
!flash_isset(info, sector, 0, FLASH_STATUS_DONE)) {
|
!flash_isset(info, sector, 0, FLASH_STATUS_DONE)) {
|
||||||
retcode = ERR_INVAL;
|
retcode = FL_ERR_INVAL;
|
||||||
printf("Flash %s error at address %lx\n", prompt,
|
printf("Flash %s error at address %lx\n", prompt,
|
||||||
info->start[sector]);
|
info->start[sector]);
|
||||||
if (flash_isset(info, sector, 0, FLASH_STATUS_ECLBS |
|
if (flash_isset(info, sector, 0, FLASH_STATUS_ECLBS |
|
||||||
@@ -627,14 +627,14 @@ static int flash_full_status_check(flash_info_t *info, flash_sect_t sector,
|
|||||||
} else if (flash_isset(info, sector, 0,
|
} else if (flash_isset(info, sector, 0,
|
||||||
FLASH_STATUS_ECLBS)) {
|
FLASH_STATUS_ECLBS)) {
|
||||||
puts("Block Erase Error.\n");
|
puts("Block Erase Error.\n");
|
||||||
retcode = ERR_NOT_ERASED;
|
retcode = FL_ERR_NOT_ERASED;
|
||||||
} else if (flash_isset(info, sector, 0,
|
} else if (flash_isset(info, sector, 0,
|
||||||
FLASH_STATUS_PSLBS)) {
|
FLASH_STATUS_PSLBS)) {
|
||||||
puts("Locking Error\n");
|
puts("Locking Error\n");
|
||||||
}
|
}
|
||||||
if (flash_isset(info, sector, 0, FLASH_STATUS_DPS)) {
|
if (flash_isset(info, sector, 0, FLASH_STATUS_DPS)) {
|
||||||
puts("Block locked.\n");
|
puts("Block locked.\n");
|
||||||
retcode = ERR_PROTECTED;
|
retcode = FL_ERR_PROTECTED;
|
||||||
}
|
}
|
||||||
if (flash_isset(info, sector, 0, FLASH_STATUS_VPENS))
|
if (flash_isset(info, sector, 0, FLASH_STATUS_VPENS))
|
||||||
puts("Vpp Low Error.\n");
|
puts("Vpp Low Error.\n");
|
||||||
@@ -702,12 +702,12 @@ static int flash_status_poll(flash_info_t *info, void *src, void *dst,
|
|||||||
if (get_timer(start) > tout) {
|
if (get_timer(start) > tout) {
|
||||||
printf("Flash %s timeout at address %lx data %lx\n",
|
printf("Flash %s timeout at address %lx data %lx\n",
|
||||||
prompt, (ulong)dst, (ulong)flash_read8(dst));
|
prompt, (ulong)dst, (ulong)flash_read8(dst));
|
||||||
return ERR_TIMEOUT;
|
return FL_ERR_TIMEOUT;
|
||||||
}
|
}
|
||||||
udelay(1); /* also triggers watchdog */
|
udelay(1); /* also triggers watchdog */
|
||||||
}
|
}
|
||||||
#endif /* CONFIG_SYS_CFI_FLASH_STATUS_POLL */
|
#endif /* CONFIG_SYS_CFI_FLASH_STATUS_POLL */
|
||||||
return ERR_OK;
|
return FL_ERR_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*-----------------------------------------------------------------------
|
/*-----------------------------------------------------------------------
|
||||||
@@ -810,7 +810,7 @@ static int flash_write_cfiword(flash_info_t *info, ulong dest, cfiword_t cword)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (!flag)
|
if (!flag)
|
||||||
return ERR_NOT_ERASED;
|
return FL_ERR_NOT_ERASED;
|
||||||
|
|
||||||
/* Disable interrupts which might cause a timeout here */
|
/* Disable interrupts which might cause a timeout here */
|
||||||
flag = disable_interrupts();
|
flag = disable_interrupts();
|
||||||
@@ -899,7 +899,7 @@ static int flash_write_cfibuffer(flash_info_t *info, ulong dest, uchar *cp,
|
|||||||
shift = 3;
|
shift = 3;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
retcode = ERR_INVAL;
|
retcode = FL_ERR_INVAL;
|
||||||
goto out_unmap;
|
goto out_unmap;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -930,7 +930,7 @@ static int flash_write_cfibuffer(flash_info_t *info, ulong dest, uchar *cp,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!flag) {
|
if (!flag) {
|
||||||
retcode = ERR_NOT_ERASED;
|
retcode = FL_ERR_NOT_ERASED;
|
||||||
goto out_unmap;
|
goto out_unmap;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -950,7 +950,7 @@ static int flash_write_cfibuffer(flash_info_t *info, ulong dest, uchar *cp,
|
|||||||
retcode = flash_status_check(info, sector,
|
retcode = flash_status_check(info, sector,
|
||||||
info->buffer_write_tout,
|
info->buffer_write_tout,
|
||||||
"write to buffer");
|
"write to buffer");
|
||||||
if (retcode == ERR_OK) {
|
if (retcode == FL_ERR_OK) {
|
||||||
/* reduce the number of loops by the width of
|
/* reduce the number of loops by the width of
|
||||||
* the port
|
* the port
|
||||||
*/
|
*/
|
||||||
@@ -975,7 +975,7 @@ static int flash_write_cfibuffer(flash_info_t *info, ulong dest, uchar *cp,
|
|||||||
src += 8, dst += 8;
|
src += 8, dst += 8;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
retcode = ERR_INVAL;
|
retcode = FL_ERR_INVAL;
|
||||||
goto out_unmap;
|
goto out_unmap;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1025,7 +1025,7 @@ static int flash_write_cfibuffer(flash_info_t *info, ulong dest, uchar *cp,
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
retcode = ERR_INVAL;
|
retcode = FL_ERR_INVAL;
|
||||||
goto out_unmap;
|
goto out_unmap;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1043,7 +1043,7 @@ static int flash_write_cfibuffer(flash_info_t *info, ulong dest, uchar *cp,
|
|||||||
|
|
||||||
default:
|
default:
|
||||||
debug("Unknown Command Set\n");
|
debug("Unknown Command Set\n");
|
||||||
retcode = ERR_INVAL;
|
retcode = FL_ERR_INVAL;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1389,7 +1389,7 @@ int write_buff(flash_info_t *info, uchar *src, ulong addr, ulong cnt)
|
|||||||
if (i > cnt)
|
if (i > cnt)
|
||||||
i = cnt;
|
i = cnt;
|
||||||
rc = flash_write_cfibuffer(info, wp, src, i);
|
rc = flash_write_cfibuffer(info, wp, src, i);
|
||||||
if (rc != ERR_OK)
|
if (rc != FL_ERR_OK)
|
||||||
return rc;
|
return rc;
|
||||||
i -= i & (info->portwidth - 1);
|
i -= i & (info->portwidth - 1);
|
||||||
wp += i;
|
wp += i;
|
||||||
@@ -1398,7 +1398,7 @@ int write_buff(flash_info_t *info, uchar *src, ulong addr, ulong cnt)
|
|||||||
FLASH_SHOW_PROGRESS(scale, dots, digit, i);
|
FLASH_SHOW_PROGRESS(scale, dots, digit, i);
|
||||||
/* Only check every once in a while */
|
/* Only check every once in a while */
|
||||||
if ((cnt & 0xFFFF) < buffered_size && ctrlc())
|
if ((cnt & 0xFFFF) < buffered_size && ctrlc())
|
||||||
return ERR_ABORTED;
|
return FL_ERR_ABORTED;
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
while (cnt >= info->portwidth) {
|
while (cnt >= info->portwidth) {
|
||||||
@@ -1413,7 +1413,7 @@ int write_buff(flash_info_t *info, uchar *src, ulong addr, ulong cnt)
|
|||||||
FLASH_SHOW_PROGRESS(scale, dots, digit, info->portwidth);
|
FLASH_SHOW_PROGRESS(scale, dots, digit, info->portwidth);
|
||||||
/* Only check every once in a while */
|
/* Only check every once in a while */
|
||||||
if ((cnt & 0xFFFF) < info->portwidth && ctrlc())
|
if ((cnt & 0xFFFF) < info->portwidth && ctrlc())
|
||||||
return ERR_ABORTED;
|
return FL_ERR_ABORTED;
|
||||||
}
|
}
|
||||||
#endif /* CONFIG_SYS_FLASH_USE_BUFFER_WRITE */
|
#endif /* CONFIG_SYS_FLASH_USE_BUFFER_WRITE */
|
||||||
|
|
||||||
|
@@ -468,6 +468,7 @@ config FTMAC100
|
|||||||
config FTGMAC100
|
config FTGMAC100
|
||||||
bool "Ftgmac100 Ethernet Support"
|
bool "Ftgmac100 Ethernet Support"
|
||||||
select PHYLIB
|
select PHYLIB
|
||||||
|
depends on NET
|
||||||
help
|
help
|
||||||
This driver supports the Faraday's FTGMAC100 Gigabit SoC
|
This driver supports the Faraday's FTGMAC100 Gigabit SoC
|
||||||
Ethernet controller that can be found on Aspeed SoCs (which
|
Ethernet controller that can be found on Aspeed SoCs (which
|
||||||
|
@@ -615,8 +615,7 @@ static int fecmxc_init(struct udevice *dev)
|
|||||||
if (fec->xcv_type != SEVENWIRE)
|
if (fec->xcv_type != SEVENWIRE)
|
||||||
miiphy_restart_aneg(dev);
|
miiphy_restart_aneg(dev);
|
||||||
#endif
|
#endif
|
||||||
fec_open(dev);
|
return fec_open(dev);
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -26,7 +26,8 @@
|
|||||||
|
|
||||||
#include "fm.h"
|
#include "fm.h"
|
||||||
|
|
||||||
#if defined(CONFIG_MII) || defined(CONFIG_CMD_MII) && !defined(BITBANGMII)
|
#if ((defined(CONFIG_MII) || defined(CONFIG_CMD_MII)) && \
|
||||||
|
!defined(CONFIG_BITBANGMII))
|
||||||
|
|
||||||
#define TBIANA_SETTINGS (TBIANA_ASYMMETRIC_PAUSE | TBIANA_SYMMETRIC_PAUSE | \
|
#define TBIANA_SETTINGS (TBIANA_ASYMMETRIC_PAUSE | TBIANA_SYMMETRIC_PAUSE | \
|
||||||
TBIANA_FULL_DUPLEX)
|
TBIANA_FULL_DUPLEX)
|
||||||
@@ -701,8 +702,11 @@ static int init_phy(struct fm_eth *fm_eth)
|
|||||||
supported |= SUPPORTED_2500baseX_Full;
|
supported |= SUPPORTED_2500baseX_Full;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if (CONFIG_IS_ENABLED(MII) || CONFIG_IS_ENABLED(CMD_MII)) && \
|
||||||
|
!CONFIG_IS_ENABLED(BITBANGMII)
|
||||||
if (fm_eth->type == FM_ETH_1G_E)
|
if (fm_eth->type == FM_ETH_1G_E)
|
||||||
dtsec_init_phy(fm_eth);
|
dtsec_init_phy(fm_eth);
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_PHYLIB
|
#ifdef CONFIG_PHYLIB
|
||||||
#ifdef CONFIG_DM_MDIO
|
#ifdef CONFIG_DM_MDIO
|
||||||
|
@@ -368,6 +368,7 @@ config PHY_FIXED
|
|||||||
|
|
||||||
config PHY_NCSI
|
config PHY_NCSI
|
||||||
bool "NC-SI based PHY"
|
bool "NC-SI based PHY"
|
||||||
|
depends on NET
|
||||||
|
|
||||||
endif #PHYLIB
|
endif #PHYLIB
|
||||||
|
|
||||||
|
@@ -127,16 +127,16 @@ void flash_perror(int err);
|
|||||||
/*-----------------------------------------------------------------------
|
/*-----------------------------------------------------------------------
|
||||||
* return codes from flash_write():
|
* return codes from flash_write():
|
||||||
*/
|
*/
|
||||||
#define ERR_OK 0
|
#define FL_ERR_OK 0
|
||||||
#define ERR_TIMEOUT 1
|
#define FL_ERR_TIMEOUT 1
|
||||||
#define ERR_NOT_ERASED 2
|
#define FL_ERR_NOT_ERASED 2
|
||||||
#define ERR_PROTECTED 4
|
#define FL_ERR_PROTECTED 4
|
||||||
#define ERR_INVAL 8
|
#define FL_ERR_INVAL 8
|
||||||
#define ERR_ALIGN 16
|
#define FL_ERR_ALIGN 16
|
||||||
#define ERR_UNKNOWN_FLASH_VENDOR 32
|
#define FL_ERR_UNKNOWN_FLASH_VENDOR 32
|
||||||
#define ERR_UNKNOWN_FLASH_TYPE 64
|
#define FL_ERR_UNKNOWN_FLASH_TYPE 64
|
||||||
#define ERR_PROG_ERROR 128
|
#define FL_ERR_PROG_ERROR 128
|
||||||
#define ERR_ABORTED 256
|
#define FL_ERR_ABORTED 256
|
||||||
|
|
||||||
/*-----------------------------------------------------------------------
|
/*-----------------------------------------------------------------------
|
||||||
* Protection Flags for flash_protect():
|
* Protection Flags for flash_protect():
|
||||||
|
11
net/wget.c
11
net/wget.c
@@ -8,6 +8,7 @@
|
|||||||
#include <command.h>
|
#include <command.h>
|
||||||
#include <display_options.h>
|
#include <display_options.h>
|
||||||
#include <env.h>
|
#include <env.h>
|
||||||
|
#include <efi_loader.h>
|
||||||
#include <image.h>
|
#include <image.h>
|
||||||
#include <lmb.h>
|
#include <lmb.h>
|
||||||
#include <mapmem.h>
|
#include <mapmem.h>
|
||||||
@@ -171,13 +172,6 @@ void wget_fail(char *error_message, unsigned int tcp_seq_num,
|
|||||||
wget_send(action, tcp_seq_num, tcp_ack_num, 0);
|
wget_send(action, tcp_seq_num, tcp_ack_num, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void wget_success(u8 action, unsigned int tcp_seq_num,
|
|
||||||
unsigned int tcp_ack_num, int len, int packets)
|
|
||||||
{
|
|
||||||
printf("Packets received %d, Transfer Successful\n", packets);
|
|
||||||
wget_send(action, tcp_seq_num, tcp_ack_num, len);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Interfaces of U-BOOT
|
* Interfaces of U-BOOT
|
||||||
*/
|
*/
|
||||||
@@ -407,6 +401,9 @@ static void wget_handler(uchar *pkt, u16 dport,
|
|||||||
case WGET_TRANSFERRED:
|
case WGET_TRANSFERRED:
|
||||||
printf("Packets received %d, Transfer Successful\n", packets);
|
printf("Packets received %d, Transfer Successful\n", packets);
|
||||||
net_set_state(wget_loop_state);
|
net_set_state(wget_loop_state);
|
||||||
|
efi_set_bootdev("Net", "", image_url,
|
||||||
|
map_sysmem(image_load_addr, 0),
|
||||||
|
net_boot_file_size);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -45,11 +45,18 @@ env__efi_loader_helloworld_file = {
|
|||||||
'crc32': 'c2244b26', # CRC32 check sum
|
'crc32': 'c2244b26', # CRC32 check sum
|
||||||
'addr': 0x40400000, # load address
|
'addr': 0x40400000, # load address
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# False if the helloworld EFI over HTTP boot test should be performed.
|
||||||
|
# If HTTP boot testing is not possible or desired, set this variable to True or
|
||||||
|
# ommit it.
|
||||||
|
env__efi_helloworld_net_http_test_skip = True
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
import u_boot_utils
|
import u_boot_utils
|
||||||
|
|
||||||
|
PROTO_TFTP, PROTO_HTTP = range(0, 2)
|
||||||
|
|
||||||
net_set_up = False
|
net_set_up = False
|
||||||
|
|
||||||
def test_efi_pre_commands(u_boot_console):
|
def test_efi_pre_commands(u_boot_console):
|
||||||
@@ -110,10 +117,10 @@ def test_efi_setup_static(u_boot_console):
|
|||||||
global net_set_up
|
global net_set_up
|
||||||
net_set_up = True
|
net_set_up = True
|
||||||
|
|
||||||
def fetch_tftp_file(u_boot_console, env_conf):
|
def fetch_file(u_boot_console, env_conf, proto):
|
||||||
"""Grab an env described file via TFTP and return its address
|
"""Grab an env described file via TFTP or HTTP and return its address
|
||||||
|
|
||||||
A file as described by an env config <env_conf> is downloaded from the TFTP
|
A file as described by an env config <env_conf> is downloaded from the
|
||||||
server. The address to that file is returned.
|
server. The address to that file is returned.
|
||||||
"""
|
"""
|
||||||
if not net_set_up:
|
if not net_set_up:
|
||||||
@@ -128,7 +135,13 @@ def fetch_tftp_file(u_boot_console, env_conf):
|
|||||||
addr = u_boot_utils.find_ram_base(u_boot_console)
|
addr = u_boot_utils.find_ram_base(u_boot_console)
|
||||||
|
|
||||||
fn = f['fn']
|
fn = f['fn']
|
||||||
output = u_boot_console.run_command('tftpboot %x %s' % (addr, fn))
|
if proto == PROTO_TFTP:
|
||||||
|
cmd = 'tftpboot'
|
||||||
|
elif proto == PROTO_HTTP:
|
||||||
|
cmd = 'wget'
|
||||||
|
else:
|
||||||
|
assert False
|
||||||
|
output = u_boot_console.run_command('%s %x %s' % (cmd, addr, fn))
|
||||||
expected_text = 'Bytes transferred = '
|
expected_text = 'Bytes transferred = '
|
||||||
sz = f.get('size', None)
|
sz = f.get('size', None)
|
||||||
if sz:
|
if sz:
|
||||||
@@ -147,16 +160,8 @@ def fetch_tftp_file(u_boot_console, env_conf):
|
|||||||
|
|
||||||
return addr
|
return addr
|
||||||
|
|
||||||
@pytest.mark.buildconfigspec('of_control')
|
def do_test_efi_helloworld_net(u_boot_console, proto):
|
||||||
@pytest.mark.buildconfigspec('cmd_bootefi_hello_compile')
|
addr = fetch_file(u_boot_console, 'env__efi_loader_helloworld_file', proto)
|
||||||
def test_efi_helloworld_net(u_boot_console):
|
|
||||||
"""Run the helloworld.efi binary via TFTP.
|
|
||||||
|
|
||||||
The helloworld.efi file is downloaded from the TFTP server and is executed
|
|
||||||
using the fallback device tree at $fdtcontroladdr.
|
|
||||||
"""
|
|
||||||
|
|
||||||
addr = fetch_tftp_file(u_boot_console, 'env__efi_loader_helloworld_file')
|
|
||||||
|
|
||||||
output = u_boot_console.run_command('bootefi %x' % addr)
|
output = u_boot_console.run_command('bootefi %x' % addr)
|
||||||
expected_text = 'Hello, world'
|
expected_text = 'Hello, world'
|
||||||
@@ -164,6 +169,32 @@ def test_efi_helloworld_net(u_boot_console):
|
|||||||
expected_text = '## Application failed'
|
expected_text = '## Application failed'
|
||||||
assert expected_text not in output
|
assert expected_text not in output
|
||||||
|
|
||||||
|
@pytest.mark.buildconfigspec('of_control')
|
||||||
|
@pytest.mark.buildconfigspec('cmd_bootefi_hello_compile')
|
||||||
|
@pytest.mark.buildconfigspec('cmd_tftpboot')
|
||||||
|
def test_efi_helloworld_net_tftp(u_boot_console):
|
||||||
|
"""Run the helloworld.efi binary via TFTP.
|
||||||
|
|
||||||
|
The helloworld.efi file is downloaded from the TFTP server and is executed
|
||||||
|
using the fallback device tree at $fdtcontroladdr.
|
||||||
|
"""
|
||||||
|
|
||||||
|
do_test_efi_helloworld_net(u_boot_console, PROTO_TFTP);
|
||||||
|
|
||||||
|
@pytest.mark.buildconfigspec('of_control')
|
||||||
|
@pytest.mark.buildconfigspec('cmd_bootefi_hello_compile')
|
||||||
|
@pytest.mark.buildconfigspec('cmd_wget')
|
||||||
|
def test_efi_helloworld_net_http(u_boot_console):
|
||||||
|
"""Run the helloworld.efi binary via HTTP.
|
||||||
|
|
||||||
|
The helloworld.efi file is downloaded from the HTTP server and is executed
|
||||||
|
using the fallback device tree at $fdtcontroladdr.
|
||||||
|
"""
|
||||||
|
if u_boot_console.config.env.get('env__efi_helloworld_net_http_test_skip', True):
|
||||||
|
pytest.skip('helloworld.efi HTTP test is not enabled!')
|
||||||
|
|
||||||
|
do_test_efi_helloworld_net(u_boot_console, PROTO_HTTP);
|
||||||
|
|
||||||
@pytest.mark.buildconfigspec('cmd_bootefi_hello')
|
@pytest.mark.buildconfigspec('cmd_bootefi_hello')
|
||||||
def test_efi_helloworld_builtin(u_boot_console):
|
def test_efi_helloworld_builtin(u_boot_console):
|
||||||
"""Run the builtin helloworld.efi binary.
|
"""Run the builtin helloworld.efi binary.
|
||||||
@@ -178,6 +209,7 @@ def test_efi_helloworld_builtin(u_boot_console):
|
|||||||
|
|
||||||
@pytest.mark.buildconfigspec('of_control')
|
@pytest.mark.buildconfigspec('of_control')
|
||||||
@pytest.mark.buildconfigspec('cmd_bootefi')
|
@pytest.mark.buildconfigspec('cmd_bootefi')
|
||||||
|
@pytest.mark.buildconfigspec('cmd_tftpboot')
|
||||||
def test_efi_grub_net(u_boot_console):
|
def test_efi_grub_net(u_boot_console):
|
||||||
"""Run the grub.efi binary via TFTP.
|
"""Run the grub.efi binary via TFTP.
|
||||||
|
|
||||||
@@ -185,7 +217,7 @@ def test_efi_grub_net(u_boot_console):
|
|||||||
executed.
|
executed.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
addr = fetch_tftp_file(u_boot_console, 'env__efi_loader_grub_file')
|
addr = fetch_file(u_boot_console, 'env__efi_loader_grub_file', PROTO_TFTP)
|
||||||
|
|
||||||
u_boot_console.run_command('bootefi %x' % addr, wait_for_prompt=False)
|
u_boot_console.run_command('bootefi %x' % addr, wait_for_prompt=False)
|
||||||
|
|
||||||
|
@@ -75,7 +75,7 @@ env__net_pxe_bootable_file = {
|
|||||||
'check_pattern': 'ERROR',
|
'check_pattern': 'ERROR',
|
||||||
}
|
}
|
||||||
|
|
||||||
# False or omitted if a PXE boot test should be tested.
|
# False if a PXE boot test should be tested.
|
||||||
# If PXE boot testing is not possible or desired, set this variable to True.
|
# If PXE boot testing is not possible or desired, set this variable to True.
|
||||||
# For example: If pxe configuration file is not proper to boot
|
# For example: If pxe configuration file is not proper to boot
|
||||||
env__pxe_boot_test_skip = False
|
env__pxe_boot_test_skip = False
|
||||||
|
@@ -36,6 +36,16 @@ main: /usr/sbin
|
|||||||
x86: i386 x86_64
|
x86: i386 x86_64
|
||||||
'''
|
'''
|
||||||
|
|
||||||
|
settings_data_wrapper = '''
|
||||||
|
# Buildman settings file
|
||||||
|
|
||||||
|
[toolchain]
|
||||||
|
main: /usr/sbin
|
||||||
|
|
||||||
|
[toolchain-wrapper]
|
||||||
|
wrapper = ccache
|
||||||
|
'''
|
||||||
|
|
||||||
migration = '''===================== WARNING ======================
|
migration = '''===================== WARNING ======================
|
||||||
This board does not use CONFIG_DM. CONFIG_DM will be
|
This board does not use CONFIG_DM. CONFIG_DM will be
|
||||||
compulsory starting with the v2020.01 release.
|
compulsory starting with the v2020.01 release.
|
||||||
@@ -606,6 +616,9 @@ class TestBuild(unittest.TestCase):
|
|||||||
tc.GetEnvArgs(toolchain.VAR_ARCH))
|
tc.GetEnvArgs(toolchain.VAR_ARCH))
|
||||||
self.assertEqual('', tc.GetEnvArgs(toolchain.VAR_MAKE_ARGS))
|
self.assertEqual('', tc.GetEnvArgs(toolchain.VAR_MAKE_ARGS))
|
||||||
|
|
||||||
|
tc = self.toolchains.Select('sandbox')
|
||||||
|
self.assertEqual('', tc.GetEnvArgs(toolchain.VAR_CROSS_COMPILE))
|
||||||
|
|
||||||
self.toolchains.Add('/path/to/x86_64-linux-gcc', test=False)
|
self.toolchains.Add('/path/to/x86_64-linux-gcc', test=False)
|
||||||
tc = self.toolchains.Select('x86')
|
tc = self.toolchains.Select('x86')
|
||||||
self.assertEqual('/path/to',
|
self.assertEqual('/path/to',
|
||||||
@@ -614,6 +627,39 @@ class TestBuild(unittest.TestCase):
|
|||||||
self.assertEqual('HOSTCC=clang CC=clang',
|
self.assertEqual('HOSTCC=clang CC=clang',
|
||||||
tc.GetEnvArgs(toolchain.VAR_MAKE_ARGS))
|
tc.GetEnvArgs(toolchain.VAR_MAKE_ARGS))
|
||||||
|
|
||||||
|
# Test config with ccache wrapper
|
||||||
|
bsettings.setup(None)
|
||||||
|
bsettings.add_file(settings_data_wrapper)
|
||||||
|
|
||||||
|
tc = self.toolchains.Select('arm')
|
||||||
|
self.assertEqual('ccache arm-linux-',
|
||||||
|
tc.GetEnvArgs(toolchain.VAR_CROSS_COMPILE))
|
||||||
|
|
||||||
|
tc = self.toolchains.Select('sandbox')
|
||||||
|
self.assertEqual('', tc.GetEnvArgs(toolchain.VAR_CROSS_COMPILE))
|
||||||
|
|
||||||
|
def testMakeEnvironment(self):
|
||||||
|
"""Test the MakeEnvironment function"""
|
||||||
|
tc = self.toolchains.Select('arm')
|
||||||
|
env = tc.MakeEnvironment(False)
|
||||||
|
self.assertEqual(env[b'CROSS_COMPILE'], b'arm-linux-')
|
||||||
|
|
||||||
|
tc = self.toolchains.Select('sandbox')
|
||||||
|
env = tc.MakeEnvironment(False)
|
||||||
|
self.assertTrue(b'CROSS_COMPILE' not in env)
|
||||||
|
|
||||||
|
# Test config with ccache wrapper
|
||||||
|
bsettings.setup(None)
|
||||||
|
bsettings.add_file(settings_data_wrapper)
|
||||||
|
|
||||||
|
tc = self.toolchains.Select('arm')
|
||||||
|
env = tc.MakeEnvironment(False)
|
||||||
|
self.assertEqual(env[b'CROSS_COMPILE'], b'ccache arm-linux-')
|
||||||
|
|
||||||
|
tc = self.toolchains.Select('sandbox')
|
||||||
|
env = tc.MakeEnvironment(False)
|
||||||
|
self.assertTrue(b'CROSS_COMPILE' not in env)
|
||||||
|
|
||||||
def testPrepareOutputSpace(self):
|
def testPrepareOutputSpace(self):
|
||||||
def _Touch(fname):
|
def _Touch(fname):
|
||||||
tools.write_file(os.path.join(base_dir, fname), b'')
|
tools.write_file(os.path.join(base_dir, fname), b'')
|
||||||
|
@@ -159,6 +159,8 @@ class Toolchain:
|
|||||||
if which == VAR_CROSS_COMPILE:
|
if which == VAR_CROSS_COMPILE:
|
||||||
wrapper = self.GetWrapper()
|
wrapper = self.GetWrapper()
|
||||||
base = '' if self.arch == 'sandbox' else self.path
|
base = '' if self.arch == 'sandbox' else self.path
|
||||||
|
if (base == '' and self.cross == ''):
|
||||||
|
return ''
|
||||||
return wrapper + os.path.join(base, self.cross)
|
return wrapper + os.path.join(base, self.cross)
|
||||||
elif which == VAR_PATH:
|
elif which == VAR_PATH:
|
||||||
return self.path
|
return self.path
|
||||||
@@ -208,10 +210,10 @@ class Toolchain:
|
|||||||
if self.override_toolchain:
|
if self.override_toolchain:
|
||||||
# We'll use MakeArgs() to provide this
|
# We'll use MakeArgs() to provide this
|
||||||
pass
|
pass
|
||||||
elif full_path:
|
elif full_path and self.cross:
|
||||||
env[b'CROSS_COMPILE'] = tools.to_bytes(
|
env[b'CROSS_COMPILE'] = tools.to_bytes(
|
||||||
wrapper + os.path.join(self.path, self.cross))
|
wrapper + os.path.join(self.path, self.cross))
|
||||||
else:
|
elif self.cross:
|
||||||
env[b'CROSS_COMPILE'] = tools.to_bytes(wrapper + self.cross)
|
env[b'CROSS_COMPILE'] = tools.to_bytes(wrapper + self.cross)
|
||||||
|
|
||||||
# Detect a Python virtualenv and avoid defeating it
|
# Detect a Python virtualenv and avoid defeating it
|
||||||
|
Reference in New Issue
Block a user