Hello, is this patch going to be accepted, or is someone insisting that only my port shall return the number of controllers initialized?
Reinhard Meyer schrieb: > Ben Warren schrieb: >> Hello Reinhard, >> >> On Sat, Jun 5, 2010 at 3:41 AM, Reinhard Meyer (-VC) < >> [email protected]> wrote: >> >>> Add support for EMK TOP7000 CPU module >>> >>> Specifics: >>> >>> 1) create subdir board/emk/top7000 and files in it >>> 2) create include/configs/top7000.h >>> 3) update board/emk/common/vpd.c >>> 4) add call to misc_init_r() to arch/avr32/lib/board.c >>> 5) create arch/avr32/include/asm/unaligned.h to >>> fix zlib.c compilation problem >>> 6) update Makefile, MAINTAINERS, MAKEALL >>> >>> Signed-off-by: Reinhard Meyer <[email protected]> >>> >>> --- >>> MAINTAINERS | 6 +- >>> MAKEALL | 3 +- >>> Makefile | 3 + >>> arch/avr32/include/asm/unaligned.h | 1 + >>> arch/avr32/lib/board.c | 5 + >>> board/emk/common/vpd.c | 56 +++++++++- >>> board/emk/top7000/Makefile | 41 +++++++ >>> board/emk/top7000/config.mk | 3 + >>> board/emk/top7000/top7000.c | 169 ++++++++++++++++++++++++++++ >>> board/emk/top7000/u-boot.lds | 72 ++++++++++++ >>> include/configs/top7000.h | 216 >>> ++++++++++++++++++++++++++++++++++++ >>> 11 files changed, 570 insertions(+), 5 deletions(-) >>> create mode 100644 arch/avr32/include/asm/unaligned.h >>> create mode 100644 board/emk/top7000/Makefile >>> create mode 100644 board/emk/top7000/config.mk >>> create mode 100644 board/emk/top7000/top7000.c >>> create mode 100644 board/emk/top7000/u-boot.lds >>> create mode 100644 include/configs/top7000.h >>> >>> diff --git a/MAINTAINERS b/MAINTAINERS >>> index 7a13d28..a361be1 100644 >>> --- a/MAINTAINERS >>> +++ b/MAINTAINERS >>> @@ -311,7 +311,7 @@ Andrea "llandre" Marson <[email protected]> >>> >>> PPChameleonEVB PPC405EP >>> >>> -Reinhard Meyer <[email protected]> >>> +Reinhard Meyer <[email protected]> >>> >>> TOP860 MPC860T >>> TOP5200 MPC5200 >>> @@ -919,6 +919,10 @@ Julien May <[email protected]> >>> >>> HAMMERHEAD AT32AP7000 >>> >>> +Reinhard Meyer <[email protected]> >>> + >>> + TOP7000 AT32AP7000 >>> + >>> Haavard Skinnemoen <[email protected]> >>> >>> ATSTK1000 AT32AP7xxx >>> diff --git a/MAKEALL b/MAKEALL >>> index 2527352..3a80041 100755 >>> --- a/MAKEALL >>> +++ b/MAKEALL >>> @@ -873,7 +873,8 @@ LIST_avr32=" \ >>> atngw100 \ >>> favr-32-ezkit \ >>> hammerhead \ >>> - mimc200 \ >>> + mimc200 \ >>> + top7000 \ >>> " >>> >>> ######################################################################### >>> diff --git a/Makefile b/Makefile >>> index c26e491..e57a4ca 100644 >>> --- a/Makefile >>> +++ b/Makefile >>> @@ -3549,6 +3549,9 @@ hammerhead_config : unconfig >>> mimc200_config : unconfig >>> @$(MKCONFIG) $(@:_config=) avr32 at32ap mimc200 mimc at32ap700x >>> >>> +top7000_config : unconfig >>> + @$(MKCONFIG) $(@:_config=) avr32 at32ap top7000 emk at32ap700x >>> + >>> #======================================================================== >>> # SH3 (SuperH) >>> #======================================================================== >>> diff --git a/arch/avr32/include/asm/unaligned.h >>> b/arch/avr32/include/asm/unaligned.h >>> new file mode 100644 >>> index 0000000..6cecbbb >>> --- /dev/null >>> +++ b/arch/avr32/include/asm/unaligned.h >>> @@ -0,0 +1 @@ >>> +#include <asm-generic/unaligned.h> >>> diff --git a/arch/avr32/lib/board.c b/arch/avr32/lib/board.c >>> index 917ed6c..6be5ab0 >>> --- a/arch/avr32/lib/board.c >>> +++ b/arch/avr32/lib/board.c >>> @@ -337,6 +337,11 @@ void board_init_r(gd_t *new_gd, ulong dest_addr) >>> jumptable_init(); >>> console_init_r(); >>> >>> +#if defined(CONFIG_MISC_INIT_R) >>> + /* miscellaneous platform dependent initialisations */ >>> + misc_init_r(); >>> +#endif >>> + >>> s = getenv("loadaddr"); >>> if (s) >>> load_addr = simple_strtoul(s, NULL, 16); >>> diff --git a/board/emk/common/vpd.c b/board/emk/common/vpd.c >>> index c2af219..a6c456b >>> --- a/board/emk/common/vpd.c >>> +++ b/board/emk/common/vpd.c >>> @@ -1,6 +1,6 @@ >>> /* >>> - * (C) Copyright 2003 >>> - * Reinhard Meyer, EMK Elektronik GmbH, [email protected] >>> + * (C) Copyright 2003-2010 >>> + * EMK Elektronik GmbH & Co. KG, [email protected] >>> * >>> * See file CREDITS for list of people who contributed to this >>> * project. >>> @@ -22,7 +22,8 @@ >>> */ >>> >>> #include <common.h> >>> - >>> +#include <command.h> >>> + >>> >>> >>> /***************************************************************************** >>> * read "factory" part of EEPROM and set some environment variables >>> >>> >>> *****************************************************************************/ >>> @@ -70,6 +71,10 @@ void read_factory_r (void) >>> /* search for our specific entry */ >>> if (!strncmp ((char *) buf, "[RLA/lan/Ethernet] ", 19)) { >>> setenv ("ethaddr", (char *)(buf + 19)); >>> +#if defined(CONFIG_TOP7000) >>> + } else if (!strncmp ((char *) buf, "[RLA/lan2/Ethernet] ", >>> 20)) { >>> + setenv ("eth1addr", (char *)(buf + 20)); >>> +#endif >>> } else if (!strncmp ((char *) buf, "[BOARD/SERIAL] ", 15)) { >>> setenv ("serial#", (char *)(buf + 15)); >>> } else if (!strncmp ((char *) buf, "[BOARD/TYPE] ", 13)) { >>> @@ -77,3 +82,48 @@ void read_factory_r (void) >>> } >>> } >>> } >>> + >>> +#if defined(CONFIG_TOP7000) >>> +int do_vpd (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) >>> +{ >>> + uchar buf[512]; >>> + uchar *p; >>> + int i; >>> + u_int addr; >>> + >>> + if (argc != 3) >>> + return 1; >>> + >>> + p = buf+2; >>> + i = simple_strtoul(argv[1], NULL, 10); >>> + if (i<1 || i>32766) >>> + return 1; >>> + >>> + addr=(i-1)*2; >>> + >>> + p+=sprintf((char*)p, >>> + "[RLA/lan/Ethernet] 00:80:d9:0d:%02x:%02x\n", >>> + addr/256, addr%256); >>> + addr++; >>> + p+=sprintf((char*)p, >>> + "[RLA/lan2/Ethernet] 00:80:d9:0d:%02x:%02x\n", >>> + addr/256, addr%256); >>> >> These appear to be public MAC addresses. Are these ones that your company >> owns and you're guaranteeing to be unique? >> <snip> >> > That is our address range. > >>> + >>> +#ifdef CONFIG_CMD_NET >>> +int board_eth_init(bd_t *bi) >>> +{ >>> + macb_eth_initialize(0, >>> + (void *)MACB0_BASE, bi->bi_phy_id[0]); >>> + macb_eth_initialize(1, >>> + (void *)MACB1_BASE, bi->bi_phy_id[1]); >>> + return 0; >>> >> Please return the number of controllers that were successfully initialized. >> <snip> > 1) in net/eth.c: > /* Try board-specific initialization first. If it fails or isn't > * present, try the cpu-specific initialization */ > if (board_eth_init(bis) < 0) > cpu_eth_init(bis); > that means >=0 OK, <0 error code.... > 2) most other ports do something like > int board_eth_init(bd_t *bi) > { > return macb_eth_initialize(0, (void *)MACB0_BASE, bi->bi_phy_id[0]); > } > where macb_eth_initialize() returns 0 on success... > 3) no port seems to return a positive number >0 > IF in the future it is required that the function returns the number of > interfaces > EVERY port has to be modified :) >> regards, >> Ben > > Best Regards, Reinhard > > _______________________________________________ > U-Boot mailing list > [email protected] > http://lists.denx.de/mailman/listinfo/u-boot _______________________________________________ U-Boot mailing list [email protected] http://lists.denx.de/mailman/listinfo/u-boot

