阳初2440 超值版只能使用一个 USB Host 问题的解决

阳初S3C2410系统板说明.pdf 阳初S3C2410系统板说明,提供了在嵌入式环境下的编程前的初步了解 立即下载
    记得刚买回来板子的时候,上面自带的系统是 WinCE,试运行了一下,发现一个USB接口不能用(插U盘或鼠标时只闪一下灯就没反应了,刚开始以为是电压低...汗)。今天逛论坛时正好碰到了解决方法,转帖过来,以备以后参考。
    阳初论坛帖子的地址: 关于阳初2440超值版只能使用一个usb host问题的解决

    第一篇:  原文网址
    修改linux-2.6.20.3/drivers/usb/host/Kconfig,添加:

    config MAX_ROOT_PORTS
    int "Maximum port(s) of RootHub"
    depends on USB_OHCI_HCD && ARCH_S3C2410
    default 1
    ---help---
    pls select usb host number,default one host and one     device.so We select one normally

    修改/linux-2.6.20.3/drivers/usb/host/ohci-s3c2410.c
    static int usb_hcd_s3c2410_probe (const struct hc_driver *driver,
                  struct platform_device *dev)
    {
       struct usb_hcd *hcd = NULL;
       int retval;
       //add by hiboy
       unsigned long tmp;
       #if CONFIG_MAX_ROOT_PORTS < 2
          /* 1 host port, 1 slave port*/
          tmp = __raw_readl(S3C2410_MISCCR);
          tmp &= ~S3C2410_MISCCR_USBHOST;
           __raw_writel(tmp, S3C2410_MISCCR);
          s3c2410_usb_set_power(dev->dev.platform_data, 1, 1);
       #else
         /* 2 host port */
        tmp = __raw_readl(S3C2410_MISCCR);
        tmp |= S3C2410_MISCCR_USBHOST;
        __raw_writel(tmp, S3C2410_MISCCR);
        s3c2410_usb_set_power(dev->dev.platform_data, 1, 1);
        s3c2410_usb_set_power(dev->dev.platform_data, 2, 1);
       #endif


    //s3c2410_usb_set_power(dev->dev.platform_data, 1, 1);
    //s3c2410_usb_set_power(dev->dev.platform_data, 2, 1);

    ......
 
    修改/linux-2.6.20.3/drivers/usb/core/hub.c
    static int hub_configure(struct usb_hub *hub,
    struct usb_endpoint_descriptor *endpoint)
    {
       struct usb_device *hdev = hub->hdev;
       struct device *hub_dev = hub->intfdev;
       u16 hubstatus, hubchange;
       u16 wHubCharacteristics;
       unsigned int pipe;
       int maxp, ret;
       char *message;

       hub->buffer = usb_buffer_alloc(hdev, sizeof(*hub->buffer), GFP_KERNEL,
            &hub->buffer_dma);
       if (!hub->buffer) {
          message = "can't allocate hub irq buffer";
          ret = -ENOMEM;
          goto fail;
       }

       hub->status = kmalloc(sizeof(*hub->status), GFP_KERNEL);
       if (!hub->status) {
          message = "can't kmalloc hub status buffer";
          ret = -ENOMEM;
          goto fail;
       }
      mutex_init(&hub->status_mutex);

      hub->descriptor = kmalloc(sizeof(*hub->descriptor), GFP_KERNEL);
      if (!hub->descriptor) {
          message = "can't kmalloc hub descriptor";
          ret = -ENOMEM;
          goto fail;
      }

    /* Request the entire hub descriptor.
     * hub->descriptor can handle USB_MAXCHILDREN ports,
     * but the hub can/will return fewer bytes here.
     */
    ret = get_hub_descriptor(hdev, hub->descriptor,
            sizeof(*hub->descriptor));
    if (ret < 0) {
        message = "can't read hub descriptor";
        goto fail;
    } else if (hub->descriptor->bNbrPorts > USB_MAXCHILDREN) {
        message = "hub has too many ports!";
        ret = -ENODEV;
        goto fail;
    }

    /********************************************/
    /*add by hiboy */
    #ifdef CONFIG_ARCH_S3C2410
    if ((hdev->devnum == 1)  // Root Hub
    && hub->descriptor->bNbrPorts > CONFIG_MAX_ROOT_PORTS) {
    int j;
    for (j=hub->descriptor->bNbrPorts-1; j>=0; j--) {
        printk("port #%d ", j);
        if (j > CONFIG_MAX_ROOT_PORTS-1) {
        printk("suspened!/n");
        } else {
        printk("alived!/n");
        }
    }
    hub->descriptor->bNbrPorts = CONFIG_MAX_ROOT_PORTS;
    }
    #endif
    /*********************************************/

    第二篇:  原文网址
    是由于MISCCR寄存器没有正确设置的缘故,我在mach-2410.c中增加了设置MISCCR寄存器的内容,HOST0就可以正常使用了
    /*add by seigpao*/
    int usb_seigpao_init(void)
    {
      unsigned long upllvalue;
      unsigned long misccr;

      //设置UPLLCON
      upllvalue = (0x78<<12)|(0x02<<4)|(0x03);
      __raw_writel(upllvalue,S3C2410_UPLLCON);

      //设置MISCCR
      misccr = __raw_readl(S3C2410_MISCCR);
      misccr |= S3C2410_MISCCR_USBHOST;
      misccr &= ~(S3C2410_MISCCR_USBSUSPND0 | S3C2410_MISCCR_USBSUSPND1);
      __raw_writel(misccr,S3C2410_MISCCR);

      return 1;
    }
    /* end by seigpao */

    static void __init smdk2410_map_io(void)
    {
        s3c24xx_init_io(smdk2410_iodesc, ARRAY_SIZE(smdk2410_iodesc));
        s3c24xx_init_clocks(0);
        s3c24xx_init_uarts(smdk2410_uartcfgs, ARRAY_SIZE(smdk2410_uartcfgs));
        s3c24xx_set_board(&smdk2410_board);

        /*add by seigpao*/
        //设置2410触摸屏
        set_s3c2410ts_info(&sbc2410_ts_cfg);

        //设置USB相关寄存器
        usb_seigpao_init();
        /* end by seigpao */
     }

u-boot 1.2.0 s3c2410 阳初 网上大侠写得适用于阳初3sc2410 的u-boot (u-boot-1.2.0) 解压后输入 make yangchu_config ; make 即可 立即下载

相关推荐

阳初2410原理图 .zip

Kernel.pdf 111.34 KB, 下载次数: 22 , 下载积分: 资产 -2 信元, 下载支出 2 信元 核心版 SystemBoard.pdf 145.43 KB, 下载次数: 28 , 下载积分: 资产 -2 信元, 下载支出 2 信元 底板

ARM入门最好的文章(转自bbs.21ic.com) 

ARM入门最好的文章(转自bbs.21ic.com) 一 首先说说ARM的发展      可以用一片大好来形容,翻开各个公司的网站,招聘里面嵌入式占据了大半工程师职位。广义的嵌入式无非几种:传统的什么51、AVR、PIC称做嵌入式微控制器;ARM是嵌入式微处理器;DSP;FPGA。      客观的讲,工作需求量上DSP的需求比ARM要多,而ARM和FPGA差不多。  

李兰俊的技术专栏 1909

FS2410用户光盘

优龙公司的经典板子FS2410用户光盘资料!

cs8900在2.6.14上的移植

<!-- @page { size: 21cm 29.7cm; margin: 2cm } P { margin-bottom: 0.21cm } --> 前面已经有2.6.14的移植过程了,这里就不再重复了。只介绍一下网卡驱动的移植。添加驱动程序源代码,这涉及到以下几个方面。 1、把cs8900.c和cs

wu7104的专栏 2471

博创s3c-2410s配套vivi+zImage+root.cramfs

博创光盘附带中的vivi,zImage,root.cramfs。

鼎微方案导航一体机T7公版升级软件V7.1.1_20210125.154030_AUTOUI.rar

升级步骤:解压以后把里面的4个文件放进U盘根目录,进车载设置点击系统升级USB。V7.1.1_20210125.154030_AUTOUI.rar

u-boot移植到mini2440,u-boot版本2008.10

这篇文章写于2008.12.28日,主要记录了我移植u-boot-2008.10的过程,并附上了移植好的patch文件。移植好的u-boot-2008.10适用友善公司的mini2440和阳初公司的yc2410。其它的开发板,可能要根据相应的电路配置做稍许修改。我的移植是使用非nand-leagcy方法的,移植好的u-boot-2008.10功能除了基本功能外,加上了yaffs1映像的写入功能,加

hugerat的专栏 2万+

聚类技术:发展历史、主要分类与重要论文解析

在数据挖掘和机器学习的广袤领域中,聚类作为一种强大的无监督学习技术,一直扮演着至关重要的角色。它能够帮助我们从海量的数据中发现隐藏的模式和结构,将相似的数据对象归为一类,从而为进一步的分析和决策提供有价值的信息。

qq_48131648的博客 2630

S3C2410 LCD 驱动程序移植及GUI程序编写

2007-12-25 10:13:34 1. 为了不让大家觉枯燥,让朋友们更好的理解,我以一个实例来叙述 S3C2410 下一个驱动程序的编写(本文的初始化源码以华恒公司提供的 s3c2410fb.c 为基础)及简单的 GUI程序的编写。 2. 拿到一块 LCD,首先要将 LCD的各个控制线与 S3C2410 的 LCD控制信号相接,当然,电源也一定要接入了,否则不

mybirdsky的专栏 668

CST实战:变容二极管电容曲线提取全流程(附S参数设置技巧)

本文详细介绍了在CST Studio Suite中提取变容二极管电容-电压(C-V)曲线的完整实战流程。重点解析了S参数仿真的核心原理、DCFEED模块的正确配置、参数扫描的设置技巧,并探讨了集成SPICE模型进行精确仿真的方法,帮助射频工程师高效、准确地获取器件关键特性。

weixin_29237635的博客 529

信号完整性SI-PI

SI设计的主要难点在于需要综合信号的幅度、噪声、边沿、延时等影响信号质量的多种因素,并且这种因素常常相互依赖、互相影响,交叉在一起。1.1、信号过冲 (欠阻尼状态,可并联一个合适的电容):过冲会造成强烈的电磁干扰,另一方面会损伤后面的电路的输入及,甚至失效。信号完整性SI:是指电路系统中信号的质量,如果在要求的时间内,信号能不失真的从源端传输到接收端。优点:提供较慢的上升时间,减少反系量,产生更小的EMI,从而降低过冲,增加信号质量。导线之间的间距过小, 就会产生串扰,间距越小、串扰越大。

weixin_42304393的博客 4871

2440/2410上将usb device改成usb host

2009-08-11 16:35 之前的开发,要在2440上使用两个usb host口,一个接摄像头,一个接无线网卡。但友善之臂mini2440板子只有一个usb host口,曾想通过外接一个usb hub来解决,无线网卡接hub没有问题,但是摄像头插到hub上总是有错误:           usb 1-1: reset full speed USB device usi

kerson的专栏 6994

Coze HTTP请求节点实战:5分钟搞定天气API对接(含动态参数技巧)

本文通过一个天气预报API对接的实战案例,详细讲解了如何在Coze平台使用HTTP请求节点实现外部数据交互。文章重点演示了动态参数传递、JSON响应解析与错误处理等核心技巧,帮助开发者在5分钟内快速构建稳定可靠的智能体外部服务调用能力。

weixin_29233333的博客 676

Linux学习

开发板用友善之臂的吧 mini2440 连3.5寸屏500块钱的样子 有好几张DVD学习光盘 这款口碑比较高 嵌入式Linux操作系统学习规划 ARM+LINUX路线,主攻嵌入式Linux操作系统及其上应用软件开发目标: (1) 掌握主流嵌入式微处理器的结构与原理(初步定为arm9) (2) 必须掌握一个嵌入式操作系统 (初步定为uclinux或linux,版本待定)

YouthDance 1088

yolov5深度剖析+源码debug级讲解系列(一) yolov5的架构和源码debug准备

前言 前段时间分析了yolov3的源码,这次想带着小伙伴一起把yolov5完全掌握。博主还是保持着一贯的风格,依旧采用debug级别的源码剖析。目的就是让大家可以通过一个系列的文章就把yolov5的架构、设计理念和每一行源码都弄懂。只要小伙伴可以花时间把这个系列读完,就会对yolov5的理解有所提升。 去年参加了kaggle的小麦检测比赛,yolov5在比赛的中段开始呈现霸榜趋势,超越了efficientdet。虽然最后yolov5因为权限等某些问题被kaggle官方禁用了,但是仍然体现出了其强大的能力。值

人唯优的博客 4万+

【知识图谱】实践篇——基于知识图谱的《红楼梦》人物关系可视化及问答系统实践:part6基于图谱的问答实现

前序文章:本部分则是整个项目的核心内容——基于图谱的问答。需要实现的是对于“简单问题”进行解析,然后从图谱数据库中查询与该人员及其相关人员信息,返回到前端并显示该人员的基本信息。除此之外,用户可以点击返回的结果人员节点,页面能够显示该用户的个人基本信息。那么现在就开始吧。根据源码实现问答形式,其实是比较简单的。原代码中使用ltp对问题进行分词,选取具有名次词性的关键词进行处理。 ltp配置稍许麻烦,我使用jieba分词工具对问题进行分词,然后再按照原文提取问句中人物及关系,然后构建cypher neo4j查

让算法融入生活,改变生活! 2938

linux 内核调试 booting the kernel.,Uncompressing Linux....... done, booting the kernel就不动了的一个可能原因...

最近搞阳初2410的板子,做的U-BOOT1.2.0能从NAND FLASH启动起来了,但是引导内核真是搞怪,前几天还能引导的,这几天又不能引导了,但是这些内核用VIVI都是能引导的,搞得头痛死了,总是死在下面这个地方:Uncompressing Linux....................................................... done, booting t...

weixin_35562225的博客 1228

Android 14.0 系统设置显示主菜单添加屏幕旋转菜单实现旋转屏幕功能

在14.0的系统rom定制化开发中,在对系统设置进行定制开发中,有产品需求要求增加 旋转屏幕功能的菜单,就是在点击旋转屏幕菜单后弹窗显示旋转0度,旋转 90度,旋转180度, 旋转270度针对不同分辨率的无重力感应的大屏设备的屏幕旋转功能的实现, 接下来就来分析实现这个功能

安卓兼职framework和app工程师的博客 1311

[原创]Linux 2.6.27 for ARM9/S3C2410 内核移植笔记

2.6.27是Linux内核的最新版本。昨天中午下载的,用了半天的时间完成了针对ARM CPU的基本配置,第一次做Linux移植就出乎意料的顺利,其实这主要得益于Linux内核优良的设计和该版本对ARM处理器近乎完美的支持!关键词: Linux 2.6.27 内核 移植 ARM S3C2410再写一遍:  下面把我的整个配置过程与大家分享一下:第一部分 准备工作1. 下载Linux内核:    从

Embedded System and Linux Applications 8024

基于Simulink的电气弹簧ES稳压控制模型仿真

在本文中,我们将使用Simulink建立一个ES稳压控制系统的模型,并通过仿真验证其性能。接下来,我们配置了各个组件的参数,包括电源电压、负载电流以及ES和控制器的传递函数。通过调整模型中的参数和控制算法,我们可以进一步优化系统的性能并实现更好的电压稳定调节。该系统通过对电力系统中的ES进行控制,调整其阻尼特性,以实现对电压的稳定调节。例如,我们可以设置电源的电压值、负载的电流值,以及控制器的参数(如PID控制器的比例、积分和微分增益)。反馈控制可以根据测量值来调整控制器的输出,从而实现对电压的稳定调节。

DevProZ的博客 421

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

在S3C2410的6寸LCD驱动在linux2.6上的移植

在S3C2410的6寸LCD驱动在linux2.6上的移植----Figo  2007.11我的LCD是12bit的640*480的TFT,硬件平台是阳初2410板子,在linux-2.6.14的移植结果如下: 1.     在mach-smdk2410.c中添加平台信息.主要是设置一个结构体.添加头文件#include static struct s3c2410fb_ma

Figo的专栏 1275

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

fs2410做电脑的u盘使用,基于linux-2.6.30.4

本来是按照天嵌的说明书来这,按照其说明方法对内核进行更改和配置后,然后编译,这一切倒还顺利,不过等我将fs2410的usb接口插上电脑后,过了好长时间电脑上才显示u盘的图标,但移动设备里面却无法看到这个“U”盘,于是,从新从网上看查查看其他人是怎么做的,好家伙,查了半天,好像很多人都是转抄的(http://blog.chinaunix.net/u2/65122/showart_1673178.ht

ninedays的专栏 2318

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

《Linux 驱动:s3c2410_ts加载过程》

s3c2410_ts加载过程;总线 驱动 设备 模型;MACHINE_START;MACHINE_START(SMDK2410, "SMDK2410") ;输入子系统;bus-driver-device;platform_add_devices;platform_driver_register;input_register_device;

qq_40709487的博客 1542

S3C2410 && WinCE6.0的中断处理分析

转自:http://www.cnblogs.com/we-hjb/archive/2008/11/08/1329830.html      S3C2410的内核是ARM920T,所以,这里先介绍一下ARM920T的异常。ARM920T中有一个当前程序状态寄存器(CPSR),其中BIT6和BIT7分别控制FIQ和IRQ的使能与否。大家经常说的开中断和关中断,就是指的设置这两个BIT。

WHJ的嵌入式生活 965

NFS服务的配置(虚拟机下的Linux,开发板是ARM9 S3C2410) .

网络文件系统(NFS,Network File System)是一种将远程主机上的分区(目录)经网络挂载到本地系统的一种机制,通过对网络文件系统的支持,用户可以在本地系统上像操作本地分区一样来对远程主机的共享分区(目录)进行操作。   在嵌入式Linux 的开发过程中,开发者需要在Linux 服务器上进行所有的软件开发,交叉编译后,通用FTP方式将可执行文件下载到嵌入式系统运行,但这种方式不但效

xiaoyangger的专栏 779
上一篇: 开始学习Uboot
下一篇: 编译Uboot 好多问题啊
Loadingo0
博客等级 码龄19年 53粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值