Skip to content

Commit 9d60727

Browse files
authored
Merge pull request #4109 from bigmagic123/fix_raspi4
Fix raspi4
2 parents 3c361e6 + 20de8e2 commit 9d60727

35 files changed

+5626
-219
lines changed

bsp/raspberry-pi/raspi4-32/.config

Lines changed: 66 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ CONFIG_RT_ALIGN_SIZE=4
1414
CONFIG_RT_THREAD_PRIORITY_32=y
1515
# CONFIG_RT_THREAD_PRIORITY_256 is not set
1616
CONFIG_RT_THREAD_PRIORITY_MAX=32
17-
CONFIG_RT_TICK_PER_SECOND=100
17+
CONFIG_RT_TICK_PER_SECOND=1000
1818
CONFIG_RT_USING_OVERFLOW_CHECK=y
1919
CONFIG_RT_USING_HOOK=y
2020
CONFIG_RT_USING_IDLE_HOOK=y
@@ -54,6 +54,7 @@ CONFIG_RT_USING_MEMPOOL=y
5454
# CONFIG_RT_USING_NOHEAP is not set
5555
CONFIG_RT_USING_SMALL_MEM=y
5656
# CONFIG_RT_USING_SLAB is not set
57+
# CONFIG_RT_USING_USERHEAP is not set
5758
# CONFIG_RT_USING_MEMTRACE is not set
5859
CONFIG_RT_USING_HEAP=y
5960

@@ -65,7 +66,7 @@ CONFIG_RT_USING_DEVICE=y
6566
# CONFIG_RT_USING_INTERRUPT_INFO is not set
6667
CONFIG_RT_USING_CONSOLE=y
6768
CONFIG_RT_CONSOLEBUF_SIZE=128
68-
CONFIG_RT_CONSOLE_DEVICE_NAME="uart0"
69+
CONFIG_RT_CONSOLE_DEVICE_NAME="uart1"
6970
CONFIG_RT_VER_NUM=0x40003
7071
# CONFIG_RT_USING_CPU_FFS is not set
7172
CONFIG_ARCH_ARMV8=y
@@ -141,14 +142,20 @@ CONFIG_RT_USING_DFS_DEVFS=y
141142
#
142143
CONFIG_RT_USING_DEVICE_IPC=y
143144
CONFIG_RT_PIPE_BUFSZ=512
144-
# CONFIG_RT_USING_SYSTEM_WORKQUEUE is not set
145+
CONFIG_RT_USING_SYSTEM_WORKQUEUE=y
146+
CONFIG_RT_SYSTEM_WORKQUEUE_STACKSIZE=2048
147+
CONFIG_RT_SYSTEM_WORKQUEUE_PRIORITY=23
145148
CONFIG_RT_USING_SERIAL=y
146149
CONFIG_RT_SERIAL_USING_DMA=y
147-
CONFIG_RT_SERIAL_RB_BUFSZ=64
150+
CONFIG_RT_SERIAL_RB_BUFSZ=512
148151
# CONFIG_RT_USING_CAN is not set
149152
# CONFIG_RT_USING_HWTIMER is not set
150153
# CONFIG_RT_USING_CPUTIME is not set
151-
# CONFIG_RT_USING_I2C is not set
154+
CONFIG_RT_USING_I2C=y
155+
# CONFIG_RT_I2C_DEBUG is not set
156+
CONFIG_RT_USING_I2C_BITOPS=y
157+
# CONFIG_RT_I2C_BITOPS_DEBUG is not set
158+
# CONFIG_RT_USING_PHY is not set
152159
CONFIG_RT_USING_PIN=y
153160
# CONFIG_RT_USING_ADC is not set
154161
# CONFIG_RT_USING_DAC is not set
@@ -173,7 +180,7 @@ CONFIG_RT_USING_SPI=y
173180
CONFIG_RT_USING_WDT=y
174181
# CONFIG_RT_USING_AUDIO is not set
175182
# CONFIG_RT_USING_SENSOR is not set
176-
# CONFIG_RT_USING_TOUCH is not set
183+
CONFIG_RT_USING_TOUCH=y
177184
# CONFIG_RT_USING_HWCRYPTO is not set
178185
# CONFIG_RT_USING_PULSE_ENCODER is not set
179186
# CONFIG_RT_USING_INPUT_CAPTURE is not set
@@ -204,7 +211,13 @@ CONFIG_RT_USING_POSIX=y
204211
#
205212
# Socket abstraction layer
206213
#
207-
# CONFIG_RT_USING_SAL is not set
214+
CONFIG_RT_USING_SAL=y
215+
216+
#
217+
# protocol stack implement
218+
#
219+
CONFIG_SAL_USING_LWIP=y
220+
CONFIG_SAL_USING_POSIX=y
208221

