Hardware Platform:
Devkit8000
256 m DDR + 256 m Nand
S-video output
Software Package:
AM35x-OMAP35x-PSP-SDK-03.00.01.06.tgz
Dvsdk_3_01_00_10_setup.bin
Cs1omap3530_setupLinux_1_01_00-prebuilt-dvsdk3.01.00.10.bin
Ti_cgt_c6000_6.1.12_setup_linux_x86.bin
1. Install all packages in one directory, preferably to/Arago-install/dvsdk_3_01_00_10, because I am under/home/workdir/Ti/dvsdk_3_01_00_10, during the compilation process, you may need to link the file under/Arago-install/dvsdk_3_01_00_10 because it seems that the path is written to the configuration file, I have also established a symbolic link such as/Arago-install/dvsdk_3_01_00_10, pointing to/home/workdir/Ti/dvsdk_3_01_00_10.
2. After the above components are installed, the following structure is shown in dvsdk_3_01_00_10:
3, into the AM35x-OMAP35x-PSP-SDK-03.00.01.06/src/unzip. The kernel in the kernel cannot be squashed here because devkit8000 still needs to modify the kernel, which is quite troublesome. The DSP-bridge driver also exists in the kernel transplanted from 0xlab to devkit8000, so I directly replaced the linux-03.00.01.06 here with 0xkernel.
Download Method: git clone git: // gitorious.org/0xlab-kernel/kernel.git
You can directly store the 0xlab kernel in the kernel directory or create a symbolic link.
In short, the ability to access: dvsdk_3_01_00_10/AM35x-OMAP35x-PSP-SDK-03.00.01.06/src/kernel/linux-03.00.01.06 on the line.
There are two other source codes to be modified:
(1) There is a bug in the pm34xx. c file. You need to enclose the following two functions in macros. You need to modify the following points for calling these two functions:
# Ifdef config_omap_watchdog
Extern int omap_wdt_suspend (void );
Extern int omap_wdt_resume (void );
# Endif
(2) include/Linux/omap_resizer.h and Drivers/Media/Video/ISP/omap_resizer.c in the compilation process will prompt rsz_s_exp undefined error, compared with the AM35x-OMAP35x-PSP-SDK-03.00.01.06 built-in kernel is not difficult to solve:
Add a case in the rsz_unlocked_ioctl function of map_resizer.c:
Case rsz_s_exp:
If (mutex_lock_interruptible (& rsz_conf_chan->
Chanprotection_mutex ))
Return-eintr;
Rsz_conf_chan-> register_config.sdr_req_exp =
* (Unsigned int *) Arg );
Mutex_unlock (& rsz_conf_chan-> chanprotection_mutex );
Break;
Add the definition in map_resizer.h: # define rsz_s_exp _ IOWR (rsz_ioc_base, 9, _ s32) and change the value of rsz_ioc_maxnr to 9
Because the Kernel configuration of menuconfig cannot be performed when running make in dvsdk, you must first run menuconfig under the kernel to configure the kernel and generate it. config file, and then copy it to arch/ARM/config/my_devkit8000_defconfig
4. Modify ~ /. Bashrc, add several environment variables:
Dvsdk_install_dir =/home/workdir/Ti/dvsdk_3_01_00_10
Cstool_dir =/home/workdir/toolchain/arm-2009q1
Codegen_install_dir = $ dvsdk_install_dir/ti_cgt_c6000_6.1.12
Codec_install_dir = $ dvsdk_install_dir/cs1omap1_01_00
Export dvsdk_install_dir codegen_install_dir cstool_dir
5. Check whether the address of each directory defined in the dvsdk_3_01_00_10/rules. Make file is correct and modify the directory according to the actual situation.
6. Modify dvsdk_3_01_00_10/makefile and specify the default configuration files for U-boot and kernel:
Linuxkernel_config = my_devkit8000_defconfig
Uboot_config = omap3_beagle_config
7. Run make help in the dvsdk_3_01_00_10 directory, view help, and select the target of make.
Run make everything to compile all targets. Run make install to copy the generated targets to the exec_dir directory set in rules. Make.
However, it seems that not all the generated targets have been copied. For example, after running make dmai_install, you can copy dmai.
8. Modify the memory address of insmod cmemk. KO in the OPT/dvsdk/omap3530/loadmodules. Sh script in the file system.
By default, its memory is 99 m + 15 m + 13 m = 128 m, and the memory of my devkit8000 is 256 m (0x80000000 ~ 0x90000000) So after the adjustment is:
#0x80000000 99 MB Linux -------------> 0x80000000 ------- 0x8e300000 227 m
#0x86300000 15 MB cmem -------------> 0x8e300000 ------- 0x8f200000 15 m
#0x87200000 13 MB codec server -------------> 0x8f200000 ------- 0x90000000 13 m
That is:
Insmod cmemk. Ko phys_start = 0x8e300000 phys_end = 0x8f200000 pools = 1 x 300hrs, 1 X 1429hrs, 6x1048576, 4 x 829hrs, 1x4096x132132, 20 X allowoverlap =
9. To set the uboot startup parameters, add "mem = 227 m omapfb. vrfb = Y ", especially" omapfb. vrfb = y "must be added; otherwise, the error" omapdss dispc error: gfx_polico_underflow, disabling GFX "will make you very big. My startup parameters are as follows:
Console = ttys2, 115200n8 VRAM = 12 m mem = 227 m omapdss. def_disp = TV omapfb. mode = 576p80 rotation = 1 omapfb. vrfb = y root =/dev/mmcblk0p2 init =/init RW rootwait
10. After Linux is started, you may need to manually create the cmem node:
CAT/proc/devices check the master device Number of cmem. My number is 250.
Mknod/dev/cmem c 250
Then you can run OMAP-demo (copy it from dvsdk_3_01_00_10/examples/omap3530/) for testing.