新工作,新环境。

::: {#msgcns!BAC70107D054E892!351 .bvMsg} 好久没认认真真地写这个spaces了,上次还是在一个月前。刚换工作,刚安定下来。上周末回家了一趟,掐着时间点的,为以后回家的时间安排做了一下预演。这次在车上也算是有所突破,因为算是第一次,主动与列车上的人聊天,而且之后还有所联系。

在新工作上,应该还是有点进展的。终于把那个硬盘的驱动搞好了,技术细节我后面再说。想想,好像到新公司将近四十天了,大概有效代码不到二十行。平均两天一行,呵呵。当然不是这么算的。挺有成就感的,也从某种程度上证明了自己的。

在深圳这边挺爽的,高中同学有几个都是玩的好的。而且经常会聚聚。大学同学也有,也会有以前的感觉。虽然有些事,有些人已经是离自己越来越远了。而我又是一个不是太想去争的人,满怀接受地面对自己的每一件事。但偶尔回味,至少我曾来过……

前一阵子入手了一个nokia n800。学了刷机,装软件,使用。年初的时候曾经想找人帮忙在香港找找的,结果没有;这次在hi pda上找了个二手的,觉得还不错,对得起这个价钱。对电子产品还是一如既往的向往,下一个目标应该是数码单反了。毕业时就在念叨着的东东。但搞过来的话使用率会有多少呢,很值得怀疑。sony的prs 505,想有的心情倒不是很强烈,纸质的书都没心情看了,不过如果有很多电子书或者说文献的话,这个强烈推荐。e-ink的东东加上sony的工业设计,看起来还是很口水的。

就想到这么多了。越来越相信,冥冥之中定有天意。我还是继续我的无为无争吧。

--------------------------------我是分割线-----------------------------------

vt6421a在ixp425平台,Linux2.4下的驱动。

sata_via.c文件

但有两处bug

1.io地址:ixp平台下,似乎Linux2.4会自动分配一个高端的io地址给pci总线上的设备(详见pci autoconfig)并写到设备的配置空间里。而vt6421应该是为x86设计的,所以他的io地址只有16位有效。这样,就导致读写io时,设备不会响应。读出来的值为全ff(0xffffffff)。修改办法,在某处(pci autoconfig,或者svia_init_one)将其分配的io地址取低16位,再写到pci设备的配置空间,同时修改其resource资源。

2.DMA地址:发现设备的中断会莫名的失去响应。这个搞得我天昏地暗的,看了pci的资料,看了ata的资料,看了scsi的资料,还看了N多代码。最后还算是运气好,在某个文件中看到了一点说明ixp425的pci DMA只有64M,而且看log的时候没有再一次错过,发现了是DMA的地址越界了。结果这样就把有用的东东覆盖掉了。要修改的地方是 asm-arm/pci.h这个文件。将pci_map_sg,pci_unmap_sg,pci_dma_sync_sg等加上DMA的越界判断。

--------------------------------我是分割线的尾巴----------------------------------- :::