209222
#
210223
# Network interface device
@@ -376,6 +389,7 @@ CONFIG_RT_LWIP_USING_PING=y
376389
# CONFIG_PKG_USING_AGILE_JSMN is not set
377390
# CONFIG_PKG_USING_PDULIB is not set
378391
# CONFIG_PKG_USING_BTSTACK is not set
392+
# CONFIG_PKG_USING_LORAWAN_ED_STACK is not set
379393

380394
#
381395
# security packages
@@ -402,6 +416,8 @@ CONFIG_RT_LWIP_USING_PING=y
402416
# CONFIG_PKG_USING_WAVPLAYER is not set
403417
# CONFIG_PKG_USING_TJPGD is not set
404418
# CONFIG_PKG_USING_HELIX is not set
419+
# CONFIG_PKG_USING_AZUREGUIX is not set
420+
# CONFIG_PKG_USING_TOUCHGFX2RTT is not set
405421

406422
#
407423
# tools packages
@@ -416,13 +432,15 @@ CONFIG_RT_LWIP_USING_PING=y
416432
# CONFIG_PKG_USING_ADBD is not set
417433
# CONFIG_PKG_USING_COREMARK is not set
418434
# CONFIG_PKG_USING_DHRYSTONE is not set
435+
# CONFIG_PKG_USING_MEMORYPERF is not set
419436
# CONFIG_PKG_USING_NR_MICRO_SHELL is not set
420437
# CONFIG_PKG_USING_CHINESE_FONT_LIBRARY is not set
421438
# CONFIG_PKG_USING_LUNAR_CALENDAR is not set
422439
# CONFIG_PKG_USING_BS8116A is not set
423440
# CONFIG_PKG_USING_GPS_RMC is not set
424441
# CONFIG_PKG_USING_URLENCODE is not set
425442
# CONFIG_PKG_USING_UMCN is not set
443+
# CONFIG_PKG_USING_LWRB2RTT is not set
426444

427445
#
428446
# system packages
@@ -449,7 +467,16 @@ CONFIG_RT_LWIP_USING_PING=y
449467
# CONFIG_PKG_USING_RAMDISK is not set
450468
# CONFIG_PKG_USING_MININI is not set
451469
# CONFIG_PKG_USING_QBOOT is not set
470+
471+
#
472+
# Micrium: Micrium software products porting for RT-Thread
473+
#
452474
# CONFIG_PKG_USING_UCOSIII_WRAPPER is not set
475+
# CONFIG_PKG_USING_UCOSII_WRAPPER is not set
476+
# CONFIG_PKG_USING_UC_CRC is not set
477+
# CONFIG_PKG_USING_UC_CLK is not set
478+
# CONFIG_PKG_USING_UC_COMMON is not set
479+
# CONFIG_PKG_USING_UC_MODBUS is not set
453480
# CONFIG_PKG_USING_PPOOL is not set
454481

455482
#
@@ -505,6 +532,8 @@ CONFIG_RT_LWIP_USING_PING=y
505532
# CONFIG_PKG_USING_WK2124 is not set
506533
# CONFIG_PKG_USING_LY68L6400 is not set
507534
# CONFIG_PKG_USING_DM9051 is not set
535+
# CONFIG_PKG_USING_SSD1306 is not set
536+
# CONFIG_PKG_USING_QKEY is not set
508537

