[Linux-Xtensa] Re: Audio Driver - This StartFire-2D340 looks
interesting, seems targeted specifically for Tensilica Processors.
pdelaney at tensilica.com
Fri Sep 17 15:16:52 PDT 2010
> Hi Piet:
> 于 Fri, 17 Sep 2010 01:53:28 -0700
> Piet Delaney <pdelaney at tensilica.com> 写道:
>> benn.huang wrote:
>>> Hi Piet:
>>> I've seen you last 3 commits to the repo. Very thanks for you
>>> help :D.
>> I'm surprised we didn't notice the backtrace problem and that
>> Prasanna didn't notice the dma problem.
> I've seen the backtrace issue yestoday and pointed out to truby. But I
> did not focus on this problem
>>> We will now test it on our FPGA broad.
>> What kind are you using. Maybe we could get one
>> and try being more in sync with what your doing
>> so it's easier to help out.
> We are now using StartFire-2D340 board that containing 2 Altera Startix
> III FPGA chips. Because of some reasons, We only have one board that
> make the resource so insufficiency :(
Well now that's interesting, the Beijing Hyper Silicon FPGA Boards are
designed specificity for Tensilica processors. Looks like they became
a Prototyping Partnet back in 2008. How much do they
cost? Wonder if we have considered trying a few and supporting
them to our Chineese customers. Is the documentation for the
boards available in English? Looks like an interesting board,
HDMI daughter board, USB, Ethernet, and support for BaseBand DSP.
The Stratix IV FPGA looks newer than the Virtex-4 I'm using on
the LX200 board. The older Stratix II seems to be a bit better than
Tensilica processors Supported:
All Tensilica cores can be easily implemented in StarFire-2D820/530/340, including
o General CPU£ºDiamond 106,108,212GP,232L
o Multimedia DSPs£ºDiamond 330HIFI Audio DSP ºÍDiamond 388 VDD DSP
o Communication baseband DSP£ºDiamond 545CK
The peripheral AMBA bridges (AHB, AXI) make the simulation of SOC available
Connectable with Xplorer IDE, hardware test program and some example algorithms are available
支 持Tensilica TM系列处理器 Support for Tensilica TM family of processors
所有Tensilica处理器都可以被非常容易的集成运行于StarFire-2D530上 All Tensilica processor can be very easily integrated on the run on the StarFire-2D530
◆ 通用CPU：Diamond 106,108,212GP,232L ◆ Universal CPU: Diamond 106,108,212 GP, 232L
◆ 多媒体DSP：Diamond 330HIFI Audio DSP 和Diamond 388 VDD DSP ◆ Multimedia DSP: Diamond 330HIFI Audio DSP and Diamond 388 VDD DSP
◆ 通用基带DSP：Diamond 545CK ◆ Universal Baseband DSP: Diamond 545CK
处理器附带的AMBA总线桥（AHB,AXI）,可支持AMBA总线的SOC设计和仿真 Processor with the AMBA bus bridge (AHB, AXI), AMBA bus can support the design and simulation of SOC
配合Xplorer IDE 可以运行基本硬件测试程序和多种算法程序 Xplorer IDE can be run with the basic hardware test program and procedures for a variety of algorithms
可扩展标准子板: Extensible standard daughter boards:
DDR SODIMM子板 DDR SODIMM daughter board
DDR存储器子板 Sub-board DDR memory
SDRAM子板 Sub-board SDRAM
SRAM子板 SRAM daughter board
NOR FLASH子板 NOR FLASH daughter board
NAND FLASH子板 Sub-board NAND FLASH
视频模拟输入输出子板 Video analog input and output daughter board
音频模拟输入输出子板 Analog audio input and output daughter board
HDMI视频输入子板 HDMI video input daughter board
LCD接口子板 Sub-panel LCD Interface
CCD/CMOS接口子板 CCD / CMOS Interface daughter board
DVI输入/输出子板 DVI Input / Output daughter board
UART接口子板 UART Interface daughter board
100M以太网PHY 100M Ethernet PHY
USB1.1/2.0/OTG PHY子板 USB1.1/2.0/OTG PHY daughter board
USB接口子板 USB Interface Daughter Board
PS2接口子板 PS2 Interface daughter board
TS码流输入输出接口子板 TS code stream input output interface daughter board
系统示意框图： System block diagram to indicate:
>>>> 82 len = sizeof(mailPacketT) + dataSize;
>>>> 83 #if 0
>>>> 84 pkt = (mailPacketT *)kmalloc(len, GFP_KERNEL);
>>>> 85 #else
>>>> 86 pkt = (mailPacketT *)kmalloc(len,
>>>> GFP_ATOMIC); /* piet */ 87 #endif
>>> This will temporary use this fix.
>>>> Looks like I fixed the bug in pci-dma.c; I just commited it and the
>>>> fix for backtraces to work correctly. We'll cherry pick these back
>>>> to the open version soon.
>>>> Here the pci-dma.c fix I just pushed.
>>>> + * vaddr is an address within the uncacched memory address range.
>>>> + * It was returned above by dma_alloc_coherent().
>>>> + */
>>>> void dma_free_coherent(struct device *hwdev, size_t size,
>>>> void *vaddr, dma_addr_t dma_handle)
>>>> - long
>>>> + unsigned long v_addr = (long) vaddr;
>>>> + unsigned long seg_offset = v_addr -
>>>> + unsigned long addr = XCHAL_KSEG_CACHED_VADDR + seg_offset;
>>>> - if (addr < 0 || addr >= XCHAL_KSEG_SIZE)
>>>> + if (seg_offset < 0 || seg_offset >= XCHAL_KSEG_SIZE)
>>>> free_pages(addr, get_order(size));
>>>> I'll push the two GFP_ATOMIC changes shortly, want to see if there
>>>> are any more.
>>> Does need any update to dma_alloc_coherent together?
>> Other than being just a little bit to tight it seems fine to me.
>> When we start using more memory with the V3 MMU we
>> likely will be adjusting this a bit. I've got some
>> memory to add the the LX200 to try using half a gig.
>> Just have to try it out and adjust the code. Christian
>> Zankel is also working on updating the current V2 MMU
>> to accommodate more memory.
More information about the linux-xtensa