mirror of
https://github.com/u-boot/u-boot.git
synced 2024-11-25 21:24:21 +08:00
2eb48ff7a2
There was for long time no activity in the 8260 area. We need to go further and convert to Kconfig, but it turned out, nobody is interested anymore in 8260, so remove it. Signed-off-by: Heiko Schocher <hs@denx.de>
71 lines
1.9 KiB
C
71 lines
1.9 KiB
C
/*
|
|
* Copyright (c) Orbacom Systems, Inc <www.orbacom.com>
|
|
* All rights reserved.
|
|
*
|
|
* Redistribution and use in source and binary forms are freely
|
|
* permitted provided that the above copyright notice and this
|
|
* paragraph and the following disclaimer are duplicated in all
|
|
* such forms.
|
|
*
|
|
* This software is provided "AS IS" and without any express or
|
|
* implied warranties, including, without limitation, the implied
|
|
* warranties of merchantability and fitness for a particular
|
|
* purpose.
|
|
*/
|
|
|
|
#include <common.h>
|
|
#include <asm/processor.h>
|
|
#include <image.h>
|
|
#include <net.h>
|
|
|
|
#include <lynxkdi.h>
|
|
|
|
DECLARE_GLOBAL_DATA_PTR;
|
|
|
|
#if defined(CONFIG_440EP) || defined(CONFIG_440GR)
|
|
void lynxkdi_boot(image_header_t *hdr)
|
|
{
|
|
void (*lynxkdi)(void) = (void(*)(void))image_get_ep(hdr);
|
|
lynxos_bootparms_t *parms = (lynxos_bootparms_t *)0x0020;
|
|
bd_t *kbd;
|
|
u32 *psz = (u32 *)(image_get_load(hdr) + 0x0204);
|
|
|
|
memset(parms, 0, sizeof(*parms));
|
|
kbd = gd->bd;
|
|
parms->clock_ref = kbd->bi_busfreq;
|
|
parms->dramsz = kbd->bi_memsize;
|
|
eth_getenv_enetaddr("ethaddr", parms->ethaddr);
|
|
mtspr(SPRN_SPRG2, 0x0020);
|
|
|
|
/* Do a simple check for Bluecat so we can pass the
|
|
* kernel command line parameters.
|
|
*/
|
|
/* FIXME: NOT SURE HERE ! */
|
|
if (le32_to_cpu(*psz) == image_get_data_size(hdr)) {
|
|
char *args;
|
|
char *cmdline = (char *)(image_get_load(hdr) + 0x020c);
|
|
int len;
|
|
|
|
printf("Booting Bluecat KDI ...\n");
|
|
udelay(200*1000); /* Allow serial port to flush */
|
|
if ((args = getenv("bootargs")) == NULL)
|
|
args = "";
|
|
/* Prepend the cmdline */
|
|
len = strlen(args);
|
|
if (len && (len + strlen(cmdline) + 2 < (0x0400 - 0x020c))) {
|
|
memmove(cmdline + strlen(args) + 1, cmdline,
|
|
strlen(cmdline));
|
|
strcpy(cmdline, args);
|
|
cmdline[len] = ' ';
|
|
}
|
|
}
|
|
else {
|
|
printf("Booting LynxOS KDI ...\n");
|
|
}
|
|
|
|
lynxkdi();
|
|
}
|
|
#else
|
|
#error "Lynx KDI support not implemented for configured CPU"
|
|
#endif
|