509538
#
510539
# miscellaneous packages
@@ -534,6 +563,7 @@ CONFIG_RT_LWIP_USING_PING=y
534563
# CONFIG_PKG_USING_PERIPHERAL_SAMPLES is not set
535564
# CONFIG_PKG_USING_HELLO is not set
536565
# CONFIG_PKG_USING_VI is not set
566+
# CONFIG_PKG_USING_KI is not set
537567
# CONFIG_PKG_USING_NNOM is not set
538568
# CONFIG_PKG_USING_LIBANN is not set
539569
# CONFIG_PKG_USING_ELAPACK is not set
@@ -542,8 +572,13 @@ CONFIG_RT_LWIP_USING_PING=y
542572
# CONFIG_PKG_USING_ULAPACK is not set
543573
# CONFIG_PKG_USING_UKAL is not set
544574
# CONFIG_PKG_USING_CRCLIB is not set
575+
576+
#
577+
# games: games run on RT-Thread console
578+
#
545579
# CONFIG_PKG_USING_THREES is not set
546580
# CONFIG_PKG_USING_2048 is not set
581+
# CONFIG_PKG_USING_TETRIS is not set
547582
# CONFIG_PKG_USING_LWGPS is not set
548583
# CONFIG_PKG_USING_TENSORFLOWLITEMICRO is not set
549584

@@ -584,6 +619,9 @@ CONFIG_RT_LWIP_USING_PING=y
584619
# CONFIG_PKG_USING_DCM is not set
585620
# CONFIG_PKG_USING_EMQ is not set
586621
# CONFIG_PKG_USING_CFGM is not set
622+
# CONFIG_PKG_USING_RT_CMSIS_DAP is not set
623+
# CONFIG_PKG_USING_VIRTUAL_DEVICE is not set
624+
# CONFIG_PKG_USING_SMODULE is not set
587625
CONFIG_BCM2711_SOC=y
588626
# CONFIG_BSP_SUPPORT_FPU is not set
589627

@@ -596,27 +634,42 @@ CONFIG_BCM2711_SOC=y
596634
#
597635
CONFIG_BSP_USING_UART=y
598636
CONFIG_RT_USING_UART0=y
599-
# CONFIG_RT_USING_UART1 is not set
637+
CONFIG_RT_USING_UART1=y
600638
CONFIG_RT_USING_UART3=y
601-
CONFIG_RT_USING_UART4=y
602-
# CONFIG_RT_USING_UART5 is not set
639+
# CONFIG_RT_USING_UART4 is not set
640+
CONFIG_RT_USING_UART5=y
603641
CONFIG_BSP_USING_GIC=y
604642
CONFIG_BSP_USING_GIC400=y
605643
# CONFIG_BSP_USING_GIC500 is not set
606644
CONFIG_BSP_USING_PIN=y
607645
CONFIG_BSP_USING_SPI=y
608646
CONFIG_BSP_USING_SPI0_BUS=y
609647
CONFIG_BSP_USING_SPI0_DEVICE0=y
610-
# CONFIG_BSP_USING_SPI0_DEVICE1 is not set
648+
CONFIG_BSP_USING_SPI0_DEVICE1=y
649+
CONFIG_BSP_USING_I2C=y
650+
# CONFIG_BSP_USING_I2C0 is not set
651+
# CONFIG_BSP_USING_I2C1 is not set
652+
CONFIG_BSP_USING_I2C3=y
653+
# CONFIG_BSP_USING_I2C4 is not set
654+
# CONFIG_BSP_USING_I2C5 is not set
655+
# CONFIG_BSP_USING_I2C6 is not set
611656
CONFIG_BSP_USING_CORETIMER=y
612657
# CONFIG_BSP_USING_SYSTIMER is not set
613658
CONFIG_BSP_USING_WDT=y
659+
CONFIG_BSP_USING_ETH=y
660+
# CONFIG_BSP_USING_BULETOOTH is not set
614661
# CONFIG_BSP_USING_RTC is not set
615662
CONFIG_BSP_USING_SDIO=y
616663
CONFIG_BSP_USING_SDIO0=y
617664

618665
#
619666
# Board Peripheral Drivers
620667
#
621-
CONFIG_BSP_USING_HDMI=y
622-
CONFIG_BSP_USING_HDMI_DISPLAY=y
668+
CONFIG_BSP_USING_LCD=y
669+
# CONFIG_BSP_USING_HDMI_DISPLAY is not set
670+
CONFIG_BSP_USING_DSI_DISPLAY=y
671+
# CONFIG_BSP_USING_ILI9486 is not set
672+
CONFIG_BSP_USING_TOUCH=y
673+
CONFIG_BSP_USING_DSI_TOUCH_DEV=y
674+
# CONFIG_BSP_USING_XPT_TOUCH_DEV is not set
675+
# CONFIG_USING_LCD_CONSOLE is not set

