阳初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万+

NFS服务器配置与autofs自动挂载

NFS服务器配置autofs自动挂载 环境: hostname ip OS server 192.168.220.138 centos7 client 192.168.220.139 centos7 一、NFS概述 NFS(Network File System)网络文件系统。最大功能就是通过网络,让不同的机器、不同的操作系统可以共享彼此的文件。 二、端口 [root@se...

DoloresOOO的博客 1026

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

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

mybirdsky的专栏 668

从零构建XVC协议栈:FPGA+W5300的跨界调试架构实战

本文详细介绍了如何从零构建XVC协议栈,通过FPGA与W5300以太网控制器的创新组合实现跨界调试架构。重点解析了JTAG时序逆向、TCP/IP协议栈集成与XVC协议实现,提供了硬件设计优化和性能加速技术,为嵌入式开发者和FPGA工程师提供实用的远程调试解决方案。

raspberrypi5的博客 247

网易数智CoreAgent实战:5步教你打造企业级AI数字员工(附避坑指南)

本文以网易数智CoreAgent智能体协作中枢为核心,提供了一份企业级AI数字员工的实战部署指南。文章详细拆解了从环境准备、智能体配置、业务集成、安全合规到效果评估的五个关键步骤,并分享了部署过程中的常见“避坑”经验,旨在帮助企业技术团队高效、安全地将AI智能体落地于实际业务场景,解决AI落地难题。

rice5的博客 953

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的专栏 6995

M2DGR数据集在一些SLAM框架上的配置与运行:ORB-SLAM系列、VINS-Mono、LOAM系列、FAST-LIO系列、hdl_graph_slam

为了说明以上这些SLAM框架的测试与数据集适配,以M2DGR数据集为例进行各自的配置与运行,方便我以后适配自己的数据集,运行的SLAM框架包括:ORB-SLAM2、ORB-SLAM3、VINS-Mono、A-LOAM、LeGO-LOAM、LIO-SAM、LVI-SAM、FAST-LIO2、FAST-LIVO、Faster-LIO、hdl_graph_slam。实验基于Ubuntu20.04,其中ORB、VINS-Mono、和LOAM系列的安装参考我以前的博客,有详细的安装方法,其他的框架在后面会简单介绍一下

zardforever123的博客 1万+

Linux学习

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

YouthDance 1088

V-REP(Cooprliesim EDU)自学笔记 实现UR5机械臂末端按轨迹移动

V-REP(Cooprliesim EDU)自学笔记 实现UR5机械臂末端按轨迹移动

xu_white的博客 7583

直捣黄龙~

这篇文章描述了一个矩阵寻路问题,要求计算从起点到终点的最短路径数量及长度。主要思路是通过BFS算法解决:首先标记哨兵警戒区域为禁区,然后从起点出发进行广度优先搜索,记录每个位置的最短步数和路径条数。当到达终点时,输出路径数和步数;若不可达则返回(0,0)。算法使用队列实现BFS,同时处理路径统计和步数记录,适用于网格寻路类问题。

面试高手的博客 216

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

AUTOSAR 3万字面试题全面解析(持续更新)

ECU抽象层(EAL)是AUTOSAR架构中的一部分,它位于微控制器抽象层(MCAL)之下,但通常与MCAL一起被提及。EAL的目标是提供一个统一的接口来访问和管理ECU(Electronic Control Unit,电子控制单元)的硬件资源,包括处理器、存储器和外围设备。通过这种抽象,EAL使得上层软件能够以一种标准化的方式与ECU硬件交互,而不需要关心具体的硬件实现细节。EAL解决了硬件异构性带来的问题,即不同ECU可能采用不同类型的处理器和硬件配置。

大模型大数据攻城狮的专栏 5609

[原创]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

【MATLAB例程】三维下的IMM(交互式多模型),模型使用CV(匀速)和CA(匀加速),滤波使用EKF。附完整代码

CV模型:状态包含位置、速度和零加速度(9维状态),状态转移矩阵忽略加速度项CA模型:完整包含位置、速度和加速度(9维状态),状态转移矩阵包含二次项过程噪声矩阵Q分别根据两种模型的运动特性推导。

985工科博士毕业,专攻定位、导航和滤波等算法研究。从业10年,主要使用MATLAB 561

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

在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

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

《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、付费专栏及课程。

余额充值