Bfin-uclinux的内核从08r1.5-rc3开始支持SMP,今天试着编译了一个内核,下面是个记录。
首先将bfin_patch/smp_patch/smp_bf561.patch文件复制到uclinux内核的根目录下,执行:
patch -p0 < ./smp_bf561.patch
将此补丁打上。
接着make menuconfig,选上驱动,再make,用u-boot引导:
Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
Memory available: 57660k/65536k RAM, (4772k init code, 1036k kernel code, 421k data, 1024k dma, 620k reserved)
Blackfin Scratchpad data SRAM: 4 KB
PDA for CPU0 reserved at ffb00000
Blackfin DATA_A SRAM: 16 KB
Blackfin DATA_B SRAM: 16 KB
Blackfin Instruction SRAM: 16 KB
Mount-cache hash table entries: 512
CoreB bootstrap code to SRAM ff600000 via DMA.
Booting Core B.
Instruction Cache Enabled for CPU1
Data Cache Enabled for CPU1 (write-through)
PDA for CPU1 reserved at ff700000
Brought up 2 CPUs
SMP: Total of 2 processors activated (1171.45 BogoMIPS).
migration_cost=4000
NET: Registered protocol family 16
Blackfin GPIO Controller
Blackfin DMA Controller
ezkit_init(): registering device resources
NET: Registered protocol family 2
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
TCP established hash table entries: 2048 (order: 2, 24576 bytes)
TCP bind hash table entries: 2048 (order: 2, 16384 bytes)
TCP: Hash tables configured (established 2048 bind 2048)
TCP <?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" /><city w:st="on"><place w:st="on">reno</place></city> registered
io scheduler noop registered
io scheduler anticipatory registered (default)
io scheduler cfq registered
bfin-wdt: initialized: timeout=20 sec (nowayout=0)
Serial: Blackfin serial driver
bfin-uart.1: ttyBF0 at MMIO 0xffc00400 (irq = 35) is a BFIN-UART
RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize
PPP generic driver version <chsdate w:st="on" isrocdate="False" islunardate="False" day="30" month="12" year="1899">2.4.2</chsdate>
SLIP: version <chsdate w:st="on" isrocdate="False" islunardate="False" day="30" month="12" year="1899">0.8.4</chsdate>-NET3.019-NEWTTY (dynamic channels, max=256).
SLIP linefill/keepalive option.
dm9000 Ethernet Driver
bfin-spi bfin-spi.0: Blackfin BF5xx on-chip SPI Contoller Driver, Version 1.0, regs_base@ffc00500, dma channel@16
i<chmetcnv w:st="on" tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="2" unitname="C">2c</chmetcnv> /dev entries driver
i<chmetcnv w:st="on" tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="2" unitname="C">2c</chmetcnv>-gpio i<chmetcnv w:st="on" tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="2" unitname="C">2c</chmetcnv>-gpio.0: using pins 1 (SDA) and 0 (SCL)
TCP cubic registered
NET: Registered protocol family 1
NET: Registered protocol family 17
Freeing unused kernel memory: 4772k freed
dma_alloc_init: dma_page @ 0x00602000 - 256 pages at 0x<chmetcnv w:st="on" tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="3" unitname="F">03f</chmetcnv>00000
_____________________________________
a8888b. / Welcome to the uClinux distribution \
d888888b. / _ _ \
8P"YP"Y88 / | | |_| __ __ (TM) |
8|o||o|88 _____/ | | _ ____ _ _ \ \/ / |
8' .88 \ | | | | _ \| | | | \ / |
8`._.' Y8. \ | |__ | | | | | |_| | / \ |
d/ `8b. \ \____||_|_| |_|\____|/_/\_\ |
dP . Y8b. \ For embedded processors including |
d8:' " `::88b \ the Analog Devices Blackfin /
d8" 'Y88b \___________________________________/
:8P ' :888
<chmetcnv w:st="on" tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="8" unitname="a">8a</chmetcnv>. : _a88P For further information, check out:
._/"Yaa_: .| 88P| - http://blackfin.uclinux.org/
\ YP" `| 8P `. - http://docs.blackfin.uclinux.org/
/ \.___.d| .' - http://www.uclinux.org/
`--..__)8888P`._.' jgs/a:f - http://www.analog.com/blackfin
Have a lot of fun...
BusyBox v<chsdate w:st="on" isrocdate="False" islunardate="False" day="30" month="12" year="1899">1.4.1</chsdate> (2009-01-10 22:19:59 CST) Built-in shell (msh)
Enter 'help' for a list of built-in commands.
root:/>
看一下cpuinfo:
root:/> cat /proc/cpuinfo
Board Name: ADDS-BF561-EZKIT
Board Memory: 64 MB
Kernel Memory: 64 MB
MMU: none
FPU: none
System Clock: 118800000 Hz
CPU0: ADSP-BF561 Rev. 0.5
Core Clock: 594000000 Hz
BogoMips: 1171.45
Calibration: 585728000 loops
I-CACHE: ON
D-CACHE: ON (write-through)
DBANK-A: CACHE
DBANK-B: CACHE
I-CACHE Size: 16KB
D-CACHE Size: 32KB
I-CACHE Setup: 4 Sub-banks/4 Ways, 32 Lines/Way
D-CACHE Setup: 2 Super-banks/4 Sub-banks/2 Ways, 64 Lines/Way
CPU1: ADSP-BF561 Rev. 0.5
Core Clock: 594000000 Hz
BogoMips: 1171.45
Calibration: 585728000 loops
I-CACHE: ON
D-CACHE: ON (write-through)
DBANK-A: CACHE
DBANK-B: CACHE
I-CACHE Size: 16KB
D-CACHE Size: 32KB
I-CACHE Setup: 4 Sub-banks/4 Ways, 32 Lines/Way
D-CACHE Setup: 2 Super-banks/4 Sub-banks/2 Ways, 64 Lines/Way
有意思,有时间得仔细研究一下了。
当然,这个SMP还有一些限制:
This SMP patch was made for 2008R1. Limitations in current work are listed below.
1. Only support the cache policy: WriteThrough.
2. Disabled Memory Optimizations, we moved these functions to SDRAM.
3. Kernel module and applications can't be load into L1 memory, neither alloc data from L1 memory.
4. Not have L2 memory management function, but you can define variables that located in L2.
5. Applications that built with -mstack-check-l1, or calling uClibc's thread manage API may fail. Toolchain guys will work on it.
6. Both the Cores have the same interrupt settings, ie, both the core will response to the peripheral interrupt. Because each vector have a spin lock, except the tick interrupt, so only one Core will do the act things.
7. Use GPTIMER0 instead of the CoreTimer, as the tick timer.
8. Not support power management.
期待下一版的功能更加完善!
参考资料
uclinux-2008r1(bf561)内核中的per_cpu(<chsdate w:st="on" isrocdate="False" islunardate="False" day="20" month="5" year="2008"><b><span lang="EN-US" style="FONT-SIZE: 11.5pt; COLOR: black; FONT-FAMILY: Verdana; mso-font-kerning: 18.0pt">2008/5/20</span></b></chsdate>)
相关推荐
本文分析了bfin-uclinux内核的CPLB相关的代码,适用于BF561,所用的内核版本为08r1.5-rc3。
本工程用于将bfin-uclinux-2008r1-rc8内核移植到vdsp5下编译。适用于ADSP-BF561。使用了优视科技BV561EVB开发板,但仅实现其DM9000的网卡驱动。 由于CSDN空间限制,请分开下载所有的8个rar文件。 也可在...
本工程用于将bfin-uclinux-2008r1-rc8内核移植到vdsp5下编译。适用于ADSP-BF561。使用了优视科技BV561EVB开发板,但仅实现其DM9000的网卡驱动。 由于CSDN空间限制,请分开下载所有的8个rar文件。 也可在...
本工程用于将bfin-uclinux-2008r1-rc8内核移植到vdsp5下编译。适用于ADSP-BF561。使用了优视科技BV561EVB开发板,但仅实现其DM9000的网卡驱动。 由于CSDN空间限制,请分开下载所有的8个rar文件。 也可在...
本工程用于将bfin-uclinux-2008r1-rc8内核移植到vdsp5下编译。适用于ADSP-BF561。使用了优视科技BV561EVB开发板,但仅实现其DM9000的网卡驱动。 由于CSDN空间限制,请分开下载所有的8个rar文件。 也可在...
本工程用于将bfin-uclinux-2008r1-rc8内核移植到vdsp5下编译。适用于ADSP-BF561。使用了优视科技BV561EVB开发板,但仅实现其DM9000的网卡驱动。 由于CSDN空间限制,请分开下载所有的8个rar文件。 也可在...
本工程用于将bfin-uclinux-2008r1-rc8内核移植到vdsp5下编译。适用于ADSP-BF561。使用了优视科技BV561EVB开发板,但仅实现其DM9000的网卡驱动。 由于CSDN空间限制,请分开下载所有的8个rar文件。 也可在...
本工程用于将bfin-uclinux-2008r1-rc8内核移植到vdsp5下编译。适用于ADSP-BF561。使用了优视科技BV561EVB开发板,但仅实现其DM9000的网卡驱动。 由于CSDN空间限制,请分开下载所有的8个rar文件。 也可在...
本工程用于将bfin-uclinux-2008r1-rc8内核移植到vdsp5下编译。适用于ADSP-BF561。使用了优视科技BV561EVB开发板,但仅实现其DM9000的网卡驱动。 由于CSDN空间限制,请分开下载所有的8个rar文件。 也可在...
编译工具 or32-uclinux.rar编译工具 or32-uclinux.rar编译工具 or32-uclinux.rar
ARMS3C44B0-uClinux开发指南,ARMS3C44B0-uClinux开发指南
ARMS3C44B0-uclinux实验指导书,ARMS3C44B0-uclinux实验指导书
这是对blog文章的一个总结,分析bfin-uclinux-2008r1.5内核的中断处理,适用于ADSP-BF561,第三版。
arm_uclinux_tools用于安装linux的编译器
ubuntu交叉编译工具,arm-uclinux-tools-base-gcc3.4.0-20040713.sh
基于44B0-uCLINUX串口驱动程序
这份文档记录了在vdsp5下移植bfin-uclinux-2008r1-rc8内核的过程。 适用于ADSP-BF561。
这篇文章主要讨论了bfin-uclinux-2008r1-rc8中的console实现。 适用的CPU为ADSP-BF561。 还不是很完整,仅供参考。 .......
bf533-uclinux下dm9000驱动程序,绝对可用,时序上对比原驱动程序做了修改。
学习bfin-uclinux内核的一些笔记。 这是对blog文章的总结。