add Kendein/Micrel KS8695P CPU support
PATCH 1/2 add Kendein/Micrel KS8695P CPU support
Hi All,
Attached is a patch that adds support to u-boot for the Kendin/Micrel KS8695P CPU. It is an ARM9 based SoC type device, used in a lot of little routers.
This patch was originally generated against u-boot 1.1.1.
I am following up this patch with a couple of more patches that add support for the OpenGear CM4008 and CM4116/CM4148 console manager boards (that use the KS8695P CPU).
Regards
Greg
-------------- next part --------------
A non-text attachment was scrubbed...
Name: u-boot.ks8695.patch.1
Type: text/x-troff-man
Size: 28518 bytes
Desc: not available
Url : http://lists.denx.de/pipermail/u-boot/attachments/20050518/7fa6245c/attachment.bin
PATCH 1/2 add Kendein/Micrel KS8695P CPU support
Quoted 6 lines · In message <[email protected]> you wrote:
Attached is a patch that adds support to u-boot for the Kendin/Micrel KS8695P CPU. It is an ARM9 based SoC type device, used in a lot of little routers.
This patch was originally generated against u-boot 1.1.1.
Sorry, but your source base is just too old, and the patch as is is not usable any more. Please note that there has been a major reorganisation to better support SoC systems like yours, too. Instead of duplicationg the same code again and again we now share the common parts.
Please rework your patch; do not create a new cpu/ directory, but instead a new SoC-specific subdirectory like those already present for at91rm9200 or s3c24x0 systems.
And please don't forget to include the required entries to the CHANGELOG, MAINTAINERS and CREDITS files.
Quoted 3 lines
I am following up this patch with a couple of more patches that add support for the OpenGear CM4008 and CM4116/CM4148 console manager boards (that use the KS8695P CPU).
Actually the order was different, but this doesn't matter: all your patches share the same problem. Please fix, and resubmit.
Best regards,
Wolfgang Denk
Signature · 4 lines
Software Engineering: Embedded and Realtime Systems, Embedded Linux Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de "Why waste negative entropy on comments, when you could use the same entropy to create bugs instead?" - Steve Elias
PATCH 1/2 add Kendein/Micrel KS8695P CPU support
Hi Wolfgang,
Quoted 13 lines · Wolfgang Denk
Quoted 5 lines · In message <[email protected]> you wrote:
Attached is a patch that adds support to u-boot for the Kendin/Micrel KS8695P CPU. It is an ARM9 based SoC type device, used in a lot of little routers.
This patch was originally generated against u-boot 1.1.1.
Sorry, but your source base is just too old, and the patch as is is not usable any more. Please note that there has been a major reorganisation to better support SoC systems like yours, too. Instead of duplicationg the same code again and again we now share the common parts.
Quoted 3 lines
Please rework your patch; do not create a new cpu/ directory, but instead a new SoC-specific subdirectory like those already present for at91rm9200 or s3c24x0 systems.
Here is a reworked patch, this time against the current CVS code. How does this look?
I put it under the arm920t, though technicaly it is a 922t. Seemed to fit in nicely in any case.
Quoted 7 lines
Quoted 3 lines
I am following up this patch with a couple of more patches that add support for the OpenGear CM4008 and CM4116/CM4148 console manager boards (that use the KS8695P CPU).
Actually the order was different, but this doesn't matter: all your patches share the same problem. Please fix, and resubmit.
The first email (the ks8695 cpu support) bounced, it was larger than 40k. So I had to split it and resend. Otherwise they would have been in order :-)
Regards
Greg
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: u-boot.ks8695.patch
Url: http://lists.denx.de/pipermail/u-boot/attachments/20050520/145026a3/attachment.txt
PATCH 1/2 add Kendein/Micrel KS8695P CPU support
Dear Greg,
Quoted 3 lines · in message <[email protected]> you wrote:
Here is a reworked patch, this time against the current CVS code. How does this look?
Much better :-)
The subject ("[PATCH 1/2]") indicates that there is a second part to follow - is there? I don't see any obvious stuff missing?
* Patch by Greg Ungerer, 19 May 2005:
- add support for the KS8695P (ARM 922 based) CPU
- add support for the OpenGear CM4008, CM4116 and CM4148 boards
Checked in, thanks.
But please stick to the Coding Style:
don't add trailing white space to files
(cpu/arm920t/ks8695/lowlevel_init.S,include/asm-arm/arch-ks8695/platform.h),
don't add trailing empty lines
(cpu/arm920t/ks8695/interrupts.c),
and don't use C++ comments
(drivers/ks8695eth.c).
And instead of
#if 0 printf(...); #endif
you could simply write
debug (...);
which is easier to read and to enable if needed.
PATCH 1/2 add Kendein/Micrel KS8695P CPU support
Quoted 9 lines
Dear Greg,
Quoted 3 lines · in message <[email protected]> you wrote:
Here is a reworked patch, this time against the current CVS code. How does this look?
Much better :-)
Really? (o;
"drivers/ks8695eth.c" includes "asm/arch/platform.h" which not all boards have...especially not with the defines this driver requires...
best regards
rick
PATCH 1/2 add Kendein/Micrel KS8695P CPU support
Dear Greg,
in message <r02010500-1041-5A1EF226C91011D9BF6200039387ACB6@[10.0.1.1]>
Quoted 8 lines · Richard Klinger
Quoted 2 lines
Much better :-)
Really? (o;
"
drivers/ks8695eth.c" includes "asm/arch/platform.h" which not all boards have...especially not with the defines this driver requires...
He is right: your code breaks ALL other ARM boards:
-> MAKEALL arm
Configuring for assabet board...
ks8695eth.c:27:31: asm/arch/platform.h: No such file or directory make[1]: *** [.depend] Error 1
make: *** [drivers/libdrivers.a] Error 2
arm-linux-size: u-boot: No such file or directory Configuring for dnp1110 board...
ks8695eth.c:27:31: asm/arch/platform.h: No such file or directory make[1]: *** [.depend] Error 1
make: *** [drivers/libdrivers.a] Error 2
arm-linux-size: u-boot: No such file or directory Configuring for gcplus board...
ks8695eth.c:27:31: asm/arch/platform.h: No such file or directory make[1]: *** [.depend] Error 1
make: *** [drivers/libdrivers.a] Error 2
arm-linux-size: u-boot: No such file or directory Configuring for lart board...
ks8695eth.c:27:31: asm/arch/platform.h: No such file or directory make[1]: *** [.depend] Error 1
make: *** [drivers/libdrivers.a] Error 2
arm-linux-size: u-boot: No such file or directory Configuring for shannon board...
ks8695eth.c:27:31: asm/arch/platform.h: No such file or directory make[1]: *** [.depend] Error 1
make: *** [drivers/libdrivers.a] Error 2
arm-linux-size: u-boot: No such file or directory Configuring for B2 board...
ks8695eth.c:27:31: asm/arch/platform.h: No such file or directory make[1]: *** [.depend] Error 1
make: *** [drivers/libdrivers.a] Error 2
arm-linux-size: u-boot: No such file or directory Configuring for ep7312 board...
ks8695eth.c:27:31: asm/arch/platform.h: No such file or directory make[1]: *** [.depend] Error 1
make: *** [drivers/libdrivers.a] Error 2
arm-linux-size: u-boot: No such file or directory
...
etc.
Didn't you run MAKEALL before submitting your patches? Grrrrghhh!
Please fix ASAP!!!
Best regards,
Wolfgang Denk
Signature · 4 lines
Software Engineering: Embedded and Realtime Systems, Embedded Linux
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
The optimum committee has no members.
- Norman AugustinePATCH 1/2 add Kendein/Micrel KS8695P CPU support
Quoted 14 lines · Wolfgang Denk
Dear Greg,
in message <r02010500-1041-5A1EF226C91011D9BF6200039387ACB6@[10.0.1.1]>
Quoted 7 lines · Richard Klinger
Quoted 1 line
Much better :-)
Really? (o;
"
drivers/ks8695eth.c" includes "asm/arch/platform.h" which not all boards have...especially not with the defines this driver requires...
Quoted 5 lines
He is right: your code breaks ALL other ARM boards:
-> MAKEALL arm
Configuring for assabet board...
ks8695eth.c:27:31:asm/arch/platform.h: No such file or directory
Ok, it makes no sense (at least currently) to be compiling this driver for any configuration not based on the KS8695 CPU. So the simple fix is to define it out.
drivers/ks8695eth.c 2005-05-23 11:02:33.722028656 +1000 renamed from drivers/ks8695eth.c.org 2005-05-23 11:02:44.877332792 +1000 +5 -0
@@ -24,6 +24,11 @@ #include <malloc.h> #include <net.h> #include <asm/io.h> + +/****************************************************************************/ +#ifdef CONFIG_KS8695 +/****************************************************************************/ + #include <asm/arch/platform.h>
/****************************************************************************/ @@ -234,3 +239,4 @@
}
/****************************************************************************/ +#endif /* CONFIG_KS8695 */
Quoted 2 lines
Didn't you run MAKEALL before submitting your patches? Grrrrghhh!
Well, I don't get clean results for it, and I haven't investiagted why yet... Can I trust it??
Configuring for assabet board...
arm-linux-ld: ERROR:
/usr/local/lib/gcc-lib/arm-linux/3.3.2/libgcc.a(_modsi3.o) uses hardware FP, whereas u-boot uses software FP
File in wrong format: failed to merge target specific data of file /usr/local/lib/gcc-lib/arm-linux/3.3.2/libgcc.a(_modsi3.o)
make: *** [u-boot] Error 1
./MAKEALL: line 243: ppc_8xx-size: command not found Configuring for dnp1110 board...
./MAKEALL: line 243: ppc_8xx-size: command not found Configuring for gcplus board...
./MAKEALL: line 243: ppc_8xx-size: command not found Configuring for lart board...
./MAKEALL: line 243: ppc_8xx-size: command not found Configuring for shannon board...
./MAKEALL: line 243: ppc_8xx-size: command not found Configuring for B2 board...
./MAKEALL: line 243: ppc_8xx-size: command not found Configuring for ep7312 board...
./MAKEALL: line 243: ppc_8xx-size: command not found Configuring for evb4510 board...
./MAKEALL: line 243: ppc_8xx-size: command not found Configuring for impa7 board...
./MAKEALL: line 243: ppc_8xx-size: command not found Configuring for modnet50 board...
./MAKEALL: line 243: ppc_8xx-size: command not found Configuring for at91rm9200dk board...
arm-linux-ld: ERROR:
/usr/local/lib/gcc-lib/arm-linux/3.3.2/libgcc.a(_divsi3.o) uses hardware FP, whereas u-boot uses software FP
File in wrong format: failed to merge target specific data of file /usr/local/lib/gcc-lib/arm-linux/3.3.2/libgcc.a(_divsi3.o)
make: *** [u-boot] Error 1
./MAKEALL: line 243: ppc_8xx-size: command not found Configuring for cmc_pu2 board...
arm-linux-ld: ERROR:
/usr/local/lib/gcc-lib/arm-linux/3.3.2/libgcc.a(_divsi3.o) uses hardware FP, whereas u-boot uses software FP
File in wrong format: failed to merge target specific data of file /usr/local/lib/gcc-lib/arm-linux/3.3.2/libgcc.a(_divsi3.o)
make: *** [u-boot] Error 1
./MAKEALL: line 243: ppc_8xx-size: command not found Configuring for integratorcp board...
./MAKEALL: line 243: ppc_8xx-size: command not found Configuring for integratorap board...
./MAKEALL: line 243: ppc_8xx-size: command not found Configuring for lpd7a400 board...
./MAKEALL: line 243: ppc_8xx-size: command not found Configuring for mx1ads board...
./MAKEALL: line 243: ppc_8xx-size: command not found Configuring for mx1fs2 board...
./MAKEALL: line 243: ppc_8xx-size: command not found Configuring for omap1510inn board...
arm-linux-ld: ERROR:
/usr/local/lib/gcc-lib/arm-linux/3.3.2/libgcc.a(_modsi3.o) uses hardware FP, whereas u-boot uses software FP
File in wrong format: failed to merge target specific data of file /usr/local/lib/gcc-lib/arm-linux/3.3.2/libgcc.a(_modsi3.o)
make: *** [u-boot] Error 1
./MAKEALL: line 243: ppc_8xx-size: command not found
... configured for CS3 boot
Configuring for omap1610h2 board...
./MAKEALL: line 243: ppc_8xx-size: command not found
... configured for CS3 boot
Configuring for omap1610inn board...
./MAKEALL: line 243: ppc_8xx-size: command not found
... configured for CS3 boot
Configuring for omap730p2 board...
./MAKEALL: line 243: ppc_8xx-size: command not found Configuring for scb9328 board...
./MAKEALL: line 243: ppc_8xx-size: command not found Configuring for smdk2400 board...
./MAKEALL: line 243: ppc_8xx-size: command not found Configuring for smdk2410 board...
./MAKEALL: line 243: ppc_8xx-size: command not found Configuring for trab board...
arm-linux-ld: ERROR:
/usr/local/lib/gcc-lib/arm-linux/3.3.2/libgcc.a(_udivsi3.o) uses hardware FP, whereas trab_fkt uses software FP
Success: failed to merge target specific data of file /usr/local/lib/gcc-lib/arm-linux/3.3.2/libgcc.a(_udivsi3.o)
arm-linux-ld: ERROR:
/usr/local/lib/gcc-lib/arm-linux/3.3.2/libgcc.a(_umodsi3.o) uses hardware FP, whereas trab_fkt uses software FP
Success: failed to merge target specific data of file /usr/local/lib/gcc-lib/arm-linux/3.3.2/libgcc.a(_umodsi3.o)
arm-linux-ld: ERROR:
/usr/local/lib/gcc-lib/arm-linux/3.3.2/libgcc.a(_dvmd_lnx.o) uses hardware FP, whereas trab_fkt uses software FP
Success: failed to merge target specific data of file /usr/local/lib/gcc-lib/arm-linux/3.3.2/libgcc.a(_dvmd_lnx.o)
arm-linux-ld: ERROR:
/usr/local/lib/gcc-lib/arm-linux/3.3.2/libgcc.a(_udivdi3.o) uses hardware FP, whereas trab_fkt uses software FP
Success: failed to merge target specific data of file /usr/local/lib/gcc-lib/arm-linux/3.3.2/libgcc.a(_udivdi3.o)
arm-linux-ld: ERROR:
/usr/local/lib/gcc-lib/arm-linux/3.3.2/libgcc.a(_clz.o) uses hardware FP, whereas trab_fkt uses software FP
Success: failed to merge target specific data of file /usr/local/lib/gcc-lib/arm-linux/3.3.2/libgcc.a(_clz.o) make[1]: *** [trab_fkt.srec] Error 1
make: *** [board/trab/libtrab.a] Error 2
./MAKEALL: line 243: ppc_8xx-size: command not found Configuring for VCMA9 board...
./MAKEALL: line 243: ppc_8xx-size: command not found Configuring for versatile board...
./MAKEALL: line 243: ppc_8xx-size: command not found
... boot from upper flash bank
Configuring for voiceblue board...
arm-linux-ld: ERROR:
/usr/local/lib/gcc-lib/arm-linux/3.3.2/libgcc.a(_udivsi3.o) uses hardware FP, whereas eeprom uses software FP
Success: failed to merge target specific data of file /usr/local/lib/gcc-lib/arm-linux/3.3.2/libgcc.a(_udivsi3.o)
arm-linux-ld: ERROR:
/usr/local/lib/gcc-lib/arm-linux/3.3.2/libgcc.a(_umodsi3.o) uses hardware FP, whereas eeprom uses software FP
Success: failed to merge target specific data of file /usr/local/lib/gcc-lib/arm-linux/3.3.2/libgcc.a(_umodsi3.o)
arm-linux-ld: ERROR:
/usr/local/lib/gcc-lib/arm-linux/3.3.2/libgcc.a(_dvmd_lnx.o) uses hardware FP, whereas eeprom uses software FP
Success: failed to merge target specific data of file /usr/local/lib/gcc-lib/arm-linux/3.3.2/libgcc.a(_dvmd_lnx.o) make[1]: *** [eeprom.srec] Error 1
make: *** [board/voiceblue/libvoiceblue.a] Error 2 ./MAKEALL: line 243: ppc_8xx-size: command not found Configuring for omap2420h4 board...
arm-linux-ld: ERROR:
/usr/local/lib/gcc-lib/arm-linux/3.3.2/libgcc.a(_divsi3.o) uses FPA instructions, whereas u-boot does not
arm-linux-ld: ERROR:
/usr/local/lib/gcc-lib/arm-linux/3.3.2/libgcc.a(_divsi3.o) uses hardware FP, whereas u-boot uses software FP
File in wrong format: failed to merge target specific data of file /usr/local/lib/gcc-lib/arm-linux/3.3.2/libgcc.a(_divsi3.o)
make: *** [u-boot] Error 1
./MAKEALL: line 243: ppc_8xx-size: command not found Configuring for adsvix board...
pcmcia.c:39:2: warning: #warning "Board will only supply 5V, wait for next HW spin for selectable power"cmd_pcmcia.c: In function `pcmcia_on':
cmd_pcmcia.c:343: warning: operation on `i' may be undefined cmd_pcmcia.c: At top level:
cmd_pcmcia.c:305: warning: hardware_disable' defined but not used cmd_pcmcia.c:300: warning: hardware_enable' defined but not used cmd_pcmcia.c:310: warning: `voltage_set' defined but not used
arm-linux-ld: ERROR:
/usr/local/lib/gcc-lib/arm-linux/3.3.2/libgcc.a(_modsi3.o) uses hardware FP, whereas u-boot uses software FP
File in wrong format: failed to merge target specific data of file /usr/local/lib/gcc-lib/arm-linux/3.3.2/libgcc.a(_modsi3.o)
make: *** [u-boot] Error 1
./MAKEALL: line 243: ppc_8xx-size: command not found Configuring for cerf250 board...
./MAKEALL: line 243: ppc_8xx-size: command not found Configuring for cradle board...
./MAKEALL: line 243: ppc_8xx-size: command not found Configuring for csb226 board...
./MAKEALL: line 243: ppc_8xx-size: command not found Configuring for innokom board...
./MAKEALL: line 243: ppc_8xx-size: command not found Configuring for lubbock board...
./MAKEALL: line 243: ppc_8xx-size: command not found Configuring for wepep250 board...
./MAKEALL: line 243: ppc_8xx-size: command not found Configuring for xaeniax board...
./MAKEALL: line 243: ppc_8xx-size: command not found Configuring for xm250 board...
./MAKEALL: line 243: ppc_8xx-size: command not found Configuring for xsengine board...
./MAKEALL: line 243: ppc_8xx-size: command not found Configuring for ixdp425 board...pci_indirect.c: In function `indirect_read_config_byte':
pci_indirect.c:94: warning: passing arg 1 of `in_8' from incompatible pointer typepci_indirect.c: In function `indirect_read_config_word':
pci_indirect.c:95: warning: passing arg 1 of `in_le16' from incompatible pointer typepci_indirect.c: In function `indirect_write_config_byte':
pci_indirect.c:102: warning: passing arg 1 of `out_8' from incompatible pointer typepci_indirect.c: In function `indirect_write_config_word':
pci_indirect.c:103: warning: passing arg 1 of `out_le16' from incompatible pointer type
./MAKEALL: line 243: ppc_8xx-size: command not found
Regards
Greg
PATCH 1/2 add Kendein/Micrel KS8695P CPU support
Quoted 4 lines · In message <[email protected]> you wrote:
Ok, it makes no sense (at least currently) to be compiling this driver for any configuration not based on the KS8695 CPU. So the simple fix is to define it out.
Atually I think it makes sense to compile the driver only for those boards that enable it, as ther ecould be even KS8695 based boards that don't need / want to use this driver.
Fixed that wat. Thanks.
Best regards,
Wolfgang Denk
Signature · 6 lines
Software Engineering: Embedded and Realtime Systems, Embedded Linux
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
He had been eight years upon a project for extracting sunbeams out of
cucumbers, which were to be put in vials hermetically sealed, and let
out to warm the air in raw inclement summers. - Jonathan Swift
_Gulliver's Travels_ ``A Voyage to Laputa, etc.'' ch. 5PATCH 1/2 add Kendein/Micrel KS8695P CPU support
Hi Wolfgang,
Quoted 7 lines · Wolfgang Denk
Quoted 3 lines · In message <[email protected]> you wrote:
Ok, it makes no sense (at least currently) to be compiling this driver for any configuration not based on the KS8695 CPU. So the simple fix is to define it out.
Quoted 5 lines
Atually I think it makes sense to compile the driver only for those boards that enable it, as ther ecould be even KS8695 based boards that don't need / want to use this driver.
Fixed that wat. Thanks.
Yes, that is true.
BTW, we could split out the defines specific to the ethernet driver from that arch-ks8695/platform.h if that made sense. As it is currently that platform.h is a direct copy of that file from the Linux support for this device. It would be sorta nice if we can keep it that way, no doubt it will get updated over time as KS release new parts in this family (they have 3 in this CPU family currently).
Regards
Greg
PATCH 1/2 add Kendein/Micrel KS8695P CPU support
In reply to Wolfgang DenkHi Wolfgang,
Quoted 2 lines · Wolfgang Denk
The subject ("[PATCH 1/2]") indicates that there is a second part to follow - is there? I don't see any obvious stuff missing?
No, that was all the CPU support. I just reply'ed to the first email. The new patch was a bit smaller, and fitted all in that one email.
Quoted 8 lines
But please stick to the Coding Style:
don't add trailing white space to files
(cpu/arm920t/ks8695/lowlevel_init.S,include/asm-arm/arch-ks8695/platform.h),
don't add trailing empty lines
(cpu/arm920t/ks8695/interrupts.c),
and don't use C++ comments
(drivers/ks8695eth.c).
Sure thing. Old habits :-)
Regards
Greg
------------------------------------------------------------------------
Greg Ungerer -- Chief Software Dude EMAIL: gerg at snapgear.com SnapGear -- a CyberGuard Company PHONE: +61 7 3435 2888 825 Stanley St, FAX: +61 7 3891 3630 Woolloongabba, QLD, 4102, Australia WEB: http://www.SnapGear.com