bsp/raspberry-pi/raspi4-32/README.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,12 @@ msh />
129129
| HDMI | 支持 | - |
130130
| SDIO | 支持 | - |
131131
| ETH | 支持 | - |
132+
| BSC | 支持 | - |
133+
| DMA | 支持 | - |
134+
| DSI LCD/TOUCH | 支持 | DSI接口的LCD和TOUCH |
135+
| ILI9486 SPI LCD | 支持 | - |
136+
| XPT2046 TOUCH | 支持 | - |
137+
| BULETOOTH | 正在完善 | 支持reset,loadfirmware |
132138

133139
## 5. 注意事项
134140

bsp/raspberry-pi/raspi4-32/driver/Kconfig

Lines changed: 61 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ menu "Hardware Drivers Config"
5050
select RT_USING_PIN
5151
default y
5252

53-
menuconfig BSP_USING_SPI
53+
menuconfig BSP_USING_SPI
5454
bool "Enable SPI"
5555
select RT_USING_SPI
5656
default n
@@ -69,6 +69,32 @@ menu "Hardware Drivers Config"
6969
default n
7070
endif
7171

72+
menuconfig BSP_USING_I2C
73+
bool "Enable I2C"
74+
select RT_USING_I2C
75+
default n
76+
77+
if BSP_USING_I2C
78+
config BSP_USING_I2C0
79+
bool "Enable I2C0 BUS"
80+
default n
81+
config BSP_USING_I2C1
82+
bool "Enable I2C1 BUS"
83+
default n
84+
config BSP_USING_I2C3
85+
bool "Enable I2C3 BUS"
86+
default n
87+
config BSP_USING_I2C4
88+
bool "Enable I2C4 BUS"
89+
default n
90+
config BSP_USING_I2C5
91+
bool "Enable I2C5 BUS"
92+
default n
93+
config BSP_USING_I2C6
94+
bool "Enable I2C6 BUS"
95+
default n
96+
endif
97+
7298
config BSP_USING_CORETIMER
7399
bool "Using core timer"
74100
select RT_USING_CORETIMER
@@ -93,6 +119,14 @@ menu "Hardware Drivers Config"
93119
select RT_USING_WDT
94120
default n
95121

122+
config BSP_USING_ETH
123+
bool "Enable ETH"
124+
default n
125+
126+
config BSP_USING_BULETOOTH
127+
bool "Enable BULETOOTH"
128+
default n
129+
96130
menuconfig BSP_USING_RTC
97131
bool "Enable RTC"
98132
select RT_USING_RTC
@@ -119,14 +153,37 @@ menu "Hardware Drivers Config"
119153
endmenu
120154

121155
menu "Board Peripheral Drivers"
122-
menuconfig BSP_USING_HDMI
123-
bool "Enable HDMI"
156+
menuconfig BSP_USING_LCD
157+
bool "Enable LCD"
124158
default n
125159

126-
if BSP_USING_HDMI
160+
if BSP_USING_LCD
127161
config BSP_USING_HDMI_DISPLAY
128162
bool "HDMI DISPLAY"
129163
default n
164+
config BSP_USING_DSI_DISPLAY
165+
bool "DSI DISPLAY"
166+
default n
167+
config BSP_USING_ILI9486
168+
bool "ILI9486 DISPLAY"
169+
default n
170+
endif
171+
172+
menuconfig BSP_USING_TOUCH
173+
bool "Enable Touch"
174+
default n
175+
176+
if BSP_USING_TOUCH
177+
config BSP_USING_DSI_TOUCH_DEV
178+
bool "DSI TOUCH"
179+
default n
180+
config BSP_USING_XPT_TOUCH_DEV
181+
bool "XPT TOUCH"
182+
default n
130183
endif
184+
185+
config USING_LCD_CONSOLE
186+
bool "LCD CONSOLE"
187+
default n
131188
endmenu
132189
endmenu

