1. In this transplantation process, the linux-2.6.28 lcd driver is selected as a reference and transplanted to the linux-2.6.34 ok6410 development board.
2. Transplantation process
The main idea is to add drivers to the kernel. Add a samsung directory under /driver/video/, extract the driver-related source code in 2.6.28, and copy the source code to samsung.
Modify the Makefile file under /driver/video and add the compilation entry for entering the samsung directory
obj-$(CONFIG_FB_S3C) += samsung/
Modify the Kconfig file under /driver/video and add the /samsung/Kconfig configuration entry
comment "Frame buffer hardware drivers"
depends on FB
config FB_S3C
tristate "S3C Framebuffer Support"
select FB_CFB_FILLRECT
select FB_CFB_COPYAREA
select FB_CFB_IMAGEBLIT
depends on FB && (ARCH_S3C64XX || ARCH_S5P64XX || ARCH_S5PC1XX)
default n
---help---
TBA
choice
depends on FB_S3C
prompt "Select LCD Type"
default FB_LIYUTAI_WXCAT35
config FB_WXCAT35
bool "WXCAT35 320x240"
---help---
TBA
config FB_WXCAT43
bool "WXCAT43 480x272"
---help---
TBA
config FB_AT056
bool "AT056 640x480"
---help---
TBA
config FB_AT070
bool "AT070 800x480"
---help---
TBA
config FB_AT080
bool "AT080 800x600"
---help---
TBA
config FB_S3C_VGA800
bool "VGA800 800x600"
---help---
TBA
config FB_S3C_XGA
bool "XGA 1024x768"
---help---
TBA
endchoice
config FB_S3C_BPP
tristate "Advanced options for S3C Framebuffer"
depends on FB_S3C
default n
---help---
TBA
choice
depends on FB_S3C_BPP
prompt "Select BPP(Bits Per Pixel)"
default FB_S3C_BPP_16
config FB_S3C_BPP_8
bool "8 BPP"
---help---
TBA
config FB_S3C_BPP_16
bool "16 BPP"
---help---
TBA
config FB_S3C_BPP_24
bool "24 BPP(XRGB888)"
---help---
TBA
config FB_S3C_BPP_28
bool "28 BPP(ARGB4888)"
---help---
TBA
config FB_S3C_BPP_32
bool "32 BPP(ARGB8888)"
---help---
TBA
endchoice
config FB_S3C_NUM
int "Number of Framebuffers"
depends on FB_S3C_BPP && (ARCH_S3C64XX || ARCH_S5P64XX || ARCH_S5PC1XX)
default "1"
---help---
TBA
config FB_S3C_VIRTUAL_SCREEN
bool "Enable Virtual Screen"
depends on FB_S3C_BPP
default n
---help---
TBA
config FB_S3C_DOUBLE_BUFFERING
bool "Enable Double Buffering"
depends on FB_S3C_BPP
default n
---help---
TBA
3. Add platform_device
Find the board file mach-ok6410.c added when porting the system, and add lcd device
/* LCD Controller */
static struct resource s3c_lcd_resource[] = {
[0] = {
.start = S3C64XX_PA_LCD,
.end = S3C64XX_PA_LCD + SZ_1M - 1,
.flags = IORESOURCE_MEM,
},
[1] = {
.start = IRQ_LCD_VSYNC,
.end = IRQ_LCD_SYSTEM,
.flags = IORESOURCE_IRQ,
}
};
static u64 s3c_device_lcd_dmamask = 0xffffffffUL;
struct platform_device s3c_device_lcd = {
.name = "s3c-lcd",
.id = -1,
.num_resources = ARRAY_SIZE(s3c_lcd_resource),
.resource = s3c_lcd_resource,
.dev = {
.dma_mask = &s3c_device_lcd_dmamask,
.coherent_dma_mask = 0xffffffffUL
}
};
Then modify struct platform_device *ok6410_devices[] and add
&s3c_device_lcd,
4. Little penguin appears at startup
Previous article:LINUX Kernel Porting
Next article:How to start uboot debugging from sdram on ok6410 This is a guess and has not been verified
- Popular Resources
- Popular amplifiers
- Learn ARM development(16)
- Learn ARM development(17)
- Learn ARM development(18)
- Embedded system debugging simulation tool
- A small question that has been bothering me recently has finally been solved~~
- Learn ARM development (1)
- Learn ARM development (2)
- Learn ARM development (4)
- Learn ARM development (6)
Professor at Beihang University, dedicated to promoting microcontrollers and embedded systems for over 20 years.
- LED chemical incompatibility test to see which chemicals LEDs can be used with
- Application of ARM9 hardware coprocessor on WinCE embedded motherboard
- What are the key points for selecting rotor flowmeter?
- LM317 high power charger circuit
- A brief analysis of Embest's application and development of embedded medical devices
- Single-phase RC protection circuit
- stm32 PVD programmable voltage monitor
- Introduction and measurement of edge trigger and level trigger of 51 single chip microcomputer
- Improved design of Linux system software shell protection technology
- What to do if the ABB robot protection device stops
- Analysis of the application of several common contact parts in high-voltage connectors of new energy vehicles
- Wiring harness durability test and contact voltage drop test method
- From probes to power supplies, Tektronix is leading the way in comprehensive innovation in power electronics testing
- From probes to power supplies, Tektronix is leading the way in comprehensive innovation in power electronics testing
- Sn-doped CuO nanostructure-based ethanol gas sensor for real-time drunk driving detection in vehicles
- Design considerations for automotive battery wiring harness
- Do you know all the various motors commonly used in automotive electronics?
- What are the functions of the Internet of Vehicles? What are the uses and benefits of the Internet of Vehicles?
- Power Inverter - A critical safety system for electric vehicles
- Analysis of the information security mechanism of AUTOSAR, the automotive embedded software framework
- Super detailed summary of receiver sensitivity and equivalent noise bandwidth
- Difference between junction temperature and case top temperature of power device
- The problem of grounding the output signal of the half-bridge inverter circuit
- Xianyu not only hired someone to do their graduation project, but also tried to "extort" money from the seller. It's a pity for these two students from Xidian University...
- 3-wire spi (cs clk sda), LCD driver for HX8369
- 8 DDR3 surface-to-bottom mounting solution
- Where are the options for PCB material/PCB copper thickness/PCB spray color/milling edge in the Gerber file of Altium Designer?
- 【BLE 5.3 wireless MCU CH582】14. BLE serial port transparent transmission test
- Use 1117 solar panels
- Implementation of asynchronous serial port.zip