Cleanups on romboot and u-boot. Conditionally apply ldd and ldconfig support on at91 platform
SVN-Revision: 6862
This commit is contained in:
parent
544ed99eac
commit
604782648a
4 changed files with 440 additions and 0 deletions
|
@ -19,6 +19,8 @@ PKG_SOURCE_URL:=http://www.teest.com/at91
|
|||
PKG_MD5SUM:=
|
||||
PKG_CAT:=zcat
|
||||
|
||||
CRLF_WORKAROUND=1
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
||||
define Build/InstallDev
|
||||
|
|
|
@ -0,0 +1,423 @@
|
|||
diff -urN romboot.old/com.cpp romboot/com.cpp
|
||||
--- romboot.old/com.cpp 2004-07-04 21:37:05.000000000 +0200
|
||||
+++ romboot/com.cpp 2007-04-04 04:30:12.000000000 +0200
|
||||
@@ -27,7 +27,7 @@
|
||||
//*-----------------------------------------------------------------------------
|
||||
void AT91F_ClrScr(void)
|
||||
{
|
||||
- puts(CLRSCREEN);
|
||||
+ putstr(CLRSCREEN);
|
||||
}
|
||||
|
||||
|
||||
@@ -47,12 +47,12 @@
|
||||
|
||||
if (*(--p) == '\t') { /* will retype the whole line */
|
||||
while (*colp > plen) {
|
||||
- puts(erase_seq);
|
||||
+ putstr(erase_seq);
|
||||
(*colp)--;
|
||||
}
|
||||
for (s=buffer; s<p; ++s) {
|
||||
if (*s == '\t') {
|
||||
- puts(tab_seq+((*colp) & 07));
|
||||
+ putstr(tab_seq+((*colp) & 07));
|
||||
*colp += 8 - ((*colp) & 07);
|
||||
} else {
|
||||
++(*colp);
|
||||
@@ -60,7 +60,7 @@
|
||||
}
|
||||
}
|
||||
} else {
|
||||
- puts(erase_seq);
|
||||
+ putstr(erase_seq);
|
||||
(*colp)--;
|
||||
}
|
||||
(*np)--;
|
||||
@@ -85,7 +85,7 @@
|
||||
|
||||
/* print prompt */
|
||||
if(prompt)
|
||||
- puts(prompt);
|
||||
+ putstr(prompt);
|
||||
col = plen;
|
||||
|
||||
for (;;)
|
||||
@@ -97,7 +97,7 @@
|
||||
case '\r': /* Enter */
|
||||
case '\n':
|
||||
*p = '\0';
|
||||
- puts ("\r\n");
|
||||
+ putstr ("\r\n");
|
||||
return (p - console_buffer);
|
||||
|
||||
case 0x03: /* ^C - break */
|
||||
@@ -107,7 +107,7 @@
|
||||
case 0x15: /* ^U - erase line */
|
||||
while (col > plen)
|
||||
{
|
||||
- puts(erase_seq);
|
||||
+ putstr(erase_seq);
|
||||
--col;
|
||||
}
|
||||
p = console_buffer;
|
||||
@@ -152,7 +152,7 @@
|
||||
void AT91F_WaitKeyPressed(void)
|
||||
{
|
||||
int c;
|
||||
- puts("Hit a Key!");
|
||||
+ putstr("Hit a Key!");
|
||||
c = getc();
|
||||
}
|
||||
|
||||
diff -urN romboot.old/main.cpp romboot/main.cpp
|
||||
--- romboot.old/main.cpp 2007-04-03 12:12:33.000000000 +0200
|
||||
+++ romboot/main.cpp 2007-04-04 05:56:39.000000000 +0200
|
||||
@@ -382,8 +382,10 @@
|
||||
|
||||
AT91F_MCI_ReadBlockSwab(&MCI_Device, block*Max_Read_DataBlock_Length, (unsigned int *)bufpos, Max_Read_DataBlock_Length);
|
||||
|
||||
- if (p->magic != TRX_MAGIC)
|
||||
+ if (p->magic != TRX_MAGIC) {
|
||||
+ printf("Invalid Image 0x%08x\n\r");
|
||||
return FALSE;
|
||||
+ }
|
||||
|
||||
printf("Read SD-Card\n\r");
|
||||
AT91C_BASE_PIOC->PIO_CODR = AT91C_PIO_PC7 | AT91C_PIO_PC15 | AT91C_PIO_PC8 | AT91C_PIO_PC14;
|
||||
@@ -438,9 +440,6 @@
|
||||
int NbPage;
|
||||
int mci_present;
|
||||
|
||||
- stdin = fopen(0, at91_dbgu_getc);
|
||||
- stdout = fopen(at91_dbgu_putc, 0);
|
||||
-
|
||||
pAT91 = AT91C_ROM_BOOT_ADDRESS;
|
||||
|
||||
// Tempo Initialisation
|
||||
@@ -472,16 +471,18 @@
|
||||
|
||||
#ifdef PRODTEST
|
||||
if (mci_present) {
|
||||
- Program_From_MCI();
|
||||
- AT91F_StartUboot(0, (void *)0);
|
||||
+ if (Program_From_MCI())
|
||||
+ AT91F_StartUboot(0, (void *)0);
|
||||
}
|
||||
#endif
|
||||
|
||||
// start tempo to start Uboot in a delay of 1 sec if no key pressed
|
||||
svcUbootTempo.Start(&svcUbootTempo, 1000, 0, AT91F_StartUboot, (void *)0);
|
||||
|
||||
+#ifndef PRODTEST
|
||||
printf("press key\n\r");
|
||||
getc();
|
||||
+#endif
|
||||
|
||||
// stop tempo
|
||||
svcUbootTempo.Stop(&svcUbootTempo);
|
||||
@@ -601,3 +602,10 @@
|
||||
AT91F_WaitKeyPressed();
|
||||
}
|
||||
}
|
||||
+
|
||||
+
|
||||
+int puts(const char *str)
|
||||
+{
|
||||
+ putstr(str);
|
||||
+ return 0;
|
||||
+}
|
||||
diff -urN romboot.old/stdio.cpp romboot/stdio.cpp
|
||||
--- romboot.old/stdio.cpp 2004-07-04 22:36:10.000000000 +0200
|
||||
+++ romboot/stdio.cpp 2007-04-04 04:29:25.000000000 +0200
|
||||
@@ -1,117 +1,32 @@
|
||||
#include "stdio.h"
|
||||
|
||||
extern int at91_dbgu_putc(int ch);
|
||||
+extern int at91_dbgu_getc();
|
||||
|
||||
-FILE *stdout = (FILE *)0;
|
||||
-FILE *stdin = (FILE *)0;
|
||||
-
|
||||
-FILE __filedesc[FILEDESCS];
|
||||
-
|
||||
-FILE *fopen(int (*put)(int), int (*get)())
|
||||
-{
|
||||
- static int init = 1;
|
||||
-
|
||||
- if(init != 0)
|
||||
- {
|
||||
- for(int i = 0; i < FILEDESCS; i++)
|
||||
- {
|
||||
- __filedesc[i].active = false;
|
||||
- __filedesc[i].put = 0;
|
||||
- __filedesc[i].get = 0;
|
||||
- }
|
||||
-
|
||||
- init = 0;
|
||||
- }
|
||||
-
|
||||
- for(int i = 0; i < FILEDESCS; i++)
|
||||
- {
|
||||
- if(!__filedesc[i].active)
|
||||
- {
|
||||
- __filedesc[i].put = put;
|
||||
- __filedesc[i].get = get;
|
||||
-
|
||||
- __filedesc[i].active = true;
|
||||
-
|
||||
- return &__filedesc[i];
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- return (FILE *)0;
|
||||
-}
|
||||
-
|
||||
-int fclose(FILE *fp)
|
||||
+int putstr(const char *str)
|
||||
{
|
||||
- for(int i = 0; i < FILEDESCS; i++)
|
||||
- if(&__filedesc[i] == fp || fp->active)
|
||||
- {
|
||||
- fp->active = false;
|
||||
-
|
||||
- fp->put = 0;
|
||||
- fp->get = 0;
|
||||
-
|
||||
- return 0;
|
||||
- }
|
||||
-
|
||||
- return -1;
|
||||
-}
|
||||
-
|
||||
-int fputs(const char *str, FILE *fp)
|
||||
-{
|
||||
- if(fp == (FILE *)0)
|
||||
- return -1;
|
||||
-
|
||||
- if(fp->put == (void *)0)
|
||||
- return -1;
|
||||
-
|
||||
- while(*str != 0)
|
||||
- {
|
||||
- fp->put(*str);
|
||||
- str++;
|
||||
- }
|
||||
+ while (*str != 0)
|
||||
+ {
|
||||
+ putc(*str);
|
||||
+ str++;
|
||||
+ }
|
||||
return 0;
|
||||
}
|
||||
|
||||
-int fputc(int c, FILE *fp)
|
||||
-{
|
||||
- if(fp == (FILE *)0)
|
||||
- return -1;
|
||||
-
|
||||
- if(fp->put == (void *)0)
|
||||
- return -1;
|
||||
-
|
||||
- return fp->put(c);
|
||||
-}
|
||||
-
|
||||
-int fgetc(FILE *fp)
|
||||
-{
|
||||
- if(fp == (FILE *)0)
|
||||
- return -1;
|
||||
-
|
||||
- if(fp->get == (void *)0)
|
||||
- return -1;
|
||||
-
|
||||
- return fp->get();
|
||||
-}
|
||||
-
|
||||
-
|
||||
-int puts(const char *str)
|
||||
+int putchar(int c)
|
||||
{
|
||||
- return fputs(str, stdout);
|
||||
+ return putc(c);
|
||||
}
|
||||
|
||||
int putc(int c)
|
||||
{
|
||||
- return fputc(c, stdout);
|
||||
-}
|
||||
-
|
||||
-int putchar(int c)
|
||||
-{
|
||||
- return fputc(c, stdout);
|
||||
+ at91_dbgu_putc(c);
|
||||
+ return 0;
|
||||
}
|
||||
|
||||
int getc()
|
||||
{
|
||||
- return fgetc(stdin);
|
||||
+ return at91_dbgu_getc();
|
||||
}
|
||||
|
||||
int strlen(const char *str)
|
||||
@@ -139,7 +54,7 @@
|
||||
__res; \
|
||||
})
|
||||
|
||||
-int number(FILE *fp, int num, int base, int size, int precision, int type)
|
||||
+int number(int num, int base, int size, int precision, int type)
|
||||
{
|
||||
char c, sign, tmp[66];
|
||||
const char *digits="0123456789abcdef";
|
||||
@@ -173,28 +88,28 @@
|
||||
|
||||
if(!(type&(ZEROPAD+LEFT)))
|
||||
while(size-->0)
|
||||
- fputc(' ', fp);
|
||||
+ putc(' ');
|
||||
|
||||
if(sign)
|
||||
- fputc(sign, fp);
|
||||
+ putc(sign);
|
||||
|
||||
if (!(type & LEFT))
|
||||
while (size-- > 0)
|
||||
- fputc(c, fp);
|
||||
+ putc(c);
|
||||
|
||||
while (i < precision--)
|
||||
- fputc('0', fp);
|
||||
+ putc('0');
|
||||
|
||||
while (i-- > 0)
|
||||
- fputc(tmp[i], fp);
|
||||
+ putc(tmp[i]);
|
||||
|
||||
while (size-- > 0)
|
||||
- fputc(' ', fp);;
|
||||
+ putc(' ');;
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
-int vfprintf(FILE *fp, const char *fmt, va_list va)
|
||||
+int vprintf(const char *fmt, va_list va)
|
||||
{
|
||||
char *s;
|
||||
|
||||
@@ -231,33 +146,33 @@
|
||||
case 's' :
|
||||
s = va_arg(va, char *);
|
||||
if(!s)
|
||||
- fputs("<NULL>", fp);
|
||||
+ putstr("<NULL>");
|
||||
else
|
||||
- fputs(s, fp);
|
||||
+ putstr(s);
|
||||
done = true;
|
||||
break;
|
||||
case 'c' :
|
||||
- fputc(va_arg(va, int), fp);
|
||||
+ putc(va_arg(va, int));
|
||||
done = true;
|
||||
break;
|
||||
case 'd' :
|
||||
- number(fp, va_arg(va, int), 10, 0, precision, type);
|
||||
+ number(va_arg(va, int), 10, 0, precision, type);
|
||||
done = true;
|
||||
break;
|
||||
case 'x' :
|
||||
- number(fp, va_arg(va, int), 16, 0, precision, type);
|
||||
+ number(va_arg(va, int), 16, 0, precision, type);
|
||||
done = true;
|
||||
break;
|
||||
case 'X' :
|
||||
- number(fp, va_arg(va, int), 16, 0, precision, type | LARGE);
|
||||
+ number(va_arg(va, int), 16, 0, precision, type | LARGE);
|
||||
done = true;
|
||||
break;
|
||||
case '%' :
|
||||
- fputc(*fmt, fp);
|
||||
+ putc(*fmt);
|
||||
done = true;
|
||||
default:
|
||||
- fputc('%', fp);
|
||||
- fputc(*fmt, fp);
|
||||
+ putc('%');
|
||||
+ putc(*fmt);
|
||||
done = true;
|
||||
break;
|
||||
}
|
||||
@@ -265,7 +180,7 @@
|
||||
while(!done);
|
||||
}
|
||||
else
|
||||
- fputc(*fmt, fp);
|
||||
+ putc(*fmt);
|
||||
|
||||
fmt++;
|
||||
}
|
||||
@@ -274,25 +189,13 @@
|
||||
return 0;
|
||||
}
|
||||
|
||||
-int fprintf(FILE *fp, const char *fmt, ...)
|
||||
-{
|
||||
- va_list ap;
|
||||
- int i;
|
||||
-
|
||||
- va_start(ap, fmt);
|
||||
- i = fprintf(fp, fmt, ap);
|
||||
- va_end(ap);
|
||||
-
|
||||
- return i;
|
||||
-}
|
||||
-
|
||||
int printf(const char *fmt, ...)
|
||||
{
|
||||
va_list ap;
|
||||
int i;
|
||||
|
||||
va_start(ap, fmt);
|
||||
- i = vfprintf(stdout, fmt, ap);
|
||||
+ i = vprintf(fmt, ap);
|
||||
va_end(ap);
|
||||
|
||||
return i;
|
||||
diff -urN romboot.old/stdio.h romboot/stdio.h
|
||||
--- romboot.old/stdio.h 2004-07-04 22:04:27.000000000 +0200
|
||||
+++ romboot/stdio.h 2007-04-04 04:29:48.000000000 +0200
|
||||
@@ -1,31 +1,12 @@
|
||||
#include <stdarg.h>
|
||||
|
||||
-struct FILE
|
||||
-{
|
||||
- bool active;
|
||||
- int (*put)(int); /* function to write one char to device */
|
||||
- int (*get)(); /* function to read one char from device */
|
||||
-};
|
||||
-
|
||||
-#define FILEDESCS 8
|
||||
-
|
||||
-FILE *fopen(int (*put)(int), int (*get)());
|
||||
-int fclose(FILE *fp);
|
||||
-
|
||||
-int puts(const char *str);
|
||||
+int putstr(const char *str);
|
||||
int putc(int c);
|
||||
int putchar(int c);
|
||||
int getc();
|
||||
|
||||
-int fputs(const char *str, FILE *fp);
|
||||
-int fputc(int c, FILE *fp);
|
||||
-int fgetc(FILE *fp);
|
||||
int strlen(const char *str);
|
||||
|
||||
-int fprintf(FILE *fp, const char *fmt, ...);
|
||||
-int vfprintf(FILE *fp, const char *fmt, va_list ap);
|
||||
+int vprintf(const char *fmt, va_list ap);
|
||||
|
||||
int printf(const char *fmt, ...);
|
||||
-
|
||||
-extern FILE *stdout;
|
||||
-extern FILE *stdin;
|
|
@ -0,0 +1,13 @@
|
|||
--- u-boot-1.1.4.old/board/vlink/vlink.c 2007-04-03 11:42:39.000000000 +0200
|
||||
+++ u-boot-1.1.4/board/vlink/vlink.c 2007-04-03 11:48:33.000000000 +0200
|
||||
@@ -40,10 +40,6 @@
|
||||
/* Enable Ctrlc */
|
||||
console_init_f ();
|
||||
|
||||
- /* Correct IRDA resistor problem */
|
||||
- /* Set PA23_TXD in Output */
|
||||
- (AT91PS_PIO) AT91C_BASE_PIOA->PIO_OER = AT91C_PA23_TXD2;
|
||||
-
|
||||
/* memory and cpu-speed are setup before relocation */
|
||||
/* so we do _nothing_ here */
|
||||
|
|
@ -93,12 +93,14 @@ define Build/Install
|
|||
RUNTIME_PREFIX=/ \
|
||||
install_dev
|
||||
echo $(PKG_VERSION) > $(STAGING_DIR)/uclibc_version
|
||||
ifneq ($(CONFIG_LINUX_2_6_AT91),y)
|
||||
echo $(PKG_VERSION)$(PKG_EXTRAVERSION) > $(STAGING_DIR)/uclibc_extra_version
|
||||
$(MAKE) -C $(PKG_BUILD_DIR) \
|
||||
PREFIX=$(STAGING_DIR)/ \
|
||||
DEVEL_PREFIX=/ \
|
||||
RUNTIME_PREFIX=/ \
|
||||
utils
|
||||
endif
|
||||
endef
|
||||
|
||||
define Build/Clean
|
||||
|
|
Loading…
Reference in a new issue