
On Tue, 30 May 2006 21:09:11 +0300 Yuli Barcohen yuli@arabellasw.com wrote:
Bryan> -CROSS_COMPILE = powerpc-linux- Bryan> +CROSS_COMPILE = ppc_8xx-
Blink. How the hell did that get in there ?
I didn't mean to add entirely new board target. I think a new target should be added to the existing Adder targets which would add a #define for USB console just like "#define CONFIG_MPC852T" is added for AdderII.
Actually I think that makes more sense then adding AdderUSB as the supplemental patch does. I concur, this is definitely the more generic/portable way to do this. I'll generate another supplemental patch in lieu of the previous patch, which implements the above.
Conditional on this #define, BoardName.h can include usbd_vendor.h which we decided to create. In the current version of your patch, it's exactly opposite: usbd_vendor.h (AdderUSB.h in our case) includes BoardName.h (Adder.h). This means that for every board wishing to support USB console you have to create another BoardNameUSB.h (which is a clone of AdderUSB.h). What's about creating CodeHermit.h containing something like this:
#define CONFIG_USB_DEVICE /* Include UDC driver */ #define CFG_USB_EXTC_CLK 0x02 /* Oscillator on EXTC_CLK 2 */ #define CFG_USB_BRG_CLK 0x04 #define CFG_CONSOLE_IS_IN_ENV #define CONFIG_USBD_MANUFACTURER "CodeHermit.ie" #define CONFIG_USBD_PRODUCT_NAME "Das U-Boot" #define CONFIG_USBD_VENDORID 0xFFFF #define CONFIG_USBD_PRODUCTID_GSERIAL 0xFFFF #define CONFIG_USBD_PRODUCTID_CDCACM 0xFFFE
adding to Adder.h
#ifdef CONFIG_USB_TTY #include <CodeHermit.h> #endif
"#define CONFIG_USB_TTY" would be added by the configuration target in the Makefile. Any other board can then include CodeHermit.h unchanged. To allow IDs overwriting, you can even use the following in CodeHermit.h:
#ifndef CONFIG_USBD_VENDORID #define CONFIG_USBD_VENDORID 0xFFFF #endif
Right. I have a suggestion, which if it is agreeable to you and everybody else I will generate a new full supplemental patchset based upon.
1: For Adder ports, the Makefile shall be amended to optionally add CONFIG_USB_TTY to config.h as CONFIG_MPC852T is added by make AdderII_config. This will provisionally imply an appendation of USB to the config name. Hence three new values should be added to Makefile AdderUSB_config, Adder87xUSB_config and AdderIIUSB_config. - Do all these boards have USB facility ?
2: include/usbd_vendor.h shall be created. This will look almost exactly like the following.
#define CONFIG_USB_DEVICE /* Include UDC driver */ #define CFG_CONSOLE_IS_IN_ENV /* * Include your own Vendor specific defines here if you have been allocated a * Vendor ID from the USB Implementors Forum. www.usb.org else DO NOT POLLUTE * THE USB NAMESPACE ! * * #define CONFIG_USBD_MANUFACTURER "CodeHermit.ie" * #define CONFIG_USBD_PRODUCT_NAME "Das U-Boot" * #define CONFIG_USBD_VENDORID 0xFFFF * #define CONFIG_USBD_PRODUCTID_GSERIAL 0xFFFF * #define CONFIG_USBD_PRODUCTID_CDCACM 0xFFFE */
If at a later date for argument sake, we were to implement RNDIS then the appropiate thing to do would be to add an optional CONFIG_USBD_PRODUCTID_RNDIS entry to usbd_vendor.h, with defaults for RNDIS values residing in usbrndis.h, thus maintaining the structure established with usbtty, thus far.
3: Adder.h shall be ammended with the following text in a rational place.
#ifdef CONFIG_USB_TTY #include <usbd_vendor.h>
#define CFG_USB_EXTC_CLK 0x02 /* Oscillator on EXTC_CLK 2 */ #define CFG_USB_BRG_CLK 0x04 /* Or optionally on brgc4 */
#endif
I think CFG_USB_*BLAH* above shoudln't be in usbd_vendor.h for the case where the USB console is being compiled for a non 8xx port, say the omap1510/SX1 port, hence the two CFG options above should probably be board specific.
4: usbtty.c shall stay pretty much the same.
usbtty.h - Shall be included in usbtty.c. CONFIG_USBD_VENDORID, CONFIG_USBD_PRODUCTID_GSERIAL will default to Linux values
config.h - Shall be included subsequent to usbtty.h, thus facilitating over-riding of default VENDORID/PRODUCTID values from Linux specific values to Vendor specific values.
I think that with this in place we pretty much do all that needs to be done. If everybody else is in agreement, I can have these changes made in <= 10 minutes.
Let me know what you think.
Best Regards, Bryan