bsp/raspberry-pi/raspi4-32/driver/SConscript

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,19 @@
1+
# RT-Thread building script for component
12
from building import *
23

34
cwd = GetCurrentDir()
4-
src = Glob('*.c') + Glob('*.cpp')
5+
src = Glob('*.c') + Glob('*.cpp') + Glob('*.a')
56
CPPPATH = [cwd, str(Dir('#'))]
67

8+
if not GetDepend('BSP_USING_ETH'):
9+
SrcRemove(src, ['drv_eth.c'])
10+
if not GetDepend('BSP_USING_SPI'):
11+
SrcRemove(src, ['drv_spi.c'])
12+
if not GetDepend('BSP_USING_WDT'):
13+
SrcRemove(src, ['drv_wdt.c'])
14+
if not GetDepend('BSP_USING_BULETOOTH'):
15+
SrcRemove(src, ['drv_bluetooth.c'])
16+
717
group = DefineGroup('driver', src, depend = [''], CPPPATH = CPPPATH)
818

919
# build for sub-directory

bsp/raspberry-pi/raspi4-32/driver/board.c

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,15 @@
1616

1717
#include "cp15.h"
1818
#include "mmu.h"
19+
#include "mbox.h"
1920

2021
struct mem_desc platform_mem_desc[] = {
2122
{0x0, 0x6400000, 0x0, NORMAL_MEM},
2223
{0x8000000, 0x8800000, 0x8000000, DEVICE_MEM}, //mbox msg
23-
{0x0EA00000, 0x0EE00000, 0x0EA00000, DEVICE_MEM}, //framebuffer
24+
{0x0E000000, 0x0EE00000, 0x0E000000, DEVICE_MEM}, //framebuffer
25+
{0x0F400000, 0x0FA00000, 0x0F400000, DEVICE_MEM}, //dsi_touch
2426
{0xFD500000, 0xFDA00000, 0xFD500000, DEVICE_MEM}, //gmac
25-
{0xFE000000, 0xFE400000, 0xFE000000, DEVICE_MEM}, //peripheral
27+
{0xFE000000, 0xFF000000, 0xFE000000, DEVICE_MEM}, //peripheral
2628
{0xFF800000, 0xFFA00000, 0xFF800000, DEVICE_MEM} //gic
2729
};
2830

@@ -36,21 +38,25 @@ void rt_hw_timer_isr(int vector, void *parameter)
3638

3739
void rt_hw_timer_init(void)
3840
{
39-
rt_hw_interrupt_install(ARM_TIMER_IRQ, rt_hw_timer_isr, RT_NULL, "tick");
40-
rt_hw_interrupt_umask(ARM_TIMER_IRQ);
41+
rt_uint32_t apb_clock = 0;
42+
rt_uint32_t timer_clock = 1000000;
4143
/* timer_clock = apb_clock/(pre_divider + 1) */
42-
ARM_TIMER_PREDIV = (250 - 1);
44+
apb_clock = bcm271x_mbox_clock_get_rate(CORE_CLK_ID);
45+
ARM_TIMER_PREDIV = (apb_clock/timer_clock - 1);
4346

4447
ARM_TIMER_RELOAD = 0;
4548
ARM_TIMER_LOAD = 0;
4649
ARM_TIMER_IRQCLR = 0;
4750
ARM_TIMER_CTRL = 0;
4851

49-
ARM_TIMER_RELOAD = 10000;
50-
ARM_TIMER_LOAD = 10000;
52+
ARM_TIMER_RELOAD = 1000000/RT_TICK_PER_SECOND;
53+
ARM_TIMER_LOAD = 1000000/RT_TICK_PER_SECOND;
5154

5255
/* 23-bit counter, enable interrupt, enable timer */
5356
ARM_TIMER_CTRL = (1 << 1) | (1 << 5) | (1 << 7);
57+
58+
rt_hw_interrupt_install(ARM_TIMER_IRQ, rt_hw_timer_isr, RT_NULL, "tick");
59+
rt_hw_interrupt_umask(ARM_TIMER_IRQ);
5460
}
5561

5662
void idle_wfi(void)

0 commit comments

Comments
